Spring 31

HTTP 상태코드

강의 : 모든 개발자를 위한 HTTP 웹 기본 지식 1. 상태 코드란? 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리중 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 2. 2xx (Successful) - 성공 클라이언트의 요청을 성공적으로 처리 200 OK : 요청 성공 201 Created : 요청 성공해서 새로운 리소스가 생성됨 202 Accepted : 요청이 접수되었으나 ..

Spring/HTTP 2022.12.19

HTTP 메서드 활용

강의 : 모든 개발자를 위한 HTTP 웹 기본 지식 1. 클라이언트에서 서버로 데이터 전송 1 - 1. 데이터 전달 방식 크게 2가지 쿼리 파라미터를 통한 데이터 전송 • GET • 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 • POST, PUT, PATCH • 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 1 - 2. 4가지 상황 정적 데이터 조회 • 이미지, 정적 텍스트 문서 동적 데이터 조회 • 주로 검색, 게시판 목록에서 정렬 필터(검색어) HTML Form을 통한 데이터 전송 • 회원 가입, 상품 주문, 데이터 변경 HTTP API를 통한 데이터 전송 • 회원 가입, 상품 주문, 데이터 변경 • 서버 to 서버, 앱 클라이언트, 웹 클라이언트(Ajax) 2. 정적 데이터 조회..

Spring/HTTP 2022.12.19

HTTP 웹 기본 지식, 메서드

강의 : 모든 개발자를 위한 HTTP 웹 기본 지식 0. URL query scheme://[userinfo@]host[:port][/path][?query][#fragment] https://www.google.com:443/search?q=hello&hl=ko key=value 형태 ?로 시작, &로 추가 가능 ?keyA=valueA&keyB=valueB query parameter, query string(숫자를 넣어도 문자로 넘어감) 등으로 불림, 웹서버에 제공하는 파라미터, 문자 형태 1. HTTP HyperText Transfer Protocol 모든 것이 HTTP HTTP 메시지에 모든 것을 전송 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태..

Spring/HTTP 2022.12.19

JPA 강의 8 - 객체지향 쿼리 언어 2, JPA N + 1 문제 (중급 문법)

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 11. 객체지향 쿼리 언어2 - 중급 문법 1. JPQL - 경로 표현식 1 - 1. JPQL - 경로 표현식 .(점)을 찍어 객체 그래프를 탐색하는 것 1 - 2. 경로 표현식 용어 정리 상태 필드(state field): 단순히 값을 저장하기 위한 필드 (ex: m.username) 연관 필드(association field): 연관관계를 위한 필드 • 단일 값 연관 필드: @ManyToOne, @OneToOne, 대상이 엔티티(ex: m.team) • 컬렉션 값 연관 필드: @OneToMany, @ManyToMany, 대상이 컬렉션(ex: m.orders) 1 - 3. 경로 표현식 특징 상태 필드(state field): 경로 탐색의 끝,..

Spring/JPA 2022.12.19

JPA 강의 7 - 객체지향 쿼리 언어 1 (기본 문법)

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 10. 객체지향 쿼리 언어1 - 기본 문법 💡 flush가 동작하는 때 : commit, query (DB에 반영. em.persist()만 하면 DB 반영 안 됨 0. 객체지향 쿼리 언어(JPQL) 소개 JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공 SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원 JPQL은 엔티티 객체를 대상으로 쿼리 SQL은 데이터베이스 테이블을 대상으로 쿼리 테이블이 아닌 객체를 대상으로 검색하는 객체 지향 쿼리 SQL을 추상화해서 특정 데이터베이스 SQL에 의존X JPQL을 한마디로 정의하면 객체 지향 SQL MyBatis의 장점 : 동적 쿼..

Spring/JPA 2022.12.19

JPA 강의 6 - 프록시와 연관관계 관리, 값 타입

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 8. 프록시와 연관관계 관리 1. 프록시 1 - 1. 프록시 기초 em.find() vs em.getReference() em.find(): 데이터베이스를 통해서 실제 엔티티 객체 조회 em.getReference(): 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 (실제 값이 사용되는 시점에 DB 쿼리를 함) 1 - 2. 프록시 특징 실제 클래스를 상속 받아서 만들어짐 실제 클래스와 겉 모양이 같다. 사용하는 입장에서는 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 됨(이론상) 프록시 객체는 실제 객체의 참조(target)를 보관 프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드 호출 1 - 3. ⭐ 프록시의 특징 ..

Spring/JPA 2022.12.19

JPA 강의 5 - 고급 매핑

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 7. 고급 매핑 🚨 에러 WARN: HHH000457: Joined inheritance hierarchy [hellojpa.Item] defined explicit @DiscriminatorColumn.실습을 하다 생긴 에러이다. (제일 처음에 난 에러. 💡 에러가 날 때는 제일 먼저, 에러가 난 첫 번째 지점의 에러부터 해결한다. 첫 번째 에러 해결하면 그 뒤에 에러 줄줄이 해결 될 가능성 높음) 난 분명히 로 했는데, 실행할 때마다 테이블이 삭제되고 새로 생성되지 않는 것이다? 아마 삭제할 때 에러가 난 듯 하고, 값도 새로 설정이 되는 게 아니라 자꾸 추가가 되었다. 그래서 구글링... 이 질의응답 보고 해결했다! 난 JPA 활용 1 강..

Spring/JPA 2022.12.19

JPA 강의 4 - 다양한 연관관계 매핑

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 6. 다양한 연관관계 매핑 0. 다양한 연관관계 매핑 0 - 0. 연관관계 매핑시 고려사항 3가지 다중성 단방향 or 양방향 연관관계의 주인 0 - 1. 다중성 다대일 [N:1] : @ManyToOne 일대다 [1:N] : @OneToMany 일대일 [1:1] : @OneToOne 다대다 [N:M] : @ManyToMany (실무에서 쓰면 안 됨) 0 - 2. 단방향, 양방향 테이블 • 외래 키 하나로 양쪽 조인 가능 • 사실 방향이라는 개념이 없음 객체 • 참조용 필드가 있는 쪽으로만 참조 가능 • 한쪽만 참조하면 단방향 • 양쪽이 서로 참조하면 양방향 1. 다대일 [N:1] 1 - 1. 다대일 단방향 가장 많이 사용하는 연관관계 다대일의 반..

Spring/JPA 2022.12.19

JPA 강의 3 - 연관관계 매핑 기초

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 5. 연관관계 매핑 기초 만드는 순서 : 테이블 설계 -> Entity(domain) 설계와 매핑 -> ... 회원 엔티티 코드 다시 보기 회원 리포지토리 개발 회원 서비스 개발 회원 기능 테스트 참고 : H2 Database 만들기 🚨 h2 DB 연결 에러 시 : 참고 // 초기 실행 jdbc:h2:~/이름 // 초기 실행 후 다음부터 접속 jdbc:h2:tcp://localhost/~/이름 0. 목표 객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래 키를 매핑 용어 이해 방향(Direction): 단방향, 양방향 다중성(Multiplicity): 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해 연관..

Spring/JPA 2022.12.19

JPA 강의 2 - 엔티티 매핑

출처 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션 4. 엔티티 매핑 1. 객체와 테이블 매핑 1 - 1. @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 함 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 🚨 주의 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용X 저장할 필드에 final 사용 X 1 - 2 . @Entity 속성 속성: name JPA에서 사용할 엔티티 이름을 지정함 기본값: 클래스 이름을 그대로 사용(예: Member) 같은 클래스 이름이 없으면 가급적 기본값을 사용함 🚨 주의 final 클래스, enum, interface, inner..

Spring/JPA 2022.12.19