๐ปWEB BackEnd (19) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ๊ตฌํ(1) - ํ์๊ฐ์ ๋ฐ ์ด๋ฉ์ผ ์ธ์ฆ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด์ 2๊ฐ์ง util class๊ฐ ํ์ํ๋ค. SHA256.java : ์ด๋ฉ์ผ ์ธ์ฆ์ ์ํด ์ฌ์ฉ๋๋ ํด๋์ค Gmail.java : Gmail SMTP๋ฅผ ์ด์ฉํ๊ธฐ ์ํด์ ์ ๋ณด๋ฅผ ๋ฃ๋ ํด๋์ค util ํด๋์ค ์ค์ 1) SHA256.java : ์ด๋ฉ์ผ์ ํด์ฌ๋ฅผ ์ ์ฉํ ๊ฐ์ ๋ฐํํ๋ ํด๋์ค package util; import java.security.MessageDigest; public class SHA256 { public static String getSHA256(String input) { StringBuffer result = new StringBuffer(); try { MessageDigest digest = MessageDigest.getInstance("SHA-256").. ํ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์ค๊ณ๊ฐ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ํ ๋๋ก JAVA ์์ค์ฝ๋๋ก ์์ฑํด์ฃผ๋ฉด๋๋ค. UserDTO ํด๋์ค ์ค์ 1) ํ์ผ ์์ฑ Java Resources ํด๋ > src > user ํจํค์ง๋ฅผ ์์ฑํ๊ณ , user ํจํค์ง > UserDTO.java ํด๋์ค, UserDAO ํด๋์ค๋ฅผ ์์ฑํด์ค๋ค. ์์ฑํ UserDTO.java ํ์ผ ์์ ๋ค์ ์ฝ๋๋ฅผ ์์ฑํด์ค๋ค. package user; public class UserDTO { private String userID; private String userPassword; private String userEmail; private String userEmailHash; private Boolean userEmailChecked; } 2) ๋ณ์์ getter, .. DB ์ค๊ณ & ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง DB ์ค๊ณ LE ๋ฐ์ดํฐ๋ฒ ์ด์ค > User ํ ์ด๋ธ CREATE DATABASE LE; USE LE; CREATE TABLE LE ( userID varchar(20) PRIMARY KEY, userPassword varchar(64), userEmail varchar(50), userEmailHash varchar(64), userEmailChecked boolean, ); DESC USER; LE ๋ฐ์ดํฐ๋ฒ ์ด์ค > EVALUATION ํ ์ด๋ธ CREATE TABLE EVALUATION ( evaluationID int PRIMARY KEY AUTO_INCREMENT, userID varchar(20), lectureName varchar(50), professorName varchar(20), lecture.. ๋ก๊ทธ์ธ, ํ์๊ฐ์ , ๋ก๊ทธ์์ ๊ตฌํ userLogin.jsp ํ์ด์ง ๋์์ธ ๊ธฐ๋ฅ ๊ตฌํ userJoin.jsp ํ์ด์ง ๋์์ธ ๊ธฐ๋ฅ ๊ตฌํ index.jsp ํ์ด์ง index.jsp ๊ธฐ๋ฅ ๊ฐ์ ํ๊ฐ ๊ฒ์ ๊ฐ์ ํ๊ฐ ๋ฑ๋ก ์ ๊ณ ํ๊ธฐ ํ์ด์ง ๋์์ธ ๊ธฐ๋ฅ ๊ตฌํ ์น๋์์ธ ํ๋ ์์ํฌ - Bootstrap & jQuery ๋ถํธ์คํธ๋ฉ ์ ์ฉ 1) ์๋ ๋งํฌ์์ "Compiled Css and Js" ์ Downloadํด๋ฆญ https://getbootstrap.com/docs/5.0/getting-started/download/ 2) ๋ค์ด๋ก๋ ๋ฐ์ ํ์ผ ํ๋ก์ ํธ์ ์ฌ์ฉ webapp > cssํด๋, jsํด๋ ์์ฑํ๊ณ bootstrap.min.cssํ์ผ๊ณผ bootstrap.min.jsํ์ผ ๋ฃ๊ธฐ JQuery ์ ์ฉ 1) js > popper.js ํ์ผ ์์ฑ popper.js ํ์ผ์ ์๋ ๋งํฌ ์ฝ๋ ๋ณต๋ถ! https://unpkg.com/popper.js@1.12.9/dist/umd/popper.min.js 2) jQuery ์ค์น ์๋ ๋งํฌ์์ JQuery ๋ค์ด๋ก๋ https://jquery.com/download/ jquery.min.. MySQL + JSP ์ฐ๋ MySQL ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ JSP์ MySQL ์ฐ๋ 1) user ํจํค์ง ์์ฑ Java Resourses > New > Package (ํจํค์ง ๋ช : USER ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช ๊ณผ ๋์ผํ๊ฒ ์ง์ด์ค) 2) user ํจํค์ง ๋ด์ UserDTO, UserDAO ํด๋์ค ์์ฑ UserDTO(data transfer object) : jspํ๋ก๊ทธ๋จ ์์์ ์ผ์์ ์ผ๋ก ํ๋์ ๋ฐ์ดํฐ ๋จ์๋ฅผ ๋ด๊ธฐ ์ํ ์ฉ๋๋ก ์ ์๋ ๊ฐ์ฒด UserDAO(data access object) : ์ค์ง์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๋๋์ด ์ด๋ ํ ๋ด์ฉ์ ๊ธฐ๋กํ๊ณ ๊ฐ์ ธ์ค๋ ์ญํ ์ ์ํํ๋ ๊ฐ์ฒด 3) UserDTO.java ํ์ผ ์ฝ๋ ์์ฑ package user; public class UserDTO { String userID; String userPasswo.. ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ + ํ ์คํธ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ 1. ์น ๋ธ๋ผ์ฐ์ : ํฌ๋กฌ 2. ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ : JDK 3. JEE ๊ฐ๋ฐ ํ๊ฒฝ : Eclipse 4. Tomcat ์ค์น ํ ์คํธ 1) ์ดํด๋ฆฝ์ค์์ New > "Dynamic Web Project" ์ ํ 2) ์์ฑํ ํ๋ก์ ํธ ์ค์ 3) index.jsp ํ์ผ ์์ฑ 4) ํ๋ก์ ํธ ์คํ ๊ฒฐ๊ณผ ํ๋ฉด! ์์กด ๊ฐ์ฒด ์๋ ์ฃผ์ ๋ชฉ์ฐจ ์์กด ๊ฐ์ฒด ์๋ ์ฃผ์ @Autowired, @Resource, @Inject ์์กด๊ฐ์ฒด ์ ํ ์์กด๊ฐ์ฒด ์๋ ์ฃผ์ ์ฒดํฌ ์์กด ๊ฐ์ฒด ์๋ ์ฃผ์ ์คํ๋ง ์ค์ ํ์ผ์์ ์์กด ๊ฐ์ฒด๋ฅผ ์ฃผ์ ํ ๋, ๋๋ ํ๊ทธ๋ก ์์กด ๋์ ๊ฐ์ฒด๋ฅผ ๋ช ์ํ์ง ์์๋ ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์๋์ผ๋ก ํ์ํ ์์กด ๋์ ๊ฐ์ฒด๋ฅผ ์ฐพ์์ ์์กด ๋์ ๊ฐ์ฒด๊ฐ ํ์ํ ๊ฐ์ฒด์ ์ฃผ์ ํด ์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. @Autowired ์ฃผ์ ํ๋ ค๊ณ ํ๋ ๊ฐ์ฒด์ ํ์ ์ด ์ผ์นํ๋ ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ์ฃผ์ @Autowired๋ ํ๋, ์์ฑ์, Setter์ ๋ถ์ผ ์ ์๋ค. ๋จ, @Autowired๋ฅผ ํ๋, Setter์ ๋ถ์ฌ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฐ๋์ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ์ ์๋์ด ์์ด์ผ ํ๋ค. 1) @Autowired - ํ๋ ์ฃผ์ public class WordRegisterServiceUs.. DI(Dependency Injection) ๋ชฉ์ฐจ DI(Dependency Injection)๋? ์คํ๋ง DI ์ค์ ๋ฐฉ๋ฒ ์คํ๋ง DI ์์ ๋ค์ํ ์์กด ๊ฐ์ฒด ์ฃผ์ ๋ฐฉ๋ฒ DI(Dependency Injection)๋? ๋ค์ ์ธ ๊ฐ์ง ๊ฒฝ์ฐ ๋ค DI๋ผ๊ณ ํ ์ ์๋ค. ๋ค๋ง, ์กฐ๊ธ์ฉ์ ์ฐจ์ด๊ฐ ์๋ค. ๋ฐฐํฐ๋ฆฌ ์ผ์ฒดํ : ์์ฑ์์์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ๋ฐฐํฐ๋ฆฌ ๋ถ๋ฆฌํ(1) : setter๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ๋ฐฐํฐ๋ฆฌ ๋ถ๋ฆฌํ(1) : ์์ฑ์, setter๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ # ๋ฐฐํฐ๋ฆฌ ์ผ์ฒดํ public class EletronicCarToy { private Battery battery; public ElectronicCarToy() { battery = new NormalBattery(); } } # ๋ฐฐํฐ๋ฆฌ ๋ถ๋ฆฌํ(1) public class EletronicR.. ์ด์ 1 2 ๋ค์