Spring(47)
-
[Spring] ๋ค์ด๋ฒ ๋ก๊ทธ์ธ API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
https://hyejin.tistory.com/1290 [Spring] ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์์ฆ์ ์นด์นด์ค, ๋ค์ด๋ฒ๋ฅผ ์ด์ฉํ Login Api ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ค์ ์ฌ์ฉํ๊ธฐ ์ ์ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด kakao login api ๋์ ๋ฐฉ์์ ์์๋ณผ ๊ฒ์ด๋ค. REST API๋ฅผ ์ฌ์ฉํ ์นด์นด์ค ๋ก๊ทธ์ธ์ PC ๋ฐ hyejin.tistory.com -> ์นด์นด์ค ๋ก๊ทธ์ธ api ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์นด์นด์ค ๋ก๊ทธ์ธ api๋ฅผ ์ฌ์ฉํด์ ๋ก๊ทธ์ธ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ ๋ค์, ์ด์ ๋ค์ด๋ฒ ๋ก๊ทธ์ธ api๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณผ ๊ฒ์ด๋ค. ํ๋ฒ ํด๋ณด๋ฉด ๋๋ค ํ๋ก์ฐ๋ ๋น์ทํ๊ธฐ ๋๋ฌธ์ ๊ธ๋ฐฉํ ์ ์๋ค. Naver ๋ก๊ทธ์ธ ๋์ ๋ฐฉ๋ฒ https://developers.naver.com/main/ NAVER Develo..
2024.02.07 -
[Spring] ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
์์ฆ์ ์นด์นด์ค, ๋ค์ด๋ฒ๋ฅผ ์ด์ฉํ Login Api ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ค์ ์ฌ์ฉํ๊ธฐ ์ ์ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด kakao login api ๋์ ๋ฐฉ์์ ์์๋ณผ ๊ฒ์ด๋ค. REST API๋ฅผ ์ฌ์ฉํ ์นด์นด์ค ๋ก๊ทธ์ธ์ PC ๋ฐ ๋ชจ๋ฐ์ผ ์น์์ ์ ํฉํ ๋ฐฉ์์ด๋ค. ์นด์นด์ค ๋ก๊ทธ์ธ์ OAuth 2.0 ๊ธฐ๋ฐ์ ์์ ๋ก๊ทธ์ธ ์๋น์ค๋ก ์นด์นด์ค ๋ก๊ทธ์ธ์ ์ด์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์นด์นด์คํก ๋๋ ์นด์นด์ค ๊ณ์ ์ผ๋ก ์์ฝ๊ฒ ์๋น์ค์ ๋ก๊ทธ์ธ ํ ์ ์๋ค. ์นด์นด์ค ๋ก๊ทธ์ธ ์๋น์ค ๊ณผ์ 1๏ธโฃ ์นด์นด์ค ๋ก๊ทธ์ธ ์ฌ์ฉ์๊ฐ ์๋น์ค์์ ์นด์นด์ค ๋ก๊ทธ์ธ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ์๋น์ค๋ ์นด์นด์ค ์ธ์ฆ ์๋ฒ๋ก ์ธ๊ฐ ์ฝ๋ ๋ฐ๊ธ์ ์์ฒญํฉ๋๋ค. ์นด์นด์ค ์ธ์ฆ ์๋ฒ๋ ์ฌ์ฉ์์๊ฒ ์ธ์ฆ์ ์์ฒญํฉ๋๋ค. (์ฐธ๊ณ : ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ฐ๋ฅธ ์ธ์ฆ ๋ฐฉ๋ฒ) ์นด์นด์คํก์ผ๋ก ๋ก๊ทธ์ธ: ์นด์นด์คํก ์คํ,..
2024.02.07 -
[์ดํํฐ๋ธ ์๋ฐ] Item01 ์๋ฒฝ๊ณต๋ต. ์๋น์ค ์ ๊ณต์ ํ๋ ์์ํฌ
item01. ์์ฑ์ ๋์ ์ ์ ํฉํฐ๋ฆฌ ๋ฉ์๋๋ฅผ ๊ณ ๋ คํ๋ผ. "p11. ์๋น์ค ์ ๊ณต์ ํ๋ ์์ํฌ๋ฅผ ๋ง๋๋ ๊ทผ๊ฐ์ด ๋๋ค." ์๋น์ค ์ ๊ณต์ ํ๋ ์์ํฌ๋? : ๋ค์ํ ์๋น์ค ์ ๊ณต์๋ค์ด ํ๋์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ์์คํ ์ผ๋ก ํด๋ผ์ด์ธํธ๋ ์ธ๋ถ์ ์ธ ๊ตฌํ ๋ด์ฉ์ ๋ชจ๋ฅด๋๋ผ๋ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋ค. ex) mysql, oracle ๋ฑ์ ์๋น์ค ์ ๊ณต์๋ค์ด ๋ชจ์ฌ JDBC๋ผ๋ ํ๋์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํจ. -> ํ์ฅ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ ์๋น์ค ์ ๊ณต์ ํ๋ ์์ํฌ ์ฃผ์ ๊ตฌ์ฑ ์์ - ์๋น์ค ์ ๊ณต์ ์ธํฐํ์ด์ค(SPI) ์ ์๋น์ค ์ ๊ณต์ (์๋น์ค ๊ตฌํ์ฒด) - ์๋น์ค ์ ๊ณต์ ๋ฑ๋ก API (์๋น์ค ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ) - ์๋น์ค ์ ๊ทผ API (์๋น์ค์ ํด๋ผ์ด์ธํธ๊ฐ ์๋น์ค ์ธํฐํ์ด์ค์ ์ธ์คํด์ค๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํ..
2023.01.04 -
Spring์์ ์ฌ์ฉํ๋ RestTemplate , OkHttp, REST API ์์ ์ฌ์ดํธ
1๏ธโฃ RestTemplate๋? ์คํ๋ง์์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก http ํต์ ์ ์ ์ฉํ๊ฒ ์ธ ์ ์๋ ํ ํ๋ฆฟ์ด๋ค. REST API๋ฅผ ํธ์ถํ ์ ์๋ Spring ๋ด์ฅ ํด๋์ค๋ก REST API ํธ์ถ์ดํ ์๋ต๋ฐ์ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋๊ธฐ๋ฐฉ์์ด๋ค. OkHttp๋? REST API, HTTP ํต์ ์ ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ง ์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. Okhttp ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด REST api, Http ๊ธฐ๋ฐ์ ์์ฒญ, ์๋ต์ ์ฒ๋ฆฌํ ์ ์๋ค. //okhttp implementation 'com.squareup.okhttp3:okhttp:4.9.3' -> build.gradle์ ์ถ๊ฐํด์ฃผ๊ณ refresh ํด์ค๋ค. -> Spring boot๋ RestTemplate + Okhttp ์ฐ๊ฒฐํ์ ์ฌ์ฉํด์ ๋ฉ์์ง๋ฅผ ..
2022.06.28 -
Jackson ObjectMapper๋?
1๏ธโฃ ObjectMapper๋? Json ์ปจํ ์ธ ๋ฅผ Java ๊ฐ์ฒด๋ก deserialzation ํ๊ฑฐ๋ Java ๊ฐ์ฒด๋ฅผ Json์ผ๋ก serealizationํ ๋ ์ฌ์ฉํ๋ Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํด๋์ค์ด๋ค. 2๏ธโฃ ObjectMapper.writeValue() : Java -> Json ObjectMapper์ writeValue()๋ Java ๊ฐ์ฒด๋ฅผ Json ์ถ๋ ฅ์ผ๋ก ์ง๋ ฌํํ ์ ์๋ค. ๊ฐ๋จํ ์ค์ต์ ์ํด ์ง๋ ฌํ ๋๋ ์ญ์ง๋ ฌํ ํ ๊ฐ์ฒด๋ก ๋๊ฐ์ ํ๋๊ฐ ์๋ User ํด๋์ค๋ฅผ ์์ฑํ๋ค. ObjectMapper๋ ์์ฑ ๋น์ฉ์ด ๋น์ธ๊ธฐ ๋๋ฌธ์ bean์ผ๋ก ๋ฑ๋ก ๋๋ static ์ผ๋ก ์ฒ๋ฆฌํ๋๊ฒ ์ข๋ค๊ณ ํ๋ค.. writeValue()๋ฅผ ์ฌ์ฉํ ๋๋ ex) writeValue(new File("user.json"..
2022.06.22 -
[Spring boot #4] ์คํ๋ง API @ResponseBody
์คํ๋ง์์ API๋ผ๊ณ ํ๋ฉด RESTful API๋ผ๊ณ ํ ์ ์๋ค. 1๏ธโฃ @ResponseBody ์ด๋ ๊ฒ @ResponseBody๋ฅผ ์ฌ์ฉํ๋ฉด returnํ ๋ ๋ทฐ ์ด๋ฆ์ ์ง์ ํด viewResolver๊ฐ ํด๋นํ๋ ๋ทฐ๋ก ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๊ฐ์ ์ ๋ฌํ์ง ์๊ณ , ๋์ ์ HTTP Body์ ๋ฌธ์ ๋ด์ฉ์ ์ง์ ๋ฐํํ๋ค. ๊ฒฐ๊ณผ ์ด๋ฉฐ ํ์ด์ง ์์ค๋ณด๊ธฐ๋ก ์์ค์ฝ๋๋ฅผ ๋ด๋ ๋ฌธ์ ๋ด์ฉ๋ง ๋์ค๊ณ , ๋ค๋ฅธ html ํ๊ทธ๋ ์ด๋ฐ๊ฑด ์๊ณ ๊ฐ์ฒด๊ฐ JSON์ผ๋ก ๋ณํ๋๋ค. ์ด๋์๋ ViewResolver๊ฐ ๋์ํ๋ ๊ฒ์ด ์๋๋ผ HttpMessageConverter๊ฐ ๋์ํด ๊ธฐ๋ณธ ๋ฌธ์์ฒ๋ฆฌ๋ฉด StringHtpMessageConverter๊ฐ ๋์ํ๊ณ , ๊ธฐ๋ณธ ๊ฐ์ฒด์ฒ๋ฆฌ๋ฉด MappingJackson2HttpMessageConverter๊ฐ ๋์ํ๋ค.
2021.12.07 -
[Spring boot #2] ์คํ๋ง ๋ถํธ ์คํํฐ ์ฌ์ดํธ์์ ์คํ๋ง ํ๋ก์ ํธ ์์ฑํ๊ธฐ
1๏ธโฃ ์คํ๋ง ๋ถํธ ์คํํฐ ์ฌ์ดํธ ๊ฒฝ๋ก https://start.spring.io/ 2๏ธโฃ ํ๋ก์ ํธ ์์ฑํ๊ธฐ ์์ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ๋ฉด ์ด๋ฐ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค. Project : ์ฐ์ Maven Project์ Gradle Project๊ฐ ์๋๋ฐ ์์ฆ์ maven ๋ณด๋ค gradle๋ก ํ๋ก์ ํธ๋ฅผ ๋ง์ด ๋ง๋๋ ์ถ์ธ๋ผ๊ณ ํ๋ค. ๊ทธ๋ผ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋๊ฒ ์ข์ผ๋๊น gradle project๋ฅผ ์ ํํ๋ค. Spring Boot : 2.6.2 2.6.1 ๋ญ ์ด๋ ๊ฒ ์๋๋ฐ 2021-12 ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ธ 2.6.1์ ์ ํํ๋ค. SNAPSHOT์ ์์ง ๋ง๋ค๊ณ ์๋ ๋ฒ์ ์ด๊ธฐ ๋๋ฌธ์ ์์ ํ 2.6.1์ ์ ํํ์. Project Metadata : Group์๋ ํจ์งํค๋ช ์ ์ ๋๋ฐ ๋ณดํต ํ์ฌ ๋๋ฉ์ธ๋ช ์ ๊ธฐ๋ ํ๋๋ฐ ์ด๊ฑด ์ฌ..
2021.12.07 -
Spring @RestController ๋ฅผ ์ด์ฉํ ๊ฐ๋จํ ๊ฒ์ํ, ํ์ด์ง
1. REST(REpresentational State Transfer) : ํน์ URI๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ์ํ๋ ์ ๋ณด๋ฅผ ์ ๊ณต๋ฐ๋ ํ์์ด๋ค. ์ด๋ ๊ฒ REST ๋ฐฉ์์ผ๋ก ์๋น์ค์ ๊ณต์ด ๊ฐ๋ฅํ ๊ฒ์ RESTful ํ๋ค๋ผ๊ณ ํ๋ค. 2. @RestController https://hyejin.tistory.com/275 Spring RESTful ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ฒ์ํ https://hyejin.tistory.com/272 Spring RESTful ์ฌ์ฉ์ ๊ด๋ฆฌ ํ๋ก์ ํธ (@RequestBody, @ResponseBody, GET, POST, PUT, DELETE, Postman ์ค์น ๋ฐ ํ ์คํธ https://hyejin.tistory.com/265 Spring MVC, Mybatis [2].. hyejin.tistor..
2021.12.06 -
Spring Security JDBC ์ฌ์ฉํ ๋ก๊ทธ์ธ ์ฒ๋ฆฌ (BCryptPasswordEncoder ์ํธํ)
์ด๋ฒ์๋ Spring Security ์์ JDBC๋ฅผ ์ฌ์ฉํด์ ๋ก๊ทธ์ธ ์ฒ๋ฆฌ๋ฅผ ํด๋ณผ ์์ ์ด๋ค. https://hyejin.tistory.com/281 Spring Security ๋ก๊ทธ์ธ ์ธ์ฆ ๋ฐ ์ธ๊ฐ (Security ํ๊ฒฝ์ค์ , AuthenticationManger, AutenticationProvider) 1. Spring Security ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น Spring ๋ฒ์ : 5.2.13 java : 1.8 1๏ธโฃ Spring Security Web https://mvnrepository.com/artifact/org.springframework.security/spring-security-web 2๏ธโฃ Spring Securi.. hyejin.tistory.com ์ฌ๊ธฐ์ ํ๋ ๋ฐฉ์์ InMemory ๋ฐฉ..
2021.12.03 -
Spring Security ๋ก๊ทธ์ธ ์ธ์ฆ ๋ฐ ์ธ๊ฐ (Security ํ๊ฒฝ์ค์ , AuthenticationManger, AutenticationProvider)
1. Spring Security ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น Spring ๋ฒ์ : 5.2.13 java : 1.8 1๏ธโฃ Spring Security Web https://mvnrepository.com/artifact/org.springframework.security/spring-security-web 2๏ธโฃ Spring Security Core https://mvnrepository.com/artifact/org.springframework.security/spring-security-core 3๏ธโฃ Spring Security Config https://mvnrepository.com/artifact/org.springframework.security/spring-security-config 4๏ธโฃ Spri..
2021.12.02 -
Spring interceptor๋ฅผ ํ์ฉํ ๋ก๊ทธ์ธ ๋ฐ ์ธ๊ฐ(Authorization)
1. ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ(Authorization) 1๏ธโฃ ์ธ์ฆ(Authentication) : ์์คํ ์ ๊ทผ ์, ๋ฑ๋ก๋ ์ฌ์ฉ์์ธ์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๊ฒ ex) ๋ก๊ทธ์ธ 2๏ธโฃ ์ธ๊ฐ(Authorization) : ์์คํ ์ ๊ทผ ํ, ์ธ์ฆ๋ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ ๊ถํ์ ๋ฐ๋ผ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ด ์ ํ๋จ ex) ์ฌ์ฉ์ ๋ฑ๊ธ (์ผ๋ฐ/ vip/ ๊ด๋ฆฌ์) 2. Spring MVC ๊ฒ์ํ์ ์ธ์ฆ, ๊ถํ ์ถ๊ฐ https://hyejin.tistory.com/276 Spring MVC ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ (+ ํผ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฆํ๊ธฐ Validator) https://hyejin.tistory.com/270?category=1022293 Spring MVC ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ ๊ฐ๋จํ ์ฌ์ฉ์..
2021.12.02 -
Spring Transaction ๊ฐ๋จํ ํฐ์ผ ๊ตฌ๋งค ์๋น์ค ์์
1. Transaction https://hyejin.tistory.com/119?category=975063 [Database] Transaction๊ณผ Trigger 1. Transaction ํธ๋์ญ์ ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์ ์ ๋จ์ ๋๋ ํ๊บผ๋ฒ์ ์ํ๋์ด์ผ ํ ์ผ๋ จ์ ์ฐ์ฐ๋ค์ ์๋ฏธํ๋ค. ํธ๋์ญ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด hyejin.tistory.com ํธ๋์ญ์ ์ด๋ ๋ ผ๋ฆฌ์ ์์ ๋จ์๋ก, ํธ๋์ญ์ ์ ๊ตฌ์ฑํ๋ ์ฌ๋ฌ ์์ ์ค ์ด๋ค ํ ๋ถ๋ถ์ ์์ ์ด ์๋ฃ๋์๋ค๊ณ ํ๋๋ผ๋, ๋ค๋ฅธ ๋ถ๋ถ์ ์์ ์ด ์๋ฃ๋์ง ์์ ๊ฒฝ์ฐ ์ ์ฒด ํธ๋์ญ์ ์ ์ทจ์๋์ด์ผ ํ๋ค. commit : ํธ๋์ญ์ ์ ์๋ฃํ๋ ๊ฒ rollback : ํธ๋์ญ์ ์ ์ทจ์ํ๋ ๊ฒ 2. Transaction์ ์ด์ฉํ ๊ฐ๋จํ ํฐ..
2021.12.01