공부/JS12 [Javascript] 클로저 알아보기 - 1 실행 컨텍스트에 대해 알아보았던 지난 번에 이어, 자세히 알고 있지 못했던 '클로저'에 대해 공부한 내용을 정리한다. 코어 자바스크립트와 모던 자바스크립트 Deep dive를 참고했다. 사용 사례 등은 다음 글에서 좀 더 정리하기로. 클로저(Closure)란? : 함수형 프로그래밍 언어에서 등장하는 보편적인 개념. 즉 자바스크립트의 고유한 개념은 아니다. 때문에 매체마다 다양한 정의로 클로저를 소개하고 있다. MDN에서 클로저의 개념을 발췌하자면 다음과 같다. "주변 상태(어휘적 환경)에 대한 참조와 함께 묶인(포함된) 함수의 조합입니다. 즉, 클로저는 내부 함수에서 외부 함수의 범위에 대한 접근을 제공합니다. ..." '어휘적 환경'이란 곧 실행 컨텍스트에서 배웠던 LexicalEnvironment를 .. 2024. 1. 5. [JavaScript] 실행 컨텍스트에 대하여 자바스크립트를 써온지도 몇 년, 당장 원하는 기능의 코드를 짜낼 수는 있어도 정작 언어 자체를 깊이 공부해본 적이 없다는 생각이 들었다. 지금이라도 부족했던 기본을 다지기 위해, 책과 이런저런 문서를 참고하며 조금씩 공부를 하고 있다. 블로그에서는 책을 읽으며 공부한 것을 요약하여 정리하고자 한다. 책의 경우, 코어 자바스크립트를 보고 있다. 조만간 모던 자바스크립트 Deep Dive 또한 참고하며 이런저런 내용을 공부할 예정이다. (책을 나눔해준 버블버블에게 무한한 감사...) 실행 컨텍스트(Execution Context)란? : 실행할 코드에 제공할 환경 정보들을 담아둔 객체. 클로저를 지원하는 대부분의 언어에 이것 비슷한 개념들이 존재한다고. → 어떠한 컨텍스트가 실행되면, 호이스팅 발생/외부 환.. 2023. 12. 23. Typescript 정리 - 2 노마드 코더의 TypeScript로 블록체인 만들기 강의에 나오는 TS 강의를 듣고 정리한 내용 백업. 범위는 FUNCTIONS ~ CLASSES AND INTERFACES. Call Signatures (or Function Signatures) : 함수의 패러미터 타입 & return 타입을 type으로 선언하는 것. type Foo = (a: number, b: number) => number; const foo:Foo = (a, b) => { // return number... }; → foo 함수의 패러미터의 타입을 지정해주지 않아도 Foo 타입을 통해 TS가 패러미터의 타입을 알 수 있음. → 함수 타입 선언과 구현을 분리할 수 있음. Overloading 함수가 여러 개의 서로 다른 Call.. 2023. 1. 16. Typescript 정리 - 1 노마드 코더의 TypeScript로 블록체인 만들기 강의에 나오는 TS 강의를 듣고 정리한 내용 백업. 범위는 처음 ~ OVERVIEW OF TYPESCRIPT(Types of TS part Three)까지. TypeScript? MS에서 만든 JS 기반 언어. 기존의 JS와는 달리 Strongly Typed 언어. 즉 JS에 타입을 추가했다고 볼 수 있음 (이 정도가 내 의식이였는데, 이거 이상의 의미를 지님). ※ TS Playground TS 코드를 작성해볼 수 있음. 작성한 TS 코드가 JS코드로 어떻게 변환되는지 보여줌. TS를 사용하는 이유 → Type Safety(타입 안정성) 기존의 JS는 타입에 유연한 언어. 논리와 이치에 맞지 않는 코드가 있더라도 이를 그대로 실행하기 때문에 예상치 못.. 2023. 1. 10. Clean Code Study - 2 작년 말에 진행한 클린코드 세션 내용 복습. 범위는 내 세션 이후 (Formatting) Convention 관련. Formatting Function callers and callees should be close 간단히 Caller와 Callee란 : Caller : 특정 함수를 호출하는 애. Callee : 호출 당한 함수. 즉, Caller와 Callee는 서로 가까이 위치해야 한다는 내용. 특히 Clean Code에서는 Caller를 Callee 바로 위에 위치시키는 것이 이상적이라고 하는데, 이는 위 → 아래 방향으로 글을 읽듯이 코드를 읽을 수 있어서 가독성에 도움이 되기 때문. // Bad Example class PerformanceReview { constructor(employee) .. 2023. 1. 3. Clean Code Study - 1 회사에서 진행한 Clean Code 스터디에서 발표한 내용을 글로 정리해서 기록. 공부한 내용은 여기, 첨부된 코드 예시도 여기서 가져옴 : https://github.com/ryanmcdermott/clean-code-javascript#table-of-contents 내 파트는 Concurrency ~ Formatting(일부). 나머지 부분도 스스로 복습하고 여건이 되는 대로 정리해볼 예정. Concurrency 들어가기 전에 Concurrency란? 동시성(병행성). 하나의 프로그램이 하나 이상의 일을 한 번에 수행할 수 있음을 의미. Parallelism(병렬성)과 비슷해보이나 다른 개념. Parallelism은 동시에 여러 작업을 한꺼번에 처리하는 것을 의미한다면, Concurrency는 여러.. 2022. 10. 4. 이전 1 2 다음