๊ฐ๋ฐ์ ์ง๋ง์๊ณผ ์ ์ ๊ฐ๋ฐ์๋ฅผ ์ํ ํ๋ก์ ํธ ๊ณต์ ๋ฐ ์ฝ๋ ๋ฆฌ๋ทฐ ์ฌ์ดํธ
ํ ์ด ํ๋ก์ ํธ๋ ํผ๋๋ฐฑ์ ๋ฐ๊ธฐ ์ด๋ ค์ ํ ๋ฒ ๋ง๋ ํ์ ํ๊ธฐํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ ๋๋ค. ์ด์ฌํ ๊ฐ๋ฐํ ํ๋ก์ ํธ๋ฅผ ๋ง์ ์ฌ๋๋ค์ด ์ด์ฉํด ๋ณด๊ณ , ๋ค์ํ ํผ๋๋ฐฑ์ ๋ฐ์ ๋ณด๊ณ , ์ข์ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ด ํ๋ก์ ํธ๋ฅผ ๊ฐ์ ํด๋ณด๋ ๊ฒฝํ์ ํ๊ธฐ๊ฐ ์ฝ์ง ์์ต๋๋ค. ์ ํฌ๋ ๊ฐ๋ฐ์ ์ง๋ง์๊ณผ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ฅผ ์ํ โํ๋ก์ ํธ ๊ณต์ ๊ณต๊ฐโ ๊ณผ โ์ฝ๋ ๊ณต์ , ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ์๊ฒฌ ์ํต ๊ณต๊ฐโ์ ์ ๊ณตํ๊ณ ์ ํฉ๋๋ค.
๊ฐ๋ฐ์ ์ง๋ง์, ์ ์ ๊ฐ๋ฐ์
- ํ ์ด ํ๋ก์ ํธ๋ฅผ ๊ณต์ ํ๊ณ ์๋ก์๊ฒ ํผ๋๋ฐฑ์ ์์ ๋กญ๊ฒ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ์ ์ฝ๋๋ฅผ ๋ฆฌ๋ทฐํ์ฌ ๋ฐ์ ์์ผ๋๊ฐ๋ ๊ณผ์ ์ ๊ธฐ๋กํ๊ณ ํฌํธํด๋ฆฌ์ค๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊นํ๋ธ gist๋ฅผ ํตํ ํต๊ณ ๋ฑ๋ก์ ํตํด ๊ฐ๋ฐ์๋ก์์ ๋ฆฌํฉํ ๋ง ๊ฒฝํ, ํ์ธ์ ์ฝ๋๋ฅผ ๋ฆฌ๋ทฐํด์ค ๊ฒฝํ ๋ฑ์ ์ดํํ ์ ์์ต๋๋ค.
- ํ ์ด ํ๋ก์ ํธ ๊ณต์ ๋ฐ ํผ๋๋ฐฑ ํ์ด์ง
- url ๋๋ apk์ ๋ํ ์์ ์ฑ ๊ฒ์ฌ
- ํ๋ก์ ํธ ๋ฒ์ ํ์คํ ๋ฆฌ ๊ธฐ๋ฅ ์ ๊ณต
- ์ฌ์ฉํ ๊ธฐ์ ์คํ์ ๋ฐ๋ฅธ ํํฐ๋ง ์ ๊ณต
- ์ฝ๋ ๊ณต์ ๋ฐ ๋ฆฌ๋ทฐ ํ์ด์ง
- ์๋ณธ ์ฝ๋์ ์์ ์ฝ๋์ ๋น๊ต UI ์ ๊ณต
- ๋ฆฌ๋ทฐ์ ๋ํ ์๊ฒฌ ์์ฑ ๊ธฐ๋ฅ ์ ๊ณต
- ์ฝ๋ ๋ฒ์ ํ์คํ ๋ฆฌ ๊ธฐ๋ฅ ์ ๊ณต
- ์ฌ์ฉ ์ธ์ด์ ๋ฐ๋ฅธ ํํฐ๋ง ์ ๊ณต
- ํ๋กํํ์ด์ง
- ํ๋ก์ ํธ ๊ณต์ ํ์, ํ๋ก์ ํธ ๋ฆฌํฉํ ๋ง ํ์(๋ฒ์ ์ ๊ทธ๋ ์ด๋ ํ์), ์ฝ๋ ๋ฆฌ๋ทฐ ํ์, ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ์ ํ์(๋ฒ์ ์ ๊ทธ๋ ์ด๋ ํ์)์ ๋ํ ํต๊ณ ์ ๊ณต
- ์ด๋ฉ์ผ ์ธ์ฆ์ ํตํ ์ค์๊ฐ ์๋ฆผ ์ ๊ณต
- ๋ด๊ฐ ์์ฑํ๊ฑฐ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋จ๊ธด ๊ฒ์๋ฌผ, ์ฆ๊ฒจ์ฐพ๊ธฐํ ๊ฒ์๋ฌผ ๋ฐ๋ก๊ฐ๊ธฐ ์ ๊ณต
Backend - Spring
- Java openjdk-11
- Spring boot 2.7.1
- Spring Security 2.7.10
- Spring Data JPA 2.7.10
- Querydsl 5.0.0
- JWT 0.11.2
- Spring Data Redis 2.7.10
Frontend - Next.js
- Node.js 18.16.0
- React 18.2.0
- Next.js 13.2.4
- TypeScript 5.0.4
- Styled Components 5.3.9
- Tanstack Query 4.29.5
- Zustand 4.3.7
- React Hook Form 7.43.9
- Zod 3.21.4
- ESLint 8.38.0
- Prettier 2.8.7
- Axios 1.3.6
- Monaco Editor 0.38.0
- Tiptap Editor 2.0.3
CI / CD
- AWS EC2 / Ubuntu 20.04.6 LTS (Focal Fossa)
- Docker 23.0.5
- Docker Compose 1.25.0
- SSL (certbot) 1.1.1f
- Jenkins 24.0.2
- NGINX 1.23.4
- sonarqube 9.9.1.69595
- pmd 3.4.0
- checkstyle 10.9.3
-
์ฌ์ดํธ ์๊ฐ์ ํจ๊ป ํ๋ก์ ํธ, ์ฝ๋ ๋ฆฌ๋ทฐ, ๋ก๊ทธ์ธ ๋ฐ๋ก๊ฐ๊ธฐ ๋ฒํผ์ด ์กด์ฌํฉ๋๋ค.
- ํ๋ก์ ํธ๋ ํ๊ทธ๋ณ ํํฐ๋ง์ด ๊ฐ๋ฅํ๊ณ ์์ฑ์ผ์, ์ข์์, ํผ๋๋ฐฑ ์์ผ๋ก ์ ๋ ฌ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ฌดํ์คํฌ๋กค๋ก ๊ตฌํํ์์ต๋๋ค.
-
ํ๋ก์ ํธ ์์ธ ํ์ด์ง์์๋ ๋ฒ์ ๋ณ ์ ๋ฐ์ดํธ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๊ณ , ํผ๋๋ฐฑ์ ๋จ๊ธฐ๊ฑฐ๋ ์ ๊ณ ํ ์ ์์ต๋๋ค.
-
ํ๋ก์ ํธ์ URL์ ํด๋ฆญํ๋ฉด ์๋ฒ๊ฐ ๋ค์ด๋์๋์ง ํ์ธ ํ์ ์ด๋ ค์๋ ๊ฒฝ์ฐ ๋งํฌ๋ก ์ฐ๊ฒฐํ๊ณ ๋ซํ์๋ ๊ฒฝ์ฐ๋ ์๋์ผ๋ก ๋ซํ ์ ๊ณ ์ฒ๋ฆฌ๋ฅผ ํฉ๋๋ค.
-
์ ํด ์ฌ์ดํธ ๋งํฌ๊ฐ ๋ฑ๋ก๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ๋ก์ ํธ ๋ฑ๋ก ์ URL ๊ฒ์ฌ๋ฅผ ํ์๋ก ์งํํฉ๋๋ค.
-
๋ด ํ๋ก์ ํธ์ ๋ฌ๋ฆฐ ํผ๋๋ฐฑ ๋ชฉ๋ก์์ ๋ฐ์ํ์ฌ ๊ฐ์ ํ ํผ๋๋ฐฑ์ ์ ํํด ๋ฑ๋กํ ์ ์์ต๋๋ค.
-
์ฝ๋๋ ํ๊ทธ๋ณ ํํฐ๋ง์ด ๊ฐ๋ฅํ๊ณ ์์ฑ์ผ์, ์ข์์, ํผ๋๋ฐฑ ์์ผ๋ก ์ ๋ ฌ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ฌดํ์คํฌ๋กค๋ก ๊ตฌํํ์์ต๋๋ค.
-
Github URL์ ์ ๋ ฅํ์ฌ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์์ฒญํ ์ฝ๋๋ฅผ ๊ฐํธํ๊ฒ ๋ถ๋ฌ์ต๋๋ค.
-
์ฝ๋ ์์ธ ํ์ด์ง์์๋ ๋ฒ์ ๋ณ ์ ๋ฐ์ดํธ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๊ณ , ๋ฆฌ๋ทฐ๋ฅผ ๋จ๊ธธ ์ ์์ต๋๋ค.
-
diff ์๋ํฐ๋ฅผ ํตํด ๊ธฐ์กด ์ฝ๋์ ๋ฆฌ๋ทฐ ์์ฑ์๊ฐ ์์ ํ ์ฝ๋๋ฅผ ํ๋์ ๋น๊ตํ ์ ์์ต๋๋ค.
-
์ฝ๋์ ์ฐ๊ด๋ ํ๋ก์ ํธ๊ฐ ์๋ค๋ฉด ๊ธฐ์กด์ ๋ฑ๋กํ ํ๋ก์ ํธ๋ฅผ ์ฝ๋์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
-
ํ๋ ์ ์ ์ ๊ธฐ๋กํ ์คํฏ ์นด๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ Github ํ๋กํ์ ํ์ํ ์ ์์ต๋๋ค.
-
์ด๋ฉ์ผ์ ์ธ์ฆํ๋ฉด ์ค์๊ฐ ์๋ฆผ์ ์ ๊ณตํฉ๋๋ค.
-
๋ด๊ฐ ์์ฑํ, ๋ฆฌ๋ทฐํ, ์ฆ๊ฒจ์ฐพ๊ธฐํ ํ๋ก์ ํธ์ ์ฝ๋ ๋ชฉ๋ก์ ์กฐํํฉ๋๋ค.
์๋ ์ฌ์ง์ ํด๋ฆญํ๋ฉด ๋์์ ๋งํฌ๋ก ์ด๋ํฉ๋๋ค!