항해99 입학시험 제출하기

pds·2022년 11월 9일
0

TIL

목록 보기
3/60

항해 입학 시험을 제출 후기, 제출을 위한 배포과정에 대해 기록해보았다



항해99 입학 시험

웹 개발 종합반 수업 내용을 베이스로 한 시험이었다.

어떤 간단한 기능 구현 문제가 주어지면 구현하고 클라우드 인스턴스에 배포하면 시험 완료!

시험 내용물을 언급하는 건 안될 것 같고, 간단하게 생각을 말해보면

기존에 만든 애플리케이션 코드에서 새로운 요구사항을 파악하여

어떤 것을 추가하고 무엇을 수정해야 되는지 판단하고 구현할 수 있는지 확인하려는 의도인 것으로 느껴졌다.


후기

웹 개발 종합반 강의 자체가 굉장히 재미있었다.

python, flask는 처음 사용해보고 jquery는 거의 모르는데도 쉽게 중요한 부분만 빠르게 배울 수 있어서 응용하기도 쉽고 재미를 붙이기 좋은 강의인 것 같다.

웹 개발 종합반 강의를 주의깊게 듣고 잘 따라해가면

입학 시험은 크게 어렵지 않고 강의를 잘 수강했으면 충분히 해결할 수 있는 정도이다.

미래의 뱃사람들이 읽게 된다면 도움이 되기를!




이 아래의 내용은 입학 시험과는 무관하며 개인적으로 배운 내용을 정리한 글입니다.



배포하기

도커를 이론으로만 알고 있어서 직접 사용해보고 싶어서 이번 기회에

github-actionsdocker 로 ci/cd를 구성해보았다.


흐름 요약

(1) IDE에 수정사항을 반영해 commit/push 하고 깃허브 원격저장소 master branch에 넣는다.


(2) github-actions workflow에 작성한 파이프라인 코드가 동작하며 배포과정 시작!


(3) 작성한 Dockerfile을 사용해 내 원격 Dockerhub 로 도커 이미지 만들어서 넣는다.

FROM python:3.8.6

WORKDIR /app
COPY . .
RUN pip install -r requirements.txt

EXPOSE 5000

CMD python ./app.py

솔직히 처음 작성해봐서 잘 모르지만 대충 보면 만든 파이썬 앱을 위해 의존성을 설치하고 포트를 설정하고 실행시키는 과정이라 이해했다.


(4) 성공했으면 원격으로 내 인스턴스에 ssh접속해서 작성한 docker-compose.yml 파일을 지정된 경로에 넣는다.

version: "3.9"
services:
  flask:
    image: ehd0309/docker-mars:latest
    environment:
      MID: ${MID}
      MPW: ${MPW}
    ports:
      - "80:5000"
  • image 는 본인이 actions flow에 만들기로 한 도커 이미지 이름과 태그이고 도커허브에 저장되어 있는 것을 추후에 서버에서 사용하는 형태이다.

  • MID,MPW는 mongodb 아이디 비밀번호를 오픈된 깃허브 저장소에 노출시키면 안되니까 환경값으로 구성해 숨겼기 때문에 배포 시점에 들어가게 했다.

저런 값들은 github 저장소의 secret 환경 변수에 똑같이 설정해주면 된다.


from pathlib import Path
import os

dotenv_path = Path('.env')
load_dotenv(dotenv_path=dotenv_path)
client = MongoClient(
    'mongodb+srv://' + os.getenv('MID') + ':' + os.getenv(
        'MPW') + '@cluster0.ahcokcb.mongodb.net/?retryWrites=true&w=majority')
db = client.Cluster0

mongodb 관련 환경 정보는 애플리케이션 코드에서는 이런식으로 사용된다.

로컬환경에서는 .env 파일을 읽어서 사용되는 형태고 프로덕션 환경에서는 아까 compose 파일에 들어간 값으로 사용된다.

그러고보니 db url도 숨겼어야 했나 싶다.


(5) 다 성공하면 workflow에서 원격으로 파이썬 앱이 담긴 이미지 실행!

script: "sudo docker-compose pull && sudo docker-compose up -d"

서버에 올린 docker-compose 파일을 통해 내 hub에 있는 이미지를 가져와 실행시키는 것이다.


(6) docker ps 명령어로 도커 컨테이너가 실행중인지 확인하면 성공!



TIL 3일차..


오늘은 여러가지 힘든 일들이 있어서 공부도 못했고, 하던 프로젝트 진행도 못해서 아쉽다.

내일은 분발해야겠다.

profile
강해지고 싶은 주니어 프론트엔드 개발자

0개의 댓글