Backend/Spring

[Spring]AOP의 개념 및 적용 예제(공통관심사 처리하기) 1. AOP가 필요한 상황? 예를 들어 당신이 프로젝트를 개발하고 있는데 상사가 와서 성능테스트를 하고싶으니 모든 메서드 로직 수행 시간을 로그로 찍어보라고 요청했다고 가정해보자. 일반적으로 이 이야기를 들으면 엄청난 노가다할 생각에 당황할 것이다. 아마도 다음과 같이 코드를 짜기시작할 수도 있을것 같다. public void joinUser(UserVO vo){ long start = System.currentTimeMillis(); vo.setRole("USER"); userRepository.save(vo); long end = System.currentTimeMillis(); System.out.println("걸린시간 = " + (..
[Spring]Request Scope를 사용해서 깔끔하게 로그남기기 스프링을 이용해서 프로젝트를 만들고 배포하여 운영해본 분이라면 문제가 생겨서 로그를 확인할 때 동시에 접속한 여러 고객들의 요청이 뒤섞이면서 로그가 뒤죽박죽으로 남아서 디버깅 작업에 애를 먹었던 경험을 한번씩 해봤을 것이다. 그럴 때 아래와 같이 로그가 찍히면 로그 추적이 한결 수월해 질 것이다. [clientA...][http://localhost:8080/login] controller test [clientB...][http://localhost:8080/login] controller test [clientA...][http://localhost:8080/login] service id = testId [clientB...][h..
[Spring]프로토 타입 빈 사용시 생기는 문제점 해결하기(ObjectProvider와 JSR-330 Provider) 1. 문제 상황 흔히 싱글톤 빈 내부에 프로토타입 빈을 두고 사용할때 이 프로토타입 빈이 싱글톤마냥 관리되면서 요청할 때마다 새로 생성되는 것이 아니라 의존관계 주입 시점에 처음 생성되고 계속 재활용 되는 문제에 직면하는 경우가 생기고는 한다. 간단한 예제 상황을 가정하여 count라는 정수를 가지고 있으면서 클라이언트가 count에 1을 더해주는 addCount, count값을 반환해주는 getCount 프로토 타입 빈이 있다고 해보자. 이 프로토타입 빈을 스프링 컨테이너에 여러번 요청해서 받은 각각의 빈들에게 addCount해주고 값들을 받아보면 어떻게 될까? 아래는 그 예시 코드..
[Spring]싱글톤 빈 VS 프로토 타입 빈 차이점 * 싱글톤 빈 VS 프로토 타입 빈 일반적으로 싱글톤 빈은 조회할 때마다 클라이언트에게 같은 빈을 반환하는 것을 보장해준다. 하지만 프로토타입 빈은 조회할 때마다 새로운 인스턴스를 생성해서 반환해주는 특징이 있다. * 혹시 빈이나 스코프 개념에 대해 잘 모른다면 아래 글을 참고하자. 2020/10/27 - [Backend/Spring] - [Spring]빈 스코프(Bean Scope)의 종류 및 개념 [Spring]빈 스코프(Bean Scope)의 종류 및 개념 [Spring]빈 스코프(Bean Scope)의 종류 및 개념 1. 빈 스코프란? 스프링은 빈이라는 개념으로 객체를 만들고 싱글톤화 시켜 관리해준다. 이 빈으로 생성된 객체들은 스프링 컨테이너..
Chung-A
'Backend/Spring' 카테고리의 글 목록 (3 Page)