분류 전체보기 91

JWT, Json Web Token

JWT, Json Web Token에 대한 글입니다. 1. JWT의 정의와 구조 2. 장점이 무엇인지 3. 언제 사용하면 좋은지 다루는 내용은 크게 세 가지로 위 세가지 내용을 다룹니다. JWT의 정의와 구조 JWT는 RFC 7519으로 토큰기반 인증 시스템을 구현한 것입니다. 이름에서 알 수 있듯이 JWT는 토큰 내부의 정보를 Json으로 저장하고 있습니다. 하지만 이 정보는 암호화 되어있고, URL에 공개되지 않기 때문에 적은 비용으로 안전하게 데이터를 전송할 수 있습니다. JWT의 내부 구조는 HEADER, Payload, Signature로 구성되어있으며 이 정보들은 .(dot)을 통해서 구분됩니다. 좌측에는 JWT, 그리고 우측에는 JWT 내부의 정보가 담겨있습니다. 헤더: JWT를 복호화하는데..

Web 2020.03.30

해커를 위한 디자인 레슨

안녕하세요. 메이리프입니다. 오늘부터 독서록도 적어보려고 합니다. 오늘 정리할 책은 '해커를 위한 디자인 레슨 - 데이비드 카다비' 입니다. 디자인을 좀 이해해보고 싶어서, 다르게 말하면 제가 디자인을 몰라서 진입점을 찾아보고자 읽기 시작했습니다. 목차는 아래와 같이 구성되어있습니다. 디자인의 이해 재료와 형태 구도 색 부록 디자인이란 새로운 종류의 리터러시 능력이라고 필자는 말합니다. 책에서는 리터러시를 '특정한 기술을 사회적 맥락에서 자유롭게 운용할 수 있는 능력' 이라고 합니다. 그리고 디자인 리터러시를 해커를 위해 표현한다면 아래와 같을 것입니다. ∴ 디자인 리터러시 = 디자인을 통해서 사용자와 의사소통하는 능력 책에서 디자인 리터러시를 길러주는 과정을 3장. 재료와 형태의 예시를 들어보겠습니다...

독서록 2020.03.10

로그스태시가 레디스 정보를 읽는 방식

안녕하세요 메이리프입니다. 오늘은 로그스태쉬가 레디스에서 정보를 어떻게 읽는지 적은 글을 씁니다. 본문 로그스태시는 입력 플러그인을 통해서 특정한 소스의 정보를 읽습니다. 마찬가지로 레디스의 정보를 읽을 때에는 레디스 입력 플러그인을 사용합니다. 지원하는 데이터 타입은 list,channel, channel-pattern 이렇게 세 가지를 지원하며, list의 경우 BLPOP, channel의 경우 subscribe, channel-pattern의 경우 psubscribe 를 통해서 정보를 읽어옵니다. BLPOP은 blocking list pop의 약자로, 해당 키에 대해서 빈 값이면 레디스에서 커넥션을 막고, 값이 있을 때에만 값을 POP하여 넘겨줍니다.(POP이후에는 당연히 값이 지워집니다) chan..

ElasticSearch 인덱스 필드 길이 제한 늘리기

안녕하세요. 정우현입니다. 오늘은 위의 에러를 해결하는 방법을 적은 글을 씁니다. 원인 로그스태시를 통해서 서버 로그를 엘라스틱서치에 꾸준히 넣는데, 로그의 길이가 긴 경우의 로그가 정상적으로 저장이 안되고 있는 듯해서 문제를 찾아봤더니 필드의 길이제한을 넘어가는 경우 저장을 할 수 없었습니다. 해법 그래서 이 문제를 해결하기 위해서 방법을 찾아봤습니다. 첫 번째 방법은 인덱스 하나에 대하여 설정을 변경하여 하나의 인덱스에만 필드의 길이제한을 변경하는 것이고, 두 번째 방법은 템플릿을 적용하여 특정 조건의 인덱스에 대해서 필드의 길이제한을 변경하는 방법입니다. 첫 번째 방법은 PUT /_settings { "index.mapping.total_fields.limit": 2000 } 이라는 명령을 키바나의..

Vim + Tmux 학습 자료

