프로그래밍/생각노트

[코드스테이츠] 프론트엔드 특별 심화반 & 프로젝트 후기

제이콥J 2022. 1. 16. 13:34

코드스테이츠 부트캠프의 커리큘럼이 끝난 후 프론트엔드 특별 심화반 과정을 추가로 수강했다.

 

프로젝트 배포 링크 : https://dazzling-ardinghelli-71d8ff.netlify.app/
프로젝트 Github : https://github.com/jacobways/BasicInvest

 

1. 나만의 시간 관리

해당 코스는 6주 안에 프로젝트, 알고리즘 공부, 개념 공부, 면접 대비 등을 모두 진행해서 시간이 절대적으로 부족했다.

 

코스에서 제공하는 학습 시간표 또한 나와는 잘 맞지 않았다.

나는 오전에는 머리가 잘 돌아가지만, 저녁 이후 시간에는 집중력이 떨어진다.

그러나 학습 시간표에는 집중력을 요구하는 작업이 오후나 저녁 이후에 배정되어 있었다.

 

효과적인 학습을 위해 코드스테이츠에서 제공하는 학습 일정을 따르기보다는 나에게 맞는 스케줄로 재구성했다.

또한 선택과 집중이 필요하다고 생각하여, 프로젝트와 알고리즘 학습에 우선순위를 뒀다.

 

덕분에 시간 안에 프로젝트를 마무리할 수 있었다.

블로깅, 면접 영상 등의 과제 또한 누락 없이 100% 제출했다.

 

재작년부터 이형 유튜브를 보고 시간 관리에 대한 훈련을 해왔는데 이를 활용할 수 있어서 뿌듯했다.

 

2. 문제를 정의하고 질문하는 능력

개발자로서 러닝 커브가 중요한데, 이는 문제를 정의하고 해결하는 과정을 통해서 드러난다고 한다.

처음에는 문제를 발견하고 정의하는 것이 무엇이며 왜 중요한지 몰랐지만, 이번 프로젝트를 통해 그것을 알게 됐다.

 

기존에는 코드스테이츠 부트캠프에서 배웠던 기술 스택을 중심으로 프로젝트를 진행했다.

그러나 이번에는 새로운 기술을 스스로 학습해서 프로젝트에 사용했다.

(React 없이 Vanilla JS를 통한 SPA 구현, Webpack, Firebase)

새로운 기술을 적용하니 처음에는 무엇을 해야 할지 방향성조차도 잡지 못했다.

 

예를 들면 SPA에서 JSX 없이 JavaScript 만으로 웹페이지를 제작하는 방법을 찾기가 쉽지 않았다.

적절한 검색 키워드가 없었고 내가 원하는 내용을 구글링으로 얻을 수 없었다.

 

그래서 막연히 Vanilla JS를 통해 웹페이지를 구현한 강의 또는 코드 샘플들을 찾아보았고, 

그 중 DOM 문법을 통해 페이지를 제작하는 방법을 채택했다.

이벤트를 할당하고 동적인 기능을 구현하기 위해서는 이 방법이 최선이었다.

제작할 기능 정하기 → 방법/코드샘플들 찾은 후 비교 → 목표하는 기능 구현 위해 가장 적합한 방법 채택

"HTML 대신 JS로 페이지를 제작하는 방법"을 찾을 수 없어 그 상위 개념인 "JS로 웹페이지 제작"에 대한 내용을 찾아보았다.

원하는 문제 해결 방법을 찾을 수 없다면 상위 개념의 내용을 찾아보는 것도 방법이 될 것 같다.

여기서 코드 샘플을 많이 얻을 수 있었고 덕분에 "JS로 제작된 페이지에 이벤트 할당하기"라는 구체화된 문제를 정의할 수 있었다.

이후 각 코드 샘플을 비교하며 문제 해결에 적합한 방법을 찾을 수 있었다.

 

또한 "React 없이 Vanilla JS를 통해 라우팅하려면 어떻게 해야 할까?"라는 질문에서,

history 객체를 사용해야 한다는 방향을 얻기까지 시간이 꽤 걸렸다.

배경지식이 없이 새로운 것을 시도할 때에는 코드 샘플을 참고하는 것이 좋은 방법이 될 수 있다고 느꼈다.

 

결론적으로 문제 정의 및 해결 과정에서 사용했던 방법은 다음과 같다.

1. 유튜브 영상
2. 구글링
3. Github 코드 샘플
4. 공식 문서
5. 원하는 정보를 찾기 힘들 땐 상위 개념을 검색 (코드 샘플, 서적)

 

3. 새로운 기술 활용과 시행착오

6주의 커리큘럼 중에서 새로운 기술 스택을 배우고 적용시키는 데에만 3주를 사용했다.

시간 내에 프로젝트를 마치지 못할까 봐 조급했다.

 

현업에서는 고객 납기 등으로 마감일이 중요할 것이고, 새로운 기술을 도입하는 것은 리스크가 클 것이다.

따라서 개발자로서 새로운 기술에 대한 학습은 개인 프로젝트를 통해 충분히 해봐야겠다고 생각했다.

이후 익숙해진 기술들만 실제 업무에 사용하여 납기일에 대한 리스크를 최대한 줄이는 것이 현명할 것 같다.

 

반응형