개발
-
RequestBody의 데이트 타입 정해진 format으로 받기개발/Spring 2021. 2. 24. 16:51
Spring Restful 컨트롤러에서 클라이언트로부터 json타입의 객체를 받는 경우 Jackson 메세지 컨버터 클래스에서 객체 변환 작업이 일어난다. 나 같은 경우 커스텀된 타임 포맷 모듈을 오브젝트 매퍼로 생성하고, 이를 @Bean public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); converter.setObjectMapper(customObjectMapper()); return converter; } 처럼 빈으로 생성하여 사용하고있다. (..
-
aws elasticsearch snapshot 으로 데이터 백업 with java개발/Elasticsearch 2021. 2. 9. 19:00
지금 서비스하고 있는 aws elasitcsearch 버전이 6.8인데 7.7에서 힙 메모리 사용이 확 개선되어, 가장 최신 버전인 7.9 버전으로 마이그레이션 하려고 한다. 1. s3 bucket 생성 -snapshot 저장할 s3 bucket 생성한다. 2. IAM - 역할 생성 iam - 역할 - 역할 만들기 ec2 선택해서 다음 - 다음 - 다음 역할이름 입력하여 역할 만들기 완료 3. 역할에 신뢰관계 설정 생성한 역할에 신뢰 관계 - 신뢰 관계 편집 ec2 대신 es로 변경 { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Ac..
-
엘레강트 오브젝트 chapter 1개발/책 2021. 2. 6. 23:36
1.1 -er로 끝나는 이름을 사용하지 말자. -er로 끝나는 이름을 가진 클래스명은 잘못 지어졌다고한다. 그렇다면 흔히 쓰는 -controller는 어떻게 지어야할까. 아니면 구조가 프로젝트 구조가 어떻게 바껴야 할까? cotr의 주된 작업은 제공된 인자를 사용해서 캡슐화하고 있는 프로퍼티를 초기화하는 일. cotr = constructor 초기화 로직을 단 하나의 ctor에만 위치시키고 주 cotr이라고 칭하면, 다른 부 cotr이 주 cotr을 호출하도록 설계 (util성 기능을 담당하는 class 이름은 어떻게 지어야 할까?) 아래는 하나의 주 cotr(생성자) 다수의 부 cotr(one primary, many secondary)' 원칙을 따르지 않은 코드제 예제 public class Cash..
-
elasticsearch term match 비교개발/Elasticsearch 2021. 2. 4. 15:39
elasticsearch 검색을 할 때 쓰이는 term 또는 match 쿼리를 구분하여 사용하고자 정리해본다. 검색에 대해 찾다보면 자주 보이는 것이 쿼리와 필터 비교인다. 현재 사용중인 aws elasticsearch 6.8 에선 match, term 모두 query 안에 있으나, 이전 예제들을 보면 match는 query에, term은 filter에 속한다. 특징을 보면 query : 캐싱되지 않으며, 스코어링 연산을 통해 적합하고 유사성 높은 결과를 찾는다. fitler : 검색어에 대한 분석을 하지 않고 온전히 검색어와 일치하는 문서를 검색하고, 캐싱되어 속도면에 유리한 면이 있다. (RDBMS의 where 절이라 생각 할 수 있다) 수많은 데이터 중에 이름으로 검색한다 할때, 각 특징의 장점으로..
-
gradle build시 jdk version 설정개발/개발노트 2020. 6. 29. 14:37
jdk 1.8로 작업해오다 jdk11을 이용해 프로젝트를 진행해보기로 하였다. 도중 생긴 문제가 빌드시 Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8) 와 같이 gradle JVM 버전이 맞지 않는 것이다. 만약 intelliJ와같은 환경이면 설정 -> Build,Excution, Deployment -> Build Tools -> Gradle 에서 Gradle JVM을 설정하면 된다. 하지만 배포환경이 Jenkins를 통해 빌드하는 경우 다른프로젝트들은 다 1.8인데 한 프로젝트만 11이면 문제가 생긴다. jenkins 서버에 jdk11 설치된 상태에서 시도 - jenv를 통해 해당 프로젝트만 jenv java11를 잡았다...
-
aws elastic beanstalk로 운영중인 spring boot http -> https개발/AWS & 서버 2020. 4. 22. 13:48
jenkins -> elastic beanstalk로 배포되는 spring boot 서버가 있다. 이 서버를 도메인으로 호출하도록 라우트 설정을 하고나니, https로 바꾸고 싶은 욕심이 생겼다. 바꿔보자. 이미 인증서까지 있는 상태에서 검색을 해봤더니 많이들 ec2 -> 로드 밸런스에서 설정하도록 되어있다. 로드밸런서를 생성하고 Application Load Balancer를 선택하여 따랐다. 하지만. 분명 단순한 단계인데 잘 되지 않았다. 등록을 해도 Elastic beanstalk에 가서 환경 구성을 보면 로드 밸런서가 포함되지 않다고 나온다. 태그에 환경 이름을 추가해봐도 마찬가지였다. Elastic beanstalk는 EC2나 S3와 달리 환경 구성에서 로드 밸런서를 생성한다. 구성에서 단일 인..
-
aws region별 핑 속도 측정개발/AWS & 서버 2020. 4. 20. 16:53
aws EC2 서버요금은 리전별 차이가 있다. 가장싼 버지니아와 한국은 t2, t3로 따지면 4배까지 차이가 난다. 규모가 크면 그 차이는 줄지만 10~30% 차이가 있다. 따라서, 규모 속도에 따라 지역을 정하는 것도 좋은 방법이라 생각한다. 리전별 핑 측정 클라우드핑(AWS) 링크 : http://www.cloudping.info/ S3속도 측정 링크 : http://s3-accelerate-speedtest.s3-accelerate.amazonaws.com/en/accelerate-speed-comparsion.html