본문 바로가기

스프링40

[스프링 JPA 1편] 2 - 2) 엔티티 설계 시 주의점 * Mac사용, Java17 사용 * 진도 : 섹션 2 - (5) * : 자바 클래스명, : 코드, : 단축키 1. 가급적 Setter 사용 X Setter가 모두 열려있다. 변경 포인트가 너무 많아서, 유지보수가 어렵다. 나중에 리펙토링으로 Setter 제거 2. 모든 연관관계는 지연로딩으로! [해결] 즉시로딩(EAGER)은 예측이 어렵고 어떤 SQL이 실행될 지 추적하기 어렵다 실무에서 모든 연관관계 지연로딩(LAZY) 설정! 연관된 엔티티를 같이 조회하고 싶으면 fetch join 또는 엔티티 그래프 기능을 사용 @XToOne(OneToOne, ManyToOne)같이 1로 가는 관계는 기본 fetch가 EAGER이므로 위험하므로 직접 다 찾아서 LAZY로 바꿔줘야 한다 (OneToMany는 기본 f.. 2023. 12. 12.
[스프링 JPA 1편] 2 - (1) 도메인 분석 설계 * Mac사용, Java17 사용 * 진도 : 섹션2-(1) ~ (4) * : 자바 클래스명, : 코드, : 단축키 1. 요구사항 분석 회원 회원 등록 회원 조회 상품 기능 상품 상품 등록 상품 수정 상품 조회 주문 상품 주문 주문 내역 조회 주문 취소 기타 상품은 재고 관리 필요 상품의 종류 : 도서, 음반, 영화 상품을 카테고리로 구분 가능 상품 주문시 배송 정보 입력 2. 도메인 모델과 테이블 설계 1) 테이블 - 회원 / 주문 / 배송 / 주문 상품 / 카테고리 / 상품 / 배송 / 도서, 음반, 영화 회원은 여러 상품을 주문할 수 있다 = 1:N 주문할 때 배송정보 필요 = 1:1 한 번 주문할 때 여러 상품을 주문.. 2023. 12. 12.
[스프링 JPA 1편] 1 - (1) 프로젝트 생성 * Mac사용, Java17 사용 * 진도 : 섹션1 * : 자바 클래스명, : 코드, : 단축키 1. Open JDK11 설치 Archived OpenJDK GA Releases Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of the JDK licensed under the GNU General Public License, version 2, with Classpath Exception. WARNING: These older versions of the JDK are provided to he jdk.java.net JDK 다운로드 후 압축풀기 방법 1) Finder.. 2023. 12. 12.
[스프링 MVC 1편] 7 - (4) 상품 등록, 수정, Redirect * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 섹션7 부터는 자바 17 버전으로 진행합니다 * 진도 : 섹션7 - (7) ~ (11) * : 자바 클래스명, : 코드, : 단축키 1. 상품 등록 1) 컨트롤러 추가 [ java/hello/itemservice/web/basic/BasicItemController ] @GetMapping("/add") public String addForm(){ return "basic/addForm"; } @PostMapping ("/add") public String save(@ModelAttribute("item") Item item){ itemRepository.save(item); return "basic/item"; } ur.. 2023. 12. 4.
[스프링 MVC 1편] 7 - (3) 상품 목록 - 타임리프 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 섹션7 부터는 자바 17 버전으로 진행합니다 * 진도 : 섹션7 - (4) ~ (6) * : 자바 클래스명, : 코드, : 단축키 1. 상품서비스 HTML 해당 부분은 강의를 참고해주세요 간단해서 넘어갑니다 ~ 이렇게 정적 리소스가 공개되는 /resources/static 폴더에 HTML을 넣어두면 실제 서비스에서도 공개된다 (지금처럼 공개할 필요없는 HTML을 두는 것은 주의) 2. 상품목록 - 타임리프 1) 컨트롤러 만들기 [ java/hello/itemservice/web/basic/BasicItemController ] @Controller @RequestMapping("/basic/items") @Required.. 2023. 12. 3.
[스프링 MVC 1편] 7 - (2) 상품 도메인 개발 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 섹션7 부터는 자바 17 버전으로 진행합니다 * 진도 : 섹션7 - (2) ~ (3) * : 자바 클래스명, : 코드, : 단축키 1. 요구 사항 분석 (섹션 3 - 1 참고) 상품 도메인 모델 상품 ID 상품명 가격 수량 상품 관리 기능 상품 목록 상품 상세 상품 등록 상품 수정 클라이언트 → 상품 목록 - 상품 상세 클라이언트 → 상품 등록 - 상품 저장 - 상품 상세 (내부 호출) 클라이언트 → 상품 수정 - 상품 상세 (redirect) 2. 도메인 개발 [ src - java - hello .iemservice - domain - item - Item ] @Getter @Setter public.. 2023. 12. 2.
[스프링 MVC 1편] 7 - (1) 프로젝트 생성 및 자바 버전 변경 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 섹션7 부터는 자바 17 버전으로 진행합니다 * 진도 : 섹션7 - (1) * : 자바 클래스명, : 코드, : 단축키 1. Open JDK17 설치 Archived OpenJDK GA Releases Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of the JDK licensed under the GNU General Public License, version 2, with Classpath Exception. WARNING: These older versions of the JDK a.. 2023. 12. 1.
[스프링 MVC 1편] 6 - (4) 응답 & 메세지 컨버터 & 핸들러 어댑터 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 진도 : 섹션6 - (11)~(14) * : 자바 클래스명, : 코드, : 단축키 1. HTTP 응답 스프링(서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다 정적 리소스 정적인 HTML, css, js를 제공할 때는 정적 리소스를 사용 경로: /static, /public, /resources, /META-INF/resources 뷰 템플릿 동적인 HTML을 제공할 때는 뷰 템플릿을 사용 HTTP 메시지 사용 HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보내기 예시 1) 뷰 템플릿 [ src - main - java - hello.springmvc - basic - response - Respons.. 2023. 11. 29.
[스프링 MVC 1편] 6 - (3) HTTP 요청 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 진도 : 섹션6 - (5)~(10) * : 자바 클래스명, : 코드, : 단축키 1. HTTP 요청 - 기본, 헤더 조회 [ src - main - java - hello.springmvc - basic - request - RequestHeaderController ] HTTP 요청 메세지를 손쉽게 작성해주는 기능 구조 - HTTP 메소드 - URL - 쿼리 스트링 - 스키마, 프로토콜 - 헤더 조회 - form 파라미터 형식 조회 - message body 데이터 직접 조회 @Slf4j @RestController public class RequestHeaderController { @Requ.. 2023. 11. 27.
[스프링 MVC 1편] 6 - (2) 스프링 MVC 요청 매핑 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 진도 : 섹션6 - (3)~(4) * : 자바 클래스명, : 코드, : 단축키 1. 요청 매핑 [ src - main - resources - requestmapping - MappingController ] 1) 로깅 설정하고 HTTP 메서드 속성을 정해보자! @RequestMapping 에 method 속성으로 HTTP 메서드를 지정하기 종류 : GET, HEAD, POST, PUT, PATCH, DELETE @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMap.. 2023. 11. 23.