눈깜짝할 사이에 레벨 2가 끝났다. 미션을 끊임없이 하고, 틈이 나면 책을 읽다보니 너무 정신없이 지나갔다. 레벨 2가 끝날때 쯤 문뜩 뭔가를 배운거 같은데 많은 것을 배우지 못했다는 생각이 들었다. 곰곰히 생각을 해보니 배운게 있긴 하더라, 다만 레벨 1처럼 명확히 답이 있는 지식을 많이 공부하지 않아서 생긴 착각 같다.
레벨 2를 시작하면서 스프링을 공부하기 시작했다. 우테코 오기 이전에 공부했던 익스프레스와 같은 웹 프레임워크다 보니, 기능면에서 겹치는 부분이 상당히 많았다. 덕분에 사용법을 익히는 대에는 많은 시간이 걸리지 않았다. 하지만, 또 다른 문제에 맞닥드렸다. 우테코 오기 전에 도메인을 고려하지 않고 진행했던 웹 프로젝트에서의 습관과 레벨1에서 콘솔 프로그램으로 익혔던 도메인에 대한 고민들이 한번에 뒤섞이면서 어떤 설계를 해야 할지 막막했다. 도메인은 분명 설계할 수 있는데 이를 웹에 적용시킬려니, 어느 부분에 도메인을 위치시킬지, 도메인 객체가 없어도 개발이 가능한데 왜 도메인이 필요한지 등 많은 고민에 휩싸였다.
위 문제에 대해 명확한 답을 찾기 위해 노력했지만, 명확한 답은 어디에도 존재하지 않았다. 설계에 답은 존재하지 않는다. 그래서 다른 사람들의 생각을 듣고, 나만의 설계 철학을 만들기 위해 많은 크루들한테 ‘도메인이 뭐야’라는 질문을 수도 없이 하고 다녔다. 코드분들과, 리뷰어분들과도 많은 대화를 나눴다. 혹여나 글에 답이 있을까 싶어서 DDD quickly와 클린아키텍처, 블로그 글들도 읽었다. 그렇게 처음에는 뭐가 뭔지 이해도 되지 않는 것들에 대해 고민을 하고, 찾다보니 조금씩 이것들이 명확해지기 시작했다. 완벽하진 않지만, 적어도 layered architecture가 왜 존재하는지, 계층별 역할, 어떤 계층으로 나눠야 되는지 정도는 알게 되었다. 레벨 3때 더 많은 시행착오를 겪으면서 설계에 대해 더 많은 것들을 알게 되면 좋겠다.
인프라에 대해서도 조금 공부를 했다. 예전에도 AWS를 사용해 본적이 있지만 VPC, subnet, security group 등이 정확히 어떤것 인지는 알지 못한채로 사용했다. 하지만 마지막 미션에서 AWS를 사용하면서 이들을 공부했고, 큰 맥락에서의 구조를 알게 되었다.
지쳤다. 개발만 하고도 살수 있을거라는 생각을 가지고 살았다. 하지만 한번 번아웃이 오고 나니, 그 생각이 싹 사라졌다. 이제는 다른 것들을 경험해봐야 할거 같다. 근데 이게 맘처럼 되려나… 당장 할게 산더미인데. 다른것을 하려면 컴퓨터를 없애야만 될거 같은 생각이 든다. 그래도 많은 크루들이 격려를 해줘서 버틸수 있었다. 우테코를 오지 않고, 혼자 개발을 하는 상태에서 번아웃이 왔을 것을 상상하니 끔찍하다. 우테코는 나에게 잊지못할, 어디서도 경험해보지 못할 경험들을 선사해 주었다.
레벨 2가 끝났다. 후련하면서도 너무 빨리 끝난거 같아서 아쉬움이 남는다.