programming study/B-Spring 18

filter, interceptor, aop

[10분 테코톡] 조시, 쿤의 서블릿 필터 & 스프링 인터셉터 - YouTube> filter, intercepter, aop는 보안처리, 인증, 권한 처리, 로깅과 같은 공통 관심사항을 따로 처리하는 데 사용되는 기술입니다. filter와 intercepter의 경우에는 파라미터로 ServletRequest와 ServeltResponse를 제공해주기 때문에 HTTP 헤더에 직접 접근이 가능하기 때문에 웹과 관련되 기능을 구현하는데 적합합니다. filter filter는 부가작업을 처리하기 위해 자바 표준 스펙이고 톰캣과 같은 웹 컨테이너에서 제공하는 기술입니다. Dispetcher Servlet가 실행하기 전이나 종료된 후에 동작합니다. 요청을 보낼 때는 Dispetche..

@Async

How does @Async work? @Async를 지금까지 잘 못 쓰고 있었습니다(@Async 사용할 때 주의해야 할 것, 사용법) (tistory.com) [Spring] @Async 비동기 멀티스레드 사용법 (tistory.com) Spring 에서 async 처리 (@Async) (tistory.com) 스프링에서 @Async로 비동기처리하기 :: 스프링부트는 사랑입니다 (tistory.com) 비동기란? 비동기란 다른 쓰레드에서 병렬로 동작시키면서 응답을 기다리지 않고 처리할 수 있는 기술이며, 요청이 몰리거나 오래걸리는 작업을 처리할 때 사용하여 어플리케이션의 성능 향상을 위해 사용된다 @Acync 어노테이션 사용 시 주의 사항 @Async어노테이션의 사용법에 관한 주의사항이 있습니다. @A..

[Lombok] 올바른 Lombok 사용법 - @Builder

출처 - [Lombok] 올바른 Lombok 사용법 - @Builder (tistory.com) 우리가 Spring에서 자주 볼 수 있는 Lombok들에 대해 알아보겠습니다 아래와 같은 코드가 있다고 할 때 이를 어떻게 리펙토링 할 수 있을까요? @Getter @Setter // 문제 1. 객체가 무분별하게 변경될 가능성 있음 @NoArgsConstructor // 문제 2. 기본 생성자의 접근 제어자가 불명확함 @Builder @AllArgsConstructor // 문제3. 객체 내부의 인스턴스멤버들을 모두 가지고 있는 생성자를 생성 (매우 위험) @Entity public class Member 해결 1. @Setter를 사용하지 않기 Setter는 그 의도가 분명하지 않고 객체를 언제든지 변경할 ..

[Spring]RestTemplate과 HttpEntity (제네릭과ParameterizedTypeReference)

출처 : [Spring]RestTemplate과 HttpEntity가 뭐길래(제네릭과 ParameterizedTypeReference) - 야망찬 개발자의 블로그 (sowon-dev.github.io) [Spring]RestTemplate과 HttpEntity가 뭐길래(제네릭과 ParameterizedTypeReference) 프로젝트를 하다보면 화면이 아닌 서비스단에서 외부 API와 호출해야할 일들이 생긴다.이때 주로 사용되는 것이 RestTemplate이다. sowon-dev.github.io 프로젝트를 하다보면 화면이 아닌 서비스단에서 외부 API와 호출해야할 일들이 생긴다. 이때 주로 사용되는 것이 RestTemplate이다. 이번 프로젝트에서 백엔드 업무를 도맡았다. 첫 작업으로 맡게 된 건 외..

프로퍼티 파일(yml) 여러개 설정하기

출처 : [Spring Boot] 프로퍼티 파일(yml) 여러개 설정하기 (jiniworld.me) [Spring Boot] 프로퍼티 파일(yml) 여러개 설정하기 웹 애플리케이션의 실행 환경에 따른 구성설정의 외부화를 위해 프로퍼티 파일을 사용했습니다. spring boot에는 예약된 프로퍼티 키가 존재하며, 예약된 프로퍼티에 설정을 추가하는 것 만으로도 blog.jiniworld.me 선 결론 spring Boot 2.4 미만버전이라면 OS환경별로 다른 구성파일을 설정하고 싶다면 3.1 방법을 사용하면 되고, 웹 애플리케이션 시작시 커맨드 라인 인자값을 각기 다르게 설정하여 다양한 테스트를 하고 싶다면 3.2 방법을 사용하면 됩니다. 환경에 상관없이 고정적으로 여러개의 구성파일을 설정하고 싶다면 3...

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (2)

실습 [Spring Settings] Project : Gradle - Groovy Language : Java Spring Boot : 2.7.6 Group : hello Artifact : springmvc Name : springmvc Description : Demo project for Spring Boot Package Name : hello.springmvc Packaging : Jar Java : 11 Dependencies: Spring Web, Thymeleaf, Lombok GENERATE 수행 war vs jar war를 사용하는 경우 - jsp 사용할 때 - Tomcat 같은 WAS 서버를 별도로 설치두고 거기에 빌드된 파일을 넣을 때 (내장 Tomcat에도 사용 가능하긴 하지만 ..