[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 …

[Review] Withinnovation 회사를 떠나며

이 글을 쓰는 이유

과거 위드이노베이션(이하 여기어때, 사명보단 여기어때가 더 익숙하기도 하고, 내부적으로 회사명보단 서비스명으로 부를때가 있다)에서 기술 블로그를 잠깐 운영했던 적이 있다. 그 기술 블로그에는 글이 몇개 없긴 했지만 새로운 개발자가 궁금해 할법한 회사의 분위기를 느낄 수 있던 글이 있었고, 또 그 기술 블로그를 통해 입사한 동료 개발자도 있었다. 하지만 지금은 안타깝게도 여기어때의 기술 블로그가 폐지가 되었고, 혹시라도 궁금해할 여기어때의 분위기를 타기업 정보 플랫폼에서만 볼 수 있다. 하지만 타기업 플랫폼에서의 정보는 한정되어 있어 새로 입사를 원하는 사람들에게는 정보를 주기에 부족하다는 생각이 들었다. 무엇보다 내가 이직을 결정한 회사를 결정하기에 결정적으로 한몫했던 것이 그 회사의 몇몇 개발자들이 회사를 나오면서 썼던 내부 문화에 대한 글이었기 때문에 더더욱 나도 여기어때 라는 회사에 대한 글을 쓰고 싶었다. 이 글은 개인적인 견해와 그 동안의 경험을 토대로 썼을 뿐 누구의 부탁을 받고 쓰는 것도 아니다.

More …

[Theory] 자료구조, 리스트(List) 와 배열(Array)

Array 란 무엇인가?

배열이란 간단히 이야기하면 여러개의 데이터의 묶음이라고 할 수 있다. 많은 개발자들이 배열하면 굉장히 익숙하게 와닿을 수 있는 것은 어느 언어에나 있는 배열이라는 자료구조가 존재하기 때문이다. 그래서 한번이라도 사용해본 경험이 있다면 인덱스 번호로 원하는 배열에 접근하는 것을 볼 수 있을 것이다.

More …