본문 바로가기

개발 안하는 공대생/SW 관리  (ง°̀ロ°́)ง

소프트웨어의 글로벌화 준비하기 (개발관점)

728x90

소프트웨어 개발을 하면서 글로벌 론칭이라는 목표 아래 무작정 영어만 추가하여 개발을 시작하는 팀이 있다.

영문으로만 만들어지면 글로벌화된 것인가? 에 대한 질문에 그렇다 아니다 라고 단정 지어 대답하기는 어려운 것 같다.

 

제품의 방향과 도메인 특성에 따라 글로벌화 준비 항목들이 차이가 있을 수 있다. 글로벌화 관련하여 기본 내용을 확인하여 활용하는 것이 좋다.

 

 

개요

글로벌화의 개발 목적은 다양한 언어나 문화권의 사용자들이 제품을 이용하는 데 있어 발생할 수 있는 문제를 최소화하기 위함이다. 

용어 정의

현지화 (Localization, L10n)

- 제품을 특정 언어나 문화권에 적합하도록 커스터마이징 하는 작업.

- 현지의 제품과 비교하여 차이가 나지 않도록 특색을 반영하는 것이 중요함. 

국제화 (Internationalization, I18n)

- 동일한 소스 코드로 다양한 문화, 지역, 언어권의 사용자에게 제품을 출시할 수 있도록 설계하고 구현하는 작업.

- 다른 언어/문화권에 다양한 커스터마이징이 용이하도록 제품을 설계하고 구현하는 작업

글로벌화 (Globalization, G11n)

- 제품을 현지화할 수 있는 기반을 구축(국제화)한 다음,

- 그 위에 다양한 언어/문화권의 이용자에게 서비스할 수 있도록 현지화하는 절차

- 시장조사를 통해 어떤 지역에 진출할 것인지에 대한 기획과 프로젝트 관리 프로세스를 포함.

관계 정의

Globalization = Internationalization + Localization

=> 국제화는 비즈니스 관점으로 현지화를 적용하여 개발된 국제화 제품을 의미한다.

대표 키워드

- 국제화 : Common (공통된 요구사항과 기능)

- 현지화 : Variable (변경이 용이한 기능과 UI)

- 글로벌화 : Sales & Marketing (판매를 위한 전략)

 

 

 

글로벌화 계획

글로벌 제품 설계 시 한 개의 버전을 개발한 다음 구성이나 옵션 등을 통해 특정 언어나 문화권에 필요한 모듈들을 조립할 수 있는 유연성을 확보하는 것이 중요하다. 글로벌화를 위해 먼저 출시할 시장에 대한 우선순위를 설정하여 단계별 출시를 준비하는 것이 좋다. 또한 사용자의 언어나 지역이 변경되면 수정되어야 할 부분을 컴포넌트를 분리하여 모듈로 구성하여 쉽게 확장 및 변경할 수 있도록 전략을 수립해야 한다.

 

글로벌화 준비 시점

글로벌 서비스 준비 시점에 따른 비용 차이

일부 개발 위주의 집단에서 제품을 먼저 만들고 나서 글로벌 서비스를 준비하는 경우가 있다. 제품을 빠르게 출시하여 사용자에게 제공할 수 있지만 글로벌 사용자의 요구사항을 분석하다 보면 매우 많은 코드의 수정 또는 리엔지니어링까지 해야 할 수 있다. 실제 글로벌 서비스의 시점은 개발 기간의 배로 늘어날 수도 있다.

서비스를 개발하기 전 사업계획 단계에서 글로벌 서비스를 목표로 했다면, 개발 초기부터 글로벌 요구사항을 분석하여 제품 설계에 더 많은 투자하기를 권한다.

 

글로벌 SW 개발 라이프 사이클

1. 요구사항 분석

- 시장 조사 자료를 바탕으로 글로벌 요구사항을 분석하여 제품의 스펙을 정의한다.

- 요구사항은 공통 요구사항(국제화)과 가변 요구사항(현지화)을 구분하여 작성해야 한다.

 

2. 제품 설계

- 국제화 제품을 설계 시에는 공통 요구사항을 수용할 수 있는 유연성, 번역, 문화 중립성을 고려하여 설계해야 한다.

 

3. 제품 구현

- 국제화 제품을 구현 시에는 현지화를 지원할 수 있는 파일에 대하여 소스코드와 자원의 분리해야 한다.

- 로케일 데이터(통화, 날짜, 전화번호 등), 데이터(인코딩, 정규화, 정렬 등), UI(그래픽, 색상 등), 문서(RTL, LTR) 등

 

4. 제품 테스트

