TIFY (This Is For You)
안녕하세요.
오늘은 10일 동안 진행하는 비사이드의 포텐데이에 참가한 저희 tify 프로젝트에 대해 설명 드릴려고 합니다.
서비스 소개
저희 TIFY는 취향에 맞는 선물을 주고 싶은 이용자에게 키워드 기반의 상품을 추천해 주는 생성형 AI 서비스 입니다.
선물을 고르는데 많은 시간과 돈을 쓰면서도 상대방의 마음에 들지 않는 경우가 많습니다. 다양한 상황과 대상에 맞는 선물을 제한된 예산 내에서 쉽게 찾을 수 있도록 서비스를 기획했습니다.
👉 TIFY 시작하기
NCloud 서비스
TIFY에서 사용한 Ncloud Service는 총 16개 입니다.
- VPC
- Virtual Private Cloud
- 클라우드 컴퓨팅 환경에서 네트워크 리소스를 가상화하고, 이를 통해 사용자가 자신만의 가상 네트워크를 설정할 수 있게 해주는 서비스입니다.
- (private한 server에 진입하려면 필수다)
- Global DNS
- Global Domain Name System
- 인터넷 도메인 이름과 IP 주소를 연결해주는 역할을 합니다.
- (연결만 해주고 도메인 구매는 타 서비스를 사용해야한다)
- Certificate Manager
- 네이버 클라우드 플랫폼에서 제공하는 다양한 연동 서비스에서 사용할 인증서를 등록할 수 있으며 유효성이 확인되면 인증서가 연동됩니다.
- Cloud Log Analytics
- 네이버 클라우드 플랫폼 콘솔을 통해 여러 곳에서 수집된 로그를 간편하게 조회할 수 있습니다.
- 여러 서버에 개별적으로 접속하거나 서비스 별로 확인할 필요가 없어 로그를 편리하게 파악할 수 있습니다.
- (로드밸런싱이 설정 된 서버에는 필수로 필요하다)
- Cloud DB for MySQL
- 여러 가지 네이버 서비스에서 검증된 최적의 MySQL 설정을 기본으로 제공하여 데이터베이스 튜닝 작업 없이 바로 사용할 수 있습니다.
- (편리하고 좋다, 하지만 당연히 일반 서버보다는 2배 가량 비싸다)
- SourcePipeline
- SourcePipeline은 SourceCommit, SourceBuild, SourceDeploy를 통합한 서비스로 소프트웨어를 출시하는 데 필요한 일련의 과정을 자동화여 새로운 기능을 빠르게 출시할 수 있습니다.
- SourceDeploy
- 배포 타깃인 서버 그룹에 소스 배포, 실행, 검증의 전 과정을 자동화할 수 있습니다. Auto Scaling과 연동되어 있으면 스케일 아웃된 서버에도 가장 최근 배포한 소스를 자동으로 배포하여 소프트웨어의 지속적인 배포(Continuous Delivery, CD)를 구현할 수 있습니다.
- SourceBuild
- SourceBuild 전용 고성능 인프라를 제공하여 빌드 환경을 빠르게 프로비저닝하고 자동으로 확장할 수 있으며 독립된 환경에서 다수의 빌드를 동시에 안전하고 빠르게 처리합니다.
- SourceCommit
- 높은 가용성과 서버 확장성을 가진 NAS에 중요한 소스 코드를 저장하고 이중화 아키텍처를 제공합니다. 용량 제약 없이 리포지토리를 생성할 수 있으며 소스코드뿐만 아니라 이미지, 바이너리 등 모든 형태의 파일을 안전하게 저장하고 언제 어디서든 접속할 수 있습니다.
- Container Registry
- 컨테이너 레지스트리는 네이버 클라우드 플랫폼의 서버 상품 및 도커 CLI와 통합하여 사용할 수 있습니다. 도커 CLI를 사용해 도커 컨테이너 이미지를 컨테이너 레지스트리로 쉽게 전달할 수 있고, 이미지를 직접 운영 서버에 가져와 배포할 수 있어 개발부터 서비스 배포까지 필요한 작업을 간소화할 수 있습니다.
- Object Storage
- HTTPS를 통해 데이터가 암호화되어 있으며 여러 단계의 보안 장비를 비롯해 데이터 유실 방지에 초점을 맞춰 설계된 시스템이 뛰어난 데이터 내구성 및 복원력을 보장합니다. 중요한 데이터를 보관하거나 서비스 복구에 사용할 백업 데이터를 보관하기에 적합합니다.
- (AWS의 S3 기능)
- Load Balancer
- 로드 밸런서에 연결된 일부 서버에 장애가 발생할 경우 자동으로 해당 서버의 부하를 다른 서버로 분산하여 서비스가 중단되지 않도록 처리합니다. 이미 로드 밸런서에 반영된 서버라도 다른 로드 밸런서에 다중으로 추가 설정할 수 있습니다.
- Auto Scaling
- 서비스 운영에 필요한 용량을 판정할 수 없는 불확실한 상황에서 고가용성을 확보하기 위해 미리 서버 수를 증량해둘 필요가 없습니다. 운영 중인 서버를 모니터링해 서버 증량이 필요한 조건에 도달하면 자동으로 서버 수를 늘려주고, 조건이 해소되면 자동으로 서버가 반납되도록 설정할 수 있습니다.
- Server
- 네이버 클라우드 플랫폼 콘솔에서 몇 분 내에 서버를 생성할 수 있습니다. 운영 체제를 별도로 설치하지 않아도 선택한 서버 이미지에 따라 서버가 제공됩니다. 스펙 변경 기능을 통해 사용하고 있는 서버의 CPU나 메모리도 조정할 수 있습니다.
- CLOVA Studio
- CLOVA Studio는 기업이 보유한 대량의 전문 데이터셋을 HyperCLOVA X 언어 모델과 결합해 AI 기반의 특화된 서비스를 손쉽게 만들 수 있는 개발 도구입니다. 비즈니스 목적에 최적화된 CLOVA Studio를 통해 기업의 생산성을 향상하고 경쟁력을 강화할 수 있으며, 기업이 겪고 있는 다양하고 어려운 여러 문제들을 해결할 수 있습니다.
- Sub Account
- 네이버 클라우드 플랫폼의 Sub Account 웹 콘솔에서 서브 계정과 서브 계정이 속하는 그룹을 생성하고 체계적으로 관리할 수 있습니다. 또한 관리형 정책이나 사용자가 정의한 사용자 정책을 서브 계정은 물론 그룹에도 부여할 수 있습니다.
적용시키기

