์ง์ญ๋ณ ๋งค์ฅ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฐ์ ์๋จ์ ๋ณด์ฌ์ฃผ๋ ์น ์๋น์ค์ ๋๋ค. ๊ฐ ๊ธฐ์ ์์ ์ ๊ณตํ๋ ๋ค์ํ ํ์ด ์๋น์ค๊ฐ ๋งค์ฅ๋ง๋ค ์ง์๋๋ ์ข ๋ฅ๊ฐ ๋ฌ๋ผ ๋ถํธํจ์ ๊ฒช๊ณ ์์ต๋๋ค. ํนํ ์ ํํ์ด๊ฐ ๊ตญ๋ด์ ๋์ ๋๋ฉด์ ์ด๋ฌํ ๋ถํธํจ์ ํฌ๊ฒ ๋๊ผ๊ณ , ์ด์ ๋ฐ๋ผ ํน์ ๋งค์ฅ์์ ์ด๋ค ๊ฒฐ์ ์๋จ์ ์ฌ์ฉํ ์ ์๋์ง ๋ณด์ฌ์ฃผ๋ ์ง๋๋ฅผ ๋ง๋ค๊ณ ์ ํ์ต๋๋ค.
- ๊น๋ฏผ์
- ๋ค์ด๋ฒ API ๋ฐ ๊ณต๊ณต๋ฐ์ดํฐ API ํ์ฉ ๋ฅ๋ ฅ ํฅ์
- CICD๋ฅผ ์ํ ๋์ปค, Git Action ํ์ต ๋ฐ ์ ์ฉ
- ์ดํ๋
- Typescript ํ์ต ๋ฐ ํ์ฉ
- NEXT.JS๋ฅผ ํตํ SSR ํ์ต ๋ฐ ํ์ฉ
- ๋ค์ด๋ฒ ์ง๋ API๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ถ API ํ์ฉ ๋ฅ๋ ฅ ํฅ์
- ๋์ปค, Git Action, EC2๋ฅผ ์ฌ์ฉํ ์น์ฑ ์๋น์ค ์ด์
- Typescript
- React
- Next.js
- React-query๋ฅผ ํตํ ์๋ฒ ํต์ ์ํ ๊ด๋ฆฌ
- Zustand๋ฅผ ํตํ ์ ์ญ ์ํ๊ด๋ฆฌ
- Vanilla-extract๋ฅผ ํตํ ์คํ์ผ๋ง
- Spring
- JDK
- Gradle
- DB
- MySQL + JPA, QueryDSL
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ๋ฐ ์ต์ ํ
- Git Action
- CI ๋จ๊ณ๋ฅผ ์ํ Git Action ์ค์
- Docker ์ด๋ฏธ์ง ์์ฑ ํ Public Repository์ ์ ์ฅ
- Docker
- ์๋น์ค ์ปจํ ์ด๋ํ
- ๋ค์ด๋ฒ ๊ฒ์ API๋ฅผ ์ฌ์ฉํ์ฌ ํ๋์นด๋๋ก ๊ฒฐ์ ๊ฐ๋ฅํ ๋งค์ฅ ๋ฐ์ดํฐ ์ ์ฅ
- ๋งค์ฅ๋ช , ์์น, ๋ถ๋ฅ ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ์ํ๋ ์์ฒญ์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ก
- ํ์ด ์ง๋ ํ์ด์ง
- ์ฌ์ฉ์๊ฐ ์ ํํ ๊ฒฐ์ ์๋จ์ด ๊ฐ๋ฅํ ๋งค์ฅ๋ง์ ์ง๋์ ํ์ํ์ฌ ๋ง์ปค๋ก ํ์.
- ์ค๋ฅ ์ ๋ณด ์ ๊ณ ํ์ด์ง
- ์ฌ์ฉ์๊ฐ ๊ฐ ์์ ์ ํ์ด ์ง์ ์ฌ๋ถ๋ฅผ ๊ด๋ฆฌ์์๊ฒ ์ ๊ณ ํ ์ ์์.
- ๊ด๋ฆฌ์ ํ์ด์ง
- ์ฌ์ฉ์๊ฐ ์ ๊ณ ํ ์ ๋ณด๋ฅผ ๊ด๋ฆฌ์๊ฐ ๊ฒํ ํ์ฌ ์ ๋ณด ์์ ๋ฐ ์ญ์ ๊ฐ๋ฅ.
- ์ฑํ
ํ์ด์ง
- ๋งค์ฅ๋ณ ์ฑํ ๋ฐฉ์ ์์ฑํ์ฌ ์ฌ์ฉ์๋ผ๋ฆฌ ์ฑํ ํ๋ฉฐ ๋งค์ฅ ์ ๋ณด๋ฅผ ๊ธฐ๋ก ๋ฐ ๋ฆฌ๋ทฐ ๊ฐ๋ฅ.
![]() |
![]() |
||
|---|---|---|---|
| TypeScript | Next.js | React Query | Stomp |
![]() |
![]() |
||||
|---|---|---|---|---|---|
| Java | Spring-Boot | Spring-JPA | Spring-Security | Stomp | MySQL |
![]() |
|||
|---|---|---|---|
| NGiNX | AWS | Docker | GitHub Actions |
![]() |
![]() |
||
|---|---|---|---|
| Git | Discord | Figma | Notion |
-
๊ณตํต
- API ๋ฌธ์ ์์ฑํ๊ธฐ
- API API ๋ช ์ธ์
-
ํ๋ก ํธ์๋
- Naver Map API๋ฅผ ํ์ฉํ ์ง๋ ์๋น์ค ๊ตฌํํ๊ธฐ
- Typescript๋ฅผ ์ฌ์ฉํ์ฌ Next.js๋ก ๊ฐ๋ฐํ๊ธฐ
- React-query๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ๋ฐ์ดํฐ ์บ์ฑํ์ฌ ๊ด๋ฆฌํ๊ธฐ
- Git Action์ ํตํ CICD ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ (Git, GitAction, Docker, AWS EC2)
- Stomp๋ฅผ ์ฌ์ฉํ์ฌ ์ฑํ ์๋น์ค ๊ตฌํํ๊ธฐ
-
๋ฐฑ์๋
- Naver API๋ฅผ ํ์ฉํ ๋งค์ฅ ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ(Python, Docker, Mysql)
- Spring ํ๋ก์ ํธ ๊ธฐ๋ณธ ์ธํ
ํ๊ธฐ (Java, Spring, Mysql, Docker, Spring Data JPA, QueryDSL)
- API์ ๋ฐ๋ฅธ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
- Stomp๋ฅผ ์ฌ์ฉํ์ฌ ์ฑํ ์๋น์ค ๊ตฌํํ๊ธฐ
- HTTPS ๊ตฌํํ๊ธฐ (Nginx - ๋ฆฌ๋ฒ์ค ํ๋ก์)
- Git Action์ ํตํ CICD ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ (Git, GitAction, Docker)
- ๋ฐ์ดํฐ ์์ฒญ ์ ์ ์ก ๋ฐฉ์: request param, path variable, request body
- ๋ค์ด๋ฒ API ์์ฒญ ๋ฐ์ดํฐ ๋ฒ์ ์ ์
- CICD์ฌ์ฉ ๊ฒฐ์
- Jenkins or Git Action
- ์ ํจ์ค์ ๊น์ก์ ์ด์ ์ ๋ ๋ค ํ์ต์ ํด๋ณธ ๊ฒฝํ์ด ์กด์ฌํ๋ค. ๋ค๋ง ์ ํจ์ค์ ๊ฒฝ์ฐ ์ฌ์ฉ๊ฐ๋ฅํ ์ธ์์ด ๋ฐฑ์๋ ํ๋ช ์ด๊ธฐ์, ์ฝ๋๊ด๋ฆฌ๋ฅผ ์ํ ๊น์์ ์ ๊ณตํ๋ Git Action์ ์ฌ์ฉํ๋ ํธ์ด ๋ ์ข๋ค๊ณ ํ๋จํ์๋ค. Git Action์ ๊ฒฝ์ฐ Git์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ฐํ์ผ๋ก ๋์ํ๊ณ , ์์ฑ์ ์ํฉ์ ๋ง๋ ํ ํ๋ฆฟ์ ์ ๊ณตํ๊ธฐ์ ํ์ต๊ณก์ ์ด ๋ฎ๋ค๊ณ ํ๋จํ์๋ค. ๊ทธ๋ฐ ์ด์ ๋ฅผ ๋ฐํ์ผ๋ก Git Action์ ๋ฐํ์ผ๋ก ์งํ์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค.
- CICD๋ฅผ ์ํ ๋์ปค ๋จ์ผ ์ปจํ
์ด๋์ ์ฟ ๋ฒ๋คํฐ์ค ์ ์ฉ ๊ณ ๋ฏผ
- ์ฟ ๋ฒ๋คํฐ์ค๋ CICD๋ฅผ ์ํด ํ์์ ์ธ ๋๊ตฌ, ๋ค๋ง ํ์ฌ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์ฌ์ด๋ ํ๋ก์ ํธ์ด๋ค. ํ๋ก์ ํธ์ ํฌ๊ธฐ๋ฅผ ์๊ฐํ์์ ๊ฒฝ์ฐ ์ฟ ๋ฒ๋คํฐ์ค ์ ์ฉ์ ์ํด์๋ ์์ ํด์ผํ๋ ์์ด ๋ ๋ง์์ง๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค. ๊ทธ๋งํผ์ ํจ์จ์ ๋ชป ๊ฐ์ ธ์จ๋ค๊ณ ํ๋จํ์ฌ ๊ธฐ์กด EC2๋ฐฐํฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค.
- Jenkins or Git Action
- ์ ์ญ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Zustand ์ค์น
- ๊ณ ๊ฐ ์๋ด ๋ด ๋ฐฑ์๋ ์ฌ์ฉ ์ฌ๋ถ ๊ฒฐ์
-
CORS ๋ฌธ์
- CORS ์ค์ ์ค๋ฅ๋ก ์ธํ ์ ๊ทผ ๋ถ๊ฐ
- Spring Security ์ดํด ๋ฐ ์ฌ๋ฐ๋ฅธ request ์ค์ ์ ํตํ ํด๊ฒฐ
- CORS ์ค์ ์ค๋ฅ๋ก ์ธํ ์ ๊ทผ ๋ถ๊ฐ
-
Git Action ์ฌ์ฉ ์ ๊ฒฝ๋ก ์ค์ ๋ฌธ์
-
๊น ์ก์ ์ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ฐํ์ผ๋ก ์ฃผ์ด์ง ์ก์ ์ ์งํํ ๋ ๊น ๋ ํฌ์งํ ๋ฆฌ์ ๋ฃจํธํด๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก์ ์ ์งํํ๋ค.
์ฆ ์ก์ ์ ์งํํ๊ธฐ ์ํด์, ํด๋น ์ก์ ์ด ์ํ์ด ๋ ๊ฒฝ๋ก๋ฅผ ๋ค์ ์์ฑํด์ค์ผํ๋ ๋ฌธ์ ์๋ค. ์ด์ ์๋ ๋ฐฑ์๋, ํ๋ก ํธ์๋์ ๊ฐ๊ฐ์ ๋ ํฌ์งํ ๋ฆฌ์์ ์์ ์ ์งํํ์๊ธฐ์ ๋ฐ์ํ์ง ์๋ ๋ฌธ์ ์์ง๋ง ์ด๋ฒ์๋ ํ๋์ ๋ ํฌ์งํ ๋ฆฌ์์ ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๊ธฐ์ ๋ฐ์ํ๋ ๋ฌธ์ ์๋ค.
๊น ์ก์ ์งํ ์ ๊ฐ ์ก์ ์ด ์คํ๋ ํด๋ ๊ฒฝ๋ก๋ก ์ด๋ํ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ์๋ค.
working-directory: ${{ secrets.BeWORKINGDIRECTORY }}
-
-
HTTPS ์ ์ฉ ๋ฌธ์ - Nginx
- ํ๋ก ํธ์์ ์ฌ์ฉํ๋ ์ธ์ฆ์์ nginx์์ ์ฌ์ฉํ๋ ์ธ์ฆ์๊ฐ ๋์ผํ์ง ์์์ ๋ฐ์ํ๋ ๋ฌธ์ ์๋ค. ํด๋น ์ธ์ฆ์๋ฅผ ๋์ผํ๊ฒ ํ์ฌ ํด๊ฒฐํ์๋ค.
-
๋ก์ปฌ๊ณผ EC2 ๋ด์ ์คํ ํ๊ฒฝ ์ฐจ์ด๋ก ์ธํ ์ด๋ฏธ์ง ์์ฑ ์ ํ๋ซํผ ์ง์ ๋ฌธ์
-
Vanilla-extract ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ธํ Bug fix
- Vanilla-extract/next-plugin์ Next.js App router ๋ฒ์ ๋ค์ด๋๋ฏน ๋ผ์ฐํ ์ CSS Compiling Error๋ก ์ธํด ๋ฒ์ ์ 2.3.5 -> 2.4.0
- ์๋ฌ ์์: [id]/page.css.ts Error: Didn't get a result from child compiler
| ๊น๋ฏผ์ | ์ดํ๋ |
|---|---|
| ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ฐ CICD | ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๋ฐ CICD |
| Content | Main | Detail |
|---|---|---|
| ๋งค์ฅ ์์น ํ์ธ | Spring / TypeScript / Naver API | Naver API For Search and I/O Store Data |
| ์ฑํ | Spring / TypeScript | Socket / SockJS / Stomp / Axios |
| CI/CD | Docker, Jenkins, Dockerhub, Kubernetes | Docker, Dockerhub |
| Nginx | nginx | Nginx, Let's encrypt, |
| For HTTPS | ||
| ๋ฐฐํฌ | AWS | EC2(Ubuntu Server 20.04 LTS) |
| ํ์๊ด๋ฆฌ | Spring Security | Spring Security |
| ๋งค์ฅ ์ ๋ณด ๊ด๋ฆฌ | Python, Naver API | Naver API For Search Store and I/O Store Data Base |
| ์ง๋ | Naver API | Naver Map API |












