본문 바로가기
728x90
반응형

Programming/Go8

[GO 인증 구현 with JWT 5] Handler, Main 구현 및 통합 테스트 이전 글 [GO 인증 구현 with JWT 4] User Repository, Service 구현 및 테스트 이전 글 [GO 인증 구현 with JWT 3] 인증 미들웨어 구현 및 테스트 코드 작성 이전 글 [GO 인증 구현 with JWT 1] 전체적인 인터페이스 작성 Use Case 간단히 구현해 볼 인증의 시나리오 유저 생성 → 생성된 tinkerbellbass.tistory.com 이제 남은 것은 핸들러, 메인 함수 구현과 통합 테스트를 작성해 보는 것이다. 통합 테스트는 포스트맨으로 직접 두드려서 하거나 포스트맨으로 테스트 컬렉션을 만들어 돌려도 되지만 그 이전에 한 번 더 검증한다는 느낌으로 코드를 작성해 보았다. User Handler 구현 핸들러는 딱히 어딘가에 의존성 주입을 할 일이 없.. 2022. 4. 15.
[GO 인증 구현 with JWT 4] User Repository, Service 구현 및 테스트 이전 글 [GO 인증 구현 with JWT 3] 인증 미들웨어 구현 및 테스트 코드 작성 이전 글 [GO 인증 구현 with JWT 1] 전체적인 인터페이스 작성 Use Case 간단히 구현해 볼 인증의 시나리오 유저 생성 → 생성된 유저 정보로 토큰 발급 → 발급된 토큰에 들어있는 유저ID 를 이용해서 tinkerbellbass.tistory.com 이제 남은 것은 애플케이션 관련 코드인 핸들러, 서비스 리포지토리와 메인 함수 구현만 남았다. 그전에 이전 코드에 변경 사항이 있는데, 생성자를 통해서만 구현체 인스턴스를 생성해서 사용할 수 있게 변경하였다. 생성자를 통해서만 인스턴스를 생성하게 강제해서 얻을 수 있는 이점은 인스턴스를 생성할 때 필드 값을 초기화해야 한다는 것을 상기시켜 준다. 그리고 이.. 2022. 4. 13.
[GO 인증 구현 with JWT 3] 인증 미들웨어 구현 및 테스트 코드 작성 이전 글 [GO 인증 구현 with JWT 1] 전체적인 인터페이스 작성 Use Case 간단히 구현해 볼 인증의 시나리오 유저 생성 → 생성된 유저 정보로 토큰 발급 → 발급된 토큰에 들어있는 유저ID 를 이용해서 유저 정보 획득 유저 생성 Use Case User ID, Password 를 입력받아 tinkerbellbass.tistory.com 토큰을 만들고 검증할 수 있게 되었으니 다음으로 인증 미들웨어를 구현해 보자. 인증 미들웨어 구현 리퀘스트 헤더에서 토큰 값을 가져오는 getTokenFromRequest 메서드부터 구현해 보자. 인증 방식이 Basic 이 아닌 Bearer 인지 확인한 후 토큰을 가져오는 메서드로, 인증 방식 스킴은 대소문자 구분이 없으므로 인증 방식 스킴 비교 시에는 대문.. 2022. 4. 11.
[GO 인증 구현 with JWT 2] 토큰 구현 및 테스트 코드 작성 이전 글 [GO 인증 구현 with JWT 1] 전체적인 인터페이스 작성 Use Case 간단히 구현해 볼 인증의 시나리오 유저 생성 → 생성된 유저 정보로 토큰 발급 → 발급된 토큰에 들어있는 유저ID 를 이용해서 유저 정보 획득 유저 생성 Use Case User ID, Password 를 입력받아 tinkerbellbass.tistory.com 이번에는 토큰, 인증 미들웨어를 구현해 보자. 능력 부족으로 완벽한 TDD 를 하는 것은 힘들어서, 개인적으로는 테스트 케이스 정도 정리하면서 구현할 로직을 떠올리고, 로직을 구현하고, 마지막으로 테스트 코드를 작성한다. 그리고 전반적인 변경사항으로 go pkg 들어가 보니 StandardClaims 가 deprecated 되어 있어서 go jwt 의 Sta.. 2022. 4. 11.
[GO 인증 구현 with JWT 1] 전체적인 인터페이스 작성 Use Case 간단히 구현해 볼 인증의 시나리오 유저 생성 → 생성된 유저 정보로 토큰 발급 → 발급된 토큰에 들어있는 유저ID 를 이용해서 유저 정보 획득 유저 생성 Use Case User ID, Password 를 입력받아 유저를 생성 생성된 유저를 영속화 생성된 유저 정보로 토큰 발급 Use Case User ID, Password 를 입력받아 유저를 검증, 패스워드 비교 검증된 유저에게 토큰 발급, 토큰은 JWT 발급된 토큰에 들어있는 유저ID 를 이용해서 유저 정보 획득 Use Case 토큰을 입력 받아 토큰 검증 검증된 토큰으로부터 User ID 획득 User ID 를 키 값으로 검색해서 유저 정보 획득 엔티티, DTO 작성 엔티티인 User 작성 영속화할 때 자동 증가시킬 ID, User.. 2022. 4. 9.
Go 로 MinIO 에 파일 업다운로드 MinIO 설치는 다음 블로그 글을 참조. Object Storage MinIO 설치 MinIO MinIO 는 설치형 Object Storage 로 AWS SDK 를 그대로 쓸수 있어 AWS 의 S3 대신 로컬에서 테스트 할 때 쓸 수 있는 유용하다. 설치 Mac OS 의 경우 Homebrew 를 통해 스탠드얼론으로 설치할 수 있지만 왠.. tinkerbellbass.tistory.com 파일 업로드 MinIO 에서 제공하는 SDK? API? 는 AWS SDK 와 동일해서 코드 변경 없이 환경변수 설정만으로 S3 의 테스트 Object Storage 로서 로컬, 개발 환경에서 사용할 수 있다. 정말 매력적이지 않는가? MinIO 공홈에는 아직 aws-sdk-go-v1 가 안내되어 있다. 안정화된 최신 버.. 2022. 4. 6.
728x90
반응형