바이너리 옵션 입문

마지막 업데이트: 2022년 1월 16일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
메탈릭 맵이 적용된 케이스 모델의 이미지

WebAssembly를 배우고 싶으십니까? 다음은 Linux Foundation에서 제공하는 무료 과정입니다.

웹어셈블리 (Wasm)은 웹에서 실행되는 클라이언트 앱을 사용하여 웹에서 거의 기본 속도로 여러 언어로 작성된 코드를 실행할 수 있는 방법을 제공하는 새로운 저수준 어셈블리 언어입니다.

웹 개발에 대한 새로운 구현이기 때문에, 리눅스 재단 비영리 edX 학습 플랫폼에서 Wasm의 기초를 다루는 무료 과정을 제공합니다.

WebAssembly 과정 개요

코스의 제목은 웹어셈블리 소개. WebAssembly의 강점과 한계, 그리고 블록체인, 서버리스, 에지/IoT 등의 잠재적 애플리케이션에 관심이 있는 웹, 클라우드, 블록체인 개발자, 설계자 및 CTO를 위해 설계되었습니다.

이 무료 과정에 등록하면 바이너리 옵션 입문 WebAssembly 런타임과 해당 기능에 대한 탄탄한 기초를 얻을 수 있습니다. 그 외에도 Wasm 런타임에 대해 잘 이해하게 될 것입니다.

이 과정은 다음을 제공합니다.

  • WebAssembly 런타임에 대한 올바른 이해
  • WebAssembly 바이너리 옵션 입문 실행 방법 under the hood
  • 브라우저 안팎에서 WebAssembly의 기능을 활용하는 방법
  • 다양한 산업 분야 등에서의 잠재적인 응용 프로그램 탐색

여기에는 비디오 자료, 서면 자료 및 Wasm이 실행되는 방식에 대해 가르치는 실습이 포함됩니다. 코스 계획에는 다음이 포함됩니다.

  • 인터랙티브 웹 – 간략한 역사
  • 웹어셈블리 소개
  • 실용적인 웹어셈블리
  • 브라우저 너머의 웹어셈블리
  • 웹어셈블리의 미래

과정 기간은 입문 수준에서 7주입니다. 자습형 과정으로 종료일까지 자료에 접근할 수 있어 시간의 유연성을 더 많이 확보할 수 있습니다.

콜린 에버하트Scott Logic의 기술 이사가 WebAssembly에서 이 과정을 설계했습니다.

WebAssembly가 중요한 이유

와즘은 네번째 official 웹의 언어와 그 기능은 웹 브라우저를 초월합니다. 매우 작고 휴대 가능하며 동시에 개발자에게 강력한 기능을 제공합니다.

Wasm은 웹 브라우저에서 실행되는 스택 기반 가상 머신을 위한 작고 이식 가능한 바이너리 명령어 형식입니다. 무엇보다 공통 하드웨어 기능을 활용하여 웹에서 거의 기본 속도로 여러 언어로 작성된 코드를 실행할 수 있는 기능을 제공합니다.

초기 응용 프로그램보다 더 많은 작업을 수행할 수 있는 Wasm의 기능은 이를 제쳐두고 있습니다. 그러나 양질의 교육 옵션의 바이너리 옵션 입문 가용성에 한계가 있었습니다. 따라서 Linux Foundation은 Wasm의 사용을 향상시키기 위한 새로운 과정을 무료로 제공합니다.

WebAssembly 과정 무료 등록

이 과정은 이 새로운 기술에 대해 배우고자 하는 모든 사람에게 무료입니다. 선택적으로 코스 바이너리 옵션 입문 완료 시 $149에 확인된 인증서를 받을 수도 있습니다.

Howpedia는 edX 및 Linux Foundation의 제휴 파트너입니다. 읽어주세요 제휴 정책 자세한 사항은.

게임 외 분야 라이선스 사용자 입문 가이드

커스텀 라이선스 계약을 체결한 언리얼 엔진 개발자이거나, 현재 커스텀 라이선스와 관련하여 언리얼 엔진을 평가 중이라면 이 문서를 확인해 보시기 바랍니다. 표준 EULA 에 따라 활동 중인 개발자이며 맞춤형 조항이나 에픽의 프리미엄 지원에 관심이 있으시다면 문의하세요 .

