study/우아한테크코스

우아한테크코스 7기 백엔드 레벨2 회고

듀2 2025. 6. 29. 23:43

시간이 정말 빠르게 흘러간다.
방학 내내 지겹게 놀고 끝나갈 때가 되어서야 슬슬 레벨2 회고를 써보려고 한다.
 
레벨2를 겪으면서 잘하고 있는 것인지 고민일 때도 있었다.
지금 생각해보면 레벨2가 나에게 남긴 것이 생각보다 굉장히 많았구나 생각이 든다.

  • 나만의 학습 방법
  • 테코톡
  • 스프링
  • 외부 API 활용법
  • 인프라, 배포
  • 클라이밍
  • 영어회화

등등..!

 

나만의 학습 방법과 테코톡

레벨2 시작과 함께 주어진 학습 목표는 ‘나만의 학습 방법 찾기’였다.
레벨1 학습을 돌아봤을 때, 나는 완벽히 이해해야만 적용까지 시킬 수 있는 사람이었다.
그렇기 때문에 스스로에게 '이건 왜 그래?‘, ’저건 왜 그래?‘라고 지속적으로 질문을 던져야 했다.

이런 질문들과 함께 테코톡을 준비하기 시작했다.
거의 테코톡 신청 기간 마지막 날까지 주제 고민을 했다.
레벨1 때 같은 데일리였던 머피와 테코톡에 대해 이야기를 나누면서 테코톡도 학습의 수단으로 삼아야겠다고 생각했다.
그래서 스프링에서 많이 사용하지만 ‘왜’ 사용하는지 정확히 알지 못하고 사용하는 'Annotation'을 주제로 정했다.

Annotation은 자바 + 스프링에 함께 사용되는 개념이어서 그런지 레벨2 테코톡 일정 중 가장 첫 주로 배정이 됐다.
다행히 미션이 바빠지기 전이었고 5월 초 연휴도 같이 있어 준비하기에 어려운 일정은 아니었다.
같은 날 발표를 하는 드라고와 함께 레벨1 데일리 조원들에게 피드백도 받고 발표를 했더니 훨씬 깔끔한 발표를 할 수 있었다.

누군가 나에게 'Annotation'이 무엇이고, 스프링에서는 왜 활용하는 것인지 묻는다면 아래와 같이 답할 수 있겠다.

  • Annotation은 인터페이스의 일종이며, 컴파일러나 빌드 도구 혹은 개발자에게 정보를 제공하는 역할을 한다.
  • Annotation 등장 이전에는 XML 파일로 설정 파일을 분리했었으나, 자바 파일과 설정 파일이 많아지고 프로젝트의 크기가 커지면서 버전 관리가 복잡해지고 어려워져 자바 파일에 Annotation을 붙여 설정 정보를 담게 되었다.
  • 스프링은 enterprise 환경에서 사용하는 프레임워크고, 유지보수, 가독성 향상과 같은 장점을 가진 Annotation을 활용하지 않을 이유가 없다.

이 외에도 Meta Annotation을 활용하여 Custom Annotation을 사용하는 방법도 설명할 수 있게 되었다.
이런 관점에서 보면 학습의 수단으로 삼아야겠다고 했던 테코톡은 성공적이었다고 볼 수 있지 않을까?

유튜브에 업로드된 테코톡 영상은 여기서 확인 가능!
👉 유튜브 본문

 

스프링, 외부 API, 배포

스스로에게 ‘왜?’라는 질문을 던지면서 학습을 하다 보니 예전에 배웠던 스프링 개념이 휘발된 이유를 알 수 있었다.

전에는 단순히 사용하는 방법만 익혔다면, 이번에는 왜 필요한지를 먼저 이해하고 학습하니 같은 기술이 필요한 상황에서 이유와 함께 사용법을 기억해 낼 수 있었다.

학습에 시간을 충분히 들일 수 있는 우테코 환경에서는 좋은 학습법이겠지만, 이렇게 학습하면 시간이 오래 걸린다는 단점이 있다.

실제로 외부 API 연동과 배포 학습을 하면서 느낀 단점이었다.
다른 크루들은 외부 API 연동뿐만 아니라 토스에서 내려주는 예외를 어떻게 처리할 것인지 고민하고 있는데, 나는 외부 API를 어떻게 연동하는지, 스프링에서 외부 API와 통신할 때 RestTemplate, WebClient, RestClient의 차이점은 무엇인지 학습하기에도 바빴다.
다른 크루들은 배포 스크립트를 어떻게 작성하면 더 가독성이 좋을지, 게다가 무중단 배포까지 고민해보는데,  나는 리눅스 명령어부터 학습하느라 정신없었다.

이 과정에서 시간을 단축시키기 위해 자연스럽게 AI를 많이 활용했다.
대신 AI에게 ‘해줘’라고 하지 않고, 내가 해결하고자 하는 문제가 무엇인지 컨텍스트를 먼저 전달한 뒤 공식 문서 링크를 전달하면서 학습이 필요한 개념을 정리해 달라고 했다.
추가로 내가 이해하지 못한 개념이나 내용이 있다면 나는 이렇게 이해했는데, 이해한 내용이 맞는지 검증해 보는 도구로도 활용했다.

