
[Infra] SPOF 극복하기
초보 개발자에겐 서버 인프라를 만들어서 배포하는 것도 매우 힘든 일이다. 하지만 EC2에 서버를 올리고, DB에 연결하기만 하면 서비스를 위한 준비는 끝일까? 우리의 서버는 가끔, 위험한 상황을 마주한다. 그것이 악의적인 트래픽 공격일 수도 있고, 단순히 프로그래밍 실수로 인한 서버 자원 과부하일 수도 있다. 상황은 여러가지다. 하지만 유저가 겪는...

초보 개발자에겐 서버 인프라를 만들어서 배포하는 것도 매우 힘든 일이다. 하지만 EC2에 서버를 올리고, DB에 연결하기만 하면 서비스를 위한 준비는 끝일까? 우리의 서버는 가끔, 위험한 상황을 마주한다. 그것이 악의적인 트래픽 공격일 수도 있고, 단순히 프로그래밍 실수로 인한 서버 자원 과부하일 수도 있다. 상황은 여러가지다. 하지만 유저가 겪는...
0. 주의 AWS 인프라를 공부하면서 정리한 글 입니다. 정확하지 않은 정보가 포함되었을 수도 있으니, 만약 틀린 점이 있다면 댓글로 알려주시면 감사하겠습니다. Rigion 공식 문서 정의: 전 세계에서 데이터 센터를 클러스터링하는 물리적 위치. 각 Rigion은 물리적으로 격리되어 있으며, 최소 3개의 AZ를 포함한다. 한국의 경우 ...

이번 글은 if(kakao)2022의 ㄷㄷㄷ: Domain Driven Design과 적용 사례공유를 보고 옮겨보았습니다. 앞선 글에서는 DDD를 대하는 자세, 개발 방법에 대한 내용이었다면, 이번 글은 카카오 엔터테인먼트의 레거시 시스템을 DDD를 활용한 MSA로 분리하는 과정을 구체적 예시를 들어 설명하고 있었습니다. 1. Bounded Con...

제이슨이 우아콘 2024에서 발표한 DDD 그렇게 하는거 아닌데를 글로 정리해봤습니다. 정리하고 보니 굳이 DDD에 국한된 이야기는 아닌 것 같았습니다. 어느 아키텍쳐, 어느 개발 방법론을 쓰든 필요한 내용이었습니다. 1. 구현보다 정의가 먼저: Greenfield 프로젝트의 자세 새로운 프로젝트(Greenfield)를 시작할 때 개발자가 가장 ...

0. 쿼리를 개선해야 하는 이유 기능을 개발했다고 끝난 것은 아니다. 당장은 유저가 없고, 데이터가 적어서 조회 속도가 빠르겠지만, 데이터가 100만, 1000만이 되면 우리의 DB가 멀쩡할까? 우리가 평소에 사용하는 서비스들을 생각해보자. 로딩이 0.n초라도 느리면, 우리는 바로 새로고침을 누르거나 페이지를 나가버린다. 이만큼 속도 문제는 치명적...

0. 서론 팀 프로젝트를 하면서 다음과 같은 상황을 마주했다. 나의 모멘트(게시글) 페이지를 불러올 때, 해당 모멘트에 알림이 달렸는지 여부도 함께 불러와야 했다. 처음엔 기존 특정 유저의 모멘트들을 불러오는 API가 이미 존재하니, 이걸 건드리지 않고 특정 유저의 알림 정보를 불러와서 프론트에서 조합하게 만든다면 깔끔하게 해결된다고 생각했다. ...

이 글에서는 점점 비대해지는 메서드를 어떻게 분리하고, 유지보수하기 좋은 코드로 만들 수 있는지에 대한 리팩토링 과정을 공유하려 한다. 특정 기능 하나를 실행했을 뿐인데, 그 안에서 너무 많은 일이 벌어지고 있다. Facade 패턴과 Spring Event Listener를 활용해 해결한 과정을 공유한다. 대상 독자 하나의 메서드가 너무 많은...

서론 우아한 테크코스 Level3 과정을 진행하면서 처음으로 팀 프로젝트에 참여하고 있다. 프로젝트 도중 우리 사용자에게 실시간 알림을 보내야 할 필요성이 생겼고, 내가 이 알림 기능을 맡게 됐다. 약 3~4일 동안 구현하면서 정리한 지식과 트러블 슈팅을 기록하고자 한다. HTTP 통신이 실시간 알림에 부적합한 이유 먼저 생각한 것은 기존 H...

람다 표현식에서 변수를 사용하다보면, 어느순간 만나게 되는 경고 문구가 있다. 왜 람다식에서는 이런 제약이 있는 걸까? 이것을 알기 위해선 자바에서의 메모리 개념과, 람다식이 어떻게 자유변수를 사용하는지 알아야 한다. 1. Stack 메모리, Heap 메모리 자바에 존재하는 메모리 중 두 개의 메모리 작동 방식을 알아야 한다. 1.1 Sta...

4월 4일 금요일로 우아한 테크코스 7기 Level1 과정이 끝났다. 프로그래밍을 제대로 배운 것은 처음이었고, 할 일도 엄청나게 많았지만 다시 돌아보니 매우 재미있었다. 크루들과 만나고, 프로그래밍을 하는 과정이 너무 즐거워서 잠실 캠퍼스에 등교하는 것이 기다려졌을 정도다. 이번 글에서 레벨1이 어떻게 지나갔는지 짧게 회고해본다. 1. 소프트스킬 ...