⭐️ 복습

  1. 액션
  2. 사이드 이펙트를 발생시킴
  3. 외부데이터를 변경시키는 것
  4. 전역변수라고 외부 데이터라고 할 수 없음. 그래서 상황에 따라 확인해야 함

    • ex) window 객체가 외부 데이터라고 생각할 수 있을까???
  5. 계산(순수함수)
  6. 명시적인 입, 출력이 존재
  7. 테스트 용이하며, 예측이 가능한 코드
  8. 개발 피로를 낮춤
  9. 데이터
  10. 상수
  11. 입력과 출력이 될 수 있는 것
  12. 액션으로 확장가능

✏️ 배운 내용

1.일급 개념

  • 함수의 인자나 값이 될 수 있는 것
  • JS에서 가장 중요한 개념
  • JS는 OOP가 가능하지만, JS는 OOP가 아님
  • 추상화
  • 어디서든 사용활 수 있도록 하는 과정
  • OOP 역사

    • 이분법적인 철학적 사고 ex) 외국인들은 chair라는 단어를 그냥 사용하지 않고 chaire에 무언가를 붙여서 사용(a chair, chairs) 즉, 하나의 추상화를 가지고 사용 용도에 따라 무언가를 추가해 사용 다시 말하면, 하나의 추상화 개념에서 classfication (분류) 할 수 있는 개념들이 탄생
  • JS 정적 vs 동적

    • JS의 큰 장점 중 하나는 동적이라는 것
    • 왜 JS는 동적???
    • 먼저 결론부터 말하자면, 페이지/웹 앱의 서로 다른 상황에 서로 다른 화면을 보여줄 수 있고, 필요하면 새로운 콘텐츠를 생성할 수 있기 때문
    • 그 전에 정적 언어는 무엇???
    • 컴파일러(빌드하지 않으면 컴퓨터가 읽지 못하는 것)
    • 런타임(runExpection 존재)과 컴파일(compileException 존재) 타임이 존재.
    • 정적언어의 단점은 수정 할 때마다 빌드를 해야함
    • 그러나 정적파일을 만들어서 올릴 경우 속도가 빠름
    • 동적 언어(인터프리터 언어)는 무엇???(unCompile가 아님)
    • 스크립트 언어
    • 어떤 것을 제어
    • 브라우저 기능을 제공하기 위한 언어
    • 이 때, TS 가 갑자기 부상한 이유는 협업과 클린코드가 중요해지기 때문이였습니다. 그 전에는 JS에 주석이 많았음
  • 트랜스 파일러

    • JS에서만 사용
    • Babel = 통합 cf) 바벨탑은 결국 쪼개지고, 그 때 민족의 언어가 많이 생겼다는 설 존재
    • ES 최신 스펙ES 낮은 버젼에서 사용할 수 있도록 변환하는 것
    • 즉, 어디서든 JS 스펙을 사용할 수 있도록 통합하는 것
    • ES 스펙이 등장한 이유
    • 다양한 브라우저가 저마다 기능이 있다보니, 개발자들이 대응하기 어려우짐
    • 그래서 다양한 브라우저 기능을 통합하는 명시적인 스펙이 등장
    • Stage: 0 ~ 3, 3되면 안정화라고 생각해서 통합
    • cf) 폴리필 - 바벨 없이 사용할 수 있는 개념 6.컴파일러
    • 코드 자체를 변형
    • 인간이 짠 코드를 → 컴퓨터가 읽기 좋은 코드로 변환
    • TS → JS가 컴파일러라고 하는게 이상함

⭐️실습

  • forEach를 통해, Map, Filter, Reduce를 만듦

참고