반응형 직장이 아닌 직업을 가지자!748 요즘..(now a days..) Mybatis 소스를 조금 보고 있다.. logging부분인데 요즘 디자인패턴을 공부하고 있는데 Mybatis 소스에 떡~~하니 adapter 패턴과 proxy패턴이 쓰이고 있었다! 방가방가~~^-^/ 목표 : 현재 Mybatis 소스에서는 sql 과 parameter가 함께 나오지 않고 각각 따로따로 나오고 있다. 이것을 개발자 입장에서 봤을 때 참으로 짜증나는 일이 아닐수 없다. 쿼리를 날려보고 싶은데... ? 요녀석을 파라미터로 일일이 노가다작업으로 채워야 할 것이다. Oh my god!~ 그래서 Mybatis 소스를 조금 수정하여 이런 노가다 작업을 없애보기로 했다. 현재는 작업 중이며..어려움 중에 하나가.. sql이 나오는 부분은 ConnectonLogger라는 부분이고 parameter가 나.. 2013. 8. 1. replace / replaceFirst, Caused by: java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0 이런...내가 잘못 학습을 한건가... replace가 하나만 치환이 되어지는 것이고 replaceAll이 전부 치환 시키는 것으로 알고 있었다..-_-; 그런데..replace를 사용했을 경우 전부 치환이 되어지는 것이다..ㅠ_ㅠ... 그래서 혹시나 해서 봤더니...replaceFirst가 있네....OTL ?를 찾아서 내가 원하는 문자열로 치환하고 싶었다. 아래와 같이 오류가 발생했다. Caused by: java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0 바로..? 라는 특수문자는 그냥 사용 할 수가 없다. 소스는 아래와 같다. String nowParam = getParameterValueString();.. 2013. 8. 1. [첫번째 스터디] abstractFactory 패턴 part 2. abstractFactory pattern 추상 팩토리 패턴..!! 팩토리 패턴은 매우 다양한 것 같다..뒤에도 나오겠지만 Factory Method 라는 녀석도 있다. @.@;; Factory 패턴은 생성 패턴이라고도 부른다. 즉, 객체를 생성해주는 패턴이라고 보면 된다. 아래의 소스에서 보면 KRAddress와 USAddress.java가 생성이 되어야하는 대상 이다. 어떻게 생성을 해주어야 하는가는 소스를 보면 파악 할 수 있을 것이다. 하지만 헷깔릴수 있는 소지가 다분하다. 바로 팩토리 이녀석도 추상적인 개념을 넣어서 interface구조 또는 abstract구조로 나뉘어져있기 때문이다. 위의 소스의 구성을 보면 복잡하게 느낄 수도 있겠지만 사실은 간단하다. 소스를 보기 전에 간단히.. 2013. 7. 21. [첫번째 스터디] singleton 패턴 2013년 07월10일 사내 스터디가 부활 하였다. 두둥~2번째 용수철 스터디가 시작 되었다.처음에는 굿택과 둘이서 하려고 하였다가 2명을 더 추가하여 소스정예로 하게 되었다.^-^good~ 이번 사내 스터디의 내용은 디자인 패턴이다!!!개발코드를 중심으로 하는 스터디 이며, 매우 성실하게!! 해야 할 것이다. 이제 주저리는 그만하고..본론으로 패턴에 대해 알아보도록 하겠다^-^ part 1. singleton pattern 싱글톤 패턴!!~ 싱글+톤 마치..싱글 : 혼자, 하나 인 느낌톤 : 스켈레톤 할 때 뼈대의 느낌 인 듯 하다. 그래서 싱글톤은 하나의 뼈대?? 라고 생각하면 될 것 같다.(저만의 생각입져..ㄷㄷ)즉, java에서는 oop 즉 객제지향으로 봤을 때 싱글톤의 하나의 뼈대란 하나의 객체.. 2013. 7. 21. SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder ERROR [STDERR] SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". ERROR [STDERR] SLF4J: Defaulting to no-operation (NOP) logger implementation ERROR [STDERR] SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 라는 오류가 났다..... 환경 : maven 프로젝트 jboss는 jboss5.1 eap log4j+slf4j 를 사용하는 내부..log툴 사용..--;; log4j를 사용한다고 보면 된다.^-^ [as-is 설정] jcl-over-slf4j slf4j-.. 2013. 7. 12. Junit Resource JUnit 테스트를 하려고 했을 때 혼돈이 되었던 내용이다. Resource는 어디에 것을 써야 할까??? 구성은 보통 maven 프로젝트를 사용 한다면 main / test 로 나뉘어진다. java build path를 보면 source쪽에 보면 알 수 있다. @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:spring/context/context-common.xml", "classpath:spring/context/context-aspect.xml", "classpath:spring/context/context-test-datasource.xml", "classpath:spring/context.. 2013. 7. 5. Batch Update 기능 Batch Update 기능 이란? 업무를 처리하는 웹 어플리케이션에서는 Insert, Update, Delete와 같은 Transactional 데이터 처리(OLTP)가 빈번하게 발생 한다. OLTP에 대한 대용량의 데이터 요청이 발생하면, 한번의 데이터 Connection으로 다수의 쿼리(설정된 쿼리의 개수)를 처리 하여 Connection의 횟수를 줄이므로 성능을 향상 시킬수 있다. 간단히 말하면 여러개의 CUD를 한번의 커넥션으로 처리 가능하다는 말이다! ^-^goood~ ibatis에 비해 매우 간단하다^-^goood~ 1) 아래와 같이 옵션을 준다. 2) Service에서 사용 하면 끝~~ 아래처럼 단일 건 또는 for문 이용, List 형태로 받아서 Iterator 로 사용 가능 하다. 1).. 2013. 6. 27. Bug https://jira.springsource.org/browse/SPR-4122 찾아보자! 2013. 6. 21. @Vaild 처리 시 주의 할 사항!! Server Validation Check를 하는데 있어서..주의사항이 있다! ex) message= 부분에서 띄어쓰기를 하면..파싱을 못하는 듯 하다..ㅠ_ㅠ.. 잘된 예 @NotEmpty(message="메뉴명, CMN.I0000001.usr") 잘못된 예 @NotEmpty(message=" 메뉴명, CMN.I0000001.usr") // 앞에 공백이 있으면 안된다!! 끝~ 2013. 6. 21. Mybatis 동적 sql 주의사항 UPDATE TB_TEST A SET A.MENU_NM = #{menuNm}, A.MENU_DESC_SBST = #{menuDescSbst}, (X) A.BOARD_ID = #{boardId}, A.MENU_USE_YN = #{menuUseYn}, WHERE A.MENU_ID = #{menuId} (O) - END - 2013. 6. 17. Heuristic completion: outcome state is mixed; nested exception is javax.transaction.HeuristicMixedException / TwoPhaseOutcome.HEURISTIC_HAZARD 환경 : Global Transaction을 사용 시 2개의 PostgreSQL을 사용 함. 주의 할 사항으로는 postgreSQL에서 config 파일인 data/postgresql.conf에서 max_prepared_transactions = 10 # zero disables the feature 을 양쪽 다 수정해주어야 한다. default가 0 일 것이다. 맨 아래에 참고 한 외국인 형님 사이트가 있다. 덕분에 수정하여 2pc 트랜잭션을 잘 할수 있었다^-^ [2013-06-10 13:53:10] [DEBUG] [BoardController.debug4Dev():497] - vo token : -1479550304 [2013-06-10 13:53:10] [DEBUG] [BoardFacade.deb.. 2013. 6. 10. org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class 설정 시 아래와 같은 오류가 났다.. Could not autowire field: com.kt.guide.board.facade.BoardFacade com.kt.guide.board.controller.BoardController.boardFacade; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'boardFacade': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not a.. 2013. 6. 10. DTP(Distribution Transaction Processing) 관련 자료 DTP(Distribution Transaction Processing) 에 대해서 알 수 있는 The open group의 자료 이다. 자료 링크(영어) : 2.1 X/Open DTP Model을 보면 됩니다. :Dhttp://pubs.opengroup.org/onlinepubs/009680699/toc.pdf IBM에서 번역한 내용(한글) :http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/c0004558.htm 2013. 6. 8. [하둡교육 3일차] Pig Pig set up 1) [root@localhost root]# wget http://www.dazum.net/hadoop/pig-0.10.0.tar.gz : 소스를 가져온다 2) [root@localhost root]# tar xvf pig-0.10.0.tar.gz : 압축을 푼다3) [root@localhost root]# ln -s pig-0.10.0 pig : 심볼릭 링크 걸어준다 버전 관리를 위해)4) [root@localhost root]# vi /etc/profile : 환경 셋팅을 해준다. root 기준임. export PIG_HOME=/home/root/pig export PIG_CLASSPATH=$HADOOP_HOME/conf pathmunge /home/root/pig/bin [ro.. 2013. 6. 5. [하둡교육 3일차] Zookeeper Zookeeper 필요성하둡 이전에 이미 있었던 녀석이다.특징 1) in-Memory DB(file DB) : 메모리상에 모든걸 다 가지고 있음.(전원이 나가도 무관 - 디스크에 백업은 함, 전원을 키면 디스크에서 읽어들여 다시 메모리에 올림.) 2) 분산 : 데이터 백업에 대해서 고민 하지 않아도 된다. 서버 3대에 Zookeeper가 있다면, 분산으로 같은 데이터를 메모리, disk에 가지고 있다. 하둡이 왜 Zookeeper가 필요로 했나?일반적인 분산 시스템 구조 : Master/SlaveMaster가 죽으면 다 죽음. HDFS에서 Master가 메타데이터를 가지고 있고, Slave가 데이터를 가지고 있음. 성능을 고려 했을 때, (출처 : http://zookeeper.apache.org/doc.. 2013. 6. 5. [하둡교육 2일차] Hadoop 설치 하둡을 설치 하기 위해 교육은 오라클 버추얼 박스로 진행 하였다.아쉽게 전체적인 셋팅을 소개 할 수는 없을 것 같다. 강사님이 미리 준비해오고 셋팅 다해오셨다 ㅋㅋ;; 1. JDK 설치 OpenJdk는 하둡에서 오류가 난다고 한다. 오라클 sun jdk를 셋팅 하도록 하자. 2. JAVA_HOME 설정 보통 일반 계정이라면 .bash_profile에 셋팅을 해주지만 이번 교육에서는 root로 잡아줬기 때문에 /etc/profile에서 PATH를 잡아주었다. 3. 하둡 복사 및 설치 하둡..이것 또한 미리 가져와있다 ㅋㅋ; hadoop-1.0.4-bin.tar.gz이라는 파일!! tar xvf hadoop-1.0.4-bin.tar.gz 로 압축을 해제 해준다. 자주 쓰는 하둡 명령어 confirm daem.. 2013. 6. 4. ubuntu에 svn 설치 하기(CollabNet Subversion Edge) http://www.open.collab.net/nonav/downloads/subversion/readme/csvne_linux32linux64.html CollabNet Subversion Edge - Linux 32/64-bit Version 2.3.0 Release Date: March 2012 Contents 1. Overview 2. Platform and configuration 3. Requirements 4. Installation notes 5. Updates 6. Documentation 7. Known issues 8. Support for CollabNet Subversion Edge 9. About Subversion and CollabNet 1. Overview CollabNe.. 2013. 6. 4. 리눅스 현재 사용 포트 확인 방법 lsof -i TCP:portNumber acet@ubuntu:~/acetServer/apache-tomcat-6.0.37/conf$ lsof -i TCP:8080(사용포트) COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 16851 acet 37u IPv6 90074 0t0 TCP *:사용포트 (LISTEN) 해당 포트가 Listen하고 있다는 것을 알 수 있다.^-^ 물론 netstat -na로도 알수가 있다.ex) acet@ubuntu:~/acetServer$ netstat -anActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign .. 2013. 6. 3. .profile vs .bash_profile vs .bashrc 음...profile vs .bash_profile vs .bashrc 에 대해서 정확히 몰랐었다. bashrc'는 로그인 없이 Bash가 실행될 때 로드된다. 'sudo bash'나 'su'로 root 권한을 얻으려 bash를 실행할 때도 이 파일이 로드된다.정리:’.profile' - 로그인할 때 로드된다. PATH처럼 로그인할 때 로드해야 하는데 bash와 상관없는 것들을 여기에 넣는다.‘.bash_profile’ - 로그인할 때 로드된다. ‘bash completion'이나 'nvm'같이 로그인할 때 로드해야 하는데 Bash와 관련된 것이면 여기에 넣는다.’.bashrc' - 로그인하지 않고 Bash가 실행될 때마다 로드된다.bash-it나는 Bash 프레임워크인 bash-it을 사용하는데, 그냥.. 2013. 6. 2. 우분투에서 JDK 셋팅 우분투에서 JDK 셋팅 우분투의 특징이..명령어를 통해 셋팅하는 것이라고 한다.sun java를 가져온다.1) sudo add-apt-repository ppa:webupd8team/java 2) sudo apt-get update 3) sudo apt-get install oracle-jdk7-installer 단, apt-get install 명령어를 찾지 못한다면!! 아래의 명령어를 쳐준다.sudo apt-get install python-software-properties 잘 깔렸는지 확인은 자바 버전으로!acet@ubuntu:~$ java -version-bash: /usr/bin/java: No such file or directory 1,2,3 이후에 위와 같은 오류가 난다면..아래의 con.. 2013. 6. 2. [우분투] sudo add-apt-repository command not found ubuntu sudo add-apt-repository command not found ubuntu 라고 나오면.. sudo apt-get install python-software-properties 를 해주자! 출처 : http://ubuntugeek.com/forum/index.php?topic=4196.0 2013. 6. 2. 이전 1 ··· 23 24 25 26 27 28 29 ··· 36 다음 반응형