변하지 않는 코드 분리하기 - 메소드 추출
안녕하세요 토비님
변하지 않는 코드 분리 commit 에서 WebApiExRateProvider가 private "static" 인 이유가 있나요?
강의에서는 extract method 단축키로 만드셨는데 왜 intellij가 static을 붙이는것을 추천해줬는지 도 좀 궁금합니다...
답변 1
2
메소드 추출을 하면 static 메소드로 만들어지는 걸 눈치채셨군요.
사실 저도 이건 생각을 못하고 있다나 강의 리뷰하면서 보고 살짝 놀랐던 기억이 있습니다.
언제부터인지 모르겠지만 IntelliJ가 자바 코드에서 메소드 추출 리팩터링을 하면 static 메소드로 만드는 게 기본 옵션으로 되어있더라고요. 인스턴스 변수를 사용하제 않는 코드는 static으로 만드는 것 같은데, 정확한 의도는 잘 모르겠습니다. 그렇게 해도 동작에는 문제가 없긴 하지만 굳이 그럴 필요는 없을 듯해서 저도 좀 의아했습니다.
옵션을 조정하면 static이 아닌 메소드로 추출하는 것도 물론 가능한데 이게 디폴트가 아니네요.

검색해봤지만 IntelliJ 개발자들의 의도가 무엇인지는 찾을 수는 없었네요. 아직도 바뀌지 않은 것으로 봐서는 버그는 아닌 듯하고, 최적화 관련 의도가 있는 게 아닌가 싶긴 합니다.
어쨌든 저도 생각 못했던 부분이긴한데 일단 기능으로는 문제는 없고, 이후에 더 나는 방법으로 확장해 가면서 그때 static을 제거하기도 했습니다. 이건 저도 좀 더 생각해보고 싶은 내용이네요.
일단 IntelliJ에서 메소드 추출 기능을 사용하시면 단축키는 메뉴에서 사용하든 static일 수도 있고, 옵션 아이콘을 눌러서 변경할 수도 있다는 것을 기억해두시면 좋겠습니다. 개인적으로는 static 메소드에서 추출이 아니라면 굳이 static으로 변경하지 않는게 더 낫지 않을까 싶습니다.
수업을 잘 듣고 있습니다.
0
103
2
jackson(3.0.2 버전) ObjectMapper.readValue 에러타입
0
109
2
템플릿과 콜백의 역할 경계를 구분하는 기준
0
100
1
테스트를 작성하지않아도 되는 경우
0
86
2
오브젝트 정의 중 배열에 대해서
0
63
2
스프링 레거시를 이용하는 회사에서 일을 하게 될것같은데
0
110
2
JpaTransactionManager에 대해 궁금합니다.
0
81
2
스프링빈과 Clock 클래스 관련
0
44
2
Seprate Interface 패턴에 대한 궁금증
0
46
2
테스트의 기준을 어떤식으로 설정하는 것이 바람직한 테스트일까요 ?
0
51
2
오브젝트와 인스턴스
0
38
1
WebApiExRateProvider 템플릿 콜백 패턴을 적용하면서 테스트 코드를 만들어보았습니다.
0
64
2
템플릿 콜백 패턴 관련하여 궁금한 것이 있습니다!
0
60
2
상태 변경 API 질문
0
122
2
빈에 대한 질문
0
97
1
안녕하세요.
0
145
2
Payment 엔티티에 exRateProvider 주입
0
101
1
@Transactional private 사용유무
0
157
1
JdbcClient 생성 질문
0
190
2
안녕하세요 PaymentConfig 질문드립니다.
0
111
2
[공유] 윈도우 사용자를 위한 http 명령어 오류 해결 방법
0
246
2
생성자 파라미터성자 파라미터
0
239
2
토비님 ! BigDecimal 관련 링크를 못찾겠어요
2
346
2
인터페이스 사용에 관하여 질문드립니다.
0
309
3





