반응형 직장이 아닌 직업을 가지자!749 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. clone을 재정의할 때는 신중하라! Cloneable : Note that this interface does not contain the clone method Even if the clone method is invoked reflectively, there is no guarantee that it will succeed. 단점 : 기본적인 문제는 clone메소드가 없으며 Object의 clone메소드가 protected로 선언되어 있다는 것이다. 리플렉션(reflection)을 사용하지 않고서는 Cloneable을 구현한 객체라도 clone 메소드를 호출할 방법이 없다. 리플렉션을 사용한 호출도 실패할 가능성이 있다. 해당 객체에 호출 가능한 clone메소드가 구현되어 있으리라는 보장이 없기 때문. 참고내용 접근 제어자 구분 mod.. 2015. 6. 11. hashCode() HashCode란?객체를 구별하기 위해, 고유한 정수값으로 출력시켜주는 메소드가 바로 hashCode()다.객체 참조 변수를 출력할 때, 출력되는 Reference Address는 바로 이 hashCode를 16진수로 출력한 값이다.ex) HashCodeTest@cb788b90(참고 사이트 : http://mwultong.blogspot.com/2008/02/16-2-10-8-hex-calc.html) 모든 클래스는 java.lang.Object의 하나의 기본이 되는 hash scheme를 상속 받는다.클래스는 implementation을할 때(equals 같은 method overriding을 뜻한다) public int hashCode()를 반드시 override해야한다.여기서 일반적인 규약이 있다... 2015. 6. 7. 2. mysql process 상태 리스트 보기 리스트 보기 SHOW PROCESSLIST; 해당 프로세스 죽이기KILL 프로세스 번호(ID) 2015. 5. 26. 1. 테이블 복사하기 몇년만에 db를 만져보는거 같다ㅋㅋㅋ;;작업을 위해 백업 테이블을 만들자! 1. 테이블 복사! gogo~! CREATE TABLE [생성할 테이블] SELECT * FROM [원본테이블] 2. 검증 SELECT * FROM [생성된 테이블] LIMIT 100 - 끝 - 2015. 5. 12. 이전 1 ··· 15 16 17 18 19 20 21 ··· 36 다음 반응형