본문 바로가기

분류 전체보기

(50)
191230 TIL 오늘의 공부 1.Linked list(연결 리스트) 연결 리스트는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되는 방식으로 데이터를 저장하는 자료 구조이다. 자바스크립트 배열로 비교하자면 array = [1, 2, 3]이라는 배열이 있다면 여기서 1, 2, 3이 데이터고 array[0], array[1], array[2]가 주소이다. 자료의 처음을 head라 하고, 끝을 tail이라고 한다.Linked list의 method는 add(date 삽입), remove(data제거), search(position에 있는 노드를 찾기)가 있다. 2.graph(그래프) 그래프 자료구조는 노드와 그 노드를 연결하는 간선을 하나로 모아 놓은 자료 구조로 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료 구조..
JS Instantiation Patterns ES6에서 class 문법이 나오기 전까지 자바스크립트는 아래 4가지 방법으로 class를 선언했다. 이번 글에서는 이러한 4가지 방법을 공부하면서 정리해봤다. 1.Functional 생성자 함수에 모든 속성값과 메소드를 할당하는 방식 인스턴스격인 각 객체에 모든 메소드가 할당되어 다른 방식에 비해 상대적으로 메모리를 많이 차지한다. 2.Functional shared Functional와는 다르게 별도의 method객체를 만들어 생성하는 방식이다. 이를 위해 생성자 함수와 method객체를 연결해 줄 함수(여기선 extend)를 만들어야한다. 3.Prototypal 위에서는 별도의 method객체를 만들었지만 여기서는 Object.crate()를 이용해서 연결해준다. 4.Pseudoclassical 공..
191227 TIL 오늘의 공부 oop가 무엇인지 배웠다. oop란 객체지향프로그램이란 뜻으로 컴퓨터 프로그램을 Object의 모임으로 파악하고자 하는 프로그램 패러다임 중 하나다. 먼 과거에 있던 술게임 시장에 가면 야채도 있고, 생선도 있고, 고기도 있고~~처럼 이런식으로 상위 객체에서 하위 객체가 연결되고 상호작용 할 수 있다. 이러한 oop는 추상화, 캡슐화, 상속, 다형성이라는 특징을 가지고 있다. javaScript에서 Object를 생성하는 여러가지 방법을 배웠다. 1.Functional: 함수를 통해서 객체를 생성한다. 2.Functional Shared: Functional과 유사하지만 메모리를 좀 더 효율적으로 사용 가능하다. 3.Prototypal: Functional Shared와 유사하지만 Objec..
자료구조 stack, queue 자료구조란?? 자료구조란 쉽게 말해 데이터를 어떠한 가져오는 방식을 말한다. 비유하자면 짱구의 장난감상자에 장난감은 마구잡이로 들어가 있고, 철수의 장난감상자는 장난감이 잘 정리되어있다. 그래서 짱구는 액션가면장난감을 찾고싶지만 상자 안에 어디있는지 몰라 찾는데 오래 걸렸다. 반대로 철수는 쉽게 찾을 수 있었다. 여기서 장난감은 데이터이고 장난감상자가 데이터구조라고 할 수 있다. 즉 데이터구조는 데이터를 효율적으로 저장하고 꺼내기 쉽게 만드는 것으로 생각해 볼 수 있다. 이러한 자료구조에 종류에는 여러가지가 있는데 이 중에서 stack과 queue에 대해서 알아본다. stack stack은 뒤로 넣고 뒤로만 뺄 수 있는 자료구조이다. 자바스크립트 배열에서 pop과 push만 쓸 수 있다 생각하면 편하다...
191226 TIL 오늘의 공부 페어와 함께 Recursion 문제를 같이 풀었다 stringifyJSON과 parseJSON 문제를 풀었는데 parseJSON은 끝내 풀지 못했다. this와 arrow 함수에 대하여 배웠다. 자바스크립트에서 this는 window, function, method, construction mode call과 apply호출 시마다 다른 의미를 가진다. arrow함수는 일반 function과 다르게 argument를 바인딩하지 않고, call과 apply의 this바인딩을 무시해버린다. 그렇기 때문에 적절한 상황에서 arrow함수와 일반function을 잘 사용해야 한다.
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..
191224 TIL 너무 힘들었던 스프린트 과제와 크리스마스 덕분에 블로그 글을 조금 늦게 올리게 되었다. 오늘의 하루 코드를 테스트 하는 방법과 테스트가 왜 중요한지에 대하여 배웠다. 테스트 프로그램 Jest를 설치해 테스트코드를 작성하고 npm run test:이름 명령으로 테스트했다. 테스트가 번거로울수 있지만 반복을 줄이고 코드의 안정성을 높여줄 수 있다 ESLint를 통해 코딩작성을 통일성 있게 할 수 있다. eslint를 설치하면 eslintrc.json이 생기고 이 문서에 다양한 조건을 설정할 수 있다. 코드를 작성할 때 조건과 맞지 않으면 오류가 나오기 때문에 이를 통해 협업 시 코드의 모양새를 통일 할 수 있다. 에어비엔비에서 제공하는 룰을 많이 쓴다고 한다. scope와 closure를 다시 복습했다 sc..
NVM NVM이란?? 자바스크립트가 돌아가는 환경 Node 이 프로그램도 다른 프로그램처럼 다양한 버전이 존재한다. 일반적으로 Node는 가장 최신 버전과 LTS버전(Long Term support)를 기본적으로 제공하지만 개발을 하다 보면 다양한 버전에 대응해야 할 일이 생기게 된다. 예를 들면 지금 버전에서는 코드가 잘 돌아가는데 다른 버전에서는 돌아가지 않을 가능성이 있다는 것이다. 이런 경우 같이 페어를 하는 동료가 다른 버전을 가지고 있을 때 장애가 될 수가 있다. 이럴 때 다시 제거하고 설치하는 번거로움을 없애 줄 프로그램이 바로 NVM이다. NVM은 Node Version Manager의 약자로 간단한 명령어로 Node를 설치하고, 다양한 Node 버전을 쉽게 옮길 수 있다. NVM도 역시 프로그램..