용어 정의

계속 읽기 전에 다음 용어를 숙지하세요.

언리얼 개발자 네트워크(UDN)

전용 커스텀 라이선스 지원을 제공하는 프라이빗 사이트입니다.

언리얼 엔진

인터랙티브 경험 제작에 쓰이는 통합 툴세트입니다.

UE4

언리얼 엔진 4의 준말입니다.

언리얼 에디터

언리얼 엔진으로 개발할 때 사용되는 인터페이스입니다.

에픽게임즈 런처

언리얼 엔진을 설치하고 사용자 프로젝트 및 다운로드 콘텐츠를 관리하는 플랫폼입니다.

데이터스미스

다양한 CAD, BIM 및 3D 콘텐츠 제작 툴로부터 데이터 임포트 기능을 바이너리 옵션 입문 제공하는 언리얼 엔진 기능입니다.

섹션 1: 빠른 시작

언리얼 라이선스로 최고의 경험을 시작하려면 다음 단계를 순서대로 따르세요. 단, 이미 완료한 부분은 건너뛰면 됩니다.

1. UDN 액세스 구성하기

언리얼 엔진 라이선스를 막 시작하셨다면, 우선 언리얼 개발자 네트워크에 가입해야 합니다. 기술 관리자에게 초기 액세스가 부여되며, 직원별로 추가 액세스 권한을 구성할 수 있는 능력이 주어집니다.

2. 언리얼 엔진 설치하기

다음 단계는 언리얼 엔진을 설치하는 것입니다. 대부분의 게임 외 분야 개발자에게는 여기 서 다운로드할 수 있는 에픽게임즈 런처를 통해 엔진을 설치하는 방법을 권장합니다. 소스 코드를 커스터마이징하고 싶거나, 독립형 인스톨러가 필요하거나, 분산 설치를 원하는 경우, 세부 가이드를 통해 자신에게 맞는 옵션을 더 자세히 파악할 수 있으며 다양한 설치를 함께 관리하는 방법에 대해서도 파악할 수 있습니다.

3. 데이터스미스 설치(선택사항)

데이터스미스는 언리얼 엔진 4.24 이후 버전에서 디폴트 기능으로 제공됩니다. 하지만, 그 이전 버전의 엔진을 사용하면서 데이터스미스에 관심이 있으시다면 에픽게임즈 런처의 언리얼 엔진 마켓플레이스를 통해 데이터스미스 플러그인을 설치해야 합니다. 3ds Max, SketchUp Pro, Revit과 같은 일부 포맷은 소스 바이너리 옵션 입문 애플리케이션에 익스포터 플러그인 도 설치해야 합니다.

4. 언리얼 엔진 실행하기

이제 언리얼 에디터를 실행 및 시작할 준비가 되었습니다. 런처를 통해 언리얼 엔진을 설치하셨다면, 로그인 후 언리얼 엔진 사이드바 텍스트를 클릭하고, 노란색 실행 버튼을 클릭합니다. 또는 라이브러리 탭에서 설치된 엔진 버전 중 하나를 선택하거나 특정 프로젝트로 직접 불러와서 에디터를 실행할 수도 있습니다. 언리얼 에디터의 커스터마이징 또는 오프라인 빌드의 실행 방법에 대해서는 세부 가이드를 참조하세요.

5. 프로젝트 생성하기

언리얼 에디터를 처음 실행하면 프로젝트 브라우저(Project Browser) 가 표시됩니다. 여기서 템플릿을 통해 새 프로젝트를 생성할 수 있습니다. 또는 런처의 학습 탭에서 완성된 샘플 프로젝트를 불러올 수도 있습니다.

6. 학습의 여정 시작하기

온라인 러닝 플랫폼 처럼 여러분의 학습 속도를 높여줄 수 있는 학습 자료가 많이 준비되어 있습니다. 또한 언리얼 엔진 문서 에서도 많은 도움을 얻을 수 있습니다.

7. 도움 요청하기

진행이 막혔거나 문제가 발생하였나요? 급한 질문이 있으신가요? 언리얼 개발자 네트워크 에 도움을 요청해 보세요. 다른 도움이 필요한 경우 저희 공개 커뮤니티에 참여하거나 저희에게 직접 문의해 주셔도 됩니다.

