기타/IT관련 정보

미미키는 NCP를 어떻게 활용했는가

철매존 2025. 9. 3. 23:05
728x90
반응형

미미키가 뭐에요?

'아.. 그 밈 뭐더라?'하며 특정 상황에 맞는 밈을 찾지 못했던 경험을 해결하기 위해 기획된 밈 백과사전 서비스입니다.
밈을 쉽게 찾고, 어떨 때 쓸 수 있는지 확인하고, 상황에 맞춰 빠르게 활용할 수 있는 서비스에요.

 

 

여기서 밈잘알 테스트를 해볼수도 있고 실제로 앱을 깔아서 쓰셔도 좋습니다.

서버는 어떻게 구성했나요?

NCP 를 활용했고, 인프라 구축과 배포 환경은 최대한 자동화된 방식으로 할 수 있도록 다음과 같이 적용했습니다.

  • Compute > Server (VM): Docker 컨테이너(애플리케이션, 데이터베이스 등)를 실행하고 실제 서비스를 운영하는 가상 서버 환경으로 사용했습니다.
  • Container > Container Registry: GitHub Actions에서 빌드된 애플리케이션의 Docker 이미지를 저장하고 관리하는 프라이빗 레지스트리(저장소)로 활용했습니다.
  • Networking > VPC / Public IP: 서버가 외부 인터넷과 안전하게 통신할 수 있도록 가상 네트워크 환경을 구성하고, 공인 IP를 할당하여 서비스에 접근할 수 있도록 했습니다.

그러면 이거 어떻게 동작해요?!

  1. 개발 및 Push: 개발자가 로컬에서 코드를 수정한 뒤 GitHub의 master 브랜치로 Push합니다.
  2. CI (Continuous Integration): GitHub Actions가 Push 이벤트를 감지하여 워크플로우를 실행합니다. Spring Boot 애플리케이션을 Gradle로 빌드하고 테스트한 뒤, Dockerfile을 기반으로 최신 버전의 Docker 이미지를 생성합니다.
  3. 이미지 저장: 생성된 Docker 이미지는 Ncloud Container Registry에 latest, commit-hash, timestamp 세 가지 태그로 Push되어 버전 관리가 용이하도록 구성했습니다.
  4. CD (Continuous Deployment): Ncloud Server에는 Docker Compose를 통해 애플리케이션, MySQL DB, Watchtower 컨테이너가 실행되고 있습니다.
    • Watchtower는 주기적으로(5분마다) Ncloud Container Registry를 모니터링하다가 새로운 :latest 이미지가 Push된 것을 감지하면, 자동으로 새 이미지를 Pull하여 기존 애플리케이션 컨테이너를 중단하고 최신 버전으로 재시작합니다. 이를 통해 코드 변경만으로는 서버에 직접 접속할 필요 없이 무중단에 가까운 자동 배포가 이루어집니다.
    • 만약 docker-compose.yml과 같은 인프라 설정이 변경된 경우, GitHub Actions가 SSH를 통해 직접 Ncloud Server에 접속하여 파일을 업데이트하고 서비스를 재시작하도록 구성했습니다.

 

 

대충 이런 식으로 동작합니다.

NCP... 어땠나요?

당연히 좋았습니다.
일단 한국어로 되어 있기도 하고 모르는 것이 있으면 질문하는 것에 제약이 적은 것도 좋았고, 그 때 필요한 것을 정말 빠르게... 친절하게 알려 주셔서 초보자 입장에서 도움이 많이 되었습니다.
그리고 SSL 인증서를 바로 발급 받고 별도의 세팅 없이도 적용이 가능한 것도 좋았습니다.

다만 가격이 약간 부담이 될 수는 있긴 한데.. 이거는 최대한 효율적으로 잘 이용하는 수밖에 없어 보입니다.

Green Developers 참여 소감

이번에 동아리에서 감사하게도 네이버에서 크래딧 지원을 받아 NCP 를 활용해 보았는데, 다른 서비스에 비해서 뾰족한 장점이 존재하기 때문에 인프라 구성에서 잘 활용할 수 있어 보입니다.
뭔가 필요한 것이 있을 때 추가가 빠르기도 하고 적용 방법도 간단하기 때문에 많은 도움을 받을 수 있었습니다.
좋은 기회를 받아 감사드리고 다른 기회가 된다면 또 함께 이것저것 시도해 보고 싶네요.

반응형