질문 목록과 답변
승은님 질문
Q. 각자만의 예외처리 방식 / 이번 과제에서 각자 예외처리를 어떻게 했는지?
Q. 이번 과제에서 각자만의 어려운 점은 무엇이었는지?
다현님 질문
Q. 계산 기록을 저장하는 것을 어떤 방식으로 구현했는지?
태산님 질문
Q: LayeredArchitecture를 제거하고 OCP를 지킬 수 있는 방법
A: 계산기 과제는 객체의 역할과 분배에 집중하여 구현. SOLID를 모두 지키다보면 규모가 크고 복잡해 짐.
유석님 질문
Q. 의존성을 주입하면 왜 의존성이 낮아지는가?
객체 내부에서 직접 객체를 생성하는 경우에는 항상 생성된 객체만 사용할 수밖에 없다. 하지만 외부에서 객체를 생성하여 주입 받을 경우 type의 여러 구상체들을 사용할 수 있게되어 의존성이 낮아진다.
Q. 실패 테스트란 무엇인가?
실제로 실패하는 테스트를 의미한다. 예를 들어 입력에 대해서 검증을 진행할 경우 실패 테스트란 검증을 통과하지 못하는 경우에 대한 테스트를 의미한다.
승한님 질문
Q. exception과 같은 예외처리를 흐름 제어에 사용하는 방식이 좋은 방식인지 안 좋은 방식인지 궁금합니다!
calculator 과제와 같은 경우에는 해당 질문을 고민할 만큼의 내용이 아닌 것 같다. Calculator 과제의 핵심인 역할과 책임에 초점을 맞추어 진행해 보면 좋겠다.
Q. 초보자의 입장에서 디자인 패턴을 적용하기 매우 힘들다고 느꼈었는데요. 멘토님은 디자인 패턴을 어떻게 공부하시고 익숙해 지셨나요?
저는 초반에는 패턴에 대해 깊숙히 알지는 못했다. 이후 스프링 배우면서 싱글톤, 프록시 패턴등에 자주 노출이 되면서 제대로 디자인 패턴을 공부하고 적용하였다.
프로젝트 경험 없는 상태에서 디자인 패턴 먼저 공부하고 적용하려다 보면 시야가 좁아질 수 있다. 그러므로직접 코드 짜며 비효율적임을 깨닫고 필요시 구글링하며 공부해 보도록 하자!
Q. 테스트를 작성할 때 테스트가 쉬운 클래스와 테스트가 어려운(의존관계가 많이 얽혀있는) 클래스가있는데 모든 경우 테스트를 진행해야 하나요!
의존성 주입하는 녀석, 의존성 주입 당하는 녀석 모두 테스트해야한다.
또한 성공하는 테스트를 작성하는 것도 좋지만, 최대한 실패하는 테스트(예외사항)를 작성해 보자!