Replies: 1 comment
-
저는 비슷한 생각 흐름으로 static을 사용하지 않았는데 깊게 생각해보거나 정리하지는 못했는데.. 이 글은 정말 정리가 잘 되어 있어 많은 도움이 되었어요 !! 사용 형식과 역할에 따라 알맞게 적용하기 위해서 많이 공부해야겠다는 생각이 드네요 . . .! 좋은 글 감사합니다 😊 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
정적 메서드 (static method)의 사용
static method란?
정적 메서드
는 생성자 함수로 인스턴스를 생성하지 않아도 호출할 수 있는 메서드를 말합니다. 그렇기에 정적 메서드는 클래스로 호출이 가능합니다.MDN web docs - static
static method는 왜 쓰는 거지?
프리코스 과제를 진행하면서 입력값의 유효성을 검사하는 과정이 필요했기에 저는
Validation
라는 클래스를 작성하여 사용했는데요, 그곳에서 유효성을 검사하기 위한 함수를 작성할 때 객체 내부의this
를 사용하지 않으면static method
로 정의가 가능했는데요. 관련해서 별생각 없이 코드를 작성하다 문득 정적 메서드를 사용하는 이유가 뭔지에 대해 궁금증이 들었습니다.static method와 object method
사실 validation 클래스의 코드에서 static method를 사용해야 하는 경우를 보면
isNumber
,isRange
등의 멤버 변수 값을 사용하여 유효성 검사를 하는 함수가 대부분이었습니다. 이 같은 경우 함수의 인자로 자신이 원하는 값만 넘겨주면 언제든지 재활용성이 있는 함수가 되기 때문에static method
로 선언해야 하는지 아니면 util로 따로 제외하여 object method, function 등으로 선언을 해야 하는지 고민했던 것 같습니다.또한, 정적 메서드, 너 써도 될까?에서 설명하는 몇 가지 경우를 생각해도 static을 꼭 사용해야겠다는 생각이 들지 않았기 때문에 더 고민스러웠던 것 같습니다. (Java 기준) 위의 글에서는
static
이 붙은 요소들은 JVM이 시작될 때 Method(static) 영역에 저장되어 프로그램이 끝날 때까지 사라지지 않고 메모리에 남아있다.-> 자바스크립트와 같은 고수준 언어들은 가비지 컬렉션(GC)이라는 자동 메모리 관리 방법을 사용하기 때문에 javascript에서도 같은 내용인 것 같습니다.
Java에서 코딩을 할 때에는 반드시
class
를 사용해야 하기 때문에static
이라는 개념이 필요하겠지만 javascript에서는class
이외에도function
,object method
등으로 충분히 정적인 함수를 구현할 수 있기 때문에 재활용성이 있는 함수라면static
이 아니라object method
,function
으로 따로 제외하는게 좋을 것 같다고 생각을 했습니다.정적 메서드 사용하는 경우
과연 그렇다면 정적 메서드는 전혀 사용하지 않는 게 좋을까라고 생각했을 때, 답은 아니오 인 것 같습니다.
정적 메서드의 사용법을 다시 한번 짚어보자면 클래스 소속인 인스턴스들의 개별적인 동작이 아니라, 소속 여부의 확인, 소속 부여 등의 공동체적인 판단을 필요로 하는 경우에 사용한다고 합니다. 그렇기 때문에 사용 형식과 역할에 따라서 static method로 사용할지 object method로 사용할지 분리해서 사용하면 좋을 것 같습니다.
우테코 아고라에 나온 내용
위의 내용과 비슷한 글이 이미 우테코 프리코스 아고라에 있어 링크 남겨둡니다!
java static에 대해 어떻게 생각하세요?🤔 (여기에 이런 주제를 올려도 되나요?)
static 메소드에 관하여
Beta Was this translation helpful? Give feedback.
All reactions