플러그인: 라이브러리 디펜던시까지 관리 리포지토리: mavenCentral()에서 라이브러리를 다운로드 받겠다디펜던시 (의존관계): start.spring.io에서 선택한 라이브러리 전부여기에 등록된 라이브러리가 의존하는 라이브러리까지 모두 포함됨클래스에 getter/
업로드중..회원은 상품 여러개 주문할 수 있음한 주문에 여러 상품 포함 가능상품 - 상속구조업로드중..다대다 관계는 운영에 사용하면 안됨 > 일대다 관계로 풀어내야 함양방향 연관관계는 지양하자 > 설계단계에는 단방향 연관관계가 좋음객체에서는 다대다 관계가 가능하지만 관
계층형 구조repository에서 디비 접근controller, service, repository는 (entity를 포함하는) domain 참조단방향으로 흐르지만 controller에서 repository 직접 접근도 가능controller, web: 웹 계층serv
순서: 회원 엔티티 코드 다시 보기 > 회원 리포지토리 개발 > 서비스 개발 > 기능 테스트스프링이 entity manager를 만들어서 주입(injection)해줌JPA 쿼리를 직접 입력하여 사용findAll() 등의 메서드에 사용됨쿼리 내 :variable는 .se
본 문서는 인프런의 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 (김영한)(https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC
본 문서는 인프런의 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 (김영한) 강의를 공부하며 작성한 개인 노트입니다. 🌻 주문 기능 테스트 현재 테스트는 JPA 공부를 위해 디비도 사용하여 테스트하지만, 더 좋은 테스트는 순수 자바만을 이용한 단위 테
src/main/java/jpabook.jpashop/controller/에 Controller 클래스 모음매번 include해야함실무에서 유용함코드의 중복 적음Member 엔티티와 MemberForm의 분리: 컨트롤러에서 데이터를 받아올 때의 validation과 실
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)(https://www.inflearn.com/course/ORM-JPA-Basic애플리케이션은 객체지향, 데이터베이스는 관계형 > 객체를 관계형 DB에 관리CRUD, SQL를 자바 객
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한) 강의를 공부하며 작성한 개인 노트입니다. 🥋 프로젝트 생성 h2 설치 및 사용법 🛼 애플리케이션 개발
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)(https://www.inflearn.com/course/ORM-JPA-BasicJPA에서 가장 중요한 2가지 - 객체와 관계형 데이터베이스 매핑 (ORM) & 영속성 컨텍스트Enti
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)(https://www.inflearn.com/course/ORM-JPA-Basic객체와 테이블 매핑: @Entity, @Table필드와 컬럼 매핑: @Column기본 키 매핑: @Id
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)(https://www.inflearn.com/course/ORM-JPA-Basic용어방향, Direction: 단방향, 양방향다중성, Multiplicity: 다대일(N:1), 일대다
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)(https://www.inflearn.com/course/ORM-JPA-Basic연관관계 매핑시 고려사항 3가지다중성 (예) 다대일, 일대다, 일대일, 다대다단방향/양방향테이블외래키
객체는 상속 관계가 있음관계형 디비는 상속 관계가 없음슈퍼타입/서브타입 관계 모델링 기법이 객체 상속과 유사상속관계 매핑: 객체의 상속구조와 디비의 슈퍼타입/서브타입 관계 매핑@Inheritance(strategy=IneheritanceType.XXX)JOINED: 조
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)(https://www.inflearn.com/course/ORM-JPA-Basicem.find() - 디비를 통해 실제 엔티티 객체 조회em.getReference() - 디비 조회
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)(https://www.inflearn.com/course/ORM-JPA-Basic@Entity데이터가 변해도 식별자로 지속해서 추적 가능(예) 회원 엔티티의 키/나이 값을 변경해도 식
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한) 강의를 공부하며 작성한 개인 노트입니다. 🚡 소개 JPA는 JPQL, JPA Criteria, QueryDSL, 네이티브 SQL, JDBC API 등의 다양한 쿼리 방법을 지원한다 Quer
본 문서는 인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)(https://www.inflearn.com/course/ORM-JPA-Basic경로 표현식: .(점)을 찍어 객체 그래프를 탐색하는 것(예) m.username (상태 필드), fr
본 문서는 인프런의 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 (김영한) 강의를 공부하며 작성한 개인 노트입니다. 회원 등록 API @RestController - @Controller와 @ResponseBody 대체 @Valid - M 회원
본 문서는 인프런의 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 (김영한) 강의를 공부하며 작성한 개인 노트입니다.간단한 주문 조회지연 로딩 때문에 발생하는 성능 문제를 단계적으로 해결해보자XToOne의 최적화 (ex) ManyToOne, OneT
본 문서는 인프런의 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 (김영한) 강의를 공부하며 작성한 개인 노트입니다.Lazy 로딩 설정에서 프록시는 데이터를 넘겨받지 않음 프록시를 강제 초기화해서 (orderItems ~ orderItems.stre
본 문서는 인프런의 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 (김영한) 강의를 공부하며 작성한 개인 노트입니다.Open Session In View - HibernateJPA의 EntityManager = Hibernate의 SessionJPA
본 문서는 인프런의 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 (김영한) 강의를 공부하며 작성한 개인 노트입니다. 🗂️ 스프링 데이터 JPA 소개 JPA Repository 기본적 CRUD 기능 모두 제공 일반화하기 어려운 기능 메서드 (f
공통 속성을 상속할 엔티티들이 필요할 때 사용부모클래스에 쓴다고 보면 됨. 부모클래스는 엔티티가 되지는 않음. 주로 abstract로 선언자식클래스에는 부모클래스에 정의된 컬럼들이 자동 생성된다https://ict-nroo.tistory.com/129
Upon update queries, JPA, by default, operates queries on all the columns of the corresponding entity. Hence, there is a chance of certain columns uni
말 그대로 데이터베이스에 접근하기 위한 객체서비스와 데이터베이스 간의 연결 담당레포지토리가 여기에 해당계층간 데이터 교환에 사용하는 객체getter/setter 메서드만 가지는 클래스데이터베이스에서 데이터를 얻어 서비스/컨트롤러에 보낼 때 사용Read-Only인 오브젝
Swagger: Rest API를 자동으로 문서화하여 API 호출 및 테스트 과정을 편리하게 해준다Docket: Swagger 프레임워크의 핵심 인터페이스로 쓰이는 Java 객체이자 builderuseDefaultResponseMessages(boolean) - Swa
클라우드 스토리지 프로젝트를 시작하려는데 파일 업로드가 가능한 시스템인 만큼 확장성을 고려하고, 다양한 파일이 업로드 가능한 것이 적합할 것 같아 mongodb를 선택했다build.gradle에 추가MongoDBConfig 클래스를 만들었다@Document(collec
@Enumerated(EnumType.ORDINAL)과 @Enumerated(EnumType.STRING)의 차이를 알아보자DB에 enum 순서값 저장이미 저장된 enum의 순서값은 바꿀 수 없음DB에 enum 문자열값 저장문자열을 저장하기 때문에 DB공간을 낭비하게
Project: Gradle - GroovySpring Boot: 2.3.xLanguage: JavaPackaging: JarJava:11Dependencies: Spring Web, ThymeleafsourceCompatibility: 무슨 자바 버전과 맞는지repo
스프링 부트에서 제공되는 기능/static 폴더에서 찾음내장 톰캣 서버에서 요청을 받아 넘김스프링은 컨트롤러에서 hello-static을 찾음 (컨트롤러가 우선순위를 가지기 때문)그 다음 resources/static에서 찾아서 반환MVC: Model (User int
데이터: 회원 ID, 이름기능: 회원 등록/조회컨트롤러: 웹 MVC 컨트롤러서비스: 핵심 비즈니스 로직 구현리포지토리: 데이터베이ㅇ스에 접근, 도메인 객체를 디비에 저장/관리도메인: 비즈니 도메인 객체 (예) 회원, 주문, 쿠폰인터페이스 사용 이유: 아직 데이터 저장소
스프링 빈을 등록하는 방법:1\. 컴포넌트 스캔과 자동 의존관계 설정2\. 자바 코드로 직접 스프링 빈 등록하기 컨트롤러가 서비스를 통해 기능 작동빈 등록을 통해 가능케 함src/main/java/hello.hellospring/controller에 MemberCont
build.gradle에 dependencysrc/main/java/hello.hellospring/repository에 JdbcTemplateMemberRepository 생성implements MemberRepositoryJdbcTemplate을 사용하도록 스프링
모든 메소드의 호출 시간 측정공통 관심 사항(cross-cutting concern) vs. 핵심 관심 사항(core concern)공통 관심 사항: 시간을 측정하는 로직핵심 관심 사항: 비즈니스 로직 등try-catch 형태로 인해 시간을 측정하는 로직(공통 관심 사
For entities that have potential security risks for sequentially generated ID values, UUID is a commonly used class type in Spring Boot context. immut
연세대학교 미래교육원 x 코드프레소의 YC Tech Academy을 수강하며 작성한 개인 노트입니다. 요구사항 분석API 스펙 정의인프라 구축, 설계 및 운영데이터베이스 구축, 설계 및 운영백엔드 코드 구현보안 체계 도입내부 스크립트 도구 제작소프트웨어 개발 프로세스:
연세대학교 미래교육원 x 코드프레소의 YC Tech Academy를 수강하기 위해 레퍼런스의 자료로 예습한 개인 노트입니다. User Registration 8.1 UserDetailsService 8.2 Enable the new authentication pr
validation을 고려한 회원가입 (토큰/세션 중 택 1), 로그인 회원 수정 및 삭제 비밀번호 저장 방법?BO 객체나 Service 객체를 만들어서, 역할의 분리를 수행하자AuthController의 authenticateUser, registerUserMembe
유저의 등급을 만들고, 각 등급마다 접근 권한이 다름처음 가입할 때는 준회원. 유저의 권한 조작 가능각 유저당 사용 가능 API는 한개 이상전체 조회에 pagination을 하지 않으면 데이터 규모가 커질 때 부하가 옴UserService.javaActivityCont
"Members" 탭 개발회원 수에 제한 X > 성능 저하 주의 (쿼리 튜닝, 스키마 설계, 페이징 등)특정 기준 활용한 필터링 기능findAllUsers와 같이 해당하는 모든 객체를 맵핑해야하는 메서드는 for loop보다 stream이 용이하다NullPointerE
요구사항 피드백 boolean 단순화 대신에 ListUtils.union의 활용 apache collections commons4 의존성 필요 early-return 구성 if ~ else ~ 구성에서 조건 만족하면 먼저 false 반환하는 형식의 early r