[javascript] javascript boot camp 16기 첫번째 수업

2020-08-03

자바스크립트 부트캠프 16기 첫번째 수업

플레이그라운드 웹사이트에 올라온 교안으로 자가학습과 병행하여 강의를 들어야한다 !! 8주동안 !

첫시간엔 프로그래밍에 대한 전반적인 개념을 알아보고, 버블닷컴 잡지식 및 웹 어플리케이션의 발전과정에 대해 알아가는 중 ㅎ_ㅎ

자바스크립트는 타언어에 비해 자유도가 높아 활발한 생태계를 갖고 있음!

문서와 application의 차이점

  1. 문서는 실행한단 개념이 없고
  2. application은 실행한단 개념이 있음. 상태를 관리하는걸 코딩하는 것..

javascript frameworks / utility

javascript 기반이지만 생김새가 다 각자 다름 @_@ 하지만 기반은 component 개발 방식 react.js / vue.js 는 원래 javascript로 만든게 아니라 개발자들이 만들어서 javascript로 transpiler로 변환했음 그래서 node.js 개발환경 세팅해야함

javascript 연대기

1999~2009 년까지 javascript를 버전업 못시킨 이유 : adobe flash 전성시대 flash를 만들 수 있는 action script를 javascript로 시도, 그게 4.0 버전인데 실패함 대표적으로 비판을 많이 했던 사람이 더글라스 ~ 이분이 많이 막음 v5.0이 중요한 버전 이후 2015년 이후엔 v으로 분류하지않고 ES, ECMA script라 명명

javascript 5.0 버전으로 하고나서 구버전으로 변환 Coffescript / Typescript => 개발자들이 js 할 수 있게끔 만드는 트랜스파일러 사람이 이해하는 언어를 브라우저가 이해하게끔 만드는게 트랜스파일러라고 한다 typescript 는 마이크로소프트에서 만든건데 js 기능 모두 갖고 있으면서 다른 기능을 많이 갖고있음

js - framework - typescript .. 우아한형제들도 typescript라고 개발을 한다고 한다.. 필수형태

Bundler

Webpack이 표준적. 웹어플리케이션 만들 때 수반되는 css, img, babel 등등 모든파일을 컴파일해주는 도구라고 보면 됌

프로그래밍이란 ?

  • 매커니즘 : 문법
  • 사상 : 철학 (하나의 소프트웨어를 만드는건 어차피 사람인데, 그 사람이 짠 코드를 다 이해하기 힘든건 그 사람만의 철학이 있기때문) 남들의 사상을 이해하는거에 시간을 많이 투자해야함 라이브러리를 이해하지못한건 그 창작자의 사상을 이해할 수 없기때문
  • 엔지니어링 : 제약 조건 (환경, 규모 등) 웹은 오픈된 기술이라 다양한 환경때문에 1000명 중 1명이 안될수도 있음.. 엔지니어링 기술은 시간이 필요함 경험에 의해 쌓여지는 기술

선언형 프로그래밍 언어

  • 프로그램이 어떻게 실행되는지 보다 어떤 것인지, 무엇인지 나타내는걸 설명하는 경우 ‘선언형 프로그래밍 언어’라고 한다
  • js 는 명령형과 함수형 패러다임이 혼재된 언어. 앞으로 계속 들어야함~ 각각의 패러다임이라는 틀에서 언어가 발전되어왔는데 뒤섞여지면서 시대가 변하고있음

명령형 프로그래밍 언어

프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 프로그래밍 패러다임 상태관리를 잘 못하면 버그가 발생 1차적으로 읽으면 이해되는 방식

함수형 프로그래밍 언어

상태관리는 애초에 불완전하고 변화를 할 수 있단게 불안하니깐 그냥 그런 일 만들지말자 익숙해지지않으면 난해한 기법 코드를 결합시키는 방식은 명령형, 함수형을 다 배워서 적절하게 쓰는 기법들을 학습하게 됌

data type

데이터 타입의 Symbol은 고급텤닉~ 데이터 표기법 (리터럴) String은 문자열 표기해줄 때 ‘(작은 따옴표), “(큰 따옴표), `(백틱) 이 3개로 열고 닫으면 됌 백틱으로 표기하는건 템플릿 표기법.. type을 어떻게 다루느냐 강타입 약타입 데이터(값) 저장, 저장공간(변수)을 만들게 될 때 저장하게됌. 숫자 전용변수를 만들꺼야 여기에 문자형 넣으면 에러 띄우는게 강타입 타입이 있지만 숫자를 넣었다가 문자를 넣을 수도 있고 불리언을 넣을 수도 있는게 약타입언어 약타입의 단점이 많이 두드러지는 시대 -> js로 만드는 어플리케이션의 규모가 커져서 유연성떄문에 발견되는 문제가 많아짐

값은 왜 type이 있어야할까? 타입에 따라 cpu의 메모리를 읽을 때 몇칸을 쓰는지 알 수 있음

기계가 이해할 수 있는것에 가까우면 low-level/저수준 사람이 이해할 수 있는것에 가까우면 high-level/고수준 - js가 high level이지만 data type을 이해하기 위해선 low-level 선에서 생각해야함

javascript가 타입을 읽어서 계속 변환시켜주는게 본질적으로 따지면 느림