
JSP(Java Server Pages) ๋? JSP๋ HTML ์ฝ๋์ Java ์ฝ๋๋ฅผ ๋ฃ์ด ๋์ ์ธ ์นํ์ด์ง๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋งํ๋ค. ํ๋ถ์์ ์ฌ๋ฌ๋ฒ ๋ฐฐ์ ์ง๋ง ์ ๋๋ก ์ค์ตํด๋ณด์ง ์์๊ด๊ณ๋ก ๊ฐ๋ ๋ง ์๊ณ ์์๋๋ฐ ์ ๋๋ก ์๊ณ ๊ฐ์. JSP๊ฐ ์คํ๋๋ฉด์ ์๋ฐ์ Servlet์ผ๋ก ๋ณํ์ด ๋๊ณ WAS์์ ๋์๋๋ฉด์ ํ์ํ ๊ธฐ๋ฅ์ ์ํํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ์์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ์นํ์ด์ง์ ํจ๊ป ํด๋ผ์ด์ธํธ๋ก ์๋ตํ๋ค. ์ฆ Servlet์ผ๋ก ์นํ์ด์ง๋ฅผ ๊ตฌํํ๊ฒ๋๋ฉด Java์ฝ๋ ๋ด๋ถ์ Html ์ฝ๋๊ฐ ์์ด๊ฒ ๋๊ณ , Html์ Java๋ด๋ถ์์ ๊ตฌํํ๊ฒ ๋๋ฉด ๊ต์ฅํ ๊ท์ฐฎ๊ณ ์ด๋ ค์์ง๋ค. (2023.07.17 - [TIL๐] - TIL - Servlet ์ฐธ๊ณ ) JSP ๋์๋ฐฉ์ [JSP์ ํด๋นํ๋ ์๋ธ๋ฆฟ์ด ์์๊ฒฝ์ฐ] 1. JSP ํ์ด์ง๋ก..

OAuth2๋? ํน์ ์ ํ๋ฆฌ์ผ์ด์ (Client)์์ ์ฌ์ฉ์์ ์ธ์ฆ์ ์ง์ ์ฒ๋ฆฌํ์ง ์๊ณ , ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๋ณด์ ํ๊ณ ์๋ ์ ๋ขฐํ ๋งํ ์จ๋ํํฐ ์ ํ๋ฆฌ์ผ์ด์ (Github, Kakao, Google, Facebook ๋ฑ)์์ ์ฌ์ฉ์์ ์ธ์ฆ์ ๋์ ์ฒ๋ฆฌํ๊ณ ๋ฆฌ์์ค์ ๋ํ ์๊ฒฉ์ฆ๋ช ์ฉ ํ ํฐ์ ๋ฐ๊ธํ์ฌ, ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ํ ํฐ์ ์ด์ฉํ์ฌ ์จ๋ํํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋น์ค๋ฅผ ์ฌ์ฉํ๊ฒ ํด์ฃผ๋ ๋ฐฉ์์ด๋ค. ๋๋ ์ถ๊ฐ์ ์ธ ์ธ์ฆ์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉํ๋ค. ์ผ๋ฐ์ ์ธ ์์ด๋/ํจ์ค์๋ ๋ก๊ทธ์ธ์ ์ถ๊ฐ์ ์ผ๋ก OAuth2๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฆ์ ์งํํ๋ ๊ฒ์ด๋ค. ํน์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์์ ํฌ๋ฆฌ๋ด์ ์ ๋จ๊ธฐ๊ณ ์ถ์ง ์์๊ฒฝ์ฐ OAuth2 ๋ก๊ทธ์ธ ์ธ์ฆ๋ฐฉ๋ฒ์ผ๋ก ๋ก๊ทธ์ธ์ ๊ตฌํํ๋ฉด๋๋ค. 1. Resource Owner๊ฐ ํด๋ผ์ด์ธ..

