서버 입장에선 무조건 enum인데 모바일에선 하위 버전과 최신 버전이 공존할 수 있어서, API 상 ENUM 코드에 대한 하위 호환을 유지해주는게 까다롭더라구요. "API 응답 ENUM은 바뀔 수 있으니 항상 하위호환을 고려하세요!"라고 항상 요청하기에도 팀이 자체가 다르거나, 상황에 따라 하위호환이 어려운 상황도 생깁니다. 마지막에 말씀 해주셨듯이 무조건 뭐가 좋다기보단 상황에 따라 유연하게 선택하는게 맞는 듯 해요. 둘 다 애매하다면 DB에 코드를 정의 해두고 이를 Enum으로 변환해서 사용하는 것도 방법 일 듯 합니다. (대신 하위 버전용으로 Enum.UNKNOWN 처리를 추가한다거나) 항상 좋은 영상 감사합니다.
공통코드 쓰는건 보통 운영자(백오피스 사용자)가 필요시 개발팀 배포요청없이 기능변경의 유용함은 있겠으니 프로젝트마다 사용방식은 그러려니 하겠습니다. 다만 개발자 입장에선 이넘으로 관리하는게 더 좋은거같아여 ㅠ 근데 공통코드와 이넘을 동시에 쓰는 케이스는 어떻게 생각하시나요? 여기같은 경우가 그리 되있는데. 공통코드변경시마다 이넘도 바꿔야하며, 심지어 어떤 이넘은 공통코드랑 매칭이 안 되는 경우처럼 따로국밥 사례들이 생겨서 이게 좀 힘드네요 ㅠ
안녕하세요! 저 댓글을 달았던 사람압니다. 저같은 경우에는 반대로 ENUM 사용으로 유동적으로 대처할 수 없는 상황이어서 당시 많이 답답한 마음에 '무조건' 이라는 표현을 쓴거 같네요! 사실 무조건은 없다고 생각합니다 ㅎㅎ.. 타입 안정성이나, IDE 의 지원을 받을 수 있고, 말씀하신대로 변화가 거의 없다면 ENUM 은 매우 유용하지만 수정시 배포를 해야한다는 단점도 크게 느껴지는거 같아요... 좋은 의견 감사히 잘들었습니다!
서버 입장에선 무조건 enum인데 모바일에선 하위 버전과 최신 버전이 공존할 수 있어서, API 상 ENUM 코드에 대한 하위 호환을 유지해주는게 까다롭더라구요.
"API 응답 ENUM은 바뀔 수 있으니 항상 하위호환을 고려하세요!"라고 항상 요청하기에도 팀이 자체가 다르거나, 상황에 따라 하위호환이 어려운 상황도 생깁니다.
마지막에 말씀 해주셨듯이 무조건 뭐가 좋다기보단 상황에 따라 유연하게 선택하는게 맞는 듯 해요.
둘 다 애매하다면 DB에 코드를 정의 해두고 이를 Enum으로 변환해서 사용하는 것도 방법 일 듯 합니다. (대신 하위 버전용으로 Enum.UNKNOWN 처리를 추가한다거나)
항상 좋은 영상 감사합니다.
하하 항상 좋은 영상 감사함니다
Enum 이 가져다주는 타입안정성은 절대 포기할수 없죠
common이 진짜 '공통'으로 쓰이는거면 좋은데 프로젝트 커지고 사람 바뀌어가고 하다보면 공통이 아니라 '전역'의 느낌이 강해지더라고요. static을 대신해서 더 많으 쓰게 변질되더라고요.
common 코드는 아닌데 공통 역할을 수행하는 모듈의 경우는 어떻게 생각하시나요? 예를들어 exception 이나 로그 등을 정의한 모듈일 경우도 따로 공통 역할을 하는 모듈을 안두시는지 궁금합니다
공통코드 쓰는건 보통 운영자(백오피스 사용자)가 필요시 개발팀 배포요청없이 기능변경의 유용함은 있겠으니 프로젝트마다 사용방식은 그러려니 하겠습니다. 다만 개발자 입장에선 이넘으로 관리하는게 더 좋은거같아여 ㅠ
근데 공통코드와 이넘을 동시에 쓰는 케이스는 어떻게 생각하시나요?
여기같은 경우가 그리 되있는데.
공통코드변경시마다 이넘도 바꿔야하며, 심지어 어떤 이넘은 공통코드랑 매칭이 안 되는 경우처럼 따로국밥 사례들이 생겨서 이게 좀 힘드네요 ㅠ
디비데이터랑 enum 싱크안맞아서 장애낸 기억이 ㅜㅜ 그이후로는 enum값 추가시 한번더 생각하고 합니다 😂
Enum == 속이뻥
Common의 저주가 뭔가요?
Common이 점점 비대해지며 제 역할을 하지 못하게 되는 상황을 말씀하신 것 같습니다
코드레벨에서 분기 의존이 있다면
enum이 맞고
코드테이블이 맞다고 생각
Enum 안배우면 할아버지가 Enum~~ 한다!
이런 세세한 습관을 배울 수 있는 곳은 정말 독보적인거 같습니다 :)
안녕하세요! 저 댓글을 달았던 사람압니다. 저같은 경우에는 반대로 ENUM 사용으로 유동적으로 대처할 수 없는 상황이어서 당시 많이 답답한 마음에 '무조건' 이라는 표현을 쓴거 같네요! 사실 무조건은 없다고 생각합니다 ㅎㅎ.. 타입 안정성이나, IDE 의 지원을 받을 수 있고, 말씀하신대로 변화가 거의 없다면 ENUM 은 매우 유용하지만 수정시 배포를 해야한다는 단점도 크게 느껴지는거 같아요... 좋은 의견 감사히 잘들었습니다!
Enum을 사용하면 타입세이프하기 때문에 컴파일 단계에 걸러낼수 있는게 많은반면 말씀하신 형태가 되면 유연할수 있지만 항상 런타임에서만 걸러낼수 있을것 같아요.
결국 취사선택하기 나름일것 같습니다