Search

๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ๋Œ€๋น„ ๋ณด๊ฐ•

๋‚ด์šฉ

โ€ข
๋น„์ „๊ณต์ž๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•™์Šต๋ฒ•
โ€ข
AI ๋ฅผ ํ™œ์šฉํ•œ ํšจ์œจ์ ์ธ ํ•™์Šต์ „๋žต
โ€ข
Java~JSP ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•ต์‹ฌํŒŒํŠธ ๋ฆฌ๋ทฐ
โ€ข
๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ๋Œ€๋น„ DB ์„ค๊ณ„ ์‹ค์Šต
โ€ข
๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ๋Œ€๋น„ ํ™”๋ฉด ์„ค๊ณ„ ์‹ค์Šต
โ€ข
ํ”„๋กœ์ ํŠธ ์ฃผ์ œ ๋ ˆํผ๋Ÿฐ์Šค
โ€ข
JSP ์›น๊ฐœ๋ฐœ ์ฃผ์š”๊ธฐ๋Šฅ ํ”„๋กœ์„ธ์Šค ์ •๋ฆฌ

๋น„์ „๊ณต์ž๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•™์Šต๋ฒ•

ํ•™์Šต ๋ฐฉ๋ฒ•

1.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•™์Šต
a.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ๋ฒ•
i.
๊ธฐ์ดˆ ๋ฌธ๋ฒ•
1.
๊ต์žฌ
2.
ํ•™์Šต์ž๋ฃŒ
iii.
๊ต์œก ์‚ฌ์ดํŠธ
3.
JavaScript
b.
๊ด€๋ จ ์ง€์‹
i.
์—…๋ฌด ํ”„๋กœ์„ธ์Šค
1.
ํšŒ์› ๊ด€๋ฆฌ
2.
๊ฒŒ์‹œ๊ธ€ ๊ด€๋ฆฌ
ii.
๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
1.
๋ฐฐ์—ด
2.
๋ฆฌ์ŠคํŠธ
3.
์Šคํƒ
4.
ํ
5.
ํŠธ๋ฆฌ
6.
๊ทธ๋ž˜ํ”„
7.
ํž™
iii.
์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด
1.
3 ๊ณ„์ธต ํŒจํ„ด
2.
MVC ํŒจํ„ด
3.
MSA (Micro Service Archirecture)
iv.
๋””์ž์ธ ํŒจํ„ด
1.
์‹ฑ๊ธ€ํ†ค ํŒจํ„ด
2.
๋นŒ๋” ํŒจํ„ด
3.
ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด
c.
์†Œ์Šค ์ฝ”๋“œ
i.
์ฝ”๋“œ ๋ณต์Šต ๋ฐฉ๋ฒ•
ii.
์—๋Ÿฌ ๋…ธํŠธ

์ฝ”๋“œ ๋ณต์Šต ๋ฐฉ๋ฒ•

