
๐ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ฃผ์๋ฅผ ์์ฒญํ๊ฒ ๋๋ฉด ์๋ฒ์์๋ ์์ ํ html์ ์์ฑํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ๋ค.
๐ ์ผ๋ฐ์ ์ผ๋ก www.google.com ์ ์์ฑํ๊ฒ ๋๋ฉด ๊ตฌ๊ธ์๋ฒ์์ ํด๋ผ์ด์ธํธ์๊ฒ ๊ตฌ๊ธ๋ฉ์ธ ํ์ด์ง์ ๋ํ htmlํ์ผ์ ์ ๋ฌํ๋๊ฒ์ด๋ค.
๐ SSR๊ณผ ๋ค๋ฅด๊ฒ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์์ฒญ์ ํ๋ฉด, Jsonํ์ผ์ ์ ๋ฌํด์ฃผ๋๋ฐ Jsonํ์ผ์ ์ ๋ฌ๋ฐ์ ํด๋ผ์ด์ธํธ๋ jQuery table์ ์ด์ฉํ์ฌ ์ง์ ๋๋๋ง ํ๋๊ฒ์ด๋ค.
๐ ๋์ ์ผ๋ก ์นํ์ด์ง๋ฅผ ์์ฑํ๋ค.
๐ ์๋ฒ ์ฒ๋ฆฌ ์ฉ๋์ผ๋ก DB๋ถํ๊ฐ ์๊ฒจ ํ๋ ์์ํฌ๊ฐ ๋ง์ด ๋์ค๊ธฐ ์์ํจ
๐ ๊ทธ ์ค ๋ํ์ ์ธ๊ฒ์ด Spring Framwork
๐ JSP : JAVA๊ธฐ๋ฐ์ผ๋ก HTML ๋ด๋ถ JAVA์ธ์ด๋ฅผ ์ฝ์ ํ์ฌ Java Servlet ์ปจํ ์ด๋์์ ์คํ
๐ PHP : HTML๋ด๋ถ์ PHP์ฝ๋๋ฅผ ์ฝ์ , ๋น ๋ฅด๊ณ ๊ฐ๋ ฅํ DB์ฒ๋ฆฌ ๊ฐ๋ฅ
๐ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ HTML์ ๋์ ์ผ๋ก ์์ฑํ์ฌ ์ฌ์ฉ์์ ์์ฒญ์ ๋ง์ถฐ์ ๋ณํํ๋ ์นํ์ด์ง.
๐ ์๋ฅผ๋ค์ด, ์จ๋ผ์ธ ์ผํ๋ชฐ ์นํ์ด๊ฐ ์์๋ ์น ์๋ฒ๊ฐ DB์์ ํด๋น ์ํ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ๋์ ์ผ๋ก HTMLํ์ด์ง๋ฅผ ์์ฑํ๊ณ , ์ํ์ ๊ฐ๊ฒฉ, ์ฌ๊ณ ์ํฉ๋ฑ ์ค์๊ฐ์ผ๋ก ํ์ธ๊ฐ๋ฅํ ํ์ด์ง.
๐ ๋์์ ๋๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ ์ ํ๋๋ฐ ํ ๊ฐ์ง์ ์์์ ๊ณต์
๐ ํ ๊ณณ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ค ์ฌ์ฉํด๋ฒ๋ฆด์๋ ์์.
๐ ์๋ฅผ๋ค์ด ์นํ์ด์ง์ ์ฌ์ง์ด ๋๋ค์ผ๋ก ๋์ค๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์๋๋ฐ, ํ ์ฌ๋์ด ์นํ์ด์ง๋ฅผ ์คํํ ๊ฐ์์ง์ฌ์ง์ด ๋์ค๊ณ ์์๋ ๋ค๋ฅธ ํ ์ฌ๋๋ ์นํ์ด์ง๋ฅผ ์คํํด์ ๊ณ ์์ด ์ฌ์ง์ด ๋์ค๊ณ ์๋๋ฐ ์ฌ์ง ๊นจ์งํ์์ด ๋ฐ๋ฐํจ. ์ด๊ฒ์ด ๋ฉํฐ์ฐ๋ ๋.