섹션 2: 계정 액세스 및 관리

귀사와 직원들이 언리얼 엔진 라이선스를 활용하기 위한 첫 걸음은 바로 모두의 액세스 권한을 구성하는 것입니다. 이번 섹션은 기술 관리자 여러분께 추천하는 내용을 담고 있으며, 퀵스타트 가이드보다 더 자세한 정보를 제공합니다.

귀하의 에픽 계정

언리얼 엔진과 관련된 기능 대부분과 서비스의 이용 권한은 에픽게임즈 계정에 달려 있으며, 이 계정은 귀하의 특정 이메일 주소와 연동됩니다. 현재 업무용 바이너리 옵션 입문 이메일과 연동한 에픽 계정을 이미 만드셨을 수도 있겠지만, 아직 만들지 않으셨다면 계정을 등록 해야 합니다.

귀사의 조직 내 모든 직원들 역시 각자 에픽 계정을 생성해야 언리얼 엔진의 모든 기능 및 서비스에 액세스할 수 있습니다. 로그인하려면 www.unrealengine.com 에서 개인 계정을 생성해야 합니다.

귀하와 팀의 UDN 액세스

에픽 직원들은 라이선스 등록 과정에서 신원이 확인된 주요 기술 연락 담당자에게 초기 UDN 액세스를 제공할 것입니다. 이 담당자에게는 관리 권한이 주어지며 다른 직원들에게 UDN 액세스를 추가 제공할 수 있게 됩니다.

액세스가 활성화된 후, "Welcome to the Unreal Developer Network (UDN) community!"로 시작하는 자동 바이너리 옵션 입문 발송 이메일이 도착했는지 확인합니다.

해당 이메일의 링크에서 귀하의 업무 이메일 주소로 생성한 에픽 계정을 입력하여 UDN에 로그인합니다. 만약 UDN 액세스가 없는 다른 에픽 계정으로 이미 에픽 생태계에 로그인되어 있는 상태라면, 신규 로그인에 문제가 생길 수 있습니다.

최초 로그인 후 온보딩 프로세스를 통해 프로필 및 알림 설정을 구성하면 액세스가 완료됩니다. 이제 지식 정보를 열람하거나, 다른 개발자들이 쓴 포스트를 검색하거나, 지원 요청을 직접 포스팅할 수 있습니다.

다른 팀원에게 UDN 액세스를 제공하려면, 관리 권한을 부여받은 주요 기술 연락 담당자가 UDN 관리자 가이드 에서 안내하는 단계를 따라야 합니다.

에픽 계정 보안

계정 보안을 위해 2단계 인증 활성화를 권장합니다. 그러려면 계정 설정(Account Settings) 에서 비밀번호 및 보안(Password & Security) 탭을 클릭합니다. 아래로 스크롤한 다음 이메일 인증 보내기(Send email verification) 링크를 클릭하여 귀하의 이메일 주소를 인증하고, 선호에 따라 인증 앱 사용(Enable Authenticator App) 또는 이메일 인증(Enable Email Authentication) 을 선택합니다.

섹션 3: 언리얼 엔진 설치

언리얼 엔진 라이선스의 핵심은 바로 라이선스에 포함된 소프트웨어 툴에 대한 액세스입니다. 이 섹션에서는 귀하에게 제공되는 옵션과 그 설치 방법에 대해 설명합니다.

언리얼 엔진 하드웨어 및 소프트웨어 사양

언리얼 엔진을 설치하기 전에 우선 귀하의 시스템에서 실행이 가능한지 확인합니다. 언리얼 엔진을 Windows, Mac, 및 Linux에서 사용할 때 권장되는 시스템 사양은 여기 를 참조하세요.

또한 안정적인 최신 버전 그래픽 드라이버를 사용하실 것을 권장합니다.

퍼포먼스 문제가 발생하는 경우 해당 문제를 파악할 때 VTune 이 매우 유용한 툴이 되어줄 수 있으나, 이 툴은 Intel CPU에서만 작동합니다. 가장 흔한 병목 현상은 디스크 I/O에서 발생하므로, RAID 0 디스크 배열과 추가 RAM을 확보하면 도움이 될 수 있습니다.

