[Spring boot] Swagger
·
Backend/Spring
Swagger란? 자바 API 문서 자동화 중 하나입니다. 개발자가 REST API 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 돕는 오픈 소스 소프트웨어 프레임워크입니다. Swagger에는 자동화된 문서와 코드 생성, 테스트 케이스 생성 지원이 포함됩니다. Swagger 사용 이유 개발이 끝나면 추후 유지보수를 위해 API Spec에 대한 문서화 작업이 필요합니다. 이미 개발이 끝난 프로젝트를 유지보수할 경우 API에 대해 더욱 쉽게 이해할 수 있기 때문입니다. 또한, 개발 후 개발자가 API 문서를 작성하기 번거롭기 때문에 나온 프레임워크입니다. Spring boot에서 Swagger 설정 1) dependency 추가 (maven을 사용하였습니다.) io.springfox springfox-s..
[JAVA] JVM 구조, Memory Leak
·
Backend/JAVA
회사에서 class 파일 반영 후 서버를 내렸다가 다시 올리는 순간 Memory Leak이라는 메시지가 나오면서 서버가 올라가지 않는 현상이 일어났었다. 당시 상황상 뭔가 이상해서 백업 파일을 다시 원복 시켰는데도 Memory Leak.. 내 코드의 문제도 아니었고 다른 코드의 문제로 결국 다른 서버를 다 내려버리고 다시 올렸더니 그때서야 되었다. 신입이라면 모든지 다 찾아보고 공부를 해봐야지 하며 근 일주일간 틈틈이 JVM과 Memory Leak에 대해서 조사를 해보았다. 우선 자바의 메모리 관리는 가비지컬렉터가 하므로 JVM도 알아야 했으므로 JVM 설명으로 시작을 해보겠당. 1. JVM (Java Virtual Machine) - 자바 가상 머신. - 자바 바이트 코드(. class)를 실행하는 주..
[Spring boot] 다중 데이터베이스 연결
·
Backend/Spring
회사에서 문서 작업을 하며 mybatis에서 다중 데이터베이스 연결을 시도했다. 전 프로젝트를 진행하면서 JPA를 이용해서도 연결을 했었는데 그건 나중에 포스팅 하도록 하겠다. 1. 프로젝트 구조 config 폴더는 모든 설정을 관리하는 폴더입니다. 'OneDataSourcrConfig'는 첫번째 데이터베이스 연결에 관한 설정이고, 'TwoDataSourceConfig'는 두번째 데이터베이스입니다. 각각 데이터베이스에 대한 Controller, Service, DAO, Domain은 폴더를 만들어 관리합니다. 간단하게 'test1', 'test2'로 설정했습니다. 가장 중요한 점은 Config 폴더의 위치입니다. Config에는 Domain, Mapper.xml 폴더 경로를 입력하는 코드가 있기 때문에 ..
[Spring boot] Mockito
·
Backend/Spring
1. Mock Object(모의 객체) Mockito를 알아보기 전 Mock에 대해서 알아야 할 필요가 있습니다! Mock이란 가짜 객체를 의미합니다. 예를들어, 첨부파일을 업로드하고 삭제하는 기능을 테스트 한다고 가정하였을 때 html 화면까지 구성하고 데이터베이스에 연결하여 첨부파일을 넣고 삭제하고... 무언가 이상하면 코드를 수정하고 Spring이 실행될 때 까지 기다렸다가 화면에서 업로드하고 삭제를 반복해야하는 번거로움을 가지게 됩니다. 만일 테스트 코드를 작성하며 Mock 객체를 이용하게 된다면 화면 구성도 필요 없이 테스트 메소드 안에서 File이라는 객체를 가상으로 만들어 주어 테스트 코드에서 객체에 내용을 담아주고 테스트를 시행 할 수 있게 됩니다. (이해가 가시나요ㅎㅎ..) 2. Mock..