β
KimLibrary_STS3 μκ°
κ°λ° νκ²½ : Spring Tool Suite 3
κ°λ° λͺ©μ : MVC ν¨ν΄μ Legacy Project μΉ κ°λ° κ²½ν λ° STS3 νμ© κ²½ν μ΅λ
κ°λ° λ΄μ© : λμκ΄ μΉ νμ΄μ§(KimLibrary) μ μ λ° λμ λμ¬μ κ΄λ¦¬
κ°λ° μλ : STS3 νμ©, M-V-C ꡬμΆ, Tomcat μλ² μ°λ, μΈλΆ λΌμ΄λΈλ¬λ¦¬ μ΄ν΄, DB μμ±, DB μ°λ
μμΈ λ΄μ© : KimLibrary (λΈλ‘κ·Έ μΉ΄ν
κ³ λ¦¬)
κ°λ°μ νμνλ κΈ°λ₯ :
π οΈ ν₯ν κ³ν λ° λ°μ λ°©ν₯
KimLibraryλ μΉ κ°λ° μλμ μ¦μ§μν€κΈ° μν΄ μνν νλ‘μ νΈμ
λλ€.
Springμ μ ν΅μΌλ‘ νμ΅νκΈ° μν΄ STS3 νκ²½μμ Spring Frameworkλ₯Ό μ¬μ©νμ¬ κ°λ°νμμ΅λλ€.
κ·Έλ°λ° Springκ³Ό DBλ₯Ό μ°κ²°νλ κ³Όμ μμ μΈλΆ λΌμ΄λΈλ¬λ¦¬ λ²μ μ νΈνμκΈ°ν€μ§ λͺ»νμμ΅λλ€.
Springμ μ΄μ©ν μΉ κ°λ°μ λν΄ μ΄ν΄κ° λΆμ‘±νκΈ° λλ¬Έμ μ μ ν λΌμ΄λΈλ¬λ¦¬κ° μ μ©λμ§ μμμ΅λλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ Spring Bootλ₯Ό νμ©νμ¬ Springμ λν μ΄ν΄λλ₯Ό λμ± λμ΄λ €κ³ ν©λλ€.
λ°λΌμ μΆν IntelliJ, VS Code, Eclipse νκ²½μμλ λμΌν λ΄μ©μ νλ‘μ νΈλ₯Ό κ°λ°ν μμ μ
λλ€.
π κ°λ° νν© : KimLibrary (νμ¬ ver. 0.4.0)
νλ‘μ νΈ κΈ°ν λ° κ°λ° νκ²½ κ΅¬μΆ (2024-01-17)
"κ³ κ°λͺ©λ‘", "λμμ 보", "λμλμ¬ νν©" λ°μ΄ν°λ² μ΄μ€ κ΅¬μΆ (2024-01-19)
MVC μ€ View λ° Controller κ΅¬μΆ (2024-01-24)
λΈλΌμ°μ μ μΉ νμ΄μ§ ꡬν (2024-01-24)
MVC μ€ Model ꡬμΆ
ꡬμΆλ Modelκ³Ό λ°μ΄ν°λ² μ΄μ€ μ°λ
ꡬνλ μΉ νμ΄μ§μ μ
λ ₯ λ°μ΄ν°μ λ°μ΄ν°λ² μ΄μ€ μ°λ
νμ¬ Hibernate νΈν λ¬Έμ λ‘ μΈν κ°λ° μ€μ§ μν
Spring Bootλ₯Ό μ΄μ©ν λμΌ μλΉμ€ κ°λ° ν κ°λ° μ¬κ° μμ
λμ "λμ¬κΈμ‘" μ²λ¦¬ λ‘μ§ κ°λ°
Controller μΈλΆν : CustomerController, RentalController, BookController
AWSλ₯Ό μ΄μ©νμ¬ KimLibrary_STS3 μΉ λ°°ν¬
π ꡬμΆλ View λ° Controller
π λΈλΌμ°μ μ ꡬνλ μΉ νμ΄μ§
π νλ‘μ νΈ κ°λ° νκ²½
Spring Tool Suite 3.9.17
Java Development Kit 11
Tomcat 9.0.52
MySQL 8.0.33
λμκ΄ μκ°
"κ³ κ°μ 보 λ±λ‘" νμ΄μ§ μ κ·Όμ μν UI ꡬμ±
"κ³ κ°λͺ©λ‘ μ‘°ν" νμ΄μ§ μ κ·Όμ μν UI ꡬμ±
"κ³ κ°μ 보 μμ " νμ΄μ§ μ κ·Όμ μν UI ꡬμ±
"λμ¬λͺ©λ‘ μ‘°ν" νμ΄μ§ μ κ·Όμ μν UI ꡬμ±
"λμ¬κΈμ‘ μ‘°ν" νμ΄μ§ μ κ·Όμ μν UI ꡬμ±
"ννμ΄μ§" μ κ·Όμ μν UI ꡬμ±
λμ λμ¬μ μ 보 μ
λ ₯μ μν κ΄λ¦¬μ νλ ꡬμ±
μ
λ ₯λ κ³ κ° μ 보λ λ°μ΄ν°λ² μ΄μ€(Member_tbl)μ μ½μ
"κ³ κ°μ΄λ¦" μ
λ ₯μ μν νλ ꡬμ±
"μ νλ²νΈ" μ
λ ₯μ μν νλ ꡬμ±
"μ΄λ©μΌ" μ
λ ₯μ μν νλ ꡬμ±
λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ κ³ κ° μ 보 νμ
"κ³ κ°λ²νΈ"λ "1000"λΆν° λ°μ΄ν°λ² μ΄μ€ μ μ₯ μμλλ‘ λΆμ¬
"κ³ κ°λ²νΈ"μ κ³ κ°μ 보 μμ νμ΄μ§ μ κ·Όμ μν UI ꡬμ±
"κ°μ
μΌμ"λ λ°μ΄ν°λ² μ΄μ€ μ μ₯ μΌμλ‘ λΆμ¬
"κ³ κ°λ±κΈ"μ λμ λμ¬ κΈμ‘ μ΄κ³μ λ°λΌ μ°¨λ± λΆμ¬
λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ κ³ κ° μ 보 μμ νλ ꡬμ±
λμ λμ¬μμ λμ¬ μ 보 νμ
λμ¬ μ 보λ λ°μ΄ν°λ² μ΄μ€(Rental_tbl)μ μ μ₯λ λ΄μ©
"λμ¬λ²νΈ"λ λμ λμ¬ λ°μλ
λμ λμ¬ μμλλ‘ λΆμ¬("20240001"λΆν° λΆμ¬)
"λμμ½λ" λ° "λμ¬κΈμ‘"μ λ°μ΄ν°λ² μ΄μ€(BookInfo_tbl)μ μ μ₯λ λ΄μ©
"λμ¬μΌμ"λ λμ λμ¬ λ°μμΌ
"λ°λ©μΌμ"λ λμ μλ Ή λ°μμΌ
"λμ¬μΌμ" λ° "λ°λ©μΌμ"λ κ΄λ¦¬μκ° μ‘°ν νμ΄μ§μμ λ μ§ μ νκΈ°λ₯Ό μ΄μ©ν΄ μ
λ ₯ κ°λ₯
λμ λμ¬μμ μ΄ λμ¬ κΈμ‘ νμ
"κ³ κ°λ²νΈ" λ° "κ³ κ°μ΄λ¦"μ λ°μ΄ν°λ² μ΄μ€(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 , # λμ¬κΈμ‘
);