백엔드 개발자들이 알아야할 동시성 6 — CoroutineCPS를 이용한 협력적 스케줄링의 구현은 작업의 단위가 어떻게 나뉘는지 매우 직관적으로 알 수 있지만, 순차적으로 작성하던 기존 코드와 많이 달라지는점이 있기에 이해하기 어려워 진다는 문제가 있습니다.Sep 27, 2023Sep 27, 2023
Published inreturnzeroAI 스타트업의 Cloud Cost Optimization높은 정확도의 음성인식 AI는 정말 많은 서버 리소스를 요구합니다. 리턴제로에서 운영하고 있는 서비스들의 트래픽만 고려하더라도 안일하게 운영했다간 감당할 수 없는 비용을 떠안게됩니다.Jun 14, 2023Jun 14, 2023
업데이트에서 배우는것 — SQLAlchemy 2.0저는 업데이트를 좋아합니다. 프로젝트에서 사용하는 라이브러리의 새 버전이 나오면 업데이트할 생각에 설레는 편이죠.Jun 7, 2023Jun 7, 2023
백엔드 개발자들이 알아야할 동시성 5 — Continuation Passing Style협력적 스케줄링을 구현하기 위해서는 다양한 방법을 사용할 수 있습니다. 다양한 프로그래밍 언어에서 지향하는 다양한 철학에 따라 여러가지 구현 방법이 있을 수 있죠. 오늘은 협력적 스케줄링을 구현하기 위한 첫번째 방법인 Continuation…Aug 28, 20221Aug 28, 20221
Published inreturnzeroVITO CI/CD 변천사 #2 | Container OrchestrationScalability는 대규모 서비스에서 1순위로 고려해야 할 문제입니다. 아니, 대규모 서비스가 아니더라도 1순위로 중요한 문제일 것입니다.VITO 팀이 Scalability를 위해 ECS로 이전하게된 이야기입니다.Aug 23, 2022Aug 23, 2022
추상화는 추상적이지 않다프로그래머라면 언젠가는 마주해보았을 단어가 “추상화(Abstraction)” 일것입니다. 대부분의 사람들은 객체지향의 개념에 대해 공부하며 처음 접해보았을것이고, 디자인패턴, 설계패턴등에 대해 공부할때 또한 접해보았을것입니다.Aug 17, 2022Aug 17, 2022
백엔드 개발자들이 알아야할 동시성 4 — 스케줄링지난 포스팅에선 많은 쓰레드와 잦은 컨텍스트 스위칭이 어떻게 웹서버의 성능에 영향을 주는지 간단하게 이야기 해보았습니다. 이번 포스팅에선 컨텍스트 스위칭에 대해서 다시한번 이야기하며 시작해보도록 하겠습니다.Jan 26, 2022Jan 26, 2022
백엔드 개발자들이 알아야할 동시성 3 — 쓰레드와 컨텍스트 스위치지금까지의 포스팅에선 병행성(Concurrency), 동기(Synchronous) / 비동기(Asynchronous), 블로킹(Blocking) / 논블로킹(Non-)Blocking에 대해서 알아보았습니다. 이제는 이러한 개념들 위해서 많은…Jan 26, 2022Jan 26, 2022