학생의 경우 졸업, 재학, 휴학, 제적, 퇴학, 자퇴, 입학예정자 등이 있음
학생의 상태는 전부 공통코드로 들어가 있음.
내가 궁금한 것은 이미 사용된 공통코드를 다시 엮어야 하는 상황
(예시를 쉽게 들려고 학생으로 예를 들었음. 추가될 수도 삭제될 수도 있으나 크게 바뀌진 않음)
여기서 졸업증명서 달라고 하면 상태가 '졸업'이어야 함
IF (학생.상태 = '졸업') Print(졸업증명서)
'졸업'을 코드에 쓰는 것도 하드코딩이라고 생각하는데, 님들이라면 어케함?
학교 다니는 사람에게 보내는 자동으로 보내는 시스템 메일이 존재한다면
'재학', '휴학' 한테 보내야 함
학교를 다닐 사람에게 미리 보내는 시스템 메일이라면
'재학','휴학','입학예정자' 로 확장이 됨
A상위코드:['재학', '휴학'], B상위코드:['재학','휴학','입학예정자'] 공통코드로 묶음?
아니면 상수 테이블을 만들어서 사용함?
하드 코딩을 피하는 데 있어 본질적인 원칙은 데이터와 로직을 분리시켜서 여러가지 이점(재사용성, 유연성 등) 을 누리고자 함임. 로직 자체가 재학이냐 휴학이냐를 따져야 하면 걔네가 코드에 들어가는것이 마땅한거임. 조금 더 일반화 시키고 싶으면 어떤 데이터가 주어진 조건 집합의 원소를 충족하는지 검사하는 함수로 만들 수 있겠지. 그리고 - dc App
그 집합들이 졸업증명서든 재학생 공지사항이든 각각의 용도에 맞는 원소들을 가지고 있으면 됨. 너무 과도하게 일반화 시키려 하면 코드가 쓸데없이 복잡해지고 생산성이 떨어지니까 적당한 선에서 타협보는 것도 해버릇 해야 적정선을 잘 찾게됨. - dc App
ㄳㄳ 덕분에 도움이 됨