본문 바로가기
728x90
반응형

SpringBoot25

@InjectMocks 한 객체에 given()을 주면 어떻게 될까? 테스트코드를 작성하면서 의존성이 있는 객체의 메소드에 given().willReturn()을 설정했는데 예상했던대로 동작하지 않았습니다. 상황을 재연하면서 그 이유와, 어떻게 동작되는지를 알아보겠습니다.  CalculatorService를 만들었고 add도메인과, sub도메인을 만들어서 덧셈, 뺄셈 기능을 사용하였습니다. 그리고 곱하기는 Multiplier 클래스를 상속받아 사용하였습니다.------------------------------------   그리고 테스트코드는 아래와 같이 작성했습니다. 처음 생각했던 것은 메소드 3개에 다 given()을 주었으니까 150이 나오겠지? 였습니다. 결과는?다르게 나왔습니다.. mul 메소드에서 제가 given()으로 준 값이 아닌 코드상의 정상적인 계산이 .. 2023. 11. 30.
REST API request별 swagger3.0.0 파라미터 명세 REST API를 개발하던 중 파라미터를 swagger3.0.0 에 명세해야 했습니다.그런데 경우에 따라 조금씩 다르더라구요.유형별로 명세 방식을 알아보겠습니다!   1. Path Variablelocalhost:8080/userinfo/userid/{userId}/password/{password} Path Variable 방식으로 들어오는 파라미터는 @Parameter, @PathVariable 어노테이션을 통해 설명과 Variable 종류를 명세해줍니다.@Operation은 API에 대한 명세입니다. 전 후     2. Query Parameterlocalhost:8080/userinfo/userid/{userId}/password/{password}?phoneNo=01012345678&birthY.. 2023. 11. 29.
@RequiredArgsConstructor 와 @AllArgsConstructor @RequiredArgsConstructor @AllArgsConstructor 모두  Lombok 라이브러리에서 제공하는 어노테이션으로, 생성자를 자동으로 만들어주는 역할을 합니다. 이 둘의 차이점을 알아보겠습니다.  @RequiredArgsConstructor 는 final 로 선언된 필드에 대해서만 생성자를 만듭니다.import lombok.RequiredArgsConstructor;@RequiredArgsConstructorpublic class Example { private final int id; private String name; // final이 아닌 필드 // 생성자는 id만을 매개변수로 받음}이렇게 하면 다음 과 같은 생성자가  생성되는 것입니다.public Exam.. 2023. 11. 15.
@Transactional(readOnly = true) 중간에 save(insert) 하기 현재 시스템은 readerDB와 writerDB로 나뉘어져 있습니다.부하를 분산시키기 위해서입니다.https://orange-makiyato.tistory.com/75 DB 부하분산(간단 정리)일정 크기 이상의 서비스를 운영하는 회사에서는 대부분 데이터베이스 부하 분산을 위해 master-slave 형태로 reader-writer 인스턴스를 를 분리해 놓습니다. Primary cluster : 데이터베이스 클러스터에서orange-makiyato.tistory.com  한 API를 개발해야하는데 5개의 스텝중에 중간에 한 스텝만 save를 하는 로직입니다. 이걸 위해서 5개의 스텝을 모두 readerDB를 타게 하자니, 하루 평균 500만 call이 들어오는 API라 writerDB의 성능 저하가 우려되는.. 2023. 8. 3.
웹 개발 발전 과정 Servlet, JSP, MVC, FrameWork 스프링에 대한 것을 보다보면 servlet이 어쩌고, jsp가 어쩌고 하는 내용들이 종종 보였습니다. 그래서 볼 때 마다 무슨말이지.. 했었던 것을 정리해보려고 합니다.  (그 전에 웹 서비스의 구조와 정적컨텐츠, 동적컨텐츠 이해하고 가기~)https://orange-makiyato.tistory.com/48  Apache, Nginx, Tomcat, 웹 서버, WAS, 정적콘텐츠, 동적콘텐츠Apache, Nginx = Web Server Tomcat = WAS, Web Application Server = 서블릿 컨테이너 = 미들웨어 1. Web 서버란 클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 컨텐츠(.html, .png, .css등)를 제공하는 서버orange-makiyato.tist.. 2023. 1. 18.
728x90
반응형