상속과 프로토타입 - JavaScript | MDN JavaScript는 동적 타입이고 정적 타입이 없기 때문에, (Java 또는 C++와 같은) 클래스 기반 언어에 경험이 있는 개발자에게는 약간 혼란스럽습니다. developer.mozilla.org 프로토타입(Prototype) 자바스크립트는 prototype 기반의 객체지향 프로그래밍 언어이다. 프로토타입의 직역은 '원형'입니다. 이름 그대로 프로토타입은 다른 객체로부터 상속을 받는 객체의 원형을 나타냅니다. 만들어진 객체는 또 다른 프로토타입으로 다른 객체의 원형으로 사용될 수 있죠. [[Prototype]] 자바스크립트의 모든 객체는 내부슬롯 [[Prototype]]을 가지는데요. 여기에는 해당 객체의 프로토타입에 대한 참조가 저장됩니다. 참조될..
아래글에서 이어지는 내용입니다. [JS] 자바스크립트가 데이터를 할당하는 방법 (feat. 불변성, 가변성) 도서 코어 자바스크립트를 내용 일부를 정리한 글입니다. 자바스크립트의 데이터 할당 과정과 변수의 불변성과 가변성에 대하여 자바스크립트의 타입 자바스크립트의 데이터 타입은 크게 원시 munak.tistory.com 서론 이전 글에서 원시값과 객체의 데이터 할당에 대해 작성했었습니다. 데이터 할당 과정이 다르니, 복사의 과정에도 차이가 발생하게 됩니다. 원시값(Primitive values)의 복사 아래 간단한 예시를 들어 보겠습니다. let name1 = 'Rimo' let name2 = name1 console.log(name1, name2) // Rimo, Rimo name1은 'Rimo'라는 ..
도서 코어 자바스크립트를 내용 일부를 정리한 글입니다. 자바스크립트의 데이터 할당 과정과 변수의 불변성과 가변성에 대하여 자바스크립트의 타입 자바스크립트의 데이터 타입은 크게 원시값과 객체, 이렇게 두 종류로 나눌수 있습니다. 원시 값(Primitive values) 다음과과 같은 종류가 있으며, 불변성을 가집니다. Number String Boolean Symbol Null Undefined BigInt 객체(Object) 참조형이라고도 하며, Object 하위 여러 타입이 속합니다. 가변성을 가집니다. Array Function RegExp Map Set WeakMap WeakSet 여기서 말하는 불변성과 가변성이 뭘까요? 아래에서 살펴보겠습니다. 원시 값(Primitive values)의 데이터 할..
함수형 프로그램밍과 관련해 공부한 내용을 정리합니다. 객체지향 패러다임에서 함수형 패러다임으로 넘어온다는 것은 무엇인가 패러다임? '내가 짠 코드는 좋은 코드일까?' 좋은 코드에 대해서 명확한 기준은 없지만 적어도 구조적으로 좋은 설계를 가지고 있을수록 좋은 코드가 된다는 것을 다들 어렴풋이 알것이라 생각합니다. 프로그램이 커질수록 우리는 좋은 설계를 유지하려는 노력이 필요합니다. 좋은 설계는 한번의 작업으로 끝내는 것이 아니라, 코드 전반에 걸쳐 일관적인 원칙과 규칙으로 작성되어야 만들수 있죠. 이러한 원칙의 방법이 되는 관점을 패러다임이라고 부릅니다. 함수형 패러다임 객체지향 프로그래밍 패러다임은 객체를 중심으로 사고하고 프로그램을 작성하는 것. 함수형 프로그래밍 패러다임은 데이터를 함수로 연결하는 ..
둘 다 자바스크립트 아닌가요? 뭐가 다른거죠? 언어는 같으나 실행 환경과 목적이 다릅니다❗ Javascript Javascript는 HTML에 종속되어 있는 스크립트 언어이며, 동적인 HTML DOM 조작을 위해 사용됩니다. Javascript를 해석하는 주체는 웹 브라우저(구체적으로 말하면 웹 브라우저에 탑재된 엔진)입니다. 대표적으로 Chrome에서 사용한 V8이 있죠. Chrome : V8 Firefox : SpiderMonkey Safari : JSCore MS Edge : Chakra Opera : Carakan Adobe Flash : Tamarin Javascript는 웹 브라우저에서 HTML이라는 문서를 다루는 용도로 사용되는 언어라고 할 수 있습니다. console.log(this); /..
npm이란? Node.js의 패키지를 관리할 수 있는 도구입니다. 모듈들을 패키지화하여 모아둔 저장소의 역할과, 패키지 설치 및 관리를 위한 CLI를 제공합니다. 일반적인 경우 Node.js를 설치하면 자동으로 설치됩니다. # 설치 버전 확인 node -v npm -v package 설치 npm에선 누구나 자신이 작성한 패키지를 공개할 수도 있고 필요한 패키지를 검색하여 재사용할 수도 있습니다. npm install 패키지명 # i로 축약 가능 npm i 패키지명 # 버전 지정 가능 (Semantic Versioning) npm i 패키지명@버전이름 # 한번에 여러개의 패키지 설치 가능 npm i 패키지명 패키지명2 package 설치 확인 # 설치된 패키지 확인 npm list npm ls # dept..
Node.js v16.13.1 MySQL v8.0.28 버추얼 박스 우분투 가상 머신에서 진행합니다. Node.js와 MySQL을 연동하고 RowDataPacket에서 값을 뽑아내는 방법을 다룹니다. 모듈과 코드를 저장할 적절한 폴더를 하나 생성해 줍니다. 저는 Node_MySQL로 이름을 정했습니다. ㅎㅎ 그리고 해당 디렉토리에서 터미널을 열어줍니다. 이제 모듈을 설치하겠습니다. 아래 명령어를 실행합니다. $ npm install express mysql 그리고 js파일을 하나 만들어 해당 폴더에 저장합니다. 저는 gedit를 사용하겠습니다. 그리고 MySQL 모듈을 탑재하고 접속할 계정과 사용할 데이터베이스의 정보를 입력해 줍니다. host : 호스트 user : 계정 password : 비밀번호 d..
Socket.IO의 공식 사이트 시작 글인 채팅 프로그램에 대해 분석합니다. Get started | Socket.IO Get started In this guide we’ll create a basic chat application. It requires almost no basic prior knowledge of Node.JS or Socket.IO, so it’s ideal for users of all knowledge levels. Introduction# Writing a chat application with popular web application socket.io Node.js v16.13.1 npm v8.3.0을 기준으로 작성된 글입니다. 버추얼 박스 우분투 가상 머신에서 진행합니다..