내 개발 인생의 큰 전환점이 되었던 2020년이 끝나고 2021년도 어느덧 절반 가까이 흘러가고 있다.

2020년이 새로운 도전의 시기였다면 2021년은 도전을 통해 넓은 세상을 만나고 이를 통해 나의 길을 찾아가고 있는 시기였다고 생각한다.

미약하지만 느낀점을 적어보고자 한다.

그저 행복했던 부스트캠프 😍

2021년을 이야기 하는데 부스트캠프는 빠질 수 없을 것이다. 나에게 많은 것을 경험시켜준, 깨닫게 해준 소중한 시간이었기 때문에.

부스트캠프가 막 끝났을 때는 정말 많은 것을 배웠다는 것, 좋은 사람을 만날 수 있었다는 것에 감사했다. 실제로 실력도 많이 상승했고 그럴싸한 결과물도 만들어 냈었기 때문에 자신감으로 가득차 있던 시기였다. 웹개발을 시작한지 5개월 만에 대기업의 문턱을 밟아봤다는 것만으로도 충분히 행복했다. (최종에서 떨어지긴 했지만)

지금 이 시점에서 돌아보면 조금 귀엽(?)기도 하고 후회되기도 한다.

객관적으로 바라보기 👀

부스트캠프가 끝난 후 연계 기업 중 대기업에만 지원서를 넣었고 그 중 하나의 기업에서 최종 면접까지 볼 수 있는 기회를 얻었다.

1차 면접은 무난하게 통과를 했다. 프로젝트와 JS 위주의 질문이 나왔고 JS와 프로젝트에 대한 이해는 나름 충분히 갖추고 있었기에 대부분의 질문에 막힘 없이 대답할 수 있었다.

문제는 2차 면접이었다. 1차 면접에 대한 결과가 전혀 전달되지 않았나 싶을 정도로 중복 질문도 많았으나 그 사이사이에 내 허를 찌르는 질문이 많이 들어왔다. (그 당시에는 몰랐다)

기억에 남는 질문을 몇 개 뽑아보면 다음과 같다.

1. 진혁님은 비즈니스 로직보다는 View쪽에 좀 더 관심이 많으신 것 같네요?

1번 질문에 대해 여러가지 생각이 들었다. 나는 개발자이지 UX 디자이너가 아니다. 그 당시 자기소개나 포트폴리오를 보면 UX에 대한 것을 굉장히 강조하고 있었다. 프론트엔드 개발자가 UI, UX에 관심이 있는 것이 나쁜 건 절대 아니지만, 아니 오히려 바람직하지만 개발자의 본분을 잊어선 안 된다는 생각이 들었다. 부스트캠프 파이널 프로젝트에서는 UX에 굉장히 신경을 많이 썼다. 포트폴리오만 봐도 사용자의 몰입도를 높이기 위해 디자인을 이렇게 했고 애니메이션을 이런 식으로 적용했다는 느낌의 글을 많이 적었던 기억이 있다. 지금와서 되돌아보면 현업을 가게 되면 대부분의 경우에 UX 디자이너가 담당하게 될 일이고 내가 담당할 일은 따로 있을텐데 주객이 전도됐다는 생각이 강하게 들었다.

지금은 약간 관점을 달리하여 UX에 대한 관심을 이어가는 중이다. 예를 들어 애니메이션을 적용했다면 사용자가 편안함을 느낄 수 있는 60프레임을 유지 시킨다던지, 최적화나 Lazy loading을 통해 사용자가 기다리는 시간을 줄이는 것 등 개발자만이 할 수 있는 UX 개선에 초점을 맞춰 공부를 하고 있다.

2. 자바스크립트로 프로젝트를 진행하셨는데 불편한 점은 없으셨나요?

2번 질문에 대한 그 당시 나는 다음과 같이 답변했다.

네 없었습니다. Vanilla JS로도 제가 원하는 것들을 충분히 구현했고 프로젝트 초기에 제작한 게임 엔진등을 통해 생산성도 크게 떨어지지 않았기 때문입니다.

그 당시엔 진짜로 저렇게 생각했다. 하지만 캠프가 끝난 후 내가 주도적으로 프로젝트를 진행해보면서 생각이 싹 바뀌었다. 동시에 내가 파이널 프로젝트를 주도적으로 진행하지 않았다는 것을 깨달았다. 좀 더 쉽게 말하면 그 당시의 나는 팔로워였다.
함께 프로젝트를 진행했던 팀원 분들이 정말 잘하셨다. 어떤 기술을 적용시키면 왜 적용시키셨는지, 리팩토링을 하시면 왜 그렇게 리팩토링을 하셨는지 항상 납득이 갈만한 이유와 함께 설명을 해주셨고 나는 그것을 그대로 수용했다. 그 덕에 프로젝트에 대한 이해는 충분했으나 내 스스로 고민해보는 시간을 갖지 못했다.
당장 내가 한 답변을 봤을 때 게임 엔진을 만들어서 생산성이 떨어지지 않는다고 답했는데 컴포넌트 기반의 프레임워크인 리액트를 사용했다면 게임 엔진을 개발하는데 걸리는 시간을 절약하여 생산성을 더 높일 수 있었을 것이다. 면접때 내가 한 답변은 불편함이 분명 존재했지만 이를 느낄만큼 깊게 고민을 해보지 않았다는 증거이다.

