ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GOLANG으로 만든 첫 프로젝트:Panorama
    golang 2021. 8. 23. 11:30

     

    INTRO

    golang으로 진행한 프로젝트는 사실 GCS(학점 관리 시스템)도 있었지만 로그인/회원가입도 제대로 구현이 되어있지 않고, 프로젝트에 딱히 애정도 없이 시작했기 때문에 제대로 된 첫 프로젝트는 아니였습니다.

    하지만 Panorama는 api서버를 배포까지 했기도 하고, 무엇보다도 프로젝트에 애정이 있기 때문에 제대로 된 첫 프로젝트로 보기에 충분했습니다.

    WHAT IS PANORAMA

    Panorama는 gsm(광주소프트웨어마이스터고등학교) 학생들을 위해 학생들의 프로젝트를 올려 전시하는 전시웹입니다.

    쉽게 말해서 학생들이 프로젝트를 올려서 미술 작품전처럼 자유롭게 전시하고 관람할 수 있는 웹입니다.

    파노라마의 랜딩페이지입니다.

    PANORAMA를 만든 이유

    무엇보다도 우리 학교 학생들이 만든 많은 프로젝트를 봤으면 하는 바람이 있었습니다. 은연중에 만든 프로젝트가 있을 수 있고, 이러한 프로젝트들에 영감을 받아 새로운 아이디어를 통해 더 놀라운 프로젝트를 만들어 내서

    "파노라마 덕분에 이런 아이디어를 생각해 냈다" 라는 생각을 하게 되어 학생들에게 가치를 제공해주고자 했습니다.

    두 번째로 개발자라면 프로젝트를 만들면 그것을 자랑하고싶고 사용자가 피드백을 줬으면 하는 생각이 있을 것입니다.
    좋은 프로젝트가 있으면 자원해서 선배들의 프로젝트를 유지보수를 한다던가 추가 기능을 넣는다던가 하는 바람이 있었습니다.

     

    TECH STACK

    APP

    Golang, Gin, Gorm, testcode: testify/assert

    DATABASE

    PostgreSQL, Redis

    DevOps

    Github, Docker, Postman, GCP, GCE

     

    golang: 내가 golang을 선택한 이유

     

    내가 golang을 선택한 이유

     

    vinylrich.tistory.com

     

    PostgreSQL 데이터를 관리하기 위해 데이터베이스가 필요했는데, 예전 학교 프로젝트로 써본 MS SQL SERVER나 MYSQL을 쓰지 않고 다른 데이터베이스를 경험해보고 싶었습니다. 또한, 커뮤니티를 보니 PostgreSQL가 요즘 많이 사용되고 있고, 비용도 내지 않아도 되는 오픈소스여서 PostgreSQL을 선택했습니다.
    Redis 세션 방식의 auth를 구현하며 캐시 메모리가 필요해서 사용했습니다.
    Git,Github 원래 많이 사용하여 익숙한 버전관리 서비스로, 혼자 개발했지만 organization의 버전을 저의 레포지토리로 fork하여 개발 한 뒤 organization 레포지토리에 pr을 날려 merge하는 과정을 경험해 보았습니다.
    docker Docker로 redis를 설치하여 컨테이너를 실행시켜보았습니다.
    Postman Postman으로 api명세서를 작성했습니다.
    https://documenter.getpostman.com/view/8648324/TzzDKFSX
    gcp gcp를 사용하여 api 서버를 배포했습니다.
    application: GCE를 사용하여 iaas로 어플리케이션 서버를 배포했습니다.
    DB: SQL - postgresql ver.
    cache: MemoryStore

    GCE
    SQL

    얻은 것

    일단 제가 어떤 프로젝트를 만들어서 가치를 제공한다는 것이 너무 좋았고,

    개발자가 이런 것 때문에 개발을 하는거구나 생각이 많이 들었습니다.

    웹 개발 프로세스는 예전에 공부는 많이 해봤지만, 사실 거의 모든게 처음이다 보니 서툰것도 많고 완벽하게 하지 않은것도 많지만, 기본적인 로그인/회원가입 패턴과, 게시판에 글 올리기 등을 구현하여 더 높이 나아갈 수 있는 발판이 되어준 첫 프로젝트인 것 같습니다.

     

    마치며

    2021.08.23

    아직 서비스가 다 만들어지진 않고 진행중입니다.

    API개발/배포를 거의 마치고, 프론트엔드와의 협업을 하는 과정인데, 빠른 시일 내에 배포하여 서비스를 출시하고 싶습니다!

    'golang' 카테고리의 다른 글

    내가 golang을 선택한 이유  (0) 2021.08.23
Designed by Tistory.