TIL/Spring 16

TIL 2024-12-17 ( 5주차 - 데이터베이스 다루기 )

1) 오늘 학습한 내용QueryDLSAuditing@Dynamicinsert@DynamicUpdate QueryDSLEntity의 매핑 정보를 활용하여 쿼리에 적합하도록 쿼리 전용 클래스(Q클래스)로 재구성해주는 기술.JPAQueryFactory을 통한 Q클래스를 활용할 수 있는 기능들을 제공.JPAQueryFactory?재구성한 Q클래스를 통해 문자열이 아닌 객체 또는 함수로 쿼리를 작성하고 실행하게 해주는 기술.JPAQueryFactory 사용을 위해서는 entityManager를 주입해서 Bean으로 등록해줘야 한다.// config 패키지안에 추가@Configurationpublic class JPAConfiguration { @PersistenceContext private EntityMan..

TIL/Spring 2024.12.17

TIL 2024-12-12 ( 4주차 - 데이터베이스 다루기 )

1) 오늘 학습한 내용CascadeorphanRemovalFetchJpaRepository페이징JPQL Cascade (영속성 전이)사용위치 : 연관관계의 주인 반대편 - 부모 엔티티 (N대1 에서 1), (OneToMany or OneToOne)양쪽 엔티티의 라이프 사이클이 동일하거나 비슷해야한다.옵션 종류 ALL : 전체 상태 전이PERSIST : 저장 상태 전이REMOVE : 삭제 상태 전이MERGE : 업데이트 상태 전이REFERESH : 갱신 상태 전이DETACH : 비영속성 상태 전이 orphanRemoval (고아 객체 제거)사용위치 : OneToMany or OneToOne에서 사용 - 부모 엔티티Cascade.REMOVE와 비슷한 용도로 삭제를 전파하는데 쓰인다.부모 객체에서 리스트 요소..

TIL/Spring 2024.12.12

TIL 2024-12-10 ( 2-3주차 - 데이터베이스 다루기 )

1 ) 오늘 학습한 내용DB(H2) 사용 방식트랜잭션DB Driver 역할 및 종류DB Driver 동작 방식JDBCMyBatisORM DB(H2) 사용방식Server Mode : 현업에서 사용하는 모드, 컴퓨터에 DB 엔진을 설치하고 엔진을 구동하는 방식In - memory Mode : 애플리케이션에 DB 엔진이 내장되어 에플리케이션과 함께 실행되고 종료되는 방식Embedded Mode : 인메모리와 같은 방식이지만 데이터를 로컬에 저장하기 때문에 휘발에서 자유로운 방식 트랜잭션DB의 상태를 변화시키기 위해서 수행하는 작업의 단위데이터 처리 중에 문제 발생시 그 전에 했던 변경을 아무일도 없는 것 처럼 모두 되돌림.3가지 특징원자성 (All or Nothing) : 모두 반영되던가 전혀 반영되지 않아야..

TIL/Spring 2024.12.10

TIL 2024-11-27 (Spring 심화 - 활용)

1 ) 학습한 내용BeanAPI 예외처리JPQLfetch joinJPA 와 JPQL  Bean생명주기Spring Container 초기화Bean 인스턴스 생성의존성 주입초기화 메서드 호출Bean 사용소멸 메서드 호출Bean 소멸속성Bean이 Spring 내부적으로 구현된 코드에 의존하지 않는다.메서드 이름을 자유롭게 설정할 수 있다.외부 라이브러리에도 초기화, 종료 메서드를 적용할 수 있다.@PostConstructBean이 생성되고 의존성 주입이 완료된 후에 호출되는 메서드를 지정주로 초기화 작업을 할 때 사용Bean ScopeSingleton(싱글톤)기본으로 설정되는 스코프.Spring 컨테이너 내에서 Bean이 하나만 생성되고 모든 요청이 같은 객체를 사용상태를 가지면 안된다.prototype요청할..

TIL/Spring 2024.11.27

TIL 2024-11-26 (Spring 심화)

1 ) 오늘 학습한 내용HttpMessageConverterSpring 내부 구조Converter, Formatter1 : N 연관관계1 : 1 연관관계N : M 연관관계상속관계 매핑Proxy지연로딩, 즉시로딩영속성 전이JPA와 Transaction  HttpMessageConverter사용처HTTP 요청 : @RequestBody, @HttpEntity, @RequestEntityHTTP 응답 : @ResponseBody, @HttpEntity, @ResponseEntity우선 순위byte[]StringJSON Spring 내부 구조ArgumentResolverHTTP 요청이 컨트롤러 메소드에 전달될 때 각 파라미터를 알맞은 객체로 변환하는 인터페이스ReturnValueHandler컨트롤러 메서드가 반..

