본문 바로가기

공부/Spring39

[Spring Boot] 게시판 만들기(2) - 리팩토링 이전에 작성했던 게시판 만들기 글을 이어써보고자 한다. 개발을 마무리한지는 꽤 됐는데 블로그를 쓸 겨를이 없었어서 잠시 우선순위를 낮췄다가 틈 날때 다시 작성한다. >> 이전 글 보기 2024.03.20 - [공부/Spring] - [Spring Boot] 게시판 만들기(1) - 개요, 기본 기능 구현 [Spring Boot] 게시판 만들기(1) - 개요, 기본 기능 구현 개인 프로젝트로 게시판 만들기에 도전해본다. 지금까지 배운 기술을 이용해 백엔드 기능 구현에 집중해볼 것이고, 디자인 및 프론트엔드는 최소화할 것이다. - 프로젝트명: 게시판 만들기 - 목 efficient-and-clean.tistory.com 이전에 구현하면서 느낀 부족한 기능 및 고민할 거리를 중심으로 리팩토링을 진행했다. 지난 .. 2024. 4. 23.
[Spring Boot] 게시판 만들기(1) - 개요, 기본 기능 구현 개인 프로젝트로 게시판 만들기에 도전해본다. 지금까지 배운 기술을 이용해 백엔드 기능 구현에 집중해볼 것이고, 디자인 및 프론트엔드는 최소화할 것이다. - 프로젝트명: 게시판 만들기 - 목표: 현재까지 학습한 백엔드 기술을 접목하여 게시판을 구현한다. - 개발 환경 1. IDE: IntelliJ 2. 개발 언어: Java 3. 프레임워크: Spring Boot 4. 빌드: Gradle 5. DB: MariaDB 6. DB 접근 기술: JPA 7. View 템플릿: Thymeleaf 1. 기본 기능 구현 MVC 구조를 이용해 CRUD를 구현한다. 1. DB 연결 2. 게시글 작성폼 구현 3. 글 작성 처리 4. 게시글 리스트 구현 5. 게시글 상세페이지 구현 6. 게시글 삭제 7. 게시글 수정 8. 확인 .. 2024. 3. 20.
[Spring JPA](5) API 개발 - 지연 로딩과 조회 성능 최적화, 컬렉션 조회 최적화 지연 로딩과 조회 성능 최적화 - 주문 + 배송정보 + 회원을 조회하는 API를 개발한다. - 지연 로딩때문에 발생하는 성능 문제를 해결한다. 주문 조회 V1 package jpabook.jpashop.api; import jpabook.jpashop.domain.Address; import jpabook.jpashop.domain.Order; import jpabook.jpashop.domain.OrderSearch; import jpabook.jpashop.domain.OrderStatus; import jpabook.jpashop.repository.OrderRepository; import jpabook.jpashop.repository.OrderSimpleQueryDto; import lombo.. 2024. 3. 5.
[Spring JPA](4) 웹 계층 개발 홈 화면과 레이아웃 HomeController package jpabook.jpashop.web; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home() { log.info("home controller"); return "home"; } } 스프링 부트 타임리프 기본 설정 spring: thymeleaf: prefix: classpath:.. 2024. 3. 3.
[Spring JPA](3) 주문 도메인 개발 구현 기능 1. 상품 주문 2. 주문 내역 조회 3. 주문 취소 Order package jpabook.jpashop.domain; import jakarta.persistence.*; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.hibernate.annotations.BatchSize; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Entity @Table(name = "orders") @Getter @Setter @NoArgsConstruc.. 2024. 3. 3.
[Spring JPA](2) 회원 & 상품 도메인 개발 (1) 회원 도메인 개발 구현 기능 1. 회원 등록 2. 회원 목록 조회 MemberRepository package jpabook.jpashop.repository; import jakarta.persistence.EntityManager; import jpabook.jpashop.domain.Member; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; @Repository @RequiredArgsConstructor public class MemberRepositoryOld { private final EntityManager em; public v.. 2024. 3. 3.