언리얼 엔진 준비하기

언리얼 엔진은 필요와 사용 사례에 따라 다양한 소스를 통해 활용할 수 있습니다. 다음 플로 다이어그램을 이용해 나에게 가장 적절한 방식을 찾고, 해당하는 기호의 문단을 따라 해 보세요.

UEP0.png

귀하의 직원들에게 엔진의 표준 기능을 수정할 수 있는 소스 코드 액세스가 필요합니까?

분산 설치 또는 언리얼 엔진 독립형 인스톨러(요청 시)

A: 바이너리 vs 소스 코드

귀하에게 익숙한 소프트웨어 대부분은 컴퓨터에서 읽을 수 있는 바이너리 파일로 저장된 실행 프로그램으로 제공됩니다. 언리얼 엔진은 가장 간단하게 시작할 수 있는 형태인 바이너리 포맷으로 사용할 수 있지만, 이 경우 각 버전이 있는 그대로만 제공된다는 한계점이 있습니다. 즉 플러그인을 사용하거나 에픽게임즈 측에서 업데이트된 버전을 제공하지 않는 한 엔진 수정이 불가능하다는 뜻입니다.

또 다른 접근 방식은 바로 소스 코드이며, 마찬가지로 언리얼 엔진에서 제공됩니다. 누구나 엔진 소스 코드를 다운로드하여 원하는 대로 변경, 업데이트, 개선한 다음 사용 가능한 빌드로 컴파일할 수 있습니다. 이 접근법을 통해 많은 부분을 제어할 수 있지만 굉장히 복잡한 시작 방식이며 프로그래밍 관련 경험도 필요합니다.

언리얼 엔진의 바이너리 빌드는 에픽게임즈 런처를 통해 누구나 액세스 및 다운로드할 수 있으며, 소스 코드 빌드는 GitHub를 통해 무료로 사용할 수 있습니다. 이런 옵션은 맞춤형 라이선스 사용자에게도 권장되지만, 필요하다면 다른 액세스 옵션을 사용할 수도 있습니다.

B: 에픽게임즈 런처를 통한 언리얼 엔진 4

에픽게임즈 런처를 통한 언리얼 엔진의 바이너리 빌드 액세스는 대부분의 게임 외 분야 고객들에게 권장하는 접근법입니다. 런처는 다운로드를 관리하고, 업데이트를 알리고, 플러그인과 기타 다운로드가능 콘텐츠의 설치를 처리합니다. 인터넷 액세스를 허용하지 않거나 직원들에게 폐쇄적인 소프트웨어 정책을 적용하는 조직에서는 단점이 발생할 수 있습니다.

아직 에픽게임즈 런처를 설치하지 않았다면 여기 서 다운로드할 수 있습니다. 게임 외 분야 고객 여러분은 이 다운로드 링크를 통해 일반적으로 런처에 표시되는 다양한 게임 관련 탐색 옵션을 숨김 설정할 수 있으며, 원한다면 숨김을 해제할 수도 있습니다. 에픽게임즈 런처는 www.unrealengine.com 의 다운로드 버튼으로도 사용 가능합니다.

에픽게임즈 런처를 설치했다면 에픽 계정 정보로 로그인할 수 있습니다. 언리얼 엔진 탭에서 오른쪽 노란색 버튼을 클릭해 언리얼 엔진 4 최신 버전을 설치하거나, 라이브러리 페이지로 가서 설치하고 싶은 버전을 추가로 선택할 수 있습니다.

이때 중요하게 알아두어야 할 것은, 언리얼 엔진 4는 1년 동안 새로운 버전을 여러 번 출시하며 주요 버전이 출시될 때마다 기존 버전이 업데이트되는 게 아니라 별도의 설치가 필요하다는 점입니다. 예를 들어, 언리얼 엔진 4.19를 설치한 상태에서 새로 출시된 언리얼 엔진 4.20을 설치한다면 이전의 4.19 버전 설치가 그대로 유지되며 신버전인 4.20을 별도로 설치하게 됩니다. 각 버전은 에픽게임즈 런처의 라이브러리 페이지에서 다양한 엔진 슬롯별로 표시되며, 추가 (+) 버튼을 클릭하여 새 슬롯을 추가할 수도 있습니다.

