๊ฐ์ * ์์ธํ์ -์ฒซ ํ๋ฉด(๋์๋ณด๋) ์ง์ ์ ๋๋ฆผ ๐์์์ ์ด๋ ๋ค. '์ฐ๋ฆฌ ์ฌ์ดํธ๊ฐ ๋๋ฌด ๋๋ ค์.. ์ด๋ป๊ฒ ๊ฐ์ ์๋ ๊น์?' ๋ผ๋ ๋ง์ ๋ฃ๊ณ ์ฌ์ดํธ๋ฅผ ๋ค์ด๊ฐ๋ดค๋ค. ์ธ์์.. ์ฌ์ฉ์ ๊ฒฝํ์ด ๋ฏธ์ฒ ์์ด๊ธฐ๋ ์ ์ ๋์กฐ์ฐจ๋ ์ดํํ๊ณ ์ถ์ ์๋์๋ค. DevTools ๋ก ๋คํธ์ํฌ ์กฐํํด๋ณด๋ ์ฌ์ดํธ ์ง์ ์, Font์ ๋ํ CSS ํ์ผ์ ๋ถ๋ฌ์ค๋๋ฐ ๊ฝค๋ ํฐ ๋ชซ์ ํ๊ณ ์์๋ค. ์์ธ ์์ธ์ Font! ๊ตฌ๊ธ์์ fonts ๋ฅผ ๋ถ๋ฌ์ค๋ ๊ณณ์์ ํฐ Delay ๊ฐ ์์๋๋ฐ, ๋ถํ์ํ ๋ฆฌ์์ค ์์ฒญ๊ณผ ํจ๊ป ์์ฒญ ๋ง์ font ๋ฅผ ๋ถ๋ฌ์ค๊ณ ์์๋ค. ์๋ฒ์ ๊ฒฝ๋ํ๋ฅผ ์ํด์์ธ์ง(์ถ์ธก) Google fonts ๋ฅผ ์ง์ ํธ์ถํ๊ณ ์์๋๋ฐ ์ฌ์ง์ด ์ฌ์ฉํ์ง ์๋ font ๋ค๋ ์ ์ธํ์ฌ ํธ์ถ์ค์ด์๋ค.. (์ด๋ฐ.. cdn ์๋ฒ๊ฐ ๊ฐ๊น์ด์ง๋ ๋ชจ..
QUOTE THE DAY “ ์๋ฌ ์๋ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐ๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ๊ทธ๋ฐ๋ฐ ์ธ๋ฒ์งธ ๊ฒ๋ง ์๋ํ๋ค. ” - Alan J. Perlis (์จ๋ฐ J. ํ๋ฆฌ์ค) CQRS (Command Query Responsibility Segregation) * CQRS ๋? ๐์ง์ญํ์๋ฉด ๋ช ๋ น๊ณผ ์ฟผ๋ฆฌ์ ์ญํ ์ ๊ตฌ๋ถํ๋ค๋ ๊ฒ์ด๋ค. Create-Insert, Update, Delete ์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๊ณผ Select-Read ์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๊ฒ ๋ ๊ฐ์ง์ ์ฑ ์์ ๋ถ๋ฆฌํ๋ค๋ ๊ฒ์ด๋ค. * ์ ์ฌ์ฉํ ๊น? ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋(ํน์ ์ฌ์ฉํ๋) ์ ํต์ ์ธ CRUD ์ํคํ ์ณ ๊ธฐ๋ฐ์์ ์์คํ ์ ์ ์ง๋ณด์ํ๋ค ๋ณด๋ฉด, ์ถ๊ฐ์ ์ธ ์๊ตฌ์ฌํญ๊ณผ ์ ์ฑ ์ ๋ณํ๋ค๋ก ์์ฐ์ค๋ฝ๊ฒ ๋ก์ง์์ Domain Model ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ๊ฒ..
๊ฐ์ API ๋ฅผ ๊ฐ๋ฐํ๊ฑฐ๋, ํน์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ดํ๊ธฐ ์ํด ํ์ ๊ฐ์ ์ง์ ํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. (ํ๋ผ๋ฏธํฐ์ ๋ํ ์ ํจ์ฑ) ๋ฐ๋ก Rule ์ด ์๋ค๋ฉด ๋ฐฉ๋ฒ์ ๋ฌด๊ถ๋ฌด์งํ๋ค. ๋ชจ๋ ์์ฒญ์ if๋ฅผ ๊ฑธ์ด ๊ฒ์ฌํ๊ฑฐ๋.. ๊ณตํต์ผ๋ก ํ๋์ Class ๋ฅผ ๋ง๋ค์ด์ ๊ฒฝ์ ํ๊ฒ ํ๊ฑฐ๋.. ์ด ๊ธ์์๋ ๊น๋ํ ์ฝ๋๋ฅผ ์ํด ํ๋ก์ ํธ ๋ด์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ Exception ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์ ํ๋ค. ๊ทธ๋์ผ ๊น๋ํ๋ค. ๊ธฐ์กด Spring ์ด๋ Spring Boot์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์๋์ ๊ฐ์ ๋ด์ฉ์ผ๋ก ๋ฐ์ํ๋ค. ์ฐ๋ฆฌ๋ Spring Boot์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ฉ์์ง๋ก ์ ์ดํ ์์ ์ด๋ค. *์๋ ๊ธ์์๋ ์ฟ ํฐ์ ๋ฐํํ๊ธฐ ์ํ ๋ด์ฉ์ ์๋๋ฆฌ์ค๋ก @Valid ๋ฅผ ๋ฃ์ด ๊ตฌํํ์๋ค. 1. ์ฌ์ ์ค๋น ๐Maven ์ ๊ธฐ..
์ ๊ท ํํ์(๋ณด์กฐ์ ๋ชฉ * ์ธ์ ์ฐ์ด๋๊ฐ? ๐๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด, ์ ํจ์ฑ ๊ฒ์ฆ์ ์ํด ์ ๊ท ํํ์์ ์ฌ์ฉํ ๋๊ฐ ์๋ค. ์ซ์๋ง ์ ๋ ฅ, ์๋ฌธ์๋ง ์ ๋ ฅ, ์ฐ๋ฝ์ฒ์ '-' ๋ฅผ ํฌํจํ์ฌ ์ ๋ ฅ ๋ฑ๋ฑ.. ์ ํ์ ๋๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค. ์ด์ ์์ฃผ ์ฐ์ด๋ ํํ์์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ด ๊ณต์ ํ๊ณ ์ ํ๋ค. ์ ๊ท ํํ์ ์ค๋ช ^[0-9]*$ ์ซ์ ^[a-zA-Z]*$ ์๋ฌธ์ ^[๊ฐ-ํฃ]*$ ํ๊ธ \\w+@\\w+\\.\\w+(\\.\\w+)? E-Mail ^\d{2,3}-\d{3,4}-\d{4}$ ์ ํ๋ฒํธ ^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ ํด๋์ ํ๋ฒํธ \d{6} \- [1-4]\d{6} ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ^\d{3}-\d{2}$ ์ฐํธ๋ฒํธ ์์ฑ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค. #์ฐ๋ฝ์ฒ ์ํ @Pattern(reg..
@SuppressWarnings 1. ์ธ์ ์ฐ์ผ๊น? ๐IDE๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์ปดํ์ผ ๊ฒฝ๊ณ ๋ฅผ ๋ด๋ณด๋ด๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ฌ์ฉํ์ง ์๋ ์ฝ๋ ๋๋ ๋ถํ์ํ ์ฝ๋ ๋ฑ์ ๊ถ์ฅํ์ง ์๋ ์ฝ๋๋ฅผ ์์ฑํ ๊ฒฝ์ฐ์ ํด๋นํ๋ค. @SuppressWarnings๋ ์ด๋ฐ ๊ฒฝ๊ณ ๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉํ๋ค. ๐จ๐ป๐ปโจ all : ๋ชจ๋ ๊ฒฝ๊ณ cast : ์บ์คํธ ์ฐ์ฐ์ ๊ด๋ จ ๊ฒฝ๊ณ dep-ann : ์ฌ์ฉํ์ง ๋ง์์ผ ํ ์ฃผ์ ๊ด๋ จ ๊ฒฝ๊ณ deprecation : ์ฌ์ฉํ์ง ๋ง์์ผ ํ (๊ถ์ฅ๋์ง ์๋ ๊ธฐ๋ฅ) ๋ฉ์๋ ๊ด๋ จ ๊ฒฝ๊ณ fallthrough : switch ๋ฌธ์์ break ๋๋ฝ ๊ด๋ จ ๊ฒฝ๊ณ finally : ๋ฐํํ์ง ์๋ finally ๋ธ๋ก ๊ด๋ จ ๊ฒฝ๊ณ null : null ๋ถ์ ๊ด๋ จ ๊ฒฝ๊ณ rawtypes : ์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ ํด๋์ค ๋งค๊ฐ ๋ณ์๊ฐ ๋ถ..
๋ฆฌ๋ ์ค EUC-KR ์ค์ ํ๊ธฐ * ๊ณ์ ์ ์ง์ ์ค์ ๐.bash_profile #ํ์ฌ ์ ์ํ ๊ณ์ ์ ๊ฒฝ๋ก๋ก ์ด๋ cd ~ #.bash_profile ํ์ผ์ vi ํธ์ง๊ธฐ๋ก ์ด๊ธฐ vi .bash_profile #๋ด์ฉ์ ํ๋จ ๋ด์ฉ ์ถ๊ฐ export LANG=ko_KR.euckr #vi ํธ์ง๊ธฐ๋ฅผ ์ ์ฅ(:wq)ํ๋ฉฐ ์ข ๋ฃ #.bash_profile ์ ์ ์ฉ source .bash_profile * ํ์ฌ ์ธ์ ์์๋ง ์ ์ฉ export LANG=ko_KR.euckr
๐ ์๊ฐ ์์ง Git ์ ์ฌ์ฉํจ์ ์์ด Pull Request ์ ์ด์ํ ๋ถ๋ค์ ์ํ ๊ธ์ด๋ค. Pull Request๋ ๋ฌด์์ผ๊น? ๐ Pull Request ๋? Repository(ํ๋ก์ ํธ)์ Maker(์์ฑ์), Collaborators(ํ๋ ฅ์) ๊ฐ ์๋๊ธฐ์ Push ๊ถํ์ด ์์ง๋ง, ํด๋น ๊ตฌ์ฑ์๋ค์๊ฒ Contribute ๋ฅผ ํ๊ธฐ ์ํ ์์ฒญ์ด๋ค. ์กฐ๊ธ ๋ ํ์ด ๋งํ์๋ฉด, ๋ด๊ฐ ์์ ํด์ผํ๋(ํน์ ๋ง์์ ๋๋) Repository๊ฐ ์๋๋ฐ ์ฝ๋์ ๊ธฐ์ฌํ๊ณ ์ถ์ ๋(๋ ๋ฐ์ ๋ ์ฝ๋๊ฑฐ๋ Maker์ Collaborators์ ๋์๋๋ ์ฝ๋) ๋ด๊ฐ ์์ ํ ์ฝ๋๊ฐ ์์ผ๋ ๊ฒํ ํ, ์ฝ๋ ๋ณํฉ ์์ฒญ์ ํ๋ ๊ฒ์ด๋ค. ๐ ์ฌ๊ฑด์ ๋ฐ๋จ OO๋~~ A ํ๋ก์ ํธ ์ด์ #12451๋ฒ ์ฒ๋ฆฌ ๋ถํ๋๋ ค์~! ๐์ด๋ณด์๋ ์ด ๋ง์ ๋ฃ..
๋๋ฉ์ธ ์ค์ฌ ์ค๊ณ(Domain-Driven Design)์ด๋? ๋จ์ํ๊ฒ ์ ๋ฆฌํ์๋ฉด ๋๋ฉ์ธ(๋น์ฆ๋์ค ๋ชฉํ)์ ์ค์ฌ์ผ๋ก ์๊ฒ ์ชผ๊ฐ์ด ์ค๊ณ(๋๋ ๋ฌธ์ ํด๊ฒฐ)ํด ๋๊ฐ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ๋ก์ ํธ ์ ๋ชจ๋๊ฐ์ ์์กด์ฑ์ ์ต์ํํ๋ฉฐ ์์ง์ฑ์ ์ต๋ํ ํ๋ฉด์ ๋ง์ด๋ค... ์ฒ์ DDD ์ ๋ํ ๊ฐ๋ ์ ์ ํ ๋๋ ๋๋ฌด๋๋ ๋์ ๋ฒ์์ ๋ํดํด์ ๊ฐ๋ ์ ์ดํดํ๊ธฐ ์ด๋ ค์ ์๋ค. ๊ฐ์ฒด์งํฅ์ ๋ํ ๊ฐ๋ ์ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ์๊ธฐ ๋๋ฌธ์ผ๊น. ๊ฐ์ฒด ์งํฅ์ ๋ ๋ฆฝ์ ์ธ ๊ฐ์ฒด(๊ฐ์ฒด)๋ค์ด ์ํธ์์ฉ์ ํตํด ๋ฐ์์ํค๋ ์ด๋ฒคํธ๋ฅผ ๋ชฉ์ ์ผ๋ก ํ๋ค. ๋ฌผ๊ฑด์ ์ฌ๊ธฐ์ํด(Buy Domain) ๋งํธ์ ๋ค์ด๊ฐ A์จ๋ ๊ทธ๊ณณ์์ ์ผํ๊ณ ์๋ B์จ์๊ฒ ๊ณ์ฐ์ ํ๋ค(Sell Domain) ์ ์ฃผ์ธ C ๋ ์ด๋ฅผ ๊ด๋ฆฌ(Manage Domain)ํ๋ค. ๋ฒ์จ ์ฌ๊ธฐ์๋ง 3๊ฐ ์ด์์ ๋๋ฉ์ธ์ด..