Skip to content

πŸš€ STS3 ν™˜κ²½μ—μ„œ κ΅¬μΆ•ν•œ λ„μ„œκ΄€ μ›Ή

Notifications You must be signed in to change notification settings

kim-src/KimLibrary_STS3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎁 Tunnel


βœ… KimLibrary_STS3 μ†Œκ°œ

  • 개발 ν™˜κ²½ : Spring Tool Suite 3
  • 개발 λͺ©μ  : MVC νŒ¨ν„΄μ˜ Legacy Project μ›Ή 개발 κ²½ν—˜ 및 STS3 ν™œμš© κ²½ν—˜ μŠ΅λ“
  • 개발 λ‚΄μš© : λ„μ„œκ΄€ μ›Ή νŽ˜μ΄μ§€(KimLibrary) μ œμž‘ 및 λ„μ„œ λŒ€μ—¬μž 관리
  • 개발 μ—­λŸ‰ : STS3 ν™œμš©, M-V-C ꡬ좕, Tomcat μ„œλ²„ 연동, μ™ΈλΆ€ 라이브러리 이해, DB 생성, DB 연동
  • 상세 λ‚΄μš© : KimLibrary (λΈ”λ‘œκ·Έ μΉ΄ν…Œκ³ λ¦¬)
  • κ°œλ°œμ— ν•„μš”ν–ˆλ˜ κΈ°λŠ₯ :
    STS3 Spring Framework HTML5 CSS3 Tomcat

πŸ› οΈ ν–₯ν›„ κ³„νš 및 λ°œμ „ λ°©ν–₯

  • KimLibraryλŠ” μ›Ή 개발 μ—­λŸ‰μ„ μ¦μ§„μ‹œν‚€κΈ° μœ„ν•΄ μˆ˜ν–‰ν•œ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.
  • Spring을 μ •ν†΅μœΌλ‘œ ν•™μŠ΅ν•˜κΈ° μœ„ν•΄ STS3 ν™˜κ²½μ—μ„œ Spring Frameworkλ₯Ό μ‚¬μš©ν•˜μ—¬ κ°œλ°œν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • 그런데 Springκ³Ό DBλ₯Ό μ—°κ²°ν•˜λŠ” κ³Όμ •μ—μ„œ μ™ΈλΆ€ 라이브러리 버전을 ν˜Έν™˜μ‹œκΈ°ν‚€μ§€ λͺ»ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • Spring을 μ΄μš©ν•œ μ›Ή κ°œλ°œμ— λŒ€ν•΄ 이해가 λΆ€μ‘±ν–ˆκΈ° λ•Œλ¬Έμ— μ μ ˆν•œ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ μš©λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.
  • 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ Spring Bootλ₯Ό ν™œμš©ν•˜μ—¬ Spring에 λŒ€ν•œ 이해도λ₯Ό λ”μš± 높이렀고 ν•©λ‹ˆλ‹€.
  • λ”°λΌμ„œ μΆ”ν›„ IntelliJ, VS Code, Eclipse ν™˜κ²½μ—μ„œλ„ λ™μΌν•œ λ‚΄μš©μ˜ ν”„λ‘œμ νŠΈλ₯Ό κ°œλ°œν•  μ˜ˆμ •μž…λ‹ˆλ‹€.

πŸš€ 개발 ν˜„ν™© : KimLibrary (ν˜„μž¬ ver. 0.4.0)

🎯 v0.2.0

  • ν”„λ‘œμ νŠΈ 기획 및 개발 ν™˜κ²½ ꡬ좕 (2024-01-17)
  • "고객λͺ©λ‘", "λ„μ„œμ •λ³΄", "λ„μ„œλŒ€μ—¬ ν˜„ν™©" λ°μ΄ν„°λ² μ΄μŠ€ ꡬ좕 (2024-01-19)

🎯 v0.4.0

  • MVC 쀑 View 및 Controller ꡬ좕 (2024-01-24)
  • λΈŒλΌμš°μ €μ— μ›Ή νŽ˜μ΄μ§€ κ΅¬ν˜„ (2024-01-24)

🎯 v0.6.0

  • MVC 쀑 Model ꡬ좕
  • κ΅¬μΆ•λœ Modelκ³Ό λ°μ΄ν„°λ² μ΄μŠ€ 연동
  • κ΅¬ν˜„λœ μ›Ή νŽ˜μ΄μ§€μ˜ μž…λ ₯ 데이터와 λ°μ΄ν„°λ² μ΄μŠ€ 연동
  • ν˜„μž¬ Hibernate ν˜Έν™˜ 문제둜 μΈν•œ 개발 쀑지 μƒνƒœ
  • Spring Bootλ₯Ό μ΄μš©ν•œ 동일 μ„œλΉ„μŠ€ 개발 ν›„ 개발 재개 μ˜ˆμ •

