- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- LEVEL1
- MariaDB
- TMIL
- react
- 코어 자바스크립트
- CSS
- Git
- LEVEL 2
- 면접을 위한 cs 전공지식 노트
- typescript
- 아고라스테이츠
- 알고리즘
- 프로그래머스
- 오늘도 개발자가 안된다고 말했다
- java
- First Project
- 배포
- javascript
- 리팩터링 2판
- Docker
- Err-Handling
- 에러핸들링
- mongodb
- CRUD
- TIL
- LEVEL 1
- TWIL
- sql
- 코딩테스트
- Refactoring
목록배포 (7)
성장에 목마른 코린이
Docker Compose 여러 개의 컨테이너가 하나의 Application으로 동작할 때, 이를 테스트하려면 각 컨테이너를 하나씩 생성해야 합니다. 여러 개의 컨테이너로 구성된 Application을 구축하기 위해서 run 명령어를 여러 번 사용할 수 있지만, 테스트 단계에서는 매번 run 명령어에 옵션을 설정해서 진행하기에 번거로움이 있습니다. 이를 위해 Docker Compose는 YAML파일을 통해 여러 개의 컨테이너의 실행을 한번에 관리하여, 하나의 프로젝트처럼 다룰 수 있는 환경을 제공합니다. 예시 웹 어플리케이션을 서비스 한다고 했을 때 서비스가 실행되기 위해서는 웹서버(Apache, Nginx)와 Database(Oracle,MariaDB,MySQL)컨테이너를 생성해야 합니다. Docker..
Docker Go 언어로 작성된 리눅스 컨테이너 기반 오픈소스 가상화 플랫폼입니다. 이걸 왜 쓰는지, 어떤 식으로 쓰는지 알아보도록 하겠습니다. 가상화를 사용하는 이유 서버 관리자 입장에서 CPU 사용률이 현저히 낮은 서버들을 그대로 두면 리소스 낭비, 돈 낭비입니다. 그렇다고 모든 서비스들을 한 서버안에 올리면 안정성이 바닥을 칠 것입니다. 여기에 안정성을 높이며 리소스도 최대한 활용할 수 있는, 혜성처럼 등장한 것이 서버 가상화입니다. 대표적인 가상화 플랫폼으로는 VM(Virtual Machine)이 있습니다. 컨테이너란? 현실 세계에서 컨테이너는 물자를 운송할 때 쓰는 물건입니다. 컨테이너 내용물의 소유자는 컨테이너가 배송되는 방법에 신경 쓸 필요가 없습니다. 또한 배송사는 내용물을 알거나 관리할 ..
문제의 코드 "start": "pm2 start --restart-delay 1000 npm -name 'Dev' -- start --watch" 사실 이 코드는 아무 문제가 없습니다. 근데 문제는 이걸 package.json 안의 scripts에 넣으면 아주 큰 문제가 될 수 있습니다. package.json안 script에 pm2 start를 넣게되면, 아래의 이미지 처럼 프로세스가 무한으로 실행되게 됩니다. 제가 문제를 일으킨건 아니지만, 충분히 그랬을 수도 있기에 많이 놀랐고 당황했습니다 .. 이런 상황이 왔을 때 pm2 stop을 해 pm2를 멈추고, 부팅해야 하는 서비스를 빨리 실행시킨다음, ps -ef | grep "프로세스이름" | awk '{print $2}' | xargs kill -1..
pm2 startup을 수행하였으나 Ubuntu reboot후 서비스들이 정상적으로 시작되지 않을 때, /etc/systemd/system 디렉터리에 pm2-*와 같이 pm2 관련 파일을 찾아서 vi 편집기로 열어서 사용자 부분을 User=root로 수정하고 reboot하면 서비스들이 정상적으로 올라옵니다.
CICD (지속적인 통합 / 배포) CI 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미합니다. CD 배포 자동화 과정입니다. 지속적인 배포(Continuous Deployment)를 의미합니다. CI/CD 종류 Jenkins CircleCI TravisCI Github Actions etc CI/CD 적용하기 전의 과정 개발자들이 개발하여 코드를 수정합니다. 각자의 feature 브랜치에 코드를 push합니다. (but, 어느 한 부분에서 에러가 났지만 개발자들은 눈치채지 못합니다.) 각자의 코드를 git에 올리고 통합(Intergration)합니다. 에러가 발생했지만 어느 부분에서 에러가 났는지 모르므로 다시 어디부분에 에러가 있는지 디버깅하고 코드를 ..
어제부터 오늘까지 회사의 서비스중 하나를 배포 실습해보는 과정을 거쳤습니다. Nginx 자체를 회사에서 처음 알게되고, conf에 사용되는 옵션을 너무 몰라 배포하기까지 애를 많이 먹었습니다. 그래서 오늘은 Nginx 기본적인 활용에 앞서서 conf에 사용되는 옵션들을 소개해 드리려합니다. 주로 사용되는 옵션은 정해져있지만, 이 옵션들이 어떤 역할을 하는지에 대해 알아야 상황에 맞게 커스텀 할 수 있기 때문입니다. user nginx; # 프로세스의 실행되는 권한. 보안상 root를 사용하지 않습니다. worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; # event 블록 events { worker_co..
Nginx는 차세대 웹서버라고 불립니다. Nginx의 특징을 한마디로 정의하면 "더 적은 자원으로 더 빠르게 데이터를 서비스 할 수 있다" 입니다. 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용되기도 하고, Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 Load Balancer로도 활용됩니다. Nginx(웹서버)의 역할 1. 정적 파일을 처리하는 HTTP 서버로서의 역할 2. 응용 프로그램 서버에 요청을 보내는 Reverse Proxy Server로서의 역할 리버스 프록시(Reverse Proxy)란 한마디로 클라이언트가 가짜 서버에 request하면, 프록시 서버가 reverse server(배후 서버)로 ..