UEP1.png

주요 버전별로 소규모 핫픽스 업데이트가 이루어질 수 있습니다(이 경우 .2, .3 등 소수점 아래 숫자로 표시됩니다). 런처는 사용할 수 있는 핫픽스 알림을 표시할 것이며, 핫픽스 업데이트는 기존 설치에 직접 적용될 것입니다. 기존에 설치된 엔진 버전에는 항상 모든 핫픽스가 적용되어 사용 가능한 최신 버전을 설치할 것입니다.

언리얼 엔진을 설치할 때는 설치 경로를 선택할 수 있다는 점(언리얼 엔진 자체가 수 GB의 용량이므로 중요할 수 있음)과 다양한 설치 옵션이 주어진다는 걸 염두에 두는 게 좋습니다. 옵션 에서는 특정 플랫폼에서의 개발에 필요한 코드처럼 다운로드해야 할 요소를 설정할 수 있습니다.

UEP2.png

설치할 엔진 버전을 선택하여 설치를 완료했다면, 실행 을 클릭하여 언리얼 에디터를 엽니다.

에디터 활용에 대한 자세한 정보는 "섹션 4: 시작하기"를 참고하세요.

에픽게임즈 런처에서 커뮤니티, 학습, 마켓플레이스 페이지를 확인하여 추가 자료를 찾아 보는 것도 잊지 마세요.

C: GitHub를 통한 언리얼 엔진 4

언리얼 엔진 소스 코드를 수정할 수 있어야 한다면 기본적으로 GitHub를 통해 소스 코드를 다운로드하기를 권장합니다.

GitHub에 액세스하려면 에픽게임즈 계정과 GitHub 계정을 연동해야 합니다. 위 단계를 마치면 GitHub를 통해 언리얼 엔진 4 소스 코드에 액세스할 수 있습니다. 자세한 정보는 아래를 참고하세요.

D: 게임 외 분야 커스텀 라이선스 사용자용 기타 선택지를 통한 언리얼 엔진 4

위에서 설명한 옵션이 귀하의 사업적 필요를 충족하지 못한다면, 에픽에서 다른 액세스를 제공할 수 있습니다.

인터넷 연결이 되지 않은 컴퓨터에서 언리얼 엔진을 사용하는 사업의 경우, 언리얼 엔진의 독립형 버전으로 오프라인 솔루션을 제공할 수 있습니다.

소스 코드 액세스가 필요하지만 GitHub로는 필요를 충족하지 못하는 사업의 경우, 에픽의 언리얼 엔진 개발을 위한 Perforce 저장소 액세스를 제공할 수 있습니다.

이미 대체 액세스를 부여 받은 상태라면 시작 방법을 설명하는 추가 문서가 제공될 것입니다. 특수 액세스가 필요하다면 귀하의 에픽 비즈니스 디벨로퍼 매니저에게 문의하세요.

E: 언리얼 엔진 4 분산 설치

언리얼 엔진의 기존 설치 워크플로는 최종 사용자가 로컬 컴퓨터로 직접 다운로드하여 설치를 하거나 엔진을 컴파일하는 방식이지만, 저희는 이런 워크플로가 모든 조직에 적합하지는 않다는 점을 잘 알고 있습니다.

그래서 엔진을 컴퓨터 한 대에 다운로드한 다음, 그 설치를 다른 컴퓨터로 미러링하는 방식도 가능합니다. 이런 설치 프로세스에 대해 추가 정보를 제공하고자 여기 에 관련 내용을 문서화해 두었습니다. 이 문서는 원래 교육 기관용으로 작성되었으나, 설치 정보는 다른 조직에도 적용이 가능합니다.

데이터스미스 구성(선택사항)

언리얼 엔진 4.24 이후 버전에서는 데이터스미스가 엔진의 핵심 파트로 포함되어 영화, TV 및 라이브 이벤트, 건축, 엔지니어링 및 건설, 자동차, 제품 디자인 및 제조 카테고리로 새 프로젝트를 생성할 경우 즉시 사용할 수 있습니다(자세한 정보는 "첫 프로젝트 생성" 섹션을 참고하세요). 다른 카테고리의 프로젝트를 작업하거나 4.24 이전 버전의 바이너리 옵션 입문 엔진을 사용하면서 데이터스미스를 사용하려는 경우, 편집 > 플러그인 > 임포터 메뉴로 이동하여 필요한 데이터스미스 컴포넌트를 활성화한 후 언리얼 에디터를 재시작하면 됩니다.

