Web
[Inflearn] JPA - 엔티티매핑
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 4.1. 객체와 테이블 매핑 @Entity : 테이블과 매핑할 클래스에 붙인다(필수) JPA가 관리 속성 name : JPA에서 사용할 엔티티 이름을 지정. → 가급적 기본 값(클래스 이름)을 사용하되, 같은 클래스 이름이 있으면 name 지정해 변경 기본 생성자 필수 (public 또는 protected 생성자 붙이기) final 클래스, enum, interface, inner 클래스 사용X 저장할 필드에 final 사용 X @Table : 엔티티와 매핑할 테이블 지정 데이터베이스..
[Inflearn] JPA - 영속성관리
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~ 03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 영속성 컨텍스트 JPA는 영속성 컨텍스트에 엔티티를 저장한다. 영속성 컨텍스트는 "엔티티를 영구 저장하는 환경" 이라는 뜻이다. 영속성 컨텍스트는 논리적인 개념이며 눈에 보이지 않는다. 영속성 컨텍스트 접근하기 엔티티 매니저를 통해서 영속성 컨텍스트에 접근한다. EntityManager.persist(entity);를 하면 엔티티를 영속화한다. (DB에 저장하는게 아님, 영속성 컨텍스트에 저장) 엔티티 매니저 팩토리와 엔티티 매니저 EntityManagerFactory를 통해서 고객..
[Inflearn] JPA 시작하기 + JPQL이란?
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 프로젝트 생성 자바 8이상 (저는 11을 사용하였습니다) 빌드 툴은 Maven을 사용 InteliJ에서 Maven 프로젝트를 새로 생성합니다. 라이브러리 설정파일 pom.xml JPA 하이버네이트, 데이터베이스 드라이버 등 필요한 의존설정을 추가합니다. 자바 11을 사용했을 때 오류 해결방법 : pom.xml에 다음 코드를 추가 javax.xml.bind jaxb-api 2.3.0 JPA 설정하기 - persistence.xml JPA 설정 파일 /META-INF/persistence..
[Inflearn] ORM, JPA란 무엇인가
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. JPA와 모던 자바 데이터 저장 기술 Java와 같은 객체지향 언어로 실무 개발을 할 때에는 주로 관계형 DB를 사용한다. 문제는 애플리케이션은 객체지향적으로 개발을 해야하는데, SQL을 계속 날려야 하기 때문에 SQL 중심적인 개발이 되는 것이다. 1. SQL 중심적인 개발의 문제점 SQL 중심적인 개발은 다음과 같은 문제가 있다. 무한반복, 지루한 코드 → SQL 매핑에 많은 시간소요(노가다) 객체 CRUD 코드에 필드가 추가 될 경우 SQL을 일일히 고쳐주어야 한다 → 유지보수성..
[Inflearn] 스프링 MVC (8) 웹 페이지 만들기
김영한 강사님의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 강의 정리 2022.02.21,03.7 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 드디어 이번 강의 마지막 파트! 졸업과 밴드 합주, 정보처리기사 필기시험 준비 등이 겹쳐 바쁜지라 그간 강의를 거의 듣지 않았다... 필기합격한거 같으니 다시 빠샤~! 다음 강의도 쭉쭉 들어야지 😋 상품 도메인 package hello.itemservice.domain.item; import lombok.Data; import lombok.Getter; import lombok.Setter; //@Data //다만들어줘서 위험하다..(숙지 필요)일반 왔다갔다하는 DTO 정도는 괜..
[Inflearn] 스프링 MVC (7) HttpMessageConverter
김영한 강사님의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 강의 정리 2022.02.06~02.07 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 언제 HttpMessageConverter 가 적용되는가 스프링 MVC는 다음의 경우에 viewResolver 대신 HttpMessageConverter를 적용한다. HTTP 요청 : @RequestBody, HttpEntity(RequestEntity) HTTP 응답 : @ResponseBody, HttpEntity(ResponseEntity) HttpMessageConverter 동작과정 HTTPMessageConverter 인터페이스를 간략히 알아보자면, 다음과 같다. p..
[Inflearn] 스프링 MVC (6) HTTP 응답
김영한 강사님의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 강의 정리 2022.01.31~02.01 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. HTTP 응답 HTTP에서 응답 데이터를 만드는 방식은 크게 3가지 이다. 정적 리소스 뷰 템플릿 사용 HTTP 메시지 사용 1. 정적 리소스 응답 - HTML 정적 리소스 응답이란, 해당 파일을 변경 없이 그대로 서비스하는 것을 말한다. 웹 브라우저에 정적인 HTML, CSS, JS를 제공할 때는 정적 리소스를 사용한다. 스프링 부트에서 src/main/resources는 클래스 패스의 시작 경로로, 리소스를 보관하는 곳이다. 스프링 부트는 클래스패스의 다음 디렉토리에 있는 ..