Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
관련 이슈
PR 세부 내용
번역 도메인의 API와 엔티티를 우선 설계했습니다.
엔티티
번역 요청을 비동기로 처리하기 위해 엔티티의 이름을
TranslateProgression
로 하였습니다.TranslateProgression
을 한글로 풀어서 표현한다면번역 진행 상태
가 어울릴 것 같은데, 어떤 이름으로 부르는게 좋을까요..?또한 뉴스가 중복으로 번역되는 것을 막기 위해
newsId
,destinationLanguage
를 복합 유니크 인덱스로 설정하였습니다.message
컬럼은 번역에 실패했을 때 어떤 사유로 번역에 실패했는지 알려주기 위한 컬럼이라고 보시면 됩니다. (타임아웃, 연결 실패, 비용 초과 등)translationStatus
컬럼으로 번역의 상태를 나타내었습니다. (진행중
,완료
,에러
)에러 보다는 실패(failure)로 할 걸 그랬나 싶네요. 😂
번역 재요청을 하려면 번역의 상태가 실패일때만 진행할 수 있게 비즈니스 로직을 작성할 수 있을 것 같습니다!
API
/api/v1/translation/{newsId}
URI로 번역할 언어(destinationLanguage)를 Body에 담아 POST 요청을 보내면 번역 진행 상태의 식별자를 반환합니다. 이때 응답은 200 OK가 아닌, 201 CREATE로 하였습니다. (새로운 자원이 생성되므로)/api/v1/translation/{translateProgressionId}
에 GET 요청을 보내면, 번역 진행 상태의 정보를 반환합니다.결론은 번역 요청을 보내는 기능을 구현하기 전에 도메인 용어부터 확실하게 정하고 가면 좋을 것 같습니다!