반응형

java 5

[Spring] JPA ID 설계 전략

JPA에서는 아래와 같이 Entity를 설계할 때, @Id 어노테이션으로 해당 프로퍼티가 Database에서 PK가 되는 것을 명시하고, @GeneratedValue 를 통해 어떻게 PK를 생성할 건지 생성 전략을 명시하고 있다. @Entitypublic class Entity { @Id @GeneratedValue(strategy = IDENTITY) private Long id;}IDENTITY 전략을 사용하면, MySQL의 Auto Increment 생성 전략으로 ID를 생성할 수 있다.그 외에 TABLE, SEQUENCE, UUID, AUTO 의 전략으로 ID를 설계할 수 있다. 하지만 Auto Increment 전략을 사용하면, 기본적으로 data가 새롭게 생성될 때 id가 1씩 증가하기 때문에..

Spring 2024.06.13

[Study] Test Code Study 정리 (1)

무럭무럭 Test Code 스터디 내용을 정리하는 글. Test의 중요성에 대해서는 느껴왔었지만, 프로젝트를 하면서 Test Code에 많이 소홀했다. 여러가지가 이유가 있지만 그 중에 하나로 Test Code 짜는 습관이 잡혀있지 않은 것 때문이라고 생각했다. 조금 더 관성처럼 Test하는 습관을 기르는 것이 중요하다고 생각했다.스터디 목표쉬운 Test Code를 많이 짜보면서, Test Code를 짜는 습관을 만들어가기.수능 수학으..

Spring 2024.02.27

[Spring] Spring Boot 프로젝트에서 Swagger로 API 문서 관리

Spring Boot 프로젝트를 하면서, API 문서를 정리하기 위해 Swagger를 사용하면서 알게 된 점들을 정리했다. Swagger는 대표적인 API 명세서 Tool이다. Notion 혹은 Postman 혹은 엑셀 등등… 을 이용해서 API 명세서를 관리하는 것 역시 좋지만, 이러한 API의 경우 API에 수정사항이 생겼을 때, 관리하기 어려운 점이 있습니다. 개발 후에 명세서 작성을 놓치는 경우도 있고, 개발한 code와 API 명세서가 다른 Human Error가 생기는 경우도 빈번하게 있습니다… (JSON key 하나만 잘못 써도 요청이 제대로 안들어가니까요..) 따라서 API 명세서를 code로 관리하면, 조금 더 편리하고 오류 없이 관리할 수 있습니다… 그래서 사용하는 것이 Swagger라..

Spring 2023.05.01

[Spring] Lombok

Java, Spring에서 자주 사용하는 반복되는 code들을 Annotation으로 구현하여 간편하게 표현할 수 있도록 도와주는 라이브러리이다. 의존성 추가 dependencies { implementation 'org.projectlombok:lombok:1.18.22' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.projectlombok:lombok:1.18.22' } @Getter, @Setter Getter와 Setter를 @Getter, @Setter annotation을 사용하여 아래 코드와 같이 반복된 코드를 작성하지 않고, 쉽게 사용할 수..

Spring 2023.04.19

생성자 (Constructor)

생성자란? 인스턴스가 생성될 때, 호출되는 인스턴스 초기화 메서드이다. 기능 인스턴스 초기화(인스턴스 변수들을 초기화) 인스턴스 생성 시에 실행되어야 할 작업을 위해 사용. 특징 Return 값이 없다. ⇒ method 이지만, 항상 return 값이 없기 때문에, void를 생략할 수 있다. 생성자의 이름은 class의 이름과 같다. (*) 연산자 new가 인스턴스를 생성하는 것. 생성자는 인스턴스를 생성하는 것이 아니다. public class Book { private String writer; private String content; private int page; // 매개변수가 있는 생성자 public Book(String writer, String content, int page) { th..

Java 2023.04.19
반응형