๐ป ๊ณต๋ถ ๊ธฐ๋ก/๐ Spring
-
ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ SqlSessionFactoryBean / SqlSessionTemplate SqlSessionFactory: SqlSession์ ์์ฑํด์ ์ ๊ณต SqlSession: SQL๋ช ๋ น์ ์ํํ๋๋ฐ ํ์ํ ๋ฉ์๋ ์ ๊ณต SqlSessionFactoryBean: SqlSessionFactory๋ฅผ Spring์์ ์ฌ์ฉํ๊ธฐ ์ํ ๋น SqlSessionTemplate: SQL๋ช ๋ น์ ์ํํ๋๋ฐ ํ์ํ ๋ฉ์๋ ์ ๊ณต thread-safe Thread Safe๋? ๋๋ณด๊ธฐ ์ค๋ ๋ ์์ (Thread Safety)์ ๋ฉํฐ ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ์์ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ค ํจ์๋ ๋ณ์, ํน์ ๊ฐ..
Spring/Mybatis | Mybatis SqlSessionํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ SqlSessionFactoryBean / SqlSessionTemplate SqlSessionFactory: SqlSession์ ์์ฑํด์ ์ ๊ณต SqlSession: SQL๋ช ๋ น์ ์ํํ๋๋ฐ ํ์ํ ๋ฉ์๋ ์ ๊ณต SqlSessionFactoryBean: SqlSessionFactory๋ฅผ Spring์์ ์ฌ์ฉํ๊ธฐ ์ํ ๋น SqlSessionTemplate: SQL๋ช ๋ น์ ์ํํ๋๋ฐ ํ์ํ ๋ฉ์๋ ์ ๊ณต thread-safe Thread Safe๋? ๋๋ณด๊ธฐ ์ค๋ ๋ ์์ (Thread Safety)์ ๋ฉํฐ ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ์์ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ค ํจ์๋ ๋ณ์, ํน์ ๊ฐ..
2023.06.15 -
ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ ์์กด์ฑ ์ฃผ์ DI(Dependency Injection) Spring ํ๋ ์์ํฌ๋ 3๊ฐ์ง ํต์ฌ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ ์ง์ํ๊ณ ์๋ค. ๊ทธ ์ค ํ๋๊ฐ ์์กด์ฑ ์ฃผ์ (DI)์ด๋ค. ์์กด์ฑ ์ฃผ์ (DI)์ด๋ ์ธ๋ถ์์ ๋ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ฒฐ์ ํด์ฃผ๋ ๋์์ธ ํจํด์ผ๋ก, ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ด์ ๋ฌ์ ํด๋์ค ๋ ๋ฒจ์์๋ ์์กด๊ด๊ณ๊ฐ ๊ณ ์ ๋์ง ์๋๋ก ํ๊ณ ๋ฐํ์ ์์ ๊ด๊ณ๋ฅผ ๋์ ์ผ๋ก ์ฃผ์ ํ์ฌ ์ ์ฐ์ฑ์ ํ๋ณดํ๊ณ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ ์ ์๊ฒ ํด์ค๋ค. ํ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋ ์์กด์ฑ์ด ์๋ค๊ณ ํจ. ๋ฐํ์ ์ ์์กด ๊ด๊ณ๋ฅผ ๋งบ๋ ๋์์ ์ธ๋ถ์์ ๊ฒฐ์ ํ๊ณ ์ฃผ์ ํด ์ค๋ค. ์คํ๋ง ํ๋ ์์ํฌ๋ D..
Spring | DI(Dependency Injection)ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ ์์กด์ฑ ์ฃผ์ DI(Dependency Injection) Spring ํ๋ ์์ํฌ๋ 3๊ฐ์ง ํต์ฌ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ ์ง์ํ๊ณ ์๋ค. ๊ทธ ์ค ํ๋๊ฐ ์์กด์ฑ ์ฃผ์ (DI)์ด๋ค. ์์กด์ฑ ์ฃผ์ (DI)์ด๋ ์ธ๋ถ์์ ๋ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ฒฐ์ ํด์ฃผ๋ ๋์์ธ ํจํด์ผ๋ก, ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ด์ ๋ฌ์ ํด๋์ค ๋ ๋ฒจ์์๋ ์์กด๊ด๊ณ๊ฐ ๊ณ ์ ๋์ง ์๋๋ก ํ๊ณ ๋ฐํ์ ์์ ๊ด๊ณ๋ฅผ ๋์ ์ผ๋ก ์ฃผ์ ํ์ฌ ์ ์ฐ์ฑ์ ํ๋ณดํ๊ณ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ ์ ์๊ฒ ํด์ค๋ค. ํ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋ ์์กด์ฑ์ด ์๋ค๊ณ ํจ. ๋ฐํ์ ์ ์์กด ๊ด๊ณ๋ฅผ ๋งบ๋ ๋์์ ์ธ๋ถ์์ ๊ฒฐ์ ํ๊ณ ์ฃผ์ ํด ์ค๋ค. ์คํ๋ง ํ๋ ์์ํฌ๋ D..
2023.06.14 -
ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ ๋ฆฌํ๋ ์ (Reflection) ๋ฆฌํ๋ ์ ์ ์์ฑ์, ๋ฉ์๋, ํ๋ ๋ฑ ํด๋์ค์ ๋ํ ์ ๋ณด๋ฅผ ์์ฃผ ์์ธํ ์๋ ค์ฃผ๋ ์๋ฐ API ์ด๋ค. ๋ํ์ ์ธ ์์๋ก ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ์์ ์ฌ์ฉ๋๋ ์ด๋ ธํ ์ด์ ์ด ๋ฆฌํ๋ ์ ์ ํตํด ํ์ธํ๋ ๋ฐฉ๋ฒ ๋ฑ์ด ์๋ค. ๋ฆฌํ๋ ์ ์ ์ฌ์ฉํ๋ฉด ์ ๊ทผ ์ ์ด์์ ๋ฌด๊ดํ๊ฒ ํด๋์ค์ ํ๋๋ ๋ฉ์๋๋ ๊ฐ์ ธ์์ ํธ์ถํ ์ ์๋ค. ๐ ์ด๋ ธํ ์ด์ (Annotation) ๊ฐ์ ธ์ค๊ธฐ ๋ํ์ ์ธ ์์ ์ค ํ๋๋ฅผ ์ค์ตํด๋ดค๋ค. ๐ ์์ ์ด๋ ธํ ์ด์ ์์ฑ ์ด๋ ธํ ์ด์ ์ ํด๋ ๊ตฌ์ฑ ์์ ์ด๋ ธํ ์ด์ ์ ์ฝ๋ package com.example.mvcpractice.ann..
Spring | Reflection์ ์ฌ์ฉํ์ฌ Annotation ๊ฐ์ ธ์ค๊ธฐํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ ๋ฆฌํ๋ ์ (Reflection) ๋ฆฌํ๋ ์ ์ ์์ฑ์, ๋ฉ์๋, ํ๋ ๋ฑ ํด๋์ค์ ๋ํ ์ ๋ณด๋ฅผ ์์ฃผ ์์ธํ ์๋ ค์ฃผ๋ ์๋ฐ API ์ด๋ค. ๋ํ์ ์ธ ์์๋ก ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ์์ ์ฌ์ฉ๋๋ ์ด๋ ธํ ์ด์ ์ด ๋ฆฌํ๋ ์ ์ ํตํด ํ์ธํ๋ ๋ฐฉ๋ฒ ๋ฑ์ด ์๋ค. ๋ฆฌํ๋ ์ ์ ์ฌ์ฉํ๋ฉด ์ ๊ทผ ์ ์ด์์ ๋ฌด๊ดํ๊ฒ ํด๋์ค์ ํ๋๋ ๋ฉ์๋๋ ๊ฐ์ ธ์์ ํธ์ถํ ์ ์๋ค. ๐ ์ด๋ ธํ ์ด์ (Annotation) ๊ฐ์ ธ์ค๊ธฐ ๋ํ์ ์ธ ์์ ์ค ํ๋๋ฅผ ์ค์ตํด๋ดค๋ค. ๐ ์์ ์ด๋ ธํ ์ด์ ์์ฑ ์ด๋ ธํ ์ด์ ์ ํด๋ ๊ตฌ์ฑ ์์ ์ด๋ ธํ ์ด์ ์ ์ฝ๋ package com.example.mvcpractice.ann..
2023.06.13 -
ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ STOMP STOMP(Streaming Text Oriented Messaging Protocol)์ ๋ฉ์ธ์ง ๊ธฐ๋ฐ ํต์ ํ๋กํ ์ฝ ์ค ํ๋๋ก, ํ ์คํธ ๊ธฐ๋ฐ์ ๋ฉ์ธ์ง๋ฅผ ์ ์กํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์ด ํ๋กํ ์ฝ์ ๋๋ถ๋ถ์ ๋ฉ์ธ์ง ๋ธ๋ก์ปค์์ ์ง์๋๋ฉฐ, ๋ค๋ฅธ ๋ฉ์ธ์ง ๊ธฐ๋ฐ ํ๋กํ ์ฝ์ ๋นํด ๋ ๊ฐ๋ณ๊ณ ๊ฐ๋จํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. STOMP๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ์ ๊ณตํ๋ฉฐ, ํ๋์ ์ฐ๊ฒฐ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ์ ์๋ค. ๋ํ, ๋ฉ์ธ์ง์ ๊ตฌ๋ (subscription)๊ณผ ๋ฐํ(publish)์ ์ง์ํ๋ฉฐ, ๋ฉ์ธ์ง์ ํ์(queueing)๊ณผ ํธ๋์ญ์ (tran..
Spring | STOMPํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ STOMP STOMP(Streaming Text Oriented Messaging Protocol)์ ๋ฉ์ธ์ง ๊ธฐ๋ฐ ํต์ ํ๋กํ ์ฝ ์ค ํ๋๋ก, ํ ์คํธ ๊ธฐ๋ฐ์ ๋ฉ์ธ์ง๋ฅผ ์ ์กํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์ด ํ๋กํ ์ฝ์ ๋๋ถ๋ถ์ ๋ฉ์ธ์ง ๋ธ๋ก์ปค์์ ์ง์๋๋ฉฐ, ๋ค๋ฅธ ๋ฉ์ธ์ง ๊ธฐ๋ฐ ํ๋กํ ์ฝ์ ๋นํด ๋ ๊ฐ๋ณ๊ณ ๊ฐ๋จํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. STOMP๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ์ ๊ณตํ๋ฉฐ, ํ๋์ ์ฐ๊ฒฐ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ์ ์๋ค. ๋ํ, ๋ฉ์ธ์ง์ ๊ตฌ๋ (subscription)๊ณผ ๋ฐํ(publish)์ ์ง์ํ๋ฉฐ, ๋ฉ์ธ์ง์ ํ์(queueing)๊ณผ ํธ๋์ญ์ (tran..
2023.04.17 -
ํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ Model๊ณผ ModelAndView Model ํ๋ผ๋ฏธํฐ ๋ฐฉ์์ผ๋ก ๋ฉ์๋์ (Model model) ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ด์ฃผ๊ณ String ํํ๋ก ๋ฆฌํดํ๋ค. Model์ ๊ฐ์ ๋ฃ์ ๋ addAttribute()๋ฅผ ์ฌ์ฉํ๋ค. Model ์์ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.ui.Model; @Controller RequestMapping("/mode..
Spring | Model๊ณผ ModelAndViewํด๋น ๋ด์ฉ์ ๊ณต๋ถ์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์๋ ๋ด์ฉ์ ๋ชจ๋ ๊ตฌ๊ธ ๊ฒ์์ผ๋ก ๊ณต๋ถ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์ต๋๋ค. ์ด์ฌํ ๋ฐฐ์ฐ๋ ์ค์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๐ Model๊ณผ ModelAndView Model ํ๋ผ๋ฏธํฐ ๋ฐฉ์์ผ๋ก ๋ฉ์๋์ (Model model) ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ด์ฃผ๊ณ String ํํ๋ก ๋ฆฌํดํ๋ค. Model์ ๊ฐ์ ๋ฃ์ ๋ addAttribute()๋ฅผ ์ฌ์ฉํ๋ค. Model ์์ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.ui.Model; @Controller RequestMapping("/mode..
2023.04.07 -
Interceptor(์ธํฐ์ ํฐ) ํน์ URI ๋ก ์์ฒญ์ Controller ๋ก ๊ฐ๋ ์์ฒญ์ ๊ฐ๋ก์ฑ๋ ์ญํ . ์ธํฐ์ ํฐ๋ฅผ ์ง์ํ๋ ์ธํฐํ์ด์ค์ ์ถ์ ํด๋์ค - HandlerInterceptor - HandlerInterceptorAdapter HandlerInterceptorAdapter ์ 3๊ฐ์ง ๋ฉ์๋ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) : Controller ๋ก ์์ฒญ์ด ๋ค์ด๊ฐ๊ธฐ ์ ์ํ postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mo..
Spring | Interceptor(์ธํฐ์ ํฐ) / ๋ก๊ทธ์ธ · ์์ ์ฒ๋ฆฌInterceptor(์ธํฐ์ ํฐ) ํน์ URI ๋ก ์์ฒญ์ Controller ๋ก ๊ฐ๋ ์์ฒญ์ ๊ฐ๋ก์ฑ๋ ์ญํ . ์ธํฐ์ ํฐ๋ฅผ ์ง์ํ๋ ์ธํฐํ์ด์ค์ ์ถ์ ํด๋์ค - HandlerInterceptor - HandlerInterceptorAdapter HandlerInterceptorAdapter ์ 3๊ฐ์ง ๋ฉ์๋ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) : Controller ๋ก ์์ฒญ์ด ๋ค์ด๊ฐ๊ธฐ ์ ์ํ postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mo..
2023.02.28 -
File Upload ๋ค์ค ํ์ผ์ ์ ํํ์ฌ ์ ๋ก๋ํ๋ ๊ธฐ๋ฅ ๊ตฌํ ์ค์ ๊ธฐ๋ฅ - ์ ๋ก๋ - ์ ๋ก๋ ๊ฒฝ๋ก - ์ ๋ก๋ ์ ์ฅ ์ธ๋ถ ๊ธฐ๋ฅ - ์ ๋ก๋ ์งํ๋ฐ - ์ ๋ก๋ ํ์ผ ํ์ ์ ํ(๊ฒ์ฆ) - ์ ๋ก๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์ ๋ก๋๋ ํ์ผ ๋ค์ด๋ก๋ ๊ธฐ์ ์คํ Java, Spring, JavaScript, JQuery, Ajax, HTML Apache Tomcat v9.0 ์ ๋ก๋ | ํ๋ฉด ํ๋ฉด์์ ์ ๋ก๋ํ ํ์ผ์ ๊ตฌ์ฑํ๊ณ ์๋ฒ์์ ๋ฐ์ ํ์ผ ํ์์ ์ค์ ํด ์ง์ ๋ ๊ฒฝ๋ก๋ก ์ ์ฅ multiple: ํ์ผ ์ ํ์ ๋ค์ค ํ์ผ์ ์ ํํ ์ ์๋ค. accept: ํ์ผ ํ์ฅ์๋ฅผ ์ง์ ํด์ ์ํ๋ ํ์ฅ์๋ง ๋ณด์ด๊ฒ ํ๋ค. FormData: Ajax๋ก ํผ ์ ์ก์ ๊ฐ๋ฅํ๊ฒ ํ๊ฒ ํจ - JSON ๊ตฌ์กฐ๋ก "KEY-VALUE" (ํค์ ๊ฐ) ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ..
Spring | File UploadFile Upload ๋ค์ค ํ์ผ์ ์ ํํ์ฌ ์ ๋ก๋ํ๋ ๊ธฐ๋ฅ ๊ตฌํ ์ค์ ๊ธฐ๋ฅ - ์ ๋ก๋ - ์ ๋ก๋ ๊ฒฝ๋ก - ์ ๋ก๋ ์ ์ฅ ์ธ๋ถ ๊ธฐ๋ฅ - ์ ๋ก๋ ์งํ๋ฐ - ์ ๋ก๋ ํ์ผ ํ์ ์ ํ(๊ฒ์ฆ) - ์ ๋ก๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์ ๋ก๋๋ ํ์ผ ๋ค์ด๋ก๋ ๊ธฐ์ ์คํ Java, Spring, JavaScript, JQuery, Ajax, HTML Apache Tomcat v9.0 ์ ๋ก๋ | ํ๋ฉด ํ๋ฉด์์ ์ ๋ก๋ํ ํ์ผ์ ๊ตฌ์ฑํ๊ณ ์๋ฒ์์ ๋ฐ์ ํ์ผ ํ์์ ์ค์ ํด ์ง์ ๋ ๊ฒฝ๋ก๋ก ์ ์ฅ multiple: ํ์ผ ์ ํ์ ๋ค์ค ํ์ผ์ ์ ํํ ์ ์๋ค. accept: ํ์ผ ํ์ฅ์๋ฅผ ์ง์ ํด์ ์ํ๋ ํ์ฅ์๋ง ๋ณด์ด๊ฒ ํ๋ค. FormData: Ajax๋ก ํผ ์ ์ก์ ๊ฐ๋ฅํ๊ฒ ํ๊ฒ ํจ - JSON ๊ตฌ์กฐ๋ก "KEY-VALUE" (ํค์ ๊ฐ) ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ..
2023.02.06 -
Exception ์ ๋๋ณด๊ธฐ // ExceptionController.java @Controller public class ExceptionController { @ExceptionHandler(Exception.class) // ex public String catcher(Exception ex, Model m) { System.out.println("catcher() in ExceptionController"); System.out.println("m="+m); m.addAttribute("ex", ex); return "error"; } @ExceptionHandler({NullPointerException.class, FileNotFoundException.class}) // ex2 public ..
Spring | ExceptionException ์ ๋๋ณด๊ธฐ // ExceptionController.java @Controller public class ExceptionController { @ExceptionHandler(Exception.class) // ex public String catcher(Exception ex, Model m) { System.out.println("catcher() in ExceptionController"); System.out.println("m="+m); m.addAttribute("ex", ex); return "error"; } @ExceptionHandler({NullPointerException.class, FileNotFoundException.class}) // ex2 public ..
2023.01.19