ํํธ | ์ ๋ชฉ | ๊ธฐ์ฌ์ |
---|---|---|
๊ณตํต | ์๋ฒฝํ ๊ธธ์ ๊ทธ๋ฆฌ๊ธฐ ์ํ ๋ ธ๋ ฅ | ๋ชจ๋ |
FE | ์๋ฒฝํ(?) ํ์ด์ง๋ฅผ ์ํ LightHouse ์ ์ ๊ฐ์ ๊ธฐ | ๋ฐ์คํ |
FE | ์ค๋ธ์ ํธ (Polyline, Marker) ์บ์ฑ | ์ค๋ํ |
BE | ๋๋์ ๋ฐ์ดํฐ๋ก ์ธํ OOM ํด๊ฒฐ๊ณผ์ | ์กํ์ฑ |
BE | 1,500ms -> 160ms๋ก 4๋จ๊ณ ๊ฐ์ ๋ ํต์ฌ๋ก์ง | ์ก๋ฏผ๊ท |
๋ ์์ธํ ๊ธฐ์ ์ํฐํด์ ๐ UNIRO-Wiki ํ์ด์ง์์ ๋ณด์ค ์ ์์ด์.
๐ UNIRO
- ์บ ํผ์ค ๋ด ์ด๋์ด ๋ ์ด์ ๋ถํธํ์ง ์๋๋ก!
- ํ ์ฒด์ด๋ฅผ ์ฌ์ฉํ๋ ๋ํ์์ด ๋ณด๋ค ์์ ํ๊ณ ํธ๋ฆฌํ๊ฒ ์บ ํผ์ค๋ฅผ ์ด๋ํ ์ ์๋๋ก ๋๋ ๊ธธ์ฐพ๊ธฐ ์๋น์ค์ ๋๋ค.
- ์ ๋ณด ๊ธฐ์ ์ ํ์ฉํ์ฌ ์ด๋ ๊ณผ์ ์์์ ๋ฌผ๋ฆฌ์ ยท์ ๋ณด์ ์ฅ๋ฒฝ์ ํด์ํ๊ณ , ๋ชจ๋๊ฐ ํจ๊ปํ๋ ํฌ์ฉ์ ์ธ ์บ ํผ์ค ํ๊ฒฝ์ ๋ง๋ค์ด๊ฐ๋๋ค.
๋๋ฉ ํ์ด์ง | ๋ฉ์ธ ํ์ด์ง |
---|---|
![]() |
![]() |
ํ๊ต ์ ํ ํ์ด์ง | ๊ธธ ์ฐพ๊ธฐ ํ์ด์ง |
---|---|
![]() |
![]() |
์๋ก์ด ๊ธธ ์ ๋ณดํ๊ธฐ | ๋ถํธํ ๊ธธ ์ ๋ณดํ๊ธฐ |
---|---|
![]() |
![]() |
๋ฐ์คํ | ์ค๋ํ |
---|---|
FE | FE |
- ๊ธธ์ฐพ๊ธฐ ๊ฒฐ๊ณผ ํ์ด์ง ๊ตฌํ ๋ฐ ์ต์ ํ ์งํ - Suspense๋ก ๋ก๋ฉ ์๋ํ - Post ์์ฒญ ์์ ํ๋ฅผ ์ํ debounce ๊ตฌํ - FCP ๊ฐ์ ๋ฐ ์ ์ ๋ฆฌ์์ค ์ถ์๋ฅผ ์ํ ํด๋ผ์ด์ธํธ/์ธํ๋ผ ๋์ฑ ๋ง๋ จ |
- ๋ฉ์ธ / ๋ถํธํ ๊ธธ / ์๋ก์ด ๊ธธ ์ง๋ ํ์ด์ง ์ ์ - API ์๋ฌ ํธ๋ค ๋ก์ง ๊ตฌํ - ๊ธธ ์ ํ ์๊ณ ๋ฆฌ์ฆ + ์๋ก์ด ๊ธธ ์์ฑ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ - ์บ์ฑ๊ณผ ์๊ณ ๋ฆฌ์ฆ์ ํตํ ์ง๋ ํ์ด์ง ์ต์ ํ ์งํ |
๐ ์กํ์ฑ | ์ก๋ฏผ๊ท |
---|---|
BE, ํ์ฅ | BE |
- OOM ๋ฌธ์ ๋ฅผ Jpa Stream API + SSE๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถํ ์ฒ๋ฆฌํ์ฌ ํด๊ฒฐ - ๊ธธ์ฐพ๊ธฐ ์๊ณ ๋ฆฌ์ฆ(A* ์๊ณ ๋ฆฌ์ฆ) ๊ฐ๋ฐ ๋ฐ ๊ฐ์ - Hibernate envers๋ฅผ ํ์ฉํ DB๋ฒ์ ํ & ํน์ ๋ฒ์ ์กฐํ ๋ก์ง ๊ตฌํ - Google Map Elevation API ์ฐ๋ ๋ฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋น๋๊ธฐ ๋ฐฐ์น ์ฒ๋ฆฌ ๊ตฌํ |
- Redis ๋ฐ FastJson์ ํ์ฉํ ์กฐํ์๋ 1,500 ms -> 160ms ๊ฐ์ - Dockerizing ๋ฐ blue-green ๋ฌด์ค๋จ ๋ฐฐํฌ ์๋ํ ์ธํ๋ผ ๊ตฌ์ถ - R-tree๋ฅผ ํ์ฉํ ๊ธธ ์ถ๊ฐ ๋ก์ง ๊ฐ๋ฐ, 10,000 ms -> 200ms ๊ฐ์ - ํ ์คํธ ์ปจํ ์ด๋ ๊ตฌ์ถ - ์ด๋๋ฏผ ๋ก๊ทธ์ธ ๊ตฌํ |
๊ตฌ๋ถ | ๊ธฐ์ ์คํ |
---|---|
FE | |
BE | |
์ธํ๋ผ | |
์ํต |
-
์ ํฌ ํ์ ์์ฑ๋ ๋๊ณ ๋ฒ๊ทธ ์๋ ์๋น์ค ์ ์์ ์ต์ข ๋ชฉํ๋ก ์ผ์์ต๋๋ค.
-
4์ฃผ๋ผ๋ ๊ธธ์ง ์์ ๊ฐ๋ฐ ๊ธฐ๊ฐ๋์, ์ด๋ฅผ ์ํด ํต์ฌ ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐยท๋ฐฐํฌํ๊ณ , ๋ฐ๋ณต์ ์ธ QA์ ๊ณ ๋ํ๋ฅผ ํตํด ์์ฑ๋๋ฅผ ๋์ด๊ณ ์ ํ์ต๋๋ค.
-
๊ทธ ๊ฒฐ๊ณผ, 2์ฃผ ์ฐจ์ ํต์ฌ ๊ธฐ๋ฅ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌํ์ผ๋ฉฐ, ์ธ ์ฐจ๋ก์ ๋ด๋ถ QA์ ๋ ์ฐจ๋ก์ ์ธ๋ถ QA๋ฅผ ์งํํ์ต๋๋ค.
๋ ์ง | QA |
---|---|
2/5 | 1์ฐจ ์์ฒดQA |
2/8 | 2์ฐจ ์์ฒดQA |
2/11 | 3์ฐจ ์์ฒดQA |
2/14 | ์ํํฐ์ด ๋ฒ๊ทธ๋ฐ์ดQA |
2/21 | ์ํํฐ์ด ๋ฐ๋ชจ๋ฐ์ดQA |
- ์ ํฌ ํ์์๋ ์ผ์ฃผ์ผ ๋จ์์ ์คํ๋ฆฐํธ๋ฅผ ๊ฐ์ง๊ณ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ํด๋น ๋ฐฉ์์ ํตํด ์๋์ ๊ฐ์ ์ฅ์ ์ ๊ฐ๊ฒ ๋์์ต๋๋ค.
- ๋น ๋ฅธ ํผ๋๋ฐฑ๊ณผ ๊ฐ์
- ์ ์ฐ์ฑ ์๋ ์๊ตฌ์ฌํญ ๋ณ๊ฒฝ
- ๊ฐ๋ฐ ๋ฆฌ์คํฌ ๊ฐ์
- ๊ฐ ์คํ๋ฆฐํธ์ ๊ฐ๋ฐ ๋ด์ฉ์ ์์นด์ด๋น ํ๊ธฐ ์ํด ๋ฆด๋ฆฌ์ฆ ๋ ธํธ๋ฅผ ๋ง๋ค์ด ๊ด๋ฆฌํ์ต๋๋ค.
๋ฆด๋ฆฌ์ฆ ๋ฒ์ | ์งํ๊ธฐ๊ฐ | ๋ฆด๋ฆฌ์ฆ ๋ ธํธ | ๋ฆด๋ฆฌ์ฆ PR |
---|---|---|---|
v1.0.0 | 1์ฃผ์ฐจ ์คํ๋ฆฐํธ | 1์ฃผ์ฐจ ๋ฆด๋ฆฌ์ฆ ๋ ธํธ | v1.0.0 |
v1.1.0 | 2์ฃผ์ฐจ ์คํ๋ฆฐํธ | 2์ฃผ์ฐจ ๋ฆด๋ฆฌ์ฆ ๋ ธํธ | v1.1.0 |
v1.2.0 | 3์ฃผ์ฐจ ์คํ๋ฆฐํธ | 3์ฃผ์ฐจ ๋ฆด๋ฆฌ์ฆ ๋ ธํธ | v1.2.0 |
v1.3.0 | 4์ฃผ์ฐจ ์คํ๋ฆฐํธ | 4์ฃผ์ฐจ ๋ฆด๋ฆฌ์ฆ ๋ ธํธ | v1.3.0 |
- ์ํํฐ์ด ํ๋์์๋ ํจ๊ป ๊ฐ๋ฐํ๋ ์๊ฐ์ด ๋ง์ต๋๋ค.
- ํ์ง๋ง ์๋ฒ๋ฅผ ๋ฐฐํฌํ ๋๋ง๋ค ํ๋ก ํธ์๋๊ฐ ์ด๋ฅผ ์ธ์งํ๊ณ ๋์ํด์ผ ํ๋ ๊ณผ์ ์ด ๋ถํ์ํ ๋น์ฉ์ฒ๋ผ ๋๊ปด์ก์ต๋๋ค.
- ๋ฐฐํฌ๋ก ์ธํ ์ํต ๋น์ฉ์ ์ฝ 5๋ถ ์ ๋์ด์ง๋ง, ์ ํฌ๋ ๋น ๋ฅธ ๋ฐฐํฌ๋ฅผ ๋ชฉํ๋ก ๊ฐ๋ฐํ๊ธฐ์ ์ด๋ฌํ ์๊ฐ์ด ์์ด๋ฉด ํ์ ์ ํฐ ๋ถํธ์ด ๋ ๊ฒ์ด๋ผ ์๊ฐํ์ต๋๋ค.
- ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์๋ฒ์์ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ๊ตฌ์ถํ์ฌ, ํ๋ก ํธ์๋๊ฐ ์๋ฒ์ ๋ฐฐํฌ ์์ ์ ์ ๊ฒฝ ์ฐ์ง ์์๋ ๊ฐ๋ฐ์ ๋ถํธํจ์ด ์๋๋ก ๋ง๋ค์์ต๋๋ค.
- ๊ด๋ จ ๊ตฌํ wiki ํ์ด์ง
- ์ด๊ธฐ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๊ฑฐ๋ ๊ฐ์ค์ ๊ฒ์ฆ์ ์ํด ์ผ์ผํ ์ฐพ์๋ด์ผ ํ๋ ๋ถํธํ ๊ณผ์ ๋ค์ด ์์์ต๋๋ค.
- ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ํ๋ก ํธ์ธก์์ ์ด๋๋ฏผ์ ๊ฐ๋ฐํ์๊ณ , ์ด๋ฅผ ํตํด ๋ฐฑ์๋์์ ๊ธฐ์ ์คํ์ ์์ด ์์ฌ๊ฒฐ์ ์๊ฐ์ ์๋นํ ๋จ์ถํ ์ ์์์ต๋๋ค.
- ๊ด๋ จ wiki ํ์ด์ง
๊ฑด๋ฌผ ๋ ธ๋ ์์ฑ | ๋ ธ๋ ๋ฐ ๊ฐ์ ์ ๋ณด ํ์ธ |
---|---|
![]() |
![]() |

