강의

멘토링

로드맵

Inflearn Community Q&A

donghyeon95179723's profile image
donghyeon95179723

asked

Spring MVC Part 2 - Backend Web Development Utilization Technology

API 서버 기능 국제화에 대한 질문입니다

Written on

·

302

0

항상 좋은 강의 감사드립니다.

다름이 아니라 국제화 기능에 대한 강의를 듣던 중 질문이 생겨서 글 남깁니다!

말씀하신 국제화 기능은 타임리프에서 해당 내용들을 치환해서 사용하는 것으로 이해를 하였는데요,

만약 현재 API 서버를 만들고 있고,  해당 API 서버에서 앱에 접속한 유저의 국적에 따라 API 에서 내려주는 데이터의 언어를 맞춰서 줘야할 경우에 어떻게 해야할 지 감이 안잡혀서 질문을 드립니다.

구체적인 상황을 가정하여 말씀드려보면,

예를들어 배달의 민족 서비스 어플에서 각 가게들의 정보 및 메뉴들이 핸드폰 기기언어가 한국어 일시 한국어로, 영어일 시 영어로 나와야 한다고 가정하고 질문드려보려고 합니다

1. 먼저 데이터베이스에 테이블 설계를 어떻게 하는것이 효율적인지 궁금합니다.

단순하게 생각하면 가게 데이터베이스 칼럼을 영어칼럼을 하나씩 다 만드는 경우가 있을것 같은데, 이렇게하면 요구사항에 대응해야하는 언어가 늘어날 때마다 칼럼을 추가해야해서 비효율적이지 않을까 생각이 듭니다...

아니면 번역 테이블을 따로 만들어서 한국어, 영어, 기타언어.. 등의 방식으로 만들어 놓고 비즈니스 로직중에 번역 테이블을 조회하여 해당 데이터들을 조회한 언어로 치환하는 방법이 있을 것 같은데 이 방법은 언어가 바뀌어야 하는 비즈니스 로직 모두를 손봐야 해서 복잡할 것 같다는 생각이 듭니다.

어떤 방법이 좋을지, 실무에서 어떻게 이러한 문제를 해결하는 지 궁금합니다!

2. 기존 코드에 대한 이식성 좋게 언어대응하는 방법이 궁금합니다.

한국어 서비스를 출시하고 서비스가 잘 되어서 API 서버가 주는 데이터가 기타 언어까지 확장해야 한다는 요구사항이 들어왔을 때 1번에서 말씀드린 방법들로 해결하고자 하면 기존 코드를 모두 손봐야하는 상황이 발생합니다.

혹시 이러한 상황을 해결할 수 있는 다른 방법이 있는지 궁금합니다.

저 혼자서 생각을 해보았을 때는 Response Advice 등으로 response 로 나가는 데이터를 json 으로 convert 하기 전에 가로채서 Reflection 으로 응답으로 나간 객체의 데이터를 샅샅이(?) 뒤져서 String 형태의 문자열이 있으면 1번에서 말씀드린 번역테이블에 조회하여 번역해야 하는 언어로 교체하는 방법.. 정도가 떠오르는데 이게 맞는건지 모르겠습니다ㅠㅠ

해당 이슈 해결방법에 대한 강사님의 의견이 궁금합니다!

긴 글 읽어주셔서 감사합니다:)

MVCspring

Answer 1

1

yh님의 프로필 이미지
yh
Instructor

안녕하세요. Chung A님

이런 경우 데이터베이스 기본 테이블에는 code값을 넣어두고

메시지를 처리할 수 있는 언어 전용 테이블을 만들어야 합니다.

그리고 그곳에 code, 언어, 값 이런 식으로 구조를 만들면 됩니다.

감사합니다.

안녕하세요. 혹시 code라는것이 이해가 안되는데 어떤것을 말하는지 알수있을까요

 

yh님의 프로필 이미지
yh
Instructor

안녕하세요. chlendud00님

국제화를 하게 되면 예를 들어서 다음과 같이 관리하게 됩니다.

  • messages_ko.properties 파일에 greeting.message = 안녕하세요

  • messages_en.properties 파일에 greeting.message = Hello

     

여기서 말하는 code라는 것은 greeting.message 를 뜻하게 됩니다.

이렇게 하면 애플리케이션에서 같은 코드로 서로 다른 국제화 메시지를 관리할 수 있게 됩니다.

감사합니다.

donghyeon95179723's profile image
donghyeon95179723

asked

Ask a question