[TIL] 2022-03-16

minbr0ther·2022년 3월 15일
0

today-I-learned

목록 보기
67/103
post-thumbnail

1. Coding Test

  • 백준 문제풀기 (그리디[16/50] → 탐색[12/50] → 동적프로그래밍[12/50])


2. Live Academy

  • 💬"내가 걔한테 좀 심했나?" , "~하려고 했던 것 뿐인데" , "부모로서(형으로서) 잘 하다" , "내가 한 말 가지고 서운해 하더라" 🔗복습

  • [ 참고로 Part 2 of 3 ] - "FYI"에 대해서 짧게 정리 🔗진도


3. Full-stack

  • React로 NodeBird SNS 만들기 by ZeroCho 🔗

    • 코드 스플리팅은 컴포넌트 단위로 js파일을 분리해서 필요해서 요청시 프론트 서버에게 잠깐씩 통신을 한다.

    • 로딩을 없애는 목적으로 SSR 써도 되나요 ⇒ 좋다! 캐싱까지 적용되면 진짜 효율적이다

    • 반응형을 만들때는 모바일 디자인 → 데스크탑 순서로 디자인을 하자

    • target="_blank" rel="noreferrer noopener" 새창열기 props

    • 컴포넌트에 props로 넘겨주는 함수는 useCallback을 꼭 써주자 ⇒ 그래야 최적화가 된다 ⭐️

    • 컴포넌트에 인라인 스타일링을 해주면 불필요한 리렌더링이 발생한다 ⇒ styled-components로 감싸주자


4. Resume & Interview

  • 끊임없이 배우고싶은 ENTJ 개발자 🔗

  • 면접 기출 문제 by Woong-il

☑️ Closer

“A closure is the combination of a function and the lexical enviroment within which that function was declared”

클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경의 조합이다.

  • 반환된 내부함수가 자신이 선언됐을 때의 환경(Lexical environment)인 스코프를 기억하여 자신이 선언됐을 때의 환경(스코프) 밖에서 호출되어도 그 환경(스코프)에 접근할 수 있는 함수를 말한다.

  • 한 줄 요약 ⇒ 자신이 생성될 때의 환경(Lexical environment)을 기억하는 함수다

  • 유용하게 사용되는 상황 ⇒ 현재 상태를 기억하고 변경된 최신 상태를 유지한다

function outerFunc() {
  var x = 10;
  var innerFunc = function () { console.log(x); };
  innerFunc();
}

outerFunc(); // 10
  1. 내부함수 innerFunc가 호출되면 자신의 실행 컨택스트가 실행 컨텍스트에 쌓이고 변수 객체와 스코프 체인 그리고 this에 바인딩할 객체가 결정된다.

  2. 스코프 체인은 전역 스코프를 가리키는 전역 객체와 함수 outerFunc의 스코프를 가리키는 함수 outerFunc의 활성객체 그리고 함수 자신의 스코프를 가리키는 활성 객체를 순차적으로 바인딩 한다.

클로저의 활용

  1. 상태 유지 - 전역변수를 대체 할 수 있다. (ex. 토글 버튼)

  2. 클로저는 현재 상태를 기억하고 이 상태가 변경되어도 최신 상태를 유지해야 하는 상황에 매우 유용하다. 만약 자바스크립트에 클로저라는 기능이 없다면 상태를 유지하기 위해 전역 변수를 사용할 수 밖에 없다. 전역 변수는 언제든지 누구나 접근할 수 있고 변경할 수 있기 때문에 많은 부작용을 유발해 오류의 원인이 되므로 사용을 억제해야 한다.

  3. 변수의 값은 누군가에 의해 언제든지 변경될 수 있어 오류 발생의 근본적 원인이 될 수 있다. 상태 변경이나 가변(mutable) 데이터를 피하고 불변성(Immutability)을 지향하는 함수형 프로그래밍에서 부수 효과(side effect)를 최대한 억제하여 오류를 피하고 프로그램의 안정성을 높이기 위해 클로저는 적극적으로 사용된다.

  4. 정보의 은닉 - 생성자 함수는 클로저의 특징을 사용해 클래스 기반 언어의 private 키워드를 흉내낼 수 있다.

  5. 생성자 함수가 함수가 생성한 객체의 메소드는 객체의 프로퍼티에만 접근할 수 있는 것이 아니며 자신이 기억하는 렉시컬 환경의 변수에도 접근할 수 있다.


⏱ Total study time - 8 hours 10 minutes

profile
느리지만 꾸준하게 💪🏻

0개의 댓글