안녕하세요!!

부스트캠프 9기를 웹 풀스택 분야로 참여하게 되면서 현재 챌린지 과정을 하고 있는 김정욱이라고 합니다.

이 회고를 보고계시는 분이 혹시 현재 같이 참여하고 계신 캠퍼, 혹은 수료하신 분들이라면 아시겠지만 저희 첫 주차… 왜 과정 이름이 챌린지인 것인지 정말 뼈저리게 느껴지는 한 주가 되었을 거라고 생각합니다.

다음 한 주도 어떤 미션을 진행하게 될지 걱정이 앞서지만 기대도 되는 1주차가 막 끝난 저의 현재 생각을 이 회고로 정리해보려 합니다!


Before 부스트캠프…

2024년 1월, 저는 개발자가 되기로 결심한 후 2년동안 이어오던 빅데이터 분석가직을 내려놓고 퇴사를 결심하게 되었습니다. 이유는 거창하진 않았습니다. 컴퓨터 세상과 그 세상을 잘 다루는 사람들의 모습이 너무 멋있었고, 그 세상에서 가치 있는 서비스를 만드는 것이 제 꿈이었기 때문입니다.

개발자 붐이 코로나로 인해 엄청나게 왔고, 레드오션이라는 소리를 듣는 것은 다 알고서도 퇴사를 결심했습니다. 저는 오로지 개발자라는 직업의 매력 하나만 보고있었기 때문에 내린 결정이었기 때문이었습니다.

제가 부스트캠프를 시작하기 전 했던 학습 경험으로는 인프런 강의, 무작정 백준 문제 풀기 2개였습니다. 인프런은 김영한님의 강의를 듣고 Spring을 배우고 있었고, 백준은 너무 미련하게 공부하고있었습니다. 모르는 알고리즘을 적용할 문제는 아무리 시간을 써도 안풀렸거든요.

제가 혼자 공부를 한 시기에 느꼈던 점은 “휘양찬란한 코드가 아닌 간결한 코드가 진정 멋진것이구나” 라는것을 느꼈습니다. 하상욱 시인의 시집중 이런 내용이 있습니다.

남이 하는 일들이 쉬워 보인다면
그 사람이 잘하고 있기 때문이다.

혼자만 잘하는게 중요한 것이 아닌 프로그래밍 세상에서 위 말은 정확히 적용되더라구요. 더 쉽고 깔끔한 코드를 작성하는것. 그것을 제 개발 목표로 잡았습니다.


Why 부스트캠프?

저는 누구에게 부스트캠프 추천을 받거나 누가 부스트캠프라는 것이 있다고 알려줘서 신청하게 된 것은 아닙니다. 사실 처음에는 국비지원을 받을 수 있는 부트캠프 위주로 찾아봤습니다. 그래서 한 번도 쓰지 않은 내일배움카드가 집에 짱박혀있답니다ㅎㅎ


(For Sale: 국민내일배움카드, never used…)

제가 주로 본 것은 커리큘럼이었습니다. 대부분 Java 공화국답게 Java혹은 Kotlin을 써서 Spring Boot의 기능들을 배우고 그걸로 프로젝트 만들어보는 과정이더군요. 신청 직전까지 가다 저의 발목은 잡은것은 바로 이 생각이었습니다. “그저 프레임워크 기능만 배우고 만들라 하면 다 그게 그거인 프로젝트만 나오지 않을까?”

그래서 조금 더 찾아봤습니다. 그리고 매력적으로 다가온 두 개의 교육 프로그램이 있었습니다. 부스트캠프, 그리고 우아한테크코스. 공통점으로는 가르쳐 주는 것이 아닌 미션을 주며 스스로 공부하게 하는것이었죠. 우아한테크코스는 제가 개인적으로 시기가 안맞아 결국 부스트캠프를 지원하게 되었습니다.


Start 부스트캠프! (우물 안 개구리라는 것을 느끼다)