- 국제화 제품 테스트는 GVT, FVT 를 수행한다.

- GVT (Globalization Verification Test) : 문자 깨짐, 텍스트 절단, 단축키의 중복 또는 누락, 제어의
겹침, 잘못된 제어의 정렬 또는 하드코딩 등으로 인한 문제에 대한 검증을 수행한다.

- FVT (Functional Verification Test) : 제품 개발 주기 내의 단위 테스트, 통합 테스트, 시스템 테스트, 인수
테스트 등 테스트 V-모델을 통한 검증을 수행한다.

 

5. 제품 현지화

- 가변 요구사항에 대하여 기능 구현(or 수정)을 진행한다.

- 제품 구현 시 분리한 자원에 대한 추가, 보정 작업을 진행한다.

 

6. 제품 현지화 테스트

- 현지화 제품은 TVT 를 수행한다.

- TVT (Translation Verification Test) : 번역 내용의 뉘앙스가 맞는지, 데이터 포맷,  UI 배치가 적합한가에 대한 검증을 수행한다.

 

7. 제품 출시 및 지원

- 파트너나 지사(법인)를 통해 지역의 문화를 고려하여 출시 일정을 수립한다.

- 파트너나 지사(법인)를 통한 기술지원 계획이나 피드백을 수집할 수 있는 프로세스를 구축해야 한다.

 

 

글로벌 SW 설계 및 개발 기법

국제화는 프로젝트의 전체에 걸쳐 설계와 지향하는 목표를 고려하는 것에서부터 시작된다. 따라서 기능과 대상 고객을 초기 설계의 일부로 고려해야 한다. 국제화 단계에서는 사용자가 요구하는 런타임 환경 또는 옵션에 따라 다양한 요구 사항에 대처하기 위해 데이터 구조 및 기능에 대한 설계와 변경이 수반된다. 즉, 다음과 같이 요구사항 수집부터 설계, 엔지니어링, 테스트, 출시 및 지원에 이르기까지 제품 개발 전반에 걸쳐 작업이 이루어진다.

 

• 글로벌 요구사항 수집, 공통/가변 요구사항 파악

 

내재화(Enable), 출시 지역의 기능 지원

동일한 코드로 다양한 언어나 문화권을 지원해야 한다. 개발하는 SW 제품의 수립된 비즈니스 전략에 따라 출시할 지역의 언어의 입력과 표시 방법, 날짜와 시간 표기, 단어나 데이터의 정렬 순서, 리소스 파일들의 교환 등의 형식 지원할 수 있도록 개발한다.

 

외부화(Externalize), 코드와 리소스 파일 분리

출시할 지역과 언어가 결정되면 수행하는 절차로 특정 언어나 지역, 문화권에 맞게 쉽고 빠르게 현지화 적용할 수 있도록 코드와 리소스 파일을 분리한 형태로 설계해야 한다. 번역이 완료된 언어 리소스와 문화권 이미지가 소스 코드와 연결되어 현지 사용자들이 요구하는 형태로 제공될 수 있도록 구현해야 한다.

 

맞춤화(Customize), 시장 맞춤형 기능 제공

소스 코드 또는 제공하는 콘텐츠를 특정 언어나 지역에 맞게 제품을 수정해야 될 필요가 있다. 국제화에 반하는 구현 방식으로 보일 수 있으나 특정 시장에는 공통의 모듈과 분리된 리소스로 커버를 못하는 요구사항이 존재할 수 있다. 대상 지역에 대해서는 제품을 개별적으로 수정하여 내재화 및 코드와 리소스를 분리한 외부화에 기반하여 수정을 해야 현지 제품과의 경쟁에서 살아남을 수 있다.

 

국제화 시험, GVT 와 FVT 그리고 TVT 수행

 

내재화, 외부화, 맞춤화 설계 구조

*Code 는 리소스와 분리하여 작업하지만 특정 지역 서비스를 위해 일부 리소스는 코드로 작성될 수 있다.

 

 

 

글로벌화 점검 항목

국제화 특성 항목별 점검 항목

항목 설명
텍스트 현지화 대상 텍스트(문자열)은 소스코드와 분리해야 한다.
설치 지원 자동 설치 및 관리(자 기능), 제거 등을 지원함에 있어 다양한 글로벌 이용자 환경 또는 특정 언어 및 환경에서 문제가 발생되지 않아야 하며, 예상되는 문제에 대한 대응방안을 준비해야 한다.
UI 현지화 팝업(다이얼로그, 컨펌, 알럿)과 화면 구성요소들은 일관성을 유지하고 현지화 적용에 따른 효율성을 확보해야 한다.
문자 로케일 특정 지역의 문자를 처리(유니코드, 문자 세트, 로케일)할 때 표시 오류 및 자료의 훼손이 없어야 한다.
OS 호환성 다양한 운영체제 버전에서 원활하게 동작해야하며 문제 해결을 위한 계획을 준비해야 한다.
모듈화 특정 지역 및 문화에 따라 기능, UI 를 활성/비활성화 할 수 있어야 한다.
파일 포맷 생성되거나 처리되는 파일의 형태는 지역이나 문화에 맞게 변경/변환할 수 있어야 한다. (문서나 미디어 타입 등)

 