Sub Account
다른 BE 혹은 기획자(CLOVA Studio 사용)가 이용할 수 있도록 먼저, Sub Account를 설정 해 주어야 한다.

권한 관리는 정책 항목을 설정 해 주면 된다.

Server
우리는 서버가 총 4대가 있다. (AutoScaling 빼고)
1. Real Server
2. Beta(Dev) Server
3. Bastion Server
4. DB Server
재미있게도 Beta Server만 Rocky고 모두 Ubuntu OS를 사용하고 있다. (여담이지만 BE가 2명이였는데, 둘다 주로 사용하는 OS 계열이 달랐다)

보다시피 tify-api-server는 직접적으로 접근 할 수 없으며, bastion-host를 거쳐서 Private Subnet에 접근할 수 있습니다.

Database Server도 Private Subnet이므로 당연히 직접적으로 접근이 불가능하다.
Global DNS
외부에서 구입한 도메인 네임을 적용 시키기 위해 Global DNS를 사용해야한다.



네임 서버는 반드시 Master NS로 지정 해 주어야 정상적으로 작동한다.
SourceCommit

github와 같이 source 버전 관리를 할 수 있다.
후기
- DBServer에
서버 접속 콘솔 이 없어서 불편했다.
- Server에
서버 접속 콘솔의 글씨가 너무 작아서 불편했다.
- Sub Account 설정이 매우 간편해서 용이했다.
- CLOVA Studio의 학습 기능이 있어서 매우 좋다. 예전에 open ai API를 사용 했을 때엔 학습 기능이 없었다. (지금은 생겼을 것 같다.)
- CLOVA Studio에서 이미지를 인식하는 기능이 없어서 아쉬웠다. open ai 경우
비전이라는 이미지 인식 기능을 제공 해 주고 있다. CLOVA Studio는 이미지로 되어있는 텍스트 인식만 된다.
- Cloud Log Analytics에 로그 메세지만 모아서 보여주는 기능이 있으면 좋을 것 같다.
- Certificate Manager 기능이 있어서 좋다. 따로 인증서를 구매할 필요가 없기 때문이다.
소감
평소 Oracle Cloud 또는 NHN Cloud를 사용 해본 경험으로써, Naver Cloud는 처음 사용하였다. 익숙치 않은 환경에 조금 불편함과 어려움을 느꼈지만 공식 가이드를 보며 차근차근 따라가니 어떤 느낌인지 감을 찾는 느낌이였다.
익숙해지면 여러 편리 기능을 사용할 수 있어서 좋을 것 같다.