안녕하세요 자바지기님에게 자바를 배우고 있는 학생입니다.
코드를 짜다가 궁금한 것이 생겼는데
Static final 상수들이나 자기가 만든 예외를 따로 클래스로 빼서 관리하는 것이 제 생각엔 조금 더 가독성이 뛰어날 것 같은데 보통 어떻게 처리하시나요?
그리고 그렇게 만든 클래스는 새로운 패키지를 정의해서 관리하시나요?
직접 개발하시는 분들은 어떻게 하시는지 궁금합니다.
지금까지 한 방법 : ㄴchess.package ㄴBoard.class <- 상수가 정의되어 있음. 다른 클래스에서 필요하면 Board.MAX 이런식으로 호출. ㄴRank.class ㄴMyException.class <- 그냥 패키지중 하나에 직접 만든 예외를 만들어 넣음. .... ㄴpieces.package ㄴRook.class ....
생각하는 방법 : ㄴtemplate.package <- 상수를 관리하는 패키지를 만듬. ㄴStaticVariable.class ㄴException.class ....
(절대 자바지기님이 여기에 질문을 올리라고 하셔서 올리는게 아닙니다.)
4개의 의견 from SLiPP
이 글에 왜 답변이 없지. 내가 답변을 달면 꼭 짜고 치는 고스톱 같잖아.
아마도 좋은 선배들이 답변 달아주실꺼야. 기둘려봐.
나는 이 같은 경우 가능하면 상수를 관련된 클래스에 구현한다. 별도의 상수 클래스로 두는 것도 좋은 전략이지만 가능하면 관련된 클래스에 두는 것이 좋다고 본다.
현재 체스 게임의 경우도 Board에 COLUMN_SIZE, ROW_SIZE가 있는데 그 보다는 Position 클래스에 두는 것도 좋은 선택이라고 본다. Exception의 경우도 한 곳에 모아두기 보다는 해당 Exception을 사용하는 패키지에 두는 것이 좋은 선택이라고 본다.
즉, 하나로 퉁쳐서 처리하고 싶은 욕구가 있겠지만 그 보다는 각각의 역할을 명확하게 규정하고 관련된 곳에 모아두는 것이 코드를 읽는 입장에서나 향후 유지보수 입장에서도 좋다. 물론 이렇게 하려면 업무 로직에 대한 이해도도 높아야 되고 더 많은 고민을 해야겠지. 하지만 어쩌겠냐? 이것을 하는 것이 우리 프로그래머들의 숙명이고 재미인 것을...
질문 중에 이해가 안 되는 말이 있습니다.
"Static final 상수들이나 자기가 만든 예외를 따로 클래스로 빼서 관리하는 것이 제 생각엔 조금 더 가독성이 뛰어날 것 같은데 보통 어떻게 처리하시나요?" 라고 하셨는데 왜 "가독성"에 초점을 두셨나요?
분리하면 가독성이 좋아진다고 느끼신 이유가 궁금하네요. 가능하면 사례를 보여 주시면 좋겠습니다.
자바 프로그래머가 아니지만 개인 의견 남깁니다.
일단 상수는 별도로 관리하는 것이 좋습니다. (예를 들어, C 프로그램에서는 헤더 파일에서 관리하기도 합니다.) 그러나 지역에 국한된 상수라면(즉, 공유할 필요가 없다면) 그 지역에서 선언하는 것도 한 방법이 될 수 있습니다. 그러므로 상황에 맞게 처리하는 것이지 꼭 이렇게 해야 옳다고 볼 수는 없습니다.
참, 상수를 사용하는 이용하는 이유 중의 하나는 가독성입니다. 다만, 모든 상수를 한 곳에서만 관리한다고 가독성이 증가하는 것은 아닙니다. 적절한 그룹화도 필요하고,지역적인 상수까지 별도로 빼내서 관리하는 것은 생각해 볼 문제입니다.
감사합니다.
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.