강의 내용 이번 강의는 테트리스 게임로직을 만들거라는 생각과 달리 처음부터 다시 구현한다. 당연히 시간이 부족하기 때문에 이전 강의에서 설명했던 것들은 메소드명만 적거나 대충 넘어가고 개선할부분을 알려준다. 그리고 디자인패턴도 조금씩 얘기한다. 템플릿 메소드 패턴 템플릿 메소드 패턴이란 특정 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체적인 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내용을 바꾸는 패턴이다. 쉽게 말해서 추상클래스를 만들고 상속받은 하위 클래스에서 오버라이드를 하면 된다. 그런데 자바스크립트에서는 이걸 언어적으로 지원하지 않는다. 추상클래스는 딱히 만들방법이 없고(?) 오버라이드는 자식메소드앞에 _를 붙여서 구현하기도 한다. 그런데 이는 명시적이지 않다. 언어에서 지원을 하지..
강의 내용 컴마 연산자 1. 함수의 인자를 구분하는 구분자 2. 지연 연산자. a,b,c의 결과는 c 3. var, let, const에서 구분자 테트리스 패널을 어떻게 나눌것인지. 자바스크립트는 안정화가 끝나면 c로 내려간다. 결국 표준을 쓰는게 이기는거다. ex) proxy, 생성자함수 즉 for문이 forEach보다 빠르니까 for문을 쓴다?? 말도 안되는 소리다. 지금 우리 레벨에서는 그 둘의 성능을 고려한 프로젝트를 하지도 않고 결국 내부 엔진이 발전되면 표준(foreach)이 빠르다. map쓰면 객체만드니까 느리다고?? 그냥 써라. 어차피 표준이 결국 빠르다. 그리고 너넨 이거 고민할 레벨이 아니다.(라고 강사님이 말했다) 스터디 일단 나는 객체지향에 대해서 생각했다. 각자 스터디에 임하는 마..
객체지향 설명 본론에 앞서 객체지향에서 필수적으로 알아야할 것 세가지를 설명한다. 1 . 추상화 1. 카테고라이즈 : 분류를 일정한 기준을 통해 묶는 것 분류.. classification, 예전에 쓴 프로토타입글이 생각난다. 객체지향에서 절대 빠트릴 수 없는 것 중 한가지다. 어른과 아이, 여자와 남자, 초급자와 중급자처럼 말이다. 이렇게 예시를 드니 좀 감이 안올수 있어서 실제 코딩할 때 예시를 들어보겠다. 블로그에는 관리자와 참여자로 나눌 수 있다. 너무 쉬워보이나?? 개인적으로는 주니어기준으로 쉽지 않은 일이라고 생각한다. 실제 회사에서 코딩을 하다보면 분류를 하는 방법이 굉장히 다양하게 나오고 어떻게 분류를 하느냐에 따라서 코드 퀄리티가 달라진다. 절대 쉬운일은 아니다. 무의식중에 사용하고 있지..
spread ref 지난 강의에서 참조값을 루틴(함수)으로 전달하면 생기는 문제들에 대해 이야기 했었다. 만약 메인 플로우에서 하나의 루틴에 전달해서 변경이 된다면 어느정도는 예측가능하지만 이 변경된 값을 다른 루틴에 전달하면 흐름을 예측할 수 없다. 머리좋은 사람들은 그렇게 해도 된다. 나는 아니니까 그렇게 할 생각이 없다. sub routine chain 이번엔 루틴에서 다른 루틴을 호출한다고 생각해보자. 위의 그림과 같은 형태가 된다. 메인 프롤우에서 r1루틴을 호출하면 r1에서 r2를 호출하고 r2에서 r3를 호출하고 이런식으로 반복된다. 이때 콜스택이 쌓이게 된다. r1에서는 r2의 호출이 끝날때 까지 기다려야 되기 때문에 최종적으로는 r2,r3,r4~~모든 루틴이 실행되고 비로소 return이..