개발/Denamu 프로젝트

NCP 활용 프로젝트 소개 - 🎄Denamu

codesparkling 2024. 12. 22. 21:15

프로젝트 소개

RSS 기반 FEED 크롤링 이미지

Denamu는 분산되어 있는 개발 컨텐츠를 한 곳에서 편리하게 볼 수 있도록 도와주는 큐레이션 플랫폼 서비스입니다.

RSS를 활용하여 저희 서비스에 등록된 기술 블로그의 최신 게시글 데이터를 제공합니다.

그 뿐만 아니라 채팅이나, 블로그에서 파생되는 통계 자료를 제공하여 모든 개발자들의 성장을 돕는 지식 공유 플랫폼이 되는 것을 지향하고 있습니다.

Denamu 프로젝트
Denamu 소개 페이지

서버 요구사항

저희 팀이 생각한 서버 요구사항은 다음과 같습니다.

  • 최소의 비용으로 안정적인 성능 보장
  • 외부에 서버 노출을 최소화 하여 보안 강화
  • 6주라는 시간을 고려하여 러닝커브를 최소화 하고 빠르게 서비스 개발

구체적 동작 방식

서버에서는 두 가지의 프로세스가 동작하고 있습니다. 하나는 API 서버, 또다른 하나는 RSS를 주기적으로 확인하는 RSS-Notifier라는 프로세스입니다.
RSS-Notifier는 등록된 기술 블로그의 주소를 통해서 RSS를 주기적으로 요청하여 새로운 게시글을 확인합니다.
새로운 게시글이 있다면 데이터베이스에 저장하고 API 서버에서 요청에 맞게 데이터를 가공하여 클라이언트로 전달합니다.

Ncloud에서 어떤 서비스를 이용하였나요?

먼저 VPC를 생성해야 했습니다. NCP에서는 Classic과 VPC 두 가지의 환경을 제공합니다.

둘의 차이점을 가장 쉽게 생각했을 때, 사용자별로 격리된 네트워크 제공 여부라 볼 수 있습니다.
VPC는 논리적으로 각 사용자들의 네트워크가 격리되어 사용자가 직접 네트워크를 설계하는 반면,
Classic은 CSP(Cloud Service Provider)가 할당하는 사설 IP를 기반으로 shared Network에 구축됩니다.

(저희가 선택한 한국 리전에서는 VPC만 사용할 수 있도록 설정되어 있었습니다.)

앞서 언급한 동작 방식과 서버 요구사항을 생각했을 때, 저희는 두 대의 서버 인스턴스를 생성하기로 결정을 내렸는데요,
서버를 구축하기 위해 private-db-subnet과 public-was-subnet 두 가지의 subnet을 설정했습니다.
데이터베이스가 설치된 프라이빗 서버 인스턴스는 private subnet 내부에 구축하여 외부에서 접근할 수 없도록 하였고,
API 서버와 RSS-Notifier가 실행되는 퍼블릭 서버 인스턴스는 외부와 통신을 원할하게 하기 위해 public subnet에 생성했습니다.

image

위의 아키텍처는 설계 단계에서 작성했고 클라우드 환경 또한 위처럼 구축을 완료했습니다.

Ncloud 사용 중 특히 만족했던 점과, 아쉬웠던 점은 무엇인가요?

무엇보다 한글과 한국어로 된 고객센터와 공식 문서가 가장 큰 장점이었습니다.
프로젝트 도중 Object Storage 도입을 고려하고 있을 때, Naver Object Storage가 Amazon S3 API와 호환이 되는 것을 확인했습니다.
그래서 어떻게 할 수 있을지 찾아보았을 때 공식 문서에 자세하게 작성되어 있어 쉽고 빠르게 설정을 연습할 수 있었습니다.


하나 아쉬웠던 점이 있다면, 커뮤니티가 조금 작다는 것입니다. 문제가 발생한다던가, 어떤 기능을 구현하고 싶은데 지원하지 않는 설정에 의해 구현할 수 없다던가, 이런 문제를 찾을 수 있는 자료가 한정적이었습니다. 하지만 공식 문서가 정말 잘 되어 있어서 많은 프로젝트에서 굳이 걱정할 부분은 아닌 것 같습니다.