190610-TIL

Today I Learned

  • Tab UI를 만들었다.
  • Accordian UI를 만들었다.
  • Range Slider UI를 만들었다.
  • 셋을 합쳤다.
  • jQuery로 구현된 코드를 Vanilla JavaScript로 고쳤다.

✨UI Exercise

36. SPA

SPA (Single Page Application)

Single Page Application은 모던 웹 패러다임으로, 기본적으로 하나의 페이지로 구성된다. 하나의 페이지라는 것은 html 파일이 하나라는 뜻이다. 기존의 Sever-side 렌더링과 비교할 때 배포가 간단하고 Native application과 유사한 UX를 제공할 수 있다는 장점이 있다.

35. Closure

Purpose of Closure: Maintain Status

클로저의 주된 목적은 안전한 상태 유지를 하는 것이다. 다른 객체지향 프로그래밍 언어의 경우 private, public, protect 등의 접근 제한자(Access Specifier)를 제공하지만 자바스크립트에는 그런 기능이 없다. (ES6의 Class에 private이 도입된다고 하지만 아직 완벽하게 적용되지 않음) 자바스크립트의 클로저를 사용하면 상태를 안전하게 유지할 수 있다.

190605-TIL

Today I Learned

  • 오늘은 실행 컨텍스트를 배웠다.
  • 엄청 어렵다..
  • 변수 선언문을 배울 때부터 의문점이었던 실행 컨텍스트의 렉시컬 환경의 정체에 대해서 알게 되어서 속이 시원한 것 같다.

34. Execution Context

실행 컨텍스트(Execution Context)실행 가능한 코드를 평가하고 실행하기 위해 필요한 환경을 제공하고 코드의 실행 결과를 실제로 관리하는 영역이다.

Context는 문맥, 맥락이라는 뜻이다. 프로그램에도 맥락이 있다. 예를 들면 식별자가 어느 스코프에서 사용되었는지에 따라서 다른 값을 참조한다.

190604-TIL

Today I Learned

MongoDB

MongoDB는 Document-Oriented NoSQL Database이다. RDBMS의 Table을 Collection, Tuple를 Document라고 부른다.
RDBMS처럼 고정된 Schema가 존재하지 않고 하나의 Collection 내의 DOcument가 각각 다른 Schema를 가질 수 있다.

SASS

Sass(Syntactically Awesome StyleSheets)는 CSS pre-processor로 CSS의 단점을 보완하고 코드 재사용에 유리한 CSS를 생성하기 위한 CSS의 extension이다.

  • 변수의 사용
  • 조건문과 반복문
  • Import
  • Nesting
  • Mixin
  • Extend/Inheritance

등의 도구들을 제공한다.

한 일

  • Todos version 3을 만들었다.
  • MongoDB 서버를 연동
  • 복습하는 겸 네트워크 공부를 조금 했다.

190603-TIL

Today I Learned

  • 오후에 3분간 나가서 자바스크립트 키워드에 대해서 설명하는 시험을 봤다. 자바스크립트 원시타입과 객체타입의 차이에 대해서 발표했다. 💛 키워드 정리
  • Todo List Server가 있는 환경에서 실습하기 위해서 작업환경을 세팅했다.
  • Webpack과 Babel, Sass를 위한 작업 환경을 구성했다.
  • 호스팅 서비스를 이용해서 MongoDB를 설치했다.

Development Environment Setting

npm (node package manager) and Modularization

자바스크립트는 웹페이지의 보조적인 기능을 수행하기 위해 만들어진 언어로, 다른 범용 프로그래밍 언어와는 달리 모듈 기능이 없다.

모듈이란 애플리케이션을 구성하는 개별적인 요소를 말한다. 일반적으로 파일 단위로 분리된다. 모듈을 기능별로 분리해서 개발의 효율성과 유지보수성이 좋아진다.

그러나 자바스크립트는 파일을 나누었다고 해도 모듈을 로드했을 때 하나의 전역 스코프로 합쳐진다. 즉, 파일 스코프를 지원하지 않는다. 모듈은 그리고 모듈 내부에서 외부로 선택적으로 노출할 수 있는 기능이 있어야 하는데 자바스크립트는 그런 기능이 없었다.

ES6에서 자바스크립트에서도 <script type="module"></script>와 같이 모듈을 지원하지만, 2019년 6월 현재까지는 최신브라우저에서만 지원을 하므로 사용할 수 없다.

또한 대형 애플리케이션을 만들 때 모듈의 개수가 백 단위를 넘어갈 때 하나하나를 순서에 맞춰서 import하기 어렵다. 이런 문제를 Webpack과 같은 module bundler를 사용해서 하나의 파일로 만들어(module bundling) 해결할 수 있다.

Babel은 크로스브라우징을 위한 다운그레이드 작업 등의 전처리를 해준다.

Node.js에서는 CommonJS spec을 받아들여 RequireJS 로 모듈화를 구현하고 있다.

npm

npm은 자바스크립트 패키지 매니저로, Node.js에서 사용할 수 있는 모듈을 패키지화 해서 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 CLI를 제공한다. 여기서 패키지란 여러 모듈의 구조를 가지고 모여있는 것을 의미한다. 누구나 자신의 패키지를 공개할 수 있으므로 install할 때는 신뢰성 있는 패키지인지 확인해야 한다.

node-emoji 설치

npm emoji install

package.json이 없어서 안 깔림

Again

깔림

Babel Webpack 개발 환경 구축 1

Babel Webpack 개발 환경 구축 2

190531-TIL

Today I Learned

  • Ajax, Promise로 CRUD 구현
  • fetch, async 와 await도 사용해봤다

자바스크립트 키워드 정리

자바스크립트 키워드 20개

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×