๐ ์ฝ๋๋ฅผ ๊ดํตํ๋ ์ค
๐ new Thread : ์๋ก์ด ์ค๋ ๋๋ฅผ ๋ง๋ค์ด๋ผ
๐ start : ์๋๊ฑธ๊ณ ์ถ๋ฐ
๐ i๊ฐ์ ์ค๋ ๋๋ฅผ ๋ง๋ค์ด๋๊ณ (์ฌ๊ธฐ์๋0,1,2,3) ์ค๋ ๋๊ฐ ์์ํ๋๋ฐ
๐ runํ ๋๋ง๋ค ๋๋ค์ ์ผ๋ก i๋ฒ์งธ ์ค๋ ๋๊ฐ ๋จผ์ ์์๋๋ค.
๐ 4๋ช
์ด ํ๋ช
ํ๋ช
์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋๊ฒ ์๋๋ผ, ๋์์ ์คํ๋๊ณ ์ข
๋ฃ๋๋๊ฒ.
๐ ์์นด๋ฅดํ EE์์ ์๋ฒ๋ฅผ ๊ตฌ๋ํ๊ธฐ ์ํด ํฐ์บฃ์ ์ด์ฉํ๊ฒ ๋๋ฉด ๋ฉํฐ์ฐ๋ ๋ ์ฒ๋ฆฌ๊น์ง ์๋์ผ๋ก ์ฌ์ฉ๋๋ค.
๐ 1์ด๋์ cpu๋ฅผ ์ก์ง์์๊ฑด๋ฐ 1์ด๋ค์๋ ์ก์์๋์๊ณ ๋ชป์ก์์๋์๋ค.
๐ ๋์ ์นํ์ด์ง๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉ๋๋ ์๋ฐ ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ .
๐ jsp ํ์ผ๋ด๋ถ ์ฝ๋๊ฐ ์์ผ๋ฉด ๊ทธ ์ฝ๋๋ค์ out.xxx์ ํํ๋ก ์์์ ๋ฐ๊ฟ์ฃผ๋ ์ญํ
๐ ํ์ง๋ง, jspํ์์ผ๋ก ๋ฐ๊ฟ์ผํ๋์ ๋์๊ณ ๋ฐ๊พธ๋ฉด ์๋๋ ์ ๋์๋๋ฐ <% ~~ %> ์ด๋ ๊ฒ ๋ด๋ถ์์ ์๋ ์ ๋ค์ jspํ์์ผ๋ก ์ฒ๋ฆฌํ๋๊ฒ์ด ์๋๋ผ ์๋ฐ์ ์ฝ๋๋ฌธ๋ฒ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ jsp์์ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
โ ex) <%@ page import="java.util.Scanner" %>
โ ex) <% String msg = "hi"; %>
โ ex) <%= msg %>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.util.Scanner" %> //importํ๋๋ฐฉ๋ฒ = directives
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<%
String msg = "hi";
for(int i=0; i<10; i++){
%> //์ฌ๊ธฐ ๋ด๋ถ์์๋ javaํํ๋ก ์ฌ์ฉํด๋ jspํํ๋ก ๋ณ๊ฒฝ๋์ง ์์ = scriptlet
<h1><%= msg %> // ํํ์ = expression = sout(๊ฒฐ๊ณผ)
</h1>
<%
}
%>
<br/>
<a href="hello-servlet">Hello Servlet</a>
</body>
</html>
๐ ๋ฐ์ดํฐ๊ฐ ๋ง์ด ์๊ธฐ๋ฉด ๊ตฌ์กฐ๊ฐ ์๊ธฐ๊ณ , ๊ตฌ์กฐ๋ฅผ ํ์ํ๊ธฐ ์ํ ๊ฒ์ ํ ํฐ(Tap, \n)์ด๋ผ ํ๋ค.
๐ ์ด๋ฌํ ๊ตฌ์กฐ๋ ์ฌ๋๋ค์ด ํธ๋ฆฌ๋ก ๋ง๋ ๋ค.
๐ ๊ตฌ์กฐ๊ฐ ๋ณต์กํ๋ฉด ํ ํฐ์ ์ฌ์ฉํ๊ธฐ ์ด๋ ค์์ง๋๋ฐ, ๊ทธ๊ฒ์ ์ํด ML(Markup Language)
๐ ๋ฐ์ดํฐ์ ๋งํน์ ํด๋๋๊ฒ.
<์์ฅ>
<์์ดํ
> xxx </์์ดํ
>
<๊ฐ๊ฒ> xxx </๊ฐ๊ฒ>
</์์ฅ>
๐ html์ ํํ์ด์ง๋ฅผ ๋ง๋๋๊ฒ์ด ์๋๋ผ, ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌ(์ฒ๋ฆฌ)ํ๋ ๋ฉ์ธ์ง์.
๐ Markup Language์ ๋ํ์์ค ํ๋
๐ !๋ ์ ์ธ์ ์์ํ๋๊ฒ, DOCTYPE์ HTML๋ฌธ์์ ํ์
์ ์ ์ธํ๋ค๋ ์๋ฏธ
๐ DOCUMENT = HTML
๐ ํด๋น HTML๋ฌธ์๊ฐ ์ด๋ค ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ์ฌ์ฉํ๋์ง ์๋ ค์ฃผ๋๊ฒ.
๐ UTF-8์ ์ ์ธ๊ณ ๋๋ถ๋ถ ์ธ์ด๋ฅผ ์ง์ํ๋ ์ ๋์ฝ๋ ๋ฐฉ์์ค ํ๊ฐ์ง
๐ Markup Language๊ฐ ์ ํํ ๊ฒ์ธ์ง ์ ์ ์๋๋ฐฉ๋ฒ, ๋ฌธ์์ ์ ํจ์ฑ ๊ฒ์ฌ
๐ HTML ์์๋ ! DOCTYPE๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ฏ๋ก DTD๋ฅผ ๋ช
์ํ ํ์์๋ค.
๐ htmlํ๊ทธ๊ฐ ์์ผ๋ฉด ์ค์ ๋ก๋ ๊ฐ์ฒด(Object)๊ฐ ์์ฑ๋๋๋ฐ
๐ document๊ฐ objectํ ๋๋๊ฒ์ DOM์ด๋ผ ํ๋ค.
๐ html ๋ฌธ์์ด์ ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ๋ฆฐ์์ , Jquery์ ready์์
๐ ์นํ์ด์ง๊ตฌ์กฐ(DOM)์ ์คํ์ผ์ ๋ณด(CSS)๊ฐ ๊ฒฐํฉํ์ฌ ์ค์ ๋ก ํ๋ฉด์ ํ์ถ๋๊ธฐ ์ ์ ์ต์ ํ ์์
๐ ๋ค์ ํ๋ฉด์ผ๋ก ๋๊ธธ๋, ํ๋ฉด์ด ์ด๊ธฐํ๊ฐ ๋๊ณ ํ๋์ ํ๋ฉด์ ํธ์ถํ๊ณ ํธ์ถ๋ฐ๊ณ ๋ฅผ ๋ฐ๋ณต๋์
๐ ํ ํ์ด์ง ๋ด์์ ๋ณด์ฌ์ฃผ๊ณ ๊ฐ์ถ๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ ๋์
๐ ์ด๋ฌํ SPA๋ฅผ ์ํด ๋ํ๋ 3๋์ฅ์ด React, Angular, vue

