본문 바로가기
일상

메인 프로젝트 전, 자가점검 : 나는 내가 원하는 기능이 무엇인지 모른다.

by whale in milktea 2023. 4. 29.

출처 : Unsplash

올바르지 않은 생각일 수도 있지만,

나는 필요를 채우는 개발자가 되고 싶지만, 당장 내가 원하는 기능이 무엇인지 / 필요한 기능이 무엇인지에 대해 잘 모른다.

 

점검내용

메인 프로젝트를 앞두고, 스스로의 상태를 점검해봤다.

1. React와 프론트엔드 개발 기술에 있어,
구글링/공식문서/블로그와 Chat GPT 검색을 통해 배우면서 원하는 기능을 구현할 수 있는가? ⇨ Yes
2. 기존에는 알지 못했던 라이브러리(Vue.js, jest 등)를 배워야 한다면 두려움보다는 배우고 활용하고 싶은 욕구가 드는가? ⇨ Yes
3. 코드를 위한 기본적인 툴(VS Code + 확장프로그램)만을 갖고 내가 원하는 기능을 완전히 구현할 수 있는가? ⇨ No
4. 알고리즘 & 코딩테스트에 충분히 대비하고 있는가? ⇨ No
5. 내가 생각할 때, 현재 구현되고 있는 프로젝트에 필요한 기술과 구현하고 싶은 기능이 무엇인지 정의할 수 있는가? ⇨ No
6. 현재 내가 사용하고 있는 기술에 대해 기술면접에서 대답할 수 있는 만큼 준비되어 있는가? ⇨ No
7. 현업에서 내가 어떤 역할을 할 수 있을지 이야기할 수 있는가? ⇨ No

사실 1번과 2번을 채워나가기 위해 4개월의 학습과 1개월의 프리 프로젝트 기간 동안 밤낮없이 달려왔다고 생각한다.

기존의 입시공부/학부공부/공무원 공부와는 다른 학습 성과에 대한 요구사항으로 인해 학습패턴 및 생활패턴을 대대적으로 점검해야 했고, 이에 따라 단순화하여 제거해야 할 불필요한 요소와 기존에는 0에 가까웠던 능력을 끌어올리고자 했다.

 

* 끌어올려야 했던 내용은 다음과 같다.

1. 오류에 익숙해지고, 코드와 로직을 점검하는데 익숙해진다.
기존의 학습은 오류를 인정하지 않지만, 개발에서는 아무리 짧은 코드라도 로직에 어긋나거나 문법에 어긋나면 어김없이 오류를 던진다. 이에 절망하지 않고 차근차근 점검하고 해결하는데 익숙해져야 했다.

2. 너무나 당연하게도 자바스크립트 / 리액트의 기본 개념 및 단위 활용에 익숙해진다.
처음 접하는 분야이다. 따라서 아주 0의 상태에서부터 조급해하지 않고 차근차근, 그러나 낭비없이 배워야 했다.
이 중심을 지키기 위해 불필요한 생각/생활패턴/학습패턴을 크게 변경해야 했다.

3. 이해->암기->복습->출력->복습 🙅 / 학습->출력->점검->재학습 🙆
언뜻 비슷해보이지만, "암기"라는 과정을 굉장히 긴 호흡으로 가져가는 기존 학습 방법과 출력/복습을 분명한 정답을 갖고가는 기존 학습방법과 달리, 개발 공부는 아주 짧은 호흡으로 학습과 결과물, 오류와 여러 블로그/강의/공식문서/Chat GPT 등을 활용하여 재학습하고 정리하는 과정이 반복되었다. 이에 익숙해지는건 정말 쉽지 않았다.

* 성과

그럼 이를 통해 얻은건 무엇일까? 딱 한 가지를 얻었다고 생각한다. ⇨ 4개월 전에는 상상하기 힘들 만큼, 개발자 다워졌다고 생각한다.

아직 갈 길은 멀고 앞서나가는 개발자 선배님들과 동료들을 보면 큰 벽처럼 느껴지지만, 적어도 국비학원인가 부트캠프인가? / 어떤 언어를 배워야 취업이 잘될까? / 뭐부터 외우고 어떻게 코드를 쳐야할까? 라는 질문을 할 때보다는 훨씬 개발자에 가까운 질문을 갖고 접근하고 있다.

 

출처 : Unsplash

EveryThing is Pressing Issue, But What is Priority

현재 놓여져 있는 No 포인트들은 하나같이 해결하려면 상당히 긴 호흡과 많은 개선이 필요한 영역이다.

하지만 "취업"을 하고, 개발자로서의 "커리어"라는 출발점에 안착하기 위해서는 2가지의 No 포인트를 우선순위로 둬야 한다고 생각했다.

 

1. 현재는 부트캠프 Main 프로젝트를 앞두고 있다. 아마, 기획부터 빌드 및 배포까지 경험할 수 있는 정말 얼마 없는 기회가 될 것이다.

⇨ "내가 원하는 기능을 밑바닥부터 배포까지 진행할 수 있는 얼마없는 기회"라는 말과 동등하게 여겨졌다.

⇨ 나는 어떤 기능을 원하고 우리의 프로젝트에는 어떤 기능이 필요할까?

⇨ 핵심 No 포인트 : 오래 시간을 투자할 고민은 아니겠으나, 짚고 넘어가지 않으면 안되는 지점이다.

WHY? 스스로 교육/금융 회사에 취업하길 원하고 있으나, 막상 그 웹을 사용해본 경험은 얼마 없다. (해봤자 인강 및 커뮤니티 웹.)

 

2. 1-2달, 길게봐야 3달 뒤면 현업에서 "월급을 받으면서" , "1인분"을 해야한다.

⇨ 낭설로는 신입 개발자는 협업에 가서 복붙밖에 안한다고 하지만, 이는 실제든 아니든 본질이 아니다.

⇨ 신입 개발자가 협업에서 긁어오기/붙여넣기/반복을 불필요하게 많이 하지 않고 이를 스스로 작성하고 활용할 수 있으려면 3번 No 포인트. 기본 툴을 갖고 스스로 내용을 채워넣을 수 있는 역량과 이를 확장할 수 있는 역량이 필요하다고 생각한다.

⇨ 이는 아무리 단순한 코드일지라도 스스로 고민하고, 스스로 설계하고, 스스로 분석해보는 경험에서 나오며 하루이틀에 되는 것이 아닌 매 순간, 의식하면서 역량화시켜야 할 부분이라는 생각이 들었다.

 

HOW, 1) 이를 연습할 수 있는 가장 강력한 방법은 "의사코드"라고 생각한다. 의사코드로 먼저 로직과 코드의 이유를 작성해보고 코드 작업에 들어가면, 이 코드와 로직/매커니즘에 대한 이해를 깊이할 수 있다.

 HOW, 2) 공식문서, 공식문서, 또 공식문서 공식문서의 내용은 지금의 나에게 매우 어렵고 무겁게 다가온다. 하지만, 공식문서는 그 말에서도 알 수 있듯 해당 기능에 대해 모르는 개발자들이 그 기능을 이해할 수 있도록 설명한 문서이다. 결국 공식문서를 읽고 이를 이해할 수 있어야 된다.

블로그/Chat GPT는 편리하고 쉽다. 하지만 "개발자스러운가?"는 아직 대답하기 어렵다. 하지만, 블로그와 GPT는 보면서 공식문서를 이해하지 못한다면 당장 내가 생각하기에는 그렇지 않은 것 같다.