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에도 사용 가능하긴 하지만 ..

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

목록 웹서버 (Web Server) 웹 어플리케이션 서버 (WAS, Web Application Server) 웹서버, WAS 구성 방법 서블릿 서블릿 컨테이너 서블릿 컨테이너의 동시 요청을 위한 Multi Thread 처리 쓰레드 풀 백엔드 개발자로서 해야 할 것 ( 생각해보면 좋은 내용 ) : SSR 기술, 서버 요청 종류 자바 웹 기술 : Spring boot, Spring MVC, Thymeleaf가 요즘 많이 사용되기 때문에 주로 학습 서블릿 사용하기 http요청에따른 스프링 동작 흐름 HttpRequestServlet 역할 HTTP 요청 메세지를 통해 클라이언트에서 서버로 전달하는 방법 3가지 HttpServletResponse - 기본 사용법 MVC 패턴이란? 실습(서블릿 등록 방법, jsp..

Spring Boot 환경에서 Quartz Scheduler 사용하기

공부하게 된 이유 배치서버 작업 경험 중 배치서버가 이미 다 구현 된 상태이기 때문에 배치서버에 사용되는 Quartz 라이브러리를 잘 알지 못 해도 문제가 없었던 적이 있다. 배치작업 기능을 추가하는데 있어서 비지니스 로직을 추가하면 되는 상황이었다. 그렇지만 면접 준비를 하면서 작업 했던 환경에 대해서 설명을 요구할 수 있다고 생각해서 Quartz 라이브러리에 대해서 공부 해보기로 했다. 보통 대용량 데이터에 대한 작업을 순차적으로 처리하는데 사용되는 spring batch와 정해진 시간에 지정된 횟수만큼 반복적으로 특정 작업을 실행시키는 스케줄러 라이브러리인 quartz를 같이 사용한다고 한다. 그러나 spring boot 환경에서 spring batch 없이 quartz만 사용하여 batch ser..