본문 바로가기
반응형

분류 전체보기378

아두이노 가변저항으로 아날로그 입력 조절 예제 ●가변저항- 가변저항은 3개의 선으로 회로에 연결된다. 양쪽에 5V, GND를 연결하고 가운데를 출력값으로 이용한다. 저항의 값이 높아지거나 낮아짐에 따라 전류량이 조절된다. 저항이 낮은 상태에서는 전류량이 많아지고 저항이 높아지면 전류량이 줄어든다. ●가변저항을 이용한 led 밝기 조절 예제 const int ledPin = 3;const int potentiometerPin = A0;int potentiometerValue;int brightness; void setup() { Serial.begin(9600);} void loop() { potentiometerValue = analogRead(potentiometerPin); Serial.println(potentiometerValue); //0~.. 2015. 12. 31.
아두이노 버튼 입력 받기 예제 ●버튼- 회로를 닫아주고 열어주는 역할을 한다. 아래 버튼은 손으로 누르고 있으면 전류가 흐르고 손을 때면 전류가 흐르지 않게 되는 버튼이다. ●아두이노 스케치를 이용하지 않은 버튼 테스트 ●버튼의 입력에 따라 LED가 점등이 되는 예제 const int ledPin = 2;const int buttonPin = 4;int currentButtonState; void setup() { pinMode(ledPin,OUTPUT); pinMode(buttonPin,INPUT); Serial.begin(9600);} void loop() { currentButtonState = digitalRead(buttonPin); digitalWrite(ledPin, currentButtonState); Serial.pr.. 2015. 12. 31.
아두이노 LED켜는 예제 ●브레드보드- 남땜이 필요없는 프로토타입용 보드이다. 빨간선에는 양의 전압을 연결해주고, 파란선은 접지(GND)로 연결해준다.중간에는 부품들은 연결하기 위해 사용한다. ●LED- 소량의 전류만 필요하여 과다 전류가 흐를 경우 불이 날수도 있다. LED가 파손되는 것을 막기위해 LED앞에 저항을 연결해준다. - LED는 방향성을 가진다. LED를 통과하는 전류는 한 방향으로 흐른다. 긴 쪽 다리는 양극, 짧은 쪽 다리는 음극(GND)에 연결한다. ●아두이노 스케치를 사용하지 않고 단순하게 전류를 흘려 LED를 켜는 사진 ●전구를 켰다 껐다하는 예제- 저항을 연속해서 LED에 연결한다. 보드의 2,3,4번 디지털 출력 핀이 저항에 연결되고, 저항은 LED의 양극에 연결한다. - pinMode()로 OUTPU.. 2015. 12. 31.
아두이노 개발환경 세팅 ●아두이노 보드 구입- 아두이노 보드를 구입한다. 아두이노 우노 보드의 경우 정품은 2~3만원, 호환보드(클론제품)의 경우 6000원 정도에 판다. 아두이노를 공부하고 테스트할 수 있게 아두이노 보드, 브레드보드, 기타 여러 부품등을 조합해서 스타터킷을 구성해서 판다. ●아두이노 통합 개발 환경 소프트웨어(스케치) 설치- 아래 사이트에서 스케치 프로그램을 다운받아 설치한다.https://www.arduino.cc/ ●아두이노 보드와 컴퓨터 연결- 아두이노와 컴퓨터를 USB로 연결한다. 아두이노 보드의 USB는 전원을 공급받을 수 있고, 컴파일한 프로그램을 업로드 받고 시리얼 포트를 통해 디버깅 메시지를 볼 수 있다. ●아두이노 보드용 드라이버 설치- USB로 아두이노 보드와 컴퓨터를 연결하니 자동으로 드.. 2015. 12. 26.
아두이노 기초 ●아두이노(arduino)- 입력,출력을 제어할 수 있는 프로세서와 메모리를 갖춘 소형 컴퓨터이다. 아두이노는 마이크로 컨트롤러를 컴퓨터에 연결한 후 명령어(코드)를 작성하여 메모리에 로드하면 기판에 연결한 여러가지 센서나 부품 등의 하드웨어 장비를 제어할 수 있다. 아두이노를 개발하기 위해선 아두이노 보드, 아두이노 개발 IDE(스케치), 브레드 보드, 점프선 및 기타 부품이 필요하다. ●아두이노 보드의 종류- 아두이노 우노->가장 많이 사용되는 기본적인 아두이노이다. atmega328p프록세스를 기본하고 보드의 핀 배열이 거의 표준과 같이 사용된다. - 아두이노 나노->아두이노 우노 보드와 거의 공일한 구성이지만 훨씬 작고 비싸다. 나노 보드는 USB-시리얼 어댑터가 장착되어 있지 않기 때문에 프로그.. 2015. 12. 21.
오라클 뷰(view) ●뷰(view)- 하나 또는 그 이상의 테이블이나 뷰를 이용하여 생성되는 논리적인 테이블로 실제 데이터는 저장하지 않는다.테이블의 전체 데이터중 일부칼럼, 일부 레코드만 보여주는 역할을 한다. 데이터의 보안과 사용편의성 때문에 사용한다. ex)create view test_viewas select empno, ename, sal from empwhere deptno=10; select * from test_view; ex)create view test_view2as select deptno, avg(sal) avg, sum(sal) sum from empgroup by deptno; select * from test_view2; 2015. 9. 2.
오라클 시퀀스(sequence) ●시퀀스(sequence)- 다중 사용자 환경에서 사용하는 숫자를 자동 생성한다. 테이블 또는 컬럼과는 독립적으로 생성,삭제된다. - ex)create sequence seq_test; --시퀀스 생성select seq_test.currval from dual; --시퀀스 현재 번호 조회select seq_test.nextval from dual; --시퀀스 다음 번호 조회 2015. 9. 2.
오라클 계층형 쿼리 ●계층형 쿼리 - 계층 관계가 있는 칼럼(외래키로 자기자신 테이블을 참조)이 있는 경우 계층 구조를 이용하여 데이터를 추출- 형식select 칼럼from 테이블start with 조건connect by [prior] [nocycle] ex)select empno, ename, mgr, connect_by_root ename, sys_connect_by_path(ename, '/')from empstart with mgr is nullconnect by prior empno = mgr; arex)select level,lpad(' ',(level-1)*2,' ')||ename, sal,deptnofrom empstart with ename = 'KING'connect by prior empno = mgr; 2015. 9. 2.
오라클 테이블 복사하기 ●테이블 복사하기 - create table 테이블명 as select 컬럼명 from 테이블명; ●데이터를 포함하지 않고 구조만 복사- create table 테이블명 as select 컬럼명 from 테이블명 where 1=0; 2015. 9. 2.
오라클 union, minus ●union- 연결된 select문의 결과 합을 보여준다. 중복된 것은 하나만 보유준다. ●union all- union과 같이만 중복된 것이 있어도 모두 보여준다. ●minus- 연결된 select문의 결과 차를 보여준다. ●ex-select * from test; -select * from test2; -select * from testunionselect * from test2; -select * from testunion allselect * from test2; -select * from testminusselect * from test2; 2015. 9. 2.
오라클 각종 함수들2 ●TO_CHAR- 숫자나 날짜형 자료를 문자로 변환한다.ex)select to_char(8000000,'999,999,999'), to_char(sysdate,'yyyy/mm/dd'),to_char(sysdate,'yyyymmdd') from dual; ●NVL(a,b)- a 데이터가 null일 경우 b로 변환해서 출력한다.ex)select comm, nvl(comm,'0') from emp; ●DECODE(a, b, c,d)- 조건함수이다. a데이터가 b와 같으면 c를 출력, 아니면 d를 출력한다.ex)select comm, decode(comm, 300, '300입니다', '300이 아닙니다') from emp; ●CASE~WHEN- decode함수와 비슷하지만 좀더 직관적인 함수이다.ex)selec.. 2015. 9. 2.
오라클 각종 함수들1 ●length- 인수의 길이를 반환한다.ex)select length('1234') from dual; ●lower- 인수를 소문자로 변환한다.ex)select lower('ABCD') from dual; ●upper- 인수를 대문자로 변환한다.ex)select upper('abcd') from dual; ●lpad - 인수의 왼쪽을 입력한 자리수가 되도록 입력한 문자로 채운다.ex)select lpad('111',5,0) from dual; ●trim- 인수의 좌우 공백을 제거한다.ex)select trim(' ABC ') from dual; ●substr- 인수의 문자열을 잘라낸다ex)select substr('ABC',0,2) from dual; ●avg- 칼럼의 평균을 구한다.ex)select a.. 2015. 8. 28.
오라클 칼럼 별명(alias), 합성연산자(||) ●컬럼별명(alias)- 컬럼 이름을 쓰고 공백 다음에 별명을 지어주거나 as를 사용하거나 큰따옴표를 사용하여 별명을 지어준다.ex)select job, job jj, job as jj2, job "jj3" from emp; ●합성연산자(||)- 하나의 칼럼과 문자열 또는 다른 칼럼을 연결시킨다.ex)select empno||'-'||ename||'-'||job from emp; 2015. 8. 28.
오라클 select, distinct, group by having, order by ●select 칼럼명 from 테이블명;- 칼럼명부문에 웬만하면 * 를 사용하지 말고 칼럼명을 적어주는게 좋다(서버 부하를 줄이기 위해)ex)select deptno from emp; ●distinct- 컬럼에서 중복을 제거하고 같은 값이면 하나만 출력한다.ex)select distinct(deptno) from emp; ●group by- 특정 칼럼을 기준으로 한 그룹으로 묶어서 합계, 평균, count 등에서 사용한다.ex)select deptno, avg(sal), sum(sal) from empgroup by deptno; ●having- group by 기준 칼럼,그룹핑 함수에 조건을 건다.ex)select deptno, avg(sal), sum(sal) from empgroup by deptn.. 2015. 8. 28.
오라클 현재 접속한 데이터베이스 이름, sid확인, 버전확인 ●select name from v$database- 데이터베이스명 확인 ●select instance from v$thread- sid 확인 ●select * from v$version- 현재 데이터베이스 버전 확인 2015. 8. 26.
오라클 sqlplus 기본 명령어(접속, 테이블리스트, 테이블정보,sql파일 실행) ●conn uid/pwd- 해당 uid의 데이터베이스에 접속한다. ●select * from tab- 현재 접속한 계정의 테이블 리스트를 출력한다. ●desc 테이블명- 해당 테이블의 칼럼리스트와 칼럼에 대한 구조를 나타낸다. ●start sql파일명 or @sql파일명- 파일명.sql 파일에 있는 sql문을 실행한다. cmd창에서 해당 파일이 있는 경로로 이동한 후 sqlplus실행한 다음 위 명령어를 실행하면 된다. 2015. 8. 26.
오라클 데이터베이스 시작, 종료 ●오라클 종료- shutdownn immediate - 가장 자주 사용되는 방법으로 실행중인 sql문장을 중지하고, 실행중인 트랜잭션이 있으면 rollback, 사용자의 새로운 로그인을 막고 db에 변경된 사항을 데이터파일에 기록한다. 사용자들이 로그아웃할때까지 기다리지 않고 db를 종료한다. ●오라클 시작- startup nomount -> startup mount -> startup open 2015. 8. 26.
오라클 sqlplus 접속, 계정생성, 계정삭제, 패스워드 수정 ●계정 생성 - cmd창에서 'sqlplus "/as sysdba"'를 입력해서 오라클에 접속한다 - 'create user 유저명 identified by 패스워드' 명령어로 계정을 생성한다. ●권한부여 - 'grant connect, dba, resource to 유저명' 명령어로 계정에 권한을 준다. ●계정 패스워드 변경 - 'alter user 유저명 identified by 패스워드' 명령어로 계정의 패스워드를 변경한다. ●계정 삭제 - 'drop user 유저명 cascade' 명령어로 계정을 삭제한다. 2015. 8. 25.
오라클 서버 설치 ●오라클 사이트(http://www.oracle.com/)에서 오라클 데이터베이스 설치파일을 다운받는다 ●파일 압축을 푼 뒤 두번째 파일의 database/stage/Components에 있는 파일들을 복사해서 첫번째 파일의 database/stage/Components경로에 복사한다. ●setup.exe로 설치한다. ●db를 설치할 경로를 선택하고 비밀번호를 입력한다. ●완료후 cmd에서 sqlplus를 실행했을때 실행되면 설치가 완료된것이다. ●sql developer 실행-sql developer를 실행하면 java설치경로를 지정하는 창이 뜬다. java설치경로에서 java.exe를 선택한다 ㅣ 2015. 8. 20.
웹 호스팅 장시간 접속 안할때 mysql 500에러 ●장시간 접속하지 않고 다시 접속하면 500에러가 나오고 새로고침 한번 하면 다시 제대로 나오는 오류->mysql서버에 일정시간 접속하지 않으면 mysql서버 연결이 끊긴다. 그래서 일정시간 마다 한번씩 mysql에 접속을 해주는 속성을 넣어줘야 한다. spring+ibatis의 경우 root-context.xml에 validationQuery를 넣는다. ex) 2015. 6. 17.
안드로이드 GCM ●GCM(Google Cloud Messaging)- 구글에서 제공하는 푸시 메시지 서비스이다. ●gcm 서비스 신청 - 구글 콘솔 사이트에 접속한 후 프로젝트를 생성한다.https://console.developers.google.com/project - API 및 인증에서 API를 클릭 한 후 Clou Messaging for Android에 들어가서 사용설정을 On으로 한다. - 사용자 인증정보에 들어가서 '공개API 엑세스'에서 새 키(서버키)를 만든다. - 서버의 IP를 입력한다. 아무것도 입력하지 않으면 모든IP허용이 된다. ● 아래 사이트에서 예제 소스를 다운받아 적용하기https://github.com/google/gcm - https://github.com/google/gcm에서 다운받은.. 2015. 5. 10.
안드로이드 SharedPreferences ●SharedPreferences- 데이터를 간단하게 저장할 수 있는 안드로이드에서 제공하는 클래스이다. ●예제- MainActivity.javapackage com.example.example; import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast; public c.. 2015. 5. 10.
안드로이드 자바 소켓서버 통신 ●소켓- 일상 용어에서는 전구를 끼울 수 있는 도구를 말한다. 자바언어에서는 네트워크를 제어하는 클래스를 의미한다.자바에서는 개발자가 네트워크 전문지식이 없어도 프로그래밍적으로 제어가 가능하도록 추상화시켜 제공해준다. ●예제 서버- ChatServer.javapackage chat; import java.io.IOException;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import java.util.Vector; public class ChatServer {//서버소켓 - 클라이언트의 접속을 받아들이는 클래스int port=7777;ServerSocket server;Vector connectList;.. 2015. 5. 10.
안드로이드 어싱크태스크(AsyncTask),로딩중 표시(ProgressDialog), 웹서버 연결 통신(HttpURLConnection) ●어싱크태스트(Async Task) - 네트워크 연결이므로, 연결시에 지연이 발생할 수 있다. 따라서 메인쓰레드(UI쓰레드)로 네트워크 접속을 시도하면 앱은 접속이 성공되고 응답을 받을때까지 동작을 못하게 된다. 따라서 안드로이드 최근버전부터는 메인쓰레드가 네트워크 접속을 시도하는것 자체를 금지한다. - 웹서버로부터 데이터를 가져와서 ListView 등에 출력하려면 동생쓰레드에서 가져온 데이터를 UI에 반영하는 작업이 필요한데, 안드로이드에서는 개발자가 정의한 쓰레드는 UI를 제어할 수 없도록 금지시켜놓았다. 그래서 Handler를 사용해야 하는데 이 작업은 번거롭다.그래서 AsyncTask라는 백그라운드 작업용 클래스를 지원하게 되었다. - AsyncTask = Thread + Handler ●로딩중 .. 2015. 5. 1.
자바스크립트 JSON ●자바스크립트 JSON(JavaScript Object Notation)- JSON은 원래 자바스크립트 데이터 객체이다. - JSON이란 데이터를 표현함에 있어 xml보다 더욱 단순하고 객체 표현방식이 기존의 개발자들에 익숙한 {객체표기법}을 따르므로 데이터 처리가 쉽다. ●예제- text.jsp 2015. 4. 26.
java JSON 라이브러리 ●자바JSON- 자바에서 JSON을 만들고 파싱을 해주는 기본 클래스가 없기때문에 라이브러리를 추가해줘야 한다. - 자바 JSON라이브러리는 여러가지가 있다. 아래 예제는 org.json 라이브러리를 사용했다.http://mvnrepository.com/artifact/org.json/json ●예제- text.jsp 2015. 4. 26.
안드로이드 JSONObject, JSONArray ●안드로이드 JSON - 안드로이드에서는 별도로 라이브러리를 추가할 필요없이 JSONObject, JSONArray 클래스를 사용하면 된다. ●예제- MainActivity.javapackage com.example.exam; import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject; import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.Toast; public class MainActivity extends Activity { @Overr.. 2015. 4. 26.
안드로이드 ViewPager, SQLite 예제 소스 ●ViewPager와 SQLite를 이용한 예제 - MainActivity.javapackage com.example.example1; import java.util.ArrayList; import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.support.v7.app.ActionBarActivity; public class MainActivity extends Action.. 2015. 4. 25.
안드로이드 오픈소스 ViewPagerIndicator ●뷰페이저인디케이터(ViewPagerIndicator)- 뷰페이저 화면이 이동할대 탭으로 해당 페이지가 어디에 위치해 있는지 알려준다.예)카카오톡 상단 탭 효과 - 아래 페이지에서 라이브러리를 다운 받은후 이클립스에 import해준다.http://viewpagerindicator.com/ - library프로젝트 우클릭후 properties에 들어가서 좌측android탭에서 is Library에 체크해준다. ●뷰페이저인디케이터 sample앱 추가- 먼저 다운받은 라이브러리 압축을 푼후 library폴더를 이클립스에 import해준다. (이 라이브러리를 사용할 프로젝트와 같은 workspace에 추가해야한다.) - library프로젝트 우클릭후 properties에 들어가서 좌측android탭에서 is L.. 2015. 4. 15.
안드로이드 SQLite ●sqlite- 안드로이드 로컬에서 사용하는 database이다. - 실제 스마트폰 단말기 내의 data/data/database경로에 파일이 만들어지게된다.에뮬레이터를 실행하고 DDMS에 들어가면 파일 구조를 볼수 있다.(실제 핸드폰으로 연결하면 파일구조를 다 보지 못하도록 막혀있다.) - 안드로이드 스마트폰은 보안상 접근을 허용하지 않는다. 따라서 개발자가 만일 sqlite 파일등을 스마트폰에 넣으려 할때, gui모드로 지원되는 DDMS는 사용할 수 없다.DDMS는 에뮬레이터에서만 의미가 있다. 안드로이드의 sqlite 관련 패키지에는 개발자가 데이터베이스 관리할 수 있는 여러 객체들을 지원해주므로, 실제 개발시엔 GUI모드로 하지말고 프로그래밍으로 처리한다. ●예제 - DatabaseMain.jav.. 2015. 4. 8.
반응형