개인 프로젝트/[2022] 유튜브 뮤직 클론코딩

[유튜브 뮤직 클론코딩] 8. forever를 이용한 배포 자동화 & 플레이어 추가

2022. 8. 19. 15:14
반응형

지난달까지는 이 프로젝트를 배포할 때 nodemon을 이용해서 배포를 하였다.

nodemon으로 배포하고 있을 때는 소스코드를 수정한 결과물을 자동으로 반영해주어서

결과물을 확인하기 좋았기 때문이다.

 

하지만 단점도 있었다.

매번 프로젝트를 할 때마다 노드몬을 키고 끄는 작업을 반복해야했기 때문이다.

물론 노드몬 자체를 백그라운드로 실행시킬 수도 있겠지만

나중에 노드몬을 끌 때 프로세스 아이디를 읽고 꺼야하는 귀찮음이 있어서 하고 싶지 않았다.

 

이 작업이 너무 번거롭다고 생각해서 백그라운드에서 배포하는 방법을 알아보았다.

검색을 해보니 nodemon말고도 forever와 pm2 등 선택지가 더 있었다.

 

그 중에서 나는 forever를 선택했다.

그 이유는 다음과 같았다.

 

  1. forever start 명령어로 백그라운드 실행이 가능하다.
  2. forever 명령어만으로 nodemon처럼 쓸 수 있다.
  3. watch 옵션으로 변화를 감지하여 재실행 할 수 있다.
  4. 에러발생시 서버를 자동으로 재실행한다.
    (노드몬은 수동이었다. 별도 설정을 하면 자동으로 되는진 모르겠지만)
  5. pm2도 위 기능을 이용할 수 있지만, 스레드나 클러스터링 등의 설명으로 보아
    규모가 큰 서비스에 사용하기 좋은 패키지 같았다.
    나처럼 백그라운드 실행 용도로만 사용하는데는 forever가 좋아보였다.
  6. 실행중 발생하는 모든 출력을 별도 파일에 자동으로 로깅한다.

그리고 한번 테스트를 해보았다.

forever 명령어에 watchDirectory 옵션을 주어 폴더내 파일들의 변화를 감지하게 한 다음

다른 터미널로 접속하여 변경사항을 원격 레포지토리에서 당겨와봤다.

forever -w server.js --watchDirectory src/

git pull

nano /home/ubuntu/.forever/ABCD.log

