Project
-
야구장 좌석 시야 서비스 SPOT! 서버 파트의 여정Project/SPOT! 2024. 10. 7. 15:28
안녕하세요! 디자이너와 프로그래머가 만났을 때, 디프만(Depromeet) 15기의 6팀 서버 파트입니다 👋 저희 육.지.행 팀은 얼마 전 성공적으로 SPOT! 서비스의 2차 MVP 개발을 마친 후 Play Store에 서비스를 런칭했어요. 디프만에 지원하는 서버 개발자분들 대부분이 짧은 시간 내에 서비스를 런칭하는 것과 프로젝트 중 개발 역량을 키우는 것에 많은 기대감을 가지고 계실 것 같아요. 이번 포스팅을 통해 저희가 서비스를 개발하며 겪었던 일들을 개괄적으로 소개해드리고, 빠른 기간 내에 성공적으로 프로젝트를 런칭한 노하우를 공유해보려 해요. 16기 디프만 서버 파트 지원자, 그리고 사이드 프로젝트를 시작하려는 모든 개발자분들께 이 포스팅이 도움이 되었으면 해요 🥳 SPOT! 은 무슨 서비스 ..
-
DB 쿼리 실행계획 분석:"실행계획 분석으로 쿼리 성능 개선하기: Spot! 앱의 응답 속도 최적화 여정"Project/SPOT! 2024. 9. 30. 21:40
안녕하세요, 여러분! 오늘은 제가 Spot! 앱의 응답 속도를 개선하면서 겪은 여정을 공유해보려고 해요. DB 쿼리 성능 개선이 얼마나 중요한지, 그리고 실행계획 분석이 어떻게 도움이 되는지 함께 알아보아요~!실행계획 분석으로 쿼리 성능 개선하기: Spot! 앱의 응답 속도 최적화 여정처음에는 앱에서 특정 데이터를 조회하는 데 시간이 오래 걸리는 문제가 있었어요. 쿼리는 다음과 같았고, 실행 계획을 보니 전체 테이블 스캔이 일어나고 있었어요. 기존 쿼리SELECT r1_0.*, s1_0.*, s2_0.*, b1_0.*, s3_0.*, r2_0.*, m1_0.*, l1_0.*FROM reviews r1_0JOIN stadiums s1_0 ON s1_0.id = r1_0.stadium_idJOIN secti..
-
Ubuntu 서버에서 Node.js 프로젝트 세팅하기 feat. PM2로 서버 자동화Project/OpenList 2024. 9. 25. 22:58
안녕하세요! 오늘은 Ubuntu 환경에서 Node.js 프로젝트를 세팅하고, PM2를 활용해 서버를 자동화하는 과정을 단계별로 알려드리려고 해요. 🌐🚀 먼저, Node.js를 설치하고, Git을 사용해 프로젝트를 복제한 후, 프로젝트를 백그라운드에서 실행하는 방법을 살펴볼 거예요.만약 서버 인스턴스를 아직 만들지 않았다면 아래 포스팅을 따라 Ubuntu 서버 인스턴스를 먼저 만들고 접속한 뒤 진행해 주세요. private 서버 인스턴스 NAT 게이트웨이 생성1. Node.js 설치하기 🛠️NAT Gateway 연결 확인 Ubuntu 서버에서 ping google.com을 통해 패킷이 잘 오는지 확인하고 인터넷 연결을 확인했어요.위의 사진처럼 초마다 계속 로그가 찍히면 인터넷 연결이 잘 되어있는거에요..
-
CLOVA-Studio로 인공지능 데이터 평가 서버 구축하기 feat. 데이터 품질 개선 알고리즘Project/OpenList 2024. 9. 25. 21:54
안녕하세요! 오늘은 Openlist 팀에서 CLOVA-Studio를 이용해 인공지능 데이터 평가 서버를 구축한 경험을 공유해보려고 합니다. 데이터 품질 개선을 위해 적용한 알고리즘도 함께 소개할게요. 작동 조건Redis Pub/Sub을 이용해 WAS와 통신합니다.Redis에서 "ai_generate" 채널을 구독하다가 processAiEvaluate 메시지가 오면 평가 수가 설정된 number 이하인 모든 아이템을 평가합니다.{ "message": "processAiEvaluate", "body": number }평가 방식평가 수가 number 이하인 모든 아이템을 전부 가져온 다음, 이를 10개씩 자른 뒤 가장 괜찮은 아이템 3개를 뽑아달라고 네이버 HyperClova X에 요청을 보냅니다.너는 평가자..
-
GPT-4로 인공지능 데이터 캐싱 서버 구축하기 feat. Promise PoolProject/OpenList 2024. 9. 25. 20:29
안녕하세요, Openlist 팀의 백엔드 기술에 관심을 가져주셔서 감사합니다! 기술 블로그 작성하는 게 정말 재미있네요! 오늘은 우리 팀의 이야기를 공유하기 위해, GPT-4를 활용한 인공지능 데이터 캐싱 서버를 구축한 경험을 중심으로 글을 써볼까 합니다. Why GPT-4?일단 처음에는 기존의 Clova Studio를 사용하기로 했었어요. 우리에겐 20만 원이라는 크레딧이 있었거든요. 하지만 호기심에 GPT-4에 같은 질문을 넣어봤는데, CLOVA Studio랑 비교했을 때 놀라운 데이터 생성 능력을 직접 경험하고는 GPT-4를 사용하기로 결정했습니다.API 키 발급 받기GPT-4를 사용하려면 먼저 OpenAI 플랫폼에서 API 키를 발급받아야 해요. 이 과정은 비교적 간단해서 아래 문서만 보고 따라..
-
Pipe & Filter 아키텍처로 인공지능 데이터 캐싱 시스템 구축하기Project/OpenList 2024. 9. 25. 19:56
안녕하세요, Openlist 팀의 백엔드 기술에 관심을 가져주셔서 감사합니다! 🚀 오늘은 복잡하지만 매력적인 Pipe & Filter 아키텍처와 이를 적용한 서버 인스턴스 분리 방식에 대해 이야기해 보려고 합니다. 이 구조는 각각의 서비스가 독립적으로 작동하면서도 서로 연결되어 있는 형태를 취하는데요. 먼저, 우리 팀이 가지고 있던 문제점에 대해서 알려드리겠습니다.배경서버 측에서는 앱으로부터 지정된 엔드포인트로 요청이 오면, 요청에 포함된 데이터를 가지고 네이버의 생성형 인공지능인 CLOVA Studio API에게 데이터 생성을 요청하고 받은 데이터를 파싱해서 다시 앱 쪽으로 응답을 쏘는 구조였어요. Openlist 팀의 서버에서 어떻게 CLOVA Studio API 키를 발급받아서 연동했는지는 아래 ..
-
NestJS로 CLOVA Studio API 연동하기: 완벽 가이드Project/OpenList 2024. 9. 25. 19:37
안녕하세요, 여러분!오늘은 NestJS 서비스에서 CLOVA Studio API를 연동하는 방법에 대해 알아보려고 합니다. 먼저, CLOVA Studio에 서비스 앱을 등록하는 것부터 시작해 볼까요? 1. CLOVA Studio에 서비스 등록하기https://clovastudio.ncloud.com/CLOVA Studio에 접속한 뒤, 플레이 그라운드를 클릭해 주세요. 플레이 그라운드에서는 여러가지 테스트를 해볼 수 있는 환경이 제공됩니다. 여기서 우리는 오른쪽 위 프로필 이름 아래에 있는 테스트 앱 버튼을 눌러줄 거예요. 작업을 먼저 만든 다음 테스트 앱 버튼을 누르면 모달이 뜰 텐데요. 여기서 우리는 "여기" 버튼을 눌러서 서비스 앱 신청 폼을 작성하도록 하겠습니다. 2. 서버에서 CLOVA..