본문 바로가기

프로그래밍458

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.
mysqldump를 사용하여 MySQL(MariaDB)백업하기 MySQL 또는 MariaDB를 백업하는 간단한 방법인 mysqldump 프로그램을 사용하는 방법은 알아봅니다. sqlyog와 같은 GUI 툴을 사용해서 하는게 간편하지만 명령행 툴을 사용할 수밖에 없는 경우도 있습니다. 알아둬서 나쁠건 없겠습니다. 1. 전체 데이터베이스 백업 C:\>mysqldump -uroot -p비밀번호 --all-databases > D:\backup\all_db.sql or C:\>mysqldump -uroot -p비밀번호 -A > D:\backup\all_db.sql 모든 데이터베이스의 생성 스크립트 및 데이터가 D:\backup\all_db.sql 파일로 생성됩니다. 2. 데이터베이스 지정하여 백업하기 C:\>mysqldump -u아이디 -p비밀번호 dbname > D:\>.. 2018. 4. 20.
안드로이드 문자열 리소스 만들고 사용하기 안드로이드 앱의 버튼, 레이블, 텍스트 뷰 등에 사용되어지는 문자열들은 각각의 요소에 직접 적을 수도 있지만 하나의 자원 파일(strings.xml)에 정의해 두고 참조해서 사용하는 것을 권장 합니다. 이렇게 하면 같은 내용의 문자열을 앱 내의 여기 저기에서 사용하지 않아도 되므로 크기를 줄일 수 있고, 변경시에도 리소스 파일 한군데에서만 변경하면 되므로 쉽게 변경 할 수 있고, 오타 등의 오류도 줄일 수 있습니다. 먼저 테스트용 프로젝트를 만듭니다. Create Android Project - Application name : HelloWorld - Company domain : pentode.tistory.com Target Android Devices - Phone and Table에 체크 - AP.. 2018. 4. 20.
데이터베이스에서 null 과 빈 문자열(empty string)의 차이점 테이블의 NULL 허용 필드에 데이터를 넣을 때 빈 문자열(empty string)을 넣으면 어떻게 될까요? 아래의 두가지 쿼리가 어떻게 동작할지를 말하는 것입니다. INSERT INTO tb_test (id, name) VALUES (1, NULL); INERRT INTO tb_test (id, name) VALUES (2, ''); 1. Oracle 오라클에서는 NULL과 빈문자열 '' 이 모두 NULL 로 처리 됩니다. 위에서 id 가 1, 2 인 행의 name은 모두 NULL 이 들어갑니다. SELECT * FROM tb_test WHERE name IS NULL; 위와 같이 쿼리하면 id가 1, 2인 행이 모두 조회됩니다. 데이터베이스에서 NULL은 등호(=)로 비교할 수 없습니다. 반드시 IS.. 2018. 4. 20.
MySQL locking - Table-Level Locking, Row-Level Locking, Optimistic Locking 웹 프로그래밍은 기본적으로 다중 사용자 환경입니다. 동일한 자원에 여러 사용자가 동시에 접근하는 상황이 발생할 수 있습니다. 쇼핑몰에서 물건을 구매하는 상황을 생각해 봅시다. 두 명의 사용자가 재고가 하나밖에 없는 제품을 조회하고, 동시에 구매를 한 상황입니다. 서버로 요청이 넘어가면 서버에서는 다음 세 단계를 거쳐 구매를 처리한다고 가정해 봅니다. 1) 다시 한번 재고를 확인합니다.2) 재고를 감소 시킵니다.3) 구매정보를 입력합니다. 재고를 확인하고 구매할 수 있다고 판단한 후에 재고를 감소하기 전에 다른 요청을 처리하는 쓰레드 또는 프로세스가 재고를 확인하게 되면 둘 다 구매 할 수 있다고 판단하게 되고 구매 처리가 되어 버립니다. MySQL 데이터베이스를 사용하는 경우 이런 환경에서 어떻게 처리하.. 2018. 4. 20.
iPhone 5s에 iOS 11.1 업데이트 기기는 iPhone 5s 운영체제는 iOS 11.0.3 에서 11.1 로 업데이트 했습니다. 업데이트 용량은 245.8MB 이고 업데이트 시간은 다운로드와 설치에 35분정도 걸렸습니다. 업데이트 후 집에서 안테나가 두 개 밖에 안뜨는데, 이게 업데이트로 인한 문제인지 기지국 사정인지는 좀 더 지나봐야 알 수 있겠습니다. 그외에 프로그램 실행이나 와이파이 연결, 배터리 등은 문제가 없는것 같습니다. 1. 새로워진 기능 및 오류 수정 - 70여 개의 이모티콘이 새로 추가 되었다고 합니다. 그런데, 받는쪽도 iOS 11.1 이라야 추가된 이모티콘을 볼 수 있다네요. 나에겐 별 의미가 없군요. 이모티콘은 쓰지 않아서 이모티콘 키보드도 지워버린 상태 이네요. - 사진앱에도 일부 사진이 흐릿하게 나올 수 있는 문제.. 2018. 4. 20.
Oracle에서 VARCHAR2 컬럼을 CLOB으로 변경하기 VARCHAR2(4000) 으로 사용하던 컬럼에 데이터를 더 많이 저장할 필요가 생겨서 CLOB 타입으로 변경하려고 합니다. ALTER 명령으로 바로 변경하려면 에러가 발생합니다. ALTER TABLE table_name MODIFY (CONTENTS CLOB) 오류 보고 - ORA-22858: 데이터유형의 변경이 부적당합니다 22858. 00000 - "invalid alteration of datatype" *Cause: An attempt was made to modify the column type to object, REF, nested table, VARRAY or LOB type. *Action: Create a new column of the desired type and copy the .. 2018. 4. 20.
스프링프레임웍 다국어 메세지 프로퍼티 파일에 한글 바로쓰기 다국어 처리를 위한 메세지 프로퍼티 파일을 이클립스의 기본 에디터로 열어보면 다음과 같이 한글이 깨어져 보입니다. 실제로 유니코드로 저장되어 있는것입니다. fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! 예전에는 한글로 파일을 만들고, 변환 프로그램을 이용해서 서로 변환하여 사용했었습니다. 이제는 유니코드를 바로 보고 편집할 수 있는 이클립스 플러그인들이 나와서 편리하게 사용할 수 있습니다. 이런 플러그인을 통해서 위의 파일을 보면 아래 처럼 보이고, 바로 편집할수도 있습니다. fail.common.msg=에러가 발생했습니다! 이클립스에 유니코드를 지원하는 프로퍼티 에디터 플러그인을 설치하는 방법을 알아보겠습니다. 전자정부.. 2018. 4. 20.
전자정부표준프레임워크 Spring Security 사용시 로그인한 사용자정보에 추가정보 넣기 전자정부표준프레임워크에서 스프링 시큐리티가 적용되어 있을 때 로그인한 사용자의 정보를 얻기 위해서는 다음과 같이 사용합니다. import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import egovframework.com.cmm.LoginVO; ... // 로그인 여부 확인 Boolean isLogin = EgovUserDetailsHelper.isAuthenticated(); // 로그인한 사용자 정보 LoginVO user = null; if(isLogin) { user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); } 로그인 후 세션에 저장되어 있던 Log.. 2018. 4. 20.
전자정부표준프레임워크 Controller에 AOP 적용하기 전자정부표준프레임워크 Business 템플릿에서 Controller에 AOP를 적용해 보겠습니다. 1. 컨트롤러에 적용될 테스트 클래스입니다. package com.tistory.pentode.log; public class TestAspect { public void callFromController() { System.out.println("컨트롤러에 적용된 Aspect 입니다."); } } 2. context-aspect.xml 파일과 context-syslogaop.xml 파일에 예외 처리 및 로그를 남기기 위한 AOP가 적용되어 있습니다. 하지만, 여기서는 컨트롤러에 대한 AOP 를 추가하더라도 동작하지 않습니다. 루트 컨텍스트에서는 서비스와 DAO 객체만 로딩하고, 컨트롤러 객체는 없기 때문입.. 2018. 4. 20.
CSS - display 와 visibility 프로퍼티 사용하기 화면에서 HTML 요소를 숨기거나, 다시 보여주기 위해서 display 또는 visibility 프로퍼티를 사용합니다. 이러한 작업을 하기 위해서 display 프로퍼티는 none과 block 또는 inline 값을 사용하고, visibility 프로퍼티에서는 hidden과 visible 값을 사용합니다. 화면에서 HTML 요소를 숨기는 작업을 함에 있어 이 두 가지 프로퍼티에는 큰 차이가 존재합니다. visibility:hidden 을 사용하면 그 요소가 차지하던 공간은 그대로 유지되고, 화면에 보이지만 않게 됩니다. display:none 을 사용하면 그 요소가 아예 없었던것 처럼 처리됩니다. 레이아웃에 변화가 오게 되는 것입니다. 두 가지의 프로퍼티의 특성을 잘 고려해서 사용해야 하겠습니다. dis.. 2018. 4. 20.
CKEditor 한글 파일명 이미지 업로드 에러(Spring Framework) 스프링 프레임웍에서 CKEditor에 한글 파일명의 이미지를 업로드 할때 다음과 같은 오류가 발생하는 경우 입니다. 업로드할 수 없는 확장자의 이미지를 업로드하였다는 메세지인데 실제 업로드한 이미지는 업로드 가능한 확장자를 가진 이미지일 경우 입니다. 로그를 확인해보니 한글 파일명이 깨져서 확장자를 판단하지 못해서 발생하는 에러입니다. 서블릿에서 POST 방식으로 보내진 데이터의 엔코딩을 지정하기 위해서는 request.setCharacterEncoding("utf-8"); 처럼 지정할 수 있습니다. 모든 서블릿에 매번 지정하게되면 중복된 코드를 계속 적어야 하므로 스프링 프레익웍에서는 엔코딩 필터를 제공합니다. 이 엔코딩 필터는 모든 다른 필터보다 먼저 나와야 전체에 적용이 됩니다. CKEditor 이.. 2018. 4. 20.