Cookie ์ฟ ํค๋ ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ค์ ํ๋์ด๋ค. HTTP์ ๊ฒฝ์ฐ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ์ฅํ ์์๋ค. ์ฆ ์น์ฌ์ดํธ๋ ์ฌ์ฉ์๋ฅผ ๊ตฌ๋ณํ ์ ์๊ณ , ์ฌ์ฉ์๋ ๋งค๋ฒ ์ธ์ฆ์ ์ฐจ๋ฅผ ์งํํด์ผํ๋ค.(HTTPํ๋กํ ์ฝ์ Connectionless, Statelessํจ ๋๋ฌธ์) ํ์ง๋ง ์ฟ ํค๋ฅผ ํตํด ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๊ธฐ์ตํ ์์๊ฒ ํ๊ณ ์ด๊ฒ์ด ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ด๋ค. Cookie์ ์ต์ 1. Domain ๋๋ฉ์ธ์ www.naver.com๊ณผ ๊ณผ ๊ฐ์ด ์๋ฒ์ ์ ์ํ ์์๋ ์ฃผ์๋ฅผ ๋งํ๋ค. ๋ง์ฝ ์์ฒญํด์ผํ URL์ด http://www.example.com:3000/users/login ์ด๋ผ๋ฉด ์ฌ๊ธฐ์์ ๋๋ฉ์ธ์ example.com์ด ๋๋ค. ์ฟ ํค์ต์ ์ ๋๋ฉ์ธ ์ ๋ณด๊ฐ ์กด์ฌํ๋ฉด ํด๋ผ์ด์ธํธ์์๋ ์ฟ ํค์ ๋๋ฉ์ธ ์ต์ ๊ณผ ์๋ฒ..

ํ๋ก์ ํธ ์ธํ ์คํ๋ง๋ถํธ์์ ํจํค์ง ์ ํ์์ Jar์ War๊ฐ ์๋ค. JAR( JAVA Archive) .jar ํ์ฅ์ ํ์ผ์ Class์ ๋ฆฌ์์ค ์์ฑํ์ผ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ก์ธ์๋ฆฌ ํ์ผ์ด ํฌํจ๋์ด์๋ค. ์ฆ ์๋ฐ ํ๋ก์ ํธ๋ฅผ ์์ถํ ํ์ผ๋ก ์๊ฐํ๋ฉด ๋๋ค. JRE๋ง์ผ๋ก๋ ์คํ์ด ๊ฐ๋ฅํ๋ค. WAR(Web application Archive) .War ํ์ผ์ servlet/ jsp ์ปจํ ์ด๋์ ์ฌ์ฉํ ์์๋ ์น์ดํ๋ฆฌ์ผ์ด์ ์์ถํ์ผ ํฌ๋งท์ด๋ค. ์ด๋ ์น๊ด๋ จ ์์๋ง ํฌํจํ๊ณ ์๊ณ , ์ฌ์ฉ์์ ์น์ดํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ฐฐํฌํ๊ณ ์ฌ์ฉํ ์์๋ค. ๋จ์ ์ WARํ์ผ์ ์คํํ๋ ค๋ฉด Tomcat, Weblogic, Websphere๋ฑ์ Web Server ๋๋ WAS๊ฐ ํ์ํ๋ค. ํ์ฌ ์ํฉ์์๋ JSP๊ณต๋ถ๋ ํ์ํ๋ฏ๋ก WAR๋ฅผ ์ ํํ๋ค. ์..
๋น์ค์ฝํ๋? ์ค์ฝํ๋ ๋ฒ์ญ ๊ทธ๋๋ก ๋น์ด ์กด์ฌํ ์์๋ ๋ฒ์๋ฅผ ๋ปํ๋ค. ์คํ๋ง์์ ์ง์ํ๋ ์ค์ฝํ๋ ๋ค์๊ณผ ๊ฐ๋ค. 1. ์ฑ๊ธํค : ๊ธฐ๋ณธ ์ค์ฝํ, ์คํ๋ง ์ปจํ ์ด๋์ ์์๊ณผ ์ข ๋ฃ๊น์ง ์ ์ง๋๋ ๊ฐ์ฅ ๋์ ๋ฒ์์ ์ค์ฝํ. 2. ํ๋กํ ํ์ : ์คํ๋ง ์ปจํ ์ด๋๋ ๋น์ ์์ฑ๊ณผ ์์กด๊ด๊ณ์ฃผ์ ๊น์ง๋ง ๊ด์ฌํ๊ณ ๋๋ ๊ด๋ฆฌํ์ง ์๋ ๋งค์ฐ ์งง์ ๋ฒ์์ ์ค์ฝํ์ด๋ค. ์น๊ด๋ จ ์ค์ฝํ 1. request : ์น ์์ฒญ์ด ๋ค์ด์ค๊ณ ๋๊ฐ๋ ๊น์ง ์ ์ง๋๋ ์ค์ฝํ 2. session : ์น ์ธ์ ์ด ์์ฑ๋๊ณ ์ข ๋ฃ๋ ๋ ๊น์ง ์ ์ง๋๋ ์ค์ฝํ 3. application : ์น์ ์๋ธ๋ฆฟ ์ปจํ ์ค์ ๊ฐ์ ๋ฒ์๋ก ์ ์ง๋๋ ์ค์ฝํ

