728x90

최근에 프로젝트를 하고 있는데 배포를할 때 NCP(네이버 클라우드 플랫폼)에서 진행했다. 

네이버 클라우드에서 여러가지 기술을 사용해보았다. 그 중에서 기록 해놓고 싶은 것들을 "적용기"로 기록해두었다. 그 글들을 네이버 클라우드 공식 블로그에서 인용을 했다. 정말 뿌듯했다 🥹 

 

https://m.blog.naver.com/n_cloudplatform/223006590728
https://m.blog.naver.com/n_cloudplatform/223013853228

 

728x90

프로젝트 내용 및 결과물

https://github.com/f-lab-edu/SSKA

 

GitHub - f-lab-edu/SSKA: 스터디 카페 운영 서비스 입니다.

스터디 카페 운영 서비스 입니다. Contribute to f-lab-edu/SSKA development by creating an account on GitHub.

github.com

 

사용한 NCP 서비스

  • SourceCommit
  • SourceBuild
  • SourceDeploy
  • SourcePipeline
  • Cloud DB for MySQL
  • Pinpoint Cloud
  • Auto Scaling
  • Load Balancer
  • Server
  • Object Storage
  • FileSafer

 

Ncloud 사용 중 느낀 점 (좋았던 점, 바라는 점 등)

처음에 제공된 크레딧으로 많은 기능들을 사용해 볼 수 있었다. 아마 2년 전쯤 AWS로 간단하게 배포한 경험이 있었는데 그때의 기억을 되새겨 보면 AWS는 UI가 투박스럽다고 느낀 기억이 있다. 네이버 클라우드는 내가 한국인이라 네이버를 많이 애용해서 그런지 모르겠으나 친근한 UI이고 UX또한 좋아서 이것저것 설정하는데 한결 편했다.

 

그리고 공식문서가 너무 잘 되어 있어서 꼼꼼히 잘 읽으면서 필요한 기능들을 설정하니 모든 기능들을 잘 적용할 수 있었다. 이번에 NCP 클라우드 환경 설정을 하면서 블로그를 거의 찾아보지 않았던 것 같다.

 

그러나 깜짝 놀랬던점은 FileSafer라는 기능이 있는데 이 기능에서 약 하루만에 9만8천원이 나가버렸다ㅠㅠ SourceCommit에 푸시한 코드들이 바이러스가 없는지 검사해주는 기능이어서 좋아보여서 설정을 해두었는데 돈이 너무 많이나가 버렸다. 피같은 내 돈...아무리 크레딧이지만 나한테는 정말 귀했다.. 10만원, 30만원 크레딧이 있었는데 10만원 크레딧이 다 소진 되었다고 아침에 문자가 와서 어안이 벙벙하여 NCP 크레딧 현황을 봤는데 너무 허무했다. 그치만 9만8천원에 인생공부 했다고 생각했다. 개발도 인생에 포함이 되니 인생 공부라고 하겠다.

MySQL 서버를 띄었는데 돈이 너무너무 많이 나갔다. 하루에 거의 2만원쯤 나갔나..? 기억이 안난다. 그래서 바로 디비 인스턴스를 내린 기억이 있다. 지금도 핀포인트랑 디비 성능 테스트할 때만 디비 인스턴스 올려서 테스트 하고있다.

 

 

프로젝트를 진행하며 재밌었던 점

이번 SKKA 프로젝트를 하며 다양하게 로직을 구현 해보기도 하고, Restful 하게 API도 만들어보고 객체지향을 빡세게 적용 시켜보기도 하고 클라우드 환경 구성과 CI/CD 적용을 하는 등 정말 다양하게 많이 해보았다. 특히 재미있었던 부분이 객체지향적인 설계였다. 코딩을 하면서 "집청소"하는 느낌이 든 적은 이번이 처음이었다. 난잡하고 가독성이 떨어지면서 객체들의 역할을 생각하며 코딩을 했다. 처음에 Service 코드에 로직을 구성하고 리팩토링 작업을 시작하면서 각각의 도메인 객체가 맡은 역할을 생각하여 비즈니스 로직으로 집어 넣는 작업들이 재미있었다. 마치 어릴 때 좋아했고 지금도 좋아하지만 하지 못하고 직업을 갖고 하려고 하는 레고조립 같았다.

 

 

프로젝트를 진행하며 어려웠던 점

스터디카페 예약 시스템을 구축하는 단계에서 검증 해야 하는 케이스가 생각 할수록 계속 나왔다. 그래서 총 9가지가 나왔었다. 이것을 검증하려고 몇일을 고민했던 것 같다.

프로젝트 wiki에 트러블슈팅들은 써 놓았다.(https://github.com/f-lab-edu/SSKA/wiki/04.-Trouble-Shooting)

 

 

프로젝트를 진행하며 아쉬웠던 점

작년 인턴 생활을 했을 때 알람 도메인을 맡아서 개발한 경험을 살려 푸시알람도 멋있게 개발해보고싶다는 아쉬움이 남았다.. 추후 붙여볼 예정이다.

 

 

사용한 기술 스택

 

 

앞으로 Ncloud를 어떻게 활용할지

앞으로 많은 프로젝트에서도 많이 사용될 것 같다. 특히 좀 더 전문적으로 핀포인트를 사용해서 애플리케이션을 더 개선해보고싶은 마음이 많다. 그리고 이번에는 VPC 환경이었다면 다음에는 classic 모드로 클라우드 환경을 조성해 볼 예정이다.

728x90

문제

프로젝트를 하면서 데이터베이스 id, password, secretKey 등은 깃헙 레포지토리에 노출되면 공격자가 쉽게 서버의 중요한 정보를 알아내어 서버가 위험해 빠질 수 있다. 이것을 방지하기 위해 env.properties 파일을 만들어서 중요 정보들을 관리를 했는데 프로젝트의 비즈니스 로직과 관계없는 클래스를 생성하여 환경설정을 해줘야했다. 그래서 개선을 해보았다.

문제 해결

문제를 해결하기 위해 OS자체내에 환경변수를 설정했다.

터미널이 실행되면 .bash_profile 파일 부터 읽는다고 한다.

 

1. vi ~/.bash_profile

위 명령어를 터미널에서 입력하여 export PORT=8080 이런식으로 원하는 변수들을 설정해준다.

설정이 완료 됐으면 wq로 저장 하고 나간다.

 

 

2. source ~/.bash_profile

위 명령어로 수정된 값들을 바로 적용 시켜보자

 

 

3. 테스트 하기

echo $변수 를 사용하여 잘 나오는지 테스트 해주자.

 

아래와 같이 나온다면 정상적으로 적용 되었다는 뜻이다.

 

 

4. 코드에 적용하기

테스트 까지 완료 후 코드에 적용해보자.

나는 IntelliJ IDE로 스프링부트 프로젝트를 하고 있는데, application.yml 설정 파일에 

이렇게 적용하여 애플리케이션을 실행해 보면 환경변수들이 잘 들어가며 잘 실행 된다.

+ Recent posts