인프런

    [스프링부트와 JPA 활용 1] Section5 중 "상품 기능 테스트"

    김영한 강사님의 "스프링부트와 JPA 활용1"을 듣다 보면 Section 5에서 "상품 기능 테스트"를 생략하신 것을 볼 수 있다. 이 테스트가 이전에 강의에서 다룬 테스트와 유사하여 생략하였다고 하셨는데 복습겸 궁금하여 테스트 코드를 직접 작성하여 보였다. MemberServiceTest.java를 참고하여 작성하였고 //given, //when, //then 으로 나누어 작성하니 도움이 많이 되었다. 테스트한 기능은 상품 등록, 상품 목록 조회, 상품 조회이다. 파일 위치는 jpashop/src/test/java/jpabook/jpashop/service/ItemServiceTest.java 으로 지정하였다. package jpabook.jpashop.service; import jpabook.jpa..

    JPQL과 QueryDSL에 대해 끄적

    Intro JPA는 객체 중심적으로 코드를 작성할 수 있게 해주는데 그렇게 되면 JPA만으로는 모든 쿼리를 커버할 수 없다. 따라서 JPA는 객체를 검색(조회,select)할 수 있는 다양한 query 방법을 지원한다. JPQL JPA Criteria QueryDSL Native SQL 등등.. 이 포스팅에서는 주로 사용되는 JPQL과 QueryDSL에 대해 다루고자 한다. JPQL의 개념 Java Persistence Query Language JPQL은 엔티티 객체를 조회하는 객체지향 쿼리이다. JPQL은 가장 중요한 객체지향 쿼리 언어이다. JPA는 JPQL을 기반으로 하는 다양한 쿼리 서비스를 지원한다. JPA Criteria, QueryDSL, Natice SQL 등.. JPQL의 특징 SQL과..

    [스프링부트와 JPA 활용 1] Section5. 상품 도메인 개발

    상품 엔티티 개발 (비즈니스 로직 추가) 구현 기능 상품 등록 상품 목록 조회 상품 수정 순서 상품 엔티티 개발 (비즈니스 로직 추가) 상품 리포지토리 개발 상품 서비스 개발, (상품 기능 테스트) item.java 수정 package jpabook.jpashop.domain.item; import jakarta.annotation.ManagedBean; import jakarta.persistence.*; import jpabook.jpashop.domain.Category; import jpabook.jpashop.exception.NotEnoughStockException; import lombok.Getter; import lombok.Setter; import java.util.ArrayList..

    [스프링부트와 JPA 활용 1] Section4. 회원 도메인 개발

    회원 리포지토리 개발 jpashop/src/main/java/jpabook/jpashop/repository/MemberRepository.java 생성 package jpabook.jpashop.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import jpabook.jpashop.domain.Member; import org.springframework.stereotype.Repository; import java.util.List; @Repository public class MemberRepository { @PersistenceContext private Enti..

    [스프링부트와 JPA 활용 1] Section1. 프로젝트 환경설정

    프로젝트 생성 1. SpringBoot Starter 접속 (Spring Initializr) 2. 설정 3. 세팅 여부 확인 아래와 같이 JpashopApplication의 메소드 실행을 하게 되면, 실행 성공 시 Tomcat started on port(s): 8080 문구가 뜬다. 이후 웹페이지에서 아래 화면을 확인해주면 된다. + 테스트 코드도 확인 4. 플러그인 설치 롬복 사용시 Getter, Setter를 모두 만들어 준다. 라이브러리 살펴보기 1. cmd 창에서 확인 가능 (루트 폴더에서 열기) 2. IntelliJ에서 확인 가능 View 환경설정 Thymleaf 템플릿 엔진을 사용할 예정 (Thymeleaf) Thymeleaf Integrations galore Eclipse, Intell..

    [스프링부트와 JPA 활용 1] Section0. 강좌 소개

    스프링 부트 : 복잡하고 어려운 스프링 기술을 간결하고 쉽게 사용할 수 있도록 도와주는 기술 JPA : 강력한 Java ORM 표준 기술 위 두가지를 사용하면 높은 개발 생산성을 유지하며 빠르게 개발이 가능하다. 강의 목표 : SpringBoot와 JPA 같은 최신 기술을 활요해 웹 어플리케이션 개발을 할 수 있다. 강의 특징 : 예제를 코딩으로 배운다. 1편 - 웹 어플리케이션 개발 프로젝트 환경설정 요구사항 분석 도메인과 테이블 설계 아키텍쳐 구성 핵심 비즈니스 로직 개발 테스트 웹 계층 개발 2편 - API 개발과 성능 최적화 REST API 개발 성능 최적화 학습 방법 전체적인 감을 잡기 이후 부족한 기술들을 스스로 습득하기

    [스프링 핵심 원리] Section2. 스프링 핵심 원리 이해1 - 예제 만들기

    프로젝트 생성 Spring Initializr 을 통해 프로젝트 생성 추가 설정 for 속도 비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 등급이 있다. 회원 데이터는 자체 DB 구축하거나 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원은 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (추후 변동 가능) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수도 있다.(미확정) 요구 사항을 보면 결정하기 어려운 부분이 있는데 이를 위해 우리는 역할과 구..

    [스프링 핵심 원리] Section1. 객체 지향 설계와 스프링

    인프런 김영한 스승님의 두번째 커리큘럼 시작 !! 자바 진영의 추운 겨울과 스프링의 탄생 자바당 최고 기술 EJB 비용적 부담이 큼 의존적이라 객체 지향 프로그래밍 불가 어렵고 복잡하고 느림 스프링 EJB 컨테이너 대체 단순함의 승리 현재 사실상 표준 기술 하이버네이트 EJB 엔티티빈 기술 대체 JPA 새로운 표준 정의 EJB 엔티티빈 ⇒ 하버네이트 ⇒ JPA JPA 실용성과 표준의 안정성을 갖춘 JPA 탄생 스프링이란? 필수 스프링 프레임워크 - 가장 중요 스프링 부트 - 모든 기술을 편리하게 사용하도록 선택 스프링 데이터 - JPA를 주로 사용, CRUD를 편리하게 스프링 세션 - 세션 기능을 편리하게 스프링 시큐리티 - 보안 관련하여 스프링 Rest Docs - 문서를 편리하게 스프링 배치 - 배치..

    [스프링 입문] Section1. 프로젝트 환경설정

    첫 단추를 잘 끼우자 ..! 프로젝트 생성 사전 준비물 : Java11, IDE(InteliJ) 설치 스프링 부트 스타터 → 스프링 프로젝트 생성 : Spring Initializr Maven, Gradle : 필요한 라이브러리를 가져오고 빌드하는 라이프 사이클까지 관리하는 툴, 요즘 추세는 Gradle Group : 기업 도메인명 Artifact : 프로젝트 Dependencies : 어떤 라이브러리를 가져와 쓸지 선택 Thymeleaf : html을 만들어주는 템플릿 엔진 3. Generate하여 IntelliJ에서 build.gradle 파일을 프로젝트로 open 더보기 Error 그 사이에.. Error가 남 ㅋㅋ A problem occurred configuring root project 어쩌..