🎯 v0.8.0

  • λ„μ„œ "λŒ€μ—¬κΈˆμ•‘" 처리 둜직 개발
  • Controller μ„ΈλΆ„ν™” : CustomerController, RentalController, BookController

🎯 v1.0.0

  • AWSλ₯Ό μ΄μš©ν•˜μ—¬ KimLibrary_STS3 μ›Ή 배포

Date : January 24, 2024

πŸ“Œ κ΅¬μΆ•λœ View 및 Controller


πŸ“Œ λΈŒλΌμš°μ €μ— κ΅¬ν˜„λœ μ›Ή νŽ˜μ΄μ§€

A. ν™ˆνŽ˜μ΄μ§€ : index.jsp

B. 고객정보 등둝 νŽ˜μ΄μ§€ : CustomerRegistration.jsp

C. 고객λͺ©λ‘ 쑰회 νŽ˜μ΄μ§€ : CustomerList.jsp

D. 고객정보 μˆ˜μ • νŽ˜μ΄μ§€ : CustomerInfoEdit.jsp

E. λŒ€μ—¬λͺ©λ‘ 쑰회 νŽ˜μ΄μ§€ : RentalHistory.jsp

F. λŒ€μ—¬κΈˆμ•‘ 쑰회 νŽ˜μ΄μ§€ : RentalCost.jsp


Date : January 19, 2024

πŸ“Œ ν”„λ‘œμ νŠΈ 개발 ν™˜κ²½

  • Spring Tool Suite 3.9.17
  • Java Development Kit 11
  • Tomcat 9.0.52
  • MySQL 8.0.33

πŸ“Œ ν”„λ‘œμ νŠΈ 기획

A. ν™ˆνŽ˜μ΄μ§€ : index.jsp

  • λ„μ„œκ΄€ μ†Œκ°œ
  • "고객정보 등둝" νŽ˜μ΄μ§€ 접근을 μœ„ν•œ UI ꡬ성
  • "고객λͺ©λ‘ 쑰회" νŽ˜μ΄μ§€ 접근을 μœ„ν•œ UI ꡬ성
  • "고객정보 μˆ˜μ •" νŽ˜μ΄μ§€ 접근을 μœ„ν•œ UI ꡬ성
  • "λŒ€μ—¬λͺ©λ‘ 쑰회" νŽ˜μ΄μ§€ 접근을 μœ„ν•œ UI ꡬ성
  • "λŒ€μ—¬κΈˆμ•‘ 쑰회" νŽ˜μ΄μ§€ 접근을 μœ„ν•œ UI ꡬ성
  • "ν™ˆνŽ˜μ΄μ§€" 접근을 μœ„ν•œ UI ꡬ성

B. 고객정보 등둝 νŽ˜μ΄μ§€ : CustomerRegistration.jsp

  • λ„μ„œ λŒ€μ—¬μž 정보 μž…λ ₯을 μœ„ν•œ κ΄€λ¦¬μž ν•„λ“œ ꡬ성
  • μž…λ ₯된 고객 μ •λ³΄λŠ” λ°μ΄ν„°λ² μ΄μŠ€(Member_tbl)에 μ‚½μž…
  • "고객이름" μž…λ ₯을 μœ„ν•œ ν•„λ“œ ꡬ성
  • "μ „ν™”λ²ˆν˜Έ" μž…λ ₯을 μœ„ν•œ ν•„λ“œ ꡬ성
  • "이메일" μž…λ ₯을 μœ„ν•œ ν•„λ“œ ꡬ성

C. 고객λͺ©λ‘ 쑰회 νŽ˜μ΄μ§€ : CustomerList.jsp

  • λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 고객 정보 ν‘œμ‹œ
  • "고객번호"λŠ” "1000"λΆ€ν„° λ°μ΄ν„°λ² μ΄μŠ€ μ €μž₯ μˆœμ„œλŒ€λ‘œ λΆ€μ—¬
  • "고객번호"에 고객정보 μˆ˜μ • νŽ˜μ΄μ§€ 접근을 μœ„ν•œ UI ꡬ성
  • "κ°€μž…μΌμž"λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ €μž₯ 일자둜 λΆ€μ—¬
  • "고객등급"은 λ„μ„œ λŒ€μ—¬ κΈˆμ•‘ 총계에 따라 μ°¨λ“± λΆ€μ—¬

D. 고객정보 μˆ˜μ • νŽ˜μ΄μ§€ : CustomerInfoEdit.jsp

  • λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 고객 정보 μˆ˜μ • ν•„λ“œ ꡬ성

