안녕하세요.
프로그래머스 데브코스 프론트엔드 과정을 한달간 거치며 느낀 회고 입니다.
자바스크립트 주요 문법을 배웠습니다. 사전 지식이 있다는 전제 하에 가르쳤고, 그런 실력을 갖춘 사람들을 모았기 때문에 변수 선언, 호이스팅, 메모리, 스코프와 클로저, 이벤트 루프 같은 자바스크립트의 핵심적인 문법만 다루는 것이 좋았습니다.
웹 개발에 필요한 브라우저 작동 원리, 웹 스토리지 같은 브라우저 관련 지식과 네트워크를 배웠고, 함수형이나 객체 지향 같은 프로그래밍 관련 지식도 습득했습니다. 컴퓨터 과학 부분을 들으면서 많이 약하다고 생각을 했고, 특히 네트워크 부분을 추후에 보완해야 겠다고 생각했습니다.
주요 문법을 통해 시간복잡도와, 자료구조, 알고리즘을 배웠습니다. 자료구조는 트리의 순회와 트라이 자동완성 기능을 직접 구현해보는 시간을 가졌고, 코딩 테스트 또한 함께 풀었습니다. 자료구조를 직접 구현해 보는 것이 생소하고 어려웠지만, 구현하면서 원리를 더 쉽게 이해할 수 있게 되었습니다. 그러나 여전히 문제에 적용은 못하고 문제 해결에 오래 걸리기 때문에 꾸준히 공부해야 겠다고 생각했습니다.
자바스크립트를 이용해서 DOM을 생성하고, 제어하며 간단한 토글 버튼, 투두 리스트를 만들어보았습니다. 로컬 스토리지를 이용해 상태를 관리하고, 비동기를 배우며 fetch API를 통해 서버와 통신했습니다. history API를 이용해 SPA 구조를 만들었고, 심화된 투두리스트와 자동 저장 편집기를 만들었습니다.
순수 자바스크립트로 상태를 관리하고 컴포넌트를 생성하는 과정이 생소하고 어려웠으나, 공부하며 추후에 다룰 프론트엔드 라이브러리나 프레임워크에서 작동 방법을 더 잘 이해할 수 있을 것 같다는 느낌을 받았습니다.
현재 진행하고 있는 프로젝트 입니다. 배운 모든 것을 적용하여 SPA 구조의 노션 기능을 클론 코딩하고 있습니다. 컴포넌트의 구조 설계부터 상태 관리를 어떻게 할 것인지 본인이 스스로 설계하고 코드를 짜야 하기 때문에 챌린징이 되면서도 이게 맞는 것인가에 대한 의문이 계속 들고 있습니다. 이 프로젝트에 대한 후기는 아마 다음 달 회고에 올라갈 것 같습니다. ㅎㅎ 이 글이 발행된 날은 Day 25 입니다.
TIL에 욕심을 많이 갖지 말자고 다짐하고 시작한 점이 도움이 많이 되었습니다. 초반에는 자세히는 모르지만 어느 정도 아는 개념이었기 때문에 남는 시간에는 한두개씩 선택하여 공부를 했고, 정리하고 싶으면 블로깅을 하는 편이었습니다.
그러나 Day 4 쯤부터 생소한 컴퓨터 과학, 네트워크, 자료구조/알고리즘이 나오며 공부량이 많아지기 시작했습니다. 한 가지를 집중하여 파는 것은 후에 주말이나 시간 날떄 하는 것을 목표로 하고, 강의를 제공해준 정도라도 이해하고 넘어가는 방식으로 하고 있습니다. 그래도 강의에서 강사님이 과제로 내주시는 부분들은 꼭 찾아보거나 구현을 하고 넘어가려고 했습니다.
라이브 코딩 방식으로 강의를 해주시는 강사님도 계셨습니다. 코드를 따라 치면서 강의를 들으면 오히려 집중력이 꺼지고 설명은 듣지 않은 채 기계적으로 따라치는 저의 모습을 알기 때문에 초반 라이브 코딩들은 강의를 보기만 했습니다.
그러나 강사님이 초반 설계를 하고, 살을 붙여나가며 개선하고, 리팩토링하는 과정을 보면서 노션 클로닝 프로젝트 기간을 대비하여 이 과정을 한번 따라하며 겪어보는 것이 좋겠다고 판단하여 자동 저장 편집기 라이브 코딩은 따라치며 공부했습니다. 흐름 파악이 어렵기도 했지만 코드를 보며 따라가려고 최대한 노력했습니다.
코어 시간은 13시 ~ 19시이고 팀원은 4~5명으로 구성되어 있습니다. 각 팀마다 멘토님도 계셔서 주 1회 멘토님과 커피챗을 하는 시간을 갖고 있습니다.
모두 같은 목표를 갖고 경쟁하여 들어왔기 때문에 모두가 잘 참여를 하고 있습니다. 오히려 제가 분위기를 방해하지 않을지 걱정하고, 피해를 끼치지 않기 위해 최대한 성실하게 참여하는 중입니다. 딥다이브 스터디도 만들어 함께 공부하며 처음으로 20장을 넘겨보았습니다.(ㅋㅋ) 모각코고 진행하며 좋은 추억과 더불어 함께 성장하고 있습니다.
멘토님와 커피챗을 할 때는 기대한 이상으로 많은 것을 알려주시려고 하셨습니다. 커리어나 공부 방법, 취업 등에 대한 멘토링은 물론이고, 추가 공부를 했을 때 모르는 부분이나, 졸업 프로젝트 등 개발 관련 지식들도 함께 고민해주시고, 자료도 직접 만들어와 강의도 해주셨습니다.
과제를 제출하면 코드 리뷰를 갖는 시간도 있는데 이전에는 하나하나 뜯어보지 않고 넘어갔다면, 이번에는 팀원들 코드를 보면서 질문도 하고, 동작에 대한 이해도 하면서 코드에 대한 이해력이 더 높아진 것 같습니다. 팀원분들이 리뷰를 꼼꼼하게 달아주셔서 저 또한 하나라도 더 제가 아는 것을 공유할 수 있도록 노력하고 있습니다. 멘토님도 꼼꼼하게 봐주시고 많은 것을 알려주시려 하기 때문에 많은 도움이 되고 있습니다.
프로젝트 기간에는 오전 시간으로 바뀌어 생체 리듬이 망가져서 힘들었는데 팀원들과 매일 캠을 켜고 얼굴 보면서 격려도 되고 그 덕에 하루하루를 보낼 수 있는 것 같습니다. 혼자 했다면 조금 더 자거나, 나태해졌을 것 같은데 팀원들 덕분이 큰 것 같습니다.ㅎㅎ
벌써 지치면 안되기 때문에 나 하나만 잘하면 된다! 하는 마음으로 스스로를 잘 살피며 공부하고 있습니다. 피곤한 날에는 쉬고, 주말에도 힘들면 굳이 추가 공부를 하지 않으려고 합니다. 처음에는 이래도 되나? 싶었지만 멘토님이 완급 조절을 잘 해야한다고 쉴 때는 쉬어야 한다고 조언해주셔서 심적 부담을 더는 데 도움이 많이 되었습니다. 또한 운동도 중요하기 때문에 되도록 빼먹지 않으려 노력합니다.ㅎㅎ 단 일주일 내내 영향을 미칠 수 있는 하드한 주말 약속은 당분간은 자제해야할 것 같습니다.
이 첫 마음가짐이 최종 프로젝트까지 가길 모두를 응원하면서 이번 회고를 마치겠습니다. :D