현재 우테코의 프리코스를 진행하는 활동을 하고 있다.
지금 진행 중인 프리코스는 아마 2021년에 진행된 프리코스의 1주차 프로젝트이다.
https://github.com/Anyeon00/java-baseball-precourse
구현을 시작하고 보니, 프로그래밍 요구사항의 "함수(또는 메소드)가 한 가지 일만 하도록 최대한 작게 만들어라."라는 말의 정확한 의미가 헷갈렸다.
예를 들면 나는 유저에게 답을 요구하는 기능의 메서드(requestAnswer())를 구현하려 했고, 이 메서드에는 다음과 같은 2가지의 메서드가 또 포함된다.
- 답 요구 문구 출력하기 - printRequestAnswer()
- 답 입력받기 - readLine()
이렇게 되면 한 메서드가(requestAnswer()가) 여러가지 일을 하게 되어, 프로그래밍 요구사항을 위반하는 것이 아닌가 라는 생각이 들었다.
그래서 인터넷을 뒤져보고 정리한 바로는
"함수(또는 메소드)가 한 가지 일만 하도록 최대한 작게 만들어라." 라는 말은 코드상으로 메서드 안에 여러 메서드가 들어가더라도 최대한 기능 단위로 쪼개라는 뜻 인 것 같다.
ChatGPT 답변을 인용하면 다음과 같은 예시와 같이 말이다.
public void processOrder(Order order) {
verifyOrder(order);
checkInventory(order);
processPayment(order);
generateInvoice(order);
prepareShipment(order);
}
private void verifyOrder(Order order) {
// 주문 확인 코드
}
private void checkInventory(Order order) {
// 재고 확인 코드
}
private void processPayment(Order order) {
// 결제 처리 코드
}
private void generateInvoice(Order order) {
// 송장 발행 코드
}
private void prepareShipment(Order order) {
// 배송 준비 코드
}
따라서 내가 기존에 설계했던 방식대로 구현하는 것이 일단은 맞는 것 같다.