Spring Level별로 과제 진행
- 저번주 Lv1. 익명 게시판 서버 만들기를 시작으로
- 도서관 서버, 백오피스 서버, 강의 사이트 서버를 만들어보았다.
- 마지막 과제인 굿즈 판매 사이트 서버 만들기를 하지 못해서 아쉬었다.
Java로 필요한 클래스 구상
Spring Boot 기반으로 CRUD(Create, Read, Update, Delete)기능 API를 만듦
구현하고자 하는 서비스의 전체적인 흐름 파악을 위한 기능 설계로 Use Case Diagram, API 명세서, ERD 를 작성
Controller - Service - Repository 로 계층 구분
IoC 주입으로 약한 결합을 이용
DB 테이블간에 JPA Entity 연관관계를 이용
Spring Security를 이용해서 인증/인가 기능 구현
Security의 Secured 기능을 사용하여 권한별로 API를 제어
Postman 을 이용해서 API 와 JWT 토큰 테스트를 진행
View(html/css/js)로 반환하지 않고, Dto에 담아서 반환까지(JSON을 반환하는 API 형태)
ResponseEntity 를 이용(HTTP Request 또는 Response에 해당하는 HttpHeader와 HttpBody를 포함하고 있는 클래스)
프로젝트 페어 리뷰하기
🔥 이번 주 느낀 점
항해에서 제공하는 정보량은 많은데, 내가 온전히 받아내지 못하는 느낌이다.
전반적인 개념이 생소하기에 과제에서 필요한 핵심들을 뽑아낼 수 있는 스킬이 부족했다.
정리를 하고나니 내가 어느 수준에 위치해있는지 객관적으로 보이기 시작했다.
하지만 정리를 위한 시간을 빼기가 어렵다. 여기에 더불어 추가 공부가 필요한 상황이다.
어떻게 하면 효율적인 시간 관리를 할 수 있을지 생각해보자.
🔥 아쉬웠던 것들
Level 5 과제인 굿즈 판매 사이트 서버 만들기를 하지 못했던 점
-> 어떤 기능들이 있었는지 훑어보자.
- 페이지 별로 조회 기능 (Paging)
- 장바구니 추가/조회/수정/삭제 기능
- 추가구현에서는
- 상품 이미지 기능 : 상품의 이미지 업로드(AWS의 S3를 사용하여 저장)
- 서비스 배포 : AWS의 EC2와 RDS를 사용
swagger 사용하지 못했던 점
🔥 주특기 Spring 로드맵 in 항해
🔥 공부 할 것들 keyword
swagger란? Open Api Specification(OAS)를 위한 프레임워크
API들이 가지고 있는 스펙(spec)을 명세, 관리할 수 있으며 백엔드와 프론트엔드가 협업할 때 사용할 수 있다.
API 요청의 예외가 발생하는 모든 경우에 대해서 실패(예외상황)에 대해 판단할 수 있는 Status Code, Error 메시지등의 정보를 반환
Java의 Optional
- Optional의 탄생 배경을 이해하려면 먼저 null이란 무엇인지 이해해야한다.
- null이란? 유요한 객체를 참조하지 않고 있음을 가리키기 위해 저장된 값을 의미한다.
- 그런데 이 null을 만든 Tony Hoare는 null 참조를 만든 것은 10억 달러의 실수라고 말했다. 링크텍스트
Optional은 10억 달러의 실수인 Java의 null을 Safety(하게) 사용할 수 있도록 도와준다.