Develop/Spring 공략

[Calculator] Lv.2 트러블슈팅

쿼카홀릭 2025. 1. 10. 13:31

Lv.2 과제를 구현하면서 발생한 트러블과 솔루션을 작성해보려 한다.

 

[Getter와 Setter에 대한 개념 정리]

 

<Getter> - 메서드이다.
외부에서 객체의 private한 필드를 읽을 필요가 있을 때, Getter 메서드를 사용
메서드이기 때문에 필요한 부분만 리턴값을 가져온다. 로우 데이터를 내보내지 않아도 되어 유용하다.

 

private 접근 제어자로 지정한 필드가 있을 때 다음과 같이 사용하면 된다.
메서드 이름의 규칙은 get + 필드이름(첫 글자 대문자) 이다. - 카멜케이스
사용하는 방법은 인스턴스 메서드 호출과 동일하다.

public String getModel() {
	return model;
}

 

<Setter> - 메서드이다.
외부에서 객체의 private한 필드를 저장/수정할 필요가 있을때 Setter 메서드 사용

 

메서드 이름의 규칙은 set + 필드이름(첫 글자 대문자) 이다. - 카멜케이스
사용하는 방법은 인스턴스 메서드 호출과 동일하다.

 

public void setModel(String model) { //->괄호 안이 외부에서 주입한 model
	this.model = model;
}

 

 

[setter 구현 시 매개변수 값 에러 이슈]

더보기

<배경>

- setter를 이용하여 저장된 ArrayList의 값을 수정하는 기능을 추가하였다.

 

<문제점>

- 매개 변수 값을 스캐너를 통해 값을 받고 싶었는데, 사칙연산을 구현하는 클래스에서 스캐너를 구현하려니 작동이 불가능했다. 

 

<해결 방법>

- App 클래스에서 메서드를 호출하기 전에 안에 매개변수 값을 스캐너를 통해 선언 하고 입력값을 받을 수 있도록 구현했다.

- Calculator 클래스에서는 setter 메서드를 만들어, 리턴타입과 변수명을 소괄호 안에 지정하고 .set()를 써서 구현할 수 있도록 했다.

 

<새로 알게된 점> 

- 메서드를 생성할 때, input값이 필요한지 아닌지 여부를 고려하고, output을 어떻게 할 것인지를 사전에 프레임을 짜두고 구현하면 코드 작성이 쉬워진다.

'Develop > Spring 공략' 카테고리의 다른 글

[Spring] 카카오맵 API 사용 초기 세팅  (0) 2025.04.22
[Spring] Spring JPA - Page 와 Slice  (0) 2025.04.01
[Kiosk] 트러블슈팅  (0) 2025.01.21
[Calculator] Lv.1 트러블슈팅  (0) 2025.01.10
2024.12.23(Mon.)  (0) 2024.12.23