make it simple
article thumbnail
[Spring] 싱글톤 컨테이너란?
Java 2023. 3. 13. 04:46

싱글톤 컨테이너란? 싱글톤 컨테이너는 싱글톤 패턴의 문제점을 해결하면서 효율적으로 인스턴스를 공유하며 효율적으로 사용할 수 있게 도와준다. 기본적으로 스프링 빈들은 싱글톤으로 관리되는 빈이다. 스프링 컨테이너는 싱글턴 패턴을 적용하지 않아도, 컨테이너는 하나의 인스턴스만 생성하고 관리한다. 스프링 컨테이너는 싱글톤 컨테이너 역할을 한다. 싱글톤을 객체를 생성하고 관리하는 기능을 싱글톤 레지스트리라 한다. 이 기능을 사용함으로써 싱글톤 패턴을 위한 지저분한 코드를 작성할 필요도 없고 DIP,OCP,테스트, private 생성자로부터 자유롭게 싱글톤을 사용할 수 있다. 싱글톤 테스트를 해보자! @Configuration public class AppConfig { @Bean public MemberServi..

article thumbnail
[Spring] 예외처리(ExceptionHandling)하는 방법
Java 2023. 3. 12. 09:46

예외 처리를 왜 필요할까? 발생하는 예외에 따라 응답값을 다른 HTTP Status 값으로 보내줘야 명확히 어떤 예외가 터졌는지 파악 한 후 처리할 수 있다. 그래야 응답값에 따라 메세지/화면을 처리하여 사용자에게 더 나은 사용성을 제공한다. 예외 처리하는 다양한 방법들을 알아보자. HandlerExceptionResolver 사용하기 Exception Resolver 동작과정 적용 전: Request -> Dispatcher Servlet -> Handler Adaptor -> Dispatcher Servlet -> Reseponse 적용 후: Request -> Dispatcher Servlet -> Handler Adaptor -> Exception Resolver -> Response @Slf4j..

article thumbnail
[DDD] 도메인 주도 개발 시작하기 CH_6. 응용 서비스와 표현영역 2편
책/도메인 주도 개발 2023. 3. 6. 02:21

표현 영역의 3가지 책임 사용자가 시스템을 사용할 수 있는 흐름을 제공하고 제어한다. 사용자의 요청을 알맞은 응용 서비스에 전달하고 결과를 사용자에게 제공한다. 사용자의 세션을 관리한다. 값 검증 값 검증은 표현 영역과 응용 서비스 두 곳에서 모두 수행할 수 있다. 응용 서비스에서의 검증 public class JoinService { @Transactional public void join(JoinRequest joinReq){ // 값의 형식 검사 checkEmpty(joinReq.getId(), "id"); checkEmpty(joinReq.getName(), "name"); if (joinReq.getPassword().equarls(joinReq.getConfirmPassword())) thro..

article thumbnail
[JAVA] 프로그래머스: 숫자찾기

https://school.programmers.co.kr/learn/courses/30/lessons/120904 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr public int solution(int num, int k) { int result = -1; char[] charArr = String.valueOf(num).toCharArray(); for (int i = 0; i < charArr.length; i++) { if (String.valueOf(charArr[i]).equals(String.valueOf(k))) { result = i +..

article thumbnail
[JAVA] 프로그래머스: n의 배수 고르기

https://school.programmers.co.kr/learn/courses/30/lessons/120905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr public ArrayList solution(int n, int[] numlist){ ArrayList answer = new ArrayList(); for(int num: numlist){ if(num % n == 0) answer.add(num); } return answer; } 잘 풀었다 생각하는 풀이 public int[] solution(int n, int[] numList) { r..