a.
์ฝ”๋“œ ์ž‘์„ฑ ์ž์ฒด๊ฐ€ ์–ด๋ ค์šด ๊ฒฝ์šฐ
i.
ํ™”๋ฉด์„ ๋ฐ˜์”ฉ, ๋ถ„ํ• ํ•ด์„œ, ์‹ค์Šต์ฝ”๋“œ ๋˜๋Š” ์˜ˆ์ œ์ฝ”๋“œ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ์„œ ์—ฐ์Šต
ii.
๋‹จ์ถ•ํ‚ค ํ™œ์šฉ ์—ฐ์Šต
iii.
๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋‹ค ์ž‘์„ฑํ•˜๊ธฐ ๋ณด๋‹ค, ํ‚ค์›Œ๋“œ ์œ„์ฃผ๋กœ ์ž๋™ ์™„์„ฑ ์—ฐ์Šต
iv.
ํ•จ์ˆ˜๋‚˜ ๋ธ”๋ก ๋‹จ์œ„๋กœ ์‹คํ–‰ ํ๋ฆ„ ์ˆœ์„œ๋ฅผ ์ฃผ์„์œผ๋กœ ์ž‘์„ฑ // 1 2 3
v.
์ฝ”๋“œ๋ฅผ ์‹คํ–‰ ํ๋ฆ„ ์ˆœ์„œ๋กœ ์ž‘์„ฑํ•˜๋Š” ์—ฐ์Šต
vi.
์ฝ”๋“œ ํ•œ ์ค„ ํ•œ ์ค„์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ฃผ์„์œผ๋กœ ์ž‘์„ฑ
b.
์–ด๋Š ์ •๋„ ์ฝ”๋“œ๋ฅผ ๋ˆˆ์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
i.
๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š” ๊ณ ๋ฏผ
ii.
์ค‘๋ณต๋œ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
iii.
์ค‘๋ณต๋œ ์ฝ”๋“œ๋ฅผ ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค ๋‹จ์œ„๋กœ ๋ชจ๋“ˆํ™” ์—ฐ์Šต
1.
ํŒŒ์ผ ์ž…๋ ฅ ํŒŒ์ผ ๋ณต์‚ฌ
2.
ํŒŒ์ผ ์ž…๋ ฅ ํŒŒ์ผ ์ •๋ณด ํ™•์ธ
3.
ํŒŒ์ผ ์ž…๋ ฅ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ํ•จ์ˆ˜ํ™”
4.
๊ทธ ์™ธ, ํด๋ž˜์Šค, ํŒจํ‚ค์ง€ ์˜์—ญ ์ด์ƒ์—์„œ์˜ ์ค‘๋ณต ํด๋ž˜์Šค๋กœ ์ •์˜
iv.
์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ ์„ค๊ณ„
1.
์ธํ„ฐํŽ˜์ด์Šค, ๊ตฌํ˜„ ํด๋ž˜์Šค ํ™œ์šฉํ•ด์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜
2.
์ƒ์†์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„
v.
์ฝ”๋“œ ๋ฌธ์„œํ™”
1.
๋งˆํฌ ๋‹ค์šด (.md) ๋ฌธ์„œ๋กœ ์ž‘์„ฑ
a.
ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๋ฌธ์„œํ™”
2.
๋…ธ์…˜์— ์ •๋ฆฌ
a.
``` (๋ฐฑํ‹ฑ 3๋ฒˆ ์ฝ”๋“œ ๋ธ”๋Ÿญ)
b.
/์ฝœ์•„์›ƒ ๊ฐ•์กฐ๋œ ์„ค๋ช… ๋ฐ•์Šค
3.
๊นƒํ—ˆ๋ธŒ
a.
Wiki
b.
Issue
c.
Discussions

์—๋Ÿฌ ๋…ธํŠธ

1.
์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ฝ”๋“œ
2.
์—๋Ÿฌ ๋ฉ”์‹œ์ง€
a.
์ด๋ฏธ์ง€ ์บก์ฒ˜
b.
์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ…์ŠคํŠธ
3.
์—๋Ÿฌ ์›์ธ
a.
์˜คํƒˆ์ž
b.
๊ฒฝ๋กœ๋‚˜ ๊ธฐํ˜ธ ๋ˆ„๋ฝ
c.
ํŒŒ์ผ ์œ„์น˜ ๋ถˆ๋ถ„๋ช…
d.
๋ฌธ๋ฒ• ์˜ค๋ฅ˜
e.
deprecated
f.
๋ฒ„์ „ ํ˜ธํ™˜์„ฑ
4.
์—๋Ÿฌ ํ•ด๊ฒฐ
์ผ๋ณ„๋กœ ์—๋Ÿฌ ๋…ธํŠธ ์ž‘์„ฑ, ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„๋กœ ์—๋Ÿฌ ๋…ธํŠธ ๋ถ„๋ฅ˜

AI ๋ฅผ ํ™œ์šฉํ•œ ํšจ์œจ์ ์ธ ํ•™์Šต ์ „๋žต

1.
ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ AI
a.
ChatGPT (์ฑ—์ง€ํ”ผํ‹ฐ)
b.
Gemini (์ œ๋ฏธ๋‚˜์ด)
c.
wrtn (๋คผํŠผ)
2.
Github Copilot
3.
Ollama (๋กœ์ปฌ AI)

ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ AI

โ€ข
ํ•™์Šต ๋‚ด์šฉ ์ •๋ฆฌ ํšจ์œจํ™”
โ€ข
ํ•™์Šตํ•œ ์†Œ์Šค ์ฝ”๋“œ ๋ฆฌ๋ทฐ
โ€ข
์ƒˆ๋กœ์šด ํ•™์Šต ๋‚ด์šฉ์ด๋‚˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์œ„ํ•œ ์ฝ”๋“œ ์ƒ์„ฑ
์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์•„๋ž˜ 3๊ฐ€์ง€๋กœ ์ •๋ฆฌํ•ด๋ณด์„ธ์š”.
โ€ข
ํ•™์Šต ๋‚ด์šฉ
โ€ข
์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ๋‚ด์šฉ
โ€ข
๋” ๊ถ๊ธˆํ•œ ๋‚ด์šฉ

์ •๋ฆฌ ์˜ˆ์‹œ

โ€ข
์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ
โ—ฆ
Servlet
โ–ช
์ •์˜
โ–ช
์š”์ฒญ ์ฒ˜๋ฆฌ - HttpServletRequest
โ–ช
์‘๋‹ต ์ฒ˜๋ฆฌ - HttpServletResponse
โ–ช
ํŽ˜์ด์ง€ ์ด๋™ ๋ฐฉ์‹
โ€ข
forward
โ€ข
redirect
โ–ช
ํŒŒ์ผ ์—…๋กœ๋“œ
โ–ช
ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
โ–ช
์ธ๋„ค์ผ ์ด๋ฏธ์ง€
โ—ฆ
JSP
โ–ช
์ •์˜
โ–ช
JSP ํƒœ๊ทธ
โ€ข
์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ
โ€ข
๋””๋ ‰ํ‹ฐ๋ธŒ ํƒœ๊ทธ
โ€ข
์•ก์…˜ ํƒœ๊ทธ
โ–ช
๋‚ด์žฅ๊ฐ์ฒด
โ€ข
์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ๋‚ด์šฉ
โ—ฆ
ํŽ˜์ด์ง€ ์ด๋™ ๋ฐฉ์‹
โ—ฆ
๋‚ด์žฅ๊ฐ์ฒด
โ€ข
๋” ๊ถ๊ธˆํ•œ ๋‚ด์šฉ
โ—ฆ
ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์••์ถ• ๋‹ค์šด๋กœ๋“œ

ํ”„๋กฌํ”„ํŠธ ์˜ˆ์‹œ

(ํ•™์Šต ๋‚ด์šฉ) ์ด ๋‚ด์šฉ๋“ค ํ•™์Šต ๋…ธํŠธ๋กœ ์š”์•ฝํ•ด์ค˜ ๊ทธ๋ฆฌ๊ณ  ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ๋‚ด์šฉ๊ณผ ๋” ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์€ ์˜ˆ์‹œ์ฝ”๋“œ์™€ ์‰ฌ์šด ์„ค๋ช…์„ ์ถ”๊ฐ€ํ•ด์ค˜ ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์— ์ „์ฒด ๋‚ด์šฉ์„ ํ‘œ๋กœ ์ •๋ฆฌํ•ด์ค˜
Plain Text
๋ณต์‚ฌ
ํ•˜๋‚˜ ํ•˜๋‚˜ ํ‚ค์›Œ๋“œ ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ๋ณด๋‹ค, ๋ฆฌ์ŠคํŠธ๋กœ ์ •๋ฆฌํ•ด์ค˜ ํ•œ ๋ฒˆ์— ๋ช…๋ นํ•˜๋ฉด ์กฐ๊ธˆ ๋” ์••์ถ•์ ์œผ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ผ์ผ ํ•™์Šต ๋…ธํŠธ

Github Copilot

๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ์ง€์›ํ•ด์„œ ์Œ... ๋ญ ์ฝ”๋“œ๋“  ์•„๋‹ˆ๋ฉด ์ด๋Ÿฐ AI ์–ธ์–ด๋ชจ๋ธ์„ ์ง€์›ํ•˜๋Š” ์„œ๋น„์Šค์˜ˆ์š”.
vscode ํ™•์žฅ์„ ์ถ”๊ฐ€ํ•ด์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Ollama (๋กœ์ปฌ AI)

llama 3.1 ์–ธ์–ด๋ชจ๋ธ์„ ๋กœ์ปฌ์— ์„ค์น˜ํ•˜๊ณ  Open Web UI๋ฅผ ์‚ฌ์šฉํ•ด์„œ
ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜์˜ ai ์„œ๋น„์Šค์™€ ๋™์ผํ•˜๊ฒŒ ๋กœ์ปฌ ๊ธฐ๋ฐ˜์˜ ai ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

Ollama ์„ค์น˜

1.
Ollama ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜
2.
Ollama ๋ช…๋ น์–ด๋กœ ์–ธ์–ด ๋ชจ๋ธ ์„ค์น˜

Ollama ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜

Ollama ๋ช…๋ น์–ด๋กœ ์–ธ์–ด ๋ชจ๋ธ ์„ค์น˜

CMD ๋‚˜ ํ„ฐ๋ฏธ๋„์—์„œ ๋ช…๋ น์–ด ์ž…๋ ฅ
ollama run llama3.1
Bash
๋ณต์‚ฌ

Open WebUI

์ธ๊ณต์ง€๋Šฅ(AI) ๋ชจ๋ธ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์›น ๊ธฐ๋ฐ˜์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค

์„ค์น˜

โ€ข
Python ์œผ๋กœ ์„ค์น˜ํ•˜๊ธฐ
โ€ข
Docker ๋กœ ์„ค์น˜ํ•˜๊ธฐ

Python ์œผ๋กœ ์„ค์น˜ํ•˜๊ธฐ

โ€ข
Python ์„ค์น˜
โ€ข
pip ์—…๊ทธ๋ ˆ์ด๋“œ
โ€ข
open-webui ์„ค์น˜
โ€ข
open-webui ์‹คํ–‰

Python ์„ค์น˜

pip ์—…๊ทธ๋ ˆ์ด๋“œ

python -m pip install --upgrade pip
PowerShell
๋ณต์‚ฌ
์„ค์น˜ ์‹œ์  2024-09-27 ๊ธฐ์ค€ Python 3.12 ๋ฒ„์ „์€ ์ง€์›๋˜์ง€ ์•Š๊ณ , 3.11 ๋ฒ„์ „๊นŒ์ง€ ํ˜ธํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

open-webui ์„ค์น˜

pip install open-webui
PowerShell
๋ณต์‚ฌ

open-webui ์‹คํ–‰

open-webui serve
PowerShell
๋ณต์‚ฌ

open-webui ์ ‘์†

http://localhost:8080/
Plain Text
๋ณต์‚ฌ

์–ธ์–ด ๋ชจ๋ธ ์„ ํƒ ๋ฐ ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ

Docker ๋กœ ์„ค์น˜ํ•˜๊ธฐ

(์ด์–ด์„œ ์ž‘์„ฑ์ค‘)

Java~JSP ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•ต์‹ฌํŒŒํŠธ ๋ฆฌ๋ทฐ

โ€ข
Java
โ—ฆ
ํด๋ž˜์Šค
โ—ฆ
์ธํ„ฐํŽ˜์ด์Šค
โ—ฆ
์ƒ์†
โ—ฆ
์ปฌ๋ ‰์…˜
โ—ฆ
๋žŒ๋‹ค์‹
โ—ฆ
์ŠคํŠธ๋ฆผ
โ—ฆ
ํŒŒ์ผ ์ž…์ถœ๋ ฅ
โ—ฆ
JDBC
โ€ข
DB
โ—ฆ
ํ…Œ์ด๋ธ” ์ƒ์„ฑ
โ—ฆ
๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด (CRUD)
โ–ช
๋ฐ์ดํ„ฐ ์กฐํšŒ
โ€ข
์กฐ์ธ
โ€ข
์„œ๋ธŒ ์ฟผ๋ฆฌ
โ–ช
๋ฐ์ดํ„ฐ ์‚ฝ์ž…
โ–ช
๋ฐ์ดํ„ฐ ์ˆ˜์ •
โ–ช
๋ฐ์ดํ„ฐ ์‚ญ์ œ
โ—ฆ
๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋ฐ DB ์„ค๊ณ„
โ–ช
โ€ข
HTML
โ—ฆ
๊ธฐ๋ณธ ํƒœ๊ทธ
โ—ฆ
์ž…๋ ฅ์–‘์‹ ํƒœ๊ทธ
โ—ฆ
๋ ˆ์ด์•„์›ƒ ํƒœ๊ทธ
โ—ฆ
์‹œ๋งจํ‹ฑ ํƒœ๊ทธ
โ€ข
CSS
โ—ฆ
๋ฐ•์Šค ๋ชจ๋ธ margin & padding
โ—ฆ
ํ‘œํ˜„ ์†์„ฑ display
โ—ฆ
์œ„์น˜ ์†์„ฑ position
โ—ฆ
Flex
โ—ฆ
Grid
โ—ฆ
๋ฐ˜์‘ํ˜• @media ์ฟผ๋ฆฌ
โ€ข
JavaScript
โ—ฆ
DOM
โ—ฆ
AJAX
โ€ข
Servlet & JSP
โ—ฆ
Servlet
โ–ช
์š”์ฒญ & ์‘๋‹ต
โ–ช
ํ•„ํ„ฐ
โ–ช
์„ธ์…˜
โ–ช
์ฟ ํ‚ค
โ—ฆ
JSP
โ–ช
JSP ํƒœ๊ทธ
โ–ช
JSTL
โ–ช
EL ํ‘œํ˜„ ์–ธ์–ด
โ—ฆ
์—…๋ฌด ํ”„๋กœ์„ธ์Šค
โ–ช
๋กœ๊ทธ์ธ
โ–ช
ํšŒ์›๊ฐ€์ž…
โ–ช
๊ณตํ†ต
โ€ข
ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ
โ€ข
๊ฒ€์ƒ‰
โ€ข
ํ•„ํ„ฐ
โ–ช
ํšŒ์› ๊ด€๋ฆฌ
โ–ช
๊ฒŒ์‹œ๊ธ€ ๊ด€๋ฆฌ
โ–ช
๋Œ“๊ธ€ ๊ด€๋ฆฌ
โ–ช
ํŒŒ์ผ ๊ด€๋ฆฌ
โ€ข
ํŒŒ์ผ ์—…๋กœ๋“œ
โ€ข
ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
โ–ช
์ƒํ’ˆ ๊ด€๋ฆฌ
โ–ช
์ฃผ๋ฌธ ๊ด€๋ฆฌ
โ€ข
์ฃผ๋ฌธ์„œ ์ž‘์„ฑ
โ€ข
์žฅ๋ฐ”๊ตฌ๋‹ˆ
โ€ข
๊ฒฐ์ œ
โ€ข
์ฃผ๋ฌธ ์ทจ์†Œ
โ€ข
ํ™˜๋ถˆ
โ—ฆ
์•„ํ‚คํ…์ฒ˜
โ–ช
MVC ์•„ํ‚คํ…์ฒ˜
โ—ฆ
์„ค๊ณ„
โ–ช
DDD (๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„)

ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ํŽ˜์ด์ง€๋งˆ๋‹ค ๊ฐœ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์ž‘์—…
โ€ข
๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜
โ€ข
ํ•œ ํŽ˜์ด์ง€๋‹น ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜
โ€ข
๋…ธ์ถœ ํŽ˜์ด์ง€ ๊ฐœ์ˆ˜
ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๊ฐ€ ๊ตฌํ˜„์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ ์šฉํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฑธ ์ง์ ‘ ์šฐ๋ฆฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋˜ ์ด์ œ ๋’ค์— ์‹ค๋ฌด์— ๊ฐ€๋ฉด ์–ด๋–ค ํ”„๋ ˆ์ž„์›Œํฌ์— ๋”ฐ๋ผ์„œ ๊ทธ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๊ฐ™์ด ์—ฐ๊ณ„ํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด์„œ๋„ ์“ธ ์ˆ˜๊ฐ€ ์žˆ์–ด์š”.

ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ ์ ์šฉ

1.
Page ๊ฐ์ฒด ์ •์˜
2.
์ฟผ๋ฆฌ ์ ์šฉ
3.
ํŽ˜์ด์ง€๋„ค์ด์…˜

Page ๊ฐ์ฒด ์ •์˜

โ€ข
ํ•„์ˆ˜ ์ •๋ณด
โ—ฆ
ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ
โ—ฆ
ํŽ˜์ด์ง€๋‹น ๊ฒŒ์‹œ๊ธ€ ์ˆ˜
โ—ฆ
๋…ธ์ถœ ํŽ˜์ด์ง€ ๊ฐœ์ˆ˜
โ—ฆ
์ „์ฒด ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜
โ€ข
์ˆ˜์‹ ์ •๋ณด
โ—ฆ
์‹œ์ž‘ ๋ฒˆํ˜ธ
โ—ฆ
๋ ๋ฒˆํ˜ธ
โ—ฆ
์ฒซ ๋ฒˆํ˜ธ
โ—ฆ
๋งˆ์ง€๋ง‰ ๋ฒˆํ˜ธ

Page.java

import lombok.Data; /** * [ํŽ˜์ด์ง•] * โœ… ํŽ˜์ด์ง€ ํ•„์ˆ˜ ์ •๋ณด * ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ * ํŽ˜์ด์ง€๋‹น ๊ฒŒ์‹œ๊ธ€ ์ˆ˜ * ๋…ธ์ถœ ํŽ˜์ด์ง€ ๊ฐœ์ˆ˜ * ์ „์ฒด ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ * * โญ ํŽ˜์ด์ง€ ์ˆ˜์‹ ์ •๋ณด * ์‹œ์ž‘ ๋ฒˆํ˜ธ * ๋ ๋ฒˆํ˜ธ * ์ฒซ ๋ฒˆํ˜ธ * ๋งˆ์ง€๋ง‰ ๋ฒˆํ˜ธ */ @Data public class Page { // ํŽ˜์ด์ง• ๊ธฐ๋ณธ๊ฐ’ private static final int PAGE_NUM = 1; // ํ˜„์žฌ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ๊ธฐ๋ณธ๊ฐ’ private static final int ROWS = 10; // ํŽ˜์ด์ง€๋‹น ๊ฒŒ์‹œ๊ธ€ ์ˆ˜ ๊ธฐ๋ณธ๊ฐ’ private static final int COUNT = 10; // ๋…ธ์ถœ ํŽ˜์ด์ง€ ๊ฐœ์ˆ˜ ๊ธฐ๋ณธ๊ฐ’ // โœ… ํ•„์ˆ˜ ์ •๋ณด private int page; // ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ private int rows; // ํŽ˜์ด์ง€๋‹น ๊ธ€ ์ˆ˜ private int count; // ๋…ธ์ถœ ํŽ˜์ด์ง€ ๊ฐœ์ˆ˜ private int total; // ์ „์ฒด ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ // โญ ์ˆ˜์‹ ์ •๋ณด private int start; // ์‹œ์ž‘ ๋ฒˆํ˜ธ private int end; // ๋ ๋ฒˆํ˜ธ private int first; // ์ฒซ ๋ฒˆํ˜ธ private int last; // ๋งˆ์ง€๋ง‰ ๋ฒˆํ˜ธ private int prev; // ์ด์ „ ๋ฒˆํ˜ธ private int next; // ๋‹ค์Œ ๋ฒˆํ˜ธ private int index; // ๋ฐ์ดํ„ฐ ์ˆœ์„œ ๋ฒˆํ˜ธ // ์ƒ์„ฑ์ž public Page() { this(0); } // ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ public Page(int total) { this(PAGE_NUM, total); } // ํ˜„์žฌ ๋ฒˆํ˜ธ, ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ public Page(int page, int total) { this(page, ROWS, COUNT, total); } public Page(int page, int rows, int count, int total) { this.page = page; this.rows = rows; this.count = count; this.total = total; calc(); } // setter // - ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ ์ง€์ • ํ›„, ํŽ˜์ด์ง• ์ˆ˜์‹ ์žฌ๊ณ„์‚ฐ public void setTotal(int total) { this.total = total; calc(); } // ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ ์ˆ˜์‹ public void calc() { // ์ฒซ ๋ฒˆํ˜ธ this.first = 1; // ๋งˆ์ง€๋ง‰ ๋ฒˆํ˜ธ this.last = (this.total - 1) / rows + 1; // ์‹œ์ž‘ ๋ฒˆํ˜ธ this.start = ( (page-1) / count ) * count + 1; // ๋ ๋ฒˆํ˜ธ this.end = ( (page-1) / count + 1 ) * count; if( this.end > this.last ) this.end = this.last; // ์ด์ „ ๋ฒˆํ˜ธ this.prev = this.page - 1; // ๋‹ค์Œ ๋ฒˆํ˜ธ this.next = this.page + 1; // ๋ฐ์ดํ„ฐ ์ˆœ์„œ ๋ฒˆํ˜ธ(index) this.index = (this.page - 1) * this.rows; } }
Java
๋ณต์‚ฌ

ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ฟผ๋ฆฌ ์ ์šฉ

- MySQL : LIMIT (์‹œ์ž‘index, ํŽ˜์ด์ง€๋‹น ๊ฒŒ์‹œ๊ธ€ ์ˆ˜)
ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ : 1
* ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก์—์„œ 0๋ฒˆ์งธ index ๋ถ€ํ„ฐ 10๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒ
SELECT * FROM board LIMIT (0, 10)
Java
๋ณต์‚ฌ
ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ : 5 * ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก์—์„œ 40๋ฒˆ์งธ index ๋ถ€ํ„ฐ 10๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒ
SELECT * FROM board LIMIT (40, 10)
Java
๋ณต์‚ฌ

์„œ๋น„์Šค ๋ฉ”์†Œ๋“œ์— ํŽ˜์ด์ง• ๊ฐ์ฒด๋ฅผ ํ™œ์šฉ

โ€ข
ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก๋งŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
public List<Board> list(Page page, Option option) throws Exception;
Java
๋ณต์‚ฌ
โ€ข
ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ ๋ชฉ๋ก๊ณผ ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ํ•จ๊ป˜ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ
public Map<String, Object> list(Page page, Option option) throws Exception;
Java
๋ณต์‚ฌ
map
โ€ข
โ€œpageโ€ : Page
โ€ข
โ€œlistโ€ : List<Board>
โ€ข
DTO ๋ฅผ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
public BoardDTO list(Page page, Option option) throws Exception;
Java
๋ณต์‚ฌ
BoardDTO ( List<Board> , Page )
์ •ํ™•ํžˆ๋Š” ํŽ˜์ด์ง•์ฒ˜๋ฆฌ๋ณด๋‹ค๋Š” ํด๋ž˜์Šค ๋งŒ๋“ค์–ด๋†จ๋Š”๋ฐ ๋‚ด์šฉ์ด ์ถ”๊ฐ€๋ ๋•Œ ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ์ข‹์„์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”?
DAO ์— ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ฒ˜๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ• ๋•Œ, ๋งค๊ฐœ๋ณ€์ˆ˜๋ž‘ ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€ํ• ๋•Œ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•ด์•ผํ•˜๋Š”๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๊นŒ?
๋ง์”€ํ•˜์‹  ๋‚ด์šฉ๋Œ€๋กœ ์ƒˆ๋กœ์šด ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด์„œ ํŽ˜์ด์ง•์„ ์ ์šฉํ•  ๋•Œ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€๋กœ ์„ ์–ธํ•œ๋‹ค๊ณ  ํ•˜๋ฉด
์ƒˆ๋กœ์šด DTO๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฐ์ฒด๋“ค๋งˆ๋‹ค ๋ณ„๋„๋กœ DTO ํด๋ž˜์Šค๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‹จ์ ์€ ์ค‘๋ณตํ•ด์„œ DTOํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ VS DTO

โ€ข
๋„๋ฉ”์ธ : ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ๊ณผ ๋™์ผํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๊ณ , ์ถ”๊ฐ€์ ์ธ ๋กœ์ง์„ ๊ฐ€์ง„ ๊ฐ์ฒด
โ€ข
DTO : ๊ณ„์ธต ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฐ์ฒด
ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จํ•ด์„œ ์ปฌ๋ ‰์…˜ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋„๋ฉ”์ธ๋งŒ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณ„๋„๋กœ DTO๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ ๋„
ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ ์„œ๋น„์Šค ๋กœ์ง๋“ค์„ ๋งŒ๋“ค ์ˆ˜๊ฐ€ ์žˆ๊ฒ ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ•„์š”์— ๋”ฐ๋ผ์„œ ํŽ˜์ด์ง€ ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก์„ ํฌํ•จํ•˜๋Š” ๋ณ„๋„์˜ DTO๋ฅผ ๊ตฌ์„ฑํ•ด์„œ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค.

๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ๋Œ€๋น„ DB ์„ค๊ณ„ ์‹ค์Šต

โ€ข
์š”๊ตฌ์‚ฌํ•ญ ์ •์˜์„œ
โ€ข
๊ธฐ๋Šฅ์ •์˜์„œ
โ€ข
๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ
โ€ข
๋ฌผ๋ฆฌ ์Šคํ‚ค๋งˆ(ERD)
โ—ฆ
โ€ข
DDL
โ—ฆ
ํ…Œ์ด๋ธ” ์ƒ์„ฑ
โ—ฆ
์ œ์•ฝ์กฐ๊ฑด ์ง€์ •
โ—ฆ
์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ๋Œ€๋น„ ํ™”๋ฉด ์„ค๊ณ„ ์‹ค์Šต

ํ”„๋กœ์ ํŠธ ์ฃผ์ œ ๋ ˆํผ๋Ÿฐ์Šค

Open AI ์ƒ๋‹ด ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•œ ์ธํ…Œ๋ฆฌ์–ด ์ƒํ’ˆ ํŒ๋งค ์›น ์‚ฌ์ดํŠธ
Open AI ์ƒ๋‹ด ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•œ ์ธํ…Œ๋ฆฌ์–ด ์ƒํ’ˆ ํŒ๋งค ์›น ์‚ฌ์ดํŠธ

JSP ์›น๊ฐœ๋ฐœ ์ฃผ์š”๊ธฐ๋Šฅ ํ”„๋กœ์„ธ์Šค ์ •๋ฆฌ

์ฃผ์š”๊ธฐ๋Šฅ

โ€ข
๋กœ๊ทธ์ธ
โ€ข
ํšŒ์›๊ฐ€์ž…
โ€ข
๊ณตํ†ต
โ—ฆ
ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ
โ—ฆ
๊ฒ€์ƒ‰
โ—ฆ
ํ•„ํ„ฐ
โ€ข
ํšŒ์› ๊ด€๋ฆฌ
โ€ข
๊ฒŒ์‹œ๊ธ€ ๊ด€๋ฆฌ
โ€ข
๋Œ“๊ธ€ ๊ด€๋ฆฌ
โ€ข
ํŒŒ์ผ ๊ด€๋ฆฌ
โ—ฆ
ํŒŒ์ผ ์—…๋กœ๋“œ
โ—ฆ
ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

๋งˆ๋ฌด๋ฆฌ

ํ”„๋กœ์ ํŠธ

1.
๊ธฐํš
2.
์„ค๊ณ„
3.
๊ฐœ๋ฐœ
4.
ํ…Œ์ŠคํŠธ
5.
๋ฐฐํฌ
+๊ฒฐ๊ณผ๋ณด๊ณ ์„œ ์ž‘์„ฑ, ๋ฐœํ‘œํšŒ

๊ธฐํš

โ€ข
์•„์ด๋””์–ด ํšŒ์˜
โ€ข
์ฃผ์ œ ์„ ์ •
โ€ข
์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„
โ€ข
๋ ˆํผ๋Ÿฐ์Šค ์‚ฌ์ดํŠธ ๋ถ„์„
โ€ข
๋ฒค์น˜๋งˆํ‚น
โ€ข
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
โ€ข
API

์„ค๊ณ„

โ€ข
DB ์„ค๊ณ„
โ—ฆ
์š”๊ตฌ์‚ฌํ•ญ ์ •์˜์„œ
โ—ฆ
๊ธฐ๋Šฅ์ •์˜์„œ
โ—ฆ
๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ
โ—ฆ
๋ฌผ๋ฆฌ ์Šคํ‚ค๋งˆ(ERD)
โ–ช
โ—ฆ
DDL
โ–ช
ํ…Œ์ด๋ธ” ์ƒ์„ฑ
โ–ช
์ œ์•ฝ์กฐ๊ฑด ์ง€์ •
โ–ช
์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
โ€ข
ํ™”๋ฉด ์„ค๊ณ„
โ—ฆ
๊ณตํ†ต ๋ ˆ์ด์•„์›ƒ
โ—ฆ
๋ฉ”์ธ ํ™”๋ฉด
โ—ฆ
์ƒ์„ธ ํ™”๋ฉด
โ—ฆ
๊ด€๋ฆฌ์ž ํ™”๋ฉด

๊ฐœ๋ฐœ

โ€ข
์—ญํ•  ๋ถ„๋‹ด
โ€ข
Github ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์„ธํŒ…
โ—ฆ
๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ
โ—ฆ
๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
โ€ข
๊ตฌํ˜„

ํ…Œ์ŠคํŠธ

๋ฐฐํฌ

โ€ข
JSP ํ”„๋กœ์ ํŠธ
โ€ข
.war ์‹คํ–‰ ํŒŒ์ผ ์ƒ์„ฑ
โ€ข
์„œ๋ฒ„ ์‹คํ–‰ ํŒŒ์ผ ๋ฐฐํฌ

๊ฒฐ๊ณผ๋ณด๊ณ ์„œ

๋ฐœํ‘œํšŒ