본문 바로가기
반응형

Web18

[HTTP] HTTP Status Code 2xx (성공) : 요청이 정상적으로 처리되었음을 나타낸다. 200 OK 서버가 요청을 제대로 처리했다는 뜻 서버가 요청한 페이지를 제공했다는 의미 204 No Content 서버가 요청을 성공적으로 처리했으나, 리소스를 제공하지 않는다. 응답 바디에 내용이 없음 화면의 변화 X 클라이언트는 단순히 서버에게 정보만 제공하고, 새로운 정보를 받을 필요가 없는 경우 사용 3xx (리다이렉트) : 요청을 정상적으로 처리하기 위해 브라우저 측에서 추가적인 처리를 수행해야 함을 나타낸다. 301 Moved Permanently 302 Found 4xx (클라이언트 에러) : 클라이언트의 원인으로 에러가 발생했음을 나타낸다. 400 Bad Request 요청 구문(Syntex)이 잘못되었음을 나타냄 401 Unau.. 2022. 8. 15.
[Mockito] spyBean vs mockBean @MockBean : given에서 선언한 코드에서만 사용할 수 있음 @SpyBean : given에서 선언한 코드 외에는 전부 실제 객체의 것을 사용 이미 존재하는 Bean을 SpyBean으로 Wrapping한 형태 기본적인 개념은 조금 다르나 사용법은 @MockBean과 @SpyBean은 동일 간략한 특징은 - MockBean은 가짜객체이므로 given에서만 개발자의 모의코드를 지정할 수 있음 이에, 실제 데이터베이스 연동되는 로직이 있어도 가짜 객체이므로 연동되지 않음 - SpyBean은 진짜객체이므로, 특정 given에서 개발자의 모의코드를 지정할 수 있음, 대신 given이 아닌 행위에 대해서는 실제 객체로 동작, 이에 구현된 로직이 실제 수행되며, 데이터에비스 연동이 실제로 이루어짐 - 참고 .. 2022. 7. 10.
[DI] 생성자 주입을 사용하자 DI 방식 종류는 1) 생성자 주입 2) setter 주입 3) 필드 주입 4) 일반 메서드 주입 위 4가지 중 1)생성자 주입으로 사용하자 왜? 1) final 키워드 작성 가능 == 불변 대부분 의존관계 주입은 한번 일어나고 애플리케이 종료시점까지 변경되면 안된다. setter와 메서드방식의 경우 public으로 지정하다보니 외부에서 실수로 개발자가 변경할 수 있는 위험요소가 있음 2) 의존관계 누락 방지 생성자는 인스턴스를 만들때, 당연히 위와 같이 컴파일 에러를 뱉음 (컴파일 오류는 세상에서 가장 빠르고 좋은 오류다) 그러나, setter 주입일 경우는? 현재 MemberService에서 Repository가 누락되었으나, 문제없이 생성자를 통해 인스턴스를 만들고, 주입받지 못한 memberSer.. 2022. 6. 21.
@EventListener & @PostConstruct 애플리케이션을 실행할 때, 다른 리소스에서 호출하지 않고도 특정 메서드를 수행시키고 싶을 때 (예로, 초기 데이터를 저장하는 경우 등 초기화 작업 시) 다음 어노테이션 중 하나를 수행 시킬 메서드에 적용한다. 1) @EventListener(ApplicationReadyEvent.class) 2) @PostConstruct 1)의 경우 스프링 컨테이너가 완전히 초기화를 다 끝내고, 실행 준비가 되었을 때 발생하는 이벤트이다. 2)의 경우는 AOP같은 부분이 아직 처리되지 않은 시점에 호출 될 수 있어, 간혹 문제가 발생할 수 있음 가급적 1)를 쓰는게 좋을듯 싶다. @EventListener(ApplicationReadyEvent.class) public void initData() { log.info(.. 2022. 6. 9.
반응형