개발지식 먹는 하마 님의 블로그

[내일배움캠프 23일차] _ 키오스크 프로젝트 피드백 본문

내일배움캠프 (CS25)

[내일배움캠프 23일차] _ 키오스크 프로젝트 피드백

devhippo 2025. 3. 20. 20:07

Spring 기초 강의 수강을 마쳤다.
방대한 내용을 흐름과 관계를 중심으로 이해하고 싶어 별도의 글로 작성하였다.

아직 세부적으로 정리할 내용이 많이 남았지만 이렇게 정리하면서 각 요소들이 기억에 잘 남게 된 것 같다.

https://devhippo.tistory.com/94

 

웹 서비스 구조 및 흐름을 비유와 함께 이해하기

웹 서비스의 전체적인 구조와 관계, 흐름, 각 요소의 역할을 좀 더 쉽게 이해하고 떠올릴 수 있도록특정 상황에 비유해 정리하였다.일부 내용은 간략화를 위해 생략되었고 별도의 글에 자세히

devhippo.tistory.com

 


📚 키오스크 프로젝트 피드백

예외를 예외가 아닌 용도로 사용했기 때문에 아이디어는 좋았지만 적절한 방법은 아니라는 피드백을 받았다.

내가 작성한 코드는 아래와 같은 과정으로 구성되어 있다.

While{
    //단계별 처리 메서드 호출
    //다음 단계를 위한 입력받기
} //예외

단계별로 메서드를 호출하는데 이 메서드의 처리 중 일부는 다음 단계를 위한 입력을 받을 필요가 없었다.
메서드 내에서 continue를 사용해, 메서드가 호출된 반복문을 탈출하는 효과를 내어
입력을 받는 단계를 건너뛰고 While문 초기로 돌아가고 싶었다.

이를 위한 방법으로 별도의 예외를 생성해 사용하였다.
이 경우 예외가 발생했다고 가정해 catch 문으로 갔다가 다시 while문으로 돌아오면서
입력 단계를 건너뛰게 된다.


이 방법은 나도 부적절한 방법이 맞다고 생각됐다.
그렇다면 다른 방법은 뭐가 있을지 궁금했다.

👀 이 방법은 어떨까?

튜터님이 재귀, return, Flag 등의 키워드를 제시해 주셨다.

재귀는 내가 짠 알고리즘 상 적용하기 굉장히 까다로울 것 같았다.
다만 return이나 Flag에 대해서는 몇 가지 방법이 떠올랐다.

☝️ Flag 사용

boolean 변수를 사용해서 입력을 받는 상태와 아닌 상태를 구분하기

isGetInput = true

메서드 내 일부 입력을 건너뛰어야 하는 부분
isGetInput = false

if( isGetInput ){
    //입력 단계
}

✌️ return 사용

메서드 내에서 입력을 건너뛰어야 하는 부분 return 0
나머지 return 1

return 된 값이 0이면, continue
아니면, break

 


📚 Getter와 Setter를 사용하면 캡슐화가 깨질 수 있다.

참고하면 좋을 것 같다고 알려주신 글이다.

https://octoping.tistory.com/33

 

사내 세미나 - Getter와 Setter를 함부로 사용하면 안되는 이유;;

들어가기 앞서 지난 번에 작성했던 사내 세미나 - 테스트 코드에 대해 알아보자 세미나의 다음 편으로 진행한 세미나이다. Getter와 Setter의 사용을 금지하라 '리팩토링' 책의 저자로 유명한 Martin F

octoping.tistory.com

캡슐화를 위해 Getter와 Setter를 쓰는 데,
Getter와 Setter가 오히려 캡슐화를 방해하는 아이러니한 상황을 설명하고 있다.
이를 해결하기 위한 자세는 다음과 같다.

  • Lombok의 @Setter 사용 시, 불필요한 것까지 Setter가 생성된다.
  • Setter는 딱 필요한 것만!

 

  • 원시 타입이 아닌 변수들은 Getter로 값을 제공하더라도 이를 변경할 수 있다.
  • 직접 변수의 값을 가져오지 말고 상태를 반환하도록 하자!
삼대중량을 계산하고 싶어!
스쿼트, 벤치프레스, 데드리프트의 수치를 각각 Getter로 가져와서 계산하기
-> 
스쿼트 + 벤치프레스 + 데드리프트를 더한 값을 반환하기


생일을 알고 싶어!
너 몇 월 며칠이 생일이야?
->
너 오늘 생일이야 아니야?

 

굉장히 짧고 굵은 유익한 글이었다.