WIL (23.02.13~02.18)
[5주차] 주특기 숙련 + 주특기 심화
월~목요일은 Spring 숙련, 금~토는 Spring 심화 과정을 진행했다.
- 주특기 숙련
- 회원가입, 로그인, 댓글 작성/조회/수정/삭제 기능이 추가된 SpringBoot 게시판 백엔드 서버 만들기
- 회원, 게시글 및 댓글 JPA 연관관계 매핑
- 댓글 작성, 수정, 삭제 구현
- 게시글 조회 시 댓글 조회 기능 구현
- @ControllerAdvice 사용하여 전역 예외처리
- 공부 & 정리
- @Size, @Length, @Column(length=value) 비교
- Entity, DTO 에서 사용하는 lombok 어노테이션 이해
- 쿠키, 세션, JWT
- 주특기 심화
- 심화 주차 강의 1회 완강
- Spring Security
- OAuth2
- Test
- AOP
- Exception
- Transaction
- 기존 프로젝트에 Spring Security를 적용 및 좋아요 기능 추가하기
- Spring Security 적용
- 게시글, 댓글 좋아요 API
- AOP를 활용한 예외처리
ORM / JPA / Spring Data JPA
- ORM(Object Relational Mapping)
- 객체와 관계형 데이터베이스를 매핑하는 것
- 객체는 객체대로 설계하고, 관계형 데이터베이스는 관계형 데이터베이스대로 설계한 후, ORM 프레임워크가 중간에서 매핑한다.
- JPA(Java Persistence API)
-
자바 ORM 기술 표준으로 사용되는 인터페이스 모음
-
인터페이스이므로 JPA를 구현한 ORM 프레임워크인 Hibernate, EclipseLink, DataNucleus를 사용한다.
-
자바를 해석하고, 매핑한 데이터베이스에 맞게 SQL 쿼리를 보내주는 역할을 한다.
-
개발자가 JPA를 사용하면, JPA 내부에서 JDBC API를 사용하여 SQL 쿼리를 DB로 보낸다.
-
JPA에서 제공해주는 EntityManager로 데이터베이스에 접근한다. EntityManager의 API를 직접 호출해야 한다.
- Spring Data JPA
MVC(Model-View-Controller)
- 어플리케이션을 Model-View-Controller 세 가지 역할로 구분한 소프트웨어 디자인 패턴
- 비지니스 로직과 화면을 구분한다.
- Back단과 Front단을 구분한다. → 유지보수를 독립적으로 수행 가능하다.
- Model과 View가 다른 컴포넌트들에 종속되지 않는다. → 애플리케이션 확장성, 유연성, 재사용성
MVC 패턴과 Spring MVC
이번주 TIL 모음
@Size, @Length, @Column(length) 차이점
@NoArgsConstructor, @Getter 언제, 왜 사용할까?
인증 방식(쿠키, 세션, JWT)에 대해 알아보자
Spring Security 예제와 함께 이해하기