반응형 전체 글711 Curator를 사용해보자(인덱스 관리) 아래처럼..log가 점점 쌓아져간다~엘라스틱서치에서 인덱스가 늘어나고 있다는 뜻이다. 그래서 아래처럼 줄여보고자 한다. 어떻게? Curator를 사용해보자! https://github.com/elastic/curator Curator?indices들을 관리해준다! 시작하기! https://www.elastic.co/guide/en/elasticsearch/client/curator/current/getting-started.html Curator Setting sudo pip install elasticsearch-curatorCollecting elasticsearch-curator/usr/lib/python2.6/site-packages/pip-7.1.2-py2.6.egg/pip/_vendor/req.. 2015. 12. 16. Curl 이란? 출처 : http://jokergt.tistory.com/83 그냥 사용했었는데 한번 찾아보았다ㅋㅋㅋ 이런 탄생과 발전의 비화가 있었다뉘~ 참고 사항!아래의 옵션을 사용하여 체킹할 수 있다.ex) -e, --referer Referer URL (H) curl "http://www.themungu.co.kr/" -e "http://www.daum.net" 결과 : www.daum.net이 막혀있는 것을 알수가 있다..ㅠ.ㅠ..개슬픔..ForbiddenYou don't have permission to access /on this server. curl "http://www.themungu.co.kr/" -e "http://www.naver.com"네이버는 잘가져온다..ㅠ_ㅠ.. localhost:~ ter.. 2015. 12. 3. input value escape 적용하기! 상황) 아래와 같이 input box의 value의 값에 특수문자가 들어가면 안녕하세요! "ace-t" 입니다가 아닌 안녕하세요! 만 나오게 된다.ㅠㅠ 처리) 처리는 자바단에서 하였고 guava lib를 사용하였다.maven기반!http://www.mvnrepository.com/artifact/com.google.guava/guava/18.0 com.google.guavaguava18.0 guava 사용법 - 아래와 같이 Escape하고자 하는것을 addEscpae로 추가하시면 됩니다. 단, html 특수문자를 처리해줘야 하는 상황 입니다. 즉, "는 쌍따옵표죵! \" 2015. 11. 30. TDD 실천하기 - JUNIT TEST 리펙토링을 하는데 있어서 테스트가 필수!(리펙토링을 하기 위한 전제조건!) - How to test?mockito를 이용 해보자.설정을 해보자. 현재 maven을 사용. 위의 그림처럼 maven dependency를 설정(pom.xml)하여 준다.(mockito라는것을 사용해보려고 한다.)현재(2015년11월의 최신 릴리즈버전이다.) org.mockito mockito-core 1.10.19 소스에서는 import static org.mockito.Mockito.*; 를 static으로 import 시킨 뒤!상황에 맞게 테스트 코드를 만들어서 사용하시면 됩니다.참고 url : https://code.google.com/p/mockito/wiki/MockitoFeaturesInKor.. 2015. 11. 24. ElasticSearch+LogStash+ElasticSearchHQ 사용해보기! https://brunch.co.kr/@acet/7 에 대한 구현 방법을 설명하고자 한다. 1. 엘라스틱서치 설치curl로 다운로드 curl -L -O https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.tar.gz% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed100 27.1M 100 27.1M 0 0 4662k 0 0:00:05 0:00:05 --:--:-- 6335k 압축해제tar xvfz elasticsearch-1.7.1.tar.gz / 권한이 없다면 chmod로 권한을 준다. 실행아래처.. 2015. 10. 30. 자바 전체공백 제거하기 1. trim()은 문자열 앞뒤 공백제거. 전체가 아니라서 부족해!~ 하실때는? replaceAll(" ","") 또는 replaceAll("\\p{Space}", "") 로 공백을 제거하면 됩니다. 위처럼 검색을 때리면 "카카오톡" 으로 붙어서 검색하게 되어집니다. 참 쉽죠잉?참고로 가독성이 첫번째것이 더 높을 것 같아서 replaceAll(" ","") 처리하려고 했는데 치환이 안되는 경우도 있는듯 하여두번째 방법을 택하였습니다.참고 사이트 : http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html 끝~ 2015. 10. 19. MyBatisPagingItemReader를 사용할 때 유의점 Caused by: java.sql.BatchUpdateException: Duplicate entry '123212' for key 'PRIMARY' at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2055) ~[neositebatch.jar:na] at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1467) ~[neositebatch.jar:na] 위의 오류가 났다. 해결방안으로 아래처럼 MyBatisPagingItemReader를 사용할 때 유의하여 사용하면 된다. SELECT Query에서 MySQL이라면 LIMIT #{_sk.. 2015. 10. 2. angular.isUndefined 사용하기~ 앵귤러를 사용하면서 아래처럼 ng-model을 통해 input text에 들어오는 키워드들에 대해서 변경된 값을 바로바로 셋팅할 수 가 있다. 그리고 한가지 유의할 점은 input value에 {{keyword}} 즉, 다른쪽에서 넘어온 데이터를 셋팅을 해주게 되면input 의 변화가 없다면 undefined가 search()의 파라미터로 넘어가게 된다.ex) {{keyword}}가 카카오! 이 상태에서 검색버튼을 누르면 app.query에는 아직 undefined이다!! 그래서 제대로 된 검색결과가 나오지 않는다. 그러므로 체킹을 한번 해주고 기존에 있는 데이터({{keyword}})를 활용하면 되겠다.if(angular.isUndefined(keyword)){ keyword=$scope.keyword.. 2015. 9. 23. Failed to load resource: the server responded with a status of 404 (Not Found) angularJS를 사용하는데.. img를 가져오는데 resource에서 상대경로로 이상한 resource를 가져오는것이 아닌가? -_-;;그래서 오류가.. 2015. 9. 21. 이펙티브자바) 규칙 68, 69 규칙 68. Prefer executors and tasks to threads# Info 01) JDK 1.5 - add java.util.concurrent참고 사이트 : http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html # info_02) 이 패키지에는 실행자 프레임워크(Executor Framework)라는 것이 있음, 인터페이스 기반 Task 실행 프레임워크. ex_01) ExecutorService executor = Executors.newSingleThreadExcutor(); Runnable을 넘겨 실행 : excutor.excute(runnable); 자연스레 종료 : executor.sh.. 2015. 8. 5. 이펙티브 자바) 규칙 59, 60, 61, 62, 63, 64, 65 규칙 59. Avoid unnecessary use of checked exceptions checked exceptions Exception can recover IOException, IllegalArgumentExceptions uncheked exceptions RuntimeException can not recover transactionNullPointerException 핵심요약 : checked exceptions 은 너무 남발하면 프로그램을 복잡하게 만든다.그러므로 훌륭한 프로그래머가 되기위해서는 생각해보아야 한다. 무엇을?1) 예외적인 상황을 막을수 있는가? 2) 예외 상황에 대한 조치를 취할 수 있는가?막을수 없고, 조치를 취할 수 없다면(can't recover) runtimeExc.. 2015. 7. 30. 정규표현식을 사용해보자~ 표현식 설명 ^ 문자열의 시작 $ 문자열의 종료 . 임의의 한 문자 (문자의 종류 가리지 않음) 단, \ 는 넣을 수 없음 * 앞 문자가 없을 수도 무한정 많을 수도 있음 + 앞 문자가 하나 이상 ? 앞 문자가 없거나 하나있음 [] 문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를 나타낸다. []내에서 ^가 선행하여 존재하면 not 을 나타낸다. {} 횟수 또는 범위를 나타낸다. () 소괄호 안의 문자를 하나의 문자로 인식 | 패턴 안에서 or 연산을 수행할 때 사용 \s 공백 문자 \S 공백 문자가 아닌 나머지 문자 \w 알파벳이나 숫자 \W 알파벳이나 숫자를 제외한 문자 \d 숫자 [0-9]와 동일 \D 숫자를 제외한 모든 문자 \ 정규표현식 역슬래시(\)는 확장 문자 역슬래시 다음에.. 2015. 7. 21. install PyMySQL version python3 install 하기) localhost:bin terrypark$ pip3 install PyMySQL You are using pip version 7.0.1, however version 7.1.0 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting PyMySQL Downloading PyMySQL-0.6.6-py2.py3-none-any.whl (66kB) 100% |████████████████████████████████| 69kB 704kB/s Installing collected packages: PyMySQL Successfully in.. 2015. 7. 21. 규칙41) 오버로딩을할 때는 주의하라! 제네릭 메카니즘 “Erasure" Type Erasure Generics were introduced to the Java language to provide tighter type checks at compile time and to support generic programming. To implement generics, the Java compiler applies type erasure to: Replace all type parameters in generic types with their bounds or Object if the type parameters are unbounded. The produced bytecode, therefore, contains only ordinary cla.. 2015. 7. 21. (java) ltrim 구현 private final static Pattern LTRIM = Pattern.compile("^\\s+"); tip. \\s+$ private String ltrim(String s) { return LTRIM.matcher(s).replaceAll(""); } ^ : 시작. \s : 공백. + : 하나 이상. 매칭되는것 없애준다. 끝. 2015. 6. 30. crontab+python3 crontab 내용 */1 * * * * /acet/terrypark/run_agitData.sh >> /acet/terrypark/getAgitData2.log run_agitData.sh 내용 #!/bin/bash source ~/.bash_profile /opt/python3/bin/python3 /acet/terrypark/getAgitData.py 크론탭은 환경변수를 인식못하기 때문에 shell을 하나 생성하여 .bash_profile과 실행한 파이썬을 걸어준다. 단, 절대경로를 사용하는게 좋다. - 끝 - 2015. 6. 30. python??? https://www.python.org/downloads/mac-osx/ 에 가셔서 파이썬 3.x를 다운 받습니다. IDE를 켜고~파이썬 SDK를 잡아줍니다. MAC은 아래의 경로에 셋팅이 되어지네용~@-@;;localhost:bin terrypark$ pwd/Library/Frameworks/Python.framework/Versions/3.5/bin 여기까지 일단~ 2015. 6. 22. 이펙티브자바 규칙 19) 2015년 6월 21일- 일요일 스터디 카페 방문 1. 이펙티브 자바 읽기(범위 : 규칙19,20,21) 인터페이스는 클라이언트 입장에서 보면 “알림이?(명세) 역할"을 한다. 즉, class로 구현할 것을 인터페이스는 미리 말해준다. 인터페이스 사용법 중에 실패한 것은 메소드도 없고 static final field만 존재하는 소위 "constant interface” 라 불린다. // Constant interface antipattern - do not use! public interface PhysicalConstants { // Avogadro's number (1/mol) static final double AVOGADROS_NUMBER = 6.02214199e23; // Boltzmann constant (J/K) static final d.. 2015. 6. 21. 2015년 06월 17일 이펙티브자바 스터디. 스터디 범위 : 이펙티브 자바 규칙17. 참여인원 : 총 5명 - 테리팍, 호이루팍, 빅터신, 지니유, 아론킴상속을 위한 설계와 문서를 갖추거나 그럴수 없다면 상속을 하지말라!?? 재정의 기능 메소드를 내부적으로 어떻게 사용하는지(self-use) 반드시 문서에 남기라는 것. - 더 쉽게 풀어서 말하면 메소드 내부동작 원리에 관한 주석을 남기라는 뜻. 토론) java doc 이야기 테리팍 : java doc을 남기는 것은 좋은 것 같다. 이유 : 이력관리도할 수있고, 더 나아가 CI서버에서도 사용할 수 있다. 또한 개발 전후에 유용할 것 같다. 호이루팍 외 3명 : 이력은 커밋로그나 히스토리를 통해서 보면 되지 않는가? java doc은 관리가 안된다. 빅터신 : 주석(java doc)은 필요한 것만 즉.. 2015. 6. 17. Favor composition over inheritance 참조 site : http://uet.vnu.edu.vn/~chauttm/e-books/java/Effective.Java.2nd.Edition.May.2008.3000th.Release.pdf 여기에서 말하는 상속의 범위 - extends!! interface implements는 아니다. 상속은 코드 재사용에 대해서 파워풀하지만 항상 좋은것만은 아니다. : 상속을 적절히 잘 사용하지 못하면 소프트웨어는 깨지기 쉽다. 잘 사용하려면? 같은 프로그래머가 같은 패키지 안에서 사용하면 안전하다(당연한거 아닌가..-_-;;) 여러사람이 사용하더라도 상속을 고려해 설계되고 그에 맞는 문서를 갖춘 클래스에 사용하는 것은 안전! 메서드 호출과 달리, 계승은 캡슐화 원칙을 위반한다. : 하위 클래스는 상위클래스의 구.. 2015. 6. 16. String을 날짜 포맷으로 변환하기! String을 날짜 포맷으로 변환하기! regTime : 20150522141253 reqTime : 20150428234211 위와 같은 String형식을.. 2개의 format을 선언 한 뒤 DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 아래처럼 작업을 해주면 됩니다. try { outputMap.put("작업일", sdf.format(formatter.parse(regTime))); outputMap.put("신청일", sdf.format(formatter.parse(reqTime))); } catch (Parse.. 2015. 6. 15. 이전 1 ··· 13 14 15 16 17 18 19 ··· 34 다음 반응형