본문 바로가기

개발/글로 정리하는 JS

(5)
Data type Type? 오늘 주제인 Javascript의 Data type에 대해 알아보기 전에 Type이란 무엇이고, 이를 왜 나누어서 사용하는 것인지에 대해 간단히 알아보자. 먼저 위의 내용에 접근하기에 앞서 poiemaweb에서는 '프로그래밍' 의 정의로부터 설명을 시작한다. 프로그래밍은 변수를 통해 값을 저장하고 참조하며 연산자로 값을 연산, 평가하고 조건문과 반복문에 의한 흐름제어로 데이터의 흐름을 제어하고 함수로 재사용이 가능한 구문의 집합을 만들며 객체, 배열 등으로 자료를 구조화하는 것이다. 여기서 주목해야 할 부분은 프로그래밍은 변수를 통해 ~~~ 한다는 점이다. 그렇다면 변수 란 무엇일까 ? 변수는 값의 위치(주소)를 기억하는 저장소이다. 여기서의 값의 위치 란 메모리 상에서의 위치로, 메모리 상에..
Scope Scope scope란 기본적인 사전적 의미로는 ' 범위 ' 라는 의미를 가지고 있고 프로그래밍적인 정의를 찾아보기 위해 항상 많이 배우는 poiemaWeb의 한 구절을 가지고 와보자면 스코프는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다. 자바스크립트는 이 규칙대로 식별자를 찾는다. 라고 한다. 이는 식별자가 자신이 어디에서 선언됐는지에 의해 자신이 유효한(다른 코드가 자신을 참조할 수 있는) 범위를 가지게 되는데, 이를 스코프(Scope) 라고 부른다는 것이다. 그렇다면 왜 스코프라는 개념이 있어야 했던 것일까 ? 이에 대해서도 만약 스코프가 없게 된다면 같은 식별자 이름은 하나의 프로그램 ..
sync/ async JS 개념에 대해서 공부하다보면 항상 여기저기서 심심치않게 자주 나타나는 용어가 있다. 그것은 비동기 에 대한 내용이다. 그러면 비동기의 반대 개념인 동기와는 어떤 차이가 있고, 정확히 두 동작이 어떻게 진행되는지에 대해 의문이 생겼다. 자주 나오는 만큼 확실하게 개념을 잡고 넘어가 보는게 좋겠다는 생각으로 여러가지 글을 찾아보고 공부해 보았다. 기본 개념 단순하게 일단 기본 개념부터 보자. ' 동기 '방식은 이전 글중 하나인 Promise, async/ await 에서도 간단하게 언급한 적이 있다. 그때 언급한 내용을 잠시 들고와보자면 js의 기본 동작은 'Run to Complete' , 즉 하나의 task가 끝나면 다음 task를 실행하는 동기식 처리방식인데, 이보다 더 많은 동작을 하기 위해서는 ..
Execution Context 개념 ..? 코드가 실행될 때, Javascript는 실행해야하는 여러가지 코드들의 초안을 그린다. 이에 대한 순서로는 컨트롤이 실행 가능한 코드로 이동하면 논리적 스택 구조를 가지는 새로운 실행 컨텍스트 스택이 생성된다. 스택은 LIFO(Last In First Out, 후입 선출)의 구조를 가지는 나열 구조이다. 전역 코드(Global code)로 컨트롤이 진입하면 전역 실행 컨텍스트가 생성되고 실행 컨텍스트 스택에 쌓인다. 전역 실행 컨텍스트는 애플리케이션이 종료될 때(웹 페이지에서 나가거나 브라우저를 닫을 때)까지 유지된다. 함수를 호출 하면 해당 함수의 실행 컨텍스트가 생성되며 직전에 실행된 코드 블록의 실행 컨텍스트 위에 쌓인다. 함수 실행이 끝나면 해당 함수의 실행 컨텍스트를 파기하고 직전의..
객체 지향형 프로그래밍(OOP) 갑자기 무슨 ...? Javascript 개념에 대해서 전체적으로 다시 공부하는 과정에서 단순하게 글을 읽고 이해하는 것도 좋지만, 이렇게 글로 남기면서 한번 더 리마인드 할 수 있고, 아무래도 공부하고서 남는(?) 게 있으면 좋겠다는 생각으로 정리하기 시작. Javascript 의 언어적 특징 ? 객체 기반 동적 ( 타입 명시할 필요 x ) 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있습니다. OOP (JS 하면 아무래도 객체 지향형 언어라고 할 수 있겠다.) 그래서 OOP란 ..? 객체지향 프로그래밍은 실세계에 존재하고 인지하고 있는 객체(Object)를 소프트웨어의 세계에서 표현하기 위해 객체의 핵심적인 개념 또는 기능만을 추출하는 추상화(abstraction)를 통해 모델링하려는..