🥨 [항해99 취업 리부트 코스 학습일지] 프로젝트 시작 2주차

2024. 4. 30. 11:45· 항해99
목차
  1. 🥽 내가 구현한 기능
  2. 🥽 기술적 의사결정
  3. 🥽 트러블 슈팅
  4. 🥽 인사이트

🥽 내가 구현한 기능

MSA방식으로 변경되어 모놀리식으로 되어 있는 서비스를 모두 모듈화했고 하는 과정에 각 서비스를 로드밸런싱해주는 API Gateway를 제작해주었다. 또한 API Gateway에서 인가를 진행하게 되고 다른 서비스도 통합에서 분리로 적용하게 되어 Redis를 통해 global하게 사용되고 있는 데이터는 Redis를 통해 관리하게 제작했다.

또한 장바구니의 기능 또한 Redis로 제작하게 되며 DB에서 빠지게 되었고 각 서비스 간의 요청에 Feign을 사용했다

또한 MSA로 변경되면서 DB Lock을 걸어주어야 하는 서비스에 접근하여 해당 서비스에서 사용될 로직을 더욱 작성하여 동시성 문제를 해결 추가로 분산락을 사용하고자 했지만 분산락으로 충분한 상황이여서 이후 다시 구현 예정

한개의 서비스에서 문제가 발생하면 다른 서비스에 영향이 가지 않도록 하기 위해 장애 발생을 대처하는 resilience4J를 사용해서 circuitBreaker와 retry를 사용해서 장애 발생 대처

 

🥽 기술적 의사결정

  • 로그아웃과 이메일 인증 그리고 장바구니를 사용하기 위해 Redis를 사용해서 빠른 응답과 잦은 데이터 접촉에 관련해서 해결
  • apigateway에서 인가 설정을 하여 다른 서비스를 접촉할때 인가 상황을 처리해주었다.
  • 동시성 문제가 발생하게 되면서 DB 락을 사용해서 문제를 해결

 

🥽 트러블 슈팅

  • ApiGateWay에서 DiscoveryServer에서 제공한 기능을 통해 각 서비스의 requestmapping이 단순해졌다
  • redis를 사용해서 잦은 데이터 접촉에 관해서 빠른 응답 속도로 변경
  • 로그아웃시 사용자의 accesstoken을 redis에 저장해서 만료기간을 설정해 로그아웃 설정 처리 완료(블랙리스트)
  • 기존의 찜 리스트 인줄 알았던 wishList가 장바구니라는 것을 확인하고 redis를 사용하는 대표적인 예로 장바구니 구현을 통해 DB 테이블에서 삭제 후 redis 사용
  • MSA 에서 비관적 락을 통해 동시성 문제를 해결
  • 한 서비스가 문제가 발생해서 응답을 할 수 없을 경우 다른 서비스에 장애가 전파되지 못하도록 장애 발생 대처 제작

 

🥽 인사이트

  • Redis 관련 검색
  • Feign Client 와 RestTemplate 관련 검색
  • 동시성 문제 관련 검색 ( Lock, 트랜잭션 )
  • CircuitBreaker 와 retry 에 대한 검색

'항해99' 카테고리의 다른 글

🥨 [항해99 취업 리부트 코스 학습일지] 프로젝트 시작  (0) 2024.04.23
  1. 🥽 내가 구현한 기능
  2. 🥽 기술적 의사결정
  3. 🥽 트러블 슈팅
  4. 🥽 인사이트
'항해99' 카테고리의 다른 글
  • 🥨 [항해99 취업 리부트 코스 학습일지] 프로젝트 시작
늦은산책
늦은산책
늦은산책
중얼중얼블로그
늦은산책
전체
오늘
어제
  • 분류 전체보기
    • 오류 모음집
    • CS
      • 💾 자료구조
      • 👫🏼 정렬
      • 🖥 네트워크
      • 💻 운영체제
      • 💾 DB
      • 🌌 알고리즘
      • 📝 언어
    • 테스트
    • Git 초보에게 필요한 Git bash사용법
    • 프로젝트
      • 팀 프로젝트
      • 개인 프로젝트
      • 항해99 개인 프로젝트
      • 스위프 프로젝트(Lit Map)
    • Java
      • 객체 지향
    • Spring
      • 🌲 Spring
      • 👨‍💻 SpringSecurity
      • 🌵 JPA
    • MSA
      • MSA 강좌 - 이도원 강사님
    • Docker(도커)
    • 코딩테스트
      • 🧮 프로그래머스
      • 🎲 백준
    • 항해99
      • 🕛 1주차
      • 🕐 2주차
      • 🕑 3주차
      • 🕒 4주차
    • AWS
    • CI와CD

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발자취업
  • 카우치코딩_팀프로젝트
  • 카우치코딩_포트폴리오_멘토링
  • 코딩테스트
  • 개발자포트폴리오
  • 카우치코딩
  • 항해99
  • couchcoding
  • 취리코
  • 개발자포토폴리오
  • 개발자취준
  • 취업리부트코스
  • 개발자이력서

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
늦은산책
🥨 [항해99 취업 리부트 코스 학습일지] 프로젝트 시작 2주차
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.