
๐ฐ SNS ๊ธฐ๋ฐ ๋ด์คํผ๋ ํ๋ก์ ํธ
ํ์ด์ค๋ถ, ์ธ์คํ๊ทธ๋จ๊ณผ ๊ฐ์ ํํ์ SNS ํ๋ซํผ
| ํ์ฅ ๋ฐ์ค์ฐ @jypLord |
ํ์ ๊น์ฑ์ง @kmchaejin |
ํ์ ์ค์์ง @YejinY00n |
ํ์ ์๊ฒฝ์ @rabitis99 |
ํ์ ์์ง์ค @jiyun-im-dev |
ํ๊ธํ๊ธmain : โ
์ต์ข
๋ฐฐํฌ ๋ธ๋์นdevelop : ๐ง ๊ฐ๋ฐ ํตํฉ ๋ธ๋์นfeat/#issue-number : ๐งฉ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ฉ ๋ธ๋์นfeat/#12)๐ Git issue ์ฐ๋
์ปค๋ฐ ๋ฉ์์ง ๋๋ PR ์ค๋ช ์ ์ด์ ๋ฒํธ ํฌํจํ๊ธฐ (#12๋ฑ)
โโ๐ newsfeed
โโ domain
โโ๐ฌcomment
โ โโcontroller, dto, entity, repository, service
โโ๐งcommon
โ โโannotation, config, dto, entity, enums, filter, util
โโโ ๏ธexception
โโโ ๏ธexceptionHandler
โโ๐คfriend
โ โโcontroller, dto, entity, repository, service
โโโค๏ธlike
โ โโcontroller, entity, repository, service
โโโ๏ธpost
โ โโcontroller, converter, dto, entity, initializer, repository, service
โโ๐คuser
โโcontroller, entity, repository, service
โโdto
โโrequest
โโresponse

๐ ํธ๋ฌ๋ธ ์ํ
๐ ์ํฉ
develop ๋ธ๋์น๊ฐ ์๋ main ๋ธ๋์น์ PR์ด merge ๋จ.
๐ง ํด๊ฒฐ
1๏ธโฃ ๋กค๋ฐฑ
๐ ์ํฉ
๐ง ํด๊ฒฐ
โ
JPQL ๋ก ์ง์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ํจ์จ์
๐ก JPQL ์ด๋?
์ํฐํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ฒ ํ๋ ๋๊ตฌ
๐ ๏ธ ๊ตฌํ ๋ฐฉ์
@Query ์ด๋
ธํ
์ด์
์ ํตํด ์ง์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑ@Query(nativeQuery=true)๋ก ์ค์ ๐ ์ํฉ
๊ฒ์๋ฌผ์ ๋ฌ๋ฆฐ ๋๊ธ(Comment)์ ๋ํด ๊ถํ ๊ฒ์ฌ๋ฅผ ํ๋ ๋ก์ง
if (!userId.equals(comment.getUser().getId())&&!userId.equals(comment.getPost().getUser().getId())) {
throw new CustomException(ErrorCode.UNAUTHORIZED_USER_ID);
}
์ด๋ comment.getUser()๋ comment.getPost().getUser()๊ฐ Lazy Loading ์ํ๋ผ๋ฉด ๊ฐ๊ฐ ํธ์ถ๋ ๋ ๋ง๋ค ์ถ๊ฐ ์ฟผ๋ฆฌ๊ฐ ์คํ๋จ
์ฆ ํ๋์ ๋๊ธ์ ๋ถ๋ฌ์ค๋๋ผ๋
comment.getUser() โ ์ถ๊ฐ ์ฟผ๋ฆฌ 1ํ
comment.getPost().getUser() โ ์ถ๊ฐ ์ฟผ๋ฆฌ 1ํ
โก๏ธ ์ด 3๊ฐ์ ์ฟผ๋ฆฌ ๋ฐ์ (Comment, User, PostUser)
๐ง ํด๊ฒฐ
โ
fetch join์ ํตํด ๊ด๋ จ ์ํฐํฐ๋ค์ ํ ๋ฒ์ ์กฐํํ๋๋ก Repository ์์
๐ ๊ฒฐ๊ณผ
๐ ์ํฉ
Enum Category๋ฅผ ๋ฃฉ์
ํ
์ด๋ธ๋ก ๋ถ๋ฆฌํ์ฌ DB์์ ๊ด๋ฆฌ.โ ๋ฌธ์
๐ง ํด๊ฒฐ
โ
์ดํ๋ฆฌ์ผ์ด์
์คํ ์์ ์ @PostConstruct๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ์ด๊ธฐํ.
๐ ๏ธ ๊ตฌํ ๋ฐฉ์
@Component + @PostConstruct ์กฐํฉ์ผ๋ก CategoryInitializer ์์ฑโ ๊ฒฐ๋ก