From 6105b98da7f958f338785001ce47884f581a46ed Mon Sep 17 00:00:00 2001 From: Changwan <47740690+WooWan@users.noreply.github.com> Date: Wed, 30 Oct 2024 00:09:40 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=9A=B0=EC=B0=BD=EC=99=84]=20=EC=B1=95?= =?UTF-8?q?=ED=84=B0=204,=205,=206=20(#35)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * week 2 * 추가 정리 * 추가 2 --- .../\354\232\260\354\260\275\354\231\204.md" | 10 +++ .../\354\232\260\354\260\275\354\231\204.md" | 74 +++++++++++++++++++ .../\354\232\260\354\260\275\354\231\204.md" | 27 +++++++ 3 files changed, 111 insertions(+) create mode 100644 "\354\261\225\355\204\260_4/\354\232\260\354\260\275\354\231\204.md" create mode 100644 "\354\261\225\355\204\260_5/\354\232\260\354\260\275\354\231\204.md" create mode 100644 "\354\261\225\355\204\260_6/\354\232\260\354\260\275\354\231\204.md" diff --git "a/\354\261\225\355\204\260_4/\354\232\260\354\260\275\354\231\204.md" "b/\354\261\225\355\204\260_4/\354\232\260\354\260\275\354\231\204.md" new file mode 100644 index 0000000..4abd96a --- /dev/null +++ "b/\354\261\225\355\204\260_4/\354\232\260\354\260\275\354\231\204.md" @@ -0,0 +1,10 @@ +# 4장 안티패턴 + +안티패턴을 적절히 아는 것은 중요하다. 안티패턴을 아는 것만으로, 이게 왜 안티패턴인지 인지하는 것만으로 함정을 적절히 피해갈 수 있는 것 같다. + +또, 코드 리뷰를 하다 보면 뭔가 이상한 것 같은데.. 왜 이상한 것인지 설명을 하기 힘들 때가 있는데, 잘 알아두면 코드리뷰도 원활히 진행가능! + + + + + diff --git "a/\354\261\225\355\204\260_5/\354\232\260\354\260\275\354\231\204.md" "b/\354\261\225\355\204\260_5/\354\232\260\354\260\275\354\231\204.md" new file mode 100644 index 0000000..75c1223 --- /dev/null +++ "b/\354\261\225\355\204\260_5/\354\232\260\354\260\275\354\231\204.md" @@ -0,0 +1,74 @@ +# 최신 자바스크립트 문법과 기능 + + + +JavaScript는 태생적으로 모듈을 지원하는 언어가 아니었다. JavaScript가 점점 많은 역할을 하면서 AMD, CommonJS와 같은 방법을 이용하여 모듈화를 진행하였다. + +ES6(ES2015)부터는 ESM이라는 방식으로 모듈을 native하게 지원한다. 그래도 번들러는 성능 상 사용한다. + + + +### 동적으로 모듈 가져오기 + +기능상으로 보면 +동적 import = require + tree shaking + async 와 비슷하다 + + + +### 서버에서 모듈 사용하기 + +Node >= 15.3 부터 `type: module` 을 지원한다. + +자동으로 defer와 같이 지연로딩되는 게 장점인 것 같다. + + + +### 5.9 생성자, 게터, 세터를 가진 클래스 + +class의 메서드들은 function키워드를 사용하지 않는다. 남용하지 않기 위해서라는데, function키워드를 붙이는 게 명시적이라고 느끼는데, 왜 이게 남용이라고 생각하는지는 궁금하다. + + + + + +(추가) + +언어에서 getter를 자동지원하는 게 매력적이라고 생각 + +```js +class Course { + private _price: number; + + ... + + get price(): number { + return this._price; + } +} + +val price = course.price; // 1, 2 모두 동일한 코드로 호출 +``` + + + +(추가 2) + +export 저는 이렇게 써요 + +/utils + +​ /foo.js + +​ /index.js + +```js +//foo.js +export function foo () {} + +function no-export() {} + + +//index.js +export * from "foo.jst" +``` + diff --git "a/\354\261\225\355\204\260_6/\354\232\260\354\260\275\354\231\204.md" "b/\354\261\225\355\204\260_6/\354\232\260\354\260\275\354\231\204.md" new file mode 100644 index 0000000..2e93424 --- /dev/null +++ "b/\354\261\225\355\204\260_6/\354\232\260\354\260\275\354\231\204.md" @@ -0,0 +1,27 @@ +# 6 디자인 패턴의 유형 + + + +### 6.1 배경 + +#### 생성 패턴 + +객체를 생성하는 방법에 중점을 둔다. + +예: 생성자, 팩토리, 추상, 프로토타입, 싱글톤, 빌더 패턴 등 + + + +#### 구조 패턴 + +객체의 구성과 각 객체 간의 관계를 인식하는 방법에 중정을 둔다. + +예: 데코레이터, 퍼사드, 플ㄹ이웨이트, 어댑터, 프록시 패턴 등 + + + +#### 행위 패턴 + +객체 간 커뮤니케이션을 개선하거나 간소화하는 방법에 중점을 둔다. + +예: 이터레이터, 중재자, 관찰자, 방문자 패턴 등 \ No newline at end of file