어느덧 개발에 입문한 지 1년이 지났다. (정확히 말하자면 1년 반..)
그동안 참 많은 일이 있었다. 첫 2개월 간 자바 기본 문법을 공부하였고,
그 뒤로는 인프런 김영한 님의 스프링 강의를 보며 스프링 학습과 간단한 게시판을 만들어봤다.
그때까지만 해도 나는 흔히 말하는 '네카라쿠배'를 1년 정도 공부하면 갈 줄 알았다 ㅎㅎ..
개발 공부는 나에게 있어서 밑 빠진 독에 물 붓는 느낌이었다.
새로운 내용을 학습하고 몇 개월이 지나면 그 새 잊어버렸기 때문이다.
계속해서 반복하지 않으면 관련 지식을 내 것으로 만들기 어려웠다. 그렇다고 계획적으로 복습하는 성격도 못되는지라..
어렴풋이 아는 것을 많은데, 그것에 대해 자세하게 설명하라고 하면 말 못 하는 감자가 되기 십상이었다 ㅜ
지금도 내가 관심 있는 분야가 아니면 여전히 감자가 된다 :(
삽질의 연속
공부한 지 6개월 정도 됐을 때였나? 이론적으로 아는 건 많은데
실질적으로 웹 페이지를 어떻게 기획하고 만들어야 하는지 감이 잡히질 않았다.
간단한 페이징 기능이 구현된 게시판까지는 만들 수 있었지만 퀄리티가 조잡했고, 지금 생각해 보면 CSS와 JS에 대한
기본 지식 없이 인터넷에 떠도는 코드와 부트스트랩을 활용해서 화면 구색이 갖춘 상태로 대충 동작되도록 했던 것 같다.
근데 그 당시에는 나름대로 잘 만들었다고 생각했다 ㅎㅎ..
아무튼, 도대체 뭘 만들어야 될까 고민을 참 많이 했다. 거창한 것을 만들고 싶었는데, 그러자니 내가 과연 할 수 있을까
하는 생각이 들었고, 너무 간단한 걸 만들자니 실제 포트폴리오에 제출한 프로젝트로써 기능을 못할 것 같았다.
그래서 기획하고 좀 만들다가 엎고, 또다시 기획하다 만들다가 부족한 부분이 나오면 다시 강의를 듣고 하다 보니까
프로젝트 하나를 개발하는 데 걸리는 기간이 너무 지체가 되었다.
돌이켜 보면 일종의 완벽주의 성향이 강했던 것 같다.
화면 동작 방식을 구현다가 막히는 부분이 생기면 JQuery 강의를 처음부터 끝까지 들어 보완하려 했었고,
복잡한 쿼리를 작성해야 될 때면 QueryDSL 강의를 완벽하게 이해하고 프로젝트를 진행해야겠다는 생각을 했었다.
김영한 강사님이 야생형 개발자가 실력이 폭발적으로 상승하는 경우를 많이 봐 왔다고 말씀해 주셨는데,
그 말 뜻을 이제야 좀 알 것 같다. 막히는 부분이 생기면 어느 정도의 이론 학습 후 다시 시작하는 과정이 필수적이긴
하지만, 처음부터 끝까지 모든 것을 이해하고 시작하려고 하면 진행이 너무 더뎌 발전하는 속도도 같이 더뎌지는 것 같다.
첫 7개월 ~ 8개월 정도는 정말 열심히 한 것 같지만, 지나고 보니 흔한 게시판 하나가 내 결과물이었다 ㅜㅜ..
우아한 테크코스 5기
2022년 10월부터 우테코 프리코스에 참여하였다. 자바를 활용하여 매주 미션을 받고 구현하는 과정이었는데,
이전까지 자바로 알고리즘 문제 풀이 및 공부를 많이 하였기 때문에, 어느 정도 자신이 있었다.
실제로 첫 주에는 코딩 테스트 유형의 문제가 주어져서 손쉽게 해결할 수 있었다.
우아한 테크 코스는 매주 미션에 대한 소개와 이전 주차 미션에 대한 피드백이 제공된다.
공통 피드백 파일로 제공되는데, 이게 정말 유익했다. 내가 미처 생각지 못하고 놓친 부분이 무엇인지 점검할 수 있었고
다음 주차 미션 때는 해당 피드백을 바탕으로 하여 개선된 코드를 작성할 수 있었다. 매주 주어진 미션을 피드백 내용을
바탕으로 개선하며 성실이 이행하니 최종 테스트 기회가 주어졌다.
최종 테스트는 우테코 캠퍼스에 직접 가서 치렀는데, 프리코스를 통과한 200명 중에 최종적으로 100명을 선발하였다.
우테코의 일원이 너무 되고 싶었기 때문에, 4주에 걸친 프리코스 공통 피드백 내용을 다시 한번 정독하고,
부족한 부분에 대한 학습과 실제 모의시험을 쳐보는 등의 나름대로 준비를 하고 갔다.
최종 테스트 미션은 생각보다 간단했다. 시험 시간이 아마 5시간 정도 주어졌던 것으로 알고 있었는데,
1시간 넘게 남기고 모든 요구사항을 구현할 수 있었다. 남는 시간에는 메서드 하나에 하나의 책임을 가지도록 분리 작업과
메서드 및 변수 명을 보는 사람으로 하여금 이해하기 쉽게 직관적인 이름으로 바꾸는 등의 리팩토링 작업을 진행했다.
그렇게 나름 성공적(?)으로 시험을 마무리하고 들뜬 마음으로 집에 왔던 기억이 난다..
테스트 이후에 어떤 분이 슬랙에 채점 프로그램을 만들어서 올려주셨다. 내가 지원한 백엔드 파트는 200명 중에
150명이 구현에 성공하였다고 나와있었다. 문제가 조금 수월해서 많은 인원들이 구현에 성공하였고 이때부터 불안감이
엄습했다.. 내가 50명 안에 들어 떨어질 수 있을 가능성이 있었기 때문이다. 그렇게 노심초사하며 결과를 기다렸고,
결과는? 탈락이었다 ㅜ
이때 심장이 쿵하고 내려앉는 경험을 처음으로 할 수 있었다.. 합격 후 내 모습에 대한 행복한 상상과 설렘이
손에 쥔 모래알 같이 손가락 사이로 몽땅 빠져나갔다. 나름대로 열심히 했는데 왜 탈락했을까? 하는 생각이 일주일 내내
머릿속에 맴돌았다. 프리 코스와 최종 테스트 때 제출한 코드들을 다시 점검하고 무엇이 문제였는지 분석을 했다.
몇 번 그렇게 보다 보니 내 문제점이 무엇인지 알 수 있었다. 주차마다 공통 피드백을 바탕으로 개선된 부분은 분명
있었지만, 열정이 없었다. 이게 무슨 뚱딴지같은 말이냐고 할 수 있지만, 정말 그랬다. 내가 작성한 코드와 커밋 기록에는
성장하고자 하는 열정이 담겨있지 않았다...
최근 들어 개발 실력의 향상은 어려운 기능을 구현하고 난 뒤가 아니라, 구현하고 나서부터 시작이라는 생각이 들었다.
분명 내가 제출한 모든 코드는 미션의 요구 사항들을 준수하였고 성공적으로 테스트를 통과하였지만,
이후에 개선 작업이 너무 부족했다(물론 아예 없었던 건 아니다). 한 마디로 성장할 수 있는 기회를 계속 놓치고 있었다.
그리고 개선 작업은 보통, 혼자서 하는 것보다 누군가와 같이 할 때 빛난다. 아무리 훌륭한 개발자라 할지라도 항상 모든
방면에서 Best Practice를 알고 있을 순 없다고 생각한다. 다른 개발자들과의 적극적인 의사소통과 피드백을 통해서
자신의 부족한 점을 발견할 수 있고, 이를 통해 지속적인 보완을 통한 개선이 가능하다고 생각한다.
우아한 테크 코스에서 제공하는 커뮤니티는 아마 이런 기능을 수행하려고 만든 게 아니었을까?
우테코 프리코스 커뮤니티에는 이전 주차에 작성한 코드에 대한 피드백을 받는 공간이 있었다.
다른 참여자들은 해당 기능을 적극적으로 활용하였다. 나도 피드백을 부탁하는 글을 올리긴 했지만, 직접적으로 나서서
남들의 코드를 살펴보고 피드백을 한 다음 내 코드에도 피드백을 해달라는 행동을 하지는 못했다.
그 당시에는 누군가의 코드에 피드백을 하는 것과 내 코드가 누군가에 의해 보여지는 것이 조금 무서웠다.
"이 사람은 이걸 이렇게 구현했네? xx를 쓸 줄 모르나 보다.", "코드 스타일이 엉망이네" 와 같이 타인이 하지도 않은 말들에
대한 걱정이 적극적인 참여를 막았다. 그리고 '개발자는 고독하게 어떤 문제든 혼자 해결해야 진정한 개발자야!' 라는
고리타분한 관념도 한몫했었다.
그 뒤로 너무 후회가 남아, 앞으로는 두려움을 떨치고 누군가와 같이 피드백을 통해 성장을 해나가야겠다는 마음을 먹었다.
그렇게 탈락이라는 씁쓸한 마음과 변화에 대한 다짐을 한 상태로 2022년 한 해가 끝났었다.
'회고 및 일상' 카테고리의 다른 글
학습의 3단계 / 시스템의 중요성 (0) | 2023.11.03 |
---|