본문 바로가기

공부/JAVA SPRING8

728x90
[Swagger] 스웨거 오류 Parser error on line 2unexpected end of the stream within a flow collection 스웨거를 작성 중 아래와 같은 오류가 발생되었다Unable to render this definitionThe provided definition does not specify a valid version field.Please indicate a valid Swagger or OpenAPI version field. Supported version fields are swagger: "2.0" and those that match openapi: 3.0.n (for example, openapi: 3.0.0). 처음 이 오류를 해결하고 다시 같은 오류를 2번이나 마주했고 구글에도 특별한 자료가 안보여 기록을 한다 Controller에서 @RequestBody로 받는 DTO중 @ApiModelProper.. 2024. 6. 28.
[Java] Mybatis 동시성 제어 회사에서 개발을 진행하던 중 실 사용자가 신청하는 로직을 개발하게 되었는데 문제는 사이트가 오픈되면 동시에 많은 인원이 신청을 하게되지만 신청자에는 제한이 있는 경우도 존재한다. 바로 동시성 제어가 필요하다 라는 생각을 했지만 JPA로는 동시성 제어를 해본 경험이있지만 Mybatis는 해본적이 없고 물어볼 선임이 없는 상황이라 혼자 테스트를 진행하며 기록한다. 환경 SpringBoot 2.7.1 Java 18 Junit 5 MyBatis 최초 테스트 코드 요청 횟수 : 1000번 쓰레드 수 : 100 제한 : 100 @Autowired private UserCommonMapper userCommonMapper; @Test void test() throws InterruptedException { int .. 2023. 9. 27.
코드 커버리지 적용(Jacoco) 코드 커버리지? 코드 커버리지란 소프트웨어 테스트의 측정 항목 중 하나로, 테스트를 수행했을 때 얼마나 많은 코드가 실행되었는지를 나타내는 지표입니다. 즉, 소스 코드 중에서 얼마나 많은 부분이 테스트 케이스에 의해 실행되었는지를 백분율로 나타내는 것입니다. 코드 커버리지의 종류 라인 커버리지 : 소스 코드의 각 라인이 실행되는 비율 브랜치 커버리지 : 브랜치 커버리지는 if문, switch문 등의 분기문에서 모든 경우의 수가 테스트되는 비율 메소드 커버리지 : 클래스 내의 메소드 중에서 테스트된 메소드의 비율 클래스 커버리지 : 소스 코드 내의 모든 클래스 중에서 테스트된 클래스의 비율 왜 사용할까? 코드 커버리지는 소프트웨어 개발에서 테스트된 코드의 양을 측정하는 데 사용됩니다. 이는 테스트되지 않은.. 2023. 4. 7.
[SpringBoot] QueryDSL 사용법 QueryDSL이란? 자바를 사용하는 개발자들이 SQL문을 작성하지 않고도 데이터베이스 쿼리를 생성할 수 있도록 도와주는 오픈소스 라이브러리입니다. 왜 사용할까? 객체지향적인 방식으로 쿼리를 작성할 수 있게 해주기 때문에, 코드의 가독성이 높아지고 유지보수성이 좋아집니다. 또한, 동적 쿼리를 작성할 때 유용하게 사용될 수 있습니다. 다양한 데이터베이스 시스템과 연동할 수 있으며, JPA, Hibernate, MyBatis 등 다양한 ORM 프레임워크와도 연동이 가능합니다. SQL문을 직접 작성하는 것보다 쿼리 작성에 필요한 시간과 노력을 줄여줄 뿐 아니라, 자바 코드를 통해 안전하고 쉽게 쿼리를 작성할 수 있게 해줍니다. 코드로 쿼리를 작성함으로써, 컴파일 시점에 문법 오류를 쉽게 확인할 수 있습니다. .. 2023. 3. 24.
[SpringBoot] Kakao REST API 검색어로 위도 경도 좌표 받기 [SpringBoot] Kakao REST API 검색어로 위도 경도 좌표 받기 API 키 발급받기 아래의 사이트에 접속하여 로그인을 해준다 https://developers.kakao.com/ 내 애플리케이션 -> 애플리케이션 추가하기 정보를 작성한다 앱이름 사업자 명은 원하는대로 작성하면된다 아래와 같이 생성된 애플리케이션을 눌러준다 우리가 사용할 키는 REST API키다 호출 결과 확인 결과를 확인하는데는 POSTMAN을 사용해서 결과를 확인했다 정상적으로 잘 확인이 된다! 발급받은 키로 API 호출하기 public KakaoSearchDto getKakaoSearch(String searchKeyword) { //카카오 API키 final String restAPIKey = "KakaoAK YOU.. 2023. 3. 13.
[SpringBoot] TMDB에서 API 파싱(RestTemplate, WebClient차이) TMDB에서 API 파싱 API 키 받아오기 https://www.themoviedb.org/?language=ko 에 접속하여 회원가입 후 설정에 들어가준다 Professional과 Developer중 Developer를 선택해준다 필요 정보를 적어주는데 Application Summary를 조금 많이 적어야 패스가 된다. 그럼 아래와 같이 키가 발급된다 SpringBoot로 파싱해오기 RestTemplate RestTemplate은 스프링 3.0부터 제공되었으며, 기본적으로 HTTP 요청을 보내고 응답을 받는 데 사용된다. RestTemplate은 동기 방식으로 작동하며, HTTP 요청 및 응답을 동기적으로 처리한다. 이러한 방식으로 사용하면 간단한 RESTful API 호출을 위해 좋은 선택이 될 .. 2023. 3. 3.