๐Ÿš€ ์›น ์•„ํ‚คํ…์ฒ˜์˜ ์ดํ•ด: ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ ํ๋ฆ„

๊น€์ƒ์šฑยท2024๋…„ 7์›” 30์ผ
0
post-thumbnail

1. ํด๋ผ์ด์–ธํŠธ์™€ HTTP ์š”์ฒญ

ํด๋ผ์ด์–ธํŠธ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด URL์„ ์ž…๋ ฅํ•˜์—ฌ HTTP ์š”์ฒญ์„ ์„œ๋ฒ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ์ด ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๊ณ , HTTP ์‘๋‹ต์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

2. ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌ์„ฑ

ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ HTML, CSS, JavaScript๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋“ค ๊ธฐ์ˆ ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์›น ์„œ๋ฒ„์˜ ์—ญํ• 

Apache์™€ ๊ฐ™์€ ์›น ์„œ๋ฒ„(W.S)๊ฐ€ HTTP ์š”์ฒญ์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹ ๋œ ์š”์ฒญ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด Application Server(A.S)๋กœ ์ „๋‹ฌ๋˜์–ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ W.S์™€ A.S๋ฅผ ํ†ตํ•ฉํ•œ ๊ตฌ์กฐ๋กœ Tomcat(ํ†ฐ์บฃ)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

4. Application Server์™€ Servlet

A.S์—์„œ ์ฒ˜๋ฆฌ๋œ ์š”์ฒญ์€ Java์˜ Servlet ๊ธฐ์ˆ ์„ ํ†ตํ•ด HTML์„ ์ƒ์„ฑํ•˜์—ฌ HTTP ์‘๋‹ต์— ๋‹ด์•„ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ์—๋Š” Servlet์˜ ๋ณต์žกํ•จ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด JSP(JavaServer Pages)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

5. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ

๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋Š” RDBMS(๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ)์—์„œ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” JDBC(Java Database Connectivity) API๋ฅผ ํ†ตํ•ด DBMS์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.

6. ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ™œ์šฉ

์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ์ค„์ด๊ธฐ ์œ„ํ•ด Spring ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Spring์€ JDBC์™€์˜ ์ž‘์—…์„ ๊ฐ„์†Œํ™”ํ•˜๋ฉฐ, MyBatis๋‚˜ JPA์™€ ๊ฐ™์€ ORM(Object-Relational Mapping) ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ๋” ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

7. ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ DTO

๊ณ„์ธต ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์€ ๋ณดํ†ต DTO(Data Transfer Object)๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์„œ๋น„์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


์ด ๊ธ€์„ ํ†ตํ•ด ์›น ์•„ํ‚คํ…์ฒ˜์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์›น ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋†’์ด๊ณ , ๋” ๋‚˜์€ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ๊ธฐ์ดˆ๋ฅผ ๋‹ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๐ŸŒโœจ


์ฐธ๊ณ ์ž๋ฃŒ

[1] velog - [WEB] WAS(Web Application Server)์™€ ์„œ๋ธ”๋ฆฟ(Servlet)์— ... (https://velog.io/@dyunge_100/WEB-WASWeb-Application-Server%EC%99%80-%EC%84%9C%EB%B8%94%EB%A6%BFServlet%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC)
[2] ํ‹ฐ์Šคํ† ๋ฆฌ - Apache Tomcat (WAS, Web Server, Apache HTTP ... - ํ˜ธ์†Œ์„ธ (https://pabeba.tistory.com/145)
[3] TISTORY - WebServer1์ฃผ์ฐจ์›น์„œ๋ฒ„๋ž€? - ๊ณต๋ถ€์šฉ ๋ธ”๋กœ๊ทธ (https://invisible-blog.tistory.com/17)
[4] ํ‹ฐ์Šคํ† ๋ฆฌ - Tomcat(ํ†ฐ์บฃ), JSP, Servlet(์„œ๋ธ”๋ฆฟ)์˜ ๊ธฐ๋ณธ ๊ฐœ๋… ๋ฐ ๊ตฌ์กฐ (https://codevang.tistory.com/191)

0๊ฐœ์˜ ๋Œ“๊ธ€