https://youtu.be/msiGwnS4l-Q?si=rC5baI9Mo6tcP4zG
- ์ฃผ์ : ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ค๊ณ ์ ๊ณต ์์ ๊ฑฐ๋๋ฅผ ์ํ e-์ปค๋จธ์ค ํ๋ซํผ
- ๋์ : ๋ํ ์ฌํ์ ๋ฐ ์กธ์ ์
- ๋ํ์๊ณผ ์กธ์ ์์๊ฒ ํธ๋ฆฌํ ์ ๊ณต์์ ์ค๊ณ ๊ฑฐ๋ ํ๊ฒฝ ์ ๊ณต
- ์ฌ์ฉ์ ๊ฐ ์ง์ ๊ฑฐ๋์ ํ๋ซํผ์ ์์ ์ฅ์น๋ฅผ ๊ฒฐํฉํ ์ ๋ขฐ์ฑ ๋์ ์ ๊ณต์์ ์ค๊ณ ๊ฑฐ๋ ํ๋ซํผ ๊ตฌ์ถ
| ํํธ | ํ๋ ์์ํฌ & ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
|---|---|
| Frontend | React, Vite |
| Backend | Java, Spring Boot, Spring Security, Redis, Querydsl, STOMP, Netflix Eureka |
| AI/ML | Fast API, PyTorch, Pandas, KcELECTRA |
| Infra | Docker, AWS, Ansible, Terraform, Prometheus, Grafana, Loki, Jenkins |
| Collaborative | Notion, Figma, Github |
์๋ ๋งํฌ๋ฅผ ํตํด ์ ํฌ ์๋น์ค์ ๊ฐ๋ฐ ๋ ํฌ์งํ ๋ฆฌ ๋ฐ ๋ฌธ์๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค.
- ์นด์นด์ค ์์ ๋ก๊ทธ์ธ๊ณผ ์ด๋ฉ์ผ ์ธ์ฆ ๋ก๊ทธ์ธ์ ํตํด ํ์ ๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ์ ํ ์ ์์ต๋๋ค.
- ๋ง์ดํ์ด์ง์์ ํ์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ํ์ ์ด๋ฏธ์ง์ ํจ๊ป ๋ฑ๋ก/์์ /์ญ์ ํ ์ ์์ต๋๋ค.
- ์ํ์ ๊ฒ์ ํํฐ์ ํจ๊ป ์กฐํํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ๊ฐ์ 1:1 ์ฑํ ์ ํตํด ํ๋งค์์ ๊ตฌ๋งค์๊ฐ ๋ํ๋ฅผ ๋๋ ์ ์์ต๋๋ค.
- AI ๋ชจ๋์ ํตํด ์ฑํ ๋ด์ฉ์ด ์ฌ๊ธฐ ์์ฌ ๋ฉ์์ง์ธ์ง ํ๋ณํด ๊ฒฝ๊ณ ๋ฌธ๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
1๏ธโฃ ์ํ ๋ชฉ๋ก์ ์กฐํํ ๊ฒฝ์ฐ ๊ฒ์ ํํฐ๊ฐ ๋ง์์ง์๋ก ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์์ ธ ์ฝ๋ ๊ฐ๋ ์ฑ ์ ํ
- DTO๋ฅผ ๋ง๋ค์ด @RequestParam ๋์ @ModelAttribute๋ฅผ ํตํด ๊ฐ๋ค์ ๋ฐ์ธ๋ฉ
- Querydsl์ ํ์ฉํ ๋์ ์ฟผ๋ฆฌ ์์ฑ
- ๊ธฐ์กด offset ํ์ฉ ๋ฐฉ์์ผ๋ก ์งํ์ ๋ฐ์ดํฐ๊ฐ ๋ง์์ง์๋ก ์๋ต์๋๊ฐ ์ ์ ๋๋ ค์ง๋ ๊ฒ์ ๋ฐ๊ฒฌ
- no-offset ๋ฐฉ์ ํ์ด์ง๋ค์ด์ ์ ์ ์ฉํด๋ณด๋ ค ํ์ผ๋, ์ ๋ ฌ ์กฐ๊ฑด ๋๋ฌธ์ ์ ํฉํ์ง ์๋ค๊ณ ํ๋จ
- ์ปค์ ๊ธฐ๋ฐ์ ํ์ด์ง๋ค์ด์ ์ ์ ์ฉํด 10๋ง๊ฑด์ ๋ฐ์ดํฐ ๊ธฐ์ค ์ฝ 98.68% ์ ์ฑ๋ฅ ๊ฐ์
- Nginx.conf์์ client_max_body_size๋ฅผ ๋๊ฒ ์ค์
- application.yml ์์ multipart max_file_size์ max_request_size๋ฅผ ์์ ํด ํด๊ฒฐ