인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

김상형님의 프로필 이미지

작성한 질문수

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

채팅 프로그램 - 클라이언트

메소드를 추출할 때 static 자동 적용

작성

·

136

·

수정됨

0

1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]채팅 프로그램 - 클라이언트
채팅 프로그램 - 클라이언트 강의 내용 중
inputusername 메소드를 추출할 때 static 메소드를 추출할 때 static으로 자동 적용 되었는데, 굳이 static 메소드로 사용하지 않아도 될 것 같습니다..!
또 단축키가 어쩔 땐 static으로 추출되고, 어쩔 땐 아니어서 검색해보니 토비님의 답변도 찾을 수 있었습니다!
https://www.inflearn.com/community/questions/1359516/%EB%B3%80%ED%95%98%EC%A7%80-%EC%95%8A%EB%8A%94-%EC%BD%94%EB%93%9C-%EB%B6%84%EB%A6%AC%ED%95%98%EA%B8%B0-%EB%A9%94%EC%86%8C%EB%93%9C-%EC%B6%94%EC%B6%9C?srsltid=AfmBOorUZ02Kv2_l0vDv5EM2D3c5qO6mGJBncxlRZTzVmR5Ueni2JQrg

답변 2

1

dev.rudevico님의 프로필 이미지

오 좋은 내용 공유 감사합니다 !!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 김상형님.

채팅 프로그램의 inputusername 메소드 추출 시 static 키워드의 사용에 대한 질문을 주셨군요. 일반적으로 메소드를 static으로 선언하는 이유는 해당 메소드가 클래스의 인스턴스 변수에 접근하지 않도록 보장하고, 클래스 레벨에서 사용될 수 있게 하기 위해서입니다.

그러나 static 여부는 상황에 따라 다르며, 메소드 내부에서 클래스의 상태나 인스턴스 변수에 접근할 필요가 있다면 static을 사용하지 않는 것이 적절합니다. 반면, 클래스의 인스턴스에 독립적으로 동작하는 함수라면 static으로 선언해도 괜찮습니다.

IntelliJ와 같은 IDE에서 메소드를 추출할 때 static으로 설정되는 경우가 있는데, 이는 현재의 컨텍스트에 따라 달라질 수 있습니다. 만약 메소드가 특정 인스턴스 변수에 접근할 필요가 없다면 IDE는 static으로 설정할 수도 있습니다. 그렇지 않은 경우 수동으로 조정이 필요할 수도 있습니다.

아래 링크는 static과 관련하여 유사한 질문과 답변을 제공하고 있으니 참고하시면 좋습니다:
- 변하지 않는 코드 분리하기 - 메소드 추출

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.