방안의 온도와 습도의 변화 추이를 확인하기 위해서 구입한 샤오미 블루투스 온습도계 2세대. 크기는 손바닥 크기보다 작어서 멀리서 온도와 습도를 보기에는 부적합하다. 책상 같은 가까운 곳에 놓아두거나 거나 미홈(Mi Home) 앱과 연동하여 온도를 확인하는 용도로 사용해야 할 듯하다. 건전지는 포함되지 않아서 별도로 구입해야 한다. 다이소에서 CR2032 건전지(1,000원)를 구매하면 된다. 알리익스프레스 같은 곳에서 해외직구로 구매하면 택배비 포함하여 오천원 전후로 구매가 가능하다. 미홈 앱을 켜면 블루투로 연결하여 온도, 습도 데이터를 동기화 할 수 있다. 시간대별 일자별로 온도를 확인할 수 있어서 에어컨, 선풍기, 보일러 등 적절한 시간대에 구동 되도록 활용 할 수 있을 듯 하다. 손바닥 크기보다 ..
오라클 프로시저를 만들어서 사용하다 보면 아래와 같은 오류가 발생할 수 있다. 오류가 발생하는 이유는 CURSOR 변수에 값이 할당되지 않은 상태에서 프로시저의 실행이 끝나면 발생한다. ORA-01023: 커서 문맥이 없습니다(부적합한 커서번호) 아래의 프로시저를 보면 out_cursor에 값이 할당되기 전에 프로시저의 실행이 중단될 수 있기 때문에 주의해야 한다. CURSOR에 값이 할당되기 전에 프로시저의 실행이 중단된다면 오류가 발생한다. 커서(CURSOR)에 값이 할당되기 전에 RETURN이 되는 부분이 있는지 확인해 봐야 한다.
오라클에서 여러 행의 컬럼 값을 하나로 합치기 위해서는 XMLAGG(오라클 9i 이하), WM_CONCAT(오라클 10g~11g R1) 함수를 사용하였다. 오라클 11g R2 버전부터 WM_CONCAT 함수를 사용을 할 수 없으며 LISTAGG 함수를 사용해야 한다. (WM_CONCAT, XMLAGG 사용법) LISTAGG( ) 함수는 그룹 함수이기 때문에 GROUP BY 또는 PARTITION BY 절과 함께 사용해야 한다. WM_CONCAT 함수는 DISTINCT를 사용할 수 있으나, LISTAGG 함수는 사용할 수 없다. 그러나 정규식 함수를 사용하여 중복을 제거할 수 있으며 ORDER BY 절을 사용할 수 있어서 값의 정렬이 가능하다. LISTAGG([합칠 컬럼명], [구분자]) WITHIN GR..
안경을 쓴다면 안경을 닦는 부분에 민감할 수밖에 없다. 특히 삼겹살 같은 걸 먹고 생긴 기름때는 닦아도 닦아도 깨끗해지지 않고, 안경 닦이 천을 많이 사용하면 렌즈에 흠이 많이 생길 수밖에 없다. 평소 초음파 세척기를 한 번 구매해 보고 싶었지만 후기가 좋지 않아 생각만 하고 구매하지는 않았다. 샤오미 초음파 세척기 Dr.Ozawa (DX-C1-001) 제품을 우연히 보고 저렴에 가격에 샤오미 제품이니 구매해 보았다. 중국식 플러그이기 때문에 별도의 변환 플러그를 구매해야 한다 안경을 세척할 때는 주방 세제를 한 방울 넣어야 효과가 있다 (비싼 렌즈 주의) 소음이 조금 있어서 한 밤중에는 사용 시 주의해야 한다. 드라마틱 한 효과는 없기 때문에 보조 세척기구로 적합하다. 매일 사용하기에는 사용상 조금..
오라클에서 컬럼을 변경 할 경우 ALTER TABLE를 사용하며, 컬럼의 데이터 타입, 길이를 수정할 때는 MODIFY, 컬럼명을 수정할 때는 RENAME COLUMN을 사용하면 된다. 컬럼 데이터 타입 변경 --데이터 타입 변경 : NUMBER(4) -> VARCHAR2(4) ALTER TABLE emp MODIFY editid VARCHAR2(4); ALTER TABLE [테이블명] MODIFY [컬럼명] [새로운 데이터타입(길이)] 데이터 타입을 변경해야 하는 경우 해당 컬럼의 값을 모두 지워야 변경이 가능하다. 컬럼 길이(크기) 변경 --데이터 길이(크기) 변경 : VARCHAR2(4) -> VARCHAR2(5) ALTER TABLE emp MODIFY editid VARCHAR2(5); ALTE..
안드로이드 폰(갤럭시)에서 아이폰으로 기기를 변경할 경우 불편한 점이 아주 많을 것이다. 스마트폰이라는 점에서 서로 비슷할 것 같지만 안드로이드와 아이폰(iOS)는 서로 지향하는 바가 다르기 때문에 이점을 잘 이해해야 한다. 안드로이드는 개방적이며 사용자의 편의성에 초점이 맞춰진 반면, 아이폰(iOS)는 폐쇄적이고 보안 기능이 철저하며 직관적인 UI를 추구한다. 아래는 안드로이드 폰에서 가능하지만 아이폰에서 불가능한 것을 간단히 정리한 내용이다. 아이폰에서 안되는 것 뒤로가기 버튼 없음 통화 녹은 안됨 카메라 셔터 소리 무소음 안됨 파일 관리 불편함 (PC파일 복사 안됨, 앱 간의 파일 공유 안됨) 유튜브 화질이 낮음 (안드로이드에 비하여) 삼성페이 사용 불가 멀티 태스킹 안됨 (여러 앱을 동시에 실행)..
오라클 테이블에 컬럼을 추가하기 위해서는 ALTER TABLE을 사용한다. 컬럼을 추가하면 테이블 컬럼의 마지막 순서에 추가가 되며, 컬럼 순서의 중간에 컬럼을 추가할 수는 없다. 오라클 12c 부터는 조금 쉽게 컬럼의 순서를 변경할 수 있도록 기능이 추가 되었으며, 이전 버전에서 컬럼 순서를 변경하기 위해서는 테이블을 재생성 해야 한다. 컬럼 추가, 삭제 --컬럼 추가 1 ALTER TABLE emp ADD email VARCHAR(25); --컬럼 추가 2 (기본 값, NOT NULL 지정) ALTER TABLE emp ADD email VARCHAR(25) DEFAULT 'test@test.com' NOT NULL; --컬럼 삭제 ALTER TABLE emp DROP COLUMN email; 컬럼 ..
오라클에서 테이블을 만들기 위해서는 CREATE TABLE을 사용하여 컬럼명, 데이터 타입을 정의하여 테이블을 생성하면 된다. 아래는 EMP(사원) 테이블을 만드는 예제이다. ① 테이블 명, ② 컬럼 명 - 테이블, 컬럼 명의 길이는 30byte 문자 (Oracle 12c R2 부터는 128byte) - 문자(영문, 한글), 숫자, 특수문자(_, $, #)만 가능 - 반드시 문자로 시작 ③ 데이터 타입 - NUMBER(4) : 4자리의 가변 길이 정수 - NUMBER(7,2) : 7자리의 가변 길이 정수와 2자리의 가변길이 소수 - VARCHAR2(10) : 10byte의 가변 길이 문자 ④ 기본 값 - 테이블에 값이 입력(INSERT) 될 때 값이 없으면 기본으로 생성되는 값 - DEFAULT [값(문..
상상과 공상을 전설로 만든 천재 프로그래머! 조던 메크너 페르시아의 왕자라는 게임은 누구나 한번쯤은 들어봤을 것이다. MS-DOS용 게임으로 큰 인기를 얻었으며, 그 후 콘솔용 게임으로도 다양한 시리즈가 출시되었다. 페르시아의 왕자 게임만큼 게임을 만든 개발자 조던 메크너에 대해서는 많이 알려져 있지는 않다. 수많은 게임 개발자 중 한 명이겠지만... - 페르시아의 왕자 게임 - 페르시아의 왕자 게임을 만들면서 조던 메크너가 작성한 일기를 책으로 출간하였는데, 책 내용을 보면 자신의 꿈을 선택할 것인지 당장 돈을 벌수 있는 일을 선택할 것인지 고민하는 내용이 나온다. "조던! 뭐하는 거야? 넌 지금 인생을 거꾸로 가고 있어. 영화 제작자가 되고 싶어 했잖아. 이제는 앞으로 나아가야 할 때야! '애플 컴퓨..
C#에서 DataTable를 사용하다 보면 특정 컬럼의 값으로 행을 정렬해야 할 상황이 생긴다. 이럴 때는 다양한 방법이 있지만 DataTable 기본 속성 Sort를 사용하면 쉽게 정렬이 가능하다. 여러 개(Multi) 컬럼을 조합하여 정렬도 가능하다. 아래의 예제 중 상황에 맞는 방법을 사용하면 된다. 1. DataTable Sort 속성을 사용하는 방법 DataTable dt = new DataTable(); // ... 생략 // 오름차순 dt.DefaultView.Sort = "HIREDATE ASC"; // 내림차순 dt.DefaultView.Sort = "HIREDATE DESC"; // 여러개 컬럼을 조합하여 정렬 dt.DefaultView.Sort = "JOB ASC, HIREDATE D..