부트캠프 16

[TIL] - ThreadLocal을 활용해 사용자 정보 관리하기

Ch2 - MSA 기반 물류 시스템 개발 프로젝트 배운 것이번 프로젝트를 진행하면서 MSA 환경에서 서비스를 나눠서 개발을 진행했다. 그 중 사용자 인증과 권한 관리를 효율적으로 처리하기 위해 JWT(Json Web Token)를 활용했다.유저 서비스에서 사용자 인증이 이루어지면, 게이트웨이 서비스에서 토큰 검증을 수행하고, 유효한 토큰에 포함된 사용자 정보를 헤더에 추가하여 각 서비스로 전달하며, 이후 각 서비스는 이 헤더 값을 활용하여 사용자 정보를 확인하고 API를 처리하도록 설계했다. 각 서비스에서는 넘어온 사용자 정보를 어떻게 저장하고 활용할지 고민을 하던 중 Spring Security를 사용하는 방법을 먼저 고려했다. 하지만 Security는 모든 요청에 대해 필터 체인을 거치고 컨텍스트를 ..

[TIL] - MSA 프로젝트 구조 복습 및 생각 정리

Ch2 - MSA 학습 (MSA 프로젝트 구조 및 흐름 복습) 배운 것제공 받은 MSA 강의를 다 들었지만, 분산화된 서비스 애플리케이션을 연결하고 관리하는 기술들인 Eureka Server, API Gateway, Config Server 등을 어떻게 설정하고 흐름은 어떻게 되는지에 관한 개념들이 파편화 되어 있어서 오늘은 프로젝트를 만들어보면서 하나씩 연결하고 설정해보는 시간을 가졌다. 내일부터는 로컬환경에서 만든 프로젝트를 어떻게 관리하고 배포해야 하는지 공부하고 정리하면 좋을 것 같다. 클라이언트가 요청을 하고 응답을 받는 과정을 정리하면 다음과 같다. 1. 클라이언트가 API Gateway로 HTTP 요청을 보낸다.2. API Gateway는 이 요청을 받아 처리하며, 요청 URL과 미리 설정된..

[TIL] - Spring Cloud Gateway 적용하기

Ch2 - MSA 학습 (Spring Cloud Gateway 적용 및 내부 구조 정리) 배운 것각 도메인 별로 서비스 어플리케이션을 만들어서 Eureka Server에 등록하여 사용하는 방법을 배웠다. 하지만 클라이언트가 서비스별 API를 요청하려면 각 서비스의 URL을 직접 입력해서 들어가야 한다. 이는 클라이언트 측에서 여러 서비스의 엔드포인트를 관리해야 하는 번거로움을 초래하고, 서비스의 위치가 변경될 때마다 클라이언트 코드를 수정해야 하는 유지보수 문제를 야기한다.API Gateway를 통해 클라이언트에게 단일 진입점을 제공함으로써 요청을 적절한 서비스로 라우팅하고, 공통 기능을 중앙에서 처리할 수 있게 된다. 또한, 보안, 로깅, 모니터링, 요청 필터링 등을 처리한다. 이해한 흐름은 다음과 같..

[TIL] - Microservice Architecture 기본 학습

Ch2 - MSA 학습 (Spring Cloud, 서킷브레이커, API Gateway, Config 등) 배운 것제공 받은 MSA 강의를 듣고 있다. 오늘 공부한 내용은 서킷브레이커, API Gateway, 보안구성, Config 설정에 대해 공부했다. 꽤 이전부터 소프트웨어 아키텍처 방식이 Anti-fragile, Cloud Native 개념이 주목받고 있다. 시스템이 로컬에서 클라우드로 이전되었고 확장성과 안정성이 더 강화되었으며 이로 인해 지속적인 변경사항에 유연하게 대응할 수 있게 됐다. Cloud Native를 구성하는 요소Microservices: 독립적으로 배포 가능한 작은 서비스들로 구성.Containers: 애플리케이션과 그 종속성을 캡슐화하여 일관된 환경 제공.CI/CD: 지속적인 통합..

10주차 실전프로젝트 중간 회고

기간 : 03/14 (금) ~ 03/20 (일) MVP 기능 구현 & 오류 해결 & 중간발표 준비 MVP 기능을 다듬고 발생하는 오류를 수정, 중간발표 준비 배운점 기간 안에 빠르게 MVP 기능 구현에 집중하다보니 테스트 코드를 작성하지 않아서 발생하는 문제가 많았다. 다른 코드를 수정하면 기존에 짠 코드에 영향을 미치게 되며 잘 실행됐던 api도 어느순간 오류가 발생하는 것을 경험했다. 간결하게 코드를 작성하되 테스트 코드를 잘 짜는 것도 중요함을 느꼈다. 내 코드뿐만 아니라 팀원들이 작성한 코드에 대한 이해도 잘 하고 있어야겠다. 프로젝트를 꾸준히 진행하다보니까 간결한 코드, 리팩토링에 관심이 많아졌다. 어떻게 하면 더 이해하기 쉬운 코드를 작성할 수 있을지 배워야겠다. 새로운 기술도 중요하지만.. ..

8~9주차 실전 프로젝트 중간 회고

기간 : 02/25 (금) ~ 03/13 (일) 프로젝트 기획 & 팀원들과 협업 & MVP 기능 개발 3주차에 있을 중간발표 전까지 빠르게 기획을 마무리하고 MVP 기능을 구현, 팀원들의 역할 분담, 리더로서 역량 다지기 이번주 내가 배운 것 백앤드 MVP 기능 구현 (서비스에 꼭 필요한 기능을 빠르게 구현하기) 로그인, 회원가입, 인증메일 발송, 유저정보 api 구현 레벨업, 챌린지 중간 참가로직 구현, 유저별 챌린지 성공-실패 여부 조회 로직 구현 서버 배포 및 프론트와 테스트 진행 프론트와 연결 중 발생한 오류 해결 협업 매일 회의 때 각자 진행상황 공유 및 TODO 공유 대략적인 전체 일정 정한 후 일주일 단위로 스프린트 진행하려고 노력 계획한 것 보다 더 많은 오류와 추가적인 사항들이 계속해서 ..