반응형 직장이 아닌 직업을 가지자!739 ace-t의 Spring Boot 따라잡기(셋팅편) 1. 목표현재 개발중인 프로젝트에서 필요한 api를 Spring Boot로 구현하고자 함.정리를 해두면 다른사람도 좋고 나도 좋고~도랑치고 가재잡고~CouchBase storege - SpringBoot api 2. 환경Mac OS XJDK 8Tomcat 8Gradle 1.3.3Spring BootCouchBase 4.x인텔리J IDE 12git 3. Spring Boot 간단 셋팅!http://start.spring.io/ 에 접속!아래의 그림처럼 필요한 것들을 찾아서 Dependencies 선택! 나중에 찾아서 넣어도 되니 신중하게 생각하지 않아도 됨. 위에서 Group는 패키지라고 생각하시면 됩니다. 또한 Gradle Project Artifact를 설정, 디펜던시 설정 후에 Generaate Pr.. 2016. 3. 22. About MongoDB 이런..회사 github에서 적은 내용이 블로그로 포스팅하려는데..힘들군요 ㅠㅠ마크다운도 안먹히는군요 ㄲㄲ ## Mongo DB site https://www.mongodb.com/ ## Mongo DB란?MongoDB stores data는 JSON과 같은 동적스키마형태의 문서들인데 다양한 구조를 가질수 있다.MongoDB에서는 이러한 구조를 BSON이라고 부른다.이해를 더 돕기 위해 아래의 MySql과 Mongo DB의 비교한 그림을 보자. 또한 각각의 특징을 살펴보자. 몽고DB site에 있는 내용이라서 그런지..어마무시하다 ㅋㅋ 음..MongoDB를 살짝 맛보자! 위의 내용으로 보면 api는 select를 logstash에서는 insert와 update가 일어나야하는데 가능여부는 찾아보아야 한다... 2016. 3. 15. org.springframework.dao.DataRetrievalFailureException: Query error: [{"msg":"No primary index on keyspace lineup-test. Use CREATE PRIMARY INDEX to create one.","code":4000}] Error Messageorg.springframework.dao.DataRetrievalFailureException: Query error: [{"msg":"No primary index on keyspace lineup-test. Use CREATE PRIMARY INDEX to create one.","code":4000}] QueryExecuting Query: SELECT v1 FROM `lineup-test` WHERE v2 = "12" Solution/opt/couchbase/bin/cbqcbq> CREATE PRIMARY INDEX ON `lineup-test` USING GSI;{ "requestID": "f75f9210-cf8d-4312-b469-d7dd28e866a1", "signa.. 2016. 3. 15. step by step - spring boot 스프링 부트를 프로젝트에 적용시켜 구현을 하고 있다.위의 소스는 해당 프로젝트를 위한 가이드 소스이다. 꼭 필요한 작업이라고 생각이 되어 개발 가이드 소스를 조금씩 습득하며 구현하고 있다.전체적인 아키텍처와 as-is 분석도 해야하니..새벽에 더 볼수 밖에 없지만 뭔가 하고있다는게 즐거운듯 하다.또한 다른업무에 치여 손도 못댔었는데..그나마 요즘 운동을 시작했더니 새벽에 안졸리고 집중이 되어 조금이라도 코드를 짜봐서 조으다~2016년 목표한바 성취하도록 화이팅 하자! 2016. 2. 17. redis 메모리 사용량? http://redis.io/topics/quickstart redis 관련 정보를 얻을 수 있다. 특히 redis-cli (commad line)을 통해 redis에서 사용하고 있는 용량을 알수 있다.redis-cli info를 하면 아래와 같은 내용이 나오며 실제 사용되어지고 있는 것은 used_memory_human를 보면 된다.# Memoryused_memory:38894386256used_memory_human:36.22Gused_memory_rss:46722285568used_memory_peak:85900378992used_memory_peak_human:80.00Gused_memory_lua:31744mem_fragmentation_ratio:1.20 mem_allocator:jemallo.. 2016. 1. 27. 펌] linux 디스크 용량 확인(df / du) 하도 까먹어서...퍼왔다..-_-;; [출처 : http://ra2kstar.tistory.com/135 ] 2016. 1. 19. Error injecting: org.apache.maven.shared.dependency.graph.internal.Maven3DependencyGraphBuilder mavne으로 패키징을 하는데..아래처럼 오류가 났다-_-;;Error injecting: org.apache.maven.shared.dependency.graph.internal.Maven3DependencyGraphBuilder뭔가 깨진듯 하다..기존에 있던 메이븐을 다른 프로젝트에 재사용하면서 난 문제이다. 그래서 아래와 같이 3.0.5버전을 받아서 연결한 뒤 다시 패키징해보니 잘되었다. 인텔리J 설정은 아래처럼 하였습니다. - 끝 - 2016. 1. 4. 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. 이전 1 ··· 14 15 16 17 18 19 20 ··· 36 다음 반응형