
사전 강의를 들으며 My Select Shop 프로젝트를 수행했다.키워드로 상품의 정보 검색네이버 쇼핑 API 이용상품 이름 (title), 링크 URL (link), 이미지 URL (image), 최저가 (lprice)관심 상품 등록하기DB 에 상품정보 입력 (In

어제 완성했던 My Select Shop 프로젝트를 AWS의 EC2, RDS를 활용해 배포하는 과정을 거쳤다. EC2와 RDS를 이용하면 손쉽게 서버 컴퓨터, 데이터베이스를 대여할 수 있다.이메일, 비밀번호, 결제 수단을 등록하고 가입 시 프리 티어 계정이 생성된다.

MSA(Microservice Architecture)에 대한 강의를 들었다. 오늘은 그 중 Spring Cloud의 기능들에 집중하여 강의를 수강하였고, 서비스 등록 및 디스커버리, 로드 밸런싱, 서킷 브레이커에 관한 내용을 수강하였다.MSA는 하나의 애플리케이션을

어제에 이어 MSA(Microservice Architecture)에 대한 강의를 들었고, 오늘은 그 중 API 게이트웨이, 보안 구성(OAuth2 + JWT)에 대한 내용을 수강하였다.클라이언트의 요청을 받아 백엔드 서비스로 라우팅하고, 다양한 부가 기능을 제공하는

Config 서버, 분산 추적, 이벤트 드리븐에 대해 학습했다.분산 시스템 환경에서 중앙 집중식 구성 관리를 제공하는 프레임워크애플리케이션의 설정을 중앙에서 관리하고, 변경 사항을 실시간으로 반영Git, 파일 시스템, JDBC 등 다양한 저장소를 지원컨피그 서버의 메시

오늘은 지금까지 배운 내용을 가지고 직접 MSA를 구현하는 과제를 수행했다.현재까지는 모놀리틱 아키텍쳐만 구현했었는데, 이번 과제에서는 각 기능별로 애플리케이션을 나누고 필요한 데이터를 요청해야한다.위와같이 아키텍쳐를 구성하기위해 각 패키지 별 포트를 지정해주고, 게이

어제에 이어 MSA 구현 과제를 진행하고, Redis 강의를 들었다.API 구현(이전 포스팅 참조 👉 클릭 )은 완료되었으며 추가로 아래의 필수 사항들을 충족시켰다.상품 서비스는 라운드로빈 형식으로 로드밸런싱 구성하기라운드로빈 형식으로 로드밸런싱을 구현해서 상품 서비

어제에 이어 Redis 강의를 들으며 MSA 구현 과제를 마무리했다.Redis가 많이 활용되는 또다른 주제는 캐싱(Caching)이다. 이는 자주 사용되는 데이터를 더 빠른 캐시(Cache)에 저장하는 기법을 부르는 용어이다.Cache는 본래 CPU 내부의 작은 영역으

Docker와 Docker compose에 대해 학습하고 실습을 진행했다.Docker는 애플리케이션을 쉽게 만들고, 테스트하고, 배포할 수 있게 도와주는 소프트웨어 플랫폼이다.애플리케이션을 컨테이너라는 가볍고 이식성 있는 패키지로 실행할 수 있다.Docker 이미지는

대규모 스트림에 대한 기본 지식을 습득했다.인터넷 환경에서는 수백만 명의 사용자가 동시에 접속하고 상호작용할 수 있는 시스템을 구축해야 하는 상황이 자주 발생한다.이러한 시스템은 단순히 많은 사용자를 처리하는 것 뿐만 아니라, 안정성과 신뢰성을 유지하면서 고성능을 제공

RabbitMQ, Kafka를 사용해 실습을 진행해보며 대규모 스트림 처리 방법에 대해 학습하였다.RabbitMQ는 메시지 브로커로서 데이터(메시지)를 송신자(프로듀서)로부터 수신자(컨슈머)에게 전달하는 중간 매개체 역할을 한다.RabbitMQ는 이러한 메시지를 큐(q

어제에 이은 추가 실습으로 RabbitMQ를 사용해 SAGA 패턴을 구현해보았다.Order Application은 Producer의 입장으로서 Product Application에 메시지 큐를 통해 요청을 보낸다.Product Application은 Consumer의

모니터링 시스템 및 시큐어 코딩 관련 강의들을 수강하며 여러 가지를 배웠다.모니터링 시스템이 무엇인지 이론적으로 간단하게 학습했고, Spring Boot Actutor, Prometheus, Grafana, loki 실습을 진행하였으며 CORS, CSRF에 대해 학습을

시큐어 코딩 내용을 수강하며 SQL Injection과 그 외의 각종 보안 문제에 대해 학습했다.장애 대응 강의를 수강하며 모니터링, 장애 분석 및 진단에 관하여 학습하였다.예전 CS공부를 할 때 부터 많이 학습했던 부분이다. SQL Injection이란 공격자가 웹

어제에 이어 장애 분석 및 진단, 장애 복구, 후속 조치 및 사후평가 개선, 예방 조치 등 장애 대응에 대한 이론들을 수강하였다.DB Lock의 개념에 대해 수강하고 비관적 락 실습을 진행하였다. 오늘은 이 부분을 중심으로 TIL을 작성해보려 한다.DB 락(Databa

지난 시간에 이어 낙관적 락, 데드 락 실습을 진행해보았다.DB 복제 지연, 메모리 릭, 캐시 압력(Cache Pressure), 설정 버전 관리(Configuration Versioning)에 대한 이론적인 부분들을 수강하였다.낙관적 락(Optimistic Lock)

오늘 진행한 일User Role 관련 코드 리팩토링ai api 에러 로그 작성Payment, Ai API 도메인 구현 마무리 및 PR 요청전반적인 API 테스팅아래와 같이 UserRole을 Enum으로 구현하였다.API 요청을 주고받을 때에는 Stirng 형식(USER

프로젝트를 마치며 발표 준비 중 Spring Data Jpa의 Batch 처리에 대해 궁금한 점이 생겼다.여러 개의 SQL Statement를 하나의 구문으로 처리할 수 있다.hibernate 에서 위 기능(jdbc batch 기능)을 이용해 처리하는 것이다.여러 개의

물류 관리 및 배송 시스템을 MSA 구조로 구현하며 Docker를 사용하여 프로젝트 실행하였다. 이번 포스팅에서는 해당 과정에서 겪은 일들을 회고하여 정리하여 보자.물류 관리 및 배송 시스템을 MSA 구조로 구현하였다.위의 ERD에서 내가 기능 구현을 맡은 테이블은 p

CI/CD 와 관련하여 Branch 전략 수립에 대한 특강을 들었다. Trunk-Based-Development dev-deploy(s) 브랜치는 개발 서버에서 빠르게 내 작업에 대한 테스트를 해보기 위한 브랜치