2021-05-13(Thu)
์ฑ์ ๐ ๊ฐ์ฒด ์งํฅ๊ณผ ์ข ๋ ์นํด์ง ๋
Facts (์ฌ์ค, ๊ฐ๊ด)
Entity์ ๋ํด ์ฐพ์๋ณด๋ฉฐ ์ค์ ์ ๋ณด๋๋ค.
'ํ๋ฅ์์ธ'๋์ ์ํ์ด ์ฝ๋ฉ ํน๊ฐ์ ๋ค์๋ค.
์ด๋ฒคํธ๋ก ๋์จ SQL ๋ฌธ์ ๋ฅผ ํ๋ ค๋ค๊ฐ ์คํจํ๋ค.
์ง๊ธ๊น์ง ๋ฐฐ์ด ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์คํ๋ง 1์ฃผ์ฐจ ๊ณผ์ ๋ฅผ ๊ฐ์ฒด ์งํฅ์ ์ผ๋ก ๋ฆฌํฉํ ๋งํ์๋ค.
์คํ๋ง 2์ฃผ์ฐจ ๊ณผ์ ์ ํผ๋๋ฐฑ์ ๋ฐํ์ผ๋ก ์์ ์งํํ๋ค.
Feelings (๋๋, ์ฃผ๊ด)
DB์์์ Entity๋ ๋ฌด์์ด๋ค! ๋ผ๊ณ ์ ํ์๋ ๋ ํผ๋ฐ์ค๋ ์ฝ๊ฒ ์ฐพ์๋ค. ๋ฌธ์ ๋ OOP์์์ Entity๋ ๋ฌด์์ด๋ค! ๋ผ๊ณ ์ ํ์๋๊ฑธ ์ฐพ์ ๋ ๋ฐ์ํ๋ค. ๊ฐ ๋ ํผ๋ฐ์ค๊ฐ OOP์์์ Entity๋ฅผ ์๊ธฐํ๋๊ฑด์ง ์๋๋ฉด Spring์์ ์ฐ์ผ ๋์ Entity๋ฅผ ๋งํ๋ ๊ฑด์ง, ์๋๋ฉด DDD?์์ ์ฐ์ด๋ Entity๋ฅผ ์๊ธฐํ๋๊ฑด์ง, ์๋๋ฉด ์ด๊ฒ ๋ค ๊ฐ์๊ฑด์ง ํท๊ฐ๋ ธ๊ธฐ ๋๋ฌธ์ด๋ค. ์ฌ์ค ์์ง๋ ํท๊ฐ๋ฆฐ๋ค. ์ด ์ฃผ์ ๋ ์ฃผ๋ง์ ๋ ํ๋ด์ผ๊ฒ ๋ค. ๊ทธ๋๋ ๋คํ์ธ๊ฑด ๋ด๊ฐ ๋ชจ์๋์ ๋๋ฌ๋ด๋ฉด ๊ธฐ๊บผ์ด ์ง์ ํด์ฃผ๋ ์ ๋ฐฐ ๊ฐ๋ฐ์๋ฅผ ๋ง๋ฌ๋ค๋ ๊ฒ์ด๋ค. ์ ๊ธ ๊นจ์ ์ฝ๋์จ ์์ํ ๋ณด๋์ด ๋๋ ๋๋ชฉ์ธ ๊ฒ ๊ฐ๋ค.
์ํ์ด ์ฝ๋ฉ ํน๊ฐ์ ์ฝ๋ ๋ ๋ฒจ์์์ ์์ํ ํ, SQL injection ๋ฐฉ์ด๊น์ง๋ ์ฌ๋ฐ๊ฒ ๋ค์๋๋ฐ, ์ดํ์๋ ๋๋ฌด ๋น ๋ฅด๊ฒ ์งํ๋์ด์ ๋จธ๋ฆฌ์ ์ ๋๋ก ๋ฃ์ง ๋ชปํ ๊ฒ ๊ฐ๋ค. ์ด๋ฐ๊ฑด ์์ฃผ ์ ํด์ ๋ชธ์ ๋ฐฐ๊ฒ ํด์ผํ ๊ฒ ๊ฐ๋ค.
SQL ๋ฌธ์ ๋ฅผ ํ๋ ค๋ค๊ฐ ์คํจํ๋ค. ํ ์ ์ ๋๋ฆ ํ์ตํ๋๋ฐ๋ ์์ง๋ ์์ ์ต์์น๊ฐ ์๋ค. ๊ทธ๋ฆฌ๊ณ
sql mode only full group by
๋๋ถ์ GROUP BY ์์๋ถํฐ ์์๋ฌด์ฑ ์ผ๋ก ๋งํ๋ฒ๋ฆฐ๊ฑธ ๋ณด๋ฉด ๊ฐ์ผํ ๊ธธ์ด ๋ฉ๋ค.์ง๊ธ ์๊ฐ 3์.. ๋ฒผ๋ฅด๋ 1์ฃผ์ฐจ ๊ณผ์ ๋ฆฌํฉํ ๋ง์ ์ผ๋จ๋ฝํ๊ณ ๋๋ ํ๋ จ + ๋ฟ๋ฏํ๋ค. 1์ฃผ์ฐจ ๊ณผ์ ๋ ์๋ฌด๋๋ Java๋ก ๋ญ๊ฐ ๋ง๋ ๊ฑด ์ฒ์์ธ๋ฐ๋ค๊ฐ ์ต์ด์ ๊ฐ์ฒด์งํฅ์ ์์ํ์ง ์๊ณ ์งฐ๋ ์ฝ๋์ด๋ค๋ณด๋ ์ ์ทจ๊ฐ ์ฅ๋์ด ์๋์๋ค. ๋๋ฆ๋๋ก ์ค์์น๋ฌธ, enum์ ์จ๊ฐ๋ฉฐ ์ ๋ฆฌํ์์ง๋ง ๋๋ ๋ณต์กํ ๊ตฌ์กฐ์๋ค. ๊ฑฐ์ C + ๊ตฌ์กฐ์ฒด ์ ๋๋ก๋ง ์ง์ฌ์ง ์ฝ๋ ๋๋? ์ด์ ์ฌ ์์ถํ๊ฑด๋ฐ ๊น๋ํด์ง ๊ฒ ๊ฐ๋ค.
์์ง switch ๋ฌธ์ ๋จ์์์ด์ ์ข ๋ ๊ฐ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ ๊ฒ๋ ๊ฐ๊ณ , ๋์์ฑ์ด ๊ณ ๋ ค๊ฐ ์๋์ด์ ์ญ์ ๊ฐ์ ํ ์ ์์ ๊ฒ ๊ฐ๋ค. ์ด ๋ถ๋ถ๋ ํ์ตํด์ ์ข ๋ ๋ฆฌํฉํ ๋งํด๋ด์ผ์ง.
ํ .. ์ฝ๋ ์์ฒด์ ํผ๋๋ฐฑ์ด ๋ง์ง ์์์ ์์ฝ๋ค. ๋ญ๊ฐ ์ฐํ ์ฝ ์ ๋ค์ฒ๋ผ ๊ฐ์ด์ฐฌ ํผ๋๋ฐฑ์ ์ฃผ๊ณ ๋ฐ๊ณ ์ถ์๋๋ฐ ์์ง ๋ด๊ฐ ๋๋ ์์์ ํผ๋๋ฐฑํ ๊ฑฐ๋ฆฌ๊ฐ ์๋ ๊ฒ์ด๊ฒ ์ง? ํ ์ฃผ๋ ๋ง์ด ๋๊ฒ ์ซ์ซ ํ์ตํด๋ณด์. ๊ทธ๋ฆฌ๊ณ PR์ ์ ์ ์ง๋ฌธ์ ๋ต์ ๋ฐ์ง ๋ชป ํ๋๋ฐ, ๋ด์ผ์ ์ด ๋ถ๋ถ์ ์ฌ์ญค๋ด์ผ๊ฒ ๋ค.
Findings (๋ฐฐ์ด ์ )
spring-boot-devtools
์ ์ถ๊ฐํ์์๋ ์์ค์ฝ๋ ๋ณ๊ฒฝ์ restart๋์ง ์์๋ค. ์ด ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ฌ ํด๊ฒฐํ์๋ค!intelij์์ ์ข์ฐ split ์ด๋์ alt + tap์ผ๋ก ํ๋ค.
header๋ฅผ ๋ณด๋ธ exchange์ ๋ header๋ฅผ ๋ณด๋ด๋ฉด ์์ธ๊ฐ ๋์ ธ์ง๋ค.
๊ฐ์ฒด ์งํฅ์ ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ฐ๋ ค๋ฉด ๋คํ์ฑ์ ์ด์ฉํด์ผํ๊ณ ์ธํฐํ์ด์ค๊ฐ ๊ต์ฅํ ์ ์ฉํ๋ค.
Affimation (์๊ธฐ ์ ์ธ)
์ค๋๋ ์๊ธฐ ์ ์ ๋ฟ๋ฏํ ํ๋ฃจ๋ฅผ ๋ง๋ ๋ค.
์ฝ๋ฉํ ์คํธ ํ์ต์๊ฐ์ ํ๋ณดํ๊ณ ์ค์ ๋ก ํ์ตํ๋ค.
Last updated