ui - server - database
server - database가 백엔드
server - controller, service, repository를 포함한다
3tier - ur, application, db
server의 3계층
controller : ui
server : service
repository : db
controller
인증/인가 : 서버의 리소스를 사용하기 위한 요청/권한 부여를 컨트롤러에서 처리한다
인증/인가의 방식 - 세션, 쿠키, JWT
왜 controller일까? 인증/인가는 일종의 필터로 기능한다. 권한 부여된 사용자만 서비스에 접근 가능하다는 개념
1. controller vs restcontroller -> MVC view controller
2. 컨트롤러에서 인증/ 인가 처리하기! -> service에 HttpServletRequest request
-> 새로운 기술 : 그래프QL, 웹 플럭스 등의 대체가 일어났을 때, 영향을 받는 코드 전부 다 고쳐야한다!
~ 스코프를 최소화해야 한다.
DTO로 반환하는 이유도 같은 논리
3. bearer token 은 나를 증명한다는 뜻으로 우선 이해하기
+ 스프링 시큐리티
토큰은 곧 사용자 정보
validateToken 메서드는 db에서 사용자정보를 확인하는 것과 같은 개념
~ 컨트롤러에서 토큰 유효성 검사를 수행하기 작성하기
4. 권한 : @ResponseStatus(HttpStatus.Forbidden)
http 401, 403의 차이!
400은 요청이 잘못되었을 때의 범주
**500 에러는 서버 개발자의 잘못일 가능성이 높다
5. ResponseEntity<String> 타입 : header, httpstatus를 설정할수 있다.
6. Post 엔티티를 보다 적극적으로 활용할 것
7. Post - User 간 연관관계 설정하기
양방향은? @OneToMany일 때 필요(@ManyToOne일때는 꼭 필요한 것은 아니다) ~ 케바케
'내일배움캠프 4기 스프링 > 프로젝트📙' 카테고리의 다른 글
개인 과제 : Spring Security 적용 블로그 Backend 서버 만들기 (0) | 2023.01.04 |
---|---|
Spring 프로젝트 Check-list (0) | 2022.12.30 |
개인 과제 : JWT토큰을 활용한 Http 통신 중 상태를 저장 및 유지하기 (0) | 2022.12.18 |
개인 과제 : Springboot를 활용한 블로그 Backend 서버 만들기 (0) | 2022.12.08 |
내일 배움 캠프 4기 스프링 두 번째 프로젝트 : 은행 관리 프로그램 (0) | 2022.11.30 |