본문 바로가기

2018/04286

애플워치 3 watchOS 4.2 업데이트 watchOS 4.2로 업데이트 했습니다. 구입하자마자 4.1로 업데이트하고 3주 만에 다시 업데이트 입니다. 용량은 149MB 이고 설치에 걸린시간은 1시간 20분 정도 걸린것 같습니다. 워치 충전시에 주의사항은 와치가 충전기에 연결되어 있어야하고, 최소 50% 이상 충전되어 있어야 한다고 합니다. 하지만 설치를 36%에서 충전기 연결해두고 진행했습니다. 다운받는 동안에 50%를 넘어가서 문제가 없었던것 같습니다. 이 업데이트에 포함된 새로운 기능, 기능 향상 및 오류 수정은 다음과 같습니다. - 홈 앱에 스프링클러 및 수도꼭지에 대한 HomeKit 지원을 추가함- Apple Watch Series 3에서 타사 앱의 새로운 운동 종류를 지원하여 다운힐 스노 스포츠를 실시할 때 거리, 평균 속도, 하강 .. 2018. 4. 20.
Apple Watch 3 GPS 42mm 스페이스 그레이 3주 사용기 3주전 Apple Watch 3 GPS 42mm 스페이스 그레이 알루미늄 케이스와 블랙 스포츠 밴드를 구입하게 되었습니다. 딱히 이걸 사려고 했던것은 아닌데, 정신을 차리고 보니 Apple Watch 가 손에 들려 있었습니다. 국내에는 아직 GPS 버전만 출시되고, CELLULAR 버전은 출시 되지 않았습니다. CELLULAR 버전의 오류 때문에 국내 통신사에서 아직 들이지 않기 때문이라는 예기들이 있더군요. 하지만 출시가 되었더라도 GPS 버전을 구입했을 것입니다. 사용하고 있는 폰이 iPhone 5s 인데, 여기서는 GPS 버전만 지원합니다. WATCH 3 CELLULAR 버전을 사용하려면 iPhone 6 이상이 있어야 합니다. 그래서 CELLULAR 버전은 줘도 못쓰는것 입니다. Stainless .. 2018. 4. 20.
자바스크립트 주기적인 실행(setInterval, setTimeout) 자바스크립트로 주기적인 작업을 실행하기 위해서 setInterval과 setTimeout 메소드를 사용할 수 있습니다. 두 가지는 비숫하지만 중요한 차이점을 가집니다. - setInterval 함수 : 일정한 시간 간격으로 작업을 수행하기 위해서 사용합니다.clearInterval 함수를 사용하여 중지할 수 있습니다. 주의할 점은 일정한 시간 간격으로 실행되는 작업이 그 시간 간격보다 오래걸릴 경우 문제가 발생할 수 있습니다. - setTimeout 함수 : 일정한 시간 후에 작업을 한번 실행합니다. 보통 재귀적 호출을 사용하여 작업을 반복합니다. 기본적으로 setInterval 과는 달리 지정된 시간을 기다린후 작업을 수행하고, 다시 일정한 시간을 기다린후 작업을 수행하는 방식입니다. 지정된 시간 사이.. 2018. 4. 20.
Oracle 테이블 및 프로시저 생성 스크립트 추출하기 데이터베이스를 다루는데 있어서 가끔 GUI 툴을 쓸 수 없는 경우가 있습니다. 또한 프로시저 같은 경우 아주 큰 용량의 경우 exp 를 통해서 덤프를 받은 파일로 복구를 할 때 제대로 생성이 안되는 경우도 있습니다. 이렇게 좋지 않은 환경이 겹칠 경우 부득이하게 SQL*Plus를 사용해서 필요한 곳을 부분적으로 덤프 하게 됩니다. 테이블이나 프로시저의 생성 스크립트를 추출하기 위해서 DBMS_METADATA 패키지의 GET_DDL 함수를 사용할 수 있습니다. 1. 생성 스크립트 확인 - 테이블명이 'TB_BOARD' 인 테이블의 생성 스크립트를 확인합니다. SELECT DBMS_METADATA.GET_DDL('TABLE','TB_BOARD') FROM DUAL; - 인덱스의 이름이 'IX_BOARD' 인.. 2018. 4. 20.
Oracle Sequence 만들기 (일련번호 생성하기) 데이터베이스에서 일련번호를 생성하는 것은 동시성 문제가 발생할 수 있어 간단한 작업이 아닙니다. 그래서 대부분의 데이터베이스에서는 일련번호 생성을 간단히 처리할 수 있는 기능들을 제공해 주고 있습니다. MS-SQL 서버에서는 컬럼에 identify 속성을 지정할 수 있고, MySQL 에서는 컬럼에 auto_increment 속성을 지정할 수 있습니다. Oracle에서는 테이블 속성으로 제공하지 않고 별도의 Sequence 객체를 생성해서 이용할 수 있습니다. 이러한 데이터베이스에서 제공하는 기능을 사용하면 동시성 문제에 신경을 쓰지 않고 간단히 처리할 수 있지만, 하나의 데이터베이스에 종속되는 단점도 있습니다. 오라클에서는 일련번호를 생성할 수 있는 Sequece 사용법을 알아보겠습니다. 1. 시퀀스 생.. 2018. 4. 20.
Oracle에서 테이블 복사하기 테이블 구조를 수정하거나 데이터의 조정이 필요해서 원본 테이블을 복사하여 작업하는 경우가 가끔 있습니다. 이럴 경우 사용할 수 있는 방법을 알아보겠습니다. 1. 임시 테이블 생성과 동시에 복사하기 TB_BOARD 라는 이름의 테이블을 TB_BOARD_TMP 라는 동일한 구조의 테이블을 만들고 데이터를 복사하는 방법입니다. CREATE TABLE TB_BOARD_TMP AS SELECT * FROM TB_BOARD; 이 명령으로 임시 테이블의 생성과 데이터의 복사를 동시에 할 수 있습니다. 이 때 키와 인덱스는 생성되어지지 않습니다. 필요하다면 별도로 생성하여야 합니다. 2. 임시 테이블을 따로 만들고 데이터를 복사하는 방법입니다. 2-1. 테이블 구조가 동일할 때 INSERT INTO TB_BOARD_T.. 2018. 4. 20.
Java 에서 난수(random number) 생성하기 Java에서 난수를 발생시키는 방법은 두 가지가 있습니다. java.lang.Math 클래스의 정적메소드인 random() 메소드를 사용하는 방법과 java.util.Random 클래스를 사용하는 방법 입니다. 발생되어지는 난수는 Pseudo Random Number(의사 난수) 입니다. 이상적인 난수에 가까운 난수 입니다. 난수를 발생시킬때는 seed값에 대한 이해가 필요합니다. seed 값이란 간단히 말해서 난수를 발생하는데 기준이 되는 값이라고 생각하면 될것 같습니다. 예로 난수를 발생하는 객체 두 개를 동일한 seed로 생성하면 두 객체가 발생하는 난수는 같은 값이 동일한 순서로 발생되어 집니다. 동일한 조건하의 반복되는 시뮬레이션 등에 사용되어질 수 있겠습니다. 대부분의 경우는 현재 시간등 계속.. 2018. 4. 20.
스프링 시큐리티에서 중복 로그인 방지 및 세션 고정 공격 방지 스프링 시큐리티를 사용하면 동일한 아이디로 중복 로그인 방지 하는것을 간단히 구현할 수 있습니다. 또한 세션 고정 공격을 기본적으로 방어하도록 되어 있습니다. 이 두 가지를 같이 이야기 하는 이유는 두 가지가 같은 태그로 설정이 되기 때문입니다. 먼저 중복 로그인을 방지하는 방법을 알아보겠습니다. 예제 소스는 글 하단에 첨부하여 두었습니다. 이 예제는 "스프링프레임웍 - Spring Security(1) : 기본 설정" 글의 예제를 기본으로 하여 테스트 하였습니다. 스프링 시큐리티 설정파일인 /src/main/webapp/WEB-INF/spring/security-context.xml 파일의 부분에 다음을 추가합니다. 태그를 이용해서 중복 로그인 방지를 설정합니다. 각 속성의 의미는 다음과 같습니다. -.. 2018. 4. 20.
jQuery .load() 메소드 - 페이지 내용 동적 교체 웹 페이지의 내용을 동적으로 교체하기 위해서 Ajax로 서버에서 데이터 json 형식으로 받아 HTML 요소를 생성하여 페이지내의 원하는 위치의 내용을 바꾸는 작업을 많이 합니다. jQuery의 .load() 메소드는 주어진 URL로부터 HTML 데이트를 받에서 jQuery 셀렉터로 선택된 위치에 넣어 줌으로써 동적으로 페이지의 내용을 교체하는 작업을 간단하게 처리할 수 있도록 해줍니다. 아래 코드는 간단한 사용법을 보여주고 있습니다. 페이지내에서 아이디(id)가 "result" 인 요소를 선택하고 그 요소의 내용을 "load/test.php" 페이지가 반환하는 내용으로 채웁니다. jQuery .load() 메소드 사용법은 다음과 같습니다. 세 가지 인자를 가질 수 있습니다. .load( url [, d.. 2018. 4. 20.
iPhone 5s에 iOS11.1.2 업데이트 iOS11.1.1 이 업데이트된지 일주일이 좀 더 지난거 같은데, 11.1.2가 업데이트 되었습니다. 업데이트 주기가 빨라졌네요. 새로 나온 폰들이 문제가 많은것 같습니다. 용량은 60MB 정도이고, 설치에는 20분 정도 걸린것 같습니다. 이번 업데이트는 iPhone X 에서 발생하는 다음 문제점이 수정 되었다고 합니다. - 온도가 급격히 떨어질때 아이폰 X의 터치가 동작하지 않는 문제점- 아이폰 X 에서 라이브 포토와 비디오 캡쳐에서 뒤틀림이 발생하는 문제점 이번에 보안 업데이트 없다고 합니다. 수정된 문제점도 iPhone X 에서의 것들만 있습니다. iPhone 5s를 사용하는 입장에서 이번 업데이트는 건너뛰어도 좋았을것 같은데, 빨간 숫자 배지만 보면 가만 두지 못하는 편집증적인 증세 때문에 업데이.. 2018. 4. 20.
Oracle 두 날짜 사이의 일수 차이 와 분 차이 구하기 오라클에서 두 날짜 사이의 차이 일수를 구하는 방법은 간단합니다. 단순히 두 날짜를 빼주면 되겠습니다. 이때 주의할 점은 날짜 빼기를 하면 시간 부분도 계산이 되기 때문에 소숫점 숫자가 됩니다. SELECT SYSDATE - TO_DATE('20171110', 'YYYYMMDD') FROM DUAL; 결과)11.96041666666666666666666666666666666667 TO_DATE('20171110', 'YYYYMMDD') 부분은 시간 부분이 모두 0 이지만 SYSDATE 는 시간 부분이 있기 때문에 소수점 숫자가 나오게 됩니다. 단순히 날짜의 차이만을 구하기 위해서는 시간부분을 모두 0으로 처리해야 합니다. 다음과 같이 할 수 있습니다. SELECT TRUNC(SYSDATE) - TO_DA.. 2018. 4. 20.
iPhone 5s에 iOS 11.1.1 업데이트 하기 iOS 11.1 업데이트 이후 2주 만에 iOS 11.1.1 버전이 업데이트 되었습니다. iOS 11.1 이 설치되어 있는 iPhone 5s 에서 설치파일의 크기는 41.5 MB 이고, 설치 시간은 26분 정도 걸렸습니다. 업데이트 내용은 다음과 같습니다. - 키보드 자동 수정과 관련된 문제를 수정함- 'Siri야'의 동작이 중단되는 오류를 수정함 보안 업데이트는 iOS 11.1과 같다고 합니다. iOS 11.1 업데이트 후에 폰에 좀 이상한 증세들이 있었습니다. 집에서 안테나 숫자가 불안정해지고, 전용 충전기로 충전이 안되어서 USB 포트에 연결해서 충전하고 있으며, 자동차에 케이블로 연결시 통신 오류가 자주 발생하는 문제가 생겼습니다. 가만히 놓아둔 폰의 시리가 저절로 동작하기도 하였습니다. 하지만 .. 2018. 4. 20.
Oracle 툴에서 & 입력 또는 조회하기 Oracle 툴인 SQLPlus 나 SQL Developer에서 쿼리중에 & 와 같은 특수 문자를 사용하면 툴 자체의 기능으로 인식되어 처리가 되지 않습니다. INSERT TB_TEST INTO (1, '김&이');-- orSELECT * FROM TB_TEST WHERE NAME = '김&이'; 이때 다음 명령을 먼저 내린후 쿼리를 실행합니다. SET DEFINE OFF 이러한 상황은 SQL Plus나 SQL Developer등의 툴에서 발생합니다. 프로그래밍으로 쿼리를 실행하는데는 문제가 없습니다. 2018. 4. 20.
jQuery UI datepicker - 자바스크립트 달력 사용하기 jQuery UI 의 datepicker 위젯은 웹 프로그램에서 날짜를 선택할 수 있는 자바스크립트 달력 입니다. 간단한 사용방법을 알아보겠습니다. jQuery UI 는 jQuery 플러그인으로 만들어 졌으므로 jQuery가 있어야 합니다. 예제에서는 jQuery는 다운로드 받아서 쓰지 않고 CDN 을 사용해서 테스트 했습니다. jQuery UI 는 http://jqueryui.com/download/ 에서 다운로드 받을 수 있습니다. 필요한 위젯만 선택하여 다운로드 받는것이 가능합니다. 모든 위젯이 포함되어 있는 배포판은 http://jqueryui.com/download/all/ 에서 다운 받을 수 있습니다. 달력의 한글화를 위한 파일은 https://github.com/jquery/jquery-ui.. 2018. 4. 20.
안드로이드 크기 단위(dp, sp, pt, px, mm, in) 안드로이드 위젯의 크기를 지정할 때 사용되는 단위에 대해서 알아보겠습니다. 결론부터 말하자면 위젯의 크기는 "wrap_content", "match_parent" 또는 dp 단위를 사용하는것이 좋습니다. 텍스트의 크기는 sp 단위를 사용하는것이 권고 됩니다. 본론으로 들어가기전에 몇가지 용어에 대해서 알아보겠습니다. - 화면크기 : 화면의 실제 물리적 크기이미, 화면의 대각성 크기로 측정됩니다. 단순화하기 위해 Android에서는모든 실제 화면 크기를 네 가지 일반화된 크기 그룹으로 분류합니다 + 초대형 화면 : 최소 960dp x 720dp + 대형 화면 : 최소 640dp x 480dp + 보통 화면 : 최소 470dp x 320dp + 소형 화면 : 최소 426dp x 320dp - 화면 밀도 : .. 2018. 4. 20.