해결된 질문
작성
·
5K
답변 1
25
안녕하세요. 별님 좋은 질문입니다.
항상 유지보수에서 가장 문제가 되는 것이 바로 애매한 것입니다. 특히 같은 필드인데, 어떤 경우에는 null이고 어떤 경우에는 값이 있고 이렇게 모호하면 정말 유지보수가 어려워집니다.
그래서 API 응답 스펙이 정해지면 그 필드에 값은 항상 같은 원칙으로 반환되도록 명확하게 설계하는 것이 중요합니다.
클래스를 여러게 만들더라도, 코드가 중복되는 것 처럼 보일지라도, 명확한 것이 훨씬 더 나은 선택이라는 것이지요.
다만 API를 제공할 때 또 모든 케이스에 대응해서 만들면 API 자체가 너무 많아집니다. 그래서 고민하신 내용에서 null 값 대신에 실제 값을 채워서 반환하는 API를 제공하는 것이 좋습니다.
예를 들어서 username, age 둘다 제공하는 공통 API 하나를 여러곳에서 사용하도록 제공하는 것이지요.
실무에서 API를 설계할 때 진짜 고민은, 생각보다 너무 복잡하다는 것입니다.
어떻게 보면 제공 단위를 크게 만들어서 모든 데이터를 다 반환하는 API 하나를 만들면 될 것 같지만, 이렇게 너무 공통화해도 유지보수가 어렵고, 성능 이슈가 있습니다. 반대로 너무 각각의 케이스를 대응하도록 만들어도 API 자체가 많아져서 유지보수가 어렵습니다.
이 사이에서 적절한 단위로 API를 설계하고 제공하는 것이 묘미이지요^^!
제가 선호하는 방법은 기본 공통 API를 제공하고, 이 기본 공통 API로 해결이 안되는 특수한 경우에 한해서 별도의 API를 제공하는 방법을 선호합니다.
도움이 되셨길 바래요^^