-
TWIL #8 | 동기들이 있어 든든했던 코로나 확진자의 일주일.📝 기록/매주의 기록 2022. 10. 17. 21:05
📝 TWIL(This Week I Learned) 작성 가이드
1) 이번 주 한 일, 느낀 점, 배운 점을 작성한다. (3Fs, 1~2번에 해당)
2) 앞으로 개선할 점 등 어떻게 하겠다는 실천계획을 구체적으로 작성한다. (Future Action Plan, 3번에 해당)
3) 다음 TIL을 작성할 때 FAP가 제대로 지켜졌는지 피드백을 작성한다. (4번에 해당)
- 참고: 5Fs, 뒤돌아보다
1. Facts (사실, 객관)
- 코로나에 걸렸다🤧
- Gradle, Java + Spring Boot로 웹 애플리케이션을 만들었다.
- Heroku로 과제를 배포했다.
- 『객체 지향과 디자인 패턴』 책을 읽었다.2. Feelings (느낌, 주관) & Findings (배운 점)
1) 동기들 덕분에 버틸 수 있었다!
우선 화요일부터 주중 학습은 원격으로 대체함으로써 오프라인에서 쪽지시험을 볼 때마다 나는 그럼 어떻게 해야 하나 싶었다. 근데 내가 말하기도 전에 동기들이 쪽지시험 사진을 찍어서 디스코드로 보내줬다!👍🏻 말하지 않아도 딱 알고 보내주는 알잘딱깔센 동기들.. 감사합니다🙏2) 과제를 Heroku로 배포하다!
이번 과제는 기존에 Github Pages가 아닌 Heroku라는 서비스를 이용해 결과물을 배포했다. 아샬님의 배포 강의를 보긴 했지만, 우리는 깃허브 레포지토리 루트가 현재 내가 만든 과제의 루트가 아니기 때문에 별도의 과정이 추가로 필요했다.근데 그걸 또 알았는지 옆자리 쥬쥬가 블로그까지 친히 작성해서 공유해줬다! 쥬쥬의 지식 공유 덕분에 시행착오를 겪지 않고 heroku로 배포할 수 있었다👍
3) Layered Architecture의 중요성을 깨닫다.
이번 주 강의에서 등장한 Layered Architecture. 간단하게 말하면 각 계층 별로 어플리케이션 내에서의 특정 역할과 관심사를 담당하게 하는 설계 기법이다.
우리 강의에서는
- View는 Controller에 의존
- Controller는 Service에 의존
- Service는 Repository에 의존
하는 방식으로 개발하였다.근데 나는 Service, Repository의 경계가 모호해서 이해가 가지 않는 것이다. 따지고 보면 그냥 중간 매개체로 Repository의 내용을 Controller에 전달해주는 거뿐인데, 그냥 Repository에서 Controller로 직접 전달해주면 되는 것 아닌가? 싶어 Service가 불필요하다 느꼈다. 근데 제나님도 이런 내마음과 똑같았는지 Service의 역할을 정리하는 TIL을 딱 올린 것이다! 이걸 보고 바로 이해했다.
- Presentation Layer(프레젠테이션 계층) → View, Controller가 여기에 해당
- Business Layer(비지니스 계층) → Service가 여기에 해당
- Persistence Layer(영속성 계층) → Repository가 여기에 해당그러니까 Service는 클라이언트의 요청에 대한 정보를 처리하는 비지니스 계층에 존재한다. 즉, 비지니스 로직을 수행하는 곳이라는 것이다. 만약 내가 생각했던 거처럼 Repository에서 바로 Controller로 연결이 된다면, Controller에서 비지니스 로직이 수행되어야 한다. 근데 Controller는 프레젠테이션 계층에 해당되기 때문에 화면에 보여지는 것들에만 신경을 써야 한다. 이는 Layered Architecture가 지향하는 계층 별 관심사 분리와는 어긋난다.
더군다나 Controller에서 비지니스 로직을 처리한다면 그 로직을 다른 Controller에서 또 새롭게 똑같은 로직을 다시 작성해야 하는 일이 발생한다. 허나 Service에 관리하면 어떤 Controller든 그 로직을 가져다 쓰기만 하면 되니 관심사의 분리가 제대로 이뤄지는 것이다!
제나님의 TIL 덕분에 이렇게 의문스러웠던 부분이 해결되었다 👍
+) 아샬님이 이 포스팅을 보시고 코멘트를 남겨주셨다. 👇
내가 쓴 자료들이 다소 예전 이야기가 있어서 주신 코멘트였다. 낡은 자료를 주의할 것!
+) 참고 자료: DDD의 Layered Architecture는 한국어 번역본!
- https://wikibook.co.kr/article/layered-architecture/
- https://github.com/ahastudio/til/blob/main/architecture/layered-architecture.md3. Future Action Plan (미래의 행동 계획)
- 퀘스트 과제 금요일 안에 끝내기
4. Feedback (피드백)
(📆 10월 21일 작성)
퀘스트 과제를 목요일에 끝내게 되어 100프로 달성!
여러모로 이번 주는 코로나 이슈로 컨디션 난조도 한몫해서 계획했던 대로 액션 플랜들을 수행하지 못했다. 그럼에도 불구하고 주차 학습을 다 따라간 것에는 큰 박수를 쳐주고 싶다! 👏 (옛날의 나였다면 아프다고 누워서 일주일 내내 아무것도 하지 않고 요양 생활을 했을 것이다..)
이번 주간 회고를 쓰면서 여러모로 동기들의 도움을 톡톡히 봤던 한 주여서(원래도 많은 도움을 받았지만 이번 주는 더더욱!ㅎㅎ) 동기들에게 너무 고마웠다. 코로나 환자를 원격으로 보살펴준 우리 3기 친구덜 짱이에요!👍
이제 격리도 이틀밖에 안 남았는데 후유증 없게 잘 관리해서 화요일부터는 다시 건강한 모습으로 코딩 도장에 나가보자! 강보니 파이탱!💪
'📝 기록 > 매주의 기록' 카테고리의 다른 글
TWIL #10 | 정신차려 이 각박한 세상 속에서! (0) 2022.10.30 TWIL #9 | class 제나 extends 보니, class 뚜루 extends 보니. (1) 2022.10.21 TWIL #7 | 풀스택 정권찌르기 1주차. (0) 2022.10.09 TWIL #6 | 일주일 만에 선생님이 된 보니!? (0) 2022.10.01 TWIL #5 | Kpop Of The Day 작업 회고. 조금 비틀대지만 혼자만의 리듬을 찾는 중! (1) 2022.09.24