코드스테이츠 프리코스를 시작한지 어느덧 7주가 지났습니다. 그동안 계속해서 글을 써보려고 의자에 앉아보기는 했습니다만, 워낙 글재주가 없으니 힘겨워서, 이 핑계 저 핑계를 들면서 지금까지 미뤄왔습니다. 이제는 꾸준히 제가 공부한 내용 혹은 요즘 드는 생각들을 기록해 보려고 합니다. 프리코스를 7주차까지 진행하면서 느낀 점과 어떤 것들을 했는지 간단하게 이야기를 하는 것으로 시작하면 좋을 것 같네요.
Week 1 & 2
1,2 주차에는 기본적인 문법을 공부했습니다. 변수와 타입, 조건문, 함수, 배열, 반복문, 객체. 어떤 언어를 사용하더라도 공통으로 포함되는 내용들입니다. 프로그래밍을 해본 사람이라면 쉽다는 느낌을 받을 수 있는 기간입니다. 다만, Javascript에서 변수를 취급하는 방법이 C나 Java보다 느슨(?)하다는 점이 새로웠네요. 하지만 이게 나중에 저를 더 힘들게 할지 편하게 할지는 아직 잘 모르겠습니다.
'배열 다루기' 파트에서는 배열에 관련된 메소드(Method)들을 배웠습니다. push/pop만 사용할 줄 알았던 저에게는 굉장히 새로웠습니다. 7주차까지 와서 보니 이때 배웠던 map, reduce, filter 등의 메소드들은 자바스크립트를 한다면 필수라고 할 수 있겠네요.
Week 3
처음으로 Pair programming을 해보았고, Git에 관해 공부했습니다. Pair programming을 처음 할 때 굉장히 어색했던 기억이 있네요. 보통 한 화면을 공유하고 그 화면의 주인이 타이핑을 합니다. 다른 사람은 네비게이터라고 해서 문제 해결을 담당하죠. 지금까지 페어를 하면서 느낀 장점은 문제에 접근하는 방법이 사람마다 다르다는 것을 알게 된 점. 단점은 혼자만의 문제일 수 있겠지만, 네비게이터 역할을 맡았을 때 오히려 키보드를 잡았을 때보다 생각을 깊이 하기 힘들다는 점 입니다.
Git은 정말 유용합니다. 개발자들만을 위한, 개발자들만에 의한 단순한 도구라고 생각했습니다. Git이 무엇인지 알게되고 Git-hub를 직접 사용해보기 전까지는요. 아직 100% 활용할 줄은 모릅니다만, 실제로 헌법 개정안 발의에 Git을 이용한 사례를 보면 제가 알지 못하는 사용처가 무궁무진 할 것 같습니다.
Week 4
숫자 다루기(Number/Math Methods), 변수의 전달(Call by reference/Call by value) 그리고 스코프(scope, 변수 유효 범위)에 대해 학습했습니다. 과제를 진행하다 보면 이쯤에서 값이 변해야 할 때 변하지 않거나 그 반대의 경우가 생기는데, 메모리 주소 값(reference)을 전달했느냐, 단순히 값(value)만을 전달했느냐를 고려하지 않았던 경우가 꽤 있었습니다.
스코프는 범위죠. 변수의 유효 범위입니다. 같은 이름의 변수를 선언하더라도 어떤 키워드(let, var, const)로 선언하느냐에 따라 코드가 정상적으로 작동될 수도, 아닐 수도 있습니다. 스코프에 관한 4가지 법칙을 학습했습니다.
- Local Scope vs Global Scope
- Function Scope(var) vs Block Scope(let)
- 전역변수와 Window 객체
- 선언 없이 초기화된 변수는 전역 변수
Week 5
클로저(closure), 파라미터(parameter), 객체지향, this 키워드에 대해 배웠습니다. 클로저는 외부함수의 변수에 접근할 수 있는 내부함수로, 스코프 체인(Scope chain)이라고도 합니다. 외부에서 함수 안의 변수에 접근하지 못하게 하고, 해당 클로저 함수만을 이용해서 접근하게 할 수 있습니다. 객체지향 프로그래밍은 하나의 모델이 되는 클래스(class)를 만들고 클래스를 바탕으로 한 객체를 만드는 프로그래밍 패턴입니다. 이 모델을 이용하여 HTML 문서를 제어할 수 있습니다. this 키워드는 모든 함수 스코프 내에서 자동으로 설정되는 식별자입니다. C나 Java에서 this를 사용했었습니다. 자바스크립트에서의 this는 약간 다른데, 다른 글에서 좀 더 자세하게 기록해 볼 생각입니다.
Week 6 & 7
프로그래밍 보다는 실무에 가까운 도구들인 HTML, CSS, DOM를 배웠습니다. 과제 Twitter를 진행하면서 프론트앤드 개발 work flow를 간단하게 경험해볼 수 있었습니다. CSS를 이용해 레이아웃을 짜 보았고, CSS Selector를 이용해 문서 객체들을 어떻게 설계하면 좋을지 고민해보는 시간이었습니다.
'코드스테이츠' 카테고리의 다른 글
[프리코스] 8주차 (0) | 2019.09.24 |
---|