강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

메모장님의 프로필 이미지
메모장

작성한 질문수

스프링 핵심 원리 - 기본편

회원 도메인 개발

영한님 말씀중에 패키지 관리에 관해서 궁금한게있습니다.

작성

·

297

0

https://www.inflearn.com/questions/16046

질문중에 패키지관련하여 답변주신 사이트를 참고하였는데 더 궁금한게 있어 질문드립니다.

프로젝트가 성장함에 따라 프로젝트 구조도 현재 상황에 맞추어 성장하고 변경할 수 있어야 합니다.

이부분을 강조하셔서 말씀주셨는데, 수많은 코드와 파일들을 처음 배치한다음, 다시 현재 상황에 맞게 맞출시 수많은 변경들이 일어날텐데, 이럴때 많이 에러가 난다던지 많은 코드를수정을 해야될 경우도 많이 생길까요?

퀴즈

객체 지향 설계에서 역할(인터페이스)을 구현체(클래스)로부터 분리하여 설계하는 이유는 무엇일까요?

코드 줄 수를 줄이기 위해서

향후 요구사항 변경에 유연하게 대처하기 위해서

프로그램 실행 속도를 빠르게 하기 위해서

데이터베이스 연결을 쉽게 하기 위해서

답변 1

-1

안녕하세요, 메모장 님. 공식 서포터즈 codesweaver 입니다.
.
개발자들이 인텔리제이 맛을 들이면 벗어나지 못하는 이유중 하나가 바로 그런 리팩토링 상황에 대한 처리입니다. 인텔리제이에서는 클래스명의 변경 혹은 메서드나 필드의 변경시 일괄 리팩토링을 제공합니다 (물론 100% 정확하게 커버해주지는 못하기에, 사람이 최종 점검은 해야 합니다) 그 덕분에
개발자는 리팩토링에 대한 부담을 줄이고 코드를 변경할 수 있습니다.

.

또 한가지 리팩토링에 대한 부담을 줄이는 방법은 커버리지가 높은 단위 테스트 코드입니다. .리팩토링은 코드의 결과가 변경되지 않음을 보장하면서 구조를 개선하는 작업입니다. 그렇기 때문에 단위 테스트 코드로 대부분의 코드가 커버되어 있다면, 이 테스트를 지속적으로 돌려봄으로써 리팩토링이 제대로 되었는지 검증할 수 있습니다. 변경전 모두 통과하였던 테스트가 변경 후 실패로 떨어진다면, 해당 테스트 부분을 기점으로 문제를 추적할 수 있습니다.

.

코드의 변경은 피할수 없습니다.

감사합니다.

메모장님의 프로필 이미지
메모장
질문자

이해하기쉽게 잘 풀어서 설명해주셔서 정말 감사합니다!

메모장님의 프로필 이미지
메모장

작성한 질문수

질문하기