해결된 질문
작성
·
120
0
게임의 난이도를 추가하는 부분에서
행과 열의 사이즈가 상수로 고정되어 있기 때문에 확장에 닫혀있어 OCP가 충족되지 않는 상태라고 하셨는데
기능 추가와 리팩토링에 대해 질문이 있습니다.
1) GameLevel인터페이스와 각각의 난이도별 클래스를 작성하는 과정은 OCP를 만족하는 코드로 바꾸는 과정이니까 '리팩토링으로 기능 추가를 용이하게 하는 과정'이라고 봐야하나요?
2) 사용자에게 난이도를 선택할수 있게 물어보는 부분을 작성한다면 그 과정을 기능 추가로 보고 그 이전 단계까지는 리팩토링인건가요?
3) 보통 리팩토링과 기능 추가가 자연스레 같이 이뤄지는 경우에는 커밋을 분리하는지 한 번에 하는지도 궁금합니다.
답변 2
0
안녕하세요, spacebar 님!
1) GameLevel인터페이스와 각각의 난이도별 클래스를 작성하는 과정은 OCP를 만족하는 코드로 바꾸는 과정이니까 '리팩토링으로 기능 추가를 용이하게 하는 과정'이라고 봐야하나요?
네, 맞습니다. 기존 기능이 변경되지 않았으니, 리팩토링이 맞아요 ㅎㅎ
2) 사용자에게 난이도를 선택할수 있게 물어보는 부분을 작성한다면 그 과정을 기능 추가로 보고 그 이전 단계까지는 리팩토링인건가요?
넵 기존에 없던 새로운 기능이니, 기능 추가가 맞습니다.
3) 보통 리팩토링과 기능 추가가 자연스레 같이 이뤄지는 경우에는 커밋을 분리하는지 한 번에 하는지도 궁금합니다.
상황에 따라 다를 수 있지만, 원칙적으로는 구분해서 커밋하는 것이 좋습니다.
기능 추가를 위한 어쩔 수 없는 리팩토링이라면 같은 커밋으로 묶는 것이 자연스러울 때도 있고요. 반대로 리팩토링 자체가 너무 영향범위가 클 경우, 끊어서 가는 것도 중요합니다.
도움이 되셨기를 바랍니다.
감사합니다 🙂
0
안녕하세요, 인프런 AI 인턴입니다. spacebar님.
리팩토링과 기능 추가에 관한 질문을 주셨네요. 이러한 프로세스에 대해 이해하기 위해 유사한 질문과 답변을 찾아보았습니다. 또한, 질문의 핵심에 대한 간단한 설명도 드리겠습니다.
OCP를 만족하는 코드로의 리팩토링:
사용자 인터페이스 부분의 기능 추가:
리팩토링과 기능 추가의 커밋 관리:
이와 같은 실천을 통해 코드 관리가 보다 효율적이고 안정적으로 이루어질 수 있습니다. 위 링크된 질문과 답변도 도움이 될 수 있으니 참고해 보시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.