본문 바로가기

전체

[Spring] 기본 생성자가 없는 객체 바인딩시키기 참고) Bean 설정이 아닙니다. Controller에서 매핑된 URL로 메서드가 실행되는데요~ 이 경우 파라메터에 모델을 선언했다면 URL queryString에 있는 프로퍼티 값이 모델 멤버(setter)와 동일하다면 자동으로 Binding됩니다. public class Foo { private int id; public void setId(int id) { this.id = id; } public int getid() { return this.id; } } @Controller public class FooController { @RequestMapping("/foo") public String getFooView(Foo fooModel) { return "foo"; } } - 인자가 없는 기본 생..
[MySQL] 두개의 컬럼을 IN 절로 비교하기 쿼리 조건을 구성하다보면 멀티키와 같은 컬럼 중 일부를 제외하고 싶을 때가 있습니다. 1건이 아니라 여러건을 조회할 때 기대치 : 1-a, 2-b, 3-c만 원할 때 SELECT * FROM foo WHERE id IN (1, 2, 3) AND bar IN ('a', 'b', 'c') 로 구성하면 1-a, 1-b, 1-c.. 3-b, 3-c가 조회됩니다. 교차로 적용되기 때문입니다. 그렇다면 명확하게 1-a, 2-b, 3-c만 매칭하려면.. 정확히 매칭 SELECT * FROM foo WHERE (id, bar) IN ((1, 'a'), (2, 'b'), (3, 'c')) 이 경우 IN절 비교 시 2개의 컬럼을 조합하여 비교합니다. id가 1이고 bar가 'a'인 경우, id가 2이고 bar가 'b'....
[PHP] 문자를 hex로 바꾸고 다시 복구하기 $hangul = "가"; // hex로 만듭니다. $hex_hangul = bin2hex($hangul); echo $hex_hangul; // 다시 문자로 만듭니다. $decode_hangul = pack("H*", $hex_hangul); echo "\n$decode_hangul\n"; - http://php.net/manual/kr/function.bin2hex.php 이미 hex화된 영문자를 아스키 코드 값으로 복구하기 $ascii_chr = chr(hexdec($hexString));
[PHP] AES128/ECB 복호화 하기 이전 쓰레드에서 Java와 MySQL에서 AES128/ECB의 암호화/복호화 개발을 진행했습니다. 이번에는 PHP로 복호화하는 방법을 소개합니다. 사전에 php-encrypt 확장 모듈 설치가 필요합니다. 관련 글은 http://seongtak-yoon.tistory.com/49를 참고해주세요. 참고로 암호화된 데이터는 AES128/ECB -> Base64로 암호화되었습니다. 복호화는 당연히 반대로 Base64 -> AES128/ECB의 과정이 되어야합니다. PHP에서 복호화 함수를 제공하고 있습니다. - http://php.net/manual/kr/function.mcrypt-decrypt.php 참고) base64_decode($encode_data)를 통해서 base64를 복호화한 후 이 데이터를 ..
[PHP] php-mcrypt 모듈 설치하기 Java와 MySQL에 이어서.. PHP언어를 통해 AES 암호화를 진행해야하는 일이 있었습니다. PHP언어의 양방향 암호화는 mcrypt_encrypt함수를 통해 진행할 수 있습니다. 그런데.. 이 함수를 사용하려면 php-mcrypt 모듈 확장을 설치해야합니다. 일반적으로.. yum을 통해 설치할 수 있는데요. yum list php-mcrypt yum install php-mcrypt - You need to be root to perform this command. 라는 메세지가 뜨면 sudo yum list php-mcrypt 명령어 혹은 root 계정으로 수행합니다. 참고 : http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_php-mcrypt_%E..
모델 클래스에 인터페이스 구현 설계에 대한 내용 웹 프로그래밍에서 MVC패턴을 사용하는데 Model에 대해 인터페이스를 만드는 것이 과연.. 좋을까? StackOverflow The general answer is no, because you should never add code without having a specific, concrete reason for it, and there is no general reason for such an interface. 일반적인 대답은 "노"다. 모델에 인터페이스를 구현하는 것은 명확한 이유없이 코드를 추가하면 안되기 때문이다. 그리고 인터페이스 대한 일반적인 이유가 아니다. That being said, sometimes there can be a good reason. 그렇긴해도, 때때로 좋은 사유가 ..
Vim 오픈시 문자 Charset(Encoding)이 다를 때, 변환 방법 vi 특정파일.txt를 열었더니.. 엇.. 나는 환경이 UTF-8인데 파일 내용이 euc-kr이다. 한글이 다 깨지네 ㅠ charset을 변경해서 다시 접속해야되나? 라는 생각이 들겠지만 vi 명령어를 통해 간단히 일시적으로 변환할 수 있습니다. :e ++enc=euc-kr - utf-8로 보는 것을 euc-kr로 변환시켜 보여준다. vi가 아닌 cat을하는데 깨져보인다면? - 우회 방법 - cat 파일 | grep '패턴' > temp 로 하게되면 temp파일이 생성되고 vi로 열어서 위에 말해준 방법을 이용하면 된다.
package javax.crypto does not exist package javax.crypto does not exist 라는 에러는 JDK의 jce.jar를 찾지 못해 발생하는 에러입니다. 사실.. 윈도우 로컬 개발환경에선 Maven Test, Junit Test 모두 성공해서 실패하길래 당황했는데요~.. 이를 해결하기 위해선 컴파일 시점에 jce.jar의 경로를 주입시켜줘야합니다. bootclasspath="${java.home}/lib/rt.jar:${java.home}/lib/jce.jar" 혹은 메이븐의 pom으로도 수정이 가능합니다. Maven Pom.xml ${java.home}/lib/rt.jar:${java.home}/lib/jce.jar 참고 - http://stackoverflow.com/questions/14935447/why-am-i-g..
exact 타입으로 문자 검색하기 http://www.regexr.com/ 이곳에서 정규식 테스트가 가능합니다. 일반적으로 ^기호는 시작, $기호는 끝나는 경우 매칭이됩니다. ^123$ 은 정확히 123인 경우에 매칭이됩니다.흔히 Linux에서 grep을 할 때 사용합니다. 그런데 개발 툴에서 뭔가 찾고 싶은데 정확히 일치하는 것만 찾을려고 ^123$ 했더니 매칭이 안됩니다... 아마 123이라는 문자만 단독으로 존재하지 않아서 매칭이 안된 것 같네요. 우회적으로(?) \b (공백) 기호를 사용하면 코드 상에서 원하는 문자를 정확히 catch할 수 있습니다. \b123\b 참고 - http://stackoverflow.com/questions/5752829/regular-expression-for-exact-match-of-a-word
[Eclipse] STS 3.8.1 이상의 버전에서 Maven 2.x STS 3.8.1 새 버전도 나왔겠다.. 어디 다운받아 신나게 세팅해볼까? JDK 설정하고 등등.. 최신 프로젝트(JDK 1.8, Gradle 등등)은 아주 순조롭게 설정이 완료되었는데... 레거시 프로젝트는 문제가 발생..(JDK 1.6, Maven 2.0.2...) 당연히 Maven 버전 차이때문으로 생각하고 기본이 Maven 3.3.3이니깐.. 새로운 Maven 2.0.2을 다운 받았음 - 참고 : http://archive.apache.org/dist/maven/binaries/ 그런데... Maven 3.0.5도 되면서... Maven 2.x는 하나도 안된다 ㅠㅠ 에러 내용은 : Target is not a supported Maven Home Tool 버그로 생각해서 열심히 구글링하다가 .. ..