안녕하세요. 첫번째로 스키마 리뷰를 올리네요 ㅎㅎ
최대한 회사 코드와 비슷한 예제로 만들었습니다~
온라인 게임을 조회하는 query의 반환타입에 대한 고민입니다. 2개의 케이스가 있습니다.
(리그오브레전드/스타크래프트가 동시에 존재할 수 없습니다)
• case1
장점 : 각각 게임의 field에 대한 null/nonNull이 정확
함(리그오브레전드에의 티어,라인의 값은 절대
null일 수 없음)
단점 : 프론트에서 리그오브레전드, 스타크래프트 객체의
null에 따라 분기해서 화면에 보여줘야함. 리그오브레전드/스타
크래프트 중 하나의 객체만 존재할 수 있기 때문에
객체가 nullable함.
• case 2
장점 : 프론트에서 따로 분기하지 않고, 그냥 받는 그대로 데이터를 뿌려주면 됨.
단점 : 티어, 라인, 종족이 모두 nullable로 되어 있기 때문에 값이 정확하지않음(리그오브레전드가 조
회된 경우 라인, 티어가 무조건 값이 있는데 nullable로 선언되어있네…?)
보통 case1의 방법을 선호하는데, 서버와 클라이언트에서 데이터를 만들고 사용하기가 까다롭더라구요.
case2번의 방법이 간단하고 좋은데, (티어, 라인, 종족)을 linear하게 나열하다 보니, nullable하게 됩니다.
만약 스타크래프트가 조회 되더라도 데이터를 만들기 위해 라인, 티어를 null로 채워줘야 하네요. 리그오브 레전드의 경우 (라인, 티어)는 무조건 nonNull한데 어쩔 수 없이 이런 경우가 생깁니다. 이렇게 되었을 때 (라인, 티어)에 대한 정확한 null체크가 안된다고 생각합니다.
물론 nonNull로 하고 빈문자열(‘’)로 채우면 되겠지만…너무 억지 느낌이라서요.
위의 경우 보통 어떤식으로 처리하는지 궁금합니다. 감사합니다.