2023년 회고
2024-01-10

나에게 있어 2023년 한 해는 개발자가 되기 위한 첫 발걸음을 땐 해였다. 기술적인 내용보다는 2023년 한 해동안 내가 했었던 생각들과 현재 생각을 솔직하게 적어보려고 한다.

나는 어렸을 때부터 컴퓨터를 좋아하였고 꿈도 개발자였던 나였기에 전공도 컴퓨터공학을 하였지만 사정이 생겨서 꿈을 접고 다른 일들을 하며, 어쩌면 방황을 하고 있던 내가 다시 개발자의 꿈을 가지고 돌아온 해였다.

개발자가 되기 위해

2023년 초 에는 어떻게 하면 프론트엔드 개발자가 될 수 있을까?라는 고민을 많이 하였고 독학하면서 정보를 많이 탐색하였다.

독학으로도 할 수 있다, 컴퓨터공학 전공을 해야 한다, 부트캠프를 들어가야 한다. 정말 많은 의견들을 들었었고 현재 내 상황에 어떤 것이 잘 맞을까 고민 끝에 부트캠프가 맞을 것 같다는 생각이 들었다.

그 당시에 내 상황을 보았을 때, 복학을 하여 다시 전공공부를 하기엔 시간적으로도 경제적으로도 어려웠고, 독학을 하기에는 시간이 오래 걸릴 거 같았고 주변에 개발자나 정보를 얻거나 모르는 것이 있을 때 물어볼 사람도 없었기에 부트캠프는 짧은 기간이지만 밀도 있는 성장을 할 수 있다고 생각을 하여서 부트캠프를 준비하게 되었다.

이때 정말 부트캠프가 종류도 많았고 알고리즘 때문인지 부트캠프 광고가 정말 많았다. 어떤 곳이든 본인이 열심히 하면 된다라고 하는 사람들도 있겠지만 나는 학습하는 환경과 주변사람들의 영향이 크다고 생각한다.

그래서 나만의 부트캠프 선정방법을 세웠고 그곳에 들어가는 것을 1차적인 목표로 학습을 시작했다.

내가 선택한 부트캠프는 프로그래머스 데브코스라는 곳이었다. 이 부트캠프를 선택한 이유에는 코딩테스트와 개발 관련 강의와 개발자 채용 등 개발자를 위한 플랫폼이라는 확신이 들었고 교육과정의 커리큘럼이 마음에 들었다. 정말 현업에서 필요한 기술들을 배울 수 있었고 단순히 각자 알아서 강의 듣고 학습하는 게 아닌 팀 단위로 같이 학습하고 같이 과제하고, 코드리뷰 해주고, 과정 후반부에는 프로젝트도 하며 협업도 할 수 있었다. (과장된 광고가 없었다)

교육과정에 들어가기 위해

데브코스는 경쟁률도 꽤 있고, 들어가기 위한 과정이 있었다.

1차 서류(자기소개서와 지금까지 개발했던 것) + 2차 코딩테스트 + 최종 화상면접을 통해서 교육생들을 선발하였다. 어느 정도 허들이 있었기에 동기들을 보면 다들 열심히 했고 능력도 있어서 배울 점이 많았다.

자기소개서에는 데브코스 지원동기와 개발자가 되고 싶은 이유, 개발자가 되기 위해 어떤 노력을 했는지를 솔직하게 작성했고 의지를 보여주기 위해 작성하였다.

그 후에는 코딩테스트를 준비했었고 약 한 달 동안은 알고리즘 공부만 했었다. 유튜브나 강의로 알고리즘 이론을 찾아보면서 학습했고 프로그래머스나 백준에서 문제를 많이 풀었다. 특정 알고리즘 같은 경우는 잘 이해가 안 가서 자바스크립트로 알고리즘을 구현한 코드를 통째로 외우기도 했다. 외우다 보니 이해가 되는 부분도 있었고 다행히 코딩테스트에서도 내가 외운 알고리즘을 활용해서 모든 문제를 solve 할 수 있었다.

면접 때는 정말 많이 떨렸다. 인생에서 이렇게 많이 떨렸던 적이 있었을까. 정말 하고 싶은 마음이 컸기에 더 떨렸었던 것 같다. 지금 생각해 보면 면접질문도 정말 기초 질문이었고 답변하기 쉬운 질문들이었지만 제대로 대답하지 못했다. 그래도 어떻게든 내가 알고 있는 만큼이라도 대답을 했었고 아마도 면접을 위해서 확인해보고자 하는 것은 얼마나 아는가 보다는 얼마나 개발자가 되고 싶고 의지가 있는지를 더 보셨던 것 같다.

교육과정은 6개월 동안 진행되었다. 그중 3개월은 cs, 알고리즘, Javascript, Vue, React, Typescript를 이론과 과제위주로 진행되었고 남은 3개월 중 1개월은 프런트엔드끼리 팀 프로젝트, 남은 2개월은 백엔드와 협업하는 팀 프로젝트였다.

첫 동료들

