@Param, @RequestParam, @PathVariable, @PathParam, Query Parameter, @RequestBody, Map, Model, ModelMap
ResponseEntity
엔티티 매핑 (Entity Mapping)
deleteById, delete
@Controller vs @RestController (+ ResponseEntity 사용하기)
MVC 패턴
프록시 (Proxy, Proxy Server), 즉시 로딩, 지연 로딩
Spring Security
Spring Security 적용
Spring Security + JWT
Custom Response 생성하기
Servlet 과 관련된 것들
Spring & Docker
CrudRepository, JpaRepository, Repository
Spring (스프링)
예외처리 - Spring 에서 기본적인 예외 처리
Spring 입문 주차 개인 과제
@GeneratedValue - IDENTITY, SEQUENCE, AUTO, TABLE
계층 구분 & 어느 계층부터 구현
requestDto, responseDto 에 대한 이해
게시판 Lv1 - 작성, 전체/선택 조회, 수정/삭제(비밀번호 인증)
빌드 & 빌드 도구 (Gradle, Maven)
Spring Boot
Bean 등록 - 자동, 수동
양방향/단방향 암호화, 일치 여부 비교
Bean 등록 - 같은 타입이 2개일 경우
Spring Security - 용어 정리
Entity에서 @Setter 사용을 지양하자
null 값 출력시키지 않기 - @JsonInclude(JsonInclude.Include.NON_NULL)
메서드로 코드 중복 줄이기
게시판 Lv2 - 회원가입/로그인, 작성(jwt), 전체/선택 조회, 수정/삭제(jwt)
Dto 에서의 어노테이션 언제 사용할까
@RequestBody vs @ResponseBody (+ Map)
게시판 Lv3 - 회원가입/로그인, 게시글, 댓글, jwt, 권한 부여
@RestControllerAdvice 예외 처리 구현하기
예외처리 - Spring 에서 예외 처리 종류
Spring Security - Session / Cookie 방식
Spring Security - JWT 방식
게시판 Lv4 - Spring Security 적용
DTO 를 목적마다 생성해야 하는가
게시판 Lv5 - 회원탈퇴, 대댓글, 좋아요
AWS S3 이미지 업로드 - S3 버킷 만들기
AWS S3 이미지 업로드 - 배포한 사이트에 이미지 업로드
MultipartFile 과 @RequestPart, @RequestParam, @RequestBody
MultipartFile.isEmpty() vs MultipartFile != null
@ModelAttribute
@RestControllerAdvice - 유효성 검사
검색 기능
scheduler 로 자동 갱신 (@Scheduled)
CORS (Cross-Origin Resource Sharing)
SSE (Server-Sent Event) - 실시간 알림 기능
WebSocket - 채팅 기능
WebSocket & Stomp - pub/sub 채팅 기능
WebSocket & Stomp & Redis - 채팅방, 채팅 내역 유지
시간 설정 방법
테이블에는 없는 특정값 set 을 통한 설정 및 반환
Logging (로깅) & Logback (로그백)
조회 속도 개선 테스트 - StopWatch