강의내용 이번 강의에서는 저번시간에 만들었던 todo list를 리팩터링하면서 기능, 성능을 추가한다. html 먼저 js로 관리하던 dom 코드를 html파일로 이동시켰다. 리액트는 dom을 js로 관리한다. 자바스크립트로 모든것을 다루는 것은 분명히 장점이 있지만 그건 리액트에 dom api를 위임하고 jsx를 이용해서 가독성을 높였기 때문이다. 그런게 없는 일반 자바스크립트에서 기본 dom 코드가 있는 것은 오히려 코드의 가독성을 낮춘다. extends set set을 사용하는 코드가 있었는데 클래스 자체에서 set을 extends하게 변경했다. 그러면 다음과 같이 super로 set에 접근할 수 있다. 테트리스 글에서 올리긴 했는데 이건 진짜 set으로 동작한다. es6에서 나온 클래스로만 할 수..
배경 엄청 오랫동안 코드스피츠 강의를 듣지 못했다. 논건아니다... 다른 우선순위에 치여서 못했을 뿐... 진짜.... 어쨋든 다시 코드스피츠 강의를 조금씩 듣고있다. 듣다보니 리팩터링과 겹치는 내용들이 많다. 둘다 켄트백의 영향을 많이 받아서 그런것같다. 리팩터링, 객체지향의 사실과 오해, 코드스피츠가 점차 한 점으로 모이고 있는 느낌이 든다. 원래 어떤 분야든 공부를 하댜보면 전혀 다른 분야의 과목도 한 점으로 모인다고 하는데 조금 느껴진다. 강의 이론 5,6강에서는 todo list를 만든다. todolist를 만들면서 이것저것 설명을 하시는데 설명에 관한 것들을 먼저 적고 마지막에 코드와 관련된 얘기를 하겠다. 상태값 boolean 상태값으로는 boolean이 좋지 않다. 사실 나도 알고 있던 내..
강의 내용 이번 강의는 테트리스 게임로직을 만들거라는 생각과 달리 처음부터 다시 구현한다. 당연히 시간이 부족하기 때문에 이전 강의에서 설명했던 것들은 메소드명만 적거나 대충 넘어가고 개선할부분을 알려준다. 그리고 디자인패턴도 조금씩 얘기한다. 템플릿 메소드 패턴 템플릿 메소드 패턴이란 특정 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체적인 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내용을 바꾸는 패턴이다. 쉽게 말해서 추상클래스를 만들고 상속받은 하위 클래스에서 오버라이드를 하면 된다. 그런데 자바스크립트에서는 이걸 언어적으로 지원하지 않는다. 추상클래스는 딱히 만들방법이 없고(?) 오버라이드는 자식메소드앞에 _를 붙여서 구현하기도 한다. 그런데 이는 명시적이지 않다. 언어에서 지원을 하지..
강의 내용 컴마 연산자 1. 함수의 인자를 구분하는 구분자 2. 지연 연산자. a,b,c의 결과는 c 3. var, let, const에서 구분자 테트리스 패널을 어떻게 나눌것인지. 자바스크립트는 안정화가 끝나면 c로 내려간다. 결국 표준을 쓰는게 이기는거다. ex) proxy, 생성자함수 즉 for문이 forEach보다 빠르니까 for문을 쓴다?? 말도 안되는 소리다. 지금 우리 레벨에서는 그 둘의 성능을 고려한 프로젝트를 하지도 않고 결국 내부 엔진이 발전되면 표준(foreach)이 빠르다. map쓰면 객체만드니까 느리다고?? 그냥 써라. 어차피 표준이 결국 빠르다. 그리고 너넨 이거 고민할 레벨이 아니다.(라고 강사님이 말했다) 스터디 일단 나는 객체지향에 대해서 생각했다. 각자 스터디에 임하는 마..
객체지향 설명 본론에 앞서 객체지향에서 필수적으로 알아야할 것 세가지를 설명한다. 1 . 추상화 1. 카테고라이즈 : 분류를 일정한 기준을 통해 묶는 것 분류.. classification, 예전에 쓴 프로토타입글이 생각난다. 객체지향에서 절대 빠트릴 수 없는 것 중 한가지다. 어른과 아이, 여자와 남자, 초급자와 중급자처럼 말이다. 이렇게 예시를 드니 좀 감이 안올수 있어서 실제 코딩할 때 예시를 들어보겠다. 블로그에는 관리자와 참여자로 나눌 수 있다. 너무 쉬워보이나?? 개인적으로는 주니어기준으로 쉽지 않은 일이라고 생각한다. 실제 회사에서 코딩을 하다보면 분류를 하는 방법이 굉장히 다양하게 나오고 어떻게 분류를 하느냐에 따라서 코드 퀄리티가 달라진다. 절대 쉬운일은 아니다. 무의식중에 사용하고 있지..
리뷰하기전 쓰고 싶은 말 회사 출퇴근 시간에 코드스피츠 강의를 보고 집에와서 리뷰를 쓰려고 했는데 생각보다 내용이 너무 어려워서 그렇게 하지 못했다. 아침 지옥철을 타면서 강의를 이해하기엔 내 능력이 부족했다. 그래서 보다가 포기하고 집에서 집중해서 영상을 보면서 코드도 같이 작성해야겠다고 생각했다. 그런데 최근데 회사일도 많고 다른 일도 많아서 많이 미루게되었다. 이제 재택근무를 하게 되어서 시간이 좀 더 여유가 생겼다. 그시간에 강의듣고 리뷰를 적어야겠다. // A = BODY // B = // C = TEXT // 코드는 무조거 쉬운거부터 처리한다. // 쉬운 코드는 의존성이 낮다. 독립된 기능일 가능성이 낮다. // >로 추상화를 시켜 // 태그를 연다는점에서 공통점 // white list. 더..
spread ref 지난 강의에서 참조값을 루틴(함수)으로 전달하면 생기는 문제들에 대해 이야기 했었다. 만약 메인 플로우에서 하나의 루틴에 전달해서 변경이 된다면 어느정도는 예측가능하지만 이 변경된 값을 다른 루틴에 전달하면 흐름을 예측할 수 없다. 머리좋은 사람들은 그렇게 해도 된다. 나는 아니니까 그렇게 할 생각이 없다. sub routine chain 이번엔 루틴에서 다른 루틴을 호출한다고 생각해보자. 위의 그림과 같은 형태가 된다. 메인 프롤우에서 r1루틴을 호출하면 r1에서 r2를 호출하고 r2에서 r3를 호출하고 이런식으로 반복된다. 이때 콜스택이 쌓이게 된다. r1에서는 r2의 호출이 끝날때 까지 기다려야 되기 때문에 최종적으로는 r2,r3,r4~~모든 루틴이 실행되고 비로소 return이..
배경 타사 개발자분으로부터 공부할 자료를 추천받았다. 그리고 그것들중에 하나가 코드스피츠 OOP 영상 강의다. OOP는 평소에도 관심이 있었고 직접 추천해준 자료이기 때문에 무슨일이 있어도 보겠다고 생각했으며 몇분지나지 않아 정말 좋은 강의라는 것을 깨달았다. 서론 강사분은 flow, routine이라는 용어로 강의를 시작했다. 그리고 이 얘기를 하기까지 꽤 많은 배경설명을 한다. 그만큼 이 개념이 중요하다는 것이다. 나는 flow, routine이라는 용어를 알고 있지만 명확히 설명하지 못했다. 심지어 영상을 한번 보고 지금 블로그 정리를 할 때도 영상을 돌려봤다. 강사분은 명확히 설명할 수 없으면 모르는 거라고 말한다. 예전부터 듣던말이고 내가 가장 부족한 분야다. cs수업은 아니지만 기저에 깔려있는..