Go 언어에는 이미 존재하는 JWT라이브러리가 있다. 하지만 직접 살펴보니 만족스럽지는 않았다. 그러니 직접 한번 만들어 보자.
JWS(RFC7515)를 읽어보고 실제로 JWT 라이브러리 없이 JWS 직접 구현해보며 JWT 자체에 대한 이해를 해 보았다.
이번에는 RFC7518(JWA)에 대해 정리하고 이해해 보겠다. 추가로 지난 포스트에서 미처 하지 못한 RS256, ES256을 이용한 디지털 서명 예제도 작성해 보겠다.
마지막으로 읽고 정리할 RFC이다. RFC7517은 JWK에 대한 내용이다. 이제 이 글을 읽고 실제 JWK 라이브러리 구현에 나서볼 것이다.
JWK 라이브러리를 만들려고 한다. 무언가를 만들 때 가장 먼저 할 일은 역시 설계도를 작성하는 것이다. 그럼 이제 나만의 설계도를 작성해 보자. 나만의 오픈소스 라이브러리를 위한, 나만의 설계도를.
이번 글은 큰 내용은 없고 내가 어떻게 함수를 구성했는지를 적어 보았다. 이번에는 코드를 짜느라 기운을 다 빼서 글이 별로 영양가가 없는 것 같다.
프로그래머는 누구나 실수한다. 하지만 결과물에 실수가 있어서는 안된다. 따라서 에러가 프로그래머에게 실수를 알려줄 정도로 자세해야 하는 것은 필수다. 그러면 에러를 충분히 잘 묘사할 수 있도록 잘 코드를 짜 보자.
단위 테스팅과 코드 커버리지는 프로그래머의 실수를 줄이는 데에 있어 매우 강력한 도구가 될 수 있다. Go 에서는 해당 기능을 위해 go test라는 도구를 지원하는데 이를 이용해 단위 테스트와 코드 커버리지 측정을 수행해보자.
에러를 발견했다. 별건 아니지만 내 실수였다. 다행이도 간단한 실수니 금방 수정이 가능하다. 정말 다행이였다. 이래서 졸릴때는 코딩하면 안된다.
오늘은 내가 단위테스팅을 도입하면서 찾아낸 decode 파일의 문제점들을 짚어 보겠다. 다행히도 정말 큰 오류는 찾지 못했고 적당히 있을법한 실수만 찾아서 다행이였다.