[TOC]
์ฌํ์ ํนํ๋ ์ฌํ ์ฝ์ค ๊ณต์ SNS, Trippy! ๋์ ์ฌํ์ ๋ด ์ฌํ ์ฝ์ค ์์๋๋ก ์ฌ์ง๊ณผ ํจ๊ป ๊ธฐ๋กํ ์ ์๋ SNS ์๋น์ค์ ๋๋ค. ๊ธฐ๋ก๊ณผ ๊ณต์ ๋ฅผ ์ค์ฌ์ผ๋ก, ๋ค์ํ ์ฌ๋๋ค๊ณผ ํจ๊ป ํ ์ ์๋ ๊ธฐํ๋ฅผ ๋ํ ์ฐพ๊ธฐ ์๋น์ค๋ฅผ ํตํด ์ ๊ณตํ๊ณ ์์ต๋๋ค.
์ฐธ๊ณ : ๋ชจ๋ฐ์ผ ์ ์ฉ ์น์ด๋ฏ๋ก ๋ชจ๋ฐ์ผ์์ ๊ฐ์ฅ ์ต์ ํ๋ ์ํ๋ก ์ด์ฉ๊ฐ๋ฅํฉ๋๋ค
๐ธTrippy ๋ฐ๋ก๊ฐ๊ธฐ: https://i7a506.p.ssafy.io/
๐ธUCC ์์ ๋ฐ๋ก๊ฐ๊ธฐ: https://youtu.be/udKdfa8RtG4
COVID 19๋ก ์ต๋๋ ธ๋ ์ฌํ์๊ตฌ, ์ด์ ๋ ๋ถ์ถํ ๋! ์ค๋ ๊ธฐ๊ฐ ์ฌํ์ ์ฌ์๋๋ ์ฌํ, ์ด๋๋ก ๊ฐ์ผํ ์ง ์ด๋ป๊ฒ ์ค๋นํด์ผํ ์ง ๋ง๋งํ์์ฃ ?
Trippy๋ฅผ ํตํด ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ด๋ค ๊ณณ์ ์ด๋ป๊ฒ ๋ค๋ ์๋์ง ์์๋ณด์ธ์!
Trippy๋ ํ SNS์๋ ๋ฌ๋ฆฌ ๋ค๋ฅธ ์ฌ๋์ด ์ผ์ ์ง์ญ์ ์ฌํ๋ค๋ ์ฝ์ค๋ฅผ ํ ๋์ ์ง๋์์ ๋ณผ ์ ์์ด ์ผ์ ํ์ ์ด ์ฉ์ดํ๊ณ , ๋๊ตฌ์ ์ด๋ค ์ด๋์๋จ์ ๊ฐ์ง๊ณ ์ธ์ ๊ฐ๋์ง๋ฅผ ์ฝ๊ฒ ํ์ ํ ์ ์์ด์.
-
Trippy์ ํต์ฌ ๊ธฐ๋ฅ์ด๋ผ๊ณ ํ ์ ์๋ ๋ค์ด์ด๋ฆฌ์ ๋๋ค.
-
๋ค์ด์ด๋ฆฌ์๋ trippy ์ด์ฉ์๋ค์ด ๋ค๋ ์จ ์ฌํ์ง์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ฒจ์๋๋ฐ, ํด๋น ์ ๋ณด๋ ์๋์ ๊ฐ์ต๋๋ค.
- ์ฌํ ์ผ์
- ๋๊ตฌ์ ๋ค๋ ์๋์ง, ๋ช ๋ช ๊ณผ ํจ๊ป ๊ฐ๋์ง
- ์ด๋์๋จ์ด ๋ฌด์์ธ์ง
-
์ฌํ์ง์์์ ๊ฒฝ๋ก๋ฅผ ํ ๋์ ๋ณผ ์ ์๋ ์ง๋(ํด์ธ๋ ๊ฐ๋ฅ๐!)
-
๊ทธ๋ฆฌ๊ณ ์ฌํ ๊ฒฝ๋ก๋ง๋ค ์์ ๋ง์ ์ฌ์ง๊ณผ ๊ธ์ ๊ธฐ๋กํ์ฌ ์์ ๋ง์ ์ฌํ ์ฝ์ค๋ฅผ ์์ฝ๊ฒ ๊ณต์ ํ ์ ์์ต๋๋ค
-
์ฌํ์ ๋ค๋๋ค๋ณด๋ฉด ํผ์์๋, ํน์ ๋์ด์๋ ํ ์ ์๋ ์ผ๋ค์ด ๋ง์ ๊ฒ์ ๋๋ผ์ จ์๊ฑฐ์์
-
Trippy์ ๋ํ์ฐพ๊ธฐ ๊ธฐ๋ฅ์ ์ด์ฉํ๋ค๋ฉด, ๋น์ทํ ์ฅ์์ ์์นํ ์ฌ๋๋ค๋ผ๋ฆฌ์ ๋ชจ์์ด ์ฌ์์ง๋๋ค!
- Trippy ์์์์ ํ๋ฐํ๊ฒ ํ๋ํ๋ค๋ฉด, ๊ท์ฌ์ด ๋ฑ์ง๋ ๊ฐ์ง ์ ์์ด์!
- Gitlab
- Jira
- Notion
- Mattermost
- Webex
- IntelliJ IDE
- Springboot 2.7.2
- Spring Data JPA
- Spring Security
- MySQL
- Redis
- QueryDSL
- Swagger 3.0.0
- Visual Studio Code IDE
- Vue 3.2.37
- Vuex 4.0.2
- Element Plus (UI Framework)
- Docker
- AWS EC2
- Jenkins
- NGINX
- SSL
sudo apt-get install nodejs
sudo apt-get install npm
# ํ์ ํจํค์ง ์ค์น
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# GPG Key ์ธ์ฆ
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# docker repository ๋ฑ๋ก
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# ๋์ปค ์ค์น
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io
# ์์คํ
๋ถํ
์ ๋์ปค ์์
sudo systemctl enable docker && service docker start
# ๋์ปค ํ์ธ
sudo service docker status
์ ์ฅ์ ์ค์ ๋ฐ ์ ๋ฐ์ดํธ ์งํ
sudo apt-get update
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
์ ์ฅ์๋ฅผ ์ค์ ๋ฐ ์ ๋ฐ์ดํธ ์งํ
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo apt-get update
๊ธฐ์กด์ ์ค์น๋ Certbot ํจํค์ง๊ฐ ์๋ค๋ฉด ์ญ์ ํฉ๋๋ค.
$ sudo apt remove certbot
certbot ์ค์น
sudo apt-get install certbot python3-certbot-nginx
Certbot์ด ์๋์ผ๋ก SSL์ ์ธํ
ํด์ฃผ๊ธฐ ๋๋ฌธ์ server block
๊ณผ server_name
์ ์ค์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
sudo vim /etc/nginx/sites-available/[your server block]
์๋๋ ์ ์์์
๋๋ค. undang_backend_nginx.conf
์ ๋ธ๋ก๋ค์ด ์๊ธฐ ๋๋ฌธ์ ์๋์ฒ๋ผ ๋์์ต๋๋ค.
$ sudo vim /etc/nginx/sites-available/undang_backend_nginx.conf
์ด์ ์๋ฒ ๋ธ๋ก ํ์ผ ์์ server_name์ ์ค์ ํ๊ณ ์ ํ๋ ๋๋ฉ์ธ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ์ ๋ ์๋์ ๊ฐ์ต๋๋ค.
...
# configuration of the server
server {
```
# Put your domain next to server_name
server_name undang.twpower.me;
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
```
...
}
์ค์ ์ด ์๋ฃ ๋์๋ค๋ฉด ์ ์ฅํ๊ณ ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด์ ์ฌ์์ํฉ๋๋ค.
$ sudo nginx -t
$ sudo service nginx reload
๋ค์ ์๋ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด nginx plugin์ ํตํด์ ๊ฐ๋ฅํฉ๋๋ค. ๋๋ฉ์ธ์ ์ถ๊ฐ์ ์ผ๋ก ๋ ํ๊ณ ์ถ๋ค๋ฉด(์์ server_name์๋ ๋ฌผ๋ก ์ค์ ์ด ๋์ด์์ด์ผ๊ฒ ์ฃ ?) -d
์ต์
์ ์ฃผ๊ณ ๋ ์ฃผ๊ฐํ๋ฉด ๋ฉ๋๋ค.
sudo certbot --nginx -d example.com -d www.example.com
์ ์์๋ ์๋์ ๊ฐ์ต๋๋ค.
sudo certbot --nginx -d i7a506.p.ssafy.io
๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ด 1๊ณผ 2๋ฅผ ์ ํํ๋ ํ๋ฉด์ด ๋์ค๋๋ฐ ์ ์ ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ https๋ก ํ๊ณ ์ถ์ด์ redirect๋ฅผ ํ์ฉํ๋ 2๋ฒ์ ํ์์ต๋๋ค.
## Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
## 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
๋ฒํธ๋ฅผ ์ ํํด์ฃผ๋ฉด ์๋์ฒ๋ผ ์งํ๋๋ฉฐ key๋ค๋ ์๋์ผ๋ก ์์ฑํด์ค๋๋ค.
์ค์ ํ certbot
์ 90์ผ ๋์๋ง ์ ํจํ๊ธฐ ๋๋ฌธ์ ๊ฐฑ์ ์ ํด์ค์ผํฉ๋๋ค. ๋งค๋ฒ ํด์ฃผ๊ธฐ ๊ท์ฐฎ์ผ๋ ์ค์นํ certbot
์ ์๋์ผ๋ก ๊ฐฑ์ ์ ์ดํ ๋จ์๋ก ํด์ค๋๋ค.
ํด๋นํ๋ ๊ฐฑ์ ์ด ์ ๋๋ก ๋๋์ง๋ ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด์ ํ์ธ ๊ฐ๋ฅํ๋ฉฐ ์๋ฌ๊ฐ ๋ํ๋์ง ์์ผ๋ฉด renewal์ด ์ ์์ ์ผ๋ก ์๋ ํ ๊ฒ๋๋ค.
sudo certbot renew --dry-run
Ubuntu์ ๊ฒฝ์ฐ /etc/cron.d/
์ ๋ณด๋ฉด certbot
์ด ์์ฑ๋์ด์์ต๋๋ค.
๋ณธ์ธ์ ์๋ฒ์ SSL์ด ์ ์ฉ์ด ์ ๋์๋์ง ํ๊ฐํ ์ ์๋ ์ฌ๋ฌ ์ฌ์ดํธ๊ฐ ์๋๋ฐ ๋ค์ด๊ฐ์ ๋ณธ์ธ์ ์๋ฒ ๋๋ฉ์ธ์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
https://www.ssllabs.com/ssltest/
์คํ ์ค์ธ ๋์ปค ์ค, ์ด๋ฆ์ด๋ ํฌํธ๊ฐ ๊ฒน์น ์ํ์ด ์๊ธฐ ๋๋ฌธ์ ์ค์ง๋ฅผ ์ํต๋๋ค.
# ๋์ปค ์์ ์ , ๊ธฐ์กด์ ์คํ์ค์ธ ๋์ปค๋ฅผ ๋ฉ์ถ๊ณ ์ ๊ฑฐํ๋ ์์
.
docker ps -f name=frontend -q | xargs --no-run-if-empty docker container stop
docker ps -f name=backend -q | xargs --no-run-if-empty docker container stop
# ์ปจํ
์ด๋ ์ ๊ฑฐ
docker container ls -a -f name=frontend -q | xargs -r docker container rm
docker container ls -a -f name=backend -q | xargs -r docker container rm'
# ๋์ปค ์ด๋ฏธ์ง ์ ๊ฑฐ
docker images -f dangling=true && docker rmi $(docker images -f dangling=true -q)
docker build -t ygpark96/frontend .
docker run -d -p 8081:80 --name frontend ygpark96/frontend
- ์ฌ๊ธฐ์ /etc/letsencrypt/live/๋๋ฉ์ธ์ด๋ฆ/ ๊ฒฝ๋ก๋ SSL ์ธ์ฆ ํค๊ฐ ์๋ ์์น์ ๋๋ค. vue.js ๋น๋์ nginx๊ฐ ์์๋ฉ๋๋ค.
docker build -t ygpark96/backend .
docker run -d -p 8080:8080 --name backend ygpark96/backend
- springboot Gradle Multi Module์ ์์ํฉ๋๋ค.