Rst

[Spring boot] Dockerfile로 image 생성하기

Maven으로 .jar파일 빌드 Dockerfile작성 도커이미지 생성하기 docker hub에 push하기 docker image 내려받고 실행 이 글에선 maven프로젝트를 .jar파일로 빌드한 후 이 파일을 도커이미지에 복사시켜 컨테이너에서 실행시키는 방법을 다룬다. spring.io의 문서를 참고했다. 1. Maven으로 .jar파일 빌드 이 글에선 .jar파일을 docker container에서 실행시키도록 Dockerfile을 작성할 것이다. 따라서 먼저 maven프로젝트의 코드를 .jar파일로 빌드하자. mvn install 위 명령은 테스트를 거쳐서 프로젝트를 build하게... Read more

세그먼트 트리 개념과 백준 2042번 구간 합 구하기

세그먼트 트리의 개념 세그먼트 트리 구현 구간합 구하기 특정 원소 변경하기 문제에 적용 1. 세그먼트 트리 개념 N의 길이를 가진 배열에서 특정 구간의 합을 구하려고 한다면, 또 특정 원소를 빈번하게 변경시켜도 구간의 합을 구하려 한다면 일일이 원소를 더하는 방법은 굉장히 시간이 오래 걸리는 방법이다. 이러한 연산을 빠르게 할 수 있도록 도와주는 자료구조가 세그먼트 트리이다. 세그먼트 트리는 구간합 이라는 개념을 트리의 계층구조로 표현하여 각각의 노드가 구간의 합을 저장하도록 한다. 예를들어 1부터 5까지의 숫자에 대한 세그먼트 트리는 다음과 같을 것이다. graph TD; 1... Read more

[Jackson] JsonNode를 이용한 json 읽기, 쓰기

JsonNode소개 및 생성하기 JsonNode 수정하기 JsonNode to Object, Collection JsonNode에서 Json문자열로 1. JsonNode소개 및 생성하기 Jackson 문서에 따르면 json tree구조를 가진 객체라고 한다. 즉 json문서의 전체 혹은 일부를 나타낼 수 있는 객체이다. 이 클래스의 서브 클래스들이 있는데 JsonNode의 역할을 세분화한 버전이라고 생각하면 된다. com.fasterxml.jackson.databind.node패키지에서 확인 할 수 있다. json 문자열로 생성하기 String json = "{\"property1\":\"v... Read more

[Spring Secutiry] 특정 url에 security filter 추가하기

Spring Security를 이용해 개발을 하던 중 커스텀 필터를 특정 URL에 적용시킬 필요가 있었다. 이 글에선 그 방법을 정리하려 한다. URL패턴으로 요청 식별하기 필터추가하기 코드 1. URL패턴으로 요청 식별하기 HttpSecurity객체는 antMatcher(String)메서드를 제공한다. 이를 통해 클라이언트의 요청중 특정 url pattern에 대한 설정을 할 수 있다. 여러개의 url pattern에 대한 요청을 설정하고 싶은경우 아래와 같이 HttpSecurity:requestMatchers()를 통해 antMatchers(String, String...)을 이용하면 된... Read more

[Spring boot] Mock 테스트 하기

스프링 부트를 이용한 웹애플리케이션에 http요청을 테스트하는 방법은 크게 3가지로 생각할 수 있다. 웹애플리케이션을 서버위에서 구동시켜 http요청을 보내보며 테스트 애플리케이션을 실제 서버위에서는 구동시키지 않지만 spring context를 이용해 http요청을 전달하여 테스트 애플리케이션의 일부만 작동시켜 테스트 이 글은 2번째 방법을 정리했으며 스프링 공식문서를 참고했다. 1. Spring Application Context 실행시키기. 테스트 코드에서 Spring의 Controller, Service등 bean들을 테스트하기 위해선 Spring Application Context를 실행... Read more