E. λŒ€μ—¬λͺ©λ‘ 쑰회 νŽ˜μ΄μ§€ : RentalHistory.jsp

  • λ„μ„œ λŒ€μ—¬μžμ˜ λŒ€μ—¬ 정보 ν‘œμ‹œ
  • λŒ€μ—¬ μ •λ³΄λŠ” λ°μ΄ν„°λ² μ΄μŠ€(Rental_tbl)에 μ €μž₯된 λ‚΄μš©
  • "λŒ€μ—¬λ²ˆν˜Έ"λŠ” λ„μ„œ λŒ€μ—¬ λ°œμƒλ…„λ„μ˜ λŒ€μ—¬ μˆœμ„œλŒ€λ‘œ λΆ€μ—¬("20240001"λΆ€ν„° λΆ€μ—¬)
  • "λ„μ„œμ½”λ“œ" 및 "λŒ€μ—¬κΈˆμ•‘"은 λ°μ΄ν„°λ² μ΄μŠ€(BookInfo_tbl)에 μ €μž₯된 λ‚΄μš©
  • "λŒ€μ—¬μΌμž"λŠ” λ„μ„œ λŒ€μ—¬ λ°œμƒμΌ
  • "λ°˜λ‚©μΌμž"λŠ” λ„μ„œ 수령 λ°œμƒμΌ
  • "λŒ€μ—¬μΌμž" 및 "λ°˜λ‚©μΌμž"λŠ” κ΄€λ¦¬μžκ°€ 쑰회 νŽ˜μ΄μ§€μ—μ„œ λ‚ μ§œ 선택기λ₯Ό μ΄μš©ν•΄ μž…λ ₯ κ°€λŠ₯

F. λŒ€μ—¬κΈˆμ•‘ 쑰회 νŽ˜μ΄μ§€ : RentalCost.jsp

  • λ„μ„œ λŒ€μ—¬μžμ˜ 총 λŒ€μ—¬ κΈˆμ•‘ ν‘œμ‹œ
  • "고객번호" 및 "고객이름"은 λ°μ΄ν„°λ² μ΄μŠ€(Member_tbl)에 μ €μž₯된 λ‚΄μš©
  • "λŒ€μ—¬κΈˆμ•‘ 총계"λŠ” "λŒ€μ—¬κΈˆμ•‘"에 λˆ„μ  λŒ€μ—¬ 횟수λ₯Ό κ³±ν•œ κ°’
  • "고객등급"은 "λŒ€μ—¬κΈˆμ•‘ 총계"에 따라 μ°¨λ“± λΆ€μ—¬
  • "λŒ€μ—¬κΈˆμ•‘ 총계" 5,000원 λ―Έλ§Œμ€ "Level" 1, 5,000원 이상뢀터 5,000원 λ‹¨μœ„ λ‹Ή "Level" 1 증가

πŸ“Œ λ°μ΄ν„°λ² μ΄μŠ€ ꡬ좕

A. Member_tbl : 고객 정보 DB

# Table 생성
CREATE TABLE Member_tbl (
    cust_no INT AUTO_INCREMENT PRIMARY KEY, # 고객번호(κΈ°λ³Έν‚€)
    cust_name VARCHAR(20) NOT NULL, # 고객이름
    phone VARCHAR(20) NOT NULL, # μ „ν™”λ²ˆν˜Έ
    join_date DATETIME DEFAULT CURRENT_TIMESTAMP, # κ°€μž…μΌμž
    cust_email VARCHAR(50) NOT NULL, # 이메일
    grade VARCHAR(20) DEFAULT 'Level 1' # 고객등급
);

B. Rental_tbl : λŒ€μ—¬ 정보 DB

CREATE TABLE Rental_tbl (
    rent_no INT AUTO_INCREMENT PRIMARY KEY, # λŒ€μ—¬λ²ˆν˜Έ(κΈ°λ³Έν‚€)
    cust_no INT, # 고객번호(μ™Έλž˜ν‚€)
    book_code VARCHAR(20), # λ„μ„œλ²ˆν˜Έ(μ™Έλž˜ν‚€)
    rent_days INT DEFAULT 0, # λŒ€μ—¬μΌμˆ˜
    rent_price INT, # λŒ€μ—¬κΈˆμ•‘
    rent_date DATETIME DEFAULT CURRENT_TIMESTAMP, # λŒ€μ—¬μΌμž
    FOREIGN KEY (cust_no) REFERENCES Member_tbl(cust_no),
    FOREIGN KEY (book_code) REFERENCES Book_tbl(book_code)
);

C. Rental_tbl : λ„μ„œ 정보 DB

CREATE TABLE Book_tbl (
    book_code VARCHAR(20) PRIMARY KEY, # λ„μ„œλ²ˆν˜Έ(κΈ°λ³Έν‚€)
    book_name VARCHAR(100) NOT NULL, # λ„μ„œμ΄λ¦„
    book_price INT NOT NULL, # λ„μ„œκΈˆμ•‘
    rent_day INT NOT NULL, # λŒ€μ—¬κΈˆμ•‘
);