Framework37 (23.01.18)Spring ํ๋ ์์ํฌ + Thymeleaf ๋ก FullCalendar ์ด๋ฏธ์ง ๋ํ๋ด๊ธฐ ๋ฐ ์ด๋ฒคํธ ์จํด๋ฆญ(onClick)์ฒ๋ฆฌํ๊ธฐ Spring + Thymeleaf ๋ก FullCalendar ์ด๋ฏธ์ง ๋ํ๋ด๊ธฐ ๋ฐ ์ด๋ฒคํธ ์จํด๋ฆญ(onClick)์ฒ๋ฆฌํ๊ธฐ ๋ฌ๋ ฅ์ ๋ทฐ๋ก ๋์ธ ๋ ๋ง์ด ์ฐ๋ ๋ฌ๋ ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค. ๋ฐ๋ก fullcalendar์ธ๋ฐ ์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ๋ฌ๋ ฅ์ ๋ง๋๋ ๊ฒ์ด๋ค. fullcalendar์ ์ผ์ ์ ๋ํ๋ด๋ ๋ฌ๋ ฅ์ ์นํ์ ์ธ๋ฐ ์ด๋ฅผ ์กฐ๊ธ ์์ฉํ์ฌ ์ผ๊ธฐ ๋ฌ๋ ฅ์ผ๋ก ๋ง๋ค์๋ค. ์ผ๊ธฐ๋ฅผ ์ฐ๋ฉด ํด๋น ๋ ์ง์ ํ๋กํ ์ฌ์ง์ด ๋จ๊ณ ํ๋กํ์ ๋๋ฅด๋ฉด ์ผ๊ธฐ ์์ธ ํ์ด์ง๋ก ๋์ด๊ฐ๊ฒ ๋ง๋ค์๋ค. https://fullcalendar.io/ FullCalendar - JavaScript Event Calendar Open Source... With over 10 years of open source and over 120 contributors,.. Framework/Spring Framework 2023. 1. 23. (23.01.17.)Spring ํ๋ ์์ํฌ : AOP(Aspect Oriented Programming) ๊ด๊ณ์งํฅ ํ๋ก๊ทธ๋๋ฐ AOP(Aspect Oriented Programming) ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ Core Concerns : ๋ฉ์ธ ๋ก์ง Cross-Cutting Concerns : ๋ถ๊ฐ์ ์ธ ๋ก์ง(๋ก๊ทธ์ธ ๊ฒ์ฌ, ๋ณด์, ๋ก๊น ….) ๋ฐ๋ณต๋๋ ๋ถ๊ฐ ๋ก์ง์ ์ฌ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ(๋ถ๊ฐ๋ก์ง ์ค๋ณต๋ฐฉ์ง) OOP(Object Oriented Progrramming) ๋ฐฉ์์ผ๋ก๋ ์๋จ AOP ๋ฐฉ์์ ์ฌ์ฉํ์ฌ OOP๋ฅผ ๋ณด์ํ ์ ์์ Adivce : ๋ถ๊ฐ์ ์ธ ๋ก์ง์ ๋ฉ์๋๋ก ์ ์ธํ ๊ฒ Pointcut : ๋ถ๊ฐ๋ก์ง์ธ ์คํ๋ ๋ฉ์ธ ๋ก์ง์ ์์ ํ ๊ฒฝ๋ก ํํ Aspect : ๋ถ๊ฐ๋ก์ง์ ๋ฉ์๋๋ก ์ ์ธํ ํด๋์ค JoinPoint : ๋ถ๊ฐ๋ก์ง์ ์ด์ด์ ์คํ๋ ์ฃผ ๋ก์ง์ ๋ฉ์๋ ์ ๋ณด @Before, @After, @Around, @AfterReturning.. Framework/Spring Framework 2023. 1. 18. (23.01.16.)Spring ํ๋ ์์ํฌ : ์ด๋ฉ์ผ ์ธ์ฆ ๋ณด์ - ๋ค๋ฅธ ๊ธฐ๊ธฐ์์ ์ธ์ฆ์ ์ธ์ ์ด ๋ฌ๋ผ ์ธ์ฆ ์ค๋ฅ ๊ณ ์น๊ธฐ ์ด๋ฉ์ผ ์ธ์ฆ ๋ณด์ -์ธ์ฆ์ ์ ์ฒญํ ๊ธฐ๊ธฐ ์ด์ธ์ ๊ธฐ๊ธฐ์์๋ ์ธ์ฆ ๋ต๋ณ ๋ฉ์ผ ํ์ธ -์ด๋ฉ์ผ์ ์ธ์ฆ์ฉ ์ํธ ๋ฌธ์์ด์ ์ ๋ฌ -์ด๋ฉ์ผ ์์ ์๊ฐ ๋ฉ์ผ์ ์ด๊ณ ๋งํฌ ํด๋ฆญ > ์ํธ๋ฌธ์์ด์ ๋ค์ ์๋ฒ๋ก ๋ณด๋ด์ค๋ค. -์ด๋ฉ์ผ์ ๋ณด๋ผ๋์ ์๋ฒ์ธก ๋ฉ์๋์ ์ํธ๋ฌธ์์ด์ ๋ค์ ๋ฐ์ ๋์ ๋ฉ์๋๋ ๋ค๋ฅด๋ค. -์ด์ฉ์์ ์ธ์ ์ ์ํธ๋ฌธ์์ด์ ๊ธฐ์ต์์ผ๋๊ณ ๋์์์ ๋์ ์ํธ ๋ฌธ์์ด์ ๋น๊ตํ๋ค. -์์ ์ ์ฐจ๊ฐ ๋ชจ๋ ๋์ผ ์์คํ ์์ ์คํ๋๋ค๋ฉด ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋ค. -ํ์ง๋ง ๋ค๋ฅธ ๊ธฐ๊ธฐ์์ ์ธ์ฆ์ ์๋ต์ ๋๋ฅด๋ฉด ์ธ์ ์ด ๋ค๋ฅธ ์ธ์ ์ผ๋ก ๋ฐ๋๊ธฐ ๋๋ฌธ์ ์ธ์ฆ์ด ์๋ํ์ง ์๋๋ค. ๋ฐ๋ผ์ ์ธ์ฆ ๋งํฌ๋ฅผ ๋๋ฅผ ๋ ์ธ์ id๊น์ง ๊ฐ์ด ์ค์ ํด๋น ์ธ์ id์ ์๋ ๋ฌธ์์ด๊ณผ ํจ๊ป ๋น๊ตํ๊ฒ๋ ํด์ผํ๋ค. ๋จผ์ ๋ฉ์ธ ์ดํ๋ฆฌ์ผ์ด์ ์ @ServletComponentScan์.. Framework/Spring Framework 2023. 1. 18. (23.01.14.)Spring ํ๋ ์ ์ํฌ : ์๋ฌ ํ์ด์ง ๋ง๋ค๊ธฐ ์๋ฌ๊ฐ ๋จ๊ฒ ๋๋ฉด ์น์ ์ ๋ชจ๋ฅด๋ ์ด์ฉ์๋ ๋นํฉํ ์ ์๋ค. ๋ฐ๋ผ์ ์๋ฌ์ ์ข ๋ฅ์ ๋ฐ๋ผ ๊ฐ๋ฐ์๊ฐ ์๋ฌํ์ด์ง๋ฅผ ๊พธ๋ฉฐ์ ์ด์ฉ์์๊ฒ ์ ์ค๋ช ํ ์ ์๋ค. ErrorHandler.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.http.HttpStatus; i.. Framework/Spring Framework 2023. 1. 17. (23.01.13)Spring ํ๋ ์์ํฌ : ์ ๋ก๋๋ ์ด๋ฏธ์ง๋ฅผ ๋ธ๋ผ์ฐ์ ์์ ๋ณด๊ธฐ(์ด๋ฏธ์ง ํ๊ทธ, Thymeleaf์์ ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ) ์ ๋ก๋๋ ์ด๋ฏธ์ง๋ฅผ ๋ธ๋ผ์ฐ์ ์์ ๋ณด๊ธฐ โ -WEB-INF ์๋์ ๋๋ ํ ๋ฆฌ๋ ์น๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผ ๋ถ๊ฐ(WEB-INF/files/) -์๋ฒ์ธก์์ WEB-INF ์๋์ ์ด๋ฏธ์ง๋ฅผ ์ ํด์ค ์๋ ์์ - -์์ ํ๊ทธ๊ฐ ์น๋ธ๋ผ์ฐ์ ์ ๋ก๋๋๋ฉด ์น๋ธ๋ผ์ฐ์ ๋ ํด๋น ์ด๋ฏธ์ง๋ฅผ ์๋ฒ์ ์์ฒญํ๊ฒ ๋จ -์์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ปจํธ๋กค๋ฌ ๋ฉ์๋๊ฐ ์๋ค๋ฉด ์ด ๋ ๊ทธ ๋ฉ์๋๊ฐ ์คํ๋จ -์ปจํธ๋กค๋ฌ์์๋ @ResponseBody๋ฅผ ์ฌ์ฉํ์ฌ byte[ ]์ด ๋ธ๋ผ์ฐ์ ๋ก ๋ฆฌํด๋๋๋ก ํจ -์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ํ๊ทธ๋ ์ด๋ฏธ์ง๋ฅผ ํ๋ฉด์ ํ์ํ ์ ์์ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42.. Framework/Spring Framework 2023. 1. 16. (23.01.12) Spring ํ๋ ์ ์ํฌ : CRSF(Cross Site Request Forgery) CRSF(Cross Site Request Forgery) ํฌ๋ก์ค ์ฌ์ดํธ ์์ฒญ ์ฌ๊ธฐ ์๋ ์ฌ์ดํธ์์ ๋ฐ์์ค์ง ์์ ์กฐ์ํ ์นํ์ด์ง๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ ์์ ์์ฒญ url์ ์๊ณ ์๋ชป๋ ์์ฒญ์ ๋ณด๋ด๋ ค ํ ์ ์๋ค. CsrfTestConrtroller.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.spri.. Framework/Spring Framework 2023. 1. 13. (23.01.11.)Spring ํ๋ ์์ํฌ : Spring Security -JDBC Authentication Spring Security -JDBC Authentication ์คํ๋ง ์ํ๋ฆฌํฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๋ํ์ฌ ์ธ๊ฐ, ์ธ์ฆ ๋ณด์์ ํ๋ ค๋ฉด 3๊ฐ์ง๊ฐ ์์ด์ผ ํ๋ค. -config ํด๋์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ จ๋ ์ ๋ณด๊ฐ ์์ด์ผํ๋ค. (Datasource) -users์ authorities ํ ์ด๋ธ์ด ์์ด์ผ ํ๋ค. -๊ธฐ์กด์ ํ๋ In Memory Authentication ์ค์ ์ ๊ฑฐํด์ค์ผํ๋ค. users์ authorities ํ ์ด๋ธ ์์ฑ CREATE TABLE users ( username VARCHAR2(50) NOT NULL, password VARCHAR2(120) NOT NULL, enabled CHAR(1) NOT NULL, CONSTRAINT check_users_enabled CHECK(enabled .. Framework/Spring Framework 2023. 1. 11. (23.01.06)Spring ํ๋ ์์ํฌ : thymeleaf๋ฅผ ์ด์ฉํ ๋ณด์ ๋ก๊ทธ์ธ - ๋ก๊ทธ์ธ ์๋ฌ ๋ก๊ทธ์ธ ์๋ฌ ๋ฉ์์ง ๋์ฐ๊ธฐ pom.xml ์ค์ ์ (23.01.05)๊ฒ์๊ธ ์ฐธ๊ณ ! SimpleSecurityConfig.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 import org.springframework.beans.factory.annotation.Autowired; import org.s.. Framework/Spring Framework 2023. 1. 9. (23.01.05)Spring ํ๋ ์์ํฌ: ๋ก๊ทธ์ธ ๋ณด์ (SimpleSecurity) โโSpring ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ๋ณด์๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅโโ ๋จผ์ ํผ ์ค์ ์ ํด์ค์ผํ๋ค. org.springframework.boot spring-boot-starter-security org.springframework.security spring-security-taglibs org.springframework.security spring-security-web org.springframework.security spring-security-config pom.xml ์ dependency์ ์ ์ฝ๋๋ฅผ ๋ฃ์ด์ค์ผ ํ๋ค. SimpleSecurityConfig.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 .. Framework/Spring Framework 2023. 1. 9. (23.01.04)Spring ํ๋ ์์ํฌ : Java Mail Sending (POP์ ํตํ ๋ฉ์ผ๋ณด๋ด๊ธฐ) โโ Java Mail Sending โโ Post Office Post Office Protocol(POP) POP -> POP3 (์์ฆ์ pop3 ๋ฒ์ ์ ์ด๋ค) POP3 implemented server : POP3 Server(mail server) Google POP3 Server is open All Gmail users allowed ์ค์ ์ฌํญ -Google 2 step Authorization -Pc, Smart Phone -App Secure codes -application.properties ๋ธ๋ผ์ฐ์ ์ฐ์๋จ ํ๋กํ ์ด๋ฏธ์ง > ๊ณ์ ๊ด๋ฆฌ > ๋ณด์ > Google์ ๋ก๊ทธ์ธ/2๋จ๊ณ ์ธ์ฆ > ์ฑ ๋น๋ฐ๋ฒํธ ์ค์ > ๋น๋ฐ๋ฒํธ ๋ณต์ฌ - ๋ณต์ฌ๋ ๋น๋ฐ๋ฒํธ๋ฅผ application.properties์ ์ ๋ ฅ .. Framework/Spring Framework 2023. 1. 4. (23.01.02)Spring ํ๋ ์์ํฌ: ์น์์ผ์ ์ด์ฉํ ์ฑํ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ โโ ์น์์ผโโ - Thymeleaf, Websocket - HttpSession ์ ๋ฌ(Controller -> WebSocket) - Interceptor ๋ฐฉ์์ผ๋ก ServletContext ์ ๋ฌ - page, request, session, application - application : ์น์๋ฒ์ ํ๊ฐ๋ง ์กด์ฌ - application = ServletContext - Controller์์ ServletContext ์ HttpSession์ ์ฐธ์กฐ๋ฅผ ์ ์ฅ - ์ธํฐ์ ํฐ๋ฅผ ํตํด ServletContext ๋ฅผ WebSocket์ผ๋ก ์ ๋ฌ - WebSocket์์๋ WebSocketSession์ ํตํด์ ์ ๋ฌ๋ ์์ฑ ๊ฐ์ ์ถ์ถํ ์ ์๋ค - WebSocket์์๋ ๋จผ์ ServletContext๋ฅผ ์ถ์ถํ๊ณ .. Framework/Spring Framework 2023. 1. 2. (22.12.30)Spring ํ๋ ์์ํฌ:WebSocket์ ์ฌ์ฉํ ์ฑํ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ WebSocket์ ์ฌ์ฉํ ์ฑํ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ - Spring boot ๊ธฐ๋ฐ ๊ณ ์์ค - ์น์ฌ์ดํธ ์ ์์ ์ ์ฒด๋ฅผ ๋์์ผ๋ก ํ ์ฑํ - ํน์ ์ด์ฉ์ ๊ทธ๋ฃน/๊ฐ์ธ์ ๋์์ผ๋ก ํ ์ฑํ (์์ฉ ์์: ์ฑ๋ด , ์ฑํ ) -์น ์๋ฒ์์ ์๋ฒ ์์ผ์ ๋๊ณ ์น๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์์ผ์ ์ ์์์ฒญํ๋ ๊ฐ๋ (์น์๋ฒ-์น๋ธ๋ผ์ฐ์ ๊ฐ์ ํต์ ) -http ํ๋กํ ์ฝ์ ์ ์์์ฒญ ํ ์ ์๋๋ฉด ์๋ต์ ์ ์กํ๊ณ ์ ์ ํด์ ServerSocket : ๋คํธ์์๋ฒ, ๋ฌดํํ ํด๋ผ์ด์ธํธ๋ฅผ ๋๊ธฐํจ Socket : ์๋ฒ์ ์ ์ ์์ฒญ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋ค. ํต์ ๊ธฐ๋ฅ์ด ๋ค์ด์๋ค.(์๋ฐ ๊ฒฝ์ฐ) ์ ์์ค์ ์์ผ๊ณผ ์๋ฒ์์ผ ๋ง๊ณ ๊ณ ์์ค์ ์น์์ผ์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋๋ฐํ๊ธฐ ์น ์์ผ ์ค์ ํ๊ธฐ - main Class 1 2 3 4 5 6 7 8 9 10 11 12 13 1.. Framework/Spring Framework 2022. 12. 30. ์ด์ 1 2 3 4 ๋ค์