- ๊ฐ ์ฃผ์ฐจ๋ง๋ค ๊ฐ ํํธ ๋ธ๋์น์์ ์์
ํ๋ฉฐ ๊ธ์์ผ๋ง๋ค Main ๋ธ๋์น์ merge ํฉ๋๋ค.
- ์ผ์ ๋ณ๋ ๋ฑ ๊ณต์ ์ฌํญ์ ์นด์นด์คํก์ผ๋ก ์ ๋ฌํด์ฃผ์ธ์.
- ์ฐํด ๋ฐ ์ฃผ๋ง์๋ ํ์ธ ์ฆ์ ์๋ต๋ง ์ฃผ์๋ฉด ๋ฉ๋๋ค. ํด๊ฒฐ์ ์ดํ์ ์งํํด๋ ๊ด์ฐฎ์์.
- ๊ฐ์ธ ์ผ์ ์ด ์๊ธธ ๊ฒฝ์ฐ, ๊ฐ๋ฅํ๋ฉด ์ ๋ ๊น์ง ์๋ ค์ฃผ์ธ์. ์นดํก์ผ๋ก ๊ฐ๋จํ ๊ณต์ ํด๋ ๊ด์ฐฎ์์.
- ์ค๋ํ: ๋งค์ฃผ ๋ชฉ์์ผ 19:00 ํด๊ทผ
- ๋ฐ์คํ: ๋งค์ฃผ ํ์์ผ 19:00 ํด๊ทผ
- ์ก๋ฏผ๊ท: ๋งค์ฃผ ๋ชฉ์์ผ 19:00 ํด๊ทผ
- ์นดํก์ด๋ ์ฌ๋์ผ๋ก ๋จผ์ ์ฐ๋ฝํ๊ณ , ์๋ต์ด ์์ ๊ฒฝ์ฐ ๋๋ฉด์ผ๋ก ์ด์ผ๊ธฐํด์. (์ผํฐ์์ ์งํ)
- ์๋๋ฐฉ์ด ์์ดํ์ ๋ผ๊ณ ์์ด๋ ๊ด์ฐฎ์์ :)
- ๋งค์ผ ์ค์ 10:30์ ์คํฌ๋ผ์ผ๋ก ํ๋ฃจ๋ฅผ ์์ํด์. (์์ ์ดํ)
- ๋ฌธ์ ์์ฑ ๋ฐ ๊ตฌ์ฒด์ ์ธ ๊ณํ ์์ ํ์์์.
- ์ฐํด ๊ธฐ๊ฐ ๋์ ๋งค์ผ ์ค์ 11:00์ ์จ๋ผ์ธ ๋ฐ์ผ๋ฆฌ ๋ฐ ๋ชจ๊ฐ์ฝ๋ฅผ ์งํํด์.
- ํ์๋ก ์์ฑ์ ๋์๊ฐ๋ฉด์ ์งํํด์.
- ๋ชจ๋ ๋จธ์ง๋ ๋ฐ๋์ 1๋ช ์ ์น์ธ์ ๋ฐ์์ผ ๊ฐ๋ฅํด์.
- ํผ๋๋ฐฑ์ ๊ฑด์ ํ๊ณ ๊ฑด๊ฐํ๊ฒ ์ฃผ๊ณ ๋ฐ์์. ๊ทผ๋ฐ ์ด์ ๋ฐ๋ปํจ์ ์์ง ๋ง์์ฃผ์ธ์.
ํ๋ก ํธ์๋์์ ๊ตฌํํ ๊ธฐ๋ฅ๊ณผ ๊ธฐ์ ์คํ์ ์ ๋ฆฌํฉ๋๋ค.
- ์ฌ์ฉ ๊ธฐ์ : React, TypeScript, Zustand, TanStack-Query, Tailwind CSS, Frame
โโโ src
โโโ api (API ํต์ ํจ์)
โโโ transformer (API ํต์ ๋ณํ๊ธฐ)
โโโ type (API ํต์ ํ์
์ ์ธ)
โโโ request
โโโ response
โโโ assets
โโโ components (ํ์ด์ง ๋ณ ์ปดํฌ๋ํธ)
โโโ constant (์์, Enum
โโโ hooks (์ปค์คํ
ํ
)
โโโ map (์ง๋ ์ธํ
)
โโโ pages (ํ์ด์ง ์ปดํฌ๋ํธ)
โโโ types (ํ์
)
โโโ utils (๊ธฐํ ํจ์)
- Multi Stage Build
- GCR Push -> VM Pull
- Deploy New Container
๋ฐฑ์๋์์ ๊ตฌํํ ๊ธฐ๋ฅ๊ณผ ๊ธฐ์ ์คํ์ ์ ๋ฆฌํฉ๋๋ค.
- ์ฌ์ฉ ๊ธฐ์ : Java, Spring Boot, JPA, MySQL, Redis, Hibernate envers, FastJson, Querydsl
