개발/부트캠프

본캠프 : 개인 과제(계산기 만들기)_1:1 피드백

EJ EJ 2025. 1. 16. 21:07

*계산기 과제 Github 링크: https://github.com/Park-EJ/sparta_calculator

 

[좋은점]

- 각 단계에 따라 출력되는 안내문들이 유저 친화적이여서 이해하기 쉬웠습니다.

- 오버엔지니어링 없이 필요한 기능들을 요구사항에 맞게 잘 구현해 주셨습니다.

 

[아쉬운점]

- 함수의 이름에 대해서 고민해보면 좋겠습니다. 예를 들어, Calculator의 getResultList는 getResults로 함축 할 수 있겠습니다. 이름에 이미 여러개의 결과들이 반환된다는것을 암시하여 List라는 이름이 들어가지 않아도 됩니다. List를 붙이는것도 풍부한 표현을 하기위해 좋기도 하지만, 줄일 수 있는 방법이 있다면 줄이도록 노력하는것도 좋겠습니다. 함수는 결국 코드 간에 대화를 하는 창구인데, 서로 오해를 하지 않게끔 간결하고 명확한 의미를 전달하는것이 중요합니다. 이에 대해서 천천히 고민해 보신다면 좀 더 재미있을것 같습니다.

- 다음부터는 상위 레벨을 꼭 도전해 보시면 좋겠습니다. 개발자는 결국 수많은 시도를 통해 성장해 나갈수 밖에 없습니다. 저 또한 그랬구요. 상위 레벨에 꾸준히 도전하셔서 튜터님들로부터 피드백을 많이 받으시면 좋겠습니다.

 

[고민사항]

1) 배열 필드를 Getter, Setter 하는 것이 어려웠습니다. 하지만 두 가지 메서드 사용법을 쉽게 생각하고 활용할 수 있도록 특강에서 인사이트를 얻어서 해결할 수 있었습니다.

- getter와 setter의 개념이 어려울수 있겠습니다. 결국 이것은 제 관점에서 봤을때 고객이 은행을 통해 돈을 입금하고 가져가는 행위와 비슷한것 같습니다. 돈은 은행에서 보관되고 창구를 통해 돈을 저금하거나 가져올 수 밖에 없으니까요. Calculator도 마찬가지로 호출하는 곳에 숫자를 계산하는 서비스, 결과 히스토리를 제공, 등을 수행하게 됩니다.

 

2) 하나의 클래스 안에서 동일한 변수명을 사용해도 되는 부분이 이해되지 않았지만, 지역변수라는 개념에서 해결했습니다.
ex) Lv2.Calculator 클래스 필드에 private int result로 선언된 변수가 있는데, 해당 클래스의 메서드 setResultList(int result)에도 같은 변수명이 사용되었지만, 오류가 뜨지 않고 정상 작동하는 부분! → 지역변수라서 해당 메서드 내에만 작동된다는 답을 얻었습니다.

- 전역변수와 지역변수 사이에서 헷갈리신걸까요? 보통의 경우에는 거의 지역변수를 사용하게 됩니다. 전역변수를 쓰게 되면 결과값이 글로벌하게 저장되고, 이는 전혀 다른 연산에 방해가 될수도 있게 되기 때문입니다. 지역변수와 전역변수는 언제 어떻게 쓰이게 되는건지 잘 이해하면 앞으로 코딩할떄 도움이 많이 되실겁니다.

 

3) 현재 자바 문법 종합반 3주차 강의까지 수강했습니다. 4주차 수강 후에 피연산자 첫 번째 숫자와 두 번째 숫자에 int(숫자)가 아닌 값을 입력했을 때도 "잘못 입력하였습니다"가 출력되고 다시 숫자를 입력받도록 구현해 볼 예정입니다. 예외 처리 try-catch?!를 사용하는 것 같은데, 4주차 강의에 해당하는 부분인지라 수강 후에 도전해 보겠습니다

- try catch는 예외 상황을 잡아낼때 매우 유용하게 쓰이게 됩니다. 시스템을 구축할때 매우 중요한것 중에 하나는, 예외 상황을 잡아내는 것입니다. 이 시스템에서 어떤 예외 상황이 발생 할 수 있는지 꼼꼼히 살펴보다 보면 좋은 개발자로 성장하실수 있을겁니다.

 

*트러블 슈팅 링크: https://park-ej.tistory.com/37

 

- TIL에 어떤 과정을 통해 고민을 해결할 수 있는지 잘 읽었습니다. 과거 실수로부터 배우는것도 중요하지만, 앞으로 어떤 액션을 취할지도 중요합니다. https://brunch.co.kr/@jinha0802/35는 제가 흔히 사용하는 방식인데, 회고에서 더 나아가 개선할점도 찾아내어 실행해 보시면 좋겠습니다

- 주석은 경우에 따라 코드를 파악하기 쉽게 하지만, 때로는 코드를 읽기 어렵게 하는 요인으로도 작용합니다. https://medium.com/naver-cloud-platform/네이버클라우드-개발자-스토리-좋은-코드란-무엇일까-클린코드-이야기-c7811f73a46b 에서 주석에 대해 어떻게 생각하는지 읽어보시고, 천천히 고민해 보시면 좋겠습니다.

 

*ReadMe 작성

 

- 깃 컨벤션을 지키면서 코드를 올려도 좋을것 같습니다. https://www.conventionalcommits.org/en/v1.0.0/ 이 블로그에서는 feat, fix, 같이 커밋이 어떤 성격을 지녔는지 설명합니다. 깃허브에 코드를 올리는 이유는 결국 동료 개발자들과 잘 협업하기 위해서입니다. 당연히 처음에는 어렵겠지만, 천천히 고민해 보시면 좋을것 같습니다.