TIL/Spring 2024.11.26

TIL 2024-11-18 (Cookie/Session)

1) 학습한 내용CookieSession 알고리즘 코드카타( Java : 숫자 문자열과 영단어 )https://github.com/GyeonghwanCheon/codetestCookie사용하는 이유HTTP는 Stateless, Connectionless 특성을 가지고 있다.Client가 재요청시 Server는 이전 요청에 대한 정보를 기억하지 못한다.로그인과 같이 상태를 유지해야 하는 경우가 발생한다.Request에 사용자 정보를 포함하면 해결된다.브라우저를 완전히 종료한 뒤 다시 열어도 사용자 정보가 유지되어야 한다.로그인 성공시 응답set-Cookie로그인시 전달된 ID, Password로 User 테이블 조회하여 일치 여부 확인일치한다면 Set-Cookie를 활용해 Cookie에 사용할 값 저장Co..

TIL/Spring 2024.11.18

TIL 2024-11-13 (Spring 숙련 - 2주차)

- 학습한 내용 CookieSessionTokenJWTFilter   Cookie주로 사용자 세션 관리(로그인, 장바구니, 접속시간)나 광고 트래킹(사용자 행동) 등의 목적으로 사용.웹 브라우저에 저장되는 데이터Cookie에 담겨있는 값으로 인증/인가 를 진행한다.서버가 클라이언트의 상태를 기억하도록 도와준다.로그인 상태 유지 등에 활용된다.보안에 취약하다민감한 정보를 저장하지 않아야한다.사용자 임의 수정이 가능하다. Session서버에서 중요한 정보를 보관하며 로그인을 유지하는 방법SessionId를 탈취하여도 민감한 정보는 없다.  만료 시간을 설정해서 탈취 문제를 최소화한다.HttpSession은 최근 Session을 요청한 시간을 기준으로 만료 시간을 유지한다.동작 순서 Token인증/인가 과정에..

TIL/Spring 2024.11.13

TIL 2024-11-12 (Spring 숙련 - 1주차)

1 ) 학습한 내용SOLID 원칙과 Spring 객체 지향Spring ContainerSpring BeanIOC/DI싱글톤 패턴Spring Bean 등록의존관계 주입Validation SOLID 원칙 - 객체 지향 설계의 5가지 기본 원칙, 소프트웨어 설계에서 유지보수성, 확장성, 유연성을 높이기 위한 지침을 제공.종류단일 책임 원칙 SPR (Single Responsibility Principle)개방 폐쇄 원칙 OCP (Open Closed Principle)리스코프 치환 원칙 LSP (Liskov Substitution Principle)인터페이스 분리 원칙 ISP (Interface Segregation Principle)의존관계 역전 원칙 DIP (Dependency Inversion Princ..

TIL/Spring 2024.11.12

TIL 2024-11-07 (Spring 입문 - 응답 데이터)

1 ) 응답 데이터Server에서 Client로 Data를 전달하는 방법은 정적리소스, View Template, HTTP Message Body 세가지 방법이 존재  정적리소스정적인 HTML, CSS, JS, Image 등을 변경 없이 그대로 반환한다.View TemplateSSR(Server Side Rendering)을 사용할 때 View가 반환된다.HTTP Message Body응답 데이터를 직접 Message Body에 담아 반환한다.  정적 리소스 - 웹 애플리케이션에서 변하지 않는 파일들을 의미한다. 예를 들어 HTML, CSS, JavaScript, 이미지 파일들 등이 정적 리소스에 해당된다.Spring boot의 정적 리소스 경로 ( 아래 경로들에 정적 리소스가 존재하면 서버에서 별도의 ..

TIL/Spring 2024.11.07

TIL 2024-11-06 (Spring 입문 - 요청 데이터)

1 ) @RequestBody, @ResponseBodySpring에서 @RequestBody, @ResponseBody 어노테이션을 사용하면 각각 Request, Response 객체의 Body에 편하게 접근하여 사용할 수 있다. @RequestBody요청 메시지 Body Data를 쉽게 조회할 수 있다.@RequestHeader요청 헤더 정보 조회@ResponseBody응답 메시지 바디에 쉽게 담아서 전달할 수 있도록 해준다.View가 아닌 데이터를 반환한다.  요청 파라미터, HTML Form Data에 접근하는 경우@RequestParam, @ModelAttributeHttp Message Body에 접근하는 경우@RequestBody를 사용한다.(JSON, XML, TEXT)  2 ) JSONJ..

TIL/Spring 2024.11.06