๊ฐ๋ฐ
-
HTTP Message Converter ์ด์ผ๊ธฐ(1)๊ฐ๋ฐ/Spring Boot 2022. 7. 7. 03:14
๋ทฐ ํ ํ๋ฆฟ์ผ๋ก HTML์ ์์ฑํด์ ์๋ตํ๋ ๊ฒ์ด ์๋๋ผ, HTTP API์ฒ๋ผ JSON ๋ฐ์ดํฐ๋ฅผ HTTP ๋ฉ์์ง ๋ฐ๋์์ ์ง์ ์ฝ๊ฑฐ๋ ์ฐ๋ ๊ฒฝ์ฐ HTTP ๋ฉ์์ง ์ปจ๋ฒํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๋ค. ์คํ๋ง MVC๋ ๋ค์์ ๊ฒฝ์ฐ์ HTTP ๋ฉ์์ง ์ปจ๋ฒํฐ๋ฅผ ์ ์ฉํ๋ค. HTTP ์์ฒญ : @RequestBody , HttpEntity(RequestEntity) HTTP ์๋ต : @ResponseBody , HttpEntity(ResponseEntity) HTTP ๋ฉ์์ง ์ปจ๋ฒํฐ ์ธํฐํ์ด์ค org.springframework.http.converter.HttpMessageConverter package org.springframework.http.converter; public interface HttpMessageConve..
-
HTTP API ์๋ต ์ ๋ฆฌ๊ฐ๋ฐ/Spring Boot 2022. 7. 7. 02:28
HTTP ๋ฉ์ธ์ง ๋ฐ๋๋ฅผ ์ง์ ์กฐํํ๊ณ ์ถ์ ๋, ์คํ๋ง MVC๋ ๋ค์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ํ๋ค. HttpEntity HTTP header, body ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ์กฐํํ ์ ์๋ค. - ๋ฉ์์ง ๋ฐ๋ ์ ๋ณด๋ฅผ ์ง์ ์กฐํ - ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ์กฐํํ๋ ๊ธฐ๋ฅ๊ณผ ๊ด๊ณ ์์ (@RequestParam X, @ModelAttribute X HttpEntity๋ ์๋ต์๋ ์ฌ์ฉ ๊ฐ๋ฅ) - ๋ฉ์์ง ๋ฐ๋ ์ ๋ณด ์ง์ ๋ฐํ, ํค๋ ์ ๋ณด ํฌํจ ๊ฐ๋ฅ - view ์กฐํX +) HttpEntity ๋ฅผ ์์๋ฐ์ ๋ค์ ๊ฐ์ฒด๋ค๋ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. RequestEntity HttpMethod, url ์ ๋ณด๊ฐ ์ถ๊ฐ, ์์ฒญ์์ ์ฌ์ฉ ResponseEntity HTTP ์ํ ์ฝ๋ ์ค์ ๊ฐ๋ฅ, ์๋ต์์ ์ฌ์ฉ return new ResponseEnti..
-
JVM์ด์ผ๊ธฐ - ์ ์(+JRE, JDK), ๊ตฌ์กฐ๊ฐ๋ฐ/Java 2022. 7. 5. 12:00
JVM (Java Virtual Machine ) ์๋ฐ ๊ฐ์ ๋จธ์ ์ปดํจํฐ๋ 0๊ณผ 1๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ด๋๋ฆฌ(2์ง์)๋ก ์์ฑ๋ ๊ธฐ๊ณ์ด๋ก๋ง ์ดํด๋ฅผ ํ ์ ์๋ค. ํ์ง๋ง ์ฌ๋์ ๊ทธ ๊ธฐ๊ณ์ด๋ฅผ ๋ณด๊ณ ์ดํดํ๊ธฐ๊ฐ ์ด๋ ต๋ค. (๋ชจ๋ํฐ์ 0110101010110 ์ด๋ ๊ฒ๋ง ์จ์์ผ๋ฉด, ๋๊ฐํ๋ค^^;) ์ด์จ๋ ์ฐ๋ฆฌ๊ฐ ์ดํดํ๊ณ ์์ฑํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ปดํจํฐ๊ฐ ์์๋ค์ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ฐ๊ฟ์ฃผ๋ ์์ ์ ๋คํํ๋ c๋ ์๋ฐ ๊ฐ์ ์ปดํ์ผ ์ธ์ด์์๋ ์ปดํ์ผ๋ฌ๋ผ๋ ๋ฒ์ญ๊ฐ๊ฐ ๋ฒ์ญ์ ํด์ค๋ค. ๊ทธ๋ฐ๋ฐ c๊ฐ์ ๊ฒฝ์ฐ๋, ๋๊ฐ์ด c๋ก ์ง ํ๋ก๊ทธ๋๋ฐ์ด๋๋ผ๋ ์๋์ฐ์์ ๋๊ฒ ์ปดํ์ผํ ๊ฒ์ ๋งฅ์ด๋ ๋ฆฌ๋ ์ค์์ ์๋๋ค. ์ฆ, ํ๋ก๊ทธ๋จ์ด ๋๋ ํ๊ฒฝ, ์ปดํจํฐ๋ง๋ค ๊ฑฐ๊ธฐ์ ๋ง๋ ๊ธฐ๊ณ์ด๋ก ์ผ์ผ์ด ๋ฒ์ญ์ ํด์ค์ผํ๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ฒ ์๋ฐ..
-
์คํ๋ง์ด ์ฌ๋ํ ๋์์ธ ํจํด๊ฐ๋ฐ/Spring Boot 2022. 5. 31. 00:51
๋์์ธ ํจํด - ๋ฒ ์คํธ ํ๋ํฐ์ค๋ฅผ ์ ๋ฆฌํ ๊ฒ ์คํ๋ง ํ๋ ์ ์ํฌ : ์๋ฐ ์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์ ํธํ๊ฒ ํด์ฃผ๋ ์คํ์์ค ๊ฒฝ๋๊ธ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ ์ด๋ํฐ ํจํด : ๋ณํ๊ธฐ. ์๋ก ๋ค๋ฅธ ๋ ์ธํฐํ์ด์ค ์ฌ์ด์ ํต์ ์ด ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ. ํ ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉํ๊ณ ์ํ๋ ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ก ๋ณํํ๋ค. ์ด๋ํฐ๋ฅผ ์ด์ฉํ๋ฉด ์ธํฐํ์ด์ค ํธํ์ฑ ๋ฌธ์ ๋๋ฌธ์ ๊ฐ์ด ์ธ ์ ์๋ ํด๋์ค๋ค์ ์ฐ๊ฒฐํด์ ์ธ ์ ์๋ค. JDBC๊ฐ ์ด๋ํฐ ํจํด์ ์ด์ฉํด ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋จ์ผํ ์ธํฐํ์ด์ค๋ก ์กฐ์ํ ์ ์๊ฒ ํด์ค๋ค. ํ๋ก์ ํจํด : ์ ์ด ํ๋ฆ์ ์กฐ์ ํ๊ฑฐ๋ ๋ณ๋์ ๋ก์ง์ฒ๋ฆฌ์ ๋ชฉ์ ์ผ๋ก ์ค๊ฐ์ ๋๋ฆฌ์๋ฅผ ๋๋ ํจํด ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ๋ ๋ฐํ๊ฐ์ ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด ๋ณ๊ฒฝํ์ง ์๋๋ค. - ๋๋ฆฌ์๋ ์ค์ ์๋น์ค์ ๊ฐ์ ์ด..
-
์๋ฐ๊ฐ ํ์ฅํ ๊ฐ์ฒด ์งํฅ๊ฐ๋ฐ/Java 2022. 5. 24. 02:42
๐ก abstract - ์ถ์ ๋ฉ์๋์ ์ถ์ ํด๋์ค ์ถ์๋ฉ์๋ : ์ ์ธ๋ถ๋ ์๋๋ฐ, ๊ตฌํ๋ถ๊ฐ ์๋ ๋ฉ์๋ ์ถ์ ํด๋์ค - ์ถ์ ๋ฉ์๋๋ฅผ ํ๋๋ผ๋ ๊ฐ๊ณ ์๋ ํด๋์ค ์ถ์ ํด๋์ค๋ ์ธ์คํด์ค, ์ฆ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ ํด๋์ค๊ฐ ๋๋ค. - ์ถ์ํด๋์ค๋ ์ธ์คํด์ค, ์ฆ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ค. - ๋ง์ฝ ํด๋น ์ถ์ํด๋์ค๋ฅผ ์์ํ ํ์ ํด๋์ค๊ฐ ์์ ํด๋์ค์ ์ถ์๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ์ง ์์ผ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. - ์ถ์๋ฉ์๋๋ฅผ ํฌํจํ๋ ํด๋์ค๋ ๋ฐ๋์ ์ถ์ ํด๋์ค์ฌ์ผ ํ๋ค. ๐ก interface์ implements ์ธํฐํ์ด์ค๋ public static final ์์๋ง ๊ฐ์ง ์ ์์ผ๋ฉฐ, ๋ฉ์๋๋ public abstract ๋ง ๊ฐ์ง ์ ์๋ค. ๋ค๋ง, ์ฝ๋์ ์ด๋ฐ ์์ฝ์ด๋ค์ด ์๋ถ์ด์๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ์ด๋ฐ ์ด์ ๋ ์..
-
๊ฐ์ฒด ์งํฅ ์ค๊ณ 5์์น - SOLID๊ฐ๋ฐ/Spring Boot 2022. 5. 24. 01:02
SOLID๋ ๋ค์์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ 5์์น์ ๋๋ฌธ์์ด๋ก ํํํ ๋ง์ด๋ค. ํด๋น ์์น์ ์์ง๋๋ ๋์ด๊ณ (High Cohesion), ๊ฒฐํฉ๋๋ ๋ฎ์ถ๋ผ(Loose Coupling)๋ ๊ณ ์ ์์น์ ๊ฐ์ฒด ์งํฅ์ ๊ด์ ์์ ์ฌ์ ๋ฆฝํ ๊ฒ์ด๋ผ๊ณ ํ ์ ์๋ค. - SRP (Single Responsibility Principle) : ๋จ์ผ ์ฑ ์ ์์น - OCP (Open Closed Principle) : ๊ฐ๋ฐฉ ํ์ ์์น - LSP (Liskov Substitution Principle) : ๋ฆฌ์ค์ฝํ ์นํ ์์น - ISP (Interface Segregation Priniciple) : ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ๋ฒ์น - DIP (Dependency Inversion Principle) : ์์กด ์ญ์ ์์น ๊ฒฐํฉ๋? ๊ฒฐํฉ๋๋ ๋ชจ๋(ํด..
-
JDBC ํต์ฌ ๊ฐ๋ ์ ๋ฆฌ๊ฐ๋ฐ/JSP 2022. 5. 13. 01:43
JSP ์์ ๋ค๋ฃจ๋ JDBC ๊ด๋ จ ํต์ฌ ๊ฐ๋ ๋ค์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํด๋ณด์์ต๋๋ค :) ๋ฉด์ ๋ ํน์๋ ๋์ฌ๋งํ ์ฌํญ๋ค์ ์์ฃผ๋ก ๊ฐ๋ตํ ๋๋ตํ ์ ์๋๋ก ์ ๋ฆฌ ์์ฝํ ๊ฒ์ด๋, ์์ธํ ์ค๋ช ์ ๋ถ์กฑํ ์ ์์ต๋๋ค. DBMS์ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ - ๋ฐ์ดํฐ์ ์ถ๊ฐ/์กฐํ/๋ณ๊ฒฝ/์ญ์ - ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ(integrity) ์ ์ง - ํธ๋์ญ์ ๊ด๋ฆฌ - ๋ฐ์ดํฐ์ ๋ฐฑ์ ๋ฐ ๋ณต์ - ๋ฐ์ดํฐ ๋ณด์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Relational DBMS)์ด๋ค. ์ฌ๊ธฐ์๋ ์ค๋ผํด, MySQL, MS SQL ๋ฑ์ด ์๋ค. ์ด๊ฒ์ ๊ธฐ์ค์ผ๋ก ๋ด์ฉ์ ์งํํ ๊ฒ์ด๋ค. ํ ์ด๋ธ(table) RDBMS์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ฅ์๋ฅผ ๋งํ๋ค. ์คํค๋ง(schema) ํ ์ด๋ธ์ ๊ตฌ์กฐ์ ๊ด๋ จ๋ ์ ๋ณด(์นผ๋ผ, ์นผ๋ผ ํ์ , ..
-
์๋ธ๋ฆฟ(Servlet)์ด๋, ์๋ธ๋ฆฟ(Servlet)์ ์๋ช ์ฃผ๊ธฐ๊ฐ๋ฐ/JSP 2022. 5. 10. 00:32
๋ค์ํ ์น ํ๋ ์์ํฌ์ ์ถํ์ผ๋ก ์๋ธ๋ฆฟ์ ์ง์ ๊ฐ๋ฐํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ํ์น ์์ง๋ง, ์๋ฐ ์น ๊ฐ๋ฐ์๋ผ๋ฉด ์๋ธ๋ฆฟ์ด ๋ฌด์์ด๊ณ ์๋ธ๋ฆฟ์ ๋์ ๋ฐฉ์์ ์ดํดํ๋ ๊ฒ์ ํ์๋ค. ์ค๋์ ์๋ธ๋ฆฟ์ด ๋ฌด์์ธ์ง, ์๋ธ๋ฆฟ์ ์๋ช ์ฃผ๊ธฐ๋ ์ด๋ป๊ฒ ๋๋ ์ง์ ๋ํด ์์๋ณด์. ๐ก์๋ธ๋ฆฟ(Servlet)์ด๋? JSP ํ์ค์ด ๋์ค๊ธฐ ์ ์ ๋ง๋ค์ด์ง ํ์ค์ด๋ค. ์๋ฐ๋ก ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋๋ก ํ๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค. ์๋ธ๋ฆฟ์ ์ด์ฉํ๋ฉด ์๋ฐ ํด๋์ค๋ฅผ ์ด์ฉํด์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ฒ ๋๋ค. ์๋ธ๋ฆฟ์ ๊ฐ๋ฐ ๊ณผ์ : ์๋ธ๋ฆฟ ๊ฐ๋ฐ ๊ณผ์ ์ JSP์ ๋น๊ตํ๋ฉด ๋ช ๊ฐ์ง ๊ณผ์ ์ด ๋ ๋ค์ด๊ฐ ๋ณต์กํ๋ฐ, ์ด๋ฐ ์ด์ ๋ก ์๋ธ๋ฆฟ๋ณด๋ค๋ JSP๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค. ํ์ง๋ง, MVCํจํด์ ์ง์ํ๋ ํ๋ ์์ํฌ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ, ์๋ธ๋ฆฟ์ผ๋ก ๊ธฐ๋ฐ ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ..