코드스테이츠의 첫날이 밝았다. 첫날에는 변수의 선언과 자료형에 관한 수업을 들었다. 오랜만에 만나는 JS인만큼 나름대로 나만의 개념을 정립하며 나아갈 생각이다. 오늘은 그중에서 변수의 선언 방식에 관해 공부해 적는다js의 변수선언 방식 var, let, const의 차
자바스크립트를 조금 더 이해하기위해 자바스크립트의 구동방식에 대해 구글링해보았다. 그 중 이해가 매우 어려운 글도 있었고, 전혀 이해하지 못했던 글도 있었다. 이해가 되었던 부분을 기반으로 기록을 위해 서술하고자 한다.자바스크립트의 엔진 중 유명한 것이 구글의 V8엔진
앞선 블로그에 js의 구동방식에 관해 서술한 적이 있다. 해당 블로그를 작성하며 싱글 쓰레드(‘single thread’)와 이벤트루프(‘event loop’)에 관한 내용을 적는다.우선 쓰레드라 함은 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. 싱글 쓰레
js는 기본타입(primitive)와 참조타입(reference)로 나눌 수 있다.기본타입은 Number, String, Boolean, undefined,null 등이 있다. 이러한 값들은 본질적으로 단순하며 여러 값으로 구성된 복합 값으로 표현할 수 없다. 기본타입
웹페이지는 6개의 과정을 거쳐 만들어 지는데 해당 과정을 CRP(Critical Rendering Path)라고 한다. CRP는 다음과 같은 과정을 가진다.DOM트리 구축CSSSOM 트리 구축Javascript 실행렌더 트리 구축레이아웃 생성페인팅이 과정은 4번재 렌더
스코프(scope)란 변수에의 접근성과 생존기간을 의미한다. 이는 달리 말하자면 변수의 참조 범위를 뜻하기도 한다.JS의 스코프는 전역변수와 지역변수로 나뉠 수 있는데, 전역변수는 의미 그대로 전역에서, 코드 어디에서라도 참조할수 있는 변수를 의미하며 지역변수는 정의된
저번의 스코프(Scope)에 이어 오늘은 클로져(Closures)에 대해 알아보겠다.클로져란 내부함수가 외부함수의 맥락(context)에 접근할 수 있음을 의미한다. 외부함수는 외부함수의 지역변수를 사용하는 내부함수가 소멸될때 까지 소멸되지 않는 특성을 의미한다.위의
객체 지향 프로그래밍(OOP, Object Oriented Programing)은 어떤 동작이나 로직보다는 객체를 중심으로 프로그래밍 하는 패러다임을 의미한다. 초기의 프로그래밍은 순차적인 명령의 조합으로 진행되는 절차적 프로그래밍이였다. 이젠 현대의 많은 언어들은 객
JS는 기본적으로 객체지향으로 만들어진 언어가 아니다. 따라서 ec6이전에는 class조차 없었으며 class가 없으니 상속기능도 없었다. 그래서 보통 프로토타입(prototype)을 기반으로 상속을 흉내내도록 구현했었다.위의 방식대로 사용하게 된다면 메모리에는 tem
우리가 코드를 작성할때 고려해야 할것은 너무 많지만 그중에서도 가장 고려해야 할것은 데이터의 입/출력 형태를 파악하거나 결정해야 한다. 그리고 입력 => 출력 사이의 어떤 로직이 필요한지를 결정해야 한다. 이런 과정들이 연쇄적으로 연결,확장 되면서 우리가 말하는 프로그
그래프 형 자료 구조란 노드(Node, 점)과 그 노드를 연결하는 간선(Edge, 선)을 하나로 모아놓은 구조를 일컫는다. 즉, 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조이다. 또한 그래프는 여러개의 고립된 부분 그래프(Isolated Graph)로 구성
앞선 블로그에 기술했듯이 자바스크립트는 동기적으로 작동된다. 이 말은 하나의 작업이 수행이 끝나고 나서야 그다음 작업을 수행하게 된다는 것을 의미한다. 하지만 대부분의 웹을 살펴보면 여러개의 작업이 동시에 진행되는듯한 느낌을 받을 수 있다.비동기작업은 A작업을 수행하는
ajax(Asynchronos Javascript And XML)는 자바스크립트를 통해서 서버에 데이터를 요청하는것을 의미한다. 이는 html form태그를 통하지 않기에 새로운 html페이지로 갈 필요도 없고, 새로고침도 할 필요가 없다. 또한 일부분만 새로이 로딩되
Node.js는 구글 크롬의 자바 크롬의 JS엔진(V8)로 빌드된 JS런타임이다. 여기서 JS엔진이란 JS로 쓰여진 스크립트로 기계가 실행 가능한 과정을 만들어 내는 머신을 의미한다. JS런타임은 프로그램에 실행동안 사용가능한 내장된 라이브러리를 의미한다.JS는 일반적
기존 리액트 앱에서는 보통 하나의 루트 컴포넌트(ex. App.js)에서 상황을 관리했다. 즉, 대부분의 경우 루트 컴포넌트를 중간자로 사용해 서로 소통이 되는 상황이다.A 컴포넌트와 B컴포넌트가 서로 하나의 state를 공유하고 소통을 하려면 App.js를 경유해야만
리액트는 페이스북이 만든 사용자 UI구축을 위한 라이브러리이다. 오직 사용자의 view에만 초점을 맞추고 있다. 그래서 Routing같은 기술은 리액트에 존재하지 않는다. 이러한 리액트는 다음과 같은 3가지의 특징을 지닌다.JSX문법은 자바스크립트 안에서 HTML문법
앞서 두 번의 프로젝트에서 프론트엔드로 참여해 react를 이용한 웹 서비스를 구축하였다. 하지만 막상 면접에서 state와 props에 대한 것을 묻자 머리가 하얘지는 나를 발견할 수 있었다. 숱하게 사용했었던 state와 props지만 정확히 알고있다고 할 수 있