본문 바로가기
728x90
반응형

Programming56

[Spring -Beans] BeanFactory Interface #1 아래 공식문서를 순서대로 읽으며 천천히 여유 있게 소스 분석을 해보려고 한다. Spring Framework Documentation Overview history, design philosophy, feedback, getting started. Core IoC Container, Events, Resources, i18n, Validation, Data Binding, Type Conversion, SpEL, AOP. Testing Mock Objects, TestContext Framework, Spring MVC Test, WebTestClient. Data Access Tran docs.spring.io Overview 는 넘어가고 Core 부터 시작한다. 제일 처음 나오는 The IoC Con.. 2022. 4. 17.
[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.
MinIO 도커 컴포즈 설정과 버킷 자동 생성 MinIO 도커 허브, 공홈에는 podman 사용을 권장하고 있어서 podman compose 로 해볼까 했으나 지금 하고 있는 프로젝트에서 podman 이 아닌 도커를 쓰고 있어서 도커 컴포즈로 만들어 보았다. 인프라 관련 세팅을 잘해두면 협업하는 개발자가 편하기 때문에 MinIO 도커에 띄우고 유저 생성하고 버킷 만들고 하는 과정을 자동화해 보았다. MinIO 도커 컴포즈 스크립트 포트를 9000번과 9099번 두 개를 열고 있는데 9099번은 MinIO 서버 포트이고 9000번은 MinIO 콘솔 포트이다. 그래서 브라우저에서 MinIO 콘솔을 띄울때는 localhost:9000 을 두드리면 되고 버킷 생성, 파일 생성 등 서버와의 작업에는 localhost:9099 으로 통신하면 된다. 그리고 콘솔.. 2022. 4. 13.
[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.
728x90
반응형