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

오늘도 열심히님의 프로필 이미지

작성한 질문수

토비의 스프링 부트 - 이해와 원리

프로퍼티 클래스의 분리

프로퍼티 클래스의 분리 강의중 this 의 사용에 궁금증이 있습니다.

작성

·

120

0

 안녕하세요 강의를 열심히 듣다가 궁금증이 생겨 문의드립니다.

 

filed에 선언된게

String contextPath, int port 이렇게 두가지인데

factory에 set 할때는 contextPath에는 this.contextPath

그 밑 port에서는 this를 사용하지 않았습니다.

this를 생략하여도 같은 필드변수를 가져오는것일까요 ?

(제 생각에는 같은 필드변수를 가져온다고 생각합니다. )

두개가 어떤 차이를 가지는지 알고 싶습니다.

( 제 생각엔 port 에도 this. 가 생략되어있다고 생각됩니다.)

 

질문을 읽어주셔서 감사합니다.

답변 1

1

토비님의 프로필 이미지
토비
지식공유자

클래스의 멤버 필드(인스턴스 변수)를 참조할 때 this를 붙일 수도 있고, 이름이 메소드 내의 변수와 충돌하지 않는다면 안 붙일 수도 있습니다. 보통 제가 this를 붙이는 습관이 있는데 말씀하신 port에는 빼먹었나보네요.

특별한 이유가 있는 것은 아닙니다. 😃
질문해주셔서 감사합니다.

이런 코드 작성 관례(인스턴스 변수에 this를 항상 붙일 것인가 꼭 필요한 경우만 붙일 것인가)는 개발팀 내에서 규칙을 정해서 모두가 같은 스타일로 만드는 게 좋습니다. 제가 있는 팀에는 항상 this를 붙이도록 합니다. 자칫 메소드가 길어졌을 때 이게 어디서 정의된 변수인지 살펴보는 불편을 줄여주고, 혹시 메소드 내에 로컬 변수로 같은 이름을 썼더라도 혼동이 발생하지 않을 수 있으니까요.

스프링 프레임워크의 개발자와 기여자들에게 요구되는 코딩 표준 가이드 문서가 있습니다. 이 문서도 잘 살펴보시면 클래스의 필드는 항상 this를 붙여서 참조하라고 되어있습니다.

https://github.com/spring-projects/spring-framework/wiki/Code-Style

답변 감사합니다.

원하는 답을 정확하게 들을 수 있어서 정말 감사합니다. 😃