jpa11 JPA에서 Enum 활용 방법 (ORDINAL vs STRING 등) 이전에 다뤘던 Enum의 객체지향적 활용방법https://record47584.tistory.com/81 Enum의 객체 지향적 활용 방법Enum 이란?서로 관련된 상수들의 집합을 타입으로 정의한 것단순 static final 상수보다 타입 안정성이 높음 (컴파일 타임에 오타나 잘못된 값을 방지)작성 예시public enum ProductStatus{ FOR_SALE, // 판매 중record47584.tistory.com Enum을 DB 컬럼에 매핑하는 이유문자열로 상태를 관리하는 경우, 오타나 정합성 문제가 발생할 수 있음타입 안정성 확보 @Enumerate 전략 선택 - ORDINAL vs STRINGJPA에서 Enum 필드를 DB 컬럼에 매핑할 때는 @Enumerated 어노테이션을 붙여야 한.. 2026. 7. 21. 생성자를 구현했는데도 @NoArgsConstructor를 쓰는 이유 @NoArgsConstructor란?Lombok에서 제공하는 어노테이션으로, 매개 변수가 없는 생성자를 자동으로 생성해준다.만약 Schedule 이라는 클래스가 있다면,public Schedule() { } 위의 코드를 자동으로 추가해주는 어노테이션인 것이다. 발생한 상황프로젝트를 진행하던 중, 아래와 같이 Entity를 만들었다.@Getter@Entity@Table(name = "schedules")@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Schedule extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long .. 2026. 7. 4. CRUD 구현 9 - 간단한 페이지네이션(Pagination) 구현 페이지네이션(Pagination)이란?대용량 데이터를 여러 화면으로 나누어 표시하고 탐색하는 기법 프로젝트 구현JpaRepository에서 제공하는 페이지네이션을 사용함참고 : https://jundyu.tistory.com/19 [Spring Data] JPA를 활용해 pagination 구현하기들어가며웹 애플리케이션에서 무한 스크롤이나 페이징을 통해 데이터를 나눠 불러오는 방식은 서버 성능과 사용자 경험을 모두 고려한 방식입니다. 한 번에 모든 데이터를 불러오면 페이지 로jundyu.tistory.com import 추가모든 service에 추가 :import org.springframework.data.domain.Page;import org.springframework.data.domain.Pa.. 2026. 5. 18. CRUD 구현 8 - Postman을 이용한 테스트 프로젝트 빌드, 실행 후 아래와 같이 테스트 1. 상품 생성method : POSTurl : http://localhost:8080/productsbody : { "name": "맥북 미니", "price": 1300000, "stock": 5} resopnse : 응답에 새로 생성된 id 데이터가 들어있는 것을 확인DB : DB table에 상품이 추가된 것을 확인 (1행, 2행 데이터는 이미 있던 데이터) 2. 특정 상품 조회method : GETurl : http://localhost:8080/products/1 resopnse : id = 1 인 데이터 조회 확인 3. 모든 상품 조회method : GETurl : http://localhost:8080/products resopnse :.. 2026. 5. 15. CRUD 구현 7 - Controller 구현 Controller란? “클라이언트의 HTTP 요청을 받아 처리하는 계층” Controller의 역할요청 검증인증예외 처리 요청 유효성 검사응답 프로젝트 구현@RestController@RequiredArgsConstructor@RequestMapping("/products")public class ProductController { private final ProductService productService; @PostMapping public ProductResponse create(@RequestBody ProductRequest request) { return productService.create(request); } @GetMapping("/{id}").. 2026. 5. 15. CRUD 구현 5 - DTO (Data Transfer Object) 구현 DTO란? “계층 간 데이터를 안전하고 명확하게 전달하기 위한 객체” DTO와 Entity의 차이Entity DB 테이블과 직접 연결된 원본 데이터DTO사용자에게 보여주길 원하는 데이터 (* 필요한 데이터만 전달) Entity를 직접 사용하면 안되는 이유Entity는 DB 구조이다. 이를 그대로 사용자에게 전송할 경우, 보안 문제 발생 가능! (DB 구조(Entity) ≠ API 응답 구조)Entity 변경시, API 응답이 변경되어 프론트엔드 에러 발생 가능! DTO 장점API 안정성 (DTO 외 코드가 변경되어도 API 형식 유지 가능)보안 (민감 정보 숨김)필요한 데이터 전달 (응답 크기 감소)유지보수 편리무한 참조 방지 (JPA 연관관계 문제 해결) 프로젝트 구현public record Order.. 2026. 5. 15. 이전 1 2 다음