이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다. 각 도면의 구성요소들에 참조 부호를 부가함에 있어서, 동일한 구성요소에 대해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 부호를 가지도록 할 수 있다. 또한 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명을 생략한다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
본 개시에 있어서, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안 된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에 있어서, "제1", "제2" 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이러한 구성요소들은 해당 용어들에 의해 한정되어서는 안 된다. 즉, 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. 또한, 달리 구체적으로 명시하지 않는 한, 단수의 표현은 본 명세서에서 하나 이상의 개체를 포함하는 것으로 사용된다. 마지막으로, 본 명세서에서 사용된 바와 같이, "또는"은 달리 구체적으로 명시하지 않는 한, 비-배타적인 "또는"을 의미한다.
또한, 본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 텔레비전, 스마트 가전 기기, 지능형 자동차, 키오스크, 웨어러블 장치 등 다양한 형태의 제품으로 구현될 수 있다.
도 1은 일 실시예에 따른 다국어 웹사이트 콘텐츠를 생성 및 제공하는 서비스를 제공하기 위한 시스템(10)을 설명하기 위한 도면이다. 도 1을 참조하면, 다양한 실시예에 따른 시스템(10)은, 전자 장치(110) 및 복수의 사용자의 단말 장치(120)를 포함한다. 전자 장치(110)는 복수의 사용자의 단말 장치(120)와 통신망을 통해 유선 또는 무선으로 통신 연결될 수 있다. 본 도면에서는 설명의 편의를 위하여 사용자의 단말 장치(120)의 수가 1개인 것을 가정하여 설명하지만, 사용자의 단말 장치(120)의 수는 이에 제한되는 것은 아니다.
일 실시예에 따른 전자 장치(110)는 다국어 웹사이트 콘텐츠를 생성하는 서버(server)일 수 있다. 구체적으로, 사용자가 단말 장치(120)를 이용하여 특정 웹사이트에 접속하고, 특정 웹사이트에 대한 다국어 번역을 전자 장치(110)에 요청할 수 있다. 전자 장치(110)는 상기 요청을 수신한 것에 응답하여, 웹사이트에 대한 다국어 번역을 수행하고, 다국어로 번역된 웹사이트 콘텐츠를 생성할 수 있다. 전자 장치(110)는 다국어로 번역된 웹사이트 콘텐츠를 단말 장치(120)로 전송함으로써 사용자에게 제공할 수 있다. 웹사이트에 대한 다국어 번역을 수행하는 구체적인 방법에 대해서는 후술하기로 한다. 본 문서에서 개시된 다국어 웹사이트 콘텐츠는, 제1 언어(예: 영어)로 작성된 웹사이트에 대하여 사용자가 원하는 언어인 제2 언어(예: 한국어)로 번역된 웹사이트를 의미할 수 있다.
일 실시예에 따른 전자 장치(110)는 다국어 웹사이트 콘텐츠를 생성하기 위하여, 웹사이트의 소스 코드를 획득할 수 있다. 웹사이트의 소스 코드는, 예를 들어, HTML일 수 있다. 전자 장치(110)는 웹사이트의 소스 코드로부터 번역 대상이 되는 텍스트를 식별하여 추출할 수 있다. 예를 들어, 전자 장치(110)는 HTML 에디터를 사용하여 제1 언어(예: 영어)로 작성된 HTML을 획득할 수 있다.
HTML을 구성하는 요소(elements)는, 태그(tag), 값(value) 및 속성(attribute)을 포함할 수 있다. 태그는 HTML 문서의 뼈대를 구성하는 요소로서, 태그 사이에 있는 데이터의 중요도를 나타낼 수 있다. 예를 들어, 태그는 태그 사이에 존재하는 데이터가 제목인지, 본문 단락인지, 이미지인지, 본문을 설명하는 부분인지 구분하는 요소일 수 있다. 태그는, 예를 들어, 부등호 기호(<, >)로 구성될 있다. 일부 태그는 여는 태그와 닫는 태그 쌍으로 존재할 수도 있고, 하나의 태그로만 존재할 수도 있다. 예를 들어, 문단의 내용을 나타내는 <p> 태그는, 여는 태그인 <p> 및 닫는 태그인 </p>를 포함할 수 있고, <p> 및 </p> 사이에 문단의 내용에 관한 텍스트를 포함할 수 있다. 예를 들어, 줄 바꾸기를 위한 <br> 태그는 여는 태그와 닫는 태그로 구분되지 않고, <br> 태그 단독으로 사용될 수 있다.
값은 데이터 자체를 의미할 수 있고, 값에는 텍스트, 그림 또는 도형을 포함할 수 있다. 값은 여는 태그와 닫는 태그 사이에 존재할 수 있다. 속성은 태그를 보조하는 명령어를 의미할 수 있다. 속성은 태그의 부등호 기호 안쪽에서 작동하는 요소일 수 있다. 속성은 태그의 문법 명령어가 다루지 못하는 명령들을 보조적으로 담당하는 요소일 수 있다.
예를 들어, <p style = "color: blue"> Hello </p> 라는 소스 코드를 기준으로 설명하자면, 상기 소스 코드에서 태그는 <p>, </p>이다. p 태그는 문단의 내용을 나타내는 태그로서, <p>는 여는 태그이고, </p>는 닫는 태그이다. 상기 소스 코드에서 값은 Hello일 수 있다. 상기 소스 코드에서 속성명(attribute names)은 style이고, 속성값(attribute values)는 color: blue 일 수 있다. 상기 소스 코드는 문서의 내용을 나타내는 p태그 사이에 포함된 Hello라는 텍스트에 대하여 파란색으로 표시하라는 의미일 수 있다.
소스 코드에는 다양한 종류의 태그가 포함될 수 있다. 태그는 디자인적 요소와 관련된 제1 태그 및 텍스트와 관련된 적어도 하나의 제2 태그를 포함할 수 있다. 디자인적 요소와 관련된 제1 태그는 웹사이트를 표시함에 있어서 디자인적인 요소를 구현하기 위해 사용되는 태그를 의미할 수 있다. 제1 태그는, 예를 들어, 줄 바꾸기를 위한 태그(<br> 태그), 링크를 추가하기 위한 태그(<a> 태그), 강조 표시를 하기 위한 태그(<em> 태그), 중대한 부분을 표시하기 위한 태그(<strong> 태그), 기울임 표시를 하기 위한 태그(<i> 태그), 위 첨자로 표시하기 위한 태그(<sup> 태그), 아래 첨자로 표시하기 위한 태그(<sub> 태그) 및 작은 글자로 표시하기 위한 태그(<small> 태그)를 포함할 수 있다. 이외에도, 제1 태그에는 다양한 디자인적 요소와 관련된 태그가 포함될 수 있다. 텍스트와 관련된 적어도 하나의 제2 태그는, 예를 들어, 제목을 나타내기 위한 태그(<h> 태그) 및 문단을 나타내기 위한 태그(<p> 태그)를 포함할 수 있다. 이외에도, 제2 태그에는 다양한 텍스트와 관련된 태그를 포함할 수 있다. 제1 태그 및 제2 태그는 사용자에 의해 미리 설정될 수 있다.
상술한 바와 같이, 하나의 태그는 여는 태그 및 닫는 태그가 한 쌍으로 존재하며, 여는 태그 및 닫는 태그 사이에 데이터가 포함될 수 있다. 전자 장치(110)는 이러한 태그의 특성을 고려하여, 여는 태그 내의 ">" 기호와 닫는 태그 내의 "<" 기호 사이의 텍스트를 번역 대상 텍스트로 추출하는 것을 원칙으로 한다. 또한, 전자 장치(110)는 모든 태그에 포함된 텍스트를 번역 대상 텍스트로 사용하는 것이 아닌, 전처리 과정으로서 디자인적 요소와 관련된 태그는 제외함으로써, 텍스트와 관련된 태그에 포함된 텍스트 만을 번역 대상 텍스트로 지정 및 추출할 수 있다. 이를 통해, 정확하고 신속한 번역을 수행할 수 있다. 번역 대상 텍스트를 추출하는 구체적인 방법은 후술하기로 한다.
일 실시예에 따른 전자 장치(110)는 추출한 번역 대상 텍스트를 원하는 언어로 번역할 수 있다. 예를 들어, 한국어로 작성되어 있는 웹사이트에 있어서, 웹사이트 소스 코드를 획득하고, 소스 코드에서 번역 대상 텍스트를 추출하며, 추출된 번역 대상 텍스트를 원하는 언어인 영어로 번역할 수 있다. 번역 대상이 되는 언어 및 원하는 번역 언어는 상술한 예시에 국한되는 것은 아니며 다양한 언어가 사용될 수 있음은 물론이다.
도 2는 일 실시예에 따른 전자 장치(110) 및 단말 장치(120)의 구성의 예시도이다.
일 실시예에 따른 전자 장치(110)는 프로세서(111), 메모리(113), 통신 회로(115) 및 데이터베이스(117)를 포함한다. 일실시예에 따른 전자 장치(110)는 상술한 시스템(10)을 운영하기 위한 장치일 수 있다. 전자 장치(110)의 프로세서(111)는 본 문서에 개시된 적어도 하나의 장치들을 포함하거나, 본 문서에 개시된 적어도 하나의 방법을 수행할 수 있다. 전자 장치(110)의 메모리(113)는 상술한 방법과 관련된 정보를 저장하거나 상술한 방법이 구현된 프로그램을 저장할 수 있다. 메모리(113)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
전자 장치(110)의 프로세서(111)는 프로그램을 실행하고, 전자 장치(110)를 제어할 수 있다. 프로세서(111)에 의하여 실행되는 프로그램의 코드는 메모리(113)에 저장될 수 있다. 전자 장치(110)는 입출력 장치(도면 미 표시)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다. 프로세서(111)는 전자 장치(110)의 구성 요소들과 작동적으로 연결될 수 있다. 프로세서(111)는 전자 장치(110)의 다른 구성 요소로부터 수신된 명령 또는 데이터를 메모리(113)에 로드하고 메모리(113)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 저장할 수 있다.
전자 장치(110)의 통신 회로(115)는 외부 장치(예: 사용자의 단말 장치(120) 또는 외부 서버)와 통신 채널을 설립하고, 외부 장치와 다양한 데이터를 송수신할 수 있다. 다양한 실시예에 따르면, 통신 회로(115)는 셀룰러 통신 모듈을 포함하여 셀룰러 네트워크(예: 3G, LTE, 5G, Wibro 또는 Wimax)에 연결되도록 구성할 수 있다. 다양한 실시예에 따르면, 통신 회로(115)는 근거리 통신 모듈을 포함하여 근거리 통신(예를 들면, Wi-Fi, Bluetooth, Bluetooth Low Energy(BLE), UWB)을 이용해 외부 장치와 데이터 송수신을 할 수 있으나, 이에 제한되지 않는다.
전자 장치(110)의 데이터베이스(117)는 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 의미할 수 있다. 데이터베이스(117)는 식별 코드를 키(key)로 하고, 이에 대응하는 텍스트를 값(value)으로 하는 쌍(pair)의 집합을 저장할 수 있다. 즉, 데이터베이스(117)는 번역 대상을 지정하기 위한 식별 코드와 이에 대응하는 번역 대상 텍스트를 키-밸류 쌍으로서 데이터베이스에 저장할 수 있다. 본 문서에서는 데이터베이스(117)가 전자 장치(110)에 포함된 구성 요소로 설명하였으나, 또 다른 실시예에 의하면 데이터베이스(117)는 전자 장치(110)의 외부에 구현될 수도 있다.
도 3은 일 실시예에 따른 전자 장치(110)의 동작 흐름도(300)이다. 구체적으로, 도 3은 전자 장치(110)에서 다국어 웹사이트 콘텐츠를 생성하는 방법에 관한 도면이다.
동작 흐름도 300을 참조하면, 일 실시예에 따른 전자 장치(110)의 프로세서(111)는, 단계 301에서, 웹사이트의 소스 코드를 획득하고, 소스 코드로부터 번역 대상 텍스트를 추출할 수 있다. 전자 장치(110)는 사용자의 단말 장치(120)로부터 웹사이트에 대한 번역을 요청 받는 경우, 해당 웹사이트의 소스 코드를 획득할 수 있다. 이러한 소스 코드는 사용자의 번역 요청에 포함되어 함께 수신되거나, 별도의 획득 프로세스를 통해 수신될 수 있으며, 이에 대해 한정하지는 않는다. 소스 코드는, 예를 들어, HTML을 의미할 수 있다. 전자 장치(110)의 프로세서(111)는 해당 웹사이트에서 소스 코드를 획득할 수 있다. 예를 들어, 프로세서(111)는 HTML 에디터를 사용하여 제1 언어(예: 영어)로 작성된 HTML을 획득할 수 있다. 도 4는 본 개시의 일 실시예에 따른 웹사이트를 도시한 도면이다. 구체적으로, 도 4는 영어로 작성된 웹사이트(400)를 도시한 도면이다. 도 4를 참조하면, 전자 장치(110)는 사용자의 단말 장치(120)로부터 영어로 작성된 웹사이트(400)에 대한 한국어로의 번역 요청을 수신할 수 있다. 전자 장치(110)는 상기 번역 요청에 응답하여, 웹사이트(400)에 대한 소스 코드를 획득할 수 있다. 도 5a는 웹사이트(400)의 소스 코드를 도시한 도면이다. 전자 장치(110)는 웹사이트(400)로부터 소스 코드(510)를 획득할 수 있다. 소스 코드(510)는 HTML일 수 있다.
또 다른 실시예에 따르면, 프로세서(111)는 사용자의 단말 장치(120)로부터 소스 코드를 포함하는 템플릿을 수신할 수도 있다. 예를 들어, 사용자는 단말 장치(120)를 통해 번역을 희망하는 웹사이트에 포함한 콘텐츠들을 선택한 템플릿(template)에 입력하고, 콘텐츠들을 입력한 템플릿을 전자 장치(110)로 전송할 수 있다. 이 경우, 전자 장치(110)의 프로세서(111)는 수신한 템플릿으로부터 소스 코드를 추출할 수 있다. 수신한 템플릿에서 소스 코드를 추출하는 방법은 후술하기로 한다.
일 실시예에 따른 프로세서는 소스 코드로부터 번역 대상 텍스트를 추출할 수 있다. 소스 코드에서 번역 대상 텍스트를 추출하는 구체적인 방법은 아래와 같다.
프로세서(111)는 소스 코드에 포함된 복수의 태그를 확인(식별)할 수 있다. 예를 들어, 프로세서(111)는 부등호 기호(<, >)를 확인함으로써, 소스 코드에 포함된 복수의 태그를 확인할 수 있다. 구체적으로, 프로세서(111)는 여는 태그 및 닫는 태그 사이에 텍스트를 포함하는 복수의 태그를 확인할 수 있다.
도 5a를 이용하여 설명하면, 전자 장치(110)의 프로세서(111)는 소스 코드(510)에 포함된 복수의 태그로서, <h1> 태그(511), <br> 태그(512), <em> 태그(513). <br> 태그(514), <p> 태그(515), <sup> 태그(516), <br> 태그(517), <sup> 태그(518)를 식별할 수 있다. 여기서, 전자 장치(110)는 소스 코드(510)에 포함된 부등호 기호(<, >)에 기초하여 태그를 식별할 수 있다. <h1> 태그(511)의 경우, 여는 태그 <h1> 및 닫는 태그 </h1>을 포함할 수 있다. 참고로, <h1> 태그(511)는 해당 구획(section)의 제목을 나타내기 위한 태그로서, 여는 태그 <h1> 및 닫는 태그 </h1> 사이에 포함된 텍스트인 'When creating a website, the "easiest" way to build a multilingual website'라는 텍스트를 해당 구획의 제목으로 나타내기 위한 태그이다.
구체적으로, 전자 장치(110)의 프로세서(111)는 태그에 사용되는 부등호 기호를 이용하여 복수의 태그를 식별할 수 있다. 예를 들어, ">" 기호와 "<"기호 사이의 텍스트를 번역 대상 텍스트로서 추출하기 위하여, 해당 부등호 기호 사이에 텍스트가 존재하는지 여부에 따라 복수의 태그를 식별할 수 있다. 예를 들어, 소스 코드(510)의 <h1> 태그(511)와 그 다음 태그인 <br> 태그(512)에 있어서, <h1> 태그(511)에 포함된 ">" 기호와, <br> 태그(512)에 포함된 "<" 기호 사이에 텍스트(즉, When creating a website라는 텍스트)가 존재하므로, 프로세서(111)는 <h1> 태그(511)를 식별할 수 있다. 한편, <div> 태그(501)에 포함된 ">" 기호와, <section> 태그(503)에 포함된 "<" 기호 사이에는 텍스트가 포함되지 않기 때문에, 전자 장치(110)의 프로세서(111)는 <div> 태그(501)를 식별하지 않을 수 있다. 상술한 방법을 이용하여, 프로세서(111)는 소스 코드(510)에 포함된 복수의 태그로서, <h1> 태그(511), <br> 태그(512), <em> 태그(513). <br> 태그(514), <p> 태그(515), <sup> 태그(516), <br> 태그(517) 및 <sup> 태그(518)를 식별할 수 있다.
또 다른 실시예에 따르면, 프로세서(111)는 웹사이트의 레이아웃을 결정하는 태그인 <div> 태그(501) 및 특정 영역을 결정하는 태그인 <section> 태그(503) 등에 대해서는 텍스트와 무관한 태그이므로 식별하지 않을 수도 있다. 이 외에도, 프로세서(111)는 일부 태그에 대해서는 식별할 필요가 없는 것으로 미리 정해둘 수 있다.
프로세서(111)는 복수의 태그 중 디자인적 요소와 관련된 적어도 하나의 제1 태그 및 텍스트와 관련된 적어도 하나의 제2 태그를 식별할 수 있다. 디자인적 요소와 관련된 적어도 하나의 제1 태그는 웹사이트와 관련된 텍스트에 대하여 디자인적인 효과(예를 들어, 줄 바꾸기, 기울임 표시)를 주기 위한 태그이고, 텍스트를 서로 다른 문장으로 분할하기 위한 태그가 아니다. 만일, 적어도 하나의 제1 태그를 반영하여, 복수의 문장으로 분할된 번역 대상 텍스트를 추출하는 경우, 번역의 완성도가 낮아질 수 있다. 즉, 하나의 문장으로 이해되는 텍스트에 대하여, 복수의 문장으로 구분하여 번역하는 경우에는, 해당 텍스트의 진정한 의미가 퇴색되고 오 번역이 발생할 가능성이 높아지게 된다. 하지만, 디자인적 요소와 관련된 적어도 하나의 제1 태그를 일괄적으로 제거해버리면, 번역된 텍스트에 대하여 디자인적인 효과를 부여할 수 없다는 문제가 발생할 수 있다.
따라서, 전자 장치(110)의 프로세서(111)는, 적어도 하나의 제1 태그를 일시적으로 무력화한 상태에서, 번역 대상 텍스트를 추출하고, 추출한 번역 대상 텍스트에서 다시 적어도 하나의 제1 태그를 복원하는 것이 바람직하다. 이를 위하여, 프로세서(111)는 소스 코드에서 식별한 복수의 태그 중 디자인적인 요소와 관련된 적어도 하나의 제1 태그 및 텍스트와 관련된 적어도 하나의 제2 태그를 식별(구분)할 수 있다. 제1 태그에 해당하는 태그의 종류 및 제2 태그에 해당하는 태그의 종류는 미리 데이터베이스(117)에 저장되어 있을 수 있다. 즉, 프로세서(111)는 미리 정해진 규칙에 따라서, 복수의 태그 중 제1 태그 및 제2 태그를 구분할 수 있다.
도 5a를 이용하여 설명하자면, 프로세서(111)는 복수의 태그로서 식별한 <h1> 태그(511), <br> 태그(512), <em> 태그(513). <br> 태그(514), <p> 태그(515), <sup> 태그(516), <br> 태그(517), <sup> 태그(518) 중에서, 디자인적인 요소와 관련된 적어도 하나의 제1 태그 및 텍스트와 관련된 적어도 하나의 제2 태그를 식별할 수 있다. 프로세서(111)는, 복수의 태그 중에서, 디자인적인 요소와 관련된 적어도 하나의 제1 태그로서, <br> 태그(512), <em> 태그(513), <br> 태그(514), <sup> 태그(516), <br> 태그(517) 및 <sup> 태그(518)를 식별할 수 있다. 프로세서(111)는 복수의 태그 중에서, 텍스트와 관련된 적어도 하나의 제2 태그로서, <h1> 태그(511) 및 <p> 태그(515)를 식별할 수 있다. 제1 및 제2 태그의 종류는 미리 정해져서 데이터베이스(117)에 저장될 수 있다.
프로세서(111)는 식별한 적어도 하나의 제1 태그를 미리 정해진 문자열로 치환할 수 있다. 미리 정해진 문자열은 적어도 하나의 제1 태그를 무력화시키기 위하여 일시적으로 사용되는 문자열일 수 있다. 즉, 프로세서(111)는 적어도 하나의 제1 태그를 일상 언어에서 사용할 확률이 극히 낮으며, 번역 대상 텍스트에 절대 포함되지 않을 수 있는 문자열로 치환할 수 있다. 예를 들어, 적어도 하나의 제1 태그에 포함되는 부등호 기호(<, >)를 "[[" 및 "]]"라는 문자열로 치환할 수 있다. 예를 들어, 도 5a의 <br> 태그(512)를 [[br]]로 치환할 수 있다. 예를 들어, 도 5a의 <em> 태그(513)를 [[em]]과 [[/em]]으로 치환할 수 있다. 적어도 하나의 제1 태그를 상술한 것과 같은 의미 없는 문자열로 치환하는 경우, 번역 대상 텍스트를 추출하기에도 용이하고, 번역 대상 텍스트 추출 후 다시 적어도 하나의 제1 태그로 복원하기도 용이하다. 즉, 해당 문자열은 일반적으로 사용 확률이 극히 낮은 문자열이기 때문에 확인하기가 용이하며, 이에 따라 해당 문자열을 번역 대상 텍스트에서 제외시키기 용이하며, 해당 문자열을 다시 적어도 하나의 제1 태그로 복원하기도 용이하다. 상술한 방법을 이용하여, 적어도 하나의 제1 태그 모두를 미리 정해진 문자열로 치환할 수 있다. 적어도 하나의 제1 태그가 미리 정해진 문자열로 치환하였으므로, 이후 단계에서는, 프로세서(111)가 치환된 문자열을 기준으로 앞 뒤의 텍스트를 서로 다른 문장으로 인식하는 것이 아니라, 하나의 문장으로 인식할 수 있다.
도 5b를 이용하여 구체적으로 설명하겠다. 도 5b는 일 실시예에 따른 웹사이트의 소스 코드를 도시한 도면으로서, 구체적으로는, 적어도 하나의 제1 태그를 미리 정해진 문자열로 치환한 소스 코드를 도시한 도면이다. 도 5a에서 적어도 하나의 제1 태그로 식별한 <br> 태그(512), <em> 태그(513), <br> 태그(514), <sup> 태그(516), <br> 태그(517) 및 <sup> 태그(518) 각각에 대하여, 프로세서(111)는 미리 정해진 문자열로 치환할 수 있다. 즉, 프로세서(111)는 도 5a의 <br> 태그(512)에 대해서는, 도 5b와 같이 [[br]]이라는 문자열(522)로 치환할 수 있고, 도 5a의 <em> 태그(513)에 대해서는, 도 5b와 같이 [[em]]이라는 문자열(523)으로 치환할 수 있다. 마찬가지로, 프로세서(111)는 도 5a의 <br> 태그(514), <sup> 태그(516), <br> 태그(517) 및 <sup> 태그(518) 각각에 대해서는, 도 5b와 같이, [[br]]이라는 문자열(524), [[sup]]라는 문자열(526), [[br]]이라는 문자열(527) 및 [[sup]]라는 문자열(528)로 각각 치환할 수 있다. 상술한 치환된 문자열은 태그가 아닌 일반 텍스트와 같이 인식될 수 있다. 상술한 과정으로 인해, 텍스트와 관련된 제2 태그인 <h1> 태그(511)에 포함된 텍스트(즉, 여는 태그 <h1>와 닫는 태그</h1> 사이에 포함된 텍스트)가 복수의 문장으로 구분되어 추출되지 않고 하나의 연결된 문장으로 인식되어 추출될 수 있다.
프로세서(111)는 적어도 하나의 제2 태그와 관련된 텍스트에 번역용 제1 식별 코드를 삽입할 수 있다. 적어도 하나의 제1 태그가 미리 정해진 문자열로 치환되었기 때문에, 프로세서(111)는 소스 코드에서 적어도 하나의 제2 태그와 관련된 텍스트를 쉽게 식별할 수 있고, 해당 텍스트에 번역용 제1 식별 코드를 삽입할 수 있다. 제1 식별 코드는 해당하는 텍스트를 번역 대상으로 지정하기 위하여 사용되는 코드일 수 있다. 구체적으로, 프로세서(111)는 적어도 하나의 제2 태그에 대응하는 텍스트 각각에 대하여 서로 다른 숫자가 부여된 제1 식별 코드를 각각 삽입할 수 있다. 제1 식별 코드는, 예를 들어, (#C0001), (#C0002)와 같은 코드일 수 있다. 즉, 프로세서(111)는 가장 처음 나오는 텍스트에는 (#C0001)이라는 제1 식별 코드를 부여하고, 그 다음으로 나오는 텍스트에는 (#C0002)라는 제1 식별 코드를 부여하며, 텍스트의 순서대로 (#C0003), (#C0004) 등의 제1 식별 코드를 부여할 수 있다. 즉, 프로세서(111)는 텍스트의 순서대로 서로 다른 숫자가 부여된 제1 식별 코드를 부여할 수 있다.
프로세서(111)는 소스 코드로부터 번역 대상 텍스트를 추출할 수 있다. 프로세서(111)는 제1 식별 코드 및 제2 식별 코드에 기초하여, 소스 코드로부터 번역 대상 텍스트를 추출할 수 있다. 즉, 번역 대상 텍스트는 제1 식별 코드가 삽입된 텍스트 및 제2 식별 코드가 삽입된 대체 텍스트를 포함할 수 있다. 각각의 식별 코드 별로 각각의 문장으로 구분될 수 있다.
프로세서(111)는 치환된 문자열을 다시 적어도 하나의 제1 태그로 복원할 수 있다. 예를 들어, 프로세서(111)는 미리 정해진 문자열인 "[[" 및 "]]"에 대하여, 다시 적어도 하나의 제1 태그와 같이 부등호 기호(<, >)로 복원할 수 있다. 예를 들어, 프로세서(111)는 [[br]]이라는 문자열에 대하여, <br> 태그로 다시 복원할 수 있다.
프로세서(111)는, 소스 코드에 포함된 복수의 속성(attribute)을 확인할 수 있다. 프로세서(111)는 복수의 속성 중 대체 텍스트와 관련된 적어도 하나의 속성을 확인할 수 있다. 프로세서(111)는 적어도 하나의 속성과 관련된 대체 텍스트에 번역용 제2 식별 코드를 삽입할 수 있다. 구체적으로, 프로세서(111)는 적어도 하나의 속성과 관련된 대체 텍스트 각각에 대하여, 서로 다른 숫자가 부여된 제2 식별 코드를 각각 삽입할 수 있다. 제2 식별 코드는 해당하는 대체 텍스트를 번역 대상으로 지정하기 위하여 사용되는 코드일 수 있다. 제2 식별 코드는, 예를 들어, (#A0001), (#A0002), (#A0003) ?? 일 수 있다. 대체 텍스트와 관련된 속성은, 이미지를 대체하는 정보를 표시하기 위한 속성(alt), 이미지에 관한 내용을 툴 팁 형태로 정보를 표시하기 위한 속성(title), 입력 창에 디폴트 값으로 표시하기 위한 속성(placeholder) 및 객체에 레이블을 정의하기 위한 속성(aria-label)을 포함할 수 있다. 이 외에도 다양한 대체 텍스트와 관련된 속성이 포함될 수 있다. 즉, 웹 접근성을 높이기 위해 대체 텍스트 용도로 사용되는 적어도 하나의 속성에 대해서도, 프로세서(111)는 관련된 대체 텍스트를 번역 대상으로 지정하기 위하여 제2 식별 코드를 삽입할 수 있다.
도 5c를 이용하여 구체적으로 설명하기로 한다. 도 5c는 본 개시의 일 실시예에 따른 웹사이트의 소스 코드를 도시한 도면이다. 도 5c를 참조하면, 제2 태그인 <h1> 태그(511)에 포함된 텍스트(즉, 여는 태그 <h1> 및 닫는 태그 </h1> 사이의 텍스트)에 대하여, 프로세서(111)는 해당 텍스트의 앞부분에 제1 식별 코드인 (#C0001)(531)을 삽입할 수 있다. 또한, 프로세서(111)는 제2 태그인 <p> 태그(515)에 포함된 텍스트(즉, 여는 태그 <p> 및 닫는 태그 </p> 사이의 텍스트)에 대하여, 프로세서(111)는 해당 텍스트의 앞부분에 제1 식별 코드인 (#C0002)(533)를 삽입할 수 있다. 이 때, <h1> 태그(511)와 관련된 텍스트에 부여되는 제1 식별 코드(즉, (C#0001)(531))와 <p> 태그(515)와 관련된 텍스트에 부여되는 제1 식별 코드(즉, (C#0002)(533))는 서로 다른 숫자가 부여될 수 있다. 또한, 적어도 하나의 속성(alt)과 관련된 대체 텍스트인 "Fave logo"에 대해서도, 해당 대체 텍스트 앞에 번역용 제2 식별 코드인 (#A0001)(535)을 삽입할 수 있다. 프로세서(111)는 제1 식별 코드 및 제2 식별 코드에 기초하여 소스 코드로부터 번역 대상 텍스트를 추출할 수 있다.
또한, 프로세서(111)는 번역 대상 텍스트를 추출한 이후, 상기 치환된 문자열을 다시 적어도 하나의 제1 태그로 복원할 수 있다. 구체적으로, 프로세서(111)는, 도 5b와 같이 치환된 문자열인 [[br]]이라는 문자열(522), [[em]]이라는 문자열(523), [[br]]이라는 문자열(524), [[sup]]라는 문자열(526), [[br]]이라는 문자열(527) 및 [[sup]]라는 문자열(528) 각각에 대하여, 도 5c와 같이 <br> 태그(512), <em> 태그(513), <br> 태그(514), <sup> 태그(516), <br> 태그(517) 및 <sup> 태그(518)로 복원할 수 있다. 즉, 번역문에서도 디자인적 효과가 발생할 수 있도록, 다시 적어도 하나의 제1 태그를 복원할 수 있다.
상술한 방법과 같이, 프로세서(111)는 소스 코드에 포함된 텍스트 및/또는 대체 텍스트에 식별 코드를 삽입함으로써, 소스 코드로부터 번역 대상 텍스트를 용이하게 획득(추출)할 수 있다.
또한, 프로세서(111)는 번역 대상 텍스트를 검증하기 위하여, 번역 대상 텍스트를 포함하는 번역 코드 생성 화면을 사용자의 단말 장치로 전송할 수 있다. 즉, 프로세서(111)는 적어도 하나의 제1 태그가 복원된 번역 대상 텍스트를 번역 코드 생성 화면을 사용자의 단말 장치로 전송할 수 있다. 도 6은 일 실시예에 따른 번역 코드 생성 화면(600)을 도시한 도면이다. 도 6을 참조하면, 사용자의 단말 장치(120)는 전자 장치(110)로부터 수신한 번역 코드 생성 화면(600)을 생성할 수 있다. 번역 코드 생성 화면(600)은 번역 대상 텍스트를 표시할 수 있다. 사용자는 번역 코드 생성 화면(600)을 통해 번역 대상 텍스트가 정확히 추출되었는지 확인할 수 있다.
다시 도 3으로 돌아와서, 일 실시예에 따른 프로세서(111)는, 단계 303에서, 프로세서(111)는 사용자의 단말 장치(120)로부터 복수의 국가 중 사용자가 선택한 하나 이상의 국가에 관한 정보를 수신할 수 있다. 사용자는 단말 장치(120)를 통해 복수의 국가 중 웹사이트 콘텐츠를 서비스할 하나 이상의 국가를 선택할 수 있다. 예를 들어, 사용자는 단말 장치(120)를 통해 웹사이트 콘텐츠를 서비스할 국가로서 미국만을 선택하거나, 미국 및 한국을 함께 선택할 수 있다. 즉, 사용자는 하나의 국가만 선택하는 것이 아니라 둘 이상의 국가를 선택할 수도 있다. 만일, 특정 국가에서 복수의 언어를 사용하는 경우, 사용자는 사용하는 언어까지 고려하여 국가를 선택할 수 있다. 예를 들어, 캐나다에서 영어와 프랑스어를 사용하는 경우, 복수의 국가에는 캐나다[EN] 및 캐나다[FR]을 포함될 수 있다. 상기의 경우, 사용자는 해당 웹사이트 콘텐츠를 서비스할 국가를 캐나다[EN]으로 선택할 수도 있고, 캐나다[FR]로 선택할 수도 있다. 한편, 이러한 국가의 선택은 각 국가에 대응하는 체크 박스를 사용자가 선택하는 방식으로 이루어질 수 있으나, 사용자가 국가를 선택하는 방식에 대해서 한정하지는 않는다.
일 실시예에 따른 프로세서(111)는 사용자가 선택한 하나 이상의 국가에 대응하는 언어에 관한 정보를 수신한 이후, 선택적으로, 사용자의 단말 장치(120)로부터 웹사이트 콘텐츠를 사용할 타겟 유저 정보를 수신할 수 있다. 타겟 유저 정보는, 예를 들어, 웹사이트 콘텐츠를 사용할 연령대, 성별, 직업, 학력을 포함할 수 있다. 타겟 유저 정보를 이용하는 경우, 타겟 유저에게 더욱 최적화된 번역 결과를 제공할 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 305에서, 번역 대상 텍스트로부터 문체 데이터를 획득할 수 있다. 구체적으로, 프로세서(111)는 생성형 인공 지능 모델인 대규모 언어 모델(Large Language model)을 이용하여, 번역 대상 텍스트로부터 문체 데이터를 획득할 수 있다. 문체 데이터는 번역 대상 텍스트를 번역하는 과정에 있어서 프롬프트 명령어(또는 프롬프트)를 생성하는데 사용될 수 있다. 구체적으로, 최적의 다국어 웹사이트 콘텐츠를 생성하기 위한 프롬프트를 생성함에 있어서, 상기 문체 데이터가 사용될 수 있다. 프로세서(111)는 대규모 언어 모델에 번역 대상 텍스트와 함께, 번역 대상 텍스트의 문체를 정의하기 위한 프롬프트를 입력할 수 있다. 번역 대상 텍스트의 문체를 정의하기 위한 프롬프트는, 예를 들어, "아래 텍스트의 문체를 정의해줘"와 같은 문장일 수 있다. 문체 데이터는, 예를 들어, 명령조 문체, MZ 세대 문체, 전문가 문체 및 일반인 문체 중 적어도 하나를 포함할 수 있다. 문체 데이터 및 문체 데이터를 정의하기 위한 프롬프트는 상술한 예시에 한정되는 것은 아니다.
또한, 같은 언어를 사용하는 복수의 국가에 있어서, 복수의 국가 각각이 사용하는 문체가 상이할 수 있다. 프로세서(111)는 번역 대상 텍스트로부터, 사용자가 선택한 하나 이상의 국가 및 이에 대응하는 언어에 대응하는 문체 데이터를 획득할 수 있다. 예를 들어, 사용자가 미국[EN]을 선택한 경우, 프로세서(111)는 번역 대상 텍스트로부터 미국에서 사용하는 영어에 대응하는 문체 데이터를 획득할 수 있다. 예를 들어, 사용자가 영국[EN]을 선택한 경우, 프로세서(111)는 번역 대상 텍스트로부터 영국에서 사용하는 영어에 대응하는 문체 데이터를 획득할 수 있다. 이를 통해, 프로세서(111)는 같은 언어라도 사용하는 국가에 따라 상이한 문체 데이터를 획득할 수 있고, 이를 통해, 해당 국가에서 사용하는 언어의 문체를 이용하여 더 정확한 번역이 수행될 수 있다.
본 개시에 따른 대규모 언어 모델이란, 대규모 데이터 세트에서 얻은 정보를 기반으로 텍스트와 다양한 콘텐츠를 인식하고, 요약, 번역, 예측 생성이 가능한 딥러닝 알고리즘을 의미할 수 있다. 구체적으로, 대규모 언어 모델이란, 빅데이터 단일어 말뭉치를 사용하여 획득한 규모화된 언어 모델을 의미할 수 있다. 대규모 언어 모델의 예시로는 ChatGPT, LLaMA, HyperClova가 있다. 전자 장치(110)는 대규모 언어 모델을 데이터베이스(117)에 저장할 수도 있고, 외부 서버(미도시)에 저장된 대규모 언어 모델을 이용할 수도 있다.
본 개시에 따른 프롬프트(또는 프롬프트 명령어)란, 대규모 언어 모델에서 최적의 응답을 얻기 위하여 대규모 언어 모델에 제공하는 입력 또는 쿼리를 의미할 수 있다. 즉, 사용자는 대규모 언어 모델에게 보내는 질문이나 요청에 대하여 원하는 응답을 유도(prompt)하기 위하여, 원하는 질문을 입력하기 전 프롬프트를 입력할 수 있다. 프롬프트는, 자연어 질문, 코드 스니펫 또는 명령어일 수 있다. 대규모 언어 모델을 이용한 분야가 발달해 감에 따라, 원하는 응답을 얻기 위해서는 최적의 프롬프트를 입력하는 것이 중요해지고 있다. 따라서, 대규모 언어 모델에서 원하는 결과를 얻기 위해 텍스트 프롬프트를 만들고 최적화하는 프롬프트 엔지니어링의 중요성이 대두되고 있다.
웹사이트에 포함된 번역 대상 텍스트를 단순히 대규모 언어 모델에 입력하여 번역하는 경우, 원하는 컨텐츠와는 어울리지 않는 번역 결과물이 생성될 수 있다. 단순히 원하는 언어로 번역하는 것을 넘어서, 번역 대상 텍스트의 문체를 반영하여 번역하는 경우, 더욱 최적화된 번역 결과를 획득할 수 있을 것이다. 이를 위하여, 프로세서(111)는 번역 대상 텍스트의 문체를 정의하기 위한 프롬프트를 사용하고, 번역 대상 텍스트를 상기 대규모 언어 모델에 입력할 수 있다. 상기의 경우, 대규모 언어 모델은 번역 대상 텍스트의 문체 데이터를 출력할 수 있고, 프로세서(111)는 출력된 번역 대상 텍스트의 문체 데이터를 획득할 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 307에서, 번역 대상 텍스트로부터 제품 또는 서비스 데이터를 획득할 수 있다. 구체적으로, 프로세서(111)는 대규모 언어 모델을 이용하여, 번역 대상 텍스트로부터 제품 또는 서비스 데이터를 획득할 수 있다. 제품 또는 서비스 데이터는, 상술한 문체 데이터와 함께, 번역 대상 텍스트를 번역하는 과정에 있어서 프롬프트 명령어(또는 프롬프트)를 생성하는데 사용될 수 있다. 구체적으로, 최적의 다국어 웹사이트 콘텐츠를 생성하기 위한 프롬프트를 생성함에 있어서, 상기 제품 또는 서비스 데이터가 사용될 수 있다. 프로세서(111)는 대규모 언어 모델에 번역 대상 텍스트와 함께, 번역 대상 텍스트의 제품 또는 서비스를 정의하기 위한 프롬프트를 입력할 수 있다. 번역 대상 텍스트의 제품 또는 서비스를 정의하기 위한 프롬프트는, 예를 들어, "아래 텍스트의 제품/서비스를 정의해줘"와 같은 문장일 수 있다. 제품 또는 서비스 데이터는, 예를 들어, 학원 데이터, 온라인 코딩 서비스 데이터, 법률 서비스 데이터, 번역 서비스 데이터, 의료 서비스 데이터, 전자 기기 데이터, 명품 데이터 및 음식 데이터 중 적어도 하나를 포함할 수 있다. 제품 또는 서비스 데이터 및 제품 또는 서비스 데이터를 정의하기 위한 프롬프트는 상술한 예시에 한정되는 것은 아니다.
일 실시예에 따른 프로세서(111)는, 단계 309에서, 번역 대상 텍스트로부터 세일즈 대상 데이터를 획득할 수 있다. 구체적으로, 프로세서(111)는 대규모 언어 모델을 이용하여, 번역 대상 텍스트로부터 세일즈 대상 데이터를 획득할 수 있다. 세일즈 대상 데이터는, 상술한 문체 데이터 및 제품 또는 서비스 데이터와 함께, 번역 대상 텍스트를 번역하는 과정에 있어서 프롬프트 명령어(또는 프롬프트)를 생성하는데 사용될 수 있다. 구체적으로, 최적의 다국어 웹사이트 콘텐츠를 생성하기 위한 프롬프트를 생성함에 있어서, 상기 세일즈 대상 데이터가 사용될 수 있다. 프로세서(111)는 대규모 언어 모델에 번역 대상 텍스트와 함께, 번역 대상 텍스트의 세일즈 대상을 정의하기 위한 프롬프트를 입력할 수 있다. 번역 대상 텍스트의 세일즈 대상을 정의하기 위한 프롬프트는, 예를 들어, "아래 텍스트의 세일즈 대상을 정의해줘"와 같은 문장일 수 있다. 세일즈 대상 데이터는, 예를 들어, 특정 연령대의 남자 또는 여자 데이터, 중소기업 교육 담당자 데이터, 대기업 사원 데이터, 교통 사고를 당한 일반인 데이터, 학생 데이터 및 전업 주부 데이터 중 적어도 하나를 포함할 수 있다. 세일즈 데이터 및 세일즈 데이터를 정의하기 위한 프롬프트는 상술한 예시에 한정되는 것은 아니다.
일 실시예에 따르면, 단계 305, 307, 309에서 문체 데이터, 제품 또는 서비스 데이터, 및 세일즈 대상 데이터를 모두 획득하는 것이 아니라, 문체 데이터, 제품 또는 서비스 데이터, 및 세일즈 대상 데이터 중 적어도 하나를 획득할 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 311에서, 문체 데이터, 제품 또는 서비스 데이터, 및 세일즈 대상 데이터 중 적어도 하나와 상기 선택한 언어에 기초하여 프롬프트를 생성할 수 있다. 상기 프롬프트는 대규모 언어 모델로부터 원하는 언어로 번역된 최적의 번역 결과를 출력하기 위한 텍스트 입력일 수 있다. 예를 들어, 상기 프롬프트는 "아래 텍스트는 전문가 문체로서, 법률 서비스를 대기업 사원에게 제공하는 웹사이트에 들어갈 슬로건이야. 아래 텍스트를 한국어로 번역해줘"일 수 있다. 즉, 프로세서(111)는 사용자가 선택한 언어와, 대규모 언어 모델로부터 획득한 문체 데이터, 제품 또는 서비스 데이터 및 세일즈 대상 데이터에 기초하여, 최적의 프롬프트를 생성할 수 있다. 또 다른 예에서, 상기 프롬프트는 "아래 텍스트는 일반인 문체로서, 번역 서비스를 중소기업 교육 담당자에게 제공하는 웹사이트에 들어갈 안내 문구야. 아래 텍스트를 한국어로 번역해줘"일 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 313에서, 상기 생성한 프롬프트 및 번역 대상 텍스트를 대규모 언어 모델에 입력할 수 있다. 예를 들어, 프로세서(111)는 "아래 텍스트는 일반인 문체로서, 번역 서비스를 중소기업 교육 담당자에게 제공하는 웹사이트에 들어갈 안내 문구야. 아래 텍스트를 한국어로 번역해줘"와 같은 프롬프트를 대규모 언어 모델에 입력하고, 번역 대상 텍스트를 프롬프트와 함께 입력할 수 있다. 상기의 경우, 입력된 프롬프트를 고려하여, 번역 대상 텍스트에 대한 번역 결과를 출력할 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 315에서, 대규모 언어 모델로부터 출력되고, 상기 선택한 국가에 대응하는 언어로 번역된 텍스트를 획득할 수 있다. 예를 들어, 사용자가 한국을 선택한 경우, 프로세서(111)는 번역 대상 텍스트가 한국에 대응하는 언어인 한국어로 번역된 텍스트를 대규모 언어 모델로부터 획득할 수 있다. 상술한 한국어로 번역된 텍스트는 일반인 문체로 작성되고, 번역 서비스를 중소기업 교육 담당자에게 제공하기에 알맞은 문맥(context)으로 번역된 결과물일 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 317에서, 언어로 번역된 텍스트를 소스 코드에 반영할 수 있다. 도 7은 일 실시예에 따른 웹사이트의 소스 코드를 도시한 도면이다. 도 8을 참고하면, 프로세서(111)는 원하는 언어로 번역된 적어도 하나의 문장을 소스 코드에 반영함으로써, 도 7의 소스 코드(700)를 획득할 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 319에서, 번역이 반영된 소스 코드를 이용하여 번역된 웹사이트를 생성할 수 있다. 도 8은 일 실시예에 따른 원하는 언어로 번역된 웹사이트를 도시한 도면이다. 도 8을 참조하면, 도 4의 영어로 작성된 웹사이트(400)가 사용자가 원하는 언어인 한글로 번역된 것을 확인할 수 있다. 나아가, 도 8의 웹사이트(800)는 도 4의 웹사이트(400)와 같이 디자인적 요소가 동일하게 반영되어 있음을 알 수 있다.
만일, 타겟 유저 정보를 사용자의 단말 장치(120)로부터 수신한 경우, 생성된 웹사이트 콘텐츠는, 번역이 반영된 소스 코드 및 사용자의 타겟 유저 정보에 기초하여 생성된 콘텐츠일 수 있다.
도 9는 본 개시의 일 실시예에 따른 전자 장치(110)의 동작 흐름도(900)이다. 구체적으로, 전자 장치(110)에서 소스 코드를 추출하는 실시예에 관한 흐름도이다.
동작 흐름도 900을 참조하면, 일 실시예에 따른 전자 장치(110)의 프로세서(111)는, 단계 910에서, 사용자의 단말 장치(120)로부터 복수의 국가 중 사용자가 선택한 국가에 관한 정보를 수신할 수 있다. 사용자는 단말 장치(120)를 통해, 웹사이트 콘텐츠를 제작하기에 편하고 익숙한 언어를 사용하는 국가를 선택할 수 있다. 사용자가 국가를 선택하지 않는 경우, 단말 장치(120)는 디폴트 값으로 설정된 국가에 관한 정보를 전자 장치(110)로 전송할 수 있다. 일 실시예에 따르면, 사용자의 단말 장치(120)는 복수의 국가의 목록을 포함하는 사용자 인터페이스를 표시할 수 있고, 사용자는 이를 통해 원하는 국가를 선택할 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 920에서, 사용자의 단말 장치(120)로 선택한 국가와 관련된 복수의 템플릿을 제공할 수 있다. 전자 장치(110)는 데이터베이스(117)에 웹사이트 콘텐츠를 생성하기 위한 다양한 템플릿들을 저장할 수 있다. 전자 장치(110)는 국가 별로 적합한 복수의 템플릿을 저장할 수 있다. 본 문서에 개시된 템플릿(template)이란 웹사이트 콘텐츠를 생성하기 위한 디자인 서식 틀일 수 있다. 템플릿은 정해진 영역에 복수의 콘텐츠를 입력할 수 있는 복수의 영역을 포함할 수 있다. 사용자는 단말 장치(120)를 통해 복수의 템플릿 중 웹사이트 콘텐츠를 제작하기 위한 하나의 템플릿을 선택할 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 930에서, 사용자의 단말 장치로부터 복수의 템플릿 중 선택된 템플릿 및 선택된 템플릿에 입력된 복수의 콘텐츠를 수신할 수 있다. 사용자는 선택된 템플릿에 복수의 콘텐츠를 입력할 수 있다. 복수의 콘텐츠는 웹사이트에 포함된 적어도 하나의 이미지 및 적어도 하나의 텍스트를 포함할 수 있다. 예를 들어, 도 4를 참조하면, 웹사이트(400)에는 적어도 하나의 텍스트와 적어도 하나의 이미지가 포함되어 있는 것을 확인할 수 있다. 사용자는 단말 장치(120)를 통해 웹사이트(400)에 포함된 적어도 하나의 이미지 및 적어도 하나의 텍스트를 선택된 템플릿의 원하는 영역에 각각 입력할 수 있다. 즉, 사용자가 HTML 웹사이트를 생성해본 적이 없는 초보자라고 하더라도 미리 만들어진 템플릿을 이용하여 복수의 콘텐츠를 손쉽게 입력하고 편집할 수 있다. 즉, 사용자는 본인에게 가장 적절한 템플릿을 선택할 수 있고, 선택된 템플릿에 원하는 이미지와 텍스트를 채워 넣음으로써, 번역을 하기 위한 웹사이트를 간단히 생성할 수 있다.
한편, 사용자가 HTML 웹사이트를 생성해본 적 있는 상급자인 경우 직접 만든 HTML 웹사이트를 그대로 이용할 수도 있다. 상기의 경우, 사용자는 단말 장치(120)를 통해 생성한 HTML 웹사이트를 그대로 전자 장치(110)로 전송할 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 940에서, 복수의 콘텐츠가 입력된 템플릿에 기초하여 웹사이트 콘텐츠 미리보기를 생성하고, 생성한 미리보기를 사용자의 단말 장치(120)로 전송할 수 있다. 즉, 프로세서(111)는 사용자가 템플릿을 이용하여 생성한 웹사이트 콘텐츠의 번역 전 화면을 미리보기로 생성하고, 이를 사용자의 단말 장치(120)로 전송할 수 있다. 따라서, 사용자는 번역 전 웹사이트 콘텐츠를 미리 확인할 수 있다.
일 실시예에 따른 프로세서(111)는, 단계 950에서, 복수의 콘텐츠가 입력된 템플릿으로부터 소스 코드를 추출할 수 있다. 프로세서(111)는 템플릿에 복수의 콘텐츠를 입력함으로써 생성된 웹사이트로부터 소스 코드를 추출할 수 있다.
이후, 도 3에 도시된 것과 동일한 절차를 통해, 소스 코드로부터 번역 대상 텍스트를 추출하고, 대규모 언어 모델을 이용하여 번역 대상 텍스트를 원하는 언어로 번역하며, 선택한 언어로 번역된 텍스트를 소스 코드에 반영함으로써 웹사이트 콘텐츠를 생성할 수 있다. 사용자가 템플릿을 이용하여 웹사이트를 생성한 경우, 프로세서(111)는 번역이 반영된 소스 코드 및 선택된 템플릿에 기초하여, 웹사이트 콘텐츠를 생성할 수 있다. 여기서, 템플릿은, 번역이 반영된 소스 코드에 포함된 텍스트의 길이에 따라 구성 및 길이가 변경될 수 있는 템플릿일 수 있다. 예를 들어, 번역된 텍스트의 길이가 번역 전 텍스트의 길이보다 길어진 경우, 템플릿에서 해당 텍스트가 표시되는 영역의 길이가, 번역된 텍스트의 길이에 맞춰서 길어질 수 있다.
일 실시예에 따른 프로세서(111)는 사용자가 선택한 국가에서 가장 많이 사용되는 폰트를 확인할 수 있다. 프로세서(111)는 확인한 폰트에 기초하여 웹사이트 콘텐츠를 생성할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.