유저 피드백 OpenSource 사용기 - 1

Jake·2024년 3월 5일

오픈소스사용기

목록 보기
1/1

계기

회사에서 인턴생활을 시작하며 업무 외적으로 도움될만한게 어떤게 있을까를 고민하던 중 회사의 솔루션에 관하여 듣게 되었다
어느 회사가 그렇듯 솔루션을 판매하는것도 중요하지만 판매에 그치지 않고 해당 제품을 계속 사용하도록 하는 것도 매우 중요하다. 지속적으로 사용자들이 제품을 사용해야 솔루션을 제공한 회사가 지속적으로 돈을 벌 수 있기 때문이다.

그렇기에 어떻게 하면 기존 사용자들의 재사용성을 높이고 이탈방지할 수 있을까를 고민하게 되었고 기존사용자들의 피드백을 받아들이는 프로세스를 보다 명확하게 하면 도움이 되지 않을까 하여 Open Source를 적극 활용해보고자 하였다.

이전에 개발자의 태도를 주제로한 강의를 보았는데 이때 user feedback에 대한 얘기도 해주셨다. 링크 -> 해당 내용을 정리한 링크이다

개발을 하지 않고 Open Source를 사용하게된 이유는 아래와 같다

  1. 잘 만들어진 제품을 가져다 쓰게되면 개발비용이 줄어들고, 완성도 높은 제품을 유저에게 전달할 수 있다
  2. 위 이유로 인해 사용자들의 트래픽을 잘 받을 수 있으며 이는 나에게 좋은 경험이 된다
  3. 즉, 성사만 된다면 회사입장에서는 개발단계가 거의 없이 사용자의 피드백을 받아볼 수 있고 나는 트래픽을 받아보는 경험을 할 수 있게 된다

사용

위는 왜 Open Source를 사용하게 되었는가에 대한 얘기였고 이제는 사용법과 마주친 에러에 얘기해보고자 한다

우선 Github 주소는 아래와 같다

line/abc-user-feedback

해당 깃헙에 README에 잘 설명이 되어 있으며 이를 보고 따라해도 무방하다
하지만 바닥부터 시작한 나의 경우 작은 설명들을 추가해서 다시 설명을 해보겠다

먼저 abc-user-feedback 은 웹서비스이며 docker를 사용한 프런트, 백엔드, 데이터베이스로 이루어져있다.

그러므로 총 3개의 컨테이너가 필요하며 docker compose로 쉽게 컨테이너화 할 수 있다.
docker compose 관련하여서는 아래 시리즈에 정리를 해두었다
docker-compose

docker Image 는 이미 오픈소스 개발자님께서 Hub에 올려두셨고 이를 docker compose를 통해 pull 받아 사용하기만 하면 된다

잘 정리된 내용들을 한 번 사용해보도록 하자!

  1. 레포지토리를 클론하고 의존성 설치
git clone https://github.com/line/abc-user-feedback
cd abc-user-feedback
yarn install

git clone을 통해 레포지토리를 다운받고 해당 폴더로 들어간 뒤 yarn install을 통해 의존성을 설치해준다

의존성을 설치해주어야 앱이 동작할 수 있다

  1. Docker compose를 사용하여 인프라 프로비저닝
docker-compose -f docker-compose.infra.yml up -d

docker-compose.infra.yml 파일의 내용으로 인프라를 설정해줍니다

프로비저닝이란
프로비저닝은 IT 인프라를 생성하고 설정하는 프로세스로서, 다양한 리소스에 대한 사용자 및 시스템 액세스를 관리하는 데 필요한 단계를 포함합니다. 프로비저닝은 서버, 애플리케이션, 네트워크 구성, 스토리지, 엣지 기기 등을 배포하는 과정에서 초기 단계에 해당합니다.

  1. 각 apps/api 와 apps/web 폴더에 .env 파일을 만들어 서버 실행에 대한 환경변수값을 설정해줍니다
    이때 .env.exapmle 파일을 참고합니다

  2. 데이터베이스를 migrations 해줍니다

cd apps/api
npm run migration:run

만약 추가적으로 개발을 원할 경우 해당 app의 root로 들어가 개발을 진행할 수 있습니다.

  1. docker compose를 빌드하고 실행합니다
docker-compose build
docker-compose up -d

에러

이렇게 실행했을때 웹페이지가 잘 나왔고 성공적으로 서버를 실행했다고 생각했지만 에러가 있었습니다.

시작을 하려고 보니 Internal Server Error 를 마주하였습니다

그래서 api 서버쪽 컨테이너 log를 보니 아래와 같은 에러를 마주하였습니다

해당 내용을 구글링해본 결과 아래 체크 사항이 존재하였습니다
1. 네트워크 문제
2. Docker 네트워크 설정
3. MySQL 컨테이너 구성
4. 호스트 이름

이중 저는 MySQL 컨테이너 구성이 잘못되었다고 판단하였습니다.

그래서 다시 살펴보니 MySQL 컨테이너가 실행되어있지 않았습니다

다시 보니 엉뚱한 MySQL 서버가 실행되어있었고 이를 해결하자 아래와 같이 정상 동작하였습니다

docker MySQL 원격 접속

MySQL 컨테이너가 띄워져있다면 원격으로 접속이 가능하다

아래 명령어를 통해 컨테이너에 접속한다

docker exec -it [container-name] bin/bash

mysql -u root -p
여기서 root는 mysql 서버 실행시 사용했던 username 이다
이후 password를 입력하면 원격으로 접속이 아래와 같이 가능하다

이제 메인화면으로 접속하려하자 로그인이 필요하였고 여기서 메일 STMP를 설정해주지 않아 다시 에러가 발생했습니다.

다음 글에서 이어서 진행하도록 하겠습니다.

0개의 댓글