데브코스 첫 팀이 정해지고 교육이 진행되었을 때 약 한 달 동안은 매일 긴장된 상태였던 것 같다. 다들 나보다 훨씬 잘하는 거 같고 내가 여기 있어도 될까 하는 마음도 있었다. 그래도 어느 정도 적응이 되고 나서는 강의도 열심히 듣고 과제도 열심히 하고 코드리뷰도 열심히 했었다. 데브코스에서 정해준 팀뿐만 아니라 스터디도 들어갔다. 스터디는 사실 무엇을 배우겠다는 마음보다는 다른 사람들도 만나보고 싶다는 마음이 더 컸었던 것 같다. 스터디에서는 개인프로젝트를 공유하고 질문도하고 의견제시도 했었고 한 가지 주제를 정해서 발표도 했었다. 약 한 달 동안 했었는데 재밌었고 좋은 사람들을 만나서 끝날 때는 참 아쉬웠다.

데브코스 과정에서는 팀이 바뀔 때마다 팀원에 대해 피어리뷰를 진행한다. 그래서 다른 사람이 보는 나에 대해 알아볼 수 있었고 나에 대해 객관적으로 생각해 볼 기회였다. 첫 번째 팀원들과 멘토님께 받은 피드백 중 나의 장점 혹은 강점으로는 자기 주도적 학습에 적극적이다, 시간 개념이 철저하다, 끈기 있게 문제를 해결한다, 피드백을 빠르게 수용한다, 배려심이 깊다. 그리고 단점 혹은 약점으로는 소통에 적극적, 주도적이기보다는 잘 따라간다, 목표가 낮다, 교육과정에 무난하게 잘 따라오고 있지만 나만의 특별한 점이 없다 등이 있었다.

첫 번째 팀 프로젝트

두 번째 팀에서는 프론트엔드끼리 협업해서 팀 프로젝트를 기획부터 배포까지 하였다.

이때 React와 Typescript는 물론 GitHub도 잘 몰랐고 자신감이 많이 떨어져 있었다. 그래서 대부분 팀원들이 하자는 대로 했었다. 그래도 기능구현에는 욕심이 있었기에 해보고 싶었던 인증/인가 관련 기능 및 페이지를 하고 싶다고 했고 사실하고 싶다고 했지만 잘할 수 있을까 하는 걱정이 컸고 다행히 열심히 해서 생각보다 빠른 시간 내에 구현을 했고 기획했던 기능 중에 아직 인원이 할당되지 않은 알림 기능도 구현하게 되었다.

두 번째 팀원들과 멘토님께 받은 피드백 중 나의 장점 혹은 강점으로는 성실하다, 요구를 잘 들어준다, 집중을 잘한다, 책임감있게 맡은일을 수행한다 등이 있었고 단점 혹은 약점으로는 다른 사람에게 맞추어주는 덕에 의견 충돌이 적지만 의견을 더 적극적으로 해주면 더 프로젝트에 기여할 수 있을 것 같다. 상황을 공유해 주면 좋을 것 같다. 등 주로 소통을 소극적으로 하는 게 문제였다.

나는 여기서 문뜩 책임감 이라는 게 뭘까 라는 생각이 들었다. 책임감의 사전적인 정의는 이렇다.

맡아서 해야 할 임무나 의무를 중히 여기는 마음.

지난 동료들에게 들었던 피드백중에 나의 장점 중에는 ‘시간 개념이 철저하다’, ‘책임감 있게 맡은 일을 수행한다.‘가 있었다.
사실 주변에서도 그렇고 책임감이 있다는 말을 종종 듣고는 했고 나 스스로도 책임감이 강하다고 생각했다. 내가 맡은 일, 해야 할 일은 묵묵히 잘 수행했기 때문이다.
그런데 이런 것들이 정말 책임감이 있는 것일까? 이런 것들은 책임감보다는 조직 구성원으로서 당연하게 지켜야 하는 약속에 가깝지 않나 생각한다.

그렇다면 책임감이란 뭘까? 책임감이라는 것은 정의하기가 힘들다. 그렇다면 반대로 책임감 없는 행동이란 뭘까?내 생각은 이렇다.

  • 이유나 목적을 이해하지 못하고 해야 하니까 한다.
  • 시키는 것만 하고 주도적으로 하지 않는다.
  • 나의 생각이나 의견을 밝히지 않는다.

사실 위의 예시는 좋게 말하면 책임감 있다고 생각이 들 수도 있다 위의 예시를 좋게 말해보면 이렇다.

  • 내가 맡은 일을 잘 수행한다.

수동적으로 맡은 일을 잘 수행할 뿐만 아니라 능동적으로 나의 생각과 의견을 제시하는 게 진짜 책임감이 아닐까 생각이 든다. 그리고 책임감을 갖게 되는 첫걸음은 주인의식을 갖는 것일 것이다.

두 번째 팀에서 완성했던 프로젝트는 내 첫 팀프로젝트였다. 이 프로젝트는 사실 만족하기보다 아쉬움이 많이 남아있다. 팀원들에게 받은 피드백도 그렇고 스스로가 느끼기에도 팀원들과 소통도 활발히 하지 않았다. 개발자는 커뮤니케이션 능력도 중요하다는 말을 많이 듣기만 했지 개발 잘하는 게 더 중요하지 않나?라는 생각만 했었는데 정말 소통의 중요성을 깨닫게 되었고

