오늘은 스프링 강의를 보면서 수강신청? 시스템(백엔드)를 만들어 봤다.
계층? Layer는 Web과 Service 2개를 만들었다. --> Repository는 내일 강의 보면서 만들 듯 하다.
먼저 분류?를 아래와 같이했다.
-------------------------
사용자 (User)
- id
- password
- nickname
- role (수강생, 강사)
강의 (Course)
- id
- title
- description --> 필수 아님 Null가능
- status
- maxPeople
- currentPeople
- Lecture List (강의안의 강좌{강의영상})
- CourseApplication (신청내역)목록
강좌(강의영상)
- id
- title
- videoUrl
신청 정보
- id
- User
- Course
----------------------
그리고 API를 테스트 및 문서화 하는 도구로써는 Swagger를 사용했다.
swagger의 장점으로는 명확한 API 문서화 / 문서 생성 자동화 / API Request 검증이 있다고 하는데 강의에서 사용해서 사용했다. --> 아직 뭐가 뭔지 모르겟다..
--> 어제 gradle 적용안해서 swagger 적용이 안됐었다...
또한 패키지 구조를 도메인 모델별로 나눠서 만들었다.
아래와 같음
------------------------------
- domain
- user
- controller
- service
- repository
- dto
- model
- course
- controller
- service
- repository
- dto
- model
- user
- application
- controller
- dto
- model
- service
- usecases
- user
- controller
- service
- repository
- model
- exception
- infra
- exception
------------------------------------
DTO에 대해서 작성했다.
DTO는 각 레이어끼리 데이터를 주고받는 객체인 거 같다. 나중에는 Json객체가 되는 거 같다.
일단 강의를 보면서 Web과 Service 레이어 까지는 만들고 예외처리와 로직을 처리하다 문제가 있을 경우 transaction하는 것 까지는 했다.
그러나 솔직히 거의 이해가 안된다....
일단 기본 개념이 부족해서 이해를 못하는 거 같은데.. 왜 언제 어떤 어노태이션을 쓰는지가 제일 어려운 거 같다.
로직을 작성하면서 로직 부분은 어느정도 이해가 되는 거 같은데... 스프링에서 필요한 것을 호출할 떄가 제일 헷갈린다.
또한 계층과 전체적인 설계를 직접 시간을 들여서 한 것이 아니라 강의영상을 보면서 따라 한 것 때문에 더더욱이 이해 못하는 걸 수도 있다.
따라서 일단 영상을 다 보고 혼자서 연습해서 감을 익히는 시간이 필요할 거 같다.
'개발관련 > TIL' 카테고리의 다른 글
내배캠 5주 2일 차 (0) | 2024.05.14 |
---|---|
내배캠 5주 1일차 (0) | 2024.05.13 |
내배캠 4주 3일차 (0) | 2024.05.08 |
내배캠 4주 2일차 (0) | 2024.05.07 |
내배캠 3주 4일차 (0) | 2024.05.02 |