부스트캠프에는 캠퍼들과 다 같이 책을 읽는 시간이 있습니다. 저는 오늘 “개발자 원칙”이라는 책을 읽었는데요, 그 책의 글쓴이는 취미로 개발자를 하시다가 실제 프로그래머가 된 후 더닝 크루거 효과를 느꼈다고 합니다.

더닝 크루거 효과
능력이 없는 사람이 잘못된 판단을 하지만, 능력이 없기 때문에 그게 실수인지 모르는 것 (우매함의 봉우리 부분)

저는 부스트캠프 2일차에 느끼게 된 것 같습니다.

사실 저도 처음에는 제가 많이 부족하다는 것을 알았습니다. 학생때는 개발에 흥미를 못느껴 소홀히 공부를 하다 보니 CS지식도 없고, 알고리즘도 제대로 배운적 없으며, 그저 프로그램을 만들며 만들어진 내 자식들을 좋아하기만 할 뿐인 상태라는것을요. 그러나 혼자 공부를 하면서 내가 만든 기준 안에만 갇히게 되고, 제가 만든 프로그램들을 친구들이 좋아해 주거나 같은 분야 공부하는 사람들의 고민을 도와주면서 칭찬만 받다보니 점점 제가 부족한 상황이라는것을 망각하게 되었습니다.

(친구들의 요구사항으로 만들어본 마작 자리 선정 어플리케이션)

점점 저의 단점을 못본척 가릴려고만 하게 되고, 새로운 지식을 강의를 통해 배운다고 하더라도 지식이 정체된다는 느낌을 받고 있었습니다. 저는 그렇게 우물 안 개구리가 되었습니다.

이 개구리는 부스트캠프를 시작하기 전 node에 대해 배우면서 바로 프레임워크에 대한 설명이나 API를 설계하는 등 구현에 초첨을 둔 학습을 하게 될 것이라는 착각을 하며 1일차를 시작했습니다. 1일차는 캠퍼 선발을 위해 진행했던 문제 해결 테스트와 비슷한 느낌으로 미션이 진행되어서 해결하며 넘어갔습니다.

2일차에 저는 깨달았습니다. 부스트캠프는 우물을 키워주려는 학습이 아니라 우물 밖으로 절 나오게 해주려는 학습을 목표로 하고 있다는것을요. 그러면서 자연스럽게 제가 우물 안 개구리 상태라는 것을 깨닫게 되었습니다.

미션은 보안사항이라 말씀을 못드리지만 미션이 디테일하고 자세하며 다양한 것을 요구하고 응용해야 해서 제가 이런 생각을 한 것은 아닙니다. 오히려 미션은 불친절하고 요구사항 중 제가 알아서 생각해봐야 하는 구멍뚫린 부분도 꽤 있었습니다. 그리고 문제의 결과는 화려한것을 요구한 것도 아니었습니다. (하지만 쉬운건 절대 아니었습니다)

이런 미션에 감동을 받아 이렇게까지 얘기하게 된 이유는 바로 이 미션과 부스트캠프 운영자분들이 저희 캠퍼들을 코더가 아닌 한 명의 떳떳한 개발자로 바라봐주고 있다는 것을 느꼈기 때문입니다.


코더가 아닌 개발자가 되자

대학생 때 한 교수님은 저희에게 이렇게 얘기하셨습니다.

너희는 코더가 아닌 개발자가 돼라

졸업한지도 좀 됐지만 불과 몇일 전 까지도 저는 이 말을 이해하지 못했습니다. 개발자는 프로그래밍을 통해 코드를 짜야 하는 것이 아닌가? 그러면서 잊고 살았던 저 말을 부스트캠프에서 미션을 진행하면서 다시 상기하게 되었습니다.

