채팅 애플리케이션 서버 설계
이번 포스팅에서는 특정한 비즈니스 상황 안에서 채팅 애플리케이션 아키텍처를 설계해보며, 다음과 같은 걸 배우는 것을 목표로 한다. 자본적인 limit을 가지고 고성능 애플리케이션을 만드는 방법 실시간 채팅 애플리케이션을 설계하는 방법 마치 실제 업무 환경에서 겪을 만한 배경이 주어지고, 그 안에서 설계를 진행할 것이다. 필자가 어떤 고민들...
이번 포스팅에서는 특정한 비즈니스 상황 안에서 채팅 애플리케이션 아키텍처를 설계해보며, 다음과 같은 걸 배우는 것을 목표로 한다. 자본적인 limit을 가지고 고성능 애플리케이션을 만드는 방법 실시간 채팅 애플리케이션을 설계하는 방법 마치 실제 업무 환경에서 겪을 만한 배경이 주어지고, 그 안에서 설계를 진행할 것이다. 필자가 어떤 고민들...
스프링이 지원하는 웹 프레임워크는 두 가지이다. 바로 이 글의 타이틀인 WebMVC와 WebFlux가 그 프레임워크인데, 이렇게 스프링이 두 가지 웹 프레임워크를 지원하는 이유는 서로 다른 아키텍처 패러다임과 사용 사례에 최적화되어 있기 때문이다. 처음부터 두 프레임워크가 함께 존재했던 것은 아니다. WebMVC가 먼저 등장했고, 시간이 흐르면서 W...
MongoDB는 ‘MongoDB는 대용량 데이터 처리에 적합하다.’라고 표현되며 설명되곤 한다. RDBMS와 어떤 차이점이 있길래 그런 수식어가 붙는걸까? 궁금증에 그런 이유들을 알아보기 위해 서칭해보면 “스키마가 유연하다”, “대규모 분산 데이터를 효율적으로 처리할 수 있는 구조이다” 등등 그 이유에 관련된 키워드가 나오지만, 그래서 왜 더 뛰어난...
애플리케이션이 동작하기 위한 일련의 data interaction을 위해선 data store가 필요하다. 그리고 data store에 어떻게 interaction을 할 것인지는 애플리케이션의 전반적인 동작에 큰 영향을 준다. 이번 포스팅에선 수많은 data store 중에 “RDBMS” 카테고리에 속하는 database와 비동기적으로 상호작용하는 A...
이번 포스팅에선 Dev Club 에서 참여한 알고리즘 스터디에서 함께 공부 했던 알고리즘 중, 이진 탐색에 대한 내용을 설명한다. 이 스터디는 코딩 테스트에서 일가견이 있으신 Jason 멘토님과 함께 했다. 멘토님께선 초등학교 때부터 알고리즘 문제를 취미로 푸셨고, 커리어에서 많은 코딩 테스트 경험, 라이브 코딩 테스트 경험을 가지고 계신 분이시다...
지난 3월 19일, 같은 직군의 개발자들과 네트워킹을 할 수 있는 ‘Connecting the Dots’ 행사에 참여했다. 행사의 타이틀인 ‘Connecting the Dots’는 스티브 잡스가 Stanford 대학교에서 발표했던 연설의 내용으로, 우리의 인생에 있어서 처음에는 관련성이 없는 일들이 시간이 지나면서 하나의 연장선상에 있는 일들처럼 연...
이번 포스팅은 인덱스 설계에 필요한 밑바탕 지식을 습득하는 걸 목적으로 한다. 이 글에서 별도로 RDBMS를 통틀어 지칭하거나 특정 RDBMS 종류를 언급하지 않으면 모두 MySQL를 지칭하는 것이라 생각하면 된다. 1. 인덱스를 사용해야 하는 이유 RDBMS는 데이터를 저장하고 조회하기 위해 사용하는 소프트웨어이다. 이런 RDBMS는 쇼핑몰이나 ...
최근 Don’t use booleans라는 글을 읽고, 저자와 같은 고민을 해볼 필요가 있다는 생각이 들어 작성하게 되었다. 해당 글에서는 함수 파라미터에 boolean을 사용하는 것이 코드 가독성과 유지보수성에 얼마나 부정적인 영향을 미치는지 이야기하며 열거형을 대안으로 제안하고 있다. 나도 boolean 파라미터를 사용할 때 유사한 문제에 직면할...
지난 1월, 다른 개발자들과 네트워킹하는 기회를 얻으려 참여한 F-Lab의 Dev Club에서 열린 네트워킹 행사가 있었다. 나는 Dev Club에 합류한 이유가 네트워킹 기회를 얻고자 함이었기 때문에 참여하게 되었다. 막 바빠지던 시기라 참여할지 말지 고민했었는데, 상상했던 것보다 훨씬 다양한 개발자 분들과 좋은 네트워킹을 할 수 있었다. ...
1. 문제의 시작 기존 모놀리스 프로젝트에 MSA 아키텍처를 도입하던 중, Config Repository와 Config Server를 띄운 후에 Config Client의 연결성을 구성하는 과정에서 아래와 같은 에러를 컴파일러가 건네주었다. Could not find org.springframework.cloud:spring-cloud-start...