๐ ๋ชฉ์ฐจ
WithDog-API ๋ช
์ธ์
์ํคํ
์ฒ ๊ทธ๋ฆผ ๋ฐ ์ค๋ช
WithDog ํ
์ด๋ธ ๊ตฌ์กฐ
WithDog-Spring Secuirty ๊ตฌ์กฐ
โ๏ธ ํ๋ก์ ํธ ๋ฌธ์ ํด๊ฒฐ ๋ฐ ๊ธฐ๋ฅ ์ ๋ฆฌ
๐ฒ FrontEnd
axios ์ interceptor (with Login)
useEffect ์ useCallback์ ์ฐจ์ด
Naver Blog IMG ์๋ฐ ๋ฌธ์
InterSection Observer ํ๋ฆ
React Portal์ด๋?
Axios, Fetch(promise, async, await)
S3 static Web Hosting Routing ๋ฌธ์
๐จโ๐ป Infra
AWS S3์ CloudFront ํ์ฉ
Github Actions + CodePipeline ๋ฐฐํฌ์๋ํ
ELB โ NGINX (AWS ์๊ธ ์ ์ฑ
๋ณ๊ฒฝ)
DNS(์ค์)
K6, Prometheus, Grafana
๐ฅ๏ธ BackEnd
๊ฒ์ ํํฐ ํ
์ด๋ธ ๊ตฌ์กฐ ์ ๋ต
JPA ์์ ์ปฌ๋ ์
2๊ฐ ์ด์ ์กฐ์ธ๋ฌธ์
open-in-view ๊ฒฝ๊ณ ๋ก๊ทธ(OSIV)
BlogUrls ๋ฅผ ์ํ CustomAnnotation
@Transactional(readOnly = true)
@EntityGraph ์ Fetch join์ ์ฐจ์ด
Oauth2 ๋ก๊ทธ์ธ ํ๋ฆ(Oauth2-Client)
ํด์ผํ ์ผ
- [x] findPlace placeBlogs ์ง์ฐ๋ก๋ฉ โ ๋ณ๋์ ์ฟผ๋ฆฌ์์ฑํ์
- [ ] Lamda๋ฅผ ์ด์ฉํ์ฌ S3 ์ด๋ฏธ์ง ์
๋ก๋์ ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง ๊ตฌํํ์
- [ ] bookmark ์๋ฐฉํฅ ๊ฐ์ ํ์
- [ ] n^2 ๋ณต์ก๋ ๋ฐ์ Map ๋ฆฌํํ ๋ง ํ์
- [x] ๊ฐ๊ฒฉ 0์์ ๋ฌด๋ฃ๋ก ๋ณ๊ฒฝ, ์์ฝํ ์ ์๋๊ณณ์ ์์ฝํ๊ธฐ๊ฐ ์์ด์ผ ํจ
- [x] ๋ชจ๋ฐ์ผ ๋ณต์ฌํ๊ธฐ ์ง๋๋ณด๊ธฐ ์ ์ ํํ๊ธฐ ๊ฐ๊ฒฉ์ด ๋๋ฌด์ข์
- [ ] ์ถ์ฒ์ฅ์ ์น์
(๋๋ค) api ์ฟผ๋ฆฌ ๊ฐ์ ํ์ ๊ธฐ์กด order by rand() โ offset or ๋๋ค์ฅ์ ID ์ ์ฅ
- [ ] ์ฐ๊ด๊ด๊ณ๋ ํธ์ ๋ฉ์๋ ์ฒดํฌ addBlog, addImage ์ setter ๋ถ๋ถ
- [ ] PlaceImageRepository, PlaceBlogRepository๋ฑ ๋ฆฌํํ ๋ง ๋ฐ๋์ํ์
- [ ] BookmarkRepository์ @Modifying ์ฒดํฌ ํ์
- [ ] codeDeploy ์๋๋กค๋ฐฑ ์ถ๊ฐ ํ์, HealthCheck ์๋ต์ ๋ฐ๋ฅธ ๋กค๋ฐฑ ํ์
- [x] no-referrer, noopener ํ์ธ (DetailMain.js BlogImg ์ same-origin โ no-referrer ๋ณ๊ฒฝํ์