민스씨의 일취일장

후기 | F-Lab Java Backend 과정 6주차 - 디자인 패턴 & 스프링 IoC와 DI 본문

Personal Development/F-Lab 자바 백엔드 과정 [진행중]

후기 | F-Lab Java Backend 과정 6주차 - 디자인 패턴 & 스프링 IoC와 DI

읻민스 2024. 7. 10. 14:47
반응형

F-Lab Java Backend 과정 6주차 후기 글이다.

F-Lab Java Backend 과정 6주차

F-Lab Java Backend 6th Week 썸네일 이미지이다.
F-Lab Java Backend 6th Week

6주차 멘토링 주제

6주차 멘토링 주제는 아래와 같다.

1. 디자인 패턴 (싱글턴, 팩토리, 어댑터)
2. 스프링 IoC & 스프링 DI
3. 스프링 Bean Injection

a. 프로젝트 구상

 

6주차까지는 이론 중심으로 하지만, 7주차부터는 프로젝트를 진행하기 때문에 프로젝트 구상을 시작했다.

멘토링 준비

1. 자료 준비

이번 주는 기존의 있는 책으로 이론 학습을 무리없이 할 수 있을 것 같아 따로 책은 구비하지 않았다. 이번 주 이론 공부에 사용한 책은 아래와 같다.

1. 디자인 패턴의 아름다움
2. 배워서 바로 쓰는 스프링 프레임워크
2. 토비의 스프링 3.1 Vol 2

2. 공부 과정

당초 계획은 디자인 패턴과 스프링 이렇게 투트랙으로 진행할 예정이었다. 디자인 패턴 종류는 굉장히 많은데 3가지만 살피고 가기 너무 아쉬워 보는 김에 많이 봐야지라고 생각했었다. 그렇게 투트랙으로 시작을 했는데, 막상 스프링 IoC 공부를 하는데 디자인 패턴 이야기가 너무 많이 나왔다. 디자인 패턴을 잘이해하는게 스프링 지식을 빠르게 이해하는 데 도움이 될 것이라고 판단해 중간에 디자인 패턴 공부 후 스프링을 공부하기로 계획을 수정했다. 공부 시간의 약 60%(체감) 이상을 디자인 패턴 공부에 쏟았다. 그리고 나머지 시간에 스프링 Ioc와 DI에 대해 학습했다.

3. 어려웠던 점

  • 디자인 패턴

디자인 패턴은 컴퓨터 프로그래밍 역사와 함께 한다. 역사가 깊어질 수록 디자인 패턴은 다양해 지는 것은 자명하다. 다시 말해, 디자인 패턴 종류가 너무 많았다. 그래서 이번주에 계획했던 디자인 패턴들을 다 살펴보지 못했다. 그런데 이 것들을 다 살펴보지 못한 이유는 단순히 많아서 뿐만이 아니다. 내용만 들으면 그렇게 직관적으로 이해하기 어렵지 않을것 같은데, 막상 그래서 이 패턴들이 어떻게 쓰이고 정확히 어떤 역할을 하는지 이해하려고 하면, 1주일은 정말 부족하다. 비록 디자인 패턴 모두를 공부하지 못했지만, 디자인 패턴이 얼마나 중요하고, 이후에도 지속적으로 깊이 있게 공부해야 할 분야라는 점은 알게 됐다.

  • 프로젝트 구상

이번 주는 지난 5주와 다르게, 진행할 프로젝트를 구상하는 시간을 가져야 했다. 늘 해왔던 대로 사업아이템을 찾듯이 주제를 정하는 것이 아닌, 백엔드 엔지니어로써 겸비해야 하는 기술에 초점을 맞추어 주제를 찾아보았다. 그랬더니 욕심이 끝이나질 않았다. 어떻게 하면 한 주제에 원하는 모든 기술을 다 사용해 볼 수 있을까 하는 고민에 주제를 확정하지 못했다.

  • 방대한 학습 범위

주제는 매주 똑같이 3개에서 4개를 받는데 갈수록 참고해야 할 자료의 양이 엄청나게 늘어나고 있다. 특히 스프링은 깊게 가기 시작하면 정말 끝이 보이지 않을 정도이다. 꼭 달성해야 할 이론의 깊이의 기준이 있다기 보다, 이론 학습에서 현재 어느 정도까지의 깊이를 다뤄야 하는 지, 순간 순간 판단하는 능력 또한 역시 배워야 할 점이란 생각이 들었다.

6번째 멘토링

이번 주 멘토링의 이론 대화는 스피드하게 진행됐다. 기분상으로 약 15분에서 20분 정도 한 것 같다. 원래는 4가지 주제 였지만, 3가지 주제를 빠르게 다루고 (그렇지만 필요한 부분은 놓치지 않고 진행되었다고 느꼈다.) 남은 시간 멘토님이 개발 사이클과, 백엔드 엔지니어가 다루게 되는 전체 기술 도메인의 그림을 그려주셨다. 아주 기본적인 수준에서 부터 하나하나 "스케일 아웃"하는 과정을 보여주셔서 서비스 하나를 키워가는 간접 경험을 한 기분이었다. 이 전체 그림에서 어떤 곳에 집중해서 진행하고 싶은지 스스로 선택해야 한다고 

6번째 멘토링 느낀점

  • 그동안 뭘 한건가 도대체

이번 멘토링을 마치고, 정말 그 동안 진행했던 프로젝트들은 도대체 뭘 했던건가 싶었다. 멘토님이 그려주신 전체 백엔드 기술 도메인 계층에 비추어 볼 때, 여태까지 진행했던 프로젝트는 그저 이 계층을 그려나가기 시작할 때의 가장 기초 요소에 불과했다. 더욱 안타까운 점은 적지않은 강의를 듣고, 책을 봐왔는데 이 큰 그림을 왜 여태까지 알지 못했을까 하는 점이다. 이제라도 알아서 정말 다행이라고 생각하지만, 역시 선생님을 잘만나야 한다는 생각이 든다.

  • 말하기의 익숙해짐?

이번 주 멘토링 준비 과정에선 프로젝트 구상이라는 제한없는 고민의 시간을 가지면서, 말하기 연습을 많이 못했다. 연습이 적었던 만큼 멘토링 시간이 다가올 수록 적잖은 걱정이 되었다. 멘토링 시간은 다가오는데 준비한 스크립트를 안보고 뱉어볼 때, 꼭 말해야 할 부분들이 생각조차 나지 않을 때 정말 초조해졌다. 멘토링 시작 직전에, 말해야 할 것들의 리스트를 다시 한 번 적어보며 체크하고 멘토링에 임했다. 그런데, 생각보다 말이 술술 잘 나왔다. 뭐 물론 술술술 기승전결을 갖춘 이야기를 한 건 아니지만, 해야할 내용은 다 말하는 모습을 내자신을 보았다. 이걸 보고 지난 5주간 기초 지식을 학습한 효과라고 생각했다. 왜냐하면 핵심 주제를 표현하는 수사들은 기초내용들로 채워지기 때문이다. 어떤 분야에서 설명을 잘 못한다는 건, "기초 공부"가 잘 안된게 맞구나라는 걸 다시 한 번 느끼는 멘토링 시간이었다.

728x90
반응형