전체 글
-
언젠가 개발 공부를 포기하고 싶어지는 순간이 온다면 그 때 읽으려고 남기는 글studying coding 2020. 5. 10. 04:07
대학생 시절 개발에 대한 지식이 전무했을 때, 앱 서비스 창업에 도전한 적이 있었다. 수개월에 걸쳐 아이디어 회의를 하고 앱 기획안, 스토리보드를 만들어내어 투자 유치를 받았다. 2000만원이라는 금액을 투자 받아 프리랜서 개발자를 컨택해 외주를 맡겼지만 믿고 맡긴 외주업체의 이런저런 사정(변명)으로 앱은 결국 투자 기간 내 완성되지 못했고 투자금은 회수되었다. 개발자라는건 말 그대로 기술을 가진 사람이다. 나에게 기술을 활용할 수 있는 능력만 있다면, 무자본 상태에서도 2000만원을 투자받지 않아도 노트북 하나로 언제 어디서나 내 스스로 만들어낼 수 있는 것이 무궁무진하다. 이 기술을 배우는 과정이 힘들지라도 이건 그냥 과정일 뿐 한 번 복습하고 두 번 복습해서 언젠가 개발을 할 수 있는 사람이 되기만..
-
ES6 - Class / superconcept/javascript - ES6 2020. 5. 10. 02:53
요기서 ES5로 이렇게 만들어줬던 코드를 ES6로는 이렇게 간단하게 표현할 수 있다. class Human { constructor(name) { this.name = name; } sleep() { console.log('zzz') } } let john = new Human('john'); class Student extends Human { constructor(name){ super(name); } learn() { console.log('study hard') } } let oana = new Student('oana'); john.sleep(); // 'zzz' oana.learn(); // 'study hard' oana.sleep(); // 'zzz' 그런데 객체지향에서는 다형성이라는 특징..
-
Subclassing - understanding prototype chain (Object.create()의 활용법)concept/javascript 2020. 5. 10. 01:49
출처 : 코드스테이츠 내가 볼려고 기록해놓는 블로그 이 포스팅은 ES6의 Class가 어떻게 작동하는지 그 원리를 알아보는 포스팅이다. ES6가 나오기 전에는 이런 방식으로 상속관계를 만들어줬다. 먼저 1. 부모-자식 상속관계에 대해서 자세히 알아보고 2. 이것을 HTML에서 활용하는 방법 3. Object.create()를 활용해 상속관계를 만드는 방법을 알아볼 것이다. 1. 부모-자식 상속관계 먼저 부모자식 상속관계에 대해서는 이 2장의 슬라이드로 한 눈에 볼 수 있다. 즉, Human.prototype 과 steve.__proto__가 같은 것이다. __proto__들은 자신의 부모의 특성을 상속받는다. 그런데 모든 객체는 Object 이다! 그래서 객체들은 Object의 특성들을 상속받는 것이다...
-
prototype vs __proto__ vs constructorconcept/javascript 2020. 5. 9. 00:29
출처 : 생활코딩 먼저 함수란 무엇인가 부터 알아보자 function Person(){} 자바스크립트에서 함수는 독특한 녀석이다. 함수에서 {} 안에는 statements 가 들어간다. 그런데 이건 동시에 객체(object)이기도 하다 ?!?! 그러니까 var Person = new Function(); 이랑 똑같음 function 은 window에 기본으로 정의된 Function의 instance이다. 여기서 중요한 포인트는 자바스크립트에서 함수는 객체이기 때문에 property를 가질 수 있다!! function Person(name, first, second){ this.name = name; this.first = first; this.second = second; } 만약, 이런 코드가 있다면?..
-
Instantiation Patterns (인스턴스화 패턴)concept/javascript 2020. 5. 8. 19:38
ES6 에서는 Class 라는 생성자 함수가 생겨서 instance를 쉽게 만들 수 있다. 하지만 ES6가 나오기 전 까지는 어떻게 instance를 만들었을까? 그런거 알 필요 없고 그냥 Class 쓰면 되지 않아? 라고 생각할지도 모르겠지만 이 과정에 대해서 더 자세히 공부하면 응용이 더 쉬워지겠지? 그런데 Class가 무엇이냐. Class의 개념을 먼저 짚고 가려고 한다. Class는 하나의 정형화된 모델을 만들어 두고 그 모델을 기반으로 복제품을 만들기 위해 사용하는 것이다. 즉, 옛날에는 책을 하나 만들기 위해 일일히 다 손으로 썼어야 했다면 금속활자가 만들어진 후 다량의 책을 빠른 시간에 찍어낸 세기의 발명과도 같은 것! 여기서 Class는 금속활자인 것이다. 자세한 포스팅은 2020/04/0..
-
OOP (Object Oriented Programming) - 객체 지향 프로그래밍concept/javascript 2020. 5. 8. 18:00
본 포스팅에서는 컴퓨터 세상에서 전반적으로 프로그래밍이 어떤 것인지 먼저 알아 보고 그 중에서도 자바스크립트의 특징인 객체 지향 프로그래밍에 대해서 알아볼 것이다. 먼저 객체 지향 프로그래밍에 대해서 알아보기 전에 컴퓨터 프로그래밍이 무엇인지 알아보자. 그래서 지금까지 코드 짜는 것을 열심히 배우긴 배웠는데.. (내가 프로그래밍을 하고 있는게 맞나 모르겠네) 그럼 컴퓨터 프로그래밍이 뭐지? 컴퓨터 프로그래밍이란? : 알고리즘의 모음 : step by step 프로세스의 모음이다. 그럼 그 프로그래밍을 어떻게 하지? 프로그래밍 언어를 통해서 해야한다! 프로그래밍 언어는 프로그래머가 프로그램을 개발할 수 있도록 도와주는 tool 이다. 언어에는 3가지 타입이 있다. 1. Machine Languages (기..
-
이 문제들을 다 풀면 graph, tree 정복!problem 2020. 5. 7. 00:45
Q. 그래프에 대한 설명으로 틀린 것을 모두 고르면? A 정점(vertex)과 간선(edge)로 이루어져 있다. B 간선이 방향을 가지는 방향 그래프와, 간선에 방향이 없는 무향 그래프로 나뉜다. C 순환 구조를 가질 수 있다. D 루트 정점이 존재한다. E 그래프의 간선은 모두 같은 가중치 값을 가져야 한다. 더보기 answer B, D 그래프의 간선은 모두 같은 가중치 값을 가져야 한다. X : 간선마다 가중치가 다른 가중치그래프가 있음 루트 정점이 존재한다. X : 이것은 트리에 대한 설명 Q. 다음 그래프에서 Vertex C의 in degree와 out degree의 합은? 더보기 answer 3 Q. 무향 그래프를 인접 행렬(Adjacent Matrix)로 구현할 때 차지하는 메모리의 양은? (..
-
이 문제들을 다 풀면 linked list, hash table 개념 정복!problem 2020. 5. 7. 00:18
Q. 연결리스트에 대한 설명으로 맞는 것을 모두 고르면? A 연결 리스트는 특정 인덱스의 노드를 찾을 때 배열보다 빠르다는 장점이 있다. B 단일 연결 리스트에서 각 노드는 자신의 이전 노드를 알 수 없다. C 연결 리스트는 반드시 리스트의 끝(tail)에만 노드를 추가해야 한다. D 배열보다 메모리를 더 효율적으로 사용할 수 있는 자료구조이다. E 이중 연결 리스트는 하나의 값을 저장하기 위해 2개의 노드가 필요하다. 더보기 answer B, D B 단일 연결 리스트에서 각 노드는 자신의 이전 노드를 알 수 없다. (이것은 이중연결리스트에 대한 설명!) D 배열보다 메모리를 더 효율적으로 사용할 수 있는 자료구조이다. A는 맞는 설명 : 배열의 시간복잡도는 1이다. 각각의 엘리먼트가 인덱스로 접근에 가..