현지화 특성 항목별 점검 항목

항목 설명
텍스트 - 현지화 대상 언어의 특성을 지원해야 한다.
- 현지 언어로 변환해야 하는 항목들과 아닌 항목들을 구분해야 한다.
- 현지 사용자 환경에서 입력,표시,처리되는 모든 문자열(ASCII 문자, 현지 문자, 유니코드 문자 등) 처리가 정상적이어야 한다.
포맷 - 포맷을 갖는 날짜, 시간, 단위 등의 경우 대상 언어(지역)권 표준 포맷으로 표시할 수 있어야 한다.
- 플랫폼(디바이스)의 로케일에 따라 포맷이 변경되는 경우 오류가 발생하지 않아야 한다.
문자열 - 문자열 구성 및 처리에 있어서 대상 언어의 특성을 지원해야한다.
- 문자를 합성하여 구성하는 경우 대상 언어권의 어법, 어순을 준수하도록 해야한다.
UI - UI 구성요소는 대상 언어 및 문화에 적절하도록 구성되어야 한다.
- 현지화된 포맷과 내용은 대상 언어권 사용자의 시스템에서 올바르게 표현되어야 한다.
번역 - 문서 및 리소스를 현지화할 때 대상 언어에 대한 번역의 신뢰도(의미 전달)를 확보해야 한다.
- 번역에 대한 결과물의 품질(번역상태, 관용적 표현, 전문용어 및 기술용어 등)은 해외 채널 또는 해당 언어권의 사용자로부터 직접 검수를 받는 것이 좋다. (파트너사나 지사, 베타 테스터를 적극 활용)
시스템
호환성
- 현지화된 모든 기능은 대상 지역, 언어권의 사용자 시스템에서 정상적으로 동작해야 한다.
- 현지화된 소프트웨어의 배포 버전은 언어권 사용자의 시스템에서 설치/제거/관리에 있어 문제를 발생시키지 않아야 한다.
문화, 관습 - 대상 지역이나 언어권 문화에 대한 부적절한 내용이나 거부감을 유발할 수 있는 항목은 변경되거나 제거해야 한다.
- 용어(제품명, 모듈의 명칭), 그래픽 요소들의 의미가 부적절하거나 이해가 용이하도록 해야한다.
- 제공하는 리소스(템플릿, 샘플, 클립아트 등)는 대상 지역, 언어권에서 사용 가능한 포맷과 내용으로 제공되어야 한다.
출시, 배포 - 대상 지역, 언어권에 적합한 라이선스 및 패키징 방법과 서비스 형식을 제공해야 한다. (현지 규제 준수)
- 현지화된 버전의 배포나 지원(사후관리)은 대상 언어권 사용자들에게 익숙한 형태로 제공해야 한다.

 

 

 

소프트웨어의 글로벌화 체크리스트 확인하기

 

소프트웨어의 글로벌화 체크리스트

소프트웨어의 글로벌화에 대한 정리 소프트웨어의 글로벌화를 위한 점검 항목은 아래와 같이 구분하고 있다. (출처 : NIPA) 아래 상세 점검 항목을 기반으로 현재 글로벌 서비스로 준비중인 소프

6987.tistory.com

 

소프트웨어의 글로벌화 준비하기 (언어리소스 작성)

글로벌 서비스 준비에서 번역은 글자에 대한 번역이 아닌 문맥에 대한 번역을 고려해야 한다. 동일한 의미의 단어라도 문맥에서 다른 의미를 제공할 수 있기 때문에 신중하게 언어 리소스를 작

6987.tistory.com

 

소프트웨어의 글로벌화 준비하기 (사업 관점)

소프트웨어개발회사가 글로벌 진출을 하기 위한 기본 전략을 알아야 한다. 자세한 내용은 Kotra 에서 출간하는 해외 진출을 위한 자료들을 찾아보면 이해하기 쉽다. 해외 진출 전략 로드맵 Partner

6987.tistory.com

참고 : NIPA SW 글로벌화 관련 문서, SW공학센터, SW자산뱅크


 

728x90
LIST