profile
서울대학교 컴퓨터공학부 github.com/BaekGeunYoung
태그 목록
전체보기 (123)book(44)review(44)project(32)agile(22)kotlin(20)DDD(17)docker(14)Domain Driven Design(13)agile software development(12)Spring boot(12)msa(11)practice(11)k8s(11)kubernetes(11)Infra(10)container(10)archiving(9)clean software(9)aws(9)Spring(8)algorithm(8)React(6)server(6)recofashion(6)coroutine(6)multi thread(6)typescript(6)graphql(5)rxjs(5)Backend(5)clean architecture(5)nodejs(5)OOP(5)unit test(4)redis(4)serverless(4)SQS(4)architecture(4)blog(4)mutex(3)dynamodb(3)query(3)JavaScript(3)Context API(3)test(3)알고리즘(3)SOLID(3)mysql(3)race condition(2)CI/CD(2)crawler(2)lambda(2)travis(2)jest(2)Event Sourcing(2)d3(2)netflix oss(2)dependency injection(2)canvas(2)object oriented(2)security(2)rgb(2)mongodb(2)API(2)Java(2)best practice(2)apollo(2)cloud(2)JPA(2)nosql(2)clone coding(2)async(2)spring cloud(2)synchronization(2)redisson(2)modeling(2)axon(2)low latency(2)structure(1)trip(1)lucid architecture(1)visualization(1)geometry(1)apollo server(1)authorization(1)schema(1)AI(1)drag drop(1)junit(1)mockMvc(1)cpu(1)core(1)hardware(1)software(1)Embeddable(1)Embedded(1)exceptionahandler(1)hanoi tower(1)transaction(1)multithread(1)actor(1)mutl thread(1)DeepLearning(1)cs224n(1)hackerton(1)multi threading(1)GKE(1)lock(1)MST(1)Saga(1)dynamo(1)express(1)hooks(1)tree(1)sql(1)netlify(1)개발자(1)Node(1)http(1)JWT(1)공부(1)deploy(1)React Hooks(1)회고(1)laravel(1)introduction(1)library(1)Side Project(1)study(1)php(1)gradle(1)Database(1)BFS(1)CQRS(1)memoization(1)Design Pattern(1)di(1)S3(1)docker compose(1)mongoose(1)prisma(1)cloudwatch(1)enzyme(1)exception(1)development(1)react hook(1)계획(1)data structure(1)functional programming(1)mocha(1)maven(1)cloudformation(1)reactive(1)usecase(1)user story(1)publishing(1)spring webflux(1)react dnd(1)distributed(1)distributed lock(1)shared resource(1)Mockito(1)upload(1)Cache(1)image(1)mutation(1)Thread(1)netflix(1)Singleton(1)IaaS(1)Crawling(1)complete search(1)dynamic programming(1)greedy algorithm(1)heuristic(1)pruning(1)decision(1)optimization(1)prim(1)netlify dev(1)over engineering(1)under engineering(1)SEDE(1)1st class collection(1)use case(1)
post-thumbnail

SAGA pattern을 이용한 분산 트랜잭션 구현하기

spring boot와 axon framework 환경에서 SAGA pattern을 활용해 분산 트랜잭션을 구현해보는 실습 코드입니다.모든 아키텍쳐가 그러하듯 MSA에서도 단점과 한계들이 존재하는데, 그 중 하나는 일련의 db access 작업에 대해 atomicity

6일 전
·
0개의 댓글
post-thumbnail

axon & spring boot를 이용해 CQRS & event sourcing 패턴 사용하기

이벤트 소싱은 영속 데이터를 어떤 식으로 저장할 것인지에 관한 것으로, 전통적인 데이터 저장 방법은 현실 세계의 것들을 직접적으로 표현하고 있는 도메인 객체(혹은 DB layer와 domain layer 사이의 간극을 해소하기 위한 DTO 객체)를 db에 담는 방식이었

2020년 6월 21일
·
0개의 댓글
post-thumbnail

티켓 예매 서버 v2 - 완성 및 테스트

멀티스레드 티켓 예매 서버 구현 프로젝트를 진행하면서 아쉬웠던 점들을 개선하여 low latency 서버를 다시 한 번 만들어보고자 한다.기존에 구현했던 WAS는 spring MVC를 이용해 만든 것으로, 순간적으로 많은 수의 요청이 들어왔을 때 비효율적으로 많은 스레

