길다면 길고 짧다면 짧은 코드 스테이츠의 프리코스 10주 과정이 벌써 마지막 10주 차에 접어들었다.
이전에 블로깅을 했을 때 배운 것도 한 번씩 정리하고 내 생각도 쓰겠다고 다짐했건만 결국 하나도 하지
못했다. 정말 반성한다. 하지 못할 거면 말을 꺼내지라도 말았어야 했는데…
굳이 변명한다면 내 나름대로 공부한 내용들을 기록하고 정리를 하긴 했는데 블로깅에 익숙하지 않다 보니 메모장이나 VSCode에 그때그때 정리를 했었었다. 아무튼 블로깅에 게을렀던 것을 반성한다.
그래서 그동안 프리코스를 진행하면서 했던 과제들과 배웠던 개념들에 대해서 간단히 정리해보려고 한다.
이번 프리코스 35기 과정이 끝나고 곧 있을 이머시브 16기 과정에 도전할 생각인데 이머시브 과정에 들어가려면 Pass-me라는 테스트를 거쳐야 한다. 이 테스트 과정에는 이때까지 프리코스에서 배웠던 개념들을 가지고 풀어야 하는 코딩 테스트가 있다고 한다. 그래서 테스트에도 대비하고 배웠던 것을 정리할 겸 해서 블로깅을 작성하게 되었다.
프리코스에서 배웠던 것들
프리코스 초반 (Levle 1)
프리코스 초반에는 JS의 기본적인 문법에 대해서 주로 배웠다. 뿐만 아니라 개발자로서 어떤 도구를 사용하고 어떤 습관을 가져야 하는지, 어떻게 공부를 해야 하는지에 대해서 많이 배웠다.
JS의 변수, 타입, 조건문, 함수, 배열, 반복문, 객체에 대해서 기본적인 문법을 배웠고 JS에서 변수의 전달방법 (Pass-by-value/Pass-by-reference), 문자열 method, 배열 method, 숫자(math) method 등에 대해서 자주 쓰이는 것들 위주로 두루두루 배웠다. 그리고 이렇게 배운 개념들을 코플릿이라는 플랫폼에서 'JS basic'과 'JS algorithm' 문제들을 해결하면서 어떻게 사용하는지에 대해서 학습했다.
코플릿에서 여러 가지 문제들을 해결하는 과정에서 배웠던 개념들과 method를 직접 사용하고 응용해보면서 JS 기본기를 많이 다질 수 있었다고 생각한다.
또한 JS 기본 문법 이외에도 JS를 사용하는데 필요한 개발자 도구 사용방법(chrome 개발자 콘솔, VSCode, Github 등)과 디버깅하는 방법, 문제를 해결하는데 어떻게 접근해야 하는지 (pseudocode),
알아보기 쉽게 코드 작성하는 방법, 공부하는 데 있어서 중요한 검색하는 방법(키워드 활용) 등 개발자로서 필요한 여러 덕목들에 대해서 학습할 수 있어서 좋았다.
프리코스를 진행하면서 가장 낯설면서도 좋았던 경험이 바로 페어 프로그래밍이었다.
어떠한 문제나 이슈를 가지고 페어 분과 같이 드라이버 혹은 내비게이터 역할을 맡아서 문제를 해결하거나, 아니면 서로 풀었던 방법을 공유하고 같이 코드 리뷰를 진행하는 것이다.
처음 페어 프로그래밍을 했을 때는 어색하기도 하고 익숙지 않아서 잘 되지 않았다. 하지만 점점 익숙해지면서 페어 프로그래밍을 통해 많은 것을 얻을 수 있었다.
내가 이미 해결하였던 문제를 내비게이터 역할을 맡아서 페어 분과 공유함으로써 복습이 되기도 하였고, 다른 페어분의 문제풀이 방식을 보면서 다양한 접근방법 및 풀이 방법을 알 수 있었다. 그렇게 함으로써 내가 몰랐던 부분과 새로운 지식 혹은 개념도 알 수 있었고, 같은 풀이 방식이라도 좀 더 효율적으로 접근할 수 있는 방법도 배울 수 있었다.
프리코스 중반 (Level 2)
프리코스 Level 2 단계에서는 본격적으로 개발자라면 알아야 하는 기본적이고 핵심적인 개념들에 대해서 다뤘다.
대부분 개발자들이 사용하는 버전 관리시스템인 Git과 이 Git을 다루기 위한 CLI (window경우 git bash) 사용법에 대해서 배웠다. Git를 통해 개발자들이 어떻게 코드를 관리하는지 그리고 그러한 코드들을 Github에 올려서 어떻게 다른 개발자들과 공유하는지 배울 수 있었다.
Koans 과제를 통해서 Level 1에서 배웠던 것을 복습했고, 과제 제출할 때 Git을 통하여 fork, clone, add, commit, push, pull request까지 거치면서 Git을 활용한 workflow를 직접 경험해볼 수 있어서 좋았던 것 같다.
또한 개발 방법 중 TDD, 즉 테스트 기반 개발 방법에 대해서 배울 수 있었는 데 테스트 작성의 중요성과
자동화된 테스트 작성을 위한 test framework (mocha, chai 등)에 대해서 학습할 수 있었다.
그리고 Testbuilder 과제를 통하여 직접 테스트를 위한 assertion 코드 작성도 해보고 mocha, chai의 assertion 기능을 활용하여 test framework를 활용한 테스트도 직접 작성해볼 수 있었다.
과제 중에 mocha가 어떻게 unit 테스트들을 생성하고 실제 테스트들은 어떻게 실행되는지에 대한 scope 이슈가 있었는데 이 부분을 해결하면서 많은 공부를 했던 기억이 있다.
이외에도 JS의 핵심 개념들도 여러 가지를 배웠는데 JS의 Scope의 특징, 이러한 Scope의 특징을 이용한 Closure의 의미와 Closure를 유용하게 활용하는 방법들, ES5의 매개변수 전달방법 중 하나인 arguments 키워드와 ES6에서의 Rest parameter, JS의 객체지향 프로그래밍(class와 instance 그리고 prototype 등), JS에서 this 키워드가 가질 수 있는 여러 의미들 등 많은 것을 학습하였다.
class와 prototype의 의미를 이해하면서 JS Reference 사이트인 MDN에서 왜 prototype이 붙어 있는지 이해했던 기억이 난다.
글이 길어지는 것 같아서 여기서 한번 끊고 가야겠다.
'Codestates > Pre-course 과정 중 배운 것 정리' 카테고리의 다른 글
CodeStates 프리코스를 끝내면서 (2) (0) | 2019.09.30 |
---|---|
나는 개발자가 될 수 있을까 (0) | 2019.09.28 |
댓글