Swagger로 사랑받는 개발자 되기 [ Spring ]
·
Spring
들어가며안녕하세요, 여러분! 오늘은 개발자로서 Swagger를 이용해 API 문서를 작성하는 방법과 이를 통해 사랑받는 개발자가 되는 방법에 대해 이야기해 보려고 합니다. 특히, Spring 프레임워크를 사용하는 여러분께 유용한 팁과 예제를 공유할 예정입니다. 그럼, 시작해볼까요?Swagger란 무엇인가요?Swagger는 API 문서를 자동으로 생성해주는 툴로, API의 설계 및 구현 과정에서 매우 유용하게 사용됩니다. Swagger를 사용하면, API의 명세를 쉽게 확인하고 테스트할 수 있어 개발자와 비개발자 모두에게 큰 도움이 됩니다. Spring 프레임워크와 결합하면 더욱 강력한 도구로 활용할 수 있습니다.@Tag와 @SecurityRequirement먼저, API 인터페이스를 정의하는 부분을 살펴..
Spring 검색조회 필터링 구현 방법 [JPA Specification]
·
Spring
https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl안녕하세요..!오늘은 Spring Framework를 활용하여 검색조회 필터링을 구현하는 방법에 대해 소개할게요! 주어진 코드는특정 조건에 따라 Course 객체를 필터링하고, 결과를 DTO로 변환하여 반환하는 기능을 위해서 제가 진행한 프로젝트에서 필터링 기능을 적용하기 위해서 사용했습니다!이 과정에서 JPA의 Specification을 사용하여 동적 쿼리를 생성함으로써 필터링 기능을 작동시킬수 있습니다!1. Specification이란?Specification은 JPA에서 제공하는 인터페이스로, 동적 쿼리를 생성하는 데 유용합니다! . 주로 복잡한 ..
편리한 객체간 매핑을 위한 MapStruct 적용기 .feat 당근클론코딩
·
Spring
왜??Spring에 대한 공부와 여러가지 실습을 진행하면서 객체간 Mapping을 할 일이 많아졌고 각 객체 내부에 계속해서 다른 객체와 Mapping 해주는 로직을 짜게 되었습니다. 그러나 이제 객체가 늘어날수록 계속해서 Mapping 로직과 반환하는 DTO들이 많아졌고 관리의 용이성을 생각했을때 더 좋은 방법이 있다고 생각해서 찾아보게 되었습니다.일반적으로 제공하는 Mapper가 있지만 MapStruct라는 좋은 것이 있어서 코드설명과 함께 제공을 해드리려고 합니다. 네이버 클라우드의 블로그를 참고했습니다.https://medium.com/naver-cloud-platform/%EA%B8%B0%EC%88%A0-%EC%BB%A8%ED%85%90%EC%B8%A0-%EB%AC%B8%EC%9E%90-%EC%..
JPA - 단방향? 양방향? OneToMany? ManyToOne?
·
Spring
과제하다가 갑자기 DELETE 가 동작하지 않았다....ㅋㅋㅋㅋㅋㅋ... 따라서 여러가지 찾아보다가 이렇게 글을 쓰게 되었습니다...ERROR: update or delete on table "member" violates foreign key constraint "fkid4wmieido0slha6oaqc8l5fb" on table "blog"Detail: Key (id)=(6) is still referenced from table "blog".다음과 같은 Error로인해서 동작하지 않는다고 한다. 잘 읽어보면 update나 delete 시 member가 blog의 fk를 위반하고 있다고 한다. 따라서 blog참조하려다가 error가 떴다고 확인할수 있었다.그럼 이전에 먼저 ManyToOne , One..
@ManytoOne, @ManytoMany, @OnetoOne, @OnetoMany?
·
Spring
3차 세미나를 진행하면서 DB, JPA에 대해서 간단한 이론과 실습을 진행하면서 여러가지 의문점들을 느껴 찾아찾아 들어가다 보니 여기까지 왔네용...일단 제가 느낀 "의문점"에 대해서 설명드리고자 합니다그전에 JPA의 연관관계 기본 fetch 전략을 좀 보고 가시죠fetch의 기본전략각 jpa의 연관관계 어노테이션은 기본 fetch 전략을 가지고 있습니다. 이러한 default setting은 "어느쪽의 전략이 더 효율적인가" 에 초점이 맞춰져 있습니다.객체끼리의 연관관계 설정은?그렇다면 이러한 연관관계는 어떻게 설정하면 되는걸까요? 연관된 양쪽 객체에 모두 이러한 어노테이션을 사용하면 될까요? 그러면 혹시라도 복잡한 관계에서 순환참조등이 일어나지는 않을까 다양하게 발생할수 있는 문제에 대해서 깊은 고민..
SpringBoot와 Docker Container :Postgresql 연결하기!
·
Spring
먼저 사용에 앞서서 Docker를 알고 계신가요?https://crystalline-paper-4ea.notion.site/b1fb3ccc909d42e39263635676c3a7b8 여기서 docker & kubernetes 관련해서 간단하게 기본개념만 보고 오실수도있어요! 사실 저기에는 제가 정리한 내용이라 보기 어려우실 수도 있으니 간략하게 설명드리자면 커널을 공유해서 사용자의 resource를 사용해 간단하게 사용하는 인스턴스라고 생각하시면 될 것 같아요. 사용자마다 각 OS등의 환경이 다르기 때문에 발생하는 의존성 문제를 해결해줄수 있기 때문에 각 의존성을 모두 넣어서 하나의 이미지로 만들고 그 이미지를 실행시키면 컨테이너! 가 되는 과정이죠! 하나의 작은 서버개념 이라고 생각하시면 겁먹지 않고 ..
데이터베이스에 더미 데이터를 추가하는 방법
·
Spring
일단 더미데이터란? 특정 데이터를 테스트나 데모용도로 사용하기 위해 임의로 만든 데이터입니다! 저희도 과제를 하고 API를 작성함에 있어서 더미데이터를 넣어주고 test하는것이 필요한 경우가 많죠! 하지만 저도 이런점들을 잘 몰랐을때 그냥 Main코드에 더미데이터를 추가하는 코드를 넣거나 그냥 test API마다 값을 달리해서 추가하는 경우가 종종 있었습니다!! 따라서 아래와 같은 방식을 사용해서 더미데이터를 집어넣는다면 코드를 좀더 간결하고 작업하기 쉽게 만들수 있겠죠?? 1. data.sql 스프링 부트에서 (src/main/resource) 안에 만들어주시면 어플리케이션 "실행"시에 자동으로 실행됩니다! 다음과 같이 쿼리문을 만들어서 실행시켜주면 자동으로 더미데이터를 만들수가 있습니다! 어떻게 만들..