2020년 6월 7일
·
0개의 댓글
post-thumbnail

Project - 티켓 예매 서버 v2

멀티스레드 티켓 예매 서버 구현 프로젝트를 진행하면서 아쉬웠던 점들을 개선하여 low latency 서버를 다시 한 번 만들어보고자 한다.기존에 구현했던 WAS는 spring MVC를 이용해 만든 것으로, 순간적으로 많은 수의 요청이 들어왔을 때 비효율적으로 많은 스레

2020년 5월 31일
·
0개의 댓글
post-thumbnail

redis의 분산락을 이용한 공유 자원 관리

github 바로가기여러 독립된 프로세스에서 하나의 자원을 공유해야 할 때, 데이터에 결함이 발생하지 않도록 하기 위해서 분산 락을 활용할 수 있다. 분산 락을 구현하기 위해서는 데이터베이스 등 여러 프로세스가 공통으로 사용하는 저장소를 활용해야 하는데, 이번 실습에서

2020년 5월 30일
·
0개의 댓글
post-thumbnail

Maven Central에 나만의 자바 라이브러리 배포하기

프로그래머들에게 코드 재사용이라는 것은 언제나 중요한 이슈이다. 많은 사람들이 자주 사용할 수 있을 만한 코드나, 개인 혹은 단체가 여러 프로젝트에서 공통적으로 사용할 만한 코드는 라이브러리화한다는 것은 익숙한 사실이다.이번에 쿠팡 클론 코딩 프로젝트에서 spring

2020년 4월 19일
·
0개의 댓글
post-thumbnail

쿠팡 클론 코딩 - 도메인 모델링

아래의 책들을 읽고 도메인 모델링 및 설계에 관해 많은 생각과 관심을 갖게 되었다.도메인 주도 설계클린 소프트웨어위 두 책에서 학습한 내용들을 전체적으로 적용해보기 위해 복잡한 도메인 로직이 존재하는 서비스를 클론 코딩하기로 결정했고, 앞선 2번째 장에서 나열한 어플리

2020년 4월 16일
·
2개의 댓글
post-thumbnail

MSA로 헬스/영양 관리 어플리케이션 만들기 (4) - 프론트엔드

지금까지 만들었던 MSA 기반의 백엔드 어플리케이션과 소통할 프론트엔드를 간단하게 만들어보았다. UI를 만드는 것이 이번 실습의 주된 목표는 아니었기에 기존에 사용하던 스택을 그대로 사용하여 가볍게 만들었다.

2020년 4월 16일
·
0개의 댓글
post-thumbnail

쿠팡 클론 코딩 - 어플리케이션 기능 정의

책 "클린 소프트웨어(로버트 C. 마틴)"을 보면 시스템 설계에 관한 사례 연구를 보여주는데, 애자일 프랙티스의 첫 반복 주기에서는 사용자 스토리를 정의하고, 이를 하나하나 분석하면서 모델링에 관한 통찰을 얻는 모습을 볼 수 있다. (관련내용 바로가기) 그에 따라 우리

2020년 4월 15일
·
5개의 댓글
post-thumbnail

프로젝트 - 쿠팡 클론 코딩

아래는 최근에 관심있게 공부했던 것들이다.DDD (도메인 주도 설계)OOP & 디자인 패턴spring cloud MSAkotlin reactive programming나열한 것 중 위 2개는 방법론에 관한 것이고, 아래의 2개는 기술적인 것이라고 할 수 있을 것 같다.

2020년 4월 15일
·
2개의 댓글
post-thumbnail

travis CI로 Serverless 애플리케이션 + Cloudformation Stack의 CI & CD 구축하기

이번 글에서는 앞서 만들었던 AWS lambda의 함수 코드와 이를 배포하는 인프라를 정의한 Cloudformation의 stack에 대한 CI & CD 파이프라인을 구축하는 방법을 소개한다.처음 구상했던 대략적인 파이프라인은 아래와 같다.CI 작업을 위해 작성한 .t

2020년 4월 9일
·
0개의 댓글
post-thumbnail

MSA로 헬스/영양 관리 어플리케이션 만들기 (3) - 도커라이즈

msa와 docker는 뗄레야 뗄 수 없는 관계에 있다고 생각한다. 도커를 기반으로 하여 AWS fargate 혹은 kubernetes등을 통해 이루어지는 컨테이너 오케스트레이션은 microservice 별로 scale-out이 가능하다는 MSA의 장점과 특히 잘어울린

