JAVA) Enum과 인터페이스를 통한 리팩토링
최근 프로젝트의 일부 설계를 리팩토링 한 경험이 있는데, 리팩토링 과정에서 겪었던 고민과 해결을 말로 풀어하려니 어려워서 글로 정리해 보고자 작성합니다.. 우선 리팩토링 전부터 보겠습니다. 프로젝트에는 ImageClient라는 객체가 있는데, 해당 객체가 각 플랫폼에 이미지 생성을 위한 프롬프트와 응답 포맷을 전송합니다. 이후 다양한 포맷으로 받은 응답 데이터를 담는데에 사용되는 객체입니다. 해당 API 설명에 따르면 response_format에 url 또는 b64_json을 넣어 응답 객체를 선택할 수 있는데, 이를 기반으로 Image 클래스가 설계된 것 같습니다. 문제는 다른 모듈에서도 해당 클래스를 사용하고 있다는 것으로,OpenAI의 API에 맞추어 설계된 Image 객체를 사용하기 위해, u..
2024.03.23