일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Python
- 1일1솔
- DP
- 연관관계
- C#강의
- 브루투포스
- BFS
- JPA
- 그리디 알고리즘
- Java
- mvc
- 합 구하기
- 프로그래머스
- 우선순위큐
- LCM
- popleft
- 누적합
- unity
- c#
- pypy3
- 인프런
- appendleft
- python3
- spring
- deque
- 소수찾기
- 파이썬
- 소수판별
- 완전탐색
- 백준
- Today
- Total
목록spring (18)
jae_coding

지연로딩 (fetch = FetchType.LAZY) @ManyToOne(fetch=FetchType.LAZY) 엔티티 조회 시 연관관계 필드가 프록시 객체로 제공되며, 지연로딩을 이용하면, 연관관계를 참조하기 전까지는 프록시 객체가 초기화가 되지 않고, 프록시 객체를 참조할 때, 프록시 객체가 초기화되고 SQL이 발생한다. 즉시로딩 (fetch = FetchType.EAGER) @ManyToOne(fetch=FetchType.EAGER) 엔티티 조회 시 연관관계에 있는 데이터를 한번에 조회하는 기능이며, 엔티티의 연관관계 필드에는 실제 엔티티 객체가 반환된다. TIP 1. 가급적 지연 로딩만 사용 (실무) 2. 즉시 로딩을 이용하면 예상하지 못한 SQL이 발생 3. 즉시 로딩은 JPQL에서 N+1 문제..

사전적 의미 컴퓨터 네트워크에서 다른 서버 상의 자원을 찾는 클라이언트로부터 요청을 받아 중계하는 서버를 말한다. 프록시 기초 em.find vs em.getReference 1) em.find(): DB를 통해서 실제 엔티티 객체 조회 2) em.getReference(): DB 조회를 미루는 가짜(프록시) 엔티티 객체 조회 프록시 특징 1) 실제 클래스를 상속 받아서 만들어진다. 2) 실제 클레스와 겉 모양이 동일하다. 3) 사용하는 입장에서 실제 객체인지 프록시 객체인지 구분하지 않고 사용한다. (이론상으로) 4) 프록시 객체는 실제 객체의 참조를 보관한다. 5) 프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드를 호출한다. 6) 프록시 객체는 처음 사용할 때 한 번만 초기화한다. 이때, 프..

목차 객체와 테이블 매핑 DB 스키마 자동 생성 필드와 컬럼 매핑 기본 키 매핑 0. 앤티티 매핑 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne, @JoinColumn 1. 객체와 테이블 매핑 @Entity - @Entity가 붙은 클래스는 JPA가 관리하는 엔티티이다. - JPA를 사용해서 테이블과의 매핑할 클래스는 @Entity 어노테이션을 꼭 붙여야한다. - 주의사항 1) 기본 생성자 필수 (parameter가 없는 public or protected 생성자) 2) final class, enum, interface, inner class 에는 사용할 수 없다. 3) 저장할 필드에는 final을 사용할 ..

목차 영속성 컨텍스트 플러시 준영속 상태 1. 영속성 컨텍스트 (JPA를 이해하는데 가장 중요 !) 의미: 엔티티를 영구 저장하는 환경 예시 EntityManager.persist(entity); 이것은 DB에 저장하는 것이 아닌 Entity를 영속성 컨텍스트에 저장하는 것이다. 영속성 컨텍스트는 논리적인 개념이며, 눈에 보이지않는다. 그리고 엔티티 매니저를 통해서 영속성 컨텍스트에 접근할 수 있다. 위와 같이 엔티티 매니저를 통해서 눈에 보이지 않는 영속성 컨텍스트라는 공간에 접근할 수 있게되는 것이다. 엔티티는 생명주기가 있다? • 비영속 (new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 // 비영속 Member member = new Member(); member.setI..

목차 SQL 중심적인 개발의 문제점 JPA 소개 1. SQL 중심적인 개발의 문제점 배경: 21세기는 객체를 관계형 DB에 관리하기때문에 SQL을 중심적으로 개발하였다. 하지만 이는 반복되는 쿼리가 발생한다는 단점이 생긴다. 물론 요즘에는 JDBC 템플릿, 마이바티스 같은 메퍼들이 있기때문에 일이 줄었지만 아직 반복되는 점들이 많이 존재한다. 반복적인 예) CRUD 자바 객체를 SQL로 SQL을 자바객체로 반복해야한다. 관계형 DB를 사용하는 상황에서는 SQL에 의존적인 개발을 피하기는 어렵다. 또한, 객체와 관계형 데이터베이스의 패러다임의 불일치가 존재한다는 단점이 있다. '객체 지향 프로그래밍': 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다..