개발자에게 정해진 기간을 지켜 배포하는 것을 매우 중요한 일이다. 하지만 학생, 취준생에게는 그정도로 중요하다고 생각하지 않는다. 충분히 고민하고 학습하고, 고민을 해결하기 위해 여러 시도를 해보는 시간을 갖는 것이 매우 중요하며 실제로 이러한 과정을 통해 정말 많은 것을 배운다는 것을 알 수 있었다.

3. inline style과 비교했을 때 styled-component의 어떤 점이 좋나요?

3번 질문은 처음 들었을 때 정말 당황했다. 단 한 번도 생각해본 적이 없는 내용이었다. 당연히 styled-component가 좋다고 생각했고 CSS-in-JS가 대세라고 했기에 사용했다. 물론 대충 알고는 있었다. 하지만 자세히 생각해본 적이, 고민해본 적이 없었다. 알고 있다고 생각했지만 사실은 정확히는 몰랐던 것이다.

그 이후엔 당연한 것에도 한 번씩 질문을 던져보곤 한다. 질문을 던지다 보면 생각보다 대충 알고 있는 것들이 많다. 대충 알고 있는 것까지는 괜찮다. 하지만 알고 있다는 착각에 빠지지 않기 위해 조심하자.

더 성장하기 🏃‍♂️

폭풍같은 지원 시즌이 끝나니 개발이 너무 하고 싶어졌다. 함께 3주 프로젝트를 진행했던 분들께 말씀드렸더니 다행히 반응이 긍정적이어서 함께 사이드 프로젝트를 하기로 결정했고 Hanpyo 프로젝트를 시작했다.

해당 프로젝트는 아직까지도 완성을 시키지 못했지만 매번 지원서에 작성했을 만큼 배운 점이 많은 프로젝트이다. 따라가는 것이 아닌 내가 주도적으로 프로젝트를 진행했다는 것이 가장 컸다. 여러 문제에 대해 충분히 고민, 학습, 삽질하는 과정을 통해 정말 많은 것을 배울 수 있었다. 결과가 미약하더라도 과정을 통해 얻는 것이 크다는 것을 느낄 수 있었다. 노력은 배신하지 않는 다는 말이 이런 느낌이겠지?

몇 번을 강조해도 부족하지 않은 것은 동료의 중요성이다. 함께 프론트엔드를 담당해주신 우진님과의 토의를 통해 정말 많이 배울 수 있었다. 3주 프로젝트부터 우리 팀은 쓸데없는 걸로 정말 많은 대화를 했다. Camel Case와 Pascal Case중 어떤 것을 사용할 것인지로 2시간 넘게 대화를 하던 팀이니 말 다했다. 이러한 습성(?)이 이번 프로젝트까지 이어져 사소한 것 하나를 적용할 때도 우진님과 많은 대화를 나눴다. 이런 컴포넌트를 만들었는데 Type이 여기저기 흩어져 있어 직관적이지 않다, 변수 명이 직관적이지 않은데 어떤 식으로 수정하면 좋을 것인가, 코드가 깔끔하지 않은데 어떤 식으로 가독성을 향상시킬 수 있을 것인가 등등 이야기 하고 싶은 것이 있으면 주저 하지 않고 여러 방법을 통해 소통했다. (PR, 통화, zoom, 카톡 등 그냥 손에 잡히는대로…)

실력도 좋으신데 이런 문제들에 대해 함께 열심히 고민해주신 덕에 정말 많이 배울 수 있었다. 솔직한 심정으로 우진님이 안 계셨다면 나에게 그저 그런 프로젝트로 남지 않았을까 싶다. 좋은 동료는 역시 실력 향상의 지름길이다.

앞으로의 방향성 😊

사실 그 동안은 Hanpyo가 있었기에 취업에 조급해하지 않고 즐겁게 개발을 할 수 있었다. 하지만 Hanpyo의 멤버들이 모두 취업을 해버려서(?) 나도 더 개발을 하기 위해선 개발할 곳을 찾아나서야 할 시기가 왔다. 다행히 좋은 기회를 얻어 두 달간 채용전환형 인턴 생활을 할 수 있게 되었다. 당장은 개발 걱정은 접어도 될 것 같다. 늘 그래왔듯 즐겁게, 더 성장하기 위해 열심히 개발에 임할 생각이다. 특히 다른 사람과의 비교가 아닌 어제의 나와의 비교를 통해 조급해하지 않고 꾸준히 성장하는 것을 목표로 하고 있다.

요약 & 강조 📖

  1. 개발자다운 마인드 갖추기
  2. 주도적인 개발 해보기, 결과에 집착하지 말고 과정을 통해 많이 배우기
  3. 알고 있다고 착각하지 않기
  4. 좋은 동료는 정말 중요함!
  5. 남과 비교하지 말기. 어제의 나보다 성장하기.