[Javascript] Javascript 는 브라우저에서 어떻게 동작하는가?

들어가기 전

지금까지 자바스크립트를 이용하여 프론트 개발을 진행해오면서 많이 들어본 단어들이 있다. 콜스택, 스택 오버플로우, V8 등등.. 이 중 스택 오버플로우는 콜백 함수를 잘 못해서 실제 직면한 적도 있었다. 모르는 걸 알면서도 모른 척 넘어간 불편한 진실이었지만… 이제라도 늦게나마 브라우저 위에서 돌아가는 자바스크립트에 대해서 자세히 공부를 해보기로 했다. 일단 본격적으로 글을 보기 전에 아래의 동영상을 보는 것을 추천한다. 아래의 동영상은 4년 전인 2014 년 JSconf 에서 나왔던 내용으로 이제서야 공부하는 내 자신이 얼마나 늦게 알았는지를 깨닫게 하는 영상이기도 하다.

More …

[Algorithm] Javascript 로 푸는 하노이 탑 알고리즘

하노이 탑 알고리즘

하노의 탑 알고리즘은 많은 기업에서도 입사 문제로 많이 나올 정도로 유명한 알고리즘 중 하나이다. 아무런 지식 없이 바로 이 문제를 받는 다고 한다면 굉장히 주관적으로는 풀기가 불가능할 정도로 굉장히 어려운 문제이다. 하노이는 대표적인 재귀함수를 이용한 풀이 문제이다. 문제는 다음과 같다.

More …

[Theory] 자료구조, 트리(Tree)

Tree 란 무엇인가?

위키 백과에 따르면 트리 구조 란 그래프의 일종으로 여러 노드가 한 노드를 가리킬 수 없는 구조이다. 라고 표현을 하고 있다. 이 말을 조금 더 자세히 풀어 보면 노드가 하나 이상의 자식이 있는 경우를 Tree 라 하며, 임의의 노드에서 다른 어떠한 노드로의 경로가 하나 밖에 존재하지 않는 데이터의 구조를 가진 것을 트리 구조라고 부른다. 인터넷에 자료구조 트리 라고 치면 바로 나오는 데이터 구조의 형태가 아래와 같이 노출된다.

More …

[Theory] 자료구조, 해쉬 테이블(Hash table)

Hash table 란 무엇인가?

해쉬 테이블은 자료 구조 중 제일 중요하다고 손꼽힐 정도로 기본적이면서도 실제 실무에서도 자주 쓰이는 자료 구조 중 하나이다. 가장 쉽게 표현할 수 있는 예제가 도서관에서의 책장을 표현할 수 있다. 총 9 칸으로 이뤄진 책장이라고 생각을 했을 때, 만약 도서관 사서 라면 책을 어떻게 구분을 할 수 있을까? 아마도 필자라면 ㄱ으로 시작하면 첫번째칸, ㄷ으로 시작하면 3번째칸 과 같은 규칙으로 한글 자음 순서대로 구분을 할 것이다.

More …

[Theory] JWT 토큰이란

JWT Token 이란 무엇인가?

Facebook, Github, Google 등의 외국계 회사들의 Open API 를 통한 회원인증을 구현해봤다던가 혹은 카카오 API 등을 이용해본적이 있다면 한번쯤은 JWT Token 에 대해서 들어봤을 것이다. JWT Token 은 JSON Web Token 의 약자로서, 자체의 토큰은 Base64로 인코딩한 평범한 String 으로 이루어져 있다. 이 JWT Token 은 access token 을 만들기 위해 사용된다. 물론 여기에서 이야기 하는 access token 이란 단순하게 우리가 분류하는 자원에 접근하는 access token 만을 이야기 하는 것이 아니라, 권한/인증에 대한 token 을 말한다. JWT Token 은 그 자체만으로도 권한과 인증의 역할을 가질 수 있다.

More …