내가 적극적으로 참여하지 않으면 내가 원하는 결과는 결코 낼 수 없다는 사실을 간직한 채 다음 프로젝트는 적극적으로 참여하겠노라고 다짐했다.

최종 프로젝트

마지막 팀은 백엔드와 같이 팀 프로젝트를 하게 된다. 나를 포함하여 FE 4명, BE 4명이 협업하게 되었다. 어쩌다 보니 프런트엔드 팀장역할도 맡게 되었다, 마지막 팀도 마찬가지로 멘토님에게 약간의 조언은 들을 수 있지만 외부의 개입 없이 온전히 우리 팀에서 기획부터 디자인과 기능구현까지 다 진행하였다. 프로젝트 아이디어, 팀 문화, 스프린트 일정과 스크럼 방식, 소통 방식 등 팀원들끼리 의논해서 정했다. 나는 백엔드에 대해 잘 몰라서 걱정을 많이 했었는데 생각보다 프로젝트가 수월하게 잘 진행되었다.

팀원들과의 소통도 원활했고 문서화도 꼼꼼히 한 덕이 큰 것 같다. 이번에는 나름 적극적으로 프로젝트에 기여를 했어서였을까 나 스스로도 어느 정도 만족하는 프로젝트를 완성할 수 있었고 몇 년 전 대학교 1학년 시절에 한번 해보고 못해봤던 최종 프로젝트 발표도 100명의 수강생 앞에서 할 수 있었다.

잘했다고 생각하는 점은 당연한 일이지만 담당한 업무를 정해진 시간 내로 잘 끝낸 점, 팀원들의 이야기를 잘 들어준 점이다. 그리고 팀 프로젝트를 하면서 백엔드분과 잘 소통이 안되었을 때가 있었는데 그것을 해결한 부분도 있다. 상대방에 대한 이해가 필요했고 (어떤 사람인지) , 그러다 알게 된 게 본인이 할 말을 다 준비해 와서 끝까지 해야 하는 성격인 것을 파악했고. 그걸 다 들어주고 내가 이해가 가지 않는 부분이나 상대방이 잘못 이해한 부분에 대해 싱크를 맞춰본 것이다.

배운 점에는 여러 기술적인 도전과 배움이 있었지만 역시 소통의 중요성을 많이 느꼈고 스스로도 향상되었다고 느낀다.

수료

6개월간의 과정을 통해서 프론트엔드 개발자가 되기 위한 학습을 할 수 있었고 협업경험도 할 수 있었다. 그리고 앞으로 좋은 개발자가 되기 위한, 개발자가 되고 나서의 방향성과 어떤 개발자가 될 것인가,

나라는 사람에 대한 생각과 특히 내가 어떤 것을 할 때 재미를 느끼고 몰입하는지 알게 되었다. 주로 사용자의 입장에서 생각해 볼 때였다.

그리고 무엇보다 좋은 동료들을 만날 수 있었고 배울 점이 많은 멘토님들을 만날 수 있었다.

paper flower

특히 준일멘토님 한테는 정말 많이 얻어먹었다.ㅎㅎ

현재

과정이 끝나고 현재는 데브코스에서 만난 동료들과 면접스터디도 하고 취업정보도 공유하면서 같이 학습을 이어나가고 있는데

요즘에는 올바른 정보를 선별하는 능력도 중요하다고 느낀다. 최근에 모의면접을 하면서 질문으로 ‘당신이 chatGPT 보다 나은 점이 뭔가요?‘라는 질문을 받았고 이런 질문을 실제 면접에서도 한다는 이야기를 들었는데 이 질문에 대한 나의 생각은 이러하다.

나도 가끔 chatGPT에게 ‘이러이러한 기능을 하는 함수의 변수명을 지어줘’등의 질문을 할 때가 있고 어떤 특정 기술에 대한 질문을 물어볼 때가 있지만 정확하지 않은 정보를 알려줄 때가 훨씬 많았다. 아마 chatGPT의 답변을 확인하는 과정 없이 그대로 믿었다면 오랜 시간 동안 잘못된 정보를 알고 있었을 것이다. 이것은 chatGPT에만 국한된 것은 아니라고 생각한다. 개발 관련 블로그나 책에서도 잘못된 정보들을 보았다.

요즘에는 자바스크립트가 재미있어서 여러 책이나 블로그에서 개념을 학습하면서 같은 개념을 블로그끼리 다르게 설명한다던가 책에 잘못된 정보가 적혀있는 경우가 종종 있다. 이런 것들도 아마 하나의 책이나 하나의 아티클만 보고 그대로 믿었다면 잘못된 정보를 가지고 있었을 것이다.

2024년 목표

  • 하루에 조금이라도 운동하기
  • 오픈소스 컨트리뷰트 하기
  • 기본기 공부, 블로그/노션에 기록 꾸준히 하기
  • Next, 테스트 학습하기