본 리뷰는 인프런 김영한님의 스프링 MVC 리뷰를 한 포스팅입니다. 목차 프로젝트 생성 스프링 부트 환경에서 서블릿 등록 및 사용 HttpServeletResquest Http 데이터 요청 및 조회 GET 쿼리 파라미터 POST HTML form 요청 데이터 API 메시지 바디 (TEXT, JSON) HttpServletResponse HTTP응답 데이터 1. 프로젝트 생성 스프링 부트 스타터 (https://start.spring.io) -. JSP를 실행하기 위해서 Packaging은 War을 이용합니다. -. Build.Gradle plugins { id 'org.springframework.boot' version '2.7.3' id 'io.spring.dependency-management' v..

본 리뷰는 인프런 김영한님의 스프링 MVC 리뷰를 한 포스팅입니다. 목차 웹 서버, 웹 애플리케이션 서버 서블릿 동시 요청 (멀티 쓰레드) HTML, HTTP API, CSR, SSR 1. 웹 서버, 웹 애플리케이션 서버 -. Web은 HTTP를 기반으로 접근, 클라이언트에서 데이터 전송 및 응답을 할 때, HTTP 라는 프로토콜로 동작을 한다. -. 현재 모든 것이 HTTP라는 메시지에 모든 것을 전송합니다. HTML, TEXT, IMAGE, 음성, 영상, 파일 JSON, XML (API) 서버 간 데이터를 전송 및 응답할 때, HTTP를 사용한다. -. Web서버: HTTP를 기반으로 동작하는 서버 정적 리소스(특정 폴더에 파일을 두면 서버가 파일들을 서빙해주는 것) 제공, 기타 기능 정적 파일: H..

본 리뷰는 인프런 김영한씨의 스프링 핵심원리 - 기본편 리뷰를 한 포스팅입니다. 목차 생성자 주입 수정자 주입 필드 주입 일반 메서드 주입 1. 생성자 주입 -. 생성자를 통해서 의존 관계 주입을 받는 방식이다. -. 특징 1. 생성자 호출 시점에 딱 1번만 보장된다. 2. 불변, 필수 의존관계에 사용된다. 3. 스프링에서는 생성자가 1개만 있다면 @Autowired를 자동으로 주입시켜준다. (스프링 빈에만 해당) @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; pub..

본 리뷰는 인프런 김영한씨의 스프링 핵심원리 - 기본편 리뷰를 한 포스팅입니다. 목차 새로운 할인 정책 개발 새로운 할인 정책 적용과 문제점 AppConfig 등장 (문제 해결) 새로운 구조와 할인 정책 적용 좋은 객체 지향 설계의 원칙 적용 정리 (SRP, DIP, OCP 적용) 1. 새로운 할인 정책 개발 일방적이었던 할인정책 (고정할인 정책)을 2가지의 정책을 구현클래스로 만들어 구현 클레스를 변경할 수 있도록 구현을 변경해주려고한다. -. 새로운 할인 정책 기존 포스팅의 할인 정책은 고정할인 정책을 시행하였지만, 이를 x%씩 할인 해주는 정책으로 변경하려고한다. 할인 정책은 동일하게 VIP회원에게만 적용이되고, BASIC회원에게는 적용을 해주지 않는다. -. 할인 정책 인터페이스 package h..

본 리뷰는 인프런 김영한씨의 스프링 핵심원리 - 기본편 리뷰를 한 포스팅입니다. 목차 객체 지향 프로그래밍 스프링과 객체 지향 좋은 객체지향 원칙 SOLID 1. 객체 지향 프로그래밍 (Object-oriented programming) 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지 를 주고받고, 데이터를 처리할 수 있다. (협력) 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프 트웨어 개발에 많이 사용된다. 추상화 (Abstract) -. 핵심적인 코드만 보여줌. -. 불필요한 부분을 숨김. -. 인터페이스와 구현을 분리함. 캡슐화 (C..