목표 Vim 사용 방법 전달하기 Vim + Tmux를 함께 사용하여 터미널 환경에서 개발하는 방법 전달하기 목차 Vim Vim-Cheatsheet Vundle(Vim-Bundle) Vim-Awesome Vim-Installation Vmux(Vim + Tmux) Vim + Tmux 학습자료 내용 Vim vim Cheatsheet 주소: https://devhints.io/vim Vim Cheatsheet뿐만 아니라 vscode, intelij, sass 등 유용한 참조 자료가 많습니다. vim-vundle github 주소 : vundle 플러그인 매니저입니다. 가장 대중적인 플러그인 매니저이면서 굉장히 편리합니다. vim awesome 주소: https://vimawesome.com/ Vim Plugi..

터미널 개발 2020.02.27

2019년 회고와 2020년 계획

안녕하세요 제로페이지 26기 정우현입니다. 최근에는 회사에서 드래곤 히어로즈 택틱스라는 게임을 런칭하고 개발하고 있습니다. 어제 런칭했습니다. 이번 반년은 전반적인 학업적인 성취를 이뤄보고자 현재는 디자인 패턴, 알고리즘 공부를 열심히 하고 있습니다. 그리고 친구들과 프로젝트를 진행해보려고 하고 있습니다. 2019년 회고 병특 시작 병역 특례로 회사를 다니기 시작했습니다. 이제는 소집해제까지 1년정도의 시간이 남았습니다. 좋았던 것 그리고 배운 것 1. 프로젝트 경험 짧게 한 학기 동안 개발하는게 아니라, 서비스를 맡아서 계속 개발할 수 있어서 좋았습니다. 실제로 사용자들이 많이 존재하는 프로젝트를 개발하고, 규모의 문제에 대해서 고민할 수 있는 기회가 되어서 고민을 좀더 깊게 할 수 있는 시간을 가졌습..

회고록 2020.02.23

Basic statement

C++ 에서 사용할 수 있는 대부분의 statement는 C와 동일하거나, 유사합니다.C++이 처음에는 C에서 파생된 언어이기 때문입니다. 그렇지만 기존의 기능에 C++만의 기능을 추가한 Statement도 존재합니다.주석을 작성하는 법 또한 C와 동일합니다. 제어문에서 if, for, while의 사용법 또한 동일합니다. 그리고 C++17에서 추가된 것으로 if문에서 사용할 변수는 조건문에서 정의하는 것이 가능해졌습니다. 이 기능이 만들어진 이유는 이름 오염을 방지하기 위해서 입니다.변수의 scope는 변수가 선언된 이후의 else if / else문 입니다. switch문의 사용법 또한 C와 동일합니다. 또한 switch문에서도 문장에서 변수를 정의하는 것이 가능해졌습니다.

C++ 2019.02.24

Hello world!

다음 코드를 살펴봅시다. #include int main(){ printf("Hello world!\n");return 0; } C에서 Hello world!를 출력하기 위한 코드였습니다. 다음 코드를 살펴봅시다. #include int main(){ std::cout > 연산자도 한 줄에서 여러개가 나타날 수 있습니다. 마지막으로 예제코드에 나타난 std는 표준 라이브러리에 정의된 네임스페이스의 이름입니다.네임스페이스는 다른 곳에서 정의한 이름과 동일한 이름끼리 충돌하는 것을 막을 수 있고, 범위지정연산자인 :: 를 통해서 이용할 수 있습니다.

C++ 2019.02.22

C++ 개요

C++ 은 저수준 언어와 고수준 언어를 모두 지원하는 언어입니다.다른 말로는 - 하나의 언어안에서 다양한 패러다임을 제공한다는 뜻에서- 다중 패러다임 언어라고도 합니다. 패러다임에 관한 사전 검색결과, paradigm명사한 시대의 사람들의 견해나 사고를 근본적으로 규정하고 있는 인식의 체계. 또는, 사물에 대한 이론적인 틀이나 체계. 패러다임의 뜻은 '한 시대의 사람들의 견해나 사고를 근본적으로 규정하고 있는 인식의 체계. 또는, 사물에 대한 이론적인 틀이나 체계'라고 합니다. 이 패러다임은 크게 네 가지로 나눠 볼 수 있는데, C, 객체지향 C++, 템플릿 C++, STL 이렇게 4가지로 나눌 수 있고, 절차지향 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍, 일반화 프로그래밍, 메타프로그래밍 등..

C++ 2019.02.22