Gyu Hwan

회원 기능 챌린지 분석 및 설계

회원 기능 챌린지에서 복잡하거나 조금 생각이 필요할 것 같은 부분만 골라서 설계를 진행해봤다. 이메일 인증 일반적으로 회원가입을 진행할 때, 이메일 인증을 했던 방식을 떠올리면 크게 두 가지였던 것 같다. 바로 코드 기반 인증과 링크 기반 인증이다. 코드를 입력받아서 인증하거나 링크를 클릭하는 것만으로 인증되는 차이인데. 설계를 한다면 어떻게 할 ...

회원 관리 기능 목록

회원 관리 Challenge 주 언어는 자바만 사용했었고 업무상 JS도 간간히 사용했었다. 최근 새로운 기술에 대해 궁금증이 생겨 코틀린, NestJS를 공부했었는데. 아직 찍먹 단계지만 얻은 부분이 많았다. 무엇보다 고착화되어 있는 뇌가 새로운 자극을 받아 활성화되는 느낌이 들어 좋았던 거 같다. 그래서 이번에는 챌린지라는 명목하에 각 언어들을 ...

Preview Image

DDD 설계 - 이벤트 스토밍

이전 프로젝트인 ‘공연 예약 서비스’는 DDD 설계를 목표로 했었다. 하지만 구글링을 통한 간단한 선행 학습으로 시작했기 때문에 미흡한게 많았다. ‘공연 예약 서비스’와 달리 이번 프로젝트는 DDD의 개념과 여러 방법을 관련 서적으로 학습하고, 실제 적용해 보고자 한다. 다음은 DDD를 학습하기 위해 참고한 서적이다. 도메인 주도 개발 시작하...

Preview Image

2023년 프로그래밍 책 후기

이번 글은 개인적으로 작년에 읽었던 책 중에 좋았던 책과 후기를 작성해보고자 한다. 책을 읽고 직접 적용해보고 생각해보는 것을 좋아하다보니 몇 년간 정말 많은 책을 읽은 것 같다. 아직도 자주 사용하는 사이트의 장바구니엔 읽어보고 싶은 책들이 쌓여있다. 읽어볼 정보와 지식이 많다는 건 항상 설레게 한다. :) 객체 지향 1. 객체지향의 사실과 오...

denormalization

비정규화 언제 사용되나?

“정규화”, “비정규화”란 용어는 데이터베이스 설계에서 자주 접하게 되는 개념이다. 정규화는 테이블 간 데이터의 중복을 최소화하는 것을 목표로 하며, 이를 통해 데이터 무결성을 유지한다. 반면, 비정규화는 성능 향상, 데이터 검색 속도 증가를 위해 중복, 통합, 분할하는 과정이다. 일반적으로 데이터베이스를 설계할 때, 대부분 정규화를 기본으로 한다....

monitoring

분산 추적과 성능 모니터링 구축

분산 추적과 성능 모니터링 구축 이번 글은 분산 추적과 성능의 모니터링을 구축하면서 버전 이슈와 해결했던 경험을 적어보려고 한다. MSA는 여러 개로 분리된 작고 독립적인 서비스들이 서로 간 통신하도록 연결된 구조를 말한다. 분리된 덕분에 서비스 간의 복잡도와 의존성이 높고 하나의 요청이 여러 서비스를 통하기 때문에 장애가 발생할 확률도 높아진다....

distributed transaction

분산 트랜잭션 해결 방법2

1. 개요 이번 글은 MSA에서 분산 트랜잭션을 제어하는 방법인 사가 패턴의 orchestration 방식에 대한 적용 글이다. orchestration 방식은 오케스트라의 지휘자를 연상하면 될 듯 싶다. 여러 복잡한 작업이나 워크플로우를 관리 및 조정, 구성을 의미하는데. 하나의 요청에 대해서 각 서비스의 요청과 응답을 한 곳에서 단계별로 관리한다...