본문 바로가기
728x90
반응형

전체 글315

왜 내 서비스는 5초나 걸렸을까? 그리고 0.1초로 줄인 방법 현재 저는 Melog라는 메이플스토리 Open API를 활용한 서비스를 운영하고 있었습니다. 백엔드는 Rust를 사용하고 있어서 전반적인 처리 속도는 빠를 것이라고 기대하고 있었습니다. 하지만 실제로는 캐릭터를 검색하면, Open API에서 10개 이상의 데이터를 가져와 필터링한 뒤 프론트에 전달하는 과정 때문에 약 5~7초 정도의 응답 시간이 발생했습니다. 서버 사양이 2코어 / 1GB 메모리라는 점도 영향을 줬을 것이라고 생각했습니다. 그런데 모니터링을 해보니, Next 서버가 사용 가능한 메모리를 많이 차지하고 있는 것을 확인하게 되었습니다. 이 부분을 어떻게 개선할지 고민하던 중, 비슷한 서비스에서 특정 기술 스택으로 전환 후 성능이 크게 개선되었다는 사례를 보게 되었습니다. 해당 기술은 Ta.. 2026. 4. 24.
2026 월드 IT쇼 후기 2026/04/23에 코엑스에서 진행하는 2026 월드 IT쇼에 다녀왔습니다. A홀과 B홀에서는 대학원생 분들과 여러 스타트업들이 있었습니다. (저를 떨군 스타트업도 있었던...) 이런 기업들도 있구나~ 하고 같이 블로그 스터디를 진행하고 계신분의 재직회사가 있는 C홀로 입장하였습니다. C홀에 입장하자마자 있는 Kakao의 kanana부스에 입장해서 구경하고 엄~~~청 큰 에코백을 챙기고 롯이노 부스로 이동하였습니다.롯이노에서는 현업에서 사용되는 여러 AI들과 함께, 부스 뒤쪽에서 질문을 던지면 설명해주는 로봇이 있었습니다. 화면에서는 로봇 각 관절의 온도가 표기되고, 로봇의 위치, 로봇이 보고 있는 화면, 로봇에게 말한 메시지와 답변을 보여주는 UI가 있었습니다. 로봇이 판매대를 보고 있을 때, 질문을.. 2026. 4. 23.
왜 kt cloud는 FastAPI 대신 Robyn을 선택했을까? [비교분석] FastAPI는 충분히 빠르지 않다? Robyn과의 성능 차이 직접 비교[ kt cloud AI플랫폼팀 최지우 님 ] 📋 요약 이 글에서는 Python 기반 API Gateway 구축 과정에서FastAPI 대신 Rust 런타임 기반의 웹 프레임워크 Robyn을 도입한 배경과 실측 성능 벤치마크 결과를 다룹니다.tech.ktcloud.com kt cloud에서 FastApi가 아닌 Robyn이라는 웹 프레임워크를 도입했다고 해서 찾아보게 되었습니다. 해당 글의 문단별로 내용을 기록하고, 이에 대한 제 생각을 작성해보고자 합니다.Robyn이란?Python 문법을 유지하면서 Rust 런타임을 사용하는 고성능 웹 프레임워크 라고 합니다.왜 Fast API가 아닌가?이전에는 Python의 웹 개발.. 2026. 4. 16.
[백준] 12846번 : 무서운 아르바이트 https://www.acmicpc.net/problem/12846 Stack 풀이로 유명한 유형중 하나인 문제를 해결해보았습니다. 예제 출력이 정답인 이유는 [20, 30, 20]으로 설정하여 20 * 3을 구한 60이 나오기 때문입니다.use std::io::Write;use std::{io, str};pub struct UnsafeScanner { reader: R, buf_str: Vec, buf_iter: str::SplitAsciiWhitespace,}impl UnsafeScanner { pub fn new(reader: R) -> Self { Self { reader, buf_str: Vec::with_capacity(.. 2026. 4. 11.
Rust로 만드는 통신 프로그램 여느때와 다름없이 채용 공고들을 찾아보던 와중, 보이스톡 / 페이스톡 Server 엔지니어 (경력)이라는 kakao의 공고를 보게 되었습니다. 지원자격은 다음과 같았습니다.◆ 지원자격2년 이상의 C/C++ 개발 경험을 보유하신 분'보이스톡과 페이스톡은 CPP로 만들어져 있나?' 라는 생각을 하게 되었고, 이전에 만든 채팅 프로젝트 말고, 통화와 같이 음성이 전달되는 프로젝트를 만들어 보자! 라는 생각으로 시작하게 되었습니다. Rust에서는 cpal이라는 라이브러리를 통하여 개발이 가능하고, tokio를 통하여 비동기로 진행하면 됩니다. 처음 개발할때는 완벽한 기계음이 섞인 목소리가 나왔으나, 약간의 수정을 거치고 거쳐 잡음을 제거하고 원래의 제 목소리와 비슷하게 나오도록 수정하였습니다. 해당 프로젝트는 .. 2026. 4. 1.
Rust Vec의 growth strategy (feat. Java) 오늘은 Rust의 Vec가 가지는 growth strategy에 대하여 알아보겠습니다.growth strategy 이란?초기 용량인 capactiy을 오버한 경우, 증가시키는 방법입니다.capacity이란?현재 컬렉션이 가지고 있는 size가 아닌, 미리 확보한 용량을 의미합니다. 언어별 및 자료구조별로 growth strategy를 하는 방식이 다양합니다. Java의 ArrayList는 1.5배입니다. 예를 들어import java.lang.reflect.Field;import java.util.ArrayList;public class Main { public static void main(String[] args) throws Exception { ArrayList list = ne.. 2026. 3. 26.
오픈 소스 기여 안녕하세요. 저는 사용자들에게 도움이 되는 서비스를 개발하고자 하는 목표로 지금까지 개발을 이어왔었습니다. 그러나, 이제는 개발자들에게도 도움이 되는 일을 하고 싶어, 오픈 소스 기여에 관심을 가지게 되었습니다. 어떤 오픈 소스에 기여를 해볼까 하다가, 현재 제가 사이드 프로젝트로 개발중인 메로그라는 프로젝트에서 사용하는 라이브러리들의 repo들을 확인하게 되었습니다.reqwestissue에서는 디버그 로그를 호스트 이름만 기록하도록 변경하는 간단한 이슈에 대하여 수정 후, pr을 올려 merge 되었습니다. issue에서는 현재 해당 라이브러리가 tag만 존재하고 release note가 없어 이에 대한 요청을 하였었습니다. issue에서는 현재 rust-lang docs의 링크가 변경됨에 따라, 주석.. 2026. 3. 22.
Open Source Issue Searcher 안녕하세요. 이번에는 오픈 소스 프로젝트에서 처음 시도하면 좋은 이슈들의 라벨인 "good first issue"와 "easy" 이슈를 찾아서 보여주는 사이트를 개발하였습니다. 최근 제가 개발한 코드가 개발자분들에게 도움이 될 수 있을거라고 생각이 들어, 오픈소스 프로젝트 기여에 대하여 관심을 가지기 시작했습니다. 해당 프로젝트에 접근하기 수월하도록 프로젝트별로 "good first issue"라는 라벨이 붙어져 있는 것을 보고, 이를 쉽게 찾아서 볼 수 있으면 어떨까? 라는 생각이 들어 구현하기 시작하였습니다. 사이트에서 정보를 확인 할 수 있으며 "good first issue"와 "easy"를 선택한 후, 레포 및 키워드 및 언어를 입력하여 찾을 수 있습니다. 비로그인으로 진행하는 경우, 검색 횟수.. 2026. 3. 11.
간단한 rest api 통신 확인 EasyPost 안녕하세요. 이번에는 rest api 통신을 진행하는데 필요한 확인 도구를 만들어 보았습니다. curl은 작성하기 번거롭고, postMan은 제가 쓰는 기능들 외 부가적인 기능들이 있어 개인적으로 무겁다고 생각이 들었습니다. 백엔드 개발을 진행하는데 딱 필요한 요청인 get / post / delete / put/ patch 기능 및 header와 body 추가 기능들만 구현한 EasyPost 입니다. Rust + tauri + TypeScript + React.js로 프로젝트를 진행하였습니다. 이후에도, 이런 기능들이 있으면 좋겠다 싶으신 부분들 있으면 댓글로 부탁드립니다. 감사합니다. 2026. 3. 9.
728x90
반응형