μ€λμ μ£Όμμ¬ν (6/7, μμμΌ)
- νΈν μμ½ νλ‘μ νΈ μμ
- κ°μ€ μμ½Β·μ·¨μ κΈ°λ₯
μ΄ν μ λ©λͺ¨μ₯ νλ‘μ νΈμμ 컨νΈλ‘€λ¬ λΆλΆμ 맑μΌλ©΄μ, κ°μΈμ μΌλ‘ μ°μ°νλ λΆλΆλ€μ΄ λ§μ΄ ν΄μλμλ€. κ·Έλμ μ΄λ²μ 컨νΈλ‘€λ¬μ λν λ―Έλ ¨μ λμ§κ³ ... μμ½ λΆλΆμ 맑μλ€!
μ΄λ²μλ μΉ νμ λ€κ°μ΄ λͺ¨μ¬μ μ΄λ κ² κ΅¬μ‘°λλ κ°μ΄ κ·Έλ €λ³΄μλ€. κ·Έλ¦¬κ³ λλ μꡬμ¬νμ΄ λ¨Έλ¦¬ μμμ λ μ μ 리λμλ€ π κΈ°λ₯μ λ°λΌ μΌμ λΆλ°°ν΄μΌνλλ°, μ μλ νμ μꡬμ¬νλ§μΌλ‘λ λΆμ‘±ν΄μ 'μμ½κ°λ₯ν νΈν μ‘°ν'λΌλ κΈ°λ₯λ μΆκ°νκΈ°λ‘ νλ€.
.gitignore
νμΌ μμ±μμ
μ νλ€λ³΄λ©΄ κ°μΈ νκ²½ μ€μ νμΌμ΄λ, μΊμ νμΌ λ±μ΄ μμ±λλ€. μ΄κ±Έ μΌμΌν μ μΈν΄μ£Όμ§ μμΌλ©΄ 리ν¬μ§ν 리μ 컀λ°λμ΄ μΆ©λμ΄ μΌμ΄λλ κ²½μ°κ° μ’
μ’
μκΈ°λλ°, μ΄λ° μν©μ .gitignore
λ‘ λ°©μ§ν μ μλ€.
μμ μ¬μ΄νΈμ μν©μ λ§λ ν€μλλ₯Ό μ
λ ₯νλ©΄ κ·Έμ λ§λ .gitignore
νμΌμ μμ±ν΄μ€λ€. μ°λ¦¬ νμ μ¬κΈ°μ μμ±λ νμΌμ 볡μ¬νμ¬ μ¬μ©νμλ€.
(μλ €μ£Όμ νμ λΆ μ§±,,,~~π)
Reservation
μ΄ κ°κ³ μκ³ μ, μ€νμ Reserve
μμ ν©λλ€Reservation
κ°μ²΄μμ λ°±κ·ΈλΌμ΄λ μμ
μ μ€ννμ§ μκ³ , Reserve
κ°μ²΄λ₯Ό λ°λ‘ λ§λ μ΄μ λ λ€μκ³Ό κ°λ€.
곡ν΅μΌλ‘ μ¬μ©νλ ν΄λμ€λ₯Ό 건λ리면 μΆ©λν κ°λ₯μ±μ΄ μλ€.
λ§ κ·Έλλ‘ Reservation
ν΄λμ€λ 곡ν΅μΌλ‘ μ¬μ©ν΄μΌν μ 보λ₯Ό λ΄κ³ μκΈ° λλ¬Έμ, λ μ΄μΈμ νμμ΄ κ±΄λ릴 κ°λ₯μ±μ΄ ν¬λ€. μ΄ ν΄λμ€μ μ΄μ΄μ μμ
μ νκ² λλ©΄, μΆ©λ λ¬Έμ λΏλ§ μλλΌ μ 보λ₯Ό κ΄λ¦¬νλλ° νΌμ μ κ²ͺμ μ μλ€. μμ
μ νΌμ μ΄ μκΈ°κ±°λ, νμΌμ λ¨Έμ§ν λ μΆ©λμ΄ μΌμ΄λλ κ±Έ ν΄κ²°νλ κ²λ³΄λ€ μ€ν ν¨μλ€μ λ°λ‘ λΆλ¦¬ν΄μ μμ±νλ κ²μ΄ ν¨μ¬ μ½κΈ° λλ¬Έμ μ΄λ₯Ό μ ννλ€.
컨νΈλ‘€λ¬ (μν μ νλ ν΄λμ€)μμ μμ½ μ€ν λ©μλλ₯Ό νΈνκ² νΈμΆν μ μλλ‘ νκΈ° μν¨μ΄λ€.
μμμλ μΈκΈνλ―μ΄ Reservation
μμ κ³μ μμ
μ νλ€λ³΄λ©΄ μ 보 κ΄λ¦¬μ νΌμ μ΄ μκΈΈ νλ₯ μ΄ λμμ§λ€. νΌμ μ΄ μκΈ°λ©΄ μ΅μ’
μ μΈ μ€νμ λ΄λΉν΄μΌν 컨νΈλ‘€λ¬μ λΆλ΄μ΄ μ»€μ§ λΏλλ¬, κ°λ
μ±λ μ’μ§ μμμ§κΈ° λ§λ ¨μ΄λ€. κ·Έλμ Reserve
κ°μ²΄κ° νμν νλλ€μ μ€νμ νκ² νλ©΄, 컨νΈλ‘€λ¬λ Reserve
κ° κ°κ³ μλ μ€ν ν¨μλ€μ νΈμΆμν€κΈ°λ§ νλ©΄ λλ ννκ° λμ΄μ μμ μ΄λ μ¬μ©νκΈ°λ νΈνκ³ λ³΄κΈ°μλ μ’μ κ²μ΄λΌκ³ μκ°νλ€.
μμλ λ¨μνκ² UUID
λ₯Ό λλ€μΌλ‘ μμ±ν λ€μ, Reservation
κ°μ²΄λ₯Ό λ§λ€κ³ , μμ±λ UUID
μ Reservation
κ°μ²΄λ₯Ό HashMap<K,V> reservedRoom
μ μΆκ°νλ€. μ΄ λ μμ±λ UUID
λ₯Ό LinkedList<UUID>
ννμ 컨ν
μ΄λ λ³μλ₯Ό λ§λ€μ΄μ λ°λ‘ ν λ² λ μ μ₯ν΄μ£Όμλ€. (μμ§ μ¬μ©λμ§ μμ§λ§, μ¬μ©λ μλ μμ κ² κ°μμ μ μ₯ν΄λμλ€.)
// μμ½ μ 보λ₯Ό μ μ₯ν HashMap
private Map<UUID, Reservation> reservedRoom = new HashMap<>();
// μμ½ ν€ κ° (uuid)μ μ μ₯ν LinkedList
private LinkedList<UUID> reservedUUIDList = new LinkedList<>();
/*** 1. μμ½ μμ± -> μμ½ λ²νΈ λ°ν ***/
public UUID createReservation(Room room, Customer customer){
// UUID λλ€μΌλ‘ μμ±
UUID uuid = UUID.randomUUID();
// μμ½ μμ±
Reservation reservation = new Reservation(
room, customer.getName(), customer.getPhoneNumber(),
LocalDateTime.now(), uuid
);
// μμ±ν μμ½μ μΆκ°
reservedRoom.put(uuid, reservation);
// listμ μμ±λ uuid κ° μ μ₯
reservedUUIDList.add(uuid);
// uuid λ°ν
return uuid;
}
μ λ³΄κ° μ λλ‘ μ μ₯λμλμ§ νμΈν΄λ³΄κΈ° μν΄ κ°λ³ μμ½ μ‘°νκ° λλ λ©μλλ₯Ό λ§λ€μ΄μ ν μ€νΈν΄μ£Όμλ€.
/*** 3-2. κ°λ³ μμ½ μ‘°ν - μΆλ ₯ νμ ***/
public void printMyReservation(UUID myUUID) {
System.out.printf("[%s λμ μμ½ μ 보]\n", getCustomerName(myUUID));
System.out.printf("- μμ½ λ²νΈ: %s\n", myUUID.toString());
System.out.printf("- μμ½ λ μ§: %s\n\n", getParseDateTime(myUUID));
// System.out.printf("- μμ½ λ μ§: %s\n\n", getParseDate(myUUID)); -> λ μ§λ§ μΆλ ₯
System.out.printf("- μμ½μ: %s λ\n", getCustomerName(myUUID));
System.out.printf("- μμ½μ μ νλ²νΈ: %s\n\n", getCustomerPhoneNumber(myUUID));
System.out.printf("- μμ½ κ°μ€ λ²νΈ: %s\n", getRoom(myUUID).getRoomNumber());
System.out.printf("- μμ½ κ°μ€ ν¬κΈ°: %s\n", getRoom(myUUID).getRoomSize());
System.out.printf("- μμ½ κ°μ€ κ°κ²©: %s μ\n", getRoom(myUUID).getRoomPrice());
}
μμ μλ리μ€λλ‘ μΆλ ₯λμλμ§ main()
ν¨μλ₯Ό ν΅ν΄ ν
μ€νΈ ν΄λ³΄μλ€.
public static void main(String[] args) {
// μμ½ μ€ν κ°μ²΄ μμ±
Reserve reserve = new Reserve();
// μμ½ ν uuid λ°ννμ¬ μ μ₯
UUID uuid = reserve.createReservation(
new Room(101, RoomSize.Standard, 59000),
new Customer("ν
μ€νΈ μλ", "010-1234-5678", 12345678)
);
// μΆλ ₯ ν¨μ
reserve.printMyReservation(uuid);
}
[ν
μ€νΈ μλ λμ μμ½ μ 보]
- μμ½ λ²νΈ: 77d24cea-6cd7-4173-8ad4-c3fea4ccbd6b
- μμ½ λ μ§: 2023-06-07 21:51:03
- μμ½μ: ν
μ€νΈ μλ λ
- μμ½μ μ νλ²νΈ: 010-1234-5678
- μμ½ κ°μ€ λ²νΈ: 101
- μμ½ κ°μ€ ν¬κΈ°: Standard
- μμ½ κ°μ€ κ°κ²©: 59000 μ
μμλλ‘ μ μΆλ ₯λμκ³ , μ€λμ ν μΌμ μ΄μ λλ‘ λ!μΈ κ² κ°λ€. (μλ§)
enum RoomSize
RoomSize
λ₯Ό μ΄λ°μ int
ν κ°μ μ«μ κ°μΌλ‘ μ
λ ₯νλ €κ³ νλλ°, 보ν΅μ νΈν
μ λ°© ν¬κΈ°λ₯Ό μ«μλ‘ νννκΈ° 보λ€λ, νΈμ λ£Έ
, μ€μνΈλ£Έ
κ°μ λ¨μ(?)λ₯Ό 보νΈμ μΌλ‘ μ¬μ©νλ€. int
νμ μ¬μ©ν΄λ, 쑰건문μ ν΅ν΄ νΈμ λ£Έ
μ΄λΌκ³ μΆ©λΆν μΆλ ₯ν΄μ€ μλ μμμ§λ§, μ½λμ κ°λ
μ±μλ μ© μ’μ§ μμ λ°©λ²μ΄λΌκ³ νλ¨νλ€. κ·Έλμ String[]
μ μ¬μ©νλ λ°©λ²κ³Ό, enum
μ΄κ±°νμ μ¬μ©νλ λ°©λ²μ κ³ μν΄λκ³ , enum
μ΄κ±°νμ μ¬μ©ν΄λ³΄κΈ°λ‘ νλ€.
public enum RoomSize {
Standard, Twin, Delux, Family, Suite,
}
μΆλ ₯λ μμ [βΆ μΆλ ₯ κ²°κ³Ό]μ²λΌ λ³λ€λ₯Έ λ³νμμ΄ μ μΆλ ₯λμλ€.