전체 글

전체 글

    코틀린 이란

    코틀린의 목표 코틀린의 목표는 Java 의 대안 을 제공하는 것 이었다. 2011년 7월에 JetBrains 가 (Java 플랫폼용 언어인) Kotlin 을 발표했다. 이름은 러시아 상트페테르부르크 근처의 코틀린 섬 에서 유래했다. 코틀린이란? JetBranins 에서 만든 언어로, 명확하고 간결하여 쉽게 읽을 수 있다고 한다. 다양한 분야에서 사용할 수 있다 mobile, server-side, desktop applications, making useful frameworks, making libraries IntelliJ IDEA, Eclipse, Android Studio 에서 사용 가능하다. Multiplatform 언어 코틀린은 다양한 플랫폼에서 사용할 수 있는 언어이다. JVM Kotlin ..

    [프로그래머스] Lv.2 게임 맵 최단거리 (BFS) + 반례 14개, 연습용 좌표판 PDF

    게임 맵 최단거리 시작 지점부터 도착 지점까지 최단거리로 방문했을 때, 얼마나 걸리는지를 물어보는 문제이다. 예제의 경우 11 이다. 최단거리가 DFS 가 아닌 BFS 인 이유 한 지점에서 갈 수 있는 위치 (동일 depth) 를 순차적으로 방문해야 한다. 따라서 가능한 경우의 수를 queue 에 쌓아서 동일 depth 에서 처리해줘야 한다. DFS 는 동일 depth 를 순차적으로 방문하는 것이 아니라, depth 를 파고들어간다. (계속해서 함수를 호출한다) 따라서 최단경로가 아님에도, 이미 간 길을 그대로 가버린다. 풀이 코드 구조 한 위치(0, 0)에서 시작한다. 다음 위치로 갈 수 있는지 검사한다. (가지치기) 갈 수 있는 위치들에 대해서 후보 리스트(candidates) 를 만든다. 이 때 c..

    form, XHR, AJAX, jQuery.ajax, Fetch

    XHR이 나오기 이전의 서버와의 통신 XHR, AJAX, jQuery.ajax(), Fetch를 보기 전에 XHR이 나오기 전에는 어떻게 서버와 통신했는지를 알아보자. form 기존의 웹 애플리케이션은 브라우저에서 폼을 채우고 이를 웹 서버로 제출(submit)을 하면 하나의 요청으로 웹 서버는 요청된 내용에 따라서 데이터를 가공하여 새로운 웹 페이지 를 작성하고 응답으로 되돌려준다. 위키백과-Ajax GET request first name: last name: POST request first name: last name: server code app.post("/name-post", function(request, response) { const { firstname, lastname } = req..

    OOP (Object Oriented Programming)

    들어가며 Object(Instance), Class에 대해 감이 오지 않는다면 이 글 을 참고해주세요. 내용 OOP가 뭐야? Object Oriented Programming으로, 객체 지향 프로그래밍을 말한다. 즉 어떤 개념에 대해서 추상화한 (속성과 행위를 가진) 객체로 만들어, 그들 사이에서 상호작용을 하며 프로그래밍하는 것을 말한다. 예시 철수와 영희, 경아와 상아를 추상화하여 객체로 만들어보자. 이들은 모두 이름과 나이, 직업이라는 속성 을 갖고 잠을 자고, 숨을 쉰다 (행동). const cheolsu = { name: '철수', age: 28, job: '대학원생' sleep: function() { console.log("zzz...") }, breath: function() { conso..

    Object(Instance), Class

    들어가며 OOP에 대해서 공부를 하던 중에 Object 에 대해 공부가 부족하다는 생각이 들어 Object(Instance) 와 Class 에 대해 먼저 공부를 하게 되었다. 공부를 하며 내가 그동안 헤멨던 내용에 대해 정리를 했다. 내용 객체가 뭐야? 객체 란 무엇일까? 객체에 대해 찾아보면 흔히 나오는 답은 아래와 같다. 객체란 어떤 물체나 개념을 추상적으로 표현한 것이다. 객체란 현실의 것을 코드로써 표현한 것이다. (간혹 인스턴스라는 말도 볼 수 있다. 객체와 인스턴스는 종종 같은 의미로 쓰인다.) 처음 객체에 대해 접했을 때 이러한 설명들은 나를 더 혼란스럽게 만들었다. 둘 중 어느게 맞는건지 고민도 했었다. 아는 것이 많지는 않지만, 그 때보다는 많아진 지금 나름 내릴 수 있는 결론은 아래와 ..

    Prototype, Inheritance

    [[Prototype]], __proto__, prototype 의 차이 JavaScript 에서 변수와 함수는 원형을 갖는 객체이다. 그리고 JavaScript 에서는 이 원형을 __proto__([[Prototype]]) 과 prototype 으로 나타낸다. prototype 은 프로토타입 객체 를 말하는 것이고, __proto__ 는 프로토타입 링크 를 말하는 것이다. 이를 자세히 알아보자. function Person(name) { this.name = name; } var foo = new Person('foo'); 이런 코드가 있을 때, 이는 아래와 같은 그림으로 나타낼 수 있다. 프로토타입 체이닝 보다시피 객체 lee 는 __proto__ 를 통해 Human's Prototype 에 접근할 ..

    생성자와 This

    들어가며 생성자와 this 에 대해서 알아보았다. 개인적으로 생성자 함수라는 말 보다는 함수의 생성자가 맞다고 생각하지만, 생성자라고 작성하면 읽는데 헷갈리는 부분이 있을 것 같아 이해를 위해 생성자 함수라고 적었다. 인사이드 자바스크립트 Ch.4.4를 참고하였다. 생성자와 this 예를 들어 이런 코드가 있다고 해보자. function foo() { this.name = 'foo'; // ... } var bar = new foo(); bar 는 foo 에게 접근할 수 있다. 이것이 가능한 이유는 bar 가 생성될 때 foo() 의 constructor 로 하여금, bar.__proto__ 가 foo()의 prototype 객체를 가리키게끔 했기 때문이다. 그리고 이 때 새롭게 생성된 new objec..

    This 의 바인딩

    들어가며 실행 컨텍스트에 관한 지난번 자료 에서 this는 실행 컨텍스트에 따라 달라진다 라는 내용을 간단하게 언급했었다. 그 때는 왜 달라지는지 에 대해서 언급을 했었다. 이번에는 어떻게 달라지는지 에 대한 내용이다. 혹시나 링크를 타고가지 않을 누군가를 위해 간단하게 말해보자면, Execution context 가 만들어질 때 this 가 바인딩이 되기 때문이다. 그러니까 실행 중에 결정이 된다는 말이다. 추가적으로 this 를 찾다보면 this는 Lexical Scope 와 아무런 관계가 없다 라는 것을 종종 볼 수 있다. 나는 이 말을 Execution context 가 만들어질 때 activation object(variable object) 안에서 this 와 parameter 가 아예 별개의..