STUDY/SPRING (29) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ Spring boot - ํ๋ฆฌ๋ง์ปค(freemaker) ์ค์ 1.build.gradle์ ์์กด์ฑ ์ถ๊ฐ 2.freemaker์์ ์ฌ์ฉํ ์ค์ ๋ด์ฉ์ application.properties์ ์ถ๊ฐ 3. index.ftl ํ์ผ ์์ฑ (์ผ๋ฐ file๋ก ์์ฑ) ์ฒ์์๋ ํ ์คํธ ํ์ผ๋ก ์ธ์๋จ jsp์ฒ๋ผ ์ฌ์ฉํ๊ธฐ ์ํด Eclipse Marketplace์์ jsp๋ก ๊ฒ์ํ Eclipse Enterprise Java and Web Developer Tools ๋ค์ด๋ก๋ sts ์ฌ์์ ํ window > Preferences > file associations ๊ฒ์ file types ์์ add > .ftl ์ถ๊ฐ associated editors ์์ add > jsp Editor > apply and close window > Preferences > content types.. Spring Boot ๊ธฐ๋ณธ ๊ตฌ์กฐ - ์ฒ์ ์คํ๋ง๋ถํธ ํ๋ก์ ํธ ์์ฑ์ ๊ตฌ์กฐ 1. src/main/java 2. src/main/resources 3. build.gradle 1. DemoApplication.java - ๊ธฐ๋ณธ main() ๋ฉ์๋ - @SpringBootApplication ์ด๋ ธํ ์ด์ ์ด ์ด๋ ธํ ์ด์ ์ ์ธ๊ฐ์ง ์ด๋ ธํ ์ด์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ @EnableAutoConfiguration : Bean์ ๋ฑ๋กํ๋ ์๋ฐ์ค์ ํ์ผ @ComponentScan : @Component์ ๊ฐ์ง Bean์ ์ค์บ, ๋ฑ๋ก @Configuration : java๊ธฐ๋ฐ์ ์ค์ ํ์ผ๋ก ์ธ์๋จ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. 2. src/main/resources 2-1. templates : ์คํ๋ง ๋ฒ์ ์ด ์ฌ๋ผ๊ฐ๋ฉด์ jsp๋์ thymeleaf๋ก view์์ง์ด ๋ณ๊ฒฝ๋์.. ์์กด์ฑ ์ฃผ์ (DI) ์์กด์ฑ ์ฃผ์ (Dependency Injection) : ์คํ๋ง์ ํน์ง ์ค ํ๋๋ก ์ ์ด์ ์ญํ์ด ๋ฐ์ํ ๋ ์คํ๋ง ๋ด๋ถ์ ์๋ ๊ฐ์ฒด(Bean)์ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฒ * ์ ์ด์ ์ญํ : (IoC : Inversion Of Control) : ๋ฉ์๋๋ ๊ฐ์ฒด์ ํธ์ถ์ ๊ฐ๋ฐ์๊ฐ ๊ฒฐ์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ธ๋ถ์์ ๊ฒฐ์ ๋๋ ๊ฒ. ์ฆ ์ ์ด๊ถ์ ๊ฐ๋ฐ์๊ฐ ์๋ ์ 3์๊ฐ ๊ฐ์ง๊ฒ ํ๋ ๊ฒ์ ๋งํ๋ค. >> ๋์จํ ๊ฒฐํฉ์ ์ ๊ณตํ๋ ๊ฒ์ด ๋ชฉ์ * ์์กด์ฑ : ํด๋์ค๋ ๊ฐ์ฒด๊ฐ ๊ด๊ณ๋ฅผ ๋งํ๋ฉฐ ์์กด์ฑ์ด ๋์ ์๋ก ๊ฐ์ฒด๊ฐ ํผ์์ ์ฒ๋ฆฌํ ์ ์๊ณ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํตํด์ ๋์์ ๋ฐ์์ผ๋ง ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. >> ํ ํด๋์ค๊ฐ ๋ฐ๋ ๋ ๋ค๋ฅธ ํด๋์ค๊ฐ ์ํฅ์ ๋ง์ด ๋ฐ๋๋ค. => ๊ฒฐ๊ตญ DI๋ ์์กด ๊ด๊ณ์ ์๋ ๊ฐ์ฒด๋ฅผ ์ง์ ์์ฑํ๊ณ ์ ์ดํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ด์ ์ญ.. ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๊ธฐ - 4(๋ก๊ทธ์ธ ์๋ฃ) ์ด์ ํฌ์คํ : https://3unbbb.tistory.com/106 ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๊ธฐ 3 ์ด์ ํฌ์คํ : ์นด์นด์ค๋ ์ฐ๊ฒฐ https://3unbbb.tistory.com/105 ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๊ธฐ -2 ์ด์ ํฌ์คํธ์์ ์นด์นด์ค ๋ก๊ทธ์ธ API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ค์ & ์ ์ฒด์ ์ธ ํ๋ฆ์ ๋ดค๋ค. https://3unbbb.tistory.co.. 3unbbb.tistory.com ์ด์ ๊ฐ์ ธ์จ ํ ํฐ์ผ๋ก ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ผ ํจ ์ ์ฒด์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ๊ฑฐ๋๊น GET๋ฐฉ์์ผ๋ก ๋ถ๋ฅด๊ธฐ & ์์ฒญ ํค๋ ํ์ธํ๊ธฐ(access_token) ์์ access_token์ ๋ฐ์ ๋ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ ๋น์ท (outputStream์ด์๋ inputStream ์ฌ์ฉ) public void getUserInfo(S.. ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๊ธฐ - 3 ์ด์ ํฌ์คํ : ์นด์นด์ค๋ ์ฐ๊ฒฐ https://3unbbb.tistory.com/105 ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๊ธฐ -2 ์ด์ ํฌ์คํธ์์ ์นด์นด์ค ๋ก๊ทธ์ธ API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ค์ & ์ ์ฒด์ ์ธ ํ๋ฆ์ ๋ดค๋ค. https://3unbbb.tistory.com/104 ์นด์นด์ค ๋ก๊ทธ์ธ api ์ฌ์ฉํ๊ธฐ -1 ํํ๋ก์ ํธ์์ ํด๋ณด๊ณ ์ถ์๋ sns ๋ก๊ทธ์ธ api ํฌํธ 3unbbb.tistory.com ๋ฐ๊ธ๋ฐ์ ์ฝ๋๋ก ํ ํฐ์ ๋ฐ์์ผ ํ๋๋ฐ ์ ํ์์ ๋ง๊ฒ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ๋ฉด ๋จ(required ํ์) ์์ฒญ์ service์์ httpURLConnection์ผ๋ก ์ฒ๋ฆฌ OauthService.java public String getAccessToken(String code) throws IOException { Syste.. ์นด์นด์ค ๋ก๊ทธ์ธ API ์ฌ์ฉํ๊ธฐ -2 ์ด์ ํฌ์คํธ์์ ์นด์นด์ค ๋ก๊ทธ์ธ API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ค์ & ์ ์ฒด์ ์ธ ํ๋ฆ์ ๋ดค๋ค. https://3unbbb.tistory.com/104 ์นด์นด์ค ๋ก๊ทธ์ธ api ์ฌ์ฉํ๊ธฐ -1 ํํ๋ก์ ํธ์์ ํด๋ณด๊ณ ์ถ์๋ sns ๋ก๊ทธ์ธ api ํฌํธํด๋ฆฌ์ค๋ ์์์๊ฐ ๋๊ฐ ํ์ด ์กํ๊ฐ๋๊น ๋ฏธ๋ค๋๋ ์์ ๋ก๊ทธ์ธ ๊ณต๋ถํ๊ธฐ! 1. ์ฐ์ ์นด์นด์ค ๋๋ฒจ๋กํผ์์ ๋ด ์ดํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐ, ํ๋ซํผ์ ๋ 3unbbb.tistory.com ์ด์ ์นด์นด์ค์์ ์๋ ค์ค๋๋ก ํ๋ํ๋ ๋ฐ๋ผ๊ฐ๋ฉด ๋๋ค. Step1 ์นด์นด์ค ๋ก๊ทธ์ธ 1. ์นด์นด์ค ๋ก๊ทธ์ธ ๋ฒํผ ์์ฑ ํ์์ ์์ฃผ๋ณด๋ ์นด์นด์ค ๋ก๊ทธ์ธ ๋ฒํผ์ ์๋๋ก ๊ฐ๋ฉด ๋์์ธ์์ค๋ฅผ ๋ค์ด๋ฐ์ ์ ์๋ค. https://developers.kakao.com/docs/latest/ko/kakaologin/js Kakao .. ์นด์นด์ค ๋ก๊ทธ์ธ api ์ฌ์ฉํ๊ธฐ -1 ํํ๋ก์ ํธ์์ ํด๋ณด๊ณ ์ถ์๋ sns ๋ก๊ทธ์ธ api ํฌํธํด๋ฆฌ์ค๋ ์์์๊ฐ ๋๊ฐ ํ์ด ์กํ๊ฐ๋๊น ๋ฏธ๋ค๋๋ ์์ ๋ก๊ทธ์ธ ๊ณต๋ถํ๊ธฐ! 1. ์ฐ์ ์นด์นด์ค ๋๋ฒจ๋กํผ์์ ๋ด ์ดํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐ, ํ๋ซํผ์ ๋๋ฉ์ธ ์ถ๊ฐ ์นด์นด์ค ๋ก๊ทธ์ธ์ ์ฌ์ฉํ๋ ค๋ฉด redirectURI๋ฅผ ๋ฑ๋กํด์ผ ํ๋ค. 2. RedirectURI๋ฑ๋ก ํ ์์ชฝ์ ํ์ฑํ ์ค์ ์ ON์ผ๋ก ๋ณ๊ฒฝ (์นด์นด์ค ๋ก๊ทธ์ธ API๋ฅผ ํตํด ๊ฐํธ ํ์๊ฐ์ ๊น์ง ๊ฐ๋ฅ) 3. ์ผ์ชฝ ๋ฉ๋ด์ ๋์ํญ๋ชฉ > ๊ฐํธ ํ์๊ฐ์ ์ ํ ๋ ์นด์นด์ค์ชฝ์์ ๊ฐ์ ธ์ฌ ์ ๋ณด๋ฅผ ์ ํํ ์ ์์ ํญ๋ชฉ๋ณ๋ก ์ข์ธก์ ์ค์ ์ ๋๋ฅด๋ฉด ์ค์ ๊ฐ๋ฅ(์ด์ฉ๋ชฉ์ ์ ๊ทธ๋ฅ ์๋น์ค ์ด์ฉ์ด๋ผ๊ณ ์์ฑํจ) 4. ๊ธฐ๋ณธ ์ค์ ์ ๋๋ฌ์ผ๋ ์ด์ Docs ๋ณด๊ธฐ https://developers.kakao.com/docs/latest/ko/kakaolog.. ERROR: org.springframework.web.context.ContextLoader - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in ServletContext resource [/WEB-INF/spring/root-context.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\Users\Eunb\TeamProject\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtp.. ์ด์ 1 2 3 4 ๋ค์