๐Ÿ’ป BackEnd/๐ŸŸข Spring | SpringBoot

๐ŸŸข [Spring] [Project] ํ•ญ๊ณต๊ถŒ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ

Dbswnstjd 2023. 7. 28. 17:42

Flight Easy

๐Ÿ“‘ ํ•ญ๊ณต๊ถŒ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ

ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 2023-07-17 ~ 2023-07-28


๐Ÿ“‹ Spring MVC Projcet ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

โœ… UI ์–ธ์–ด ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : HTML / CSS / JavaScript / JSP / jQuery

โœ… Language : JDK 8 / Spring Framework 4.3.9 / MyBatis / Maven

โœ… Infra : Apache Tomcat v9.0 / Oracle DataBasse 11g XE

โœ… Configuration : Github / ERD Cloud / Notion

 

Spring MVC Project ๋ฅผ ํ•˜๋ฉฐ ์‚ฌ์šฉํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ๋กœ View ๋‹จ์— ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์€ Jsp ์™€ jQuery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฐ ๋™์  ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์–ธ์–ด๋Š” ์ž๋ฐ”๋กœ, Spring Framework 4.3.9 ๋ฒ„์ „, MyBatis ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ด์šฉํ•˜๊ณ , Maven์„ ํ†ตํ•ด ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ์ธํ”„๋ผ๋Š” Apache Tomcat v9.0 ๋ฒ„์ „, ์˜ค๋ผํด ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค 11g XE ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ 

ํ˜•์ƒ๊ด€๋ฆฌ ๋ฐ ๊ฐœ๋ฐœ ๋„๊ตฌ๋Š” Github , ERD Cloud , Notion์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. 


๐Ÿ“‹ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์—ฌํ–‰์„ ์ข‹์•„ํ•˜๊ณ  ์œ ๋ช…ํ•œ ํ•ญ๊ณต๊ถŒ ์˜ˆ๋งค ์‚ฌ์ดํŠธ(skyscanner)์™€ ๊ฐ™์€ ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๋กœ์ง์„ ๊ฒฝํ—˜ํ•ด๋ณด๊ณ  ์‹ถ์–ด ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋กœ๋‚˜๊ฐ€ ๋๋‚œ ์‹œ์ ์— ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์—ฌํ–‰์„ ์ฆ๊ธฐ๊ณ  ์žˆ๊ณ  ๊ธฐ์กด ํ•ญ๊ณต๊ถŒ ์‚ฌ์ดํŠธ์˜ UI๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒฝํ—˜์„ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. 


๐Ÿ“‹ API ๋ช…์„ธ์„œ

๊ฐœ๋ฐœ ์ง„ํ–‰์— ์•ž์„œ API ๋ช…์„ธ์„œ๋ฅผ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ํšŒ์› ๊ธฐ๋Šฅ๋“ค๊ณผ ํ•ญ๊ณต๊ถŒ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ๋“ค ๊ทธ๋ฆฌ๊ณ  Q&A ๊ฒŒ์‹œํŒ์„ ๋งŒ๋“ค ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋ช…์„ธ์„œ๋ฅผ ํ†ตํ•ด ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์žˆ๊ณ  ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋Š” ๋™์•ˆ ๋น ์ง„ ๋‚ด์šฉ์€ ์—†๋Š”์ง€ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  URL์„ ์„ค๊ณ„ํ•˜์—ฌ Controller๋ฅผ ํŽธํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. 

 

ํšŒ์› ๊ด€๋ จ
ํ•ญ๊ณต ๊ด€๋ จ / Q & A


๐Ÿ“‹ ์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

 

์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

์ €ํฌ ์„œ๋น„์Šค๋Š” ํ™ˆํŽ˜์ด์ง€ / ํ•ญ๊ณต๊ถŒ ๊ฒ€์ƒ‰์™ธ์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋Š” ๋กœ๊ทธ์ธ์ด ์ด๋ฃจ์–ด์ ธ์•ผ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๋จผ์ € ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ํšŒ์›๊ฐ€์ž…์„ ํ†ตํ•ด ํšŒ์›์œผ๋กœ ๋“ฑ๋ก์ด ๋˜๋ฉด ํ•ญ๊ณต๊ถŒ ์„ ํƒ ๋ฐ ์˜ˆ์•ฝ ๊ฒฐ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์ž์‹ ์˜ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  Q & A ์— ์งˆ๋ฌธ์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  

๋‹ค์Œ์œผ๋กœ ํ•ญ๊ณต๊ถŒ ๊ด€๋ จ ์„œ๋น„์Šค ์ž…๋‹ˆ๋‹ค. ํ•ญ๊ณต๊ถŒ ๊ฒ€์ƒ‰์„ ํ•˜๊ฒŒ๋˜๋ฉด ๊ทธ ์Šค์ผ€์ค„์— ๋งž๋Š” ํ•ญ๊ณต๊ถŒ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž๋Š” ํ•ญ๊ณต๊ถŒ์„ ์„ ํƒํ•˜๊ณ  ์„ ํƒ์„ ๋งˆ์น˜๋ฉด ๊ทธ ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค์ธ ๊ฒฐ์ œ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ์ œ ํŽ˜์ด์ง€์—์„œ ๊ฒฐ์ œ๋ฅผ ํ•˜๊ณ  ๋‚œ ํ›„ ๊ฒฐ์ œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ์น˜๋ฉด ๋งˆ์ด ํŽ˜์ด์ง€์˜ ์˜ˆ์•ฝ ๋‚ด์—ญ์— ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด Q & A ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์ถ”ํ›„์— ํ•ญ๊ณตํŽธ ์Šค์ผ€์ค„ ๋“ฑ๋ก, ์˜ˆ์•ฝ ๊ด€๋ฆฌ ๋“ฑ ๊ด€๋ฆฌ์ž์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.


๐Ÿ“‹ ํ”„๋กœ์ ํŠธ ํด๋” ๊ตฌ์กฐ

ํ”„๋กœ์ ํŠธ ํด๋” ๊ตฌ์กฐ

๋‹ค์Œ์œผ๋กœ ํ”„๋กœ์ ํŠธ ํด๋”๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค.

Controller, Service, Model, Dao ํŒจํ‚ค์ง€๊ฐ€ ์กด์žฌํ•˜๊ณ  Controller์—์„œ๋Š” jsp์—์„œ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฐ’๋“ค์„ ๋ฐ›์•„์™€ ๊ฐ€๊ณตํ•˜๊ณ  Service์—์„œ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ณ  Model์—์„œ Repository๋ฅผ ๋งŒ๋“ค๊ณ  MyBatis๊ฐ€ Mapping ํ•ด์ฃผ๋Š” Mapper๋ฅผ /src/main/resources/ ์•„๋ž˜์— ๋งŒ๋“ค์–ด ๊ตฌํ˜„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.