부스트캠프 오리엔테이션에서 이런 말이 있었습니다. “개발자는 문제를 해결하는 사람입니다. 그 문제를 해결하기 위해 프로그래밍 뿐만 아니라 다른 다양한 방법이 동원될 수 있습니다.” (정확하게 이렇게 얘기하신건진 기억이 안나는데 이런 뉘앙스였던 것 같습니다…?)

저희는 지금 미션이라는 문제를 해결하고 있습니다. 위에서 말씀드렸다시피 미션의 요구사항은 이해가 안되고 불친절한 부분이 많이 있습니다. 저도 처음에는 이 부분에 대해 질문을 할까 생각했습니다. 그런데 이미 저와 같은 생각으로 요구사항에 대해 질문하신 분들이 있더라구요. 당연히 해당 부분에 명확하게 어떤식으로 구현하라고 답변이 달릴 것이란 제 예상과 달리 거기에 달린 운영자분들의 댓글은 대부분 모호했습니다.

스스로 답을 찾아보세요.

모호한 요구사항에 대한 방향을 잡는 것 또한 저 스스로가 되어야 했고, 그 방향에 정당성과 확신을 만들어야 하는 것 또한 제가 해결할 문제였던 것이었습니다. 그냥 시키는 대로만 할 줄 아는 코더가 아닌 개발자가 된 느낌을 받으며 저는 사용자의 입장을 생각해서 제가 옳다고 생각하는 방향에 맞게 설계, 개발을 하게 되었습니다. 그리고 이 과정은 피어세션이라는 시간에 빛을 발휘했습니다.


괴롭지만 함께라면 행복 할 거야

오늘 릴레이 프로젝트 공지글 맨 아래에 있던 사진의 문구였죠! “괴롭지만 함께라면 행복 할 거야”. 전 이번에 괴롭지만 행복한 한 주를 보냈다고 생각합니다.

저는 부스트캠프를 시작하기 전 제가 가장 긴장되면서도 가장 기대했던 것은 피어세션이었습니다.

피어세션
같은 문제를 해결한 과정에 대해 6명이 한 조가 되어 서로 리뷰를 주고받는 시간

지금 저에게 가장 필요한 시야를 넓히는 데에 도움을 많이 줄 과정이라고 생각했습니다.

피어세션은 매일 오전에 전날 진행한 미션을 서로 리뷰해주는 시간이었습니다. 미션에서의 모호한 요구사항 덕분에 다들 같은 미션이었다 하더라도 나와 다른 다양한 생각들이 나타났습니다.

저와 같은 조원이었던 5명의 캠퍼분들은 피어세션동안 저의 스승이 되었고, “나도 이렇게 구현해볼걸”이라는 생각을 자주 들게 만들어주었으며, 저 또한 조원의 개선점이 보였을 때 개선점을 전달하며 리뷰를 하면서 “피드백을 전달하는 것에 대해 어떻게 얘기를 해야 상대방이 불편하지 않게 잘 전달될까?” 고민해보게 되고 시행착오를 겪을 수 있는 시간이 되었습니다.

그리고 수줍음은 좀 더 내려놓고 적극적으로 조원들에게 다가가야겠다는 피드백을 저 스스로에게 주었습니다.


개구리를 해부하지 말고, 직접 만들어라

부스트캠프를 진행하면서 가장 와닿았던 말이었습니다. “개구리를 해부하지 말고, 직접 만들어라”

저는 항상 해부하는 쪽 사람이었습니다. 모르는 것이 있다면 어떻게 해서 이렇게 동작한 것인지 알기 위해 다 만들어진 결과물을 보고 이해하려 노력하였습니다. 하지만 3, 4일차의 저는 직접 만들어야 하는 사람이 되어야 했습니다.

물론 갑자기 사람이 바뀌기엔 쉽지 않았는지 예전 버릇대로 계속 해부하려고만 들었고, 가볍게만 보았던 개구리를 직접 맨 땅에서 만들려고 하니 엄청나게 막막한 과정이라는것을 온몸으로 느꼈습니다. 결국 설계할 때 만든 체크리스트를 채우지 못하고 반쪽짜리 결과물이 되어버렸습니다.

