๋ธ๋ผ์ฐ์ ์์์ ๋์ํ๋ ์น์ฌ์ดํธ๋ ์น ์ดํ๋ฆฌ์ผ์ด์
๊ณผ ๊ฐ์ Client๋ค์ด ์ด๋ป๊ฒ Server์ ํต์ ํ ์ ์์๊น? 1. HTTP(Hypertext Transfer Protocal)Client ์ Server ์ด ์ด๋ป๊ฒ Hypertext๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ ์ง ๊ท์ฝํ ํ๋กํ ์ฝClient๊ฐ Server์๊ฒ ๋ฐ์ดํฐ๋ฅผ requestํ๋ฉด, Server๋ ๊ทธ์ ๋ง๋ response๋ฅผ Client๋ก ๋ณด๋ 2. AJAX(Asynchronous JavaScript And XML)์นํ์ด์ง์์ ๋์ ์ผ๋ก ์๋ฒ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๊ธฐ์ ๋ํ์ ์ธ ์๋ก๋ ๋ธ๋ผ์ฐ์ API์์ ์ ๊ณตํ๋ XMLHttpRequest(XHR) ์ค๋ธ์ ํธ๊ฐ ์๋ค.ํน์ fecth() API๋ก ๊ฐํธํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค. 3. XMLhtm..
๊พธ๋ฏธ๊ธฐ ๋ผ๊ณ ํ๊ธฐ์๋ ์์ํ์ง๋ง๋ถํธ์คํธ๋ฉ ์์ฑ ๊ณต๋ถํ๋ ์๊ฐ ๋ค๋น๊ฒ์ด์
๋ฐ ์๋ ๋ฉ์ธ ์์ญ์ ๋ถํธ์คํธ๋ฉ์ผ๋ก ์๊ฐ๊ธ ์ถ๊ฐmain์์ญ์ด๋ผ๊ณ ํด์ผ ํ ์ง content ์์ญ์ด๋ผ๊ณ ํด์ผ ํ ์ง 1. ์๊ฐ๊ธ ์ถ๊ฐ `jumbotron`ํ์ด์ง ๋ด์์ ๊ฐ์กฐํ๋ ํ์ด๋ก ์น์
์ด๊ณ ํฐ ํ
์คํธ์ ์ฌ๋ฐฑ์ ๊ธฐ๋ณธ์ผ๋ก ํฌํจํจ๋ถํธ์คํธ๋ฉ 5์์๋ Jumbotron ํด๋์ค๊ฐ ์ ๊ฑฐ๋์๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ํด๋์ค๋ฅผ ์กฐํฉํด์ ๋น์ทํ ํจ๊ณผ๋ฅผ ์๋์ผ๋ก ๋ด์ผ ํ๋ค. `rounded`์์์ ๋ชจ์๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ๋ง๋ฌ border-radius: 0.375rem (์ฝ 6px)์ฌ๊ธฐ์ rounded-circle, rounded-pill ์ฐ๋ฉด ๋ ๊ทน๋จ์ ์ผ๋ก(?) ๋ฅ๊ทผ ์คํ์ผ ๊ฐ๋ฅ`display-4`ํ
์คํธ๋ฅผ ํฌ๊ฒ ํ์ํ๋ ํค๋ฉ ์คํ์ผ๋ถํธ์คํธ๋ฉ์ ๋์คํ๋ ์ด ํด๋์ค์ธ๋ฐ ..
1. ๊ฒ์๊ธ ์์ ํ๋ update ๋ฉ์๋ ๋ง๋ค๊ธฐBbsDAO ํด๋์ค ํ๋จ์ ๋ฉ์๋ ์ถ๊ฐpublic int update(int bbsID, String bbsTitle, String bbsContent) { String SQL = "UPDATE BBS SET bbsTitle = ?, bbsContent = ? WHERE bbsID = ?"; PreparedStatement psmt = null; try { psmt = conn.prepareStatement(SQL); psmt.setString(1, bbsTitle); psmt.setString(2, bbsContent); psmt.setInt(3, bbsID); return p..
CSS Diner๋ CSS ์ ํ์๋ฅผ ํ์ตํ๊ณ ์ฐ์ตํ ์ ์๋ ์ฌ๋ฏธ์๋ ์น ๊ธฐ๋ฐ ๊ฒ์์ด๋ค.์ฌ์ฉ์๊ฐ HTML ์ฝ๋์ ์ ์ฉํ ์ฌ๋ฐ๋ฅธ CSS ์ ํ์๋ฅผ ์์ฑํ๋ฉด, ๊ฒ์์ ๊ฐ ๋ ๋ฒจ์ ํด๋ฆฌ์ดํ๋ฉฐ ์ ์ ๋ ๋ณต์กํ ์ ํ์๋ฅผ ์ตํ ์ ์๋ค. ์ด ๊ฒ์์ CSS๋ฅผ ๋ฐฐ์ฐ๊ฑฐ๋ ๋ณต์ตํ๊ณ ์ถ์ ์ด๋ณด์์ ์ค๊ธ์๋ฅผ ์ํ ์ข์ ๋๊ตฌ์ด๊ณ ํนํ ์ ํ์ ๊ณต๋ถ๋ฅผ ํ๊ณ ์ถ์ ์ฌ๋๋ค๊ป ์ถ์ฒํ๋ค.ํฌ๋กค๋ง ์ฐ์ตํ์๋ ๋ถ๋ค๊ป๋ ๋ง์ ๋์์ด ๋ ๊ฒ ๊ฐ๋ค. https://flukeout.github.io/ CSS DinerA fun game to help you learn and practice CSS selectors.flukeout.github.io ๊ฐ์ฅ ์ฌ์ด ๋์ด๋์ธ 1๋ฒ๋ถํฐ ๊ฐ์ฅ ์ด๋ ค์ด 32๋ฒ๊น์ง ์๋ค.ใ
ใ
ํ๋ฉด์์ ๊ณ ๋ฅด๋ผ๊ณ ํ๋ ๋ฌผ๊ฑด์ ๊ณ ๋ฅด๋ CSS..
์ด๋ฒ ํฌ์คํ
์ค๋ช
์ ์ ๊ฐ ์์ฑํ์ผ๋ ์ด๋ฏธ์ง๋ ๋ค๋ฅธ ๊ณณ์์ ์ ๊ทธ๋ ค์ง ๊ฒ๋ค์ ๊ฐ์ ธ์์ต๋๋ค.์ด๋ฏธ์ง๋ง๋ค ์ถ์ฒ ํ๊ธฐํ์ต๋๋ค :) ์ฌ๊ธฐ ๊ฐ์๋ฉด flex ์์๋ค์ ์ง์ ํด๋ฆญํด ๋ณด๋ฉด์ ํ๋ฉด ๋ ์ด์์์ ํ์ธํด ๋ณผ ์ ์์ด์. flex-shrink - CSS: Cascading Style Sheets | MDNThe flex-shrink CSS property sets the flex shrink factor of a flex item. If the size of all flex items is larger than the flex container, the flex items can shrink to fit according to their flex-shrink value. Each flex line's negati..
1. BbsDAO ํด๋์ค์ getBbs() ๋ฉ์๋ ๋ง๋ค๊ธฐ `getBbs(int bbsID)` ๋ฉ์๋๋ ํน์ bbsID๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฒ์๊ธ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์กฐํํ์ฌ ๋ฐํํ๋ค.์ฆ ํ๋์ ๊ธ ๋ด์ฉ์ ๋ถ๋ฌ์ค๋ ๋ฉ์๋์ด๋ค. ์ฒ์์ ์ ์ ์ฝ๋(ํ๋ฆผ) public Bbs getBbs(int bbsID) { String SQL = "SELECT * FROM BBS WHERE bbsID = ?"; try (PreparedStatement psmt = conn.prepareStatement(SQL); ResultSet rs = psmt.executeQuery()) { psmt.setInt(1, bbsID); if (rs.next()) { ..
๊ธ๋ชฉ๋ก๊ณผ ํ์ด์ง๋ค์ด์
(Pagination)๊ฒ์๋ฌผ์ DB์์ ๋ถ๋ฌ์ ํ๋ฉด์ ํ์ํ๋ ค๋ฉด ๊ฒ์๊ธ ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ ์์
๊ณผ ํ์ด์ง ์ฒ๋ฆฌ ๋ ๊ฐ์ง๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค. ๊ฒ์๊ธ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๋ถ๋ฌ์ค๊ธฐ ์ํด ArrayList๋ฅผ ์ฌ์ฉํ์ฌ DB์์ ์์ฑ์, ์ ๋ชฉ ๋ฑ ๊ฒ์๊ธ์ ์ฃผ์ ์ ๋ณด๋ฅผ ํฌํจํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค. ์ด ๋ ์ค์ํ ์ ์ ํ์ด์ง ์ฒ๋ฆฌ์ด๋ค. ํ์ด์ง ์ฒ๋ฆฌ๋ ํ ํ์ด์ง์ ๋ช ๊ฐ์ ๊ฒ์๊ธ์ ๋ณด์ฌ์ค์ง ๊ฒฐ์ ํ๋ ๊ณผ์ ์ด๋ฉฐ, ์๋ฅผ ๋ค์ด ํ ํ์ด์ง์ ์ด 10๊ฐ์ ๊ฒ์๊ธ์ ๊ฐ์ ธ์ค๋๋ก ์ค์ ํ ์ ์๋ค. ๊ทธ๋์ ์ค๋์ `BbsDAO`์ ํน์ ํ์ด์ง ๋ฒํธ(pageNumber)์ ํด๋นํ๋ ๊ฒ์๊ธ ๋ชฉ๋ก์ ๋ฐํํ๋ ๋ฉ์๋ โก `getList(int pageNumber)`๋ฅผ ๋ง๋ค์ด ๋ณผ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ด์ง ์ฒ๋ฆฌ์์ ํ์ด์ง ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ..
1. write.jsp ๊ธ์ฐ๊ธฐ ํ์ด์ง ๋ง๋ค๊ธฐ ๋จผ์ ๊ฒ์๊ธ ์์ฑ ํ์ด์ง `write.jsp`๋ฅผ ๋ง๋ค์ด ์ฃผ๋ ค๊ณ ํ๋ค.`bbs.jsp`๋ฅผ ๋ณต์ฌํด์ ๋ถ์ฌ ๋ฃ๊ณ ์ค๊ฐ ๋ถ๋ถ๋ง ์์ ํด ์ค ๊ฒ์ด๋ค. nav๋ฐ ์๋ ๋ถ๋ถ์ ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์์ฑBootstrap5 ์ด์ฉํ๋ค. โก `mt-5` margin-top: 5rem; โก ``ํ๊ทธ์ `required` ์์ฑ ๋ฃ์ผ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํจ. ํ
์คํธ๋ฅผ ์
๋ ฅ ์ ํ ์ฑ๋ก submit ํ๋ฉด `์ด ์
๋ ฅ๋์ ์์ฑํ์ธ์.` ๋ผ๋ ๊ฒฝ๊ณ ๋ฉ์ธ์ง๋ฅผ ๋์ด๋ค. โก `form-control` ํด๋์ค Bootstrap์์ ์ ๊ณตํ๋ ํด๋์ค ์ค ํ๋๋ก, ์
๋ ฅ ํ๋์ ์คํ์ผ์ ์ฝ๊ฒ ์ผ๊ด์ฑ ์๊ฒ ์ ์ฉํ๊ธฐ ์ํด ์ฌ์ฉ๋จ.์ด๊ฑฐ ์ฐ๋ฉด ์
๋ ฅ ํ๋(input, textarea, select ๋ฑ)๊ฐ ๊ธฐ๋ณธ..