Java, JavaScript (33) 썸네일형 리스트형 [Spring Boot] Spring Rest Docs 사용하기 - GET Spring Rest Docs는 REST API를 문서화하기 위해 사용하는 기술입니다. Spring Rest Docs는 다음의 기능을 제공합니다. Test Code를 기반으로 Test 통과 시 REST API 문서를 생성해준다. Test Code의 메서드를 사용하여 문서를 수정 및 보안할 수 있다. 따라서 Spring Rest Docs를 사용하면 Controller의 코드가 변하더라도 Test Code에 적용하기만 한다면 일일이 모든 문서를 수정할 필요가 없습니다. 🚩 Spring Rest Docs 설치 및 적용에 대해서는 언급하지 않겠습니다. (Spring Rest Docs Starter) Spring에서 REST API를 테스트하기 위해서는 Controller 마다 다음을 초기화하여야 합니다. API.. [Spring Boot] POST 요청을 사용하여 Entity 생성하기 Member Entity를 생성하는 API를 만들어보도록 하겠습니다. 테이블은 https://hangjastar.tistory.com/223를 참고하면 됩니다. Member 생성 시에는 name, phone, address를 입력받도록 하겠습니다. 다음은 Member 생성 코드입니다. @PostMapping("/api/v1/member") public CreateMemberResponse saveMemberV1( @RequestBody @Valid CreateMemberRequest request) { Member member = Member.createMember(request.getName(), request.getPhone(), request.getAddress()); Long id = member.. [Spring Boot] @RequestParam, @PathVariable 차이는 뭐야? 프로젝트를 만들면서 조회 API를 만드는 2가지 방법에 대해서 알게 되었습니다. 예를 들어 id에 맞게 반려동물의 정보를 조회한다고 한다면 크게 2가지 방법으로 나눌 수 있습니다. /api/v1/pet?id=XXX - id 파라미터를 명시해주면서 조회를 요청하는 법 /api/v1/pet/XXX - pet/ 뒤에 id를 입력하여 조회를 요청하는 법 1번처럼 요청을 할 경우에 추가적인 파라미터가 존재할 경우 /api/v1/pet?id=XXX¶m=YYY와 같이 변하고, 2번의 경우에는 추가적인 파라미터가 존재할 경우 /api/v1/pet/XXX/YYY 와 같은 형태로 변형이 됩니다. 따라서 2번의 경우에는 입력받을 파라미터가 많이 존재한다면 어떤 값이 입력되는지 알기가 힘듭니다. 다음으로는 @Reque.. [Spring Boot] 연관관계 메서드 설정하기 JPA는 데이터베이스를 객체화하였기 때문에 Entity를 설계할 때에 연관관계 메서드를 넣어주어야 합니다. 연관관계 메서드는 연관관계를 가진 Entity를 생성할 때 사용하는 함수로 연관관계에서 주인이 되는 곳에 선언되게 됩니다. 테이블 설계는 https://hangjastar.tistory.com/223을 기준으로 진행하겠습니다. 연관관계의 주인은 일대다, 다대일의 경우에는 다쪽에 일대일은 경우에 따라 다르지만 더 호출이 많은 곳을 주인으로 설정하면 됩니다. 테이블 설계에서는 관계는 다음과 같습니다. 테이블 관계( :양방향, -> : 단방향) 주인 member pet pet chart -> pet chart chart -> vet chart prescription chart prescription ve.. [Spring Boot] 동물병원 진료 데이터베이스 설계 테이블 설계를 제대로 하지 않고 머릿속으로 생각하여 진행하니 수정되는 부분이 빈번하게 발생되어 더 견고하게 제작하기 위해서 요구사항부터 ERD설계를 직접 해보았습니다. 프로젝트의 주제는 동물병원 진료 관리 프로그램으로 Spring Boot 기본기를 다지기 위해서 진행하고 있습니다. 다음은 요구사항입니다. 동물병원 진료 프로젝트 요구사항 공통 모든 테이블은 생성 시점과 수정 시점에 대해서 저장해야한다. 회원 회원은 등록 시 이름, 전화번호, 주소를 저장한다. 모든 정보에 대해서 수정이 가능하다. 이름으로 검색할 수 있다. 1명의 회원은 여러 반려동물을 저장할 수 있다. 반려동물 등록 시 이름과 생년월일을 저장한다. 수정 시에는 이름만을 수정할 수 있다. 조회 시 이름으로 검색할 수 있다. 반려동물은 1명의.. [Spring Boot] @Autowired를 사용하지 않고 Bean 가져오기 Test 코드를 작성할 때 @Autowired와 @SpringBootTest를 사용하지 않고 테스트할 수 있는 방법에 대해서 알아보겠습니다. 우선, AutoAppConfig class를 프로젝트 최상단에 생성하여주고 @Configuration, @ComponentScan 어노테이션을 추가해줍니다. 코드는 다음과 같습니다. @Configuration @ComponentScan public class AutoAppConfig { } @ComponentScan을 사용하면 @Component가 어노테이션이 있는 것들을 Spring Bean으로 자동으로 등록해줍니다. @Component는 @Service, @Repository에 모두 추가되어 있습니다. 준비가 완료되었으니 테스트 코드를 작성하면 됩니다. Test.. [Spring Boot] IntelliJ Live Templates 생성하는 방법 IntelliJ는 여러 가지 유용한 자동완성 기능을 제공합니다. soutv (System.out.println("variable= " + variable)), psvm(public static void main(String[] args))를 예시로 들 수 있습니다. IntelliJ는 위의 기능들도 제공하지만 사용자가 직접 자동완성 기능을 제작할 수 있게 해 줍니다. 우선 Settings > Editor > Live Templates에 들어갑니다. 다음은 정상적으로 완료되었을 때 보이는 화면입니다. 화면에 보이는 것처럼 + 버튼을 눌러 2 Template Group 버튼을 클릭하여 custom Group을 생성합니다. 생성이 완료되었다면 custom Group을 클릭한 후에 다시 + 버튼을 눌러 1 Liv.. [Spring Boot] Auditing은 뭐야? 테이블을 설계를 할 때 필수적으로 관리되는 Column이 존재합니다. 생성 시간, 수정 시간, 생성한 사람, 수정한 사람 등을 예로 들 수 있습니다. 모든 도메인에 위에 나열한 column들을 생성하여 관리하기에는 번거로움이 있습니다. 이러한 문제를 해결하기 위해 Spring Data JPA에서 Auditing 기능을 제공해줍니다. 다음은 BaseTimeEntity를 생성하여 제공할 데이터들의 정의해줍니다. ... @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public class BaseTimeEntity { @CreatedDate private LocalDateTime createdDate; @LastModified.. 이전 1 2 3 4 5 다음