하지만 실패는 성공의 어머니! 이 과정을 통해 배운 두가지가 있었습니다. 하나, 일단 CS지식을 해부가 아닌 직접 만드는 과정으로 배운다는 것은 정말 그 지식이 내것이 되는 가장 좋은 방법이라는 것을 배웠습니다. CS지식이 많이 부족한 상태인 저는 남들보다 뒤쳐지겠지만, 오늘 읽은 책 “개발자 원칙”에서 글쓴이가 감명을 받은 시 “담쟁이”에 저도 영감을 받아 동요하지 않고 저는 저의 시간대로 나아가며 지금 저에게 다가온 벽을 넘어가기로 마음먹었습니다.

담쟁이 中

저것은 넘을 수 없는 벽이라고
고개를 떨구고 있을 때
담쟁이 잎 하나는
담쟁이 잎 수 천 개를 이끌고
결국 그 벽을 넘는다

둘, 직접 만드는 과정은 생각한 것 보다 더 많은 지식이 필요하고, 많은 설계 과정이 필요했다는 것입니다. 이번주는 이부분에 대해 시행착오를 거쳤습니다. 완성, 그러니까 구현만을 위해 달려나가려 했고, 사전지식 학습과 설계를 소홀하게 하였습니다. 느리더라도 더 완벽한 이해, 더 꼼꼼한 설계를 통해 구현에서 시행착오를 줄이는 것을 목표로 2주차를 진행할 예정입니다.


2주차는 어떤 마음으로 임할것인가

일단 위에서 얘기한 대로 느리더라도 더 완벽한 이해, 더 꼼꼼한 설계를 우선 목표로 두고있습니다.

그리고 너무 멤버십에 참여하고 싶다라는 마음을 가진 저를 반성하고 현재의 챌린지에 더 집중하기로 했습니다. 제가 생각한 것 보다 훨씬 더 뜻깊은 시간이 될 것 같은 챌린지에서 뭐라도 하나 더 얻어갈 생각을 하는 것이 더 중요하다고 느꼈습니다.

그리고 느리다고 조급해하지 말고, 구현의 완성보단 지식의 습득을 우선적으로 생각해서 수료, 멤버십 과정 이런 생각은 일단 버리고 나의 발전을 가장 우선적으로 생각하면서 챌린지를 진행할 생각입니다.


마치며

이렇게 많은 개발자들 사이에 속해서 좋은 커뮤니케이션을 통해 같이 성장하는 과정을 진행하고 있다는 것이 저를 항상 벅차게 만든 한주였던 것 같습니다.

부스트캠프에서의 경쟁자는 다른 캠퍼분들이 아닌 과거의 자신이라는 말을 오늘 말 많은 부덕이가 전해주더군요. 6기 수료생분께서 남긴 말이라고 합니다. 지금 회고를 적는 이번주의 저는 이제 과거의 자신이 될 것입니다. 그리고 저의 경쟁자가 되겠죠. 저는 제 경쟁자보다 더 나은 한주를 2주차에 보낼 생각입니다. 아마 1주차보다 더 높은 벽이 마구 올지도 모릅니다. 그래도 아주 조금이라도 제 경쟁자보다 더 올바른 길을 찾아서 속도를 내보겠습니다.

부스트캠프를 진행해볼까 고민하다 이 글을 보시게 된 분들은 시간이 되신다면 꼭! 지원해보는걸 추천드립니다. 개발자라는 직업에 대해 더 많이 생각해볼 수 있는 시간이 되어서 아직 1주차지만 너무 부스트캠프를 참여하길 잘했다고 생각합니다.

이 회고를 보시는 부스트캠프 9기 캠퍼, 운영자님들 정말 고생 많으셨고, 늘 감사합니다.