본문 바로가기

개발공부

(14)
ES6 class와 super ES6 - Class 자바스크립트는 다른 언어와는 다르게 class라는 개념이 없다. 그래서 prototype의 상속을 통해 class의 인스턴스들을 구현했었다. 그런데 ES6 이후 Class라는 문법을 새로 등장하였고 과거 사용하던 Pseudoclassical보다 더욱 단순하고 명확하게 객체를 생성하고 상속을 다룰 수 있게 되었다. ※단지 문법을 통해서 비슷하게 구현한 것이지 class라는 개념이 생긴 것은 아니다. Pseudoclassical과의 비교 우선 기존 방식인 Pseudoclasssical 방식으로 간단한 생성자 함수와 인스턴스객체를 만들고 비교해보려고 한다. SmartPhone이라는 생성자 함수를 만들고, iphone이라는 인스턴스객체를 만들었다. 이제 아래는 이것을 class문법으로 바꿔..
시간복잡성(Time Complexity) 시간복잡성이란?? 시간복잡성이란 어떤 문제를 해결하는데 걸리는 시간과 입력의 함수관계를 의미한다. 이때 실행시간을 기준으로 잡지 않고 연산의 횟수로 기준을 잡는데 그 이유는 실행시간은 플랫폼마다 다른 실행시간이 나오기 때문이다. 시간복잡성 표기법 시간복잡성의 표기는 다음과 같이 3가지가 있다. 최상의 경우 : 오메가 표기법 (Big-Ω Notation) 평균의 경우 : 세타 표기법 (Big-θ Notation) 최악의 경우 : 빅오 표기법 (Big-O Notation) 이 중에서 가장 많이 쓰이는 것은 빅오 표기법이다. 빅오 표기법은 만약 0(log n) O(n) O(n^2) 세가지 경우가 나올 때 가장 느린 속도를 대표로 하는 것이다. Big-O의 표기의 종류 Big-O에서의 시간복잡성 종류는 다음과 ..
JS Instantiation Patterns ES6에서 class 문법이 나오기 전까지 자바스크립트는 아래 4가지 방법으로 class를 선언했다. 이번 글에서는 이러한 4가지 방법을 공부하면서 정리해봤다. 1.Functional 생성자 함수에 모든 속성값과 메소드를 할당하는 방식 인스턴스격인 각 객체에 모든 메소드가 할당되어 다른 방식에 비해 상대적으로 메모리를 많이 차지한다. 2.Functional shared Functional와는 다르게 별도의 method객체를 만들어 생성하는 방식이다. 이를 위해 생성자 함수와 method객체를 연결해 줄 함수(여기선 extend)를 만들어야한다. 3.Prototypal 위에서는 별도의 method객체를 만들었지만 여기서는 Object.crate()를 이용해서 연결해준다. 4.Pseudoclassical 공..
자료구조 stack, queue 자료구조란?? 자료구조란 쉽게 말해 데이터를 어떠한 가져오는 방식을 말한다. 비유하자면 짱구의 장난감상자에 장난감은 마구잡이로 들어가 있고, 철수의 장난감상자는 장난감이 잘 정리되어있다. 그래서 짱구는 액션가면장난감을 찾고싶지만 상자 안에 어디있는지 몰라 찾는데 오래 걸렸다. 반대로 철수는 쉽게 찾을 수 있었다. 여기서 장난감은 데이터이고 장난감상자가 데이터구조라고 할 수 있다. 즉 데이터구조는 데이터를 효율적으로 저장하고 꺼내기 쉽게 만드는 것으로 생각해 볼 수 있다. 이러한 자료구조에 종류에는 여러가지가 있는데 이 중에서 stack과 queue에 대해서 알아본다. stack stack은 뒤로 넣고 뒤로만 뺄 수 있는 자료구조이다. 자바스크립트 배열에서 pop과 push만 쓸 수 있다 생각하면 편하다...
ESLint ESLint란?? ESLint는 자바스크립트 문법 중 에러가 있는 곳에 표시를 달아놓는 도구를 의미한다. ESLint는 사용자가 직접 정의한대로 코드를 점검하고, 에러가 있으면 표시해준다 그리고 문법 에러뿐만 아니라 코딩 스타일도 정할 수 있다. 그렇기 때문에 ESLint로 설정해두면 여러 사람이 협업을 해도 마치 한 사람이 코딩을 한 효과를 줄 수 있다. ESLint설치 설치는 간단하다 공식문서에서 쉽게 설치법과 명령어를 볼 수 있기 때문이다. https://eslint.org/docs/user-guide/getting-started Getting Started with ESLint Getting Started with ESLint ESLint is a tool for identifying and re..
NVM NVM이란?? 자바스크립트가 돌아가는 환경 Node 이 프로그램도 다른 프로그램처럼 다양한 버전이 존재한다. 일반적으로 Node는 가장 최신 버전과 LTS버전(Long Term support)를 기본적으로 제공하지만 개발을 하다 보면 다양한 버전에 대응해야 할 일이 생기게 된다. 예를 들면 지금 버전에서는 코드가 잘 돌아가는데 다른 버전에서는 돌아가지 않을 가능성이 있다는 것이다. 이런 경우 같이 페어를 하는 동료가 다른 버전을 가지고 있을 때 장애가 될 수가 있다. 이럴 때 다시 제거하고 설치하는 번거로움을 없애 줄 프로그램이 바로 NVM이다. NVM은 Node Version Manager의 약자로 간단한 명령어로 Node를 설치하고, 다양한 Node 버전을 쉽게 옮길 수 있다. NVM도 역시 프로그램..