언리얼 엔진 4.23 이전 버전을 사용하고 있다면 언리얼 엔진 마켓플레이스 에서 데이터스미스를 다운로드하여 플러그인으로 설치해야 합니다.

언리얼 엔진의 버전에 관계없이, 3ds Max, SketchUp Pro, Revit과 같은 일부 포맷은 소스 애플리케이션에 익스포터 플러그인도 설치해야 합니다. 이러한 애플리케이션으로부터 에셋을 익스포트하려면 이 링크 에서 플러그인을 다운로드하여 설치하세요.

섹션 4: 시작하기

언리얼 엔진은 귀하와 직원들의 프로젝트를 도울 수 있는 대량의 리소스를 제공하며, 언리얼 에디터를 빠르게 익히는 것부터 고급 개발 기법에 익숙해지는 것까지 모든 정보를 갖추고 있습니다. 이번 섹션에서는 그 여정에 필요한 정보를 제공하니, 언리얼 엔진을 사용할 직원 모두와 공유하는 것을 권장합니다.

언리얼 에디터 실행하기

에픽게임즈 런처를 통해 언리얼 엔진을 설치하셨다면, 런처에 로그인한 후 노란색 실행 버튼을 클릭하여 언리얼 에디터를 실행할 수 있습니다. 또는 라이브러리 탭에서 에디터를 실행할 수 있으며, 이곳에서 설치된 엔진 버전을 관리하거나 특정 프로젝트를 직접 열 수도 있습니다.

컴파일된 소스 코드나 바이너리 옵션 입문 독립형 오프라인 빌드로 언리얼 엔진을 설치했다면, 언리얼 엔진이 저장된 디렉터리로 가서 다음 경로의 실행 파일을 찾습니다.

🙈[Elasticsearch] 대량 추가/조회 ( Bulk API, MultiSearch API )🐵

이번 글에서는 한 번의 API 요청으로 대량으로 document를 추가하고 조회하는 방법에 대해 알아보겠습니다.

1. MultiSearch API ( 링크 )

예를 들어 ES 서버에서 이메일 주소를 검색하는 상황을 가정해보겠습니다.

이메일 주소를 검색하기 위한 query DSL을 ES 서버에서 작성하고, Client에서는 해당 서버의 API를 호출하기만 하면 데이터를 받을 수 있습니다.

그런데 검색해야 할 이메일 주소가 100개라면 총 100번의 API를 호출해야 합니다.

이는 네트워크 비용이 발생하기 때문에 오류가 발생할 수 있으며, 성능 상의 이슈가 있을 수 있습니다.

따라서 한 번의 호출로 100개의 데이터를 조회하는 방법이 필요한데, ES에서는 이를 MultiSearch API로 제공합니다.

1) json 파일 작성

MultiSearch API를 사용하는 방법은 간단합니다.

json 파일을 생성해서 다음과 같은 포맷으로 쿼리를 작성하면 됩니다.

연속된 2개의 json이 header와 body로 나뉘어 하나의 쌍을 이루며, 결론적으로 위의 예제는 총 2개의 검색을 수행됩니다.

header에는 index와 search_type, preference, routing 같은 정보들을 작성하며,

body에는 query, aggregations, from, size 같은 요청 쿼리를 작성합니다.

json을 개행으로 구분하기 때문에, body의 모양을 예쁘게 하겠다고 개행을 해버리면 MultiSearch API를 호출할 수 없습니다.

즉, 다음과 같이 작성하면 안됩니다.

만약 쿼리가 길어서 별도의 파일로 보관하여 유지보수를 용이하게 하고 싶다면 template을 사용할 수 있습니다.

자세한 사용법은 여기를 참고해주세요!

2) MutlSearch API 호출

여러 키워드를 검색하기 위한 json 파일을 준비했다면, 다음과 같이 curl 요청으로 API를 호출할 수 있습니다.