Lombok lombok์์ @RequiredArgConstructor > ์๋์ผ๋ก ํ๋์ final์ด ๋ถ์ ๋ณ์๋ฅผ ์์ฑ์๋ก ๋ง๋ค์ด์ค๋ค. ํ์ ์์๋ ๊ฑฐ์ ๋กฌ๋ณต์ ๋ง์ด ์ฌ์ฉํ๋ค. ์กฐํ bean์ด 2๊ฐ ์ด์์ผ๋ @Autowired ๋งค์นญ ์์ Autowired๋ ์ฒ์์ ํ์ ๋งค์นญ์ ์๋ ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ๋น์ด ์์ผ๋ฉด ์ด๋ฆ, ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ผ๋ก ๋น์ด๋ฆ์ ์ถ๊ฐ ๋งค์นญํ๋ค. @Quilifier ์ฌ์ฉ ์ถ๊ฐ ๊ตฌ๋ถ์๋ฅผ ๋ถ์ฌ์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด๋ฆ์ ๋ณ๊ฒฝํ๋๊ฒ์ ์๋. @Quilifier ๋ผ๋ฆฌ ๋งค์นญ๋๋ค, ๋น์ด๋ฆ์ ๋งค์นญ์ํจ๋ค. @Primary ์ฌ์ฉ @Primary๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์ฐ์ ์์๋ฅผ ๋ถ์ฌํด์ ๋ค๋ฅธ๊ฒ๋ค์ ๋ฌด์ํ๊ณ ์ต์์๋ก ์์กด๊ด๊ณ๊ฐ ์ฃผ์ ๋๋ค. ๋ฉ์ธ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ์๋ @Primary๋ฅผ ์ง์ ํด์ ์กฐํํ๊ณ , ์๋ธ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ์๋ @Qualif..

DTO? DTO๋? DTO(Data Transfer Object)์ ์ฝ์๋ก ๋งํดํ์ธ๋ฌ๊ฐ ์๊ฐํ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ ํจํด์ค์ ํ๋์ด๋ค. DTO๋ ํ๋ก์ธ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ์ฉ๋์ ๊ฐ์ฒด์ด๋ค. DTO๊ฐ ํ์ํ ์ด์ ์ฝ๋์ ๊ฐ๊ฒฐ์ฑ DTO๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๋ค. ์๋ฅผ ๋ค์ด ํ์์ ๋ณด๋ฅผ @RequestParam์ ํตํด ์ด๋ฉ์ผ, ์ด๋ฆ, ์ฃผ์ ๋ฑ์ ์ ๋ณด๋ฅผ ๋ฐ๋๋ค๊ณ ์๊ฐํด๋ณด์. ๊ทธ๋ผ ์ปจํธ๋กค๋ฌ์ ํด๋น ๋ฉ์๋์ ๋ฐ์ผ๋ ค๋ ์ ๋ณด์ ์ซ์๋งํผ @RequestParam์ด ํ์ํ ๊ฒ์ด๋ค. ํ์ง๋ง Dto๋ฅผ ์ ์ฉํ๊ฒ๋๋ค๋ฉด? //DTO ์ ์ฉ์ @PostMapping public ResponseEntity postMember(@RequestParam("email") String email, @RequestParam("name"..