(node:278289) Warning: Accessing non-existent property 'padLevels' of module ex>
(Use `node --trace-warnings ...` to show where the warning was created)
{"level":"error","message":"Could not read .foreverignore file."}
{"level":"error","message":"ENOENT: no such file or directory, open '/var/www/h.."
listening on 3000
{"level":"error","message":"restarting script because /var/www/html/project/ym_.."
{"level":"error","message":"Forever detected script was killed by signal: SIGKI.."
{"level":"error","message":"Script restart attempt #1"}
listening on 3000
[Object: null prototype] {}
[Object: null prototype] {}
[Object: null prototype] {}
[Object: null prototype] {}
...

그러자 자동으로 서버가 재실행되면서 알아서 배포가 되었고

사이트에 접속하면 내가 작성한 디버깅 로그도 잘 찍힌다.

 

원래 100% 완전한 결과물은 내가 프로젝트 작업할 때만 서버를 키다보니  항상 볼 수 없었는데

이제는 유튜브 뮤직 클론코딩을 언제 어디서나 누구나 볼 수 있게 되었다.😀

 

다음으로 유튜브 뮤직의 음악 재생창을 만들려고 사이트 디자인을 시작했다.

오늘은 노래를 재생하면 음악 재생창의 존재 여부와 관계없이 생기는 플레이어바를 만들었다.

아직 클릭시 반응하는 기능은 없이 간단하게 색하고 레이아웃만 잡아주었다.

 

이런 느낌으로 잡았다.

지금은 플레이어바가 이렇게 항상 뜨지만, 나중엔 로그인해서 노래를 선택하면 그 때 생기도록 수정할 예정이다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'개인 프로젝트 > [2022] 유튜브 뮤직 클론코딩' 카테고리의 다른 글

[유튜브 뮤직 클론코딩] 9. 노래 재생 기능 만들기  (2) 2023.09.29
[유튜브 뮤직 클론코딩] 7. 로그인 시 발생할 수 있는 에러처리  (0) 2022.08.16
[유튜브 뮤직 클론코딩] 6. 프로젝트 구조 수정과 로그인 구현  (0) 2022.08.05
[유튜브 뮤직 클론코딩] 5. MariaDB + NodeJS 연동하기  (0) 2022.06.08
[유튜브 뮤직 클론코딩] 4. Express 프레임워크 적용과 API 서버에서 데이터 받기  (0) 2022.06.05
'개인 프로젝트/[2022] 유튜브 뮤직 클론코딩' 카테고리의 다른 글
  • [유튜브 뮤직 클론코딩] 9. 노래 재생 기능 만들기
  • [유튜브 뮤직 클론코딩] 7. 로그인 시 발생할 수 있는 에러처리
  • [유튜브 뮤직 클론코딩] 6. 프로젝트 구조 수정과 로그인 구현
  • [유튜브 뮤직 클론코딩] 5. MariaDB + NodeJS 연동하기
에버듀
에버듀
개발은 좋은데 뭘로 개발할까
에버듀
Blog. 에버듀
에버듀
전체
오늘
어제
  • 분류 전체보기 (606)
    • 개인 프로젝트 (43)
      • [2020] 카카오톡 봇 (9)
      • [2021] 코드악보 공유APP (22)
      • [2022] 유튜브 뮤직 클론코딩 (9)
      • [2025] 고성능 에코서버 만들기 (0)
      • 간단한 프로젝트 (3)
    • 팀 프로젝트 (22)
      • [2020] 인공지능 숫자야구 (4)
      • [2022] OSAM 온라인 해커톤 (10)
      • [2024] GDSC 프로젝트 트랙 (6)
      • [2025] 큰소리 웹 페이지 (2)
    • 알고리즘 (PS) (107)
      • BOJ (101)
      • Programmers (5)
      • 알고리즘 이모저모 (1)
    • CS (329)
      • 자료구조 (19)
      • 어셈블리 (41)
      • 멀티미디어응용수학 (7)
      • 컴퓨터 구조 (29)
      • 알고리즘 분석 (4)
      • 컴퓨터 네트워크 (38)
      • 프로그래밍언어론 (15)
      • HCI 윈도우즈프로그래밍 (26)
      • 기초데이터베이스 (29)
      • 운영체제 (23)
      • 오토마타 (24)
      • 문제해결기법 (11)
      • 블록체인 (22)
      • 소프트웨어공학 (21)
      • 기계학습심화 (12)
      • 컴퓨터그래픽스와 메타버스 (8)
    • 자기계발 (37)
      • 동아리 (7)
      • 자격증 (3)
      • 코딩테스트, 대회 (8)
      • 생각 정리 (18)
      • 머니 스터디 (1)
    • WEB(BE) (5)
      • express.js (1)
      • flask (0)
      • Spring & Spring Boot (4)
    • WEB(FE) (2)
      • html, css, js (1)
      • React.js (1)
    • Tool & Language (6)
      • Edit Plus (1)
      • Git (1)
      • Python3 (2)
      • Java (2)
    • Infra (12)
      • AWS (1)
      • Oracle Cloud (8)
      • Firebase (2)
      • Network (1)
    • Android (18)
      • Java (6)
      • Flutter (12)
    • Window (2)
      • Visual Studio 없이 WPF (1)
      • MFC (1)
    • 독서 (14)
      • Inside Javascript (7)
      • Database Internals (6)
      • 한 글 후기 (1)
    • 인턴 (8)
      • 델파이 (7)
      • Oracle (1)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.1.4
에버듀
[유튜브 뮤직 클론코딩] 8. forever를 이용한 배포 자동화 & 플레이어 추가
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.