본문 바로가기
반응형

전체 글711

tomcat performance problem! tomcat을 올리고나서 바로 api가 조회가 되어지지 않았다.. 그래서 tomcat의 catalina.sh에서 아래를 추가하여주었다. JAVA_OPTION 부분쪽에! -Djava.security.egd=file:/dev/urandom참조 사이트 : http://stackoverflow.com/questions/137212/how-to-solve-performance-problem-with-java-securerandom 2016. 4. 25.
문제해결) 로딩만 하다가 타임아웃 나는 현상.. couchbase + spring boot api 를 사용하였다.그런데..200만건 정도가 들어있는 상태에서 api로 조회를 하니..loading..만 하다가 timeout이 되면서 죽는 현상이 발생!! 1. spark(scala)로 데이터를 적재하는데 있어서 warning이 발생. 혹..이것 때문에? 라는 생각이 들었다. 왜냐하면 spark로 대량의 데이터를 적재한 뒤에 발생을 하였고 Flush를 한 뒤 1건을 넣고 조회를 하려고 해도 같은 현상이 발생 하였기 때문이다. 하지만 warning 때문은 아니고 추측하기에 Flush를 하여도 완전한 delete를 하는 것은 아니고 marking했다가 이녀석은 del 상태군..pass~! 하면서 전체를 풀 스캔을 하는것 같다. couchbase를 재부팅하고 다.. 2016. 4. 19.
couchbase와 같은 키/벨류의 key design?? 오픈소스로 키/벨류의 형태의 스토리지들이 많이 있다. Redis나 couchbase등이 그 예이다. 이러한 스토리지들에 저장을할 때 고려사항으로 key를 어떤식으로 만들어야할 지 고민이 되어진다.왜냐하면 이러한 key들은 한정되어진 범위를 가지고 있다. couchbase의 경우는 250byte로 제한을 둔다. 또한 이러한 key들의 무결성을 보장되어야 한다. 그렇지 않으면 데이터의 유실이 발생할 수가 있다.그래서 생각했던 것이 Hash였다. 그러나 자바진형의 String에서 제공되어지는 Hash는 중복의 염려가 있다고 한다.그래서 SHA-1 + Base64 Encoding(urlSafe)를 선택 하였다.아래는 스칼라 코드이며 해당 키는 아래의 소스를 통해 "IbDNShu-PGxJtnsUVuDJLv-aJo.. 2016. 4. 15.
uses unchecked or unsafe operations. uses unchecked or unsafe operations. 와 같은 워닝이 뜨면 확인해보아야할 것이있다. 아래와 같이 ArrayList 를 하나 선언했다. ArrayList keyArr = new ArrayList(); 위처럼 선언을 하면 uses unchecked or unsafe operations. 라고 warning이 뜬다. ArrayList keyArr = new ArrayList(); 이렇게 해야 경고는 뜨지 않는다. 관련해서 이펙티브 자바책을 한번 보면 좋을것 같다. - 끝 - 2016. 4. 1.
(기초) 스칼라 데이터 구조(컬렉션) 2016/03/25 - [Language/Scala] - (기초) 스칼라 문법참고 사이트 : https://twitter.github.io/scala_school/ko/collections.html scala> val numbers = List(1,2,3,4,5)numbers: List[Int] = List(1, 2, 3, 4, 5) scala> Set(1,2,2)res20: scala.collection.immutable.Set[Int] = Set(1, 2) scala> val hostPort = ("localhsot", 8080)hostPort: (String, Int) = (localhsot,8080) scala> hostPort._1res21: String = localhsot scala> hos.. 2016. 3. 25.
(기초) 스칼라 문법 참고 사이트 : https://twitter.github.io/scala_school/ko/basics.html terrypark@localhost:~/program/sbt/bin$ sbt console[info] Set current project to bin (in build file:/Users/terrypark/program/sbt/bin/)[info] Starting scala interpreter...[info]Welcome to Scala version 2.10.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31).Type in expressions to have them evaluated.Type :help for more information. s.. 2016. 3. 25.
ace-t의 Spring Boot 따라잡기(기본 - 예외처리) 예외처리!예외가 발생하면 그냥 찍기만 하는가?!!! 그것이 예외처리를 한것인가? 예외의 종류는 런타임, 체크드 2가지가 있다카던데.. 어떻게 해야 예외처리 잘했다고 소문이 날것인가?? 우리는 런타임예외가 발생하면 그녀석을 잡아다가! 조치를 취할 것 입니다.1) CommonLineupException.java,CommonLineupResponse.java, ExceptionAdvice.java를 만들어 줍니다. 내용은?CommonLineupException에서는 extends RuntimeException를 상속.생성자를 통해 메시지를 부모생성자에 전달. public CommonLineupException(String message){ super(message); } sourcepublic class Co.. 2016. 3. 24.
ace-t의 Spring Boot 따라잡기(기본 - logging) 참고 : https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.htmlSpring Boot의 로깅은 의무적인게 아니라서 commons-logging이 제외 되어있어서 Logback같은 녀석이 필요하면 spring-boot-starter-logging에 의존되어진 common-logging을 사용. (단, web을 사용한다면 spring-boot-starter-web에 포함되어있다고 한다. 굿!)즉, build.gradle의 compile("org.springframework.boot:spring-boot-starter-web")이 있으면 OK! logging의 레벨은 application.properties에서 조정할 수.. 2016. 3. 24.
ace-t의 Spring Boot 따라잡기(기본 - CouchBase 연동하기) 2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - 외부톰캣 연동하기!) Rest api + CouchBase 연동CouchBase 셋팅은 따로 다루지 않겠습니다.이미 셋팅이 되어있다는 전제하에 진행합니다. 1) build.gradle의 dependency 추가 compile('org.springframework.data:spring-data-couchbase:2.0.0.RELEASE') 를 추가. 2) Controller 작성Controller 작성 후 Service를 호출하는 방식이 보통 MVC 패턴이며, Repository라는 interface를 implements하여 Service에서 구현해 나가는 구조 입니다. 또한 couc.. 2016. 3. 24.
ace-t의 Spring Boot 따라잡기(기본 - 외부톰캣 연동하기!) 2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기) 외부 톰캣을 사용하고자 한다면!! jar -> war로 변경을 해주면 됩니다. 방법은? 1) build.gradle에서 주황색 부분을 변경 jar->warapply plugin: 'war' war {baseName = 'lineup-fanta'version = '0.0.1-SNAPSHOT' } 2) main 소스에 추가 작업 extends SpringBootServletInitializeradd overriding source@Overrideprotected SpringApplicationBuilder configure(S.. 2016. 3. 23.
ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기) 1. 로컬에 있는 소스를 소스트리에 연동 시킵니다. 2. 아래와 같이 gitignore.io에 접속하여 커밋하면 안되거나 불필요한 액션을 줄이기 위해 ignore할 파일들에 대해서 Generate 해줍니다. https://www.gitignore.io/ /.git/info의 exclude에 위에서 생성되어진 내용을 붙여넣기를 해준다.붙여넣을 내용. # Created by https://www.gitignore.io/api/gradle,intellij ### Gradle ### .gradle build/ # Ignore Gradle GUI config gradle-app.setting # Avoid ignoring Gradle wrapper jar file (.jar files are usually ign.. 2016. 3. 23.
spark와 친해지기! 아마 아래와 같은 형태가 될것 같다.sparkContext 클래스는 스파크클러스터의 연결과 스파크와 연동할 수 있는 엔트리 포인트를 제공. 인스턴스를 생성하여 다양한 일을할 수 있다.spark RDD : RDD(resilient distributed dataset)를 활용하면 데이터의 병렬처리를 쉽게할 수 있다.spark 참고 사이트!!http://spark.apache.org/docs/latest/programming-guide.html#overview 2016. 3. 22.
spark + scala + sbt 프로젝트!! 환경 : sbt : 0.13.11 - 참고 : https://twitter.github.io/scala_school/ko/sbt.htmlscala : 2.10.6spark : 1.5.2 음..환경설정이 조금 짜증이 났지만..아래와 같은 프로젝트 구조가 생겼다. 이제 한번 scala의 문법을 공부해보자. 그런 뒤 spark를 사용하여 지지고 볶고 해보자! 일단 여기까쥐~ - 끝 - 2016. 3. 22.
ace-t의 Spring Boot 따라잡기(기본 - 헬로우월드찍어보기!) 2016/03/22 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(셋팅편) 주저리 - 헬로우월드를 찍기전에 스프링의 구조를 한번 생각해볼 필요가 있겠습니다.특히나 팀으로 혹은 2~3명이서 개발을 하는거라면 서로 각자 개발하지말고 먼저 물어보세요~당신은 어떤구조로 개발하였나요? 라구요! 주변에 너무 혼자서만 개발하시는분들이 많기 때문에 각자 자기만의 스타일을 고집한다면..유지보수도 힘들고 커뮤니케이션을 함에 있어서도 힘든 부분이 있으니깐요! 예를 들어 아래와 같이 기본적인 구조로 생각을 하신다는 가정하에 진행해보도록 하겠습니다.api ㄴ config ㄴ controller ㄴ repository ㄴ service 이제 코딩을 한번 해볼 차례 입니다. 헬로우월.. 2016. 3. 22.
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.
반응형