2020년 4월 8일
·
0개의 댓글
post-thumbnail

Review: 소프트웨어 개발의 지혜 - 26장_PROXY와 STAIRWAY TO HEAVEN_서드파티 API 관리

소프트웨어 시스템에는 많은 경계와 장벽이 있다. 프로그램에서 데이터베이스로 데이터를 옮기는 것은 데이터베이스의 장벽을 넘는 것이며, 한 컴퓨터에서 다른 컴퓨터로 메시지를 전송하는 것은 네트워크의 장벽을 넘는 것이다.PROXY 패턴은 우리가 집중하려는 핵심 비즈니스 로직

2020년 4월 6일
·
0개의 댓글
post-thumbnail

Review: 소프트웨어 개발의 지혜 - 25장_ABSTRACT SERVER, ADAPTER, BRIDGE 패턴

ABSTRACT SERVER 패턴은 디자인 패턴 가운데 가장 단순한 패턴으로, DIP를 지키기 위해 가장 첫 번째로 적용해볼 수 있는 방법이다. 이전의 숱한 예시에서도 익숙하게 사용해 왔던 방식인데, 상위 모듈이 구체적인 하위 모듈에 의존하도록 하지 않고 사이에 인터페

2020년 4월 6일
·
0개의 댓글
post-thumbnail

Review: 소프트웨어 개발의 지혜 - 24장_OBSERVER 패턴

OBSERVER 패턴은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다.디지털 시계 구현을 예시로 OBSERVER 패턴을 알아보자.

2020년 4월 4일
·
0개의 댓글
post-thumbnail

Review: 소프트웨어 개발의 지혜 - 23장_COMPOSITE 패턴

동일하게 취급 받는 파생 클래스가 여러개 있을 때, 이 여러 파생 클래스를 멤버 변수로 두고, 똑같은 기반 클래스를 상속하는 COMPOSITE 클래스를 만들 수 있다. 이 패턴의 사용은 단순하지만 가져올 수 있는 이득은 크다.앞서 COMMAND 패턴에 대해 소개하면서

2020년 4월 4일
·
0개의 댓글
post-thumbnail

Review: 소프트웨어 개발의 지혜 - 21장_FACTORY 패턴

우리는 11장에서 DIP에 대해 배우면서, 구체적인 클래스에 의존하지 않고 사이에 인터페이스를 하나 두어서 추상화에 의존하도록 하는 방법을 배웠다. 하지만 어떤 클래스 내에서 다른 클래스를 새로 생성해야 할 때는 인터페이스가 존재하더라도 무조건 구체적인 클래스에 의존성

2020년 4월 4일
·
0개의 댓글
post-thumbnail

Review: 소프트웨어 개발의 지혜 - 18장_급여 관리 사례 연구

18장과 19장에서는 간단한 일괄 임금 지불 시스템을 설계하고 구현하는 과정을 소개한다. 이번 장에서는 그 개발 과정의 맨 첫 번째 반복을 보여줄 것이다.다음은 첫 반복에 선택된 사용자 스토리에 관해 고객과 나눈 대화에서 메모한 사항 중 일부이다.몇몇 직원은 시간제로

2020년 4월 4일
·
0개의 댓글
post-thumbnail

Review: 소프트웨어 개발의 지혜 - 17장_NULL OBJECT 패턴

우리는 위와 같은 null 체크에 대해 익숙하다. 종종 이런 식의 코드는 가독성을 떨어뜨리며 에러가 발생하기 쉽다.이런 경우 NULL OBJECT 패턴을 사용하면 null 검사의 필요를 제거하고 코드를 단순화하는데 도움을 줄 수 있다.NULL OBJECT는 클래스의 정

2020년 4월 4일
·
0개의 댓글
post-thumbnail

Review: 소프트웨어 개발의 지혜 - 16장_SINGLETON 및 MONOSTATE 패턴

종종 클래스와 인스턴스는 1:N 관계를 가진다. 그리고 인스턴스는 애플리케이션보다 짧은 라이프사이클을 가지며 생성되고 소멸되기를 반복한다.하지만 단 하나의 인스턴스만을 가져야 하는 클래스도 있다. 팩토리 클래스 혹은 매니저 클래스 등이 그 예시인데, 이러한 클래스들은

2020년 4월 4일
·
0개의 댓글