분류 전체보기
[JavaScript] Synchronous, Asynchronous, Blocking, Non-blocking
[JavaScript] Synchronous, Asynchronous, Blocking, Non-blocking
2019.06.02Simplified matrix of basic Linux I/O models 해당 주제 관한 가장 유명한 표입니다. x축, y축의 각각의 의미를 알아보고 둘의 조합에 해당하는 예시를 이용해서 이해를 해보겠습니다. Blocking / Non-blocking Blocking / Non-blocking은 호출된 함수가 바로 return을 하는 지 마는 지가 관심사입니다. Blocking I/O Model 호출된 함수가 자신이 할 일을 모두 마칠 때까지 제어권을 계속 가지고서 호출한 함수에게 제어권을 바로 돌려주지 않으면 Blocking입니다. Wait Queue에 들어갑니다. Non-blocking I/O Model 호출된 함수가 자신이 할 일을 채 마치지 않았더라도 바로 return해서 제어권을 건내주어 ..
[JavaScript] Arrow Functions
[JavaScript] Arrow Functions
2019.06.01Arrow Functions Arrow Function은 짧은 함수와 바인딩하지 않은 this라는 두 요구에 따라 ES6(ES2015)에 처음 등장한 함수 표현 방식입니다. 짧은 함수 기존의 함수 표현 방식은 다음과 같았습니다. var names = [ 'minsu', 'suji', 'younghe', 'jiho' ]; materials.map(function(names) { return material.length; }); // [5, 4, 7, 4] 같은 함수를 Arrow Function으로 표현하면 다음과 같습니다. var names = [ 'minsu', 'suji', 'younghe', '..
< 기생충 > 지하대장군 봉준호
< 기생충 > 지하대장군 봉준호
2019.05.31본 리뷰는 에 대한 스포일러를 포함하고 있습니다. 봉준호가 다시 지하로 돌아왔다. 첫 작품인 와 대표작 에서 보여준 지하는 많은 상징으로 쓰였지만, 주거의 공간은 아니였다. 그리고 그가 제일 잘 표현할 수 있는 공간인 지하 그 공간에 사는 사람들의 이야기가 기생충이다. 과외 선생으로 시작한 기우의 침투 이후, 기택 가족들로 대표되는 기생충들은 점차 자신들의 영역을 넓혀간다. 기생충들은 매우 영리하게 계획을 짜서 움직인다. 허나 박사장 가족인 숙주에게 그들의 침투는 느낄 수 없을 정도로 미비하다. 아무 생각없는 숙주를 바라보며 기생충들은 숙주를 마침내 지배할 수 있을 거라는 생각까지 다다르게 된다. 그러다 기생충들은 의외의 상황을 마주치게 된다. 이미 이 숙주에 오래 기생하고 있던 기생충이 있던 것이다. ..
[Design Pattern] Atomic Design
[Design Pattern] Atomic Design
2019.05.30Atomic Design이란? Atomic Design은 Brad Frost가 구상한 모듈러 디자인을 만드는 과정을 도와주는 방법론 중 하나입니다. 웹 디자인이 계속 발전함에 따라 심플한 웹페이지를 만드는 것보다 사용자를 배려하는 디자인 시스템을 개발할 필요성이 늘어나고 있습니다. patternlab.io를 이끄는 Brad Frost와 Dave Olsen는 Atomic Design을 이렇게 부릅니다. 페이지를 만들지 말고, 시스템을 구축해라 시스템을 구축하는 건 뭐고, 페이지는 뭘까? 시스템을 구축하는 건 모든 프론트 앤드 페이지를 개발하거나 디자인하지 않는 것을 의미합니다. 이건 마치 butten같은 작은 요소같이 여겨집니다. 그리고 모든 작은 컴포넌트들이 결합하여 label, box, table, f..
[JavaScript] var, const, let JavaScript 변수 키워드
[JavaScript] var, const, let JavaScript 변수 키워드
2019.05.30Dynamic Typed Language C언어와 JAVA와 같은 Static Typed Language에서는 변수를 선언할 때, int나 char같은 자료형과 함께 선언합니다. 하지만 Python이나 JavaScript는 Dynamic Typed Language로 선언시 타입을 명시하지 않습니다. 파이썬의 경우에는 변수명만 선언하는 매우 간단한 식으로 만들어졌지만, JavaScript는 변수명 앞에 변수임을 알려주는 var를 붙여서 표현했습니다. 변수의 범위 (Variable Scope) 변수는 선언과 함께 해당 변수를 참조할 수 있는 공간적 영역을 가지게 됩니다. JavaScript에서 변수는 함수 범위(function-scoped)와 전역 범위(global-scoped), 블록 범위(block-sc..
[JavaScript] ES6, ES8, ES2017, ECMAScript 이게 다 뭐시여...?
[JavaScript] ES6, ES8, ES2017, ECMAScript 이게 다 뭐시여...?
2019.05.30JavaScript와 ECMAScript의 역사와 명명 규칙을 빠르게 알아봅시다. 이 글은 "JavaScript — WTF is ES6, ES8, ES 2017, ECMAScript… ?"를 번역한 글입니다. 잘못된 부분이 있다면 댓글 달아주세요. 몇몇 이유로 JavaScirpt를 배우는 것은 혼란스러울 수 있습니다. 이러한 머리글자가 더이상 당신을 혼란스럽게 만들지 마세요. JavaScript 빠르게 박살내기에서 ES 약어에 대해 하나하나 알아봅시다. ECMAScript는 뭐여? 여기 아주 옛날에 벌어진 일이 있습니다. JavaScript는 원래 JAVA의 성공에 물타기하기 위해 명명된 이름이었습니다. 넷스케이프가 그 후 표준화를 위해 JavaScript를 ECMA 국제화기구에 제안했습니다. 그 결과로..
[네트워크] OSI 7 Layer와 TCP/IP
[네트워크] OSI 7 Layer와 TCP/IP
2019.05.28네트워크(Network) 사용자 혹은 데이터가 어떤 곳에서 다른 곳으로 이동할 수 있게 만든 통로입니다. 현대의 네트워크는 TCP/IP를 이용하고 어떤 곳에서든 접근할 수 있게 해줍니다. 1. OSI(Open System Interconnection) 7 Layer? OSI 7 Layer는 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 네트워크 분야에서 가장 중요하게 다루는 것으로, 세계적으로 사용되고 있는 네트워크 표준 모델입니다. 이 안에 TCP/IP 및 네트워크 통신에 사용되는 전반적인 프로토콜이 모두 포함되어 있습니다. 1.1 OSI를 7 Layer로 나눈 이유는? 통신이 일어나는 과정을 단계별로 파악하기 위해서입니다. 흐름을 한 눈에 파악하기 쉬우며, 이해하기 쉽고, 7 계층 중 특정한 곳에..
[프로그래머스] 🔢 큰 수 만들기 / python
[프로그래머스] 🔢 큰 수 만들기 / python
2019.05.08🔢 큰 수 만들기 😃 나의 코드 def solution(number, k): length = len(number) if length > k: m = 0 for cnt in range(k): for idx in range(m, length-1): if number[idx] 0: m = idx-1 break else: number = number[:length-k+cnt] break return "".join([str(i) for i in number]) else: return "0" 탐욕법Greedy 알고리즘에 해당하는 문제입니다. 하지만, 탐욕법을 적용하고도, 특정 ..
넷플릭스 : : 당신과 자연의 대결
넷플릭스 : : 당신과 자연의 대결
2019.04.114월 10일, 새로운 넷플릭스 인터렉티브 시리즈 이 공개되었습니다. 은 우리에게 로 유명한 베어 그릴스와 함께 정글에서 수 많은 선택을 하면서 미션을 해결해 나갑니다. 이전 시리즈인 를 재미있게 봐서 이후에는 이 인터렉티브 시리즈로 뭘 만들까 궁금했는데, 넷플릭스의 선택은 어드벤쳐였습니다. 각 상황마다 선택이 따르고, 어드벤쳐만큼 체험에 어울리는 장르가 있을까 싶습니다. 이 시리즈는 특이하게 한국어 더빙이 되어있는데, 확실히 디스커버리에서 나오는 다큐 느낌이 팍팍 났습니다. 인터렉티브형 유튜브 영상입니다. 예전에 이런 구상을 했었는데 어느센가 이런 영상이 많아졌더군요... 인터렉티브 시리즈를 만들면서 겪은 기술..
[암호학] 정보 보안
[암호학] 정보 보안
2019.03.091.1 정보 보안의 기본 원칙들 1.1.1 기밀성 / Confidentiality 허락되지 않은 사용자 또는 객체가 정보의 내용을 알 수 없도록 하는 것입니다. 원치 않는 정보의 공개를 막는다는 의미에서 프라이버시 보호와 밀접한 관계가 있습니다. 적법자(authorized parties)만이 비밀정보를 접근할 수 있는 것을 의미합니다. 방법 인증 (Authentication): 정체가 거짓이 아니라는 확신을 가지고, 메시지의 출처를 확인하거나전자 문서를 정확하게 식별하는 것이다. 1.1.2 무결성 / Integrity 허락 되지 않은 사용자 또는 객체가 정보를 함부로 수정할 수 없도록 하는 것입니다. 수신자가 정보를 수신했을 때, 또는 보관되어 있던 정보를 꺼냈을 때, 중간에 수정되지 않았음을 확인할 수..
[Web] 🍪 Cookie와 Web Storage
[Web] 🍪 Cookie와 Web Storage
2019.03.08웹페이지에서 클라이언트 측에서 중요한 데이터를 저장하는 방법은 크게 Cookie와 Web Storage 두 가지 방식이 있습니다. 모두 문자열(String)으로만 값을 저장할 수 있습니다. 🍪 Cookie Cookie는 정보를 HTML header를 통해 서버와 통신하고, 작은 데이터를 저장할 수 있습니다. Cookie는 주로 서버가 유저를 기억하기 위한 수단으로 사용됩니다. 예시 웹페이지에서 ID는 123이라고 Cookie를 저장해놓으면, 다음에 유저가 접속했을 때 서버가 ID에 해당하는 Cookie를 읽어 유저가 ID 123에 해당하는 유저라는 것을 확인하는 식입니다. 📦 웹 스토리지 / Web Storage HTML5에서 표준으로 지정되었으며, Local Storage와 Session Storage..
해커 하우스 #2 👋 해커 하우스 사람들과의 일주일
해커 하우스 #2 👋 해커 하우스 사람들과의 일주일
2019.03.0202. 👋 해커 하우스 사람들과의 일주일 Day 01 비몽사몽간 어떻게 다낭에 도착은 했다. 혼자 여행이 처음이라 얼타서 그런지 시차도 생각 못한채로 다른 분들에게 도착시간을 말했었다.. 다행히 같은 비행기를 타신 분들이 있었고, 유심을 구매하고, 환전한 뒤, 멤버들과 만나서 주변에서 브런치를 먹을 수 있는 곳으로 향하였다. 도착한 음식점 바로 앞에 핑크 성당이 있었는데 무슨 디즈니 랜드에 온 느낌 음식점은 일본인이 운영하시는 베트남 식당이였다. 베트남 현지에서 먹는 첫 식사였는데 정갈하고, 맛도 좋았다. 팀을 나눠서 근처 롯데마트로 향하였다. 여기는 한국어도 많이 쓰여있고, 다양한 물건들을 팔고 있어서 좋았다. 다만, 과일을 좀 많이 샀는데 당시에는 안 익어서, 후숙한 뒤 먹을 수 있었다. 대망의 숙소..