Spring MVC์ ๋์๋ฐฉ์ 1. ํด๋ผ์ด์ธํธ(์น๋ธ๋ผ์ฐ์ )์์ ์์ฒญ์ ์ ์กํ๋ฉด DispatcherServlet์ด๋ผ๋ ํด๋์ค์์์ฒญ์ด ์ ๋ฌ๋๋ค. 2. - ์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ Controller์ ๋ํ ๊ฒ์์ HandlerMapping ์ธํฐํ์ด์ค์๊ฒ ์์ฒญํ๋ค. 3. HandlerMapping์ ํด๋ผ์ด์ธํธ ์์ฒญ๊ณผ ๋งคํ๋๋ ํธ๋ค๋ฌ ๊ฐ์ฒด๋ฅผ ๋ค์ DispatcherServlet์๊ฒ ๋ฆฌํดํด์ค๋ค. 4. ์์ฒญ์ ์ฒ๋ฆฌํ ์ปจํธ๋กค๋ฌ๋ ์ฐพ์๊ณ ์ค์ ์์ฒญ์ ์ฒ๋ฆฌํ Handler ๋ฉ์๋๋ฅผ ์ฐพ์์ ํธ์ถํ๋ค. HandlerAdapter์๊ฒ ์ด ์์ ์ ์์ํ๋ค. 5. HandlerAdapter๋ DispatcherServlet์ผ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ Controller ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋น Controller์ Handler๋ฉ์๋๋ฅผ ..

๐Today... ์์ํ๊ธฐ์ ์ ์๊ณ ์ถ์ด์ ์๊ธด์งค ์ฐพ๋ค๊ฐ ๊ฐ์ ธ์๋๋ฐ ์์ง์ง ์นดํ์์ ์๋ฆฌ๋ด์ ์์๋คใ ใ ใ ์ทจํฅ์ ๊ฒฉ ๊ฐ๊ทธ โ์ค๋์ TIL(Today I Learn) JVM JVM์ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ๋๊ตฌ์ด๋ค. .java ์ฝ๋๋ฅผ ์ปดํ์ผ ํ์ฌ .class ๋ฐ์ดํธ ์ฝ๋๋ก ๋ง๋ค๋ฉด ์ด์ฝ๋๊ฐ JVMํ๊ฒฝ์์ ์คํ๋๋ค. JVM์ JRE(Java Runtime Environment)์ ํฌํจ๋์ด์๋ค. ์ฆ, ์๋ฐ๋ก ์์ฑํ ์์ค์ฝ๋๋ฅผ ํด์ํ์ฌ ์คํํ๋ ๋ณ๋์ ํ๋ก๊ทธ๋จ์ด๋ค. ์๋ฐ๋ "์ด์์ฒด์ ๋ก ๋ถํฐ ๋ ๋ฆฝ์ "์ด๋ผ๊ณ ๋งํ๋๋ฐ ์ด๊ฒ์ด JVM์ ํตํด ๊ตฌํ๋๋๊ฒ์ด๋ค. ํ๋์ ๋ฐ์ดํธ์ฝ๋๋ก ๋ชจ๋ ํ๋ซํผ์์ ๋์์ด ๊ฐ๋ฅํด์ง๋ค. ์ฆ, ์ ๊ทธ๋ฆผ์์ ๋ณผ์์๋ฏ์ด ์๋ฐ๋ ํ๋ซํผ์๋ ์ข ์์ ์ด์ง ์์ง๋ง, JVM์ ํ๋ซํผ์ ์ข ์์ ์ด๋ค. ๋ฆฌ๋ ์ค์ J..