-> ์ค์ SPA๋ชจ์ต
๊ทธ๋ ๊ฒ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ๋ฉด ๋ธ๋ผ์ฐ์ ์ค์ฌ๊ณผ ์๋ฒ ์ค์ฌ์ผ๋ก ๋๋๊ฒ๋จ.
๐ jsp ์ฝ๋๋ฅผ ๋ณด๋ฉด ์์ jsp์์ ์์ฑ๋ ๋ณ์๊ฐ ์๋๋ฐ ๊ทธ๊ฒ์ ์ฌ์ฉํ ์ ์์
JSP(์ถ๋ ฅ) <-> ๊ฐ์ฒด <-> DAO <-> DB
๐ JSP์์๋ ์ถ๋ ฅ์ ์์ฃผ๋ก
๐ ๊ฐ์ฒด์์๋ SOP์ฐ์ง์๊ณ ๊ธฐ๋ฅ๋ง ์์ฃผ๋ก
๐ DAO : DB๋ฅผ ์ ๋ฌธ์ ์ผ๋ก ์ฒ๋ฆฌ
๐ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด์ ๊ฐ๊ฐ(JSP,๊ฐ์ฒด,DAO)์ ๋ํด ์ ์ ๋์ง ์์์ผํ๊ณ , ๊ฐ์์ ๋ณธ๋ถ์ ๋คํด์ผํจ.