분류 전체보기
-
What is difference thing between 'junit-vintage-engine' and 'junit-jupiter-engine'Backend/SPRING 2022. 5. 31. 19:07
요세 Junit4에서 작성하던 테스트 코드를 Junit5에서 작성하고 있는데요. vintage-engine 관련된 의존성을 삽입해서 테스트 하다가 오류가 나서 이것저것 찾아보니, junit5는 jupiter engine 기반으로 돌아가더라구요.... 말나온 김에 차이점을 말씀드려보면 1.junit-vintage-engine (1) junit4 테스팅을 위해 사용됨 (2) core class 혹은 annotation 들이 호출되는 방식으로 사용됨 (3) @Ignore, @Before, etc와 같은 annotation들이 쓰임 2.junit-jupiter-engine (1) junit5 테스팅을 위해 사용됨 (2) 테스트에 필요한 기능들을 제공하는 api를 호출하는 방식으로 사용됨 (3) @Disa..
-
Java Class안에서 Yaml(application.yml)에 기재해놓은 정보 가져와서 사용하기 / The way use variables written in yamlBackend/SPRING 2022. 5. 31. 19:04
많은 기업에서, Spring을 사용하실때에 application.properties 혹은 application.yaml 파일 안에 여러가지 application에 관한 정보를 많이 넣어두실 것 같아요. Yaml은 application.properties 보다 진보된 작성법이라는 이야기가 있는데요. 제가 근무하고 있는 회사에서는 application.yml을 사용해서 application 동작에 필요한 기능들을 정의하고 관리하고 있어요. 그런데 의외로 yml에 있는 정보들을 온전히 project로 가져와서 다루는것이 쉽지 않았어서 그 과정들을 아래에 기재해놓으려고해요. 1. application.yml에 필요한 정보들 정의 (참고로 yaml을 작성해주실때에는 구간별 띄어쓰기를 주의해주셔야 합니다..
-
Swagger에서 get방식으로 @requestParam을 넘길때 표기하는 방법 / The way writes param information at SwaggerBackend/SPRING 2022. 5. 31. 19:00
보안적인 문제때문에 대부분 @PostMapping을 사용하시겠지만, 정말 간단한 API 같은 경우에는 @GetMapping으로 기능을 구현하실 일도 꽤 있으실 것 같은데요. 아래와 같이 @GetMapping Annotation을 사용한 후 ... @GetMapping(value = "/user/list") 넘기고자 하는 해당 파라미터에 아래와 같이 표기하면... Swagger에 정상적으로 나옵니다. @RequestParam @ApiParam(name = "userType", value = "직업 타입", required = true, example = "PROGRAMMER") String userType 감사합니다.
-
스웨거에서 노출되기를 원하지 않는 값들을 감추는 방법 / The way hides api property in SwaggerBackend/SPRING 2022. 5. 31. 18:58
Spring에서 Swagger 작업을 하시다 보면, Client 개발자분에게 노출되지 않았으면 하는 값이 분명히 있을거라고 생각합니다. VO도 내부에서 쓰는 VO가 있을테니까요. (물론 가장 좋은건, requestDTO와 responseDTO를 완전히 불리하고 해당 class를 구성하는 변수들까지도 깨끗하게 분리하는 것이곘지만요) 서론이 길었는데요, 결론은 간단합니다. hide처리하고 싶으신 값 위에 아래와 같이 적어주시면 됩니다. @ApiModelProperty(hidden = true) 도움받은 링크도 같이 첨부합니다. https://github.com/springfox/springfox/issues/554 @ApiModelProperty "hidden" attribute has no effect ·..
-
Swagger에서 VO/DTO를 표기하는 방법 / The way write VO/DTO in SwaggerBackend/SPRING 2022. 5. 31. 18:57
Controller에서 어떠한 값을 request로 받는지, 어떻게하면 Swagger로 잘 표기하고 싶으실까? 에대한 고민을 하는 개발자분들이 많을 것입니다. 요청의 종류에 따라서 나누어서 설명드리고자 합니다. 1. Get방식의 @RequestParam 일경우 (@RequestParam은 Swagger의 기능이 아니니 다른 포스팅에서 다루도록 하겠습니다.) (1) @RequestParam을 사용하시는 경우는 아래와 같이 parameter가 간단하신 경우이실 것입니다. 그러니까, 애초에 parameter가 복잡하셨으면 get으로 넘기지는 않으셨을 것이라고 예상됩니다. 복잡하셨으면 post로 class를 묶어서 전송하셨을 것이라고 생각됩니다. 그런 경우, Controller단에서 @ApiParam 이라는..
-
Swagger에서 Enum을 표기하는 방법 / The way express Enum in SwaggerBackend/SPRING 2022. 5. 31. 18:54
Swagger에서 주로 하는 고민은 프로젝트 전반적으로 쓰이는 DTO/VO를 어떻게 이쁘게 표현해줄까? 일텐데요. Enum에 대해서 단순하게 표기했다가, 우연히 방법을 찾게되어 공유드립니다. DTO/VO에 속하는 Enum값들을 표기하는 방법입니다. @ApiModelProperty( value = "해당 값에 대한 설명" , example = "실제 예제로 들어갔으면 하는 값" , required = true , allowableValues = "FIRST_TYPE, SECOND_TYPE" ) AnyTypeEnum anyTypeEnum; FIRST_TYPE, SECOND_TYPE에 실제 ENUM값을 적어주시면 됩니다. DTO/VO 자체를 표기하는 방법에 대해서는 다른 포스팅에서 다루겠습니다. 감사합니다.
-
Lombok의 @Builder 기능을 상속받은 class에서도 사용하는 방법Backend/SPRING 2022. 5. 31. 18:53
Lombok의 Builder 어노테이션은 객체 생성 시에 속성값들을 연쇄적으로 호출하므로 코드의 품질을 높이는 데에 좋은 어노테이션입니다. 하지만 상속을 받은 class에서 사용하게 되면 어째서인지 부모 class의 속성값들을 참조하지 못하죠. 그런 경우 아래와 같은 처방을 해주시면 됩니다. 1. 부모 클래스에서 @AllArgsConstructor를 사용하여 모든 파라미터로 객체를 생성할 수 있게 어노테이션을 붙여줍니다. @Getter @AllArgsConstructor public class Parent { private final String parentName; private final int parentAge; } 2. 자식 클래스에서 아래와 같이 처리해 주시면 됩니다. 모든 필드를 받는 ..
-
Can't find catalina.jar / 카탈리나 jar파일을 찾을 수 없습니다Backend/SPRING 2022. 5. 31. 18:48
톰켓 설정을 하시다보면 위와 같은 Error log를 마주치는 경우가 있으실 겁니다. 이러한 에러는 톰켓 설정을 잘못해서 나오는 에러입니다. 1. 우측 상단의 초록색 망치 옆의 tomcat server 설정 탭 클릭 2. Edit configuration 클릭 3. 지정하신 tomcat server 이름 아래에 보면 Application server : 톰켓 버전 configure... 이라는 버튼이 보이실 겁니다. 4. confgirue 버튼 클릭 5. Tomcat Home과 Tomcat base directory가 제대로 지정되어 있는지 확인합니다.