작성
·
69
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. wnsqud70님,
정적(static) 필드와 메서드를 사용하는 것은 코드를 간결하고 명확하게 만드는 장점이 있지만, 말씀하신 것처럼 몇 가지 단점도 있을 수 있습니다. 이에 대해 자세히 설명해드리겠습니다.
가독성 및 유지보수성: 코드가 더 명확해지며, 어디서나 접근할 수 있는 상수는 반복적으로 쓰는 값들을 한 곳에 모아 관리할 수 있게 합니다. 이는 코드의 변경 시 한 곳에서만 수정하면 되어 효율적입니다.
메모리 관리: 상수로 선언된 값들은 클래스 로딩 시 한 번만 메모리에 할당되기 때문에, 동일한 값을 여러 번 복사하지 않고도 사용할 수 있습니다.
메모리 사용: 모든 static 필드는 클래스가 메모리에서 내려가지 않는 한 메모리에 계속 남아 있으므로, 너무 많은 static 필드 사용은 메모리 사용량 증가의 원인이 될 수 있습니다.
동시성 문제: static 필드는 모든 스레드가 공유하기 때문에 멀티스레드 환경에서 동기화 문제가 발생할 수 있습니다. 이는 상태를 가지는 static 필드에서 두드러집니다.
GC(가비지 컬렉션)에 의한 관리 어려움: static 필드는 GC가 관리하지 않기 때문에 메모리 누수의 원인이 될 수 있습니다.
상수 사용으로 인해 발생할 수 있는 단점을 최소화하려면, 필요한 경우와 그렇지 않은 경우를 잘 구분하여 사용하는 것이 중요합니다. 예를 들어, 자주 사용되지 않는 값은 지역 변수로, 자주 사용되며 여러 클래스에서 공통으로 사용되는 값은 상수로 두는 것이 적절합니다.
아래 관련 강의에서 더 자세한 답변을 참고하실 수 있습니다:
- static 사용 기준이 궁금합니다
- 정적 팩터리 메서드 사용 기준
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다!