My Experience at Code on JVM Chennai: From DSA in Production to Building AI Products

개요

Code on JVM Chennai 밋업은 생산 환경에서의 DSA 활용과 AI 제품 구축 경험을 공유하며, 소프트웨어 개발의 실제와 학습 간극을 좁히는 데 중점을 두었다.

주요 내용

* 생산 환경에서의 DSA (Data Structures and Algorithms)
* DSA는 코딩 인터뷰뿐만 아니라 일상 앱에서 사용되는 고급 데이터 구조를 이해하는 데 중요하다.
* Bloom Filter: 데이터셋에 특정 요소가 존재하는지 빠르게 판단하는 메모리 효율적인 확률적 자료구조로, Instagram, Apache Cassandra, Google Chrome 등에서 활용된다.
* HNSW Graph (Hierarchical Navigable Small World): 현대 AI 애플리케이션의 기반이 되는 자료구조로, 수백만 개의 벡터 간 유사성 검색을 빠르게 수행하여 AI 검색을 실용화한다. 벡터 데이터베이스, AI 검색, 추천 시스템, RAG 등에 사용된다.
* Skip List: 균형 트리 대안으로 빠른 검색, 삽입, 삭제를 지원하며, Redis Sorted Sets, Rate Limiting, RocksDB Storage Engine에 사용된다.
* LSM Tree (Log-Structured Merge Tree): 쓰기 작업이 많은 시스템에 최적화되어 데이터베이스 및 스토리지 시스템의 쓰기 성능을 향상시킨다. 스토리지 엔진, 데이터베이스, 라이브 스트리밍 시스템 등에 적용된다.
* Consistent Hashing: 서버 추가/제거 시 데이터 이동을 최소화하며 요청을 여러 서버에 분산시키는 방식으로, Akamai CDN, Netflix, Amazon DynamoDB, Discord 라우팅 등에 사용된다.
* Hexagonal Grid (H3): 지리 공간 인덱싱 시스템으로 지도를 육각형 셀로 분할하여 위치 기반 처리를 효율화한다. Ola, Uber, Swiggy, Zomato 등에서 활용된다.
* HyperLogLog: 메모리를 적게 사용하면서 고유 요소의 개수를 추정하는 확률적 알고리즘으로, Reddit Analytics, Dashboards, Google BigQuery 등에 사용된다.
* DSA는 수백만 사용자에게 효율적으로 서비스를 제공하는 시스템 구축에 필수적이다.

* AI 시대에 구축할 만한 아이디어 발굴
* 제품 구축 자체보다 실제 문제를 해결하고 사람들이 기꺼이 비용을 지불할 만한 가치를 창출하는 것이 중요하다.
* 완벽한 시점을 기다리기보다 아이디어를 즉시 구축하고, 제품의 수익 창출 방안을 학습해야 한다.
* 경쟁 우위는 제품 자체가 아닌 실행력, 고객 이해, 지속적인 개선에서 나온다.
* 큰 규모로 구축하기 전에 자신의 주변에서 솔루션을 구매할 의향이 있는 사람을 찾고, 아이디어를 검증한 후에는 전념하여 개선해야 한다.
* 최초의 유료 고객 확보는 실제 문제를 해결하고 있음을 증명하는 중요한 이정표이다.
* 코딩 능력 외에 사용자 이해와 의미 있는 문제 해결 능력이 성공적인 소프트웨어 구축에 동등하게 중요하다.

* Java에서의 대용량 파일 다운로드 스트리밍
* 대용량 파일을 메모리에 로드한 후 사용자에게 전송하는 방식은 과도한 RAM 사용과 성능 저하를 유발할 수 있다.
* Java 애플리케이션은 파일을 작은 청크로 나누어 전송하는 스트리밍 방식을 사용하여 메모리 소비를 줄이고, 애플리케이션 성능, 응답 시간, 확장성을 개선한다.
* 스트리밍은 비디오, PDF 문서, 보고서, 클라우드 스토리지 다운로드, 엔터프라이즈 애플리케이션 등에서 일반적으로 사용된다.

시사점

Code on JVM Chennai 밋업은 첨단 데이터 구조가 대규모 시스템을 어떻게 구동하는지, 성공적인 제품은 고객 문제에 기반해야 하며, 백엔드 엔지니어링 기법이 성능과 확장성을 어떻게 향상시키는지에 대한 실질적인 이해를 제공하여 소프트웨어 엔지니어링에 대한 학습자의 시야를 넓혔다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions