puppeteer ๊ฐ ๋ญ๊น...headless browser ๊ฐ ๋ญ๊น.... ใ ใ ใ ํฌ๋กฌ์์ด ํฌ๋กฌ์ ์คํํด๋ณผ๊น?์ํค๋ณด๊ธฐํ๋ฉด์ด ์๋ค. ์ฐฝ์ด ์๋ค ๋ธ๋ผ์ฐ์ .๋ง ๊ทธ๋๋ก GUIํ๊ฒฝ์ด ์๋, CLI์์ ๋์ํ๋ ๋ธ๋ผ์ฐ์ ๋ค.๋ณดํต browser๋ฅผ ์ด์ฉํ ๋, ํ๋ฉด(์ฐฝ)์ด ๋จ๊ณ ๊ทธ ์์
์ผ๋ง์ ๊น์ง ajaxํ๋ฉด JQuery๋ง ๋ ์ฌ๋ฆฌ๋ ์์ ์ ๋ฐ์ฑํ๋ฉฐ ์์ฑํ๊ฒ ๋์์ต๋๋ค ใ .ใ 1. Asynchronous ์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์์ฐจ์ ์ผ๋ก ์งํ๋ฉ๋๋ค -> ๋๊ธฐ ๊ทธ๋ฐ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ single thread์ ์ธ์ด์ ๋๋ค. ๋ง์ฝ Multi thread๋ฅผ
์ฑ๊ธ ์ค๋ ๋ โ ๋ช ๋ น์ด๋ฅผ ํ๊ฐ๋ฐ์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฏ๋ก, ๋ญ๊ฐ ์ฒ๋ฆฌ๊ฐ ์ค๋๊ฑธ๋ฆฌ๋ ๋ช ๋ น์ด๊ฐ ๋จผ์ ์ค๋ฉด ๋ค์ ๋ช ๋ น์ด ์ฒ๋ฆฌ๊ฐ ์ง์ฐ๋ ์ ์๋ค. (ex. Keys ๋ช ๋ น์ด) ๋งค์ฐ๋น ๋ฅธ ๋น๊ด๊ณํ databaseSQL database์ ๋นํด ํผํฌ๋จผ์ค๊ฐ 200๋ฐฐ ํฅ์๋ ์ ์๋ค.5๊ฐ
HyperText Transfer ProtocolHTML์ ์ ์กํ๋ ํ๋กํ ์ฝ๋ก ์์ํ๋ค.์ง๊ธ์ ๊ฑฐ์ ๋ชจ๋ ํํ์ data๋ฅผ ์ ์กํ๋ค.์ง๊ธ ๊ฐ์ฅ ๋ง์ด ์ฐ๊ณ ์๋ ๊ฒ์ HTTP/1.1 ์ด๊ณ HTTP/2 ์ HTTP/3์ ์ฑ๋ฅ๊ฐ์ ์ ์ด์ ์ ๋ง์ท๋ค.HTTP๋ ๋จ์ํ๋ค! ๋ฉ์ธ์ง๋
๋ณต์กํ '์ธํฐ๋ท ๋ง' ์ ์ดํดํ๊ธฐ ์ํด์๋ IP์ ๋ํ ์ดํด๊ฐ ํ์ํ๋ค.๋จ์ํ๊ฒ ํต์ ํ๋ฉด ์ฃผ์๋ผ๋๊ฒ ํ์์๊ฒ ์ง๋ง, ๋ฐ๋ค๊ฑด๋ ๋ณด์ด์ง์๋ ๊ณณ์ผ๋ก๊น์ง ํต์ ํ๋ ค๋ฉด ์ธํฐ๋ท ๋ง์ ๊ฑฐ์ณ์ผํ๋๋ฐ ๋ณต์กํ ๋ง์ ์ง๋ ๋ชฉ์ ์ง๊น์ง ์ ํํ๊ฒ ๊ฐ๋ ค๋ฉด ๋ชฉ์ ์ง ์ฃผ์๊ฐ ํ์ํ๋ค.์ง์ ํ IP์ฃผ์์ ๋ฐ
๋ก๋๋ฐธ๋ฐ์ฑ์ ํ ๊ณณ์ ์๋ํฌ์ธํธ๋ก ๋ค์ด์ค๋ ํธ๋ํฝ์ ๊ฐ ์ธ์คํด์ค๋ก '๋ถ์ฐ'์์ผ์ค๋ค.ํด๋์ ๋ก๋๋ฐธ๋ฐ์ (ELB): ๋ ์ด์ด4๊ณ์ธต์์ ์๋๋ฌผ๋ฆฌ์ ์ธ ํ๋์จ์ด ์์ญ์ด๊ธฐ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝ/์์ ํ ์ ์๋ค.์ดํ๋ฆฌ์ผ์ด์ ๋ก๋๋ฐธ๋ฐ์ (ALB): ๋ ์ด์ด7๊ณ์ธต์์ ์๋์ ํ๋ฆฌ์ผ์ด์ ๊ณ
์์ฆ ํ์ฌ์ ์ ์ํ๋๋ผ ๊ธฐ์ ๋ธ๋ก๊ทธ ์์ฑ์ ์ํํ๋คใ ใ ์์ผ๋ก ์ข ๋ ๋ฐ์ฑํ๊ณ ๊ณต๋ถํ๋ฉด์ ๊ณ์ ์์ด๋ฒ๋ฆฌ๋ ๋ถ๋ถ์ด๋, ์๋กญ๊ฒ ์๊ฒ๋ ๋ด์ฉ์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค!!โป๊ฒฐ๊ตญ ์ธํฐํ์ด์ค์ด๊ธฐ ๋๋ฌธ์ JPA๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ JPA๋ฅผ ๊ตฌํํ Hibernate, EclipseLink, D
QA๋ ์ค๋ฅ๋ฅผ ์ฐพ์ง ๋ชปํด์ผํ๋ค.: ๊ฐ๋ฐํ์ ์ค๋ฅ๊ฐ ์ด๋ป๊ฒ ๋ฐ์ํ๋์ง ์์ ์๊ฒ ๋ฌผ์ด๋ณด๊ณ ๋ ๋ฐ์ํ์ง ์๋๋ก ์กฐ์น๋ฅผ ์ทจํด์ผํ๋ค.QA์ ์ญํ ์ ์ฌ์ ๋ถ์ ํจ๊ป ์๋ํ๋ ์ธ์ ํ ์คํธ๋ฅผ ๋ง๋๋ ์ผ์ด๋ค.์ธ์ํ ์คํธ๋ ์์คํ ์ ๋ํ ์ง์ ํ ๋ช ์ธ์์ด์ ์๊ตฌ์ฌํญ ๋ฌธ์์ด๋ค.๋ณดํต ์ฌ์ ๋ถ๋ '
ํ๋ก์ ๋ง์๊ฐ์ง์๋๋ผ๊ณ ๋งํ๊ธฐ์๋ผ๊ณ ๋งํ๊ธฐ์ฝ๋ฉํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ฐ์ต์ธ์ ํ ์คํธํ ์คํธ ์ ๋ต์๊ฐ ๊ด๋ฆฌ์ถ์ ์๋ฐํจ๊ป ์ผํ๊ธฐํ๊ณผ ํ๋ก์ ํธ๋๊ตฌ ํ์ฉ"๊ทธ๋ฅ ์์ด, ์ด ์น๊ตฌ์ผ."ํ๋กํ์ ๋๋ฆฌ์ฆ Professionalism : ๋ช ์์ ๊ธ์ง์ ์์ง์ด์ ๋์์ ์ฑ ์๊ณผ ์๋ฌด๋ฅผ ๋ํ๋ธ๋ค.์ฑ ์๊ฐ์
ํด๋์ค :๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ด๊ธฐ ์ํ ์ค๊ณ๋๋ณ์์ ๋ฉ์๋์ ์งํฉ๊ฐ์ฒด : ์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํํ ๋์์ธ์คํด์ค : ์ค๊ณ๋๋ฅผ ๋ฐํ์ผ๋ก ์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํ๋ ๊ตฌ์ฒด์ ์ธ ์ค์ฒดFTP :20 ~ 21 ๋ฒSSH : 22 ๋ฒHTTP : 80 ๋ฒHTTPS : 443 ๋ฒSMTP : 25
JSP ํ์ด์ง์ ํ์ ๋ชฉ๋ก์ ์ถ๋ ฅํ ํ ์ด๋ธ์ ๋ง๋ค์๋ค. ๋งคํผ์ ์ฟผ๋ฆฌ๋ฌธ id๊ณผ ๋งคํํ DAO ์ ๋ฉ์๋๋ ๋ฐ๋์ ๋์ผํด์ผํ๋ค. select ๋ฌธ์ด๊ธฐ ๋๋ฌธ์ resultType์ ๊ธฐ์ฌํด์ค๋ค. DAO ์ธํฐํ์ด์ค์ ๋งคํํ Mapper์ ์ฟผ๋ฆฌ๋ฌธ id์ ๋์ผํ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ๋ง๋ค
1. top , body , bottom .jsp ์ธ๊ฐ์ง ๋ถ๋ถ์ผ๋ก JSPํ์ผ์ ๋๋ ์ include๋ฅผ ํตํด ๊ตฌํํ๋ค. ์ถํ ์ฝ๋ ์์ ์ ์ ์ฒด์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ ํด์ผํ๋ ๋ถํธํจ์ ์ค์ผ ์ ์๋ค. 2. ๊ทธ ๋ฐ์ ๊ธฐ๋ฅ์ ์ํ JSP ํ์ผ ๊ตฌ์ฑํ๊ธฐ 3. VO ๋ง๋ค๊ธฐ @Dat
Spring Starter Project ๋ก ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค. ํ์ํ ์ค์ ์ ์ถ๊ฐํ๋ค.JSP ์ JSTL ์ฌ์ฉ์ ์ํ ์ค์ ์ pom.xml์ ์ถ๊ฐํด์ค๋ค.: VIEW ๋จ์ JSP๋ก ๋ง๋ค๊ธฐ ์ํด์ ํ์ํ๋ค.ํฌํธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, JSP ๊ฒฝ๋ก ๋ฑ์ ์ค์ ํด์ค๋ค. ์ฐธ๊ณ
1 ) WAR: JSP๋ก ์งํ ์น ์ ์ฉ2 ) JAR: HTML๋ก ์งํ JAVA ์ ์ฉ๋๊ฐ์ง์ ํจํน๋ฐฉ๋ฒ์ ์์ ์ ์๋ค.ํ์ํ ์ต์ ์ถ๊ฐํ๊ธฐWAR๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด webappํด๋๊ฐ ์๋์ผ๋ก ์์ฑ๋์ด์๋ค.JSP ์ JSTL ์ ์ฌ์ฉํ๊ธฐ์ํด pom.xml ์ ์ค์ ์ถ๊ฐ
pom.xmlAdd Starters... ํด๋ฆญDeveloper Tools ์ Spring Boot DevTools ์ฒดํฌpom.xml ์ฒดํฌ์๋ฒ๋ฅผ ์๋ก ์ฌ์๋ํ์ง ์์๋ ๋ณ๊ฒฝํ ์ปจํธ๋กค๋ฌ์ ๋ด์ฉ์ ๋ถ๋ฌ์์ค๋ค.Lombok ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด Getter/ Setter/ To
Chapter01Application.java ๋ฅผ ์คํํ ํWeb์ฃผ์์ฐฝ์์ ํ์ธํ๋ค.@SpringBootApplication ์ ์ค์บ๋๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ด์๋ค.ComponentScan์ ๊ธฐ๋ณธ์ ์ผ๋ก BasePackage๋ฅผ ์ค์บํ๋๋ก ์ค์ ๋์ด์๋ค.๋ค๋ฅธ ํจํค์ง๋ฅผ ์ค์บํ๋๋ก ์ค
1. BannerMode OFF ์๋ ์ฌ์ง๊ณผ ๊ฐ์ ๋ฐฐ๋๋ฅผ OFF์ฒ๋ฆฌํด๋ณด์ ๋ฐฐ๋์์ด ๋ฐ๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค. 2. Banner
src/main/java : ์ผ๋ฐ์ ์ธ ์๋ฐ ํ๋ก๊ทธ๋จ ์์ฑsrc/main/resources : ์๋ฐ ์์ค๊ฐ ์๋ XML ์ด๋ ํ๋กํผํฐ ํ์ผ ์์ฑ1) static : ์ด๋ฆ ๊ทธ๋๋ก HTML ๊ฐ์ ์ ์ ์ธ ์น ์์ค๊ฐ ์ ์ฅ2) templates : ํ์๋ฆฌํ ๊ฐ์ ํ ํ๋ฆฟ ๊ธฐ