AI 특강에서 AI를 동료 개발자라고 생각하라는 말을 들었는데, AI를 학습 도구로 활용하는 나에게 정말 좋은 조언이었다고 생각된다.

aws 과금이 무서워서 항상 조심스레 시도해 봤던 배포도 레벨2 마지막 미션에서 자유롭게 시도해 볼 수 있어서 너무 좋았다.
걱정했던 것보다 어렵지 않게 배포를 할 수 있다는 것을 알게 되었고, 앞으로 레벨3 팀프로젝트가 더 기대되게 하는 경험이었다.

클라이밍

레벨1 때 너무 골골대면서 다녔는데, 이때는 우테코 생활에 적응이 우선이라고 생각해서 운동으로는 걷기만 열심히 걸었다.
날씨가 걷기에 좋은 날씨이기도 했다.

레벨2에 들어서면서 뭔가 체력을 더 끌어올리고 싶었는데, 마침 지수 아버지 덕분에 클라이밍을 배워볼 수 있는 기회가 생겼다.
일일 체험을 해보고 나니 클라이밍이 단순히 벽을 타는 운동이 아니라 문제를 풀고 적용하는 운동이란 것을 알았다.
매 순간이 문제를 해결하고 적용해야 하는 개발자에게 이보다 좋은 운동이 어디 있어..😇

당장 스타터 패키지를 등록하고 일주일에 두 번 강습과 더불어 추가로 하루 더 암장으로 운동을 하러 가는 루틴을 만들었다.
확실히 강습을 들으니까 실력도 처음 했을 때보다 많이 늘었고 재미도 생긴다!
앞으로 꾸준히 해서 더 체력이 늘었으면 좋겠다.
건강하게 개발하자!

며칠 전 건진 뿌듯한 사진

영어회화

우테코에서 감사하게도 영어회화 수업을 제공(?)해주셔서 레벨2부터 매주 금요일 저녁 영어회화 수업을 들었다.

여전히 영어로 이야기를 하는 일은 어려운 일이지만, 그래도 다행인 것은 개발 관련 이야기를 할 때면 개발용어가 영어라서 조금 편하다는 것ㅋㅋㅋㅋ
영어회화 수업을 신청하면서 할까 말까 고민을 많이 했었는데, 기회가 있는데 안 하고 후회하는 것보다 하고 후회하는 게 더 낫지 않을까 생각했다.
일주일에 한 시간만 투자하면 되고, 더 이상은 시간을 쓰지 않겠다는 다짐을 했더니 훨씬 마음이 가벼워졌다.

생각보다 레벨2 기간이 길지 않아서 영어회화 수업도 몇 회 되지 않았던 것 같은데, 앞으로 레벨에서도 이어질 테니 앞으로도 지금처럼만 부담 갖지 않고 하면 좋을 듯싶다!
언젠가 쓰일 좋은 경험이 되겠지!

그래서 스프링 왜 쓰는데?

레벨2 시작과 함께 데일리에서 한 달 목표를 설정했었는데, 나는 스프링의 사용 이유를 찾고 이해하기로 정했었다.
사실 한 달 목표였지만 레벨2 전체 목표라고 생각했고, 그래서 나만의 학습 방법인 ‘왜’를 여기에도 심어보려 했다.

저 목표를 세우고 나서부터 곰곰이 생각해 봤는데, 레벨2를 마무리 짓는 지금의 나는 객체지향도 스프링도 나와 같이 좋은 개발문화를 지향하는 사람들과의 협업을 위해 사용한다고 결론 내렸다.
우테코에서도, 그리고 앞으로 어느 회사에 가도 프리랜서로 일하지 않는 이상 무조건 협업을 하게 될 것이다.
나는 웹 개발을 하고 싶은 사람이고, 타인과 함께하는 웹 프로젝트에서 객체지향과 스프링은 유지보수성과 변경용이성이라는 큰 무기를 가진 패러다임과 프레임워크다.

그런 의미에서 앞으로 팀 프로젝트를 하게 될 레벨3 이후의 지속적인 목표를 ’함께 일하고 싶은 개발자가 되기‘로 잡아보려 한다.

뒤에선 어떻게 이야기가 오갔을지 모르지만, 지금껏 일했던 회사에서 함께 일하고 싶은 사람이었다는 평가를 받기도 했다.
(퇴사 이후에도 간간히 연락을 주고 받는다면 맞지 않을까?🤔)

비슷한 관점에서 레벨2 기간 동안 함께 했던 페어들에게서도 좋은 피드백을 받기도 했다.
 
여기서 안주하지 않고 실제로 팀 프로젝트가 진행될 레벨3 이후, 그리고 앞으로 하게 될 회사 생활에서도 '함께 일하고 싶은 개발자'가 되도록 지속적으로 노력해야겠다.

728x90