Web programming29 ์ํ์น vs ์์ง์์ค ๊ฐ์๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ฉด์ ๋๋ฆฌ ์ฐ์ด๋ ์น์๋ฒ๋ก Apache HTTP Server, Nginx ๊ฐ ๋๋ฆฌ ์ฐ์ด์ง๋ง, ํ๋์ ์์๋ Nginx ์ ์์ฅ ์ ์ ์จ์ด Apache HTTP Server ๋ฅผ ๋ฐ์ด ๋์ด์ ์์ฅ ์ ์ ์จ์ด ๋ ๋์ Nginx ๋ฅผ ์ฌ์ฉํ๋ค. Nginx ๋ ์ด๋ป๊ฒ Apache HTTP Server ์ ์ ์ ์จ์ ๋ฐ์ด ๋๊ฒ ๋๊ณ , ๋์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น ํ์ตํด ๋ณด์๋ค. Apache HTTP Server Apache HTTP Server(์ดํ ์ํ์น ์๋ฒ)๋ 1995๋ ๋ง๋ค์ด์ก๋๋ฐ, ์ํ์น ์๋ฒ์ ๋ด๋ถ ๋์์ ๋ณด๋ฉด ์์ฒญ์ด ๋ค์ด ์ค๋ฉด ์ปค๋ฅ์ ์ ํ์ฑํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ฅผ ์๋ก ์์ฑํ๋ค.ํ๋ก์ธ์ค์ ์์ฑํ๋ ๊ฒ์ด ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ ์์ ์ด๋ ์์ฒญ์ด ๋ค์ด์ค๊ธฐ ์ ์ ํ๋ก์ธ์ค๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋๋ pre.. Web programming 2024. 3. 29. NGINX ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ ์ค์ ํธ๋ฌ๋ธ ์ํ ๊ฐ์์์ ํ๋ก์ ํธ์ฒ๋ผ, ์ด๋ฒ ํ๋ก์ ํธ์์๋ ํ๋ก ํธ์๋ ํ์ด Vercel ์ ๋ฐฐํฌ๋ฅผ ํ์์ต๋๋ค. ๋ฐฐํฌ๋ Vercel ํ์ด์ง์์๋ HTTPS ํต์ ์ ์ฌ์ฉํด์ผ ํ๊ณ , ์์ฒญ์ ๋ณด์ ์ฒ๋ฆฌ ํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์, HTTPS ํต์ ์ผ๋ก API ์์ฒญ์ ๋ฐ์ ์ ์์ด์ผ ํ์ต๋๋ค.๋ฐฑ์๋ API ์๋ฒ์ ์ง์ HTTPS ํต์ ์ ๊ดํ ์ค์ ํ ์ ์์ง๋ง, ๊ทธ๋ ๊ฒ ํ์ง ์๊ณ SSL Termination ์ด๋ผ๋ ๋ฐฉ์์ ์ฌ์ฉํ์ต๋๋ค. ์คํ๋ก๋ฉ(Offloading)์ ์์คํ ์ ํน์ ์์ ์ด๋ ์ฒ๋ฆฌ๋ฅผ ๋ค๋ฅธ ์์คํ , ์ฅ์น ๋๋ ํ๋ก์ธ์ค๋ก ์ด์ ํ์ฌ ๋ฉ์ธ ์์คํ ์ ๋ถํ๋ฅผ ์ค์ด๊ณ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ธฐ์ ์ ๋๋ค. ๋ฐฑ์๋ ์๋ฒ์ ๊ณตํต๋ ์๋จ์ ํ ๊ณณ์์ SSL ๊ด๋ จ ์ฒ๋ฆฌ๋ฅผ ๋ชจ๋ ์งํํ๋ ๊ฒ์ ๋๋ค. SSL Termination์ SSL Offloading.. Web programming 2024. 2. 27. SSL Termination ์ ์ํด NginX ๋ก ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ ๊ตฌ์ถํ๊ธฐ ๊ฐ์์์ ํ๋ก์ ํธ์์ Active Mixed Content ์๋ฌ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ฐฑ์๋ ์๋ฒ์ HTTPS ํต์ ์ด ๊ฐ๋ฅํด์ผ ํ์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด SSL Termination ๋ฐฉ์์ ์ฌ์ฉํ์๊ณ , SSL Termination ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ 2๊ฐ์ง๊ฐ ๋ํ์ ์ด๋ผ๋ ๊ฑธ ๋ง์๋๋ ธ์ต๋๋ค. ๊ทธ์ค ์ ํ๋ก์ ํธ์์๋ ๋ก๋๋ฐธ๋ฐ์๋ฅผ ํ์ฉํ์ฌ ์ด๋ฅผ ํด๊ฒฐํ์ต๋๋ค. 1. ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ ํ์ฉ : ์ํ์น ํน์ NGINX ๋ฅผ ๊ตฌ๋์์ผ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ๋ฅผ ๋ง๋ค์ด ๋ฐฑ์๋ ์๋ฒ์ ์์ฒญ์ด ์ค๋ฉด ๋จผ์ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ์์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค. ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ์๋ Let's Encrypt ๊ฐ์ TLS/SSL ์ธ์ฆ์๋ฅผ ์ฝ๊ฒ ๊ฐ์ ธ์ค๊ณ ์ค์นํ ์ ์๋ CA(์ธ์ฆ ๊ธฐ๊ด)์์ ์ ๊ณตํ๋ ์ธ์ฆ์๋ฅผ ์ค์ ํ์ฌ SSL Termination์.. Web programming 2024. 2. 20. CORS ์๋ฌ ๊ฐ๋ ๊ณผ ํด๊ฒฐ๋ฒ (Spring MVC, Spring Security) ์ด์ฌํ ๋ง๋ ํ๋ก์ ํธ๋ฅผ EC2์ ๋์ ์๋ฒ๋ฅผ ํ์ฑํ ์ํค๊ณ ํ๋ก ํธ ์๋์ ๋ก์ปฌ์์ ํ ์คํธ๋ฅผ ํด๋ณด๋ ค ํ๋๋ฐ, ๋ ์ฉ?! ํ์ด์ง์ ๋ฐ์ดํฐ๋ ๋ณด์ด์ง ์๊ณ , ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ผ๋ฉด ๋นจ๊ฐ ์๋ฌ๋ค๋ง ๊ฐ๋ํ์ต๋๋ค. NBA์ ์ฒซ ๋ฐ๊ธธ์ ๋ด๋๋ ์ ์ธ ์ ์๋ฅผ ํ์ํด์ฃผ๋ฉฐ ๋์ ๊ฐ๊ณ ์์ ํฌ๋ฅผ ์ฑ๊ณต์ํค๋ฉฐ "Welcome to NBA"๋ฅผ ์ธ์น๋ ๋ง์ดํด ์กฐ๋ ๋ง๋ฅ, CORS ์๋ฌ๋ ์น๊ฐ๋ฐ์ ํ๋ ๊ฐ๋ฐ์๋ค์๊ฒ ์น๊ฐ๋ฐ ์ธ๊ณ๋ฅผ ํ์ํด์ฃผ๋ฉฐ ๊ฒช๊ฒ๋๋ ํต๊ณผ์๋ก ๊ฐ์ ๋ ์์ ๋๋ค.ํ๋ก์ ํธ๋๋ CORS์๋ฌ๋ก ์์ฒญ ๊ณ ์์ ํ์ฌ ๊น๋จน์ง ์๊ฒ ๊ณต๋ถ์ ๊ธฐ๋ก์ ํ๋ คํฉ๋๋ค. ๐ค CORS ๋?CORS ๋ Cross-Origin Resource Sharing ์ด๋ผ๋ ๋ป์ ๋๋ค. ์ด ๋ฌธ์ฅ์ ์ง์ญํ๋ฉด "๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ ์ ์ฑ "์ด๋ผ๊ณ ํด์ํ ์ ์๋๋ฐ, ์ฌ๊ธฐ์.. Web programming 2023. 12. 20. Web programming : RESTful URL ์ค๊ณ ๊ท์น URI(Uniform Resource Identifier)์ URL(Uniform Resource Locator) URI๋ ๋คํธ์ํฌ ์์ ์๋ ํน์ ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ ํตํฉ ์์ ์๋ณ์(Uniform Resource Identifier)๋ฅผ ์๋ฏธํ๋ค. URL์ ์ธํฐ๋ท์ ์๋ ๋ฆฌ์์ค๋ฅผ ๋ํ๋ด๋ ํตํฉ ๋ฆฌ์์ค ์๋ณ์๋ฅผ ์๋ฏธํ๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ํํ๋ค ์ด์ผ๊ธฐํ๋ ์น ์์ ์ฃผ์๋ฅผ ์๋ฏธํ๋ค. URI๋ URL์ ์์ ๊ฐ๋ ์ผ๋ก ๋ณผ ์ ์๋ค. URI๋ ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ ์๋ณ์ ์ญํ ์ ํ๊ณ , URL์ ์๋ณ์ ์ญํ ์ค์์๋ ๋ฆฌ์์ค์ ์์น๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์) http://www.restapi.example.com/member/1 ๋ ๋ฆฌ์์ค์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ URL์ด๋ผ๊ณ ํ ์ ์๋ค. ์) URI ์ ์์๋ก๋ ๋์๋ฅผ ์๋ณํ๋ ๊ตญ์ ํ์ค๋์๋ฒํธ.. Web programming 2023. 12. 13. Web programming : RESTful API ๋ RESTful API๋ ๋ฌด์์ธ๊ฐ์? RESTful API๋ ๋ ์ปดํจํฐ ์์คํ ์ด ์ธํฐ๋ท์ ํตํด ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๊ตํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค์ ๋๋ค. ๋๋ถ๋ถ์ ๋น์ฆ๋์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ํ์คํฌ๋ฅผ ์ํํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์๋ ํํฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํต์ ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๊ฐ ๊ธ์ฌ ๋ช ์ธ์๋ฅผ ์์ฑํ๋ ค๋ฉด ์ธ๋ณด์ด์ค ๋ฐํ์ ์๋ํํ๊ณ ๋ด๋ถ์ ๊ทผ๋ฌด ์๊ฐ ๊ธฐ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํต์ ํ๊ธฐ ์ํด ๋ด๋ถ ๊ณ์ ์์คํ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ณ ๊ฐ์ ๋ฑ ํน ์์คํ ๊ณผ ๊ณต์ ํด์ผ ํฉ๋๋ค. RESTful API๋ ์์ ํ๊ณ ์ ๋ขฐํ ์ ์์ผ๋ฉฐ ํจ์จ์ ์ธ ์ํํธ์จ์ด ํต์ ํ์ค์ ๋ฐ๋ฅด๋ฏ๋ก ์ด๋ฌํ ์ ๋ณด ๊ตํ์ ์ง์ํฉ๋๋ค. ์ถ์ฒ : https://aws.amazon.com/ko/what-is/restful-api/ REST์ ๊ตฌ์ฑ์์ โญ R.. Web programming 2023. 12. 12. WAS (Web Application Server)์ WS (Web Server)์ ์ฐจ์ด WAS(Web Application Server)์ WS (Web Server)๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ์ฃผ์ ์ปดํฌ๋ํธ๋ค. ์ด ๋์ ๊ธฐ๋ฅ๊ณผ ์ญํ ์ด ๋ค๋ฅด๋ฉฐ, ์ข ์ข ์๋ก ๋ณด์์ ์ผ๋ก ์ฌ์ฉ๋๋ค.Web Server (WS)์ ์์น ์๋ฒ๋ ์ ์ ์ธ ์ฝํ ์ธ (HTML, CSS, JavaScript, ์ด๋ฏธ์ง ๋ฑ)๋ฅผ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์ ์ ๊ณตํ๋ ์๋ฒ๋ค. HTTP ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ ์ ํ์ผ์ ๋ฐํํ๋ ์ญํ ์ ์ฃผ๋ก ์ํํ๋ค.์ฃผ์ ๊ธฐ๋ฅ์ ์ ์ฝํ ์ธ ์ ๊ณต : HTML, CSS, JavaScript, ์ด๋ฏธ์ง ํ์ผ ๋ฑ๊ณผ ๊ฐ์ ์ ์ ํ์ผ์ ํด๋ผ์ด์ธํธ์ ์ ๊ณต.HTTP ์์ฒญ ์ฒ๋ฆฌ : HTTP/HTTPS ํ๋กํ ์ฝ์ ํตํด ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์์ ์๋ต.๋ถํ ๋ถ์ฐ : ์ฌ๋ฌ ์๋ฒ์ ์์ฒญ์ ๋ถ์ฐ์์ผ ์๋ฒ์ ๋ถํ๋ฅผ ์ค์.S.. Web programming 2023. 10. 24. (23.01.27)์ดํด๋ฆฝ์ค์์ ์์ฑํ ํ๋ก์ ํธ๋ฅผ ์ด์์๋ฒ์ ๋ฐฐํฌํ๊ธฐ , ์ดํด๋ฆฝ์ค ๋ฆฌ์กํธ ์ฐ๋ํ๊ธฐ (Eclipse - React) ์ดํด๋ฆฝ์ค์์ ์์ฑํ ํ๋ก์ ํธ๋ฅผ ์ด์์๋ฒ์ ๋ฐฐํฌํ๊ธฐ Eclipse๋ ๊ฐ๋ฐ ํ๊ฒฝ, ๊ฐ๋ฐ ํ ์คํ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ ์ ์ฐจ๊ฐ ์๊ตฌ๋จ ์คํ ํ๊ฒฝ: Tomcat ์๋ ๊ฒฝ์ฐ Tomcat ์๋ ๊ฒฝ์ฐ JAR ํ์ผ๋ก ํจํค์ง : Web App ์๋๊ฒฝ์ฐ ( ex. ojdbc ๋ฑ๋ฑ), Tomcat ์ด ๋ด์ฅ๋ Web App ์ธ ๊ฒฝ์ฐ java -jar myproject.jar application.properties์์ war๋ฅผ jar๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ WAR ํ์ผ๋ก ํจํค์ง : Web Application Archives, Tomcat์ webapps/์์ ๋ณต์ฌ ์์๋ฅผ ๋ณด๊ธฐ ์ํ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ธฐ application.properties ์ค์ ํ ์คํธ์ฉ ์ปจํธ๋กค๋ฌ ๋ง๋ค๊ธฐ ์ปจํธ๋กค์ด ์ ์๋ํ๋์ง ํ ์คํธ clean ํด์ฃผ๊ธฐ install ํด์ฃผ๊ธฐ .. Web programming 2023. 1. 28. (22.12.12)MVC ๋ฐฉ์ ๊ฐ๋ฐ๋ฐฉ๋ฒ๋ก 2 - SQL์ฐ๋ํ์ฌ ๊ด๋ฆฌ์ ์ฌ์ดํธ ๋ง๋ค๊ธฐ โโ๊ด๋ฆฌ์ ์ฌ์ดํธ ๋ง๋ค๊ธฐโโ ์ด์ฉ์๊ฐ ๋ฌธ์ ๋ฅผ ํผ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ฑ์ ์ ํ๊ณ ๋ค์ ํ์ต์ ํ ์ ์๊ฒ ํด์ค๋ค. ์ด์ฉ์์ ํ์ต ํ์คํ ๋ฆฌ๋ฅผ ๋ฐ์์ ๋ณด๊ฒ ๋๋ค. M : AdminVO.java , UserVO.java , HwStatusVO.java , AdminLmsDAO.java V : adminList.jsp , adminDetail.jsp , AdminLoginForm.jsp , userDetail.jsp C : AdminLmsServlet.java Service Class : AdminLmsService.java AdminLmsServlet.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 import java.io.IOExcep.. Web programming 2022. 12. 12. (22.12.11)Web ํ๋ก๊ทธ๋๋ฐ : ์นํ์ด์ง ํค๋ ๋ง๋ค๊ธฐ (include file ์ด์ฉํ๊ธฐ) โโ์นํ์ด์ง ํค๋ ๋ง๋ค๊ธฐโโ โโ์ ์ฒด ์ฝ๋โโ 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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 1๋ถ ๋์คํ์ตํ๊ธฐ var uid=''; $(function(){ if(uid=='null'){.. Web programming 2022. 12. 11. (22.12.10)CSS: A ํ๊ทธ ์์ฑ (link, visited, hover, active), HTML ํ ์ด๋ธ ๋ง์ฐ์ค์ค๋ฒ ์ด๋ฒคํธ CSS: A ํ๊ทธ ์์ฑ (link, visited, hover, active) a:link : ๋ฐฉ๋ฌธ ์ ๋งํฌ ์ํ์ด๋ค. a:visited : ๋ฐฉ๋ฌธ ํ ๋งํฌ ์ํ์ด๋ค. a:hover : ๋ง์ฐ์ค ์ค๋ฒ ํ์ ๋ ๋งํฌ ์ํ์ด๋ค. a:active : ํด๋ฆญ ํ์ ๋ ๋งํฌ ์ํ์ด๋ค. ์์ 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 a:link{ text-decoration:none; color: black;} a:visited{ text-decoration:none; color: black;} a:hover{ text-decoration:none; color: white;} a:active{ text-decoration:non.. Web programming 2022. 12. 11. ์ด์ฉ์ ๋์์ ํ์ต ํ์ด์ง ์ด์ฉ์๊ฐ ๋์์์ ํ์ตํ๊ณ ๊ด๋ฆฌ์๊ฐ ํต๊ณผ ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ ํต๊ณผ ํ๋ฉด ๋ค์๋จ๊ณ ํ์ต์ ์์ํ ์ ์๋๋ก ํ๊ธฐ M : UserVO.java , LHVO.java , Video.java , HwStatus.java , PraticeVO.java , Questions.java , LmsDAO.java V : learn.jsp , Main.jsp , practice.jsp , user_info.jsp , userDetailForUser.jsp , editUser.jsp C : LmsServlet.java Service Class : LmsService.java UserVO.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.. Web programming 2022. 12. 8. ์ด์ 1 2 3 ๋ค์