본문 바로가기

개발/프로젝트-식당 웨이팅 앱 FOOD LINE28

[Typescript] TS로 식당 웨이팅 앱을 개발한 이유 Typescript 기반의 Restful API를 개발한 의사결정의 이유, 그리고 JS 와 TS의 개념을 다시 한번 정리하기 위해 글을 쓴다. 도대체 Typescript가 왜이렇게 핫한지, 왜 쓰는지 명확하지 않은 분들은 꼭 읽어보기 바란다. Typescript로 식당 웨이팅 앱을 개발한 이유 1. 왜 Typescript 인가? 2. JS를 보완하는 TS의 특징 3. TS를 사용하며 느낀 점 4. 결론 위의 목차를 클릭하면 해당 글로 자동 이동 합니다. 왜 Typescript 인가? TS는 최근 JS 개발자에게 필수 스펙으로 요구될 만큼 인기가 많은데 가장 핵심적인 이유는 TS가 동적 언어인 JS를 보완해주기 때문이다. JS는 대표적인 동적 언어이다. 아래에 JS와 TS의 대표적인 차이점인, 데이터 타입.. 2024. 1. 16.
웨이팅 API에서 동시성제어 구현하기 2 Bullqueue 의 적용 범위와 load balancing 과의 병합 때문에 많은 trouble 을 겪은 bullqueue 였지만 요청 처리를 시작하는 기준을 bullqueue 로 제어한다고 하여도, 처리가 끝나는 latency 가 존재하기 때문에 데이터의 무결성, 안정성을 확실하게 보장하기 위해서는 Lock 등 처리를 하는 것이 좋다는 결론에 도달했다. 웨이팅 API에서 동시성제어 구현하기 2 웨이팅 API에서 동시성제어 구현하기 2 1. 문제상황 1 2. 문제해결 3. 문제상황 2 4. 문제해결 관련글 위의 목차를 클릭하면 해당 글로 자동 이동 합니다. 👉문제상황 1 Bullqueue 의 적용 범위와 message queue add 갯수의 문제 기존코드 문제점 하나의 요청에서 두개 이상의 queue.. 2023. 8. 15.
웨이팅API에서 동시성제어 구현하기 1 식당 웨이팅 시스템은 여러 고객들의 예약 및 대기 리스트를 관리해야 한다. 동시에 여러 고객이 예약하거나 대기 목록에 추가되는 경우, 데이터의 일관성을 유지하고 예약 가능한 시간 또는 자리를 정확하게 추적하기 위해 동시성 제어가 필요하다. ✔Bullqueue를 사용하여 웨이팅 동시성 제어하기! Bullqueue란 무엇인가? Bull Queue는 백그라운드 작업 처리를 위한 분산 큐 시스템으로, Redis 데이터베이스를 기반으로 동작한다. 기본적인 원리는, Producer(생산자)가 Message를 Queue에 넣어두면, Consumer가 Message를 가져와 처리하는 방식이다. Bullqueue의 작동원리 프로듀서(Producer) : 작업을 생성하고 bull Queue에 추가하는 역할, 이 작업은 큐.. 2023. 8. 9.
230703 실전프로젝트25 [PostgreSQL] 프로젝트 기술적 의사결정 ✅오늘 학습 Keyword [PostgreSQL] 팀 프로젝트 DB를 PostgreSQL로 정했고 노션에 기술적 의사결정이 정리되어있지만 구체적으로 고찰할 필요성을 느꼈다. ✅왜 MySQL이 아닌 PostgreSQL을 썼는가? 1. 공간 데이터 지원 PostgreSQL은 PostGIS라는 확장을 통해 공간 데이터를 지원한다. 공간 indexing을 사용하여 검색을 최적화할 수 있다고 판단했다. 2. 대규모 데이터 베이스 PostgreSQL은 확장성이 뛰어나고 대용량 데이터 베이스에서 잘 동작한다. 식당, user, reveiw등 900만 이상의 데이터를 핸들링하기에 적합하다고 판단했다. 3. MySQL 은 단순히 읽기/쓰기 작업에서는 더 빠른 성능을 보일 수 있지만 복잡한 쿼리 및 특정 작업에서는 불리할.. 2023. 7. 3.