๊ฒฝํ
UMC 3๊ธฐ์ ๋ค์ด์ค๊ณ ๋์ ์ฒซ ๊ณต์์ ์ธ..? ๋ํ์ธ ์์ด๋์ดํค์ ์ฐธ๊ฐํ๋ค! ๋ค๋ฅธ ํ๊ต ์ฌ๋๋ค์ด๋ ๊ต๋ฅ๋ ํ๊ณ ์๊ธฐ๋ ํ ๊ธฐํ์ด๊ธฐ๋ ํ๊ณ ๋ํ ์ฐธ์ฌ๋ ์ฒ์์ด๋ผ ๊ธฐ๋ ๋ฐ ๊ฑฑ์ ๋ฐ์ผ๋ก 1๋ฐ 2์ผ ๋์ ๋ํ๋ฅผ ์งํํ๋ค,,, ๋์ค์ ํด์ปคํค์ ์ด๊ฑฐ์ ๋ช ๋ฐฐ๊ฐ ํ๋ค๊ฒ ์ง? ํ์ง๋ง ๊ธฐ๋๋๋ค ใ
ใ
์์ด๋์ด๋ฅผ ์๊ฐํด๊ฐ์ผ ํ ๊ฒ ๊ฐ์์ ์ ๋ ์ ๋ญ ํ ๊น... ํ๋ค๊ฐ ์ฌํ ๋ํ์ ๊ตฌํ๋ ์ดํ์ด ์์ผ๋ฉด ์ข์ง ์์๊น๋ผ๋ ์๊ฐ์ ๊ตฌ์์ ํ๋ค! ํผ์ ์ ์ฃผ๋ ์ฌํ์ ๊ฐ์ ๋,, ๋๋ฌด ์ฌ์ฌํด์ ๊ฐ์ด ์ฌํํ ์ฌ๋์ด ์์ผ๋ฉด ์ข๊ฒ ๋ค๊ณ ์๊ฐํ๋ ๊ฒฝํ์์ ํ์๋๋ค ๐ ๊ทผ๋ฐ ๋ง ์นดํ์์ ๊ตฌํ๋ ค๊ณ ํ๋ฉด ๋จ์๋ค์ ์ฌ์๋ค๋ง ๊ตฌํ๊ณ ๊ทธ๋ฐ ์ด์ํ... ์ฌ๋๋ค ๋๋ฌธ์ ๊บผ๋ ค์ ธ์ ํผ์ ์ฌํ์ ๋๋ง์ณค์๋๋ฐ ์นดํ์ฒ๋ผ ์ ์์ด ๋ณด์ฅ๋์ด์์ง ์์ ์ด์ํ ์ฌ๋๋ค์ด ๋ง์ฃผ์น ..
JAVA & OOP
HashMap์ด๋? ์ผ๋จ Map์ ํค(Key)์ ๊ฐ(value)์ ๋ฌถ์ด์ ํ๋์ ๋ฐ์ดํฐ(entry)๋ก ์ ์ฅํ๋ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค. ๊ฐ์ ๋งต์ ๋ ๊ฐ ์ด์์ ๊ฐ์ ํค๋ ์กด์ฌํด์๋ ์๋๋ฉฐ, ์ค๋ณต๋ ๊ฐ์ ์กด์ฌํด๋ ๊ด์ฐฎ๋ค. ๋ง์ฝ ์ค๋ณต๋ ํค ๊ฐ์ ๊ฐ์ ์ ์ฅํ๋ ค๊ณ ํ๋ค๋ฉด, ๋์ค์ ์ ์ฅํ ๊ฐ์ด ๊ทธ ํค์ ๊ฐ์ด ๋๋ค. ํด์ฑ์ ๋ํด์ ํ๋ฐ์ ์ ๋ฆฌํ ๊ฒ์ด๋ค. ๐ช HashMap โพ HashMap ๋ฉ์๋ โพHashMap ๊ฐ ์ถ๊ฐํ๊ณ ์ฝ๊ธฐ - entrySet() ์ด์ฉ HashMap map = new HashMap(); map.put("A", 100); map.put("B", 90); map.put("C", 80); Set set = map.entrySet(); Iterator it = set.iterator(); while (..
JAVA & OOP
Optional์ด๋? Optional์ ์ง๋ค๋ฆญ ํด๋์ค๋ก 'Tํ์
๊ฐ์ฒด'๋ฅผ ๊ฐ์ธ๋ wrapper ํด๋์ค์ด๋ค. ๋ฐ๋ผ์ Optionalํ์
์ ๊ฐ์ฒด์๋ ๋ชจ๋ ํ์
์ ์ฐธ์กฐ๋ณ์๋ฅผ ๋ด์ ์ ์๋ค. ์ต์ข
์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋ฅ ๋ฐํํ๋ ๊ฒ์ด ์๋๋ผ Optional๊ฐ์ฒด์ ๋ด์์ ๋ฐํํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฉด ๋ฐํ๋ ๊ฒฐ๊ณผ๊ฐ null์ธ์ง if๋ฌธ์ผ๋ก ์ฒดํฌํ์ง ์์๋ ์์ธ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ค. ๐ช Optional ๊ฐ์ฒด ์์ฑ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋๋ of() ๋๋ ofNullable()์ ์ฌ์ฉํ๋ค. ์ฐธ์กฐ๋ณ์๊ฐ null์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด of()๋ง๊ณ ofNullable()์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. of()๋ฅผ ์ฌ์ฉํด์ ๋งค๊ฐ๋ณ์ ๊ฐ์ด null์ด๋ฉด NullPointerException์ด ๋ฐ์ํ๋ค. String str = "hi" Optiona..
Spring
Bean Validation์ด๋? ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ JAVA์ ์ ํจ์ฑ ๊ฒ์ฌ ํ์ค ๊ธฐ์ ์ด๋ค. Bean Validation์ ํน์ ํ ๊ตฌํ์ฒด๊ฐ ์๋๋ผ Bean Validation 2.0์ด๋ผ๋ ๊ธฐ์ ํ์ค์ด๋ค. ๊ฒ์ฆ ์ ๋
ธํ
์ด์
๊ณผ ์ฌ๋ฌ ์ธํฐํ์ด์ค์ ๋ชจ์์ด๋ค. โญ ์ผ๋จ bean validation์ ์ฌ์ฉํ๊ธฐ ์ ์ ์์กด๊ด๊ณ๋ฅผ ์ถ๊ฐํด์ฃผ์ด์ผ ํ๋ค! Maven org.springframework.boot spring-boot-starter-validation Gradle implementation 'org.springframework.boot:spring-boot-starter-validation' ๐ช ์ด๋
ธํ
์ด์
์ ๋ฆฌ @NotBlank : ๋น ๊ฐ + ๊ณต๋ฐฑ๋ง ์๋ ๊ฒฝ์ฐ๋ฅผ ํ์ฉํ์ง ์์ @NotNull : null์ ํ์ฉํ์ง ..
ํธ๋ฌ๋ธ ์ํ
์ธํ
๋ฆฌ์ ์ด๋ฅผ ์ค๋๋ง์ ์ฌ์ฉํ๊ฑฐ๋ ํ๋ก์ ํธ๋ฅผ ๋ค์ด ๋ฐ์ผ๋ฉด ์ข
์ข
ํ๊ธ์ด ์์ฃผ ๊นจ์ ธ๋ณด์ฌ์ ๊ทธ๋ฅ ๊ธ์ ์ ์ด๋๋ ค๊ณ ํ๋ค... ๋งค๋ฒ ์ฐพ๊ธฐ๋ ๋๋ฌด ๊ท์ฐฎ๊ณ ๊ธ ์ฐ๋ฉด์ ๊น๋จน์ง๋ ๋ง์์ผ์ง...!! ์ด๋ฐ์์ผ๋ก ์์ฃผ ์ ์๊ฐ ์๋ ๋ฌธ์๋ก ๋ณด์ธ๋ค!! โญ ์ด๋ด ๊ฒฝ์ฐ์๋ ์ค์ -> ์๋ํฐ -> ํ์ผ ์ธ์ฝ๋ฉ์ ๋ค์ด๊ฐ์ ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด utf-8๋ก ๋ชจ๋ ์ค์ ํด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ผ ์ด๋ ๊ฒ ๋ฐ๋ก ๋ฐ๋๋ค!!
Network
HTTP๋ฅผ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ๊ฐ๋จํ ํ์ด๋ณด์๊ณ ์ฑ
์ผ๋ก ์ ํํ ๊ณต๋ถํ๊ณ ์ถ์ด์ HTTP ์๋ฒฝ ๊ฐ์ด๋ ๋
์๋ฅผ ์์ํ๋ค! ๊ณต๋ถํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ์ ์ฌ๋ฆฌ๋ฉด์ ๋ค์ํ๋ฒ ์ ๋ฆฌํ๋ ์๊ฐ์ ๊ฐ์ง๋ ค๊ณ ํ๋ค! HTTP๋? HTTP๋ (Hypertext transfer Protocol)์ ์ฝ์์ด๋ค. ์ ์ธ๊ณ์ ์น๋ธ๋ผ์ฐ์ , ์๋ฒ, ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ชจ๋ HTTP๋ฅผ ํตํด ์๋ก ๋ํํ๋ค. [ ์น ํด๋ผ์ด์ธํธ์ ์๋ฒ ] ์น ์๋ฒ๋ HTTP ํ๋กํ ์ฝ๋ก ์์ฌ์ํตํ๊ธฐ ๋๋ฌธ์ ๋ณดํต HTTP ์๋ฒ๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์์ HTTP์์ฒญ์ ๋ณด๋ด๊ณ ์๋ฒ๋ ์์ฒญ๋ ๋ฐ์ดํฐ๋ฅผ HTTP ์๋ต์ผ๋ก ๋๋ ค์ค๋ค. "http://www.oreilly.com/index.html"์ ์ด์ด๋ณด๊ณ ์ถ์ ๋, ์น๋ธ๋ผ์ฐ์ ๋ www.oreilly.com์ ์๋ฒ๋ก ๋ณด๋ด๊ณ ..
Spring
ํ์๋ฆฌํ๋ ํ
ํ๋ฆฟ ์์ง์ด๋ค. ์คํ๋ง์ ์ฌ์ฉํ๋ ํ๊ฒฝ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค! ์ฌ๊ธฐ์์ ํ๋ก์ ํธ๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ์ด๊ณณ์ ํตํด์ ํ๋ก์ ํธ๋ ์์ฑํ๋ ๊ฒฝ์ฐ์๋ Dependencies์ ํ์๋ฆฌํ๋ฅผ ์ ํํ๋ฉด๋๋ค. ํน์ ์ ํํ์ง ์์๋ค๋ฉด build.gradle์ ๋ค์ด๊ฐ์ dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' } dependencies์์ ์ฝ๋๋ฅผ ์ถ๊ฐ์์ผ ์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ๋ค!! ๊ทธ๋ผ ํ์๋ฆฌํ ๊ฐ๋
์ ์ ๋ฆฌํด๋ด์ผ๊ฒ ๋ค๐ ํ์๋ฆฌํ (Thymeleaf) ํ์๋ฆฌํ๋ ์๋ฒ ์ฌ์ด๋ ์๋ฐ ํ
ํ๋ฆฟ ์์ง์ด๋ค. โพ ์๋ฒ ์ฌ์ด๋ HTML ๋ ๋๋ง ๋ฐฑ์๋ ์๋ฒ์์ HTML์ ๋์ ์ผ๋ก ๋ ๋๋ง ํ๋ ์ฉ๋์ด๋ค. โพ ๋ด์ถ๋ด ..
๊ฒฝํ
์๊ฒฉ์ฆ์ ํ๋ ๋ฐ๊ณ ์ถ์ด์ SQLD์๊ฒฉ์ฆ ์ํ์ ๋ณด๊ธฐ๋ก ํ๋ค. ๋ ์ ๊ณต์์ด๊ธด ํ์ง๋ง ์์ง ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ฐ์๋ฅผ ๋ค์ ์ ์ด ์์ด์ ๋น์ ๊ณต์์ ๋น์ทํ ์์ค์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์ด ๊ธ์ด ๋น์ ๊ณต์ํํ
๋ ๋์์ด ๋ ๊ฒ ๊ฐ๋ค!! ์ฌ์ค ์ฝ๋ค๊ณ ๋ฏฟ๊ณ ์ผ์ฃผ์ผ ์ ์ ์ฑ
์ ํด๋ดค๋๋ฐ ์ง์ง ์ด๋ ค์ด ๊ฒ๋ค์ด ์๋๋ฃฉํด์ ๋ถํฉ๊ฒฉ์ด ๊ฑฑ์ ๋๋ ์ฌ๋์ 2์ฃผ ์ ๋ถํฐ ๊ณต๋ถํ๋ฉด ์ถฉ๋ถํ ํฉ๊ฒฉํ ์ ์์ ๊ฒ ๊ฐ๋ค! ์ผ๋จ ์ค๋ ๋ฐํ๋ ์ํ ๊ฒฐ๊ณผ๋ ํฉ๊ฒฉ์ด๋ค!! ํ ๋ฒ์ ํฉ๊ฒฉํ๋ค๋ ๋๋ฌด ๋คํ์ด๋ค....๐ญ 1์๊ฐ ๋ง์ ๊ผผ๊ผผํ ๋ค ํ๊ณ ๋์๋ค๊ณ ์๊ฐํ์ง๋ง ์์ธ๋ก ํ๋ฆฐ ๊ฒ ๋ง์์ ์ข ๋ถ๋๋ฝ๋ค ใ
ใ
[ ์ํ ์ ๋ณด ] ์ํ ์ ์ ๋ฐ ๊ฒฐ๊ณผ ํ์ธ์ ์๋ ๋ฐ์ดํฐ ์๊ฒฉ์ํ ํํ์ด์ง์์ ํ์ธํ๋ฉด ๋๋ค. ๋ฐ์ดํฐ์๊ฒฉ์ํ ์นด๋๊ฒฐ์ /๊ณ์ข์ด์ฒด ํ๋ถ ํ๋ถ ์์ฒญ์ ์ฆ์ํ..
JAVA & OOP
์ ๋ค๋ฆญ์ค(Generics)๋? ๋ค์ํ ํ์
์ ๊ฐ์ฒด๋ค์ ๋ค๋ฃจ๋ ๋ฉ์๋๋ ์ปฌ๋ ์
ํด๋์ค์ ์ปดํ์ผ ์ ํ์
์ฒดํฌ๋ฅผ ํด์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. ArrayList๊ฐ์ ์ปฌ๋ ์
ํด๋์ค๋ ๋ค์ํ ์ข
๋ฅ์ ๊ฐ์ฒด๋ฅผ ๋ด์ ์ ์๋๋ฐ ๋ณดํต ํ ์ข
๋ฅ์ ๊ฐ์ฒด๋ง ๋ด๋๋ค. ํ ์ข
๋ฅ์ ๊ฐ์ฒด๋ง ๋ด๊ธฐ๋ฅผ ์ํ ๋ ์ ๋ค๋ฆญ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ณํ์ ์ํด๋ ๋๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ๋จํ ์ฌ์ฉํ ์ ์๋ค. ๐ ์ ๋ค๋ฆญ์ค๋ฅผ ์ฌ์ฉํ์ง ์์ ๋ ArrayList list = new ArrayList(); list.add(10); list.add("10"); String word = (String)list.get(1); ์ ๋ค๋ฆญ์ค๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด Object๋ก ํ์
์ ์ง์ ํ๊ณ , ์์ ์๋ ๊ฐ์ฒด๋ฅผ ๊บผ๋ผ ๋๋ง๋ค ํ๋ณํ์ ํด์ค์ผํ๋ค. ๐ ์ ๋ค๋ฆญ์ค๋ฅผ ์ฌ์ฉํ ๋ ArrayList lis..
Spring
spring์ ๊ณต๋ถํ๋ค ๋ณด๋๊น Model์ด๋ @ModelAttribute๊ฐ ๋๋ฌด ๋ง์ด ๋์์ ํ๋ฒ ์ ๋ฆฌ ์ข ํ๊ณ ์ถ์ด์ ๊ธ ์ฐ๊ฒ ๋๋ค... Model์ด๋ @ModelAttribute๋ ๋ค๋ฅด์ง๋ง ์๊พธ ํท๊ฐ๋ ค์ใ
ใ
ใ
ใ
ใ
ใ
ใ
๐ Model ๐ Model์ ๊ฐ์ฒด์ด๋ค. view์ ์ด๋ฆ๊ณผ view๋ฅผ ๋ ๋๋งํ ๋ ํ์ํ๋ค. map์ผ๋ก ๋์ด์๊ธฐ ๋๋ฌธ์ controller์์ view์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ key, value๋ก ๋ฃ์ด์ค๋ค. Servlet์์ request.setAttribute()์ ๋น์ทํ ์ญํ ์ ํ๋ค. model๊ฐ์ฒด์ ๋ด์ ๋๋ model.addAttribute("key", value)๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ๐ @ModelAttribute ๐ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์์ ํ์ํ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ๊ทธ ๊ฐ์ฒด์ ๊ฐ์ ๋ฃ์ด์ฃผ์ด..