본문 바로가기
TIL/내배캠 과제

23.06.05

by J1-H00N 2023. 6. 5.

메모장 만들기는 오늘 pull request를 받아 conflict만 해결하면 마무리된다.

모든 메서드를 받고 충돌을 해결한 뒤 실행 중 생기는 문제들

1. 수정했을 때 수정 시간이 업데이트 되지 않음.

=> 메모의 내용을 수정할 때

updateMemo.editWtritedTime();

을 추가해 시간도 수정되도록 해결

2. 메모를 삭제했을 때 번호가 당겨지지 않음.

3. 메모를 삭제한 뒤 추가하면 번호가 겹침

ex) 1 2 3 4 가 있을 때 2를 삭제하면 1 3 4가 출력되고 메모를 추가하면 1 3 4 4가 출력됨

이 때 3을 수정하려면 2를 입력해야하고, 세번째 4를 수정하려면 3을 입력해야함.

=>

for (int i = memoNumber; i < deleteMemoList.getMemos().size(); i++) {
                        deleteMemoList.getMemos().get(i).setMemoNumber(i+1);
                    }

삭제할 메모 다음 메모부터 끝까지 메모의 번호를 index + 1로 바꿔주는 작업 수행

 

 

그리고 팀 과제는 처음부터 새로 만들 수 있는 호텔 예약 시스템 만들기를 하기로 했다.

아래는 호텔 예약 시스템 와이드프레임이다.

팀원 간의 회의를 통해 출력 메서드의 반환타입과 상속, 예약 정보를 저장하는 공간의 추가등의 수정 사항이 있었다.

 

일단 Rservations 해시맵이 있다는 가정하에 코드를 구현해봤다.

import java.util.HashMap;

public interface Management {
    Reservations<String, Reservation> reservations = new HashMap<>();
    public void showReservationList();
}
import java.util.HashMap;
import java.util.Map;


public class HotelManagement implements Management{
    @Override
    public void showReservationList() {
        for (Map.Entry<String, Reservation> allReservation : Reservations.entrySet()) {
            String reservationId = allReservation.getKey();
            Reservation reservation = allReservation.getValue();
            System.out.println(reservationId + " : " + reservation);
        }
    }
}

 

하루를 마치기 전 회의에서 '상속관계는 지양하고 포함관계를 지향해라'라는 객체지향 상식에 대해 듣게 되어 Guest와 Reservation의 관계에 대해 다시 생각해보았다. Guest의 객체를 Reservation 내에서 생성해도 제대로 작동되고, 위 문장과도 통하니 일단 이와 같이 수정하기로 했으나 정확한 이유를 찾지 못해 각자 이 정보에 대해 검증하는 시간을 가지기로 했다.

 

찾아보니 상속관계보다 사용 관계를 지향하는 이유는 상속을 과하게 사용할 경우 객체간의 결합도가 강해져 유연성이 약해지기 때문이라고 하는데, 지금 우리가 하는 프로젝트가 그런 걸 걱정할 정도로 큰 프로젝트도 아니고, 한 번의 상속밖에 일어나지 않으니 코드의 재사용성이 높아지고 중복이 사라진다는 공통점이 있기 때문에 어떤 방식을 취하든 상관 없을 듯하다. 오히려 지금같은 경우는 super를 통해 생성자 코드만 추가하면 되니 상속이 더 효율적일 듯 하다.

 

튜터님과의 개인 면담에서 관심분야에 대해 발씀드렸더니 시스템과 ai에 관심이 있다면 devops에 대해 알아보는 것이 좋다고 하여 내일 남는 시간에 개인적으로 공부해볼 생각이다.

'TIL > 내배캠 과제' 카테고리의 다른 글

23.06.08  (0) 2023.06.08
23.06.07  (0) 2023.06.07
23.06.03  (0) 2023.06.05
23.06.02  (0) 2023.06.02
23.06.01  (0) 2023.06.01