특정 index에 대해서 MultiSearch API를 호출하려면 URI에 인덱스를 명시해주고, 모든 index에 대해 검색하려면 'localhost:9200/_msearch'만 작성하면 됩니다.

그런데 모든 index에 대해 검색하면 성능이 좋지 않으므로 json 파일 각 header에서 인덱스를 명시하는 것이 좋습니다.

MultiSerach API를 호출하기 위해서는 _search가 아닌 _msearch입니다.

Content-Type

공식 문서에서는 application/x-ndjson으로 명시할 것을 권장합니다.

MultiSearch에서 json 파일로 검색하기 위해서는 -d가 옵션이 아닌 --data-binary 옵션으로 full name을 작성해줘야 에러가 발생안합니다.

MultiSearch API 호출 결과 응답은 다음과 같은 양식을 따릅니다.

  • responses
    • MutlSearch로 총 100개의 검색을 수행했다면, responses 하위에는 100개의 json이 있습니다.
    • 각 json은 _search API로 단일 호출했을 때의 결과가 그대로 있다고 보시면 됩니다.

    그런데 검색하는 키워드가 많을 수록 데이터의 양은 엄청 커질 것이라는 것을 예측할 수 있습니다.

    따라서 query를 작성할 때 특정 필드만 보여주는 방법 등으로 결과 document를 가공할 필요가 있습니다.

    대량으로 document를 조회하는 방법은 이와 같이 MultiSearch API를 사용하면 됩니다.

    다음은 대량으로 document를 추가하는 방법인 Bulk API에 대해 알아보겠습니다.

    2. Bulk API ( 링크 )

    Bulk API로 document를 대량으로 추가하는 방법도 MultiSearch API와 유사합니다.

    json 파일을 만들어서 header와 body를 작성한 후, API를 호출하면 됩니다.

    1) json 파일 작성

    지금까지 Bulk API로 document를 추가하는 방법에 대해서만 언급했지만, 사실은 Bulk API를 통해 document를 update, delete도 할 수 있습니다.

    • < "index" : <>> /
      • URL에 index와 type을 명시한 경우 header에 "index" : <> 만 명시해도 해당 index, type에 document가 추가됩니다.
      • header에 _id를 명시하지 않아도 자동으로 _id 값이 생성됩니다.
      • _id 값을 부여해서 document를 추가하는 방법입니다.
      • header에 "index"가 아닌 " create "를 명시하여 document를 추가하는 방법입니다.
      • Bulk API로 document를 update 할 수도 있습니다.
      • update를 하려면 body에 " doc " 필드를 명시해줘야 합니다.
      • Bulk API로 document를 delete 할 수도 있습니다.
      • delete를 할 때 body는 작성할 필요가 없습니다.

      2) Bulk API 호출

      다음은 Bulk API를 호출하는 curl 요청입니다.

      위 예제에서는 URI에 특정 index와 type을 명시해줬으며,

      Content-Type도 MultiSearch API와 같이 application/x-ndjson으로 작성했고, 바이너리 옵션 입문 --data-binary 옵션으로 json 파일을 넘겨줍니다.

      Bulk API를 호출할 때 여러 작업 중 하나가 실패하더라도 Bulk API는 실패하지 않습니다.

      즉, 어떤 이유로 어느 한 작업이 실패하더라도 나머지 작업은 계속 처리됩니다.

      response에서 각 작업의 상태를 전송 순서와 동일하게 표시하므로 어떤 작업이 실패했는지 여부를 알 수 있습니다.

      이상으로 대량으로 document를 추가/수정/삭제하는 Bulk API 그리고 대량으로 document를 조회하는 MultiSearch API에 대해 알아보았습니다.

      메탈릭모드: 메탈릭 파라미터

      Metallic 워크플로에서 작업하는 경우(스페큘러 워크플로와 달리) 표면의 반사도 및 광원 반응이 메탈릭 레벨과 평활도 레벨에 따라 바뀝니다.

      이 워크플로우를 사용해도 스페큘러 반사가 생성되지만 명시적으로 정의되지 않고 메탈릭 및 바이너리 옵션 입문 평활도 레벨에 적용한 설정에 따라 자연스럽게 발생합니다.

      메탈릭 모드를 금속처럼 보여야 하는 머티리얼에만 사용할 수 있는 것은 아닙니다! 이 모드를 메탈릭이라고 하는 이유는 표면의 금속성 또는 비금속성을 제어할 수 있기 때문입니다.

      메탈릭(Metallic) 파라미터

      머티리얼의 메탈릭 파라미터에 따라 표면이 얼마나 “금속 같은지” 결정됩니다. 표면이 더 금속 같을수록 환경을 더 많이 반사하고 표면의 알베도 컬러가 덜 보입니다. 최고 메탈릭 레벨에서는 표면 컬러가 환경의 반사에 따라서만 결정됩니다. 표면이 덜 금속 같으면 표면의 알베도 컬러가 더 분명해지고 표면 반사가 표면 컬러를 가리지 않고 그 위에 보입니다.

      0에서 1까지의 메탈릭 값 범위(평활도는 모든 샘플에서 0.8로 일정함)

      0에서 1까지의 메탈릭 값 범위(평활도는 모든 샘플에서 0.8로 일정함)

      텍스처가 할당되지 않은 경우 기본적으로 메탈릭 및 평활도 파라미터는 각각 슬라이더를 통해 제어됩니다. 일부 머티리얼에는 이렇게만 해도 충분합니다. 하지만 모델의 표면에 알베도 텍스처 표면 타입이 섞여 있는 영역이 있는 경우 텍스처 맵을 사용하여 머티리얼이 표면에서 메탈릭 및 평활도 레벨이 어떻게 달라지는지 제어할 수 있습니다. 예를 들어 텍스처에 금속 버클과 지퍼가 있는 의상을 입은 캐릭터가 있을 수 있습니다. 이 경우 버클과 지퍼의 메탈릭 값은 의상의 옷감보다 높아야 합니다. 이렇게 하려면 단일 슬라이더 값을 사용하지 않고 버클과 지퍼 영역의 픽셀 컬러가 더 밝고 옷감의 값은 더 어두운 텍스처 맵을 할당하면 됩니다.

      Metallic 파라미터에 텍스처를 할당하면 메탈릭 및 평활도 슬라이더가 모두 표시되지 않습니다. 대신, 머티리얼의 메탈릭 레벨은 텍스처의 레드 채널 값으로 제어되고 머티리얼의 평활도 레벨은 텍스처의 바이너리 옵션 입문 알파 채널에 따라 제어됩니다. 즉, 그린 및 블루 채널은 무시됩니다. 따라서 영역이 거친지 매끄러운지, 금속성인지 비금속성인지 정의할 수 있는 텍스처가 하나 있으므로 요구 사항이 다양한 모델의 여러 영역에 적용되는 텍스처 맵을 사용하여 작업할 때 매우 유용합니다. 예를 들어 캐릭터 텍스처 맵 하나에는 가죽 구두, 천으로 만든 옷, 손과 얼굴의 피부 및 금속 버클 등 여러 가지 표면이 필요한 경우가 많습니다.

      메탈릭 맵이 없는 케이스 모델의 이미지

      메탈릭 맵이 없는 케이스 모델의 이미지

      위 예에서 케이스에는 알베도 맵이 있지만 메탈릭 텍스처가 없습니다. 따라서 전체 오브젝트의 메탈릭 및 평활도 값이 하나이므로 이상적이지 않습니다. 가죽 끈, 금속 버클, 스티커 및 손잡이는 모두 표면 프로퍼티가 다른 것처럼 보여야 합니다.

      메탈릭 맵이 적용된 케이스 모델의 이미지

      메탈릭 맵이 적용된 케이스 모델의 이미지

      이 예에서는 메탈/평활도 텍스처 맵이 할당되었습니다. 이제 버클은 메탈릭 값이 높고 이 값에 따라 광원에 반응합니다. 가죽 끈은 상자의 가죽 바디보다 더 반짝거리지만 “메탈릭” 값이 낮기 때문에 반짝이는 비금속 표면처럼 보입니다. 맨 오른쪽의 흑백 맵은 금속을 더 밝은 영역으로 표시하고 가죽을 중간 이하의 회색으로 표시합니다.


0 개 댓글

답장을 남겨주세요