ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [오분] 2020년 첫 토이 프로젝트 시작! Google Cloud Platform 세팅!
    🎁 토이 프로젝트/오분 (2020년 첫 토이 프로젝트) 2020. 3. 14. 17:25

    우리팀 능력자 디자이너의 작품(프로젝트 아이콘)

    안녕하세요! 운동하는 개발자 제이입니다~:D

    드디어 제가, 2020년 첫 프로젝트를 시작했습니다.  이번에 작성하는 토이 프로젝트 글을 시리즈(?)로 작성될 예정입니다.

    주된 내용은, 프로젝트를 하면서 배웠던 것들, 과정을 글로 쓸 예정입니다.

    오늘은 그 첫 번째! 내가 이번 토이 프로젝트를 시작한 계기와 어떤 기술 스택들을 사용하는지에 대해 이야기해보겠습니다.

     

    1. 어떻게 [오분: 프로젝트 가제] 을 시작하게 되었는가?


    때는 바야흐로 2월 말쯤, 회사 동료들과 점심시간에 카페에서 일상적인 대화와 회사 프로젝트 이야기 등등하다가

    "XXX 이런 거 있었으면 좋겠다!"
    "어?! 그러네 ㅋㅋ 그거 있으면 개꿀! 우리 디자이너, ios개발자 2명, 백엔드 개발자 있는데 한번 해볼까?!"
    "재밌을 것 같은데? 진짜 여기서 빠진다고 하면 바로 뚝배기?!"
    "OK!!"


    저희의 역사는 이렇게 시작되었습니다ㅋㅋ 그날 바로 Slack 채널을 만들고, 어떤 스택을 할지, 디자인 등등을 이야기했습니다.

    다행히 다들 회사에서 여러 가지 해보고 싶었던 것들이 있었고, 저도 어떤 제품을 A to Z 끝까지 혼자 만들어 본 적이 없어서 좋은 기회였습니다.



    2. 기술 스택 


     

    Backend: Django(Python)
    Web Server, Proxy: Nginx, gunicorn


    일단, 처음 다른 사람들과 프로젝트를 해보는 거라 어느 정도의 빠른 퍼포먼스가 나와야 한다고 생각했습니다.

    그리고 새로운 걸 배워가며 하는것 도 좋지만, 아예 새로운 언어와 프레임워크를 하다보면 러닝커브 때문에 프로젝트가 질질 끌릴것 같아서 어느정도의 타협점을 찾았습니다.

    회사에서 사용해봤고 제가 가장 잘하는 언어와 프레임워크인 Django & Python을 선택했습니다.

    Nginx + gunicorn + Django는 국룰이라 이렇게 세팅했습니다 ㅋㅋ

    (사실 이렇게밖에 안 써봐서,,,ㅎㅎ 다른 조합 있으면 댓글로 남겨주세요!)

    Cloud: GCP (Google Cloud Platform)
    DB: MySQL(gcp)


    클라우드는 처음 AWS를 사용하려다가 ios개발자인 동료가 GCP를 써보라고 추천을 해줘서 사용했습니다.

    AWS처럼 12개월 무료로 사용할 수 있고, 신기했던 건 웹 콘솔로 서버에 접속이 가능했습니다.

    아직 일부분만 사용했지만, AWS보다 뭔가 UI도 이쁘고 보기 좋은 것 같은 그런 느낌적인 느낌이 드네요!

     

    Report & Communication: Sentry, Slack, Notion
    CI : Github Action


    리포팅 및 커뮤니케이션을 위한 Tool 은 Slack, Notion을 선택했고, 서버 크래시 리포팅을 위해 Sentry를 사용하기로 했습니다.

     

    개인적으로 학생 때와 회사를 다니면서 "이게 진짜 실무구나!" 하면서 느낀 점이 에러 리포팅이었습니다. 학생 때는 에러가 나든지 말든지 😂신경을 쓰지 않았고, 내가 생각했던 동작만 테스트해봤는데, 실제 서비스에서는 많은 일들이 일어날 수 있기 때문에 신속한 대응을 위해서는 에러 리포팅이 필수인 것 같습니다.

     

    테스트 자동화를 위해 Github Action을 사용!

    Travis CI 쓰려다가,, Github에서 한 번에 하는 게 좋을 것 같기도 하고, 새로운 거 써보고 싶어서 ㅎㅎ)



    3. Google Cloud Platform 시작하기


    구글 클라우드 플랫폼에 접속하면, 이런 화면이 나옵니다.

    크게 어려운 점은 없고, 무료로 사용해보기 클릭해서 가입절차를 진행하시면 끝! 다만 가입 시 신용카드 번호를 입력해야 합니다.

    12개월 무료이기 때문에 별도의 요금은 나가지 않고, 그 이후에 사용하게 될 경우(?) 때문에 넣는 것 같습니다.

     

    GCP 대시보드
    인스턴스 생성 페이지

    이제 인스턴스를 생성해보겠습니다. 인스턴스 생성은 AWS랑 비슷한 것 같아요. 

    Compute Engine / VM 인스턴스 탭을 들어간 후 인스턴스 만들기를 클릭하면 오른쪽 이미지와 같은 화면이 나옵니다

    어떤 스펙을 사용하느냐에 따라 시간당 요금이 달라지네요. (사양이 좋을수록 비싸지겠죠? 용도에 맞게 적절히 선택)

    부팅 디스크(이미지) 생성 탭

    이렇게 어떤 OS를 사용할 건지 선택할 수 도 있습니다. 스냅샷을 만들어 놓은 게 있으면 스냅샷을 생성해서 인스턴스를 만들 수도 있네요

     

    새로 생성한 인스턴스

    만들기를 클릭하면 이렇게 인스턴스가 딱! 생성됩니다.

    여기서 저기~보이는 연결 탭의 SSH를 클릭하면,

     

    웹 콘솔

    이렇게 웹에서 서버로 접속을 할 수 있어요! 이건 좀 신기하더라고요 ㅋㅋ (AWS도 이런 기능이 있는지는 잘 모르겠네요)

    VPC 네트워크 / 방화벽 규칙 탭으로 들어가면 방화벽 규칙을 만들 수도 있습니다. 

     

    DB 서버도 GCP에서 만들 수 있네요. 처음에는 따로 서버를 만들어서 MySQL 서버를 구성하려고 했는데, 이런 편리한 기능이 있어서 사용했습니다.

     

    추가로 저는 제 로컬에서 배포할 수 있는 환경을 만들기 위해 SSH key를 copy 해서 로컬에서 클라우드 서버로 접속할 수 있게 만들었습니다. 아래 포스팅을 참고하시면 될거예요! Docker ssh 접속하는 내용인데, SSH 관련된 내용은 거의 동일하니 문제 없을 거에요!

    (혹시 안되시면 댓글로!)

     

    local 개발환경 세팅부터 배포까지 - 2부(docker-compose, ssh)

     

     

    4. 마치며


    오늘은 기술적인 내용보다는 제가 토이 프로젝트를 시작하게 된 배경과, GCP(구글 클라우드 플랫폼) 세팅에 대한 간단한 내용을 적어 봤습니다. GCP 같은 경우 처음 써봐서 되게 신기했던 것 같아요.

    별거 아니지만 내용을 그냥 알고 있는 거랑 직접 해보는 건 저 같은 주니어 개발자들에게는 정말 큰 차인 것 같아요.
    경험을 많이 쌓는 게 중요한 것 같습니다.


    이번에도 느꼈지만, 늘 해볼수록 버벅거리는 부분이 분명히 존재하더라고요ㅎㅎ 

    오늘도 즐거운 하루 되시고, 즐거운 코딩 하세요~D

    댓글

운동하는 개발자 JAY-JI