우아한테크코스 레벨2 회고
포스트
취소

우아한테크코스 레벨2 회고

명품 코드 짜기

부푼 마음을 안고 시작했던 우아한테크코스가 벌써 절반이나 지나갔다. 그동안 나는 무엇이 변했을까?

곰곰이 생각해 보았더니, 코딩을 통해서 나오는 ‘겉으로 보이는 결과물’은 그렇게 크게 변하진 않은 것 같다. 이전에도 간단한 웹사이트를 여러 개 만들어 봤으니 말이다.

하지만 그 안은 모든 것이 바뀌었다고 말해도 좋을 정도로 크게 바뀌었다. 장인 정신. 우테코를 통한 나의 변화는 이 한 마디로 표현이 가능할 것 같다.

코드, 돌아가기만 하면 될까?

우테코를 시작하기 전까지는 코딩을 좋아하고 코딩을 열심히 하기는 했지만, 당장 빠르게 결과물을 만드는 데에만 열중했다. 코드를 인터넷에서 퍼 오든 아는 지식 수준만으로 대충 짜든, 코딩의 과정보다는 산출물만을 원했던 것이다.

Node.js로 웹 백엔드 개발을 했었는데 지금 생각해보면 참 엉망이었다. 테스트 코드 같은 건 존재하는지도 몰랐고, 들여쓰기는 6~7개를 넘기 일쑤였고, 한 곳을 고치면 다른 곳에 버그가 터져 나갔다. 물론 빨리 완성물을 낼 수 있었지만 원리를 모르고 복사 붙여넣기 식으로 엉성하게 만들면서 기술 부채가 많이 쌓였으며, 더 복잡한 로직을 짤수록 실력의 한계를 느꼈다. 그런 한계를 돌파하기 위해 찾아온 곳이 우테코였다.

기초가 튼튼해야 한다

우테코에 와서는 처음에 많이 힘들었다. 당장 결과물을 만드는 것이 아니라, 이론 공부부터 하는 것이 익숙지 않았기 때문이다. 스트림과 enum의 개념을 익힐 때 많이 힘들었던 기억이 난다. 그래서 주변에서는 어떻게 공부를 하는지 둘러봤더니 모두가 책을 펼쳐놓고 공부하고 있었다.

그래서 C언어 배울 때 이후로 처음으로 개발 관련 책을 읽기 시작했다. 자바 기본서부터. 처음엔 따분하고 집중하기 어려웠지만 책을 읽다 보니 원리를 모르고 사용하려니 머리만 아프고 어려웠던 스트림이나 람다, 인터페이스 등이 ‘어떻게 그렇게 작동하는지’ 에 대해서 알게 되어 적재적소에 사용할 수 있게 되었고, 용어나 명칭을 정확하게 알아서 페어 프로그래밍을 할 때에도 의사소통이 보다 원활하게 되었다.

꾸준함이 이긴다

냉정하게 말해서 나는 다른 사람들보다 조금 느린 편이다. 성급해서 코드는 빨리 완성하려고 하지만 머릿속에 지식을 집어 넣는 것, 기술 스택을 쌓는 건 좀 굼뜬 편이라, 빠름보다는 꾸준함을 무기로 삼아야겠다고 생각했다.

작년의 나를 생각해 보면, 꾸준함과는 거리가 멀었다. 학교 동아리와 연구실에서 자리를 차지하고 앉아있긴 했지만, 집중력이 흐트러져 딴짓을 하기 일쑤였다. 멘탈 기복도 심한 편이어서 코딩을 아예 놓고 있다가 마감 기한에 맞춰 대충 마무리 지은 적도 많다.

올해 들어 ‘무언가 하나라도 꾸준히 하자’라는 목표에 대한 실천으로 먼저 블로그를 다시 시작했다. 무엇 하나라도 새로 배운 기술이 있으면 블로그에 정리해서 올렸다. 올리면서 자세한 내용을 찾아보기 때문에 공부가 되었고, 또 잊어버리더라도 블로그를 켜면 바로 보이기에 찾기가 쉬워졌다.

또 기회가 될 때마다 스터디에 열심히 참여했다. 모던 자바 인 액션, 객체지향과 디자인 패턴, 스프링5 프로그래밍 입문 등의 책으로 진행한 여러 번의 스터디는 미션과 병행하기에 체력적으로 힘들기도 했지만 돌이켜 보니 미션을 풀어나가는 데에 많은 도움을 주었다.

소프트웨어 장인이 되기 위해

마지막으로 앞으로의 목표는 리팩토링을 더욱 충실히 하는 것이다. 레벨 1, 2 미션을 진행하는 동안 바쁘다는 핑계로 리뷰어가 제시하는 수정 사항만 반영하곤 했다. 이젠 코드를 좀 더 주의 깊게 보고, 장인의 마음으로 내가 짠 코드를 천천히 다시 살펴보며 아쉬운 부분을 수정하는 시간을 가져 봐야겠다.

명품 코드를 짜자

장인이 만든 명품은 처음엔 너무 비싸서 제값을 못 해 보여도, 시간이 지날수록 쉽게 망가져 버리는 싸구려에 비해 진가를 발휘하기 마련이다. 잘 짠 코드도 그러하다. 시간이 지나 유지보수가 필요할 때, 장애가 발생했을 때 명품 코드는 빛을 발한다.

그런 명품 코드를 짜는 개발자가 되고 싶다. 이것이 우테코에 와서 새롭게 새운 목표이다.

This post is licensed under CC BY 4.0 by the author.

맥북으로 바꾸다

Jenkins로 Spring Boot 서버 자동 배포하기 - 1. 도커와 젠킨스 설치

Comments powered by Disqus.