
프론트엔드
Unity
3D 및 2D 비디오 게임의 개발 환경을 제공하는 게임 엔진이자, 3D 애니메이션과 건축 시각화, 가상현실 등 인터랙티브 콘텐츠 제작을 위한 통합 제작 도구
StackOverflow 질문 수: 77899
Github Stars : ★ 17893
사용 기업

라인

직방

카카오

스노우

하이퍼커넥트

SK플래닛

베이글코드

에이스프로젝트

한컴프론티스

아이아이컴바인드

에피드게임즈

한글과컴퓨터

현대자동차그룹
베이글코드
Unity Catalog로 전환 하면서 겪은 모든 것
Unity Catalog로 전환 하면서 겪은 모든 것안녕하세요, 베이글코드 데이터 엔지니어 하석윤 입니다. 베이글코드 데이터팀의 메타스토어를 Hive Metastore에서 Unity Catalog로 전환한 여정을 소개드리고자 합니다.왜 Unity Catalog를 도입하게 되었나요?베이글코드의 DATA&AI 팀은 2018년부터 Databricks를 활용하여 데이터 웨어하우스의 기반을 구축하고, 사내의 데이터 기반 의사결정을 지원해 왔습니다. 현재 약 10,000여 개의 테이블을 ETL, 데이터 분석 및 활용에 사용하고 있습니다. 그동안 이 모든 테이블은 Databricks의 Hive Metastore에서 관리되었습니다.2021년, Databricks는 새로운 Metastore 솔루션인 Unity Catalog를 발표합니다. 하지만 데이터 엔지니어로서 실무에서 Unity Catalog의 임팩트를 체감하기까지는 여러 장애물이 있어 시간이 걸렸습니다. 그래도 DAIS(Databricks AI Summit) 컨퍼런스에 다녀온 팀원들이 테이블 계보(Table Lineage)나 Serverless Compute와 같은 기능들을 정리해 공유해 주셨고, 팀에서는 “이 기능을 언제쯤 써볼 수 있을까?”, “UC가 있다면 작업에 정말 도움이 될 것 같다”는 기대를 하였습니다.Databricks는 매력적인 신기능들을 지속적으로 출시했지만, Unity Catalog 환경에서만 지원 하는 경우가 종종 있었고, Hive Metastore를 사용하는 저희는 기능들을 도입하고 싶어도 도입하지 못하는 상황이었습니다. 제약 사항을 더 이상 방치할 수 없다고 생각하게 된 저희는 2024년 상반기 프로젝트로 ‘Unity Catalog 마이그레이션’을 계획하였고, 약 5개월간의 과정 끝에 데이터 팀의 Metastore를 Unity Catalog로 성공적으로 이전하였습니다!왜 Databricks는 Unity Catalog를 출시하였는가?Overview of Unity CatalogDatabricks의 테크 블로그에 기고된 “Understanding Unity Catalog”라는 아티클을 읽어보면, Unity Catalog를 개발하게 된 이유와 히스토리를 엿볼 수 있습니다. 아티클의 내용을 정리하면 아래와 같습니다.Databricks 사용자 중에 Multi-Workspace를 사용하는 경우가 종종 있었다고 합니다. 이 Workspace들은 하나의 데이터 소스에서 데이터를 읽고 사용했는데, 같은 Access Control을 Workspace 마다 반복 진행하는 게 번거로웠다고 합니다. 이것은 Hive Metastore가 Workspace 레벨로 존재하기 때문입니다.Hive Metastore의 경우, Schema 전체를 허용해 주거나 개별 Table을 일일이 허용해 주어야 했습니다. 이것은 새로운 테이블이 추가될 때마다 접근 정책을 변경해야 하는 번거로움이 있었습니다.S3와 같이 External Location에 접근하는 경우, 그 접근 권한이 Cluster의 Instance Pro
hive
python
scala
slack
spark
unity
SK텔레콤
Unity와 Hugging Face로 AI 갤러리 만들어 보기
저는 팀에서 Unity 엔진을 이용해서 3D 공간을 구현하는 일을 하고 있습니다. 참고로 Unity는 2D/3D 그래픽스 기반의 앱을 만드는 데에 사용하는 게임 엔진입니다.이 글에서는 Unity 엔진 상에서 Hugging Face Inference API를 호출하는 방식으로 AI 갤러리를 만드는 방법을 소개합니다.Unity 한국 지사에서는 다양한 주제로 매월 Tech Talk 라는 온라인 세미나를 열고 있는데요.이 글은 24년 7월에 있었던 'Unity Sentis: HuggingFace 샘플들을 활용한 간단한 예제 만들기'라는 주제의 Tech Talk 내용을 많이 참고했음을 미리 밝힙니다.AI 갤러리를 구현하는 데에 Text to Image 모델 중 하나인 Stable Diffusion XL v1.0 버전을 사용합니다.모델 용량은 7GB 정도 된다고 하네요. 아쉽게도 온디바이스로 구현하기에는 조금 부담스러울 듯합니다.Unity 내에서 Hugging Face Inference API(SDXL 1.0)를 호출하는 방식으로 위 모델에 접근해서 이미지를 생성합니다.새로운 Unity 프로젝트를 하나 만들고, Package Manager 에서 Hugging Face API for Unity 패키지를 설치합니다.해당 패키지는 Unity 상에서 손쉽게 Hugging Face Inference API 를 호출할 수 있도록 해줍니다.다음으로 Window -> Hugging Face API Wizard 창을 열고, 미리 Hugging Face 페이지에서 발급 받은 Access Token을 넣어줍니다.이어서 Task Endpoints의 TextToImage 값을 'https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0'로 바꿔줍니다.마지막으로 Install Examples 버튼을 눌러서 예제 씬과 스크립트를 설치합니다.아래와 같이 예제 씬이 생성된 것을 확인할 수 있습니다.Play 버튼을 눌러서 씬을 실행한 뒤, TextField에 적당한 프롬프트를 입력하면 Image가 생성됩니다.여기서 끝낸다면 번거롭게 Unity 엔진을 사용할 이유가 없습니다.3D 공간 상에 스크린을 띄우고, 캐릭터가 공간을 돌아다니면서 image를 생성하도록 씬을 수정해보겠습니다.아래 그림과 같이 Stable Diffusion XL 1.0 모델을 Hugging Face Inference API로 호출해서 이미지를 생성하는 간단한 프로젝트입니다.Unity 에디터의 Package Manager 에서 아래 주소의 Hugging Face API package 를 설치하면 Unity 상에서 Hugging Face Inference API 를 사용할 수 있습니다.Unity 엔진으로 만든 AI 갤러리 프로젝트에 대해 설명을 시작하겠습니다.주사위 모양의 3D 공간 안에 캐릭터가 들어가 있는 상태로 씬이 시작됩니다. 지붕과 바닥을 제외한 4면이 각각 스크린으로 이뤄져 있습니다.각 스크린 앞으로 가면 화면 하단에 프롬프트를 입력할 수 있는 텍스
unity
베이글코드
SQL을 몰라도 데이터 활용하기 - Metabase 도입기
안녕하세요. 이번에 Bagelcode에서 새로운 BI 툴로 Metabase를 도입했는데 그 과정에 대해서 소개해 드리려 합니다.목차Bagelcode의 Data Delivery- Bagelcode의 Data Delivery 현황- 추가적인 BI 툴 필요성 제기Metabase 배포 과정- EKS 환경 배포- 초기설정- 트러블 슈팅 과정메모리 점유sync, scan 병목schema 하나당 데이터베이스 하나로 등록이 되는 문제,driver 커스텀하기 (feat. clojure)쿼리 timeout 문제마무리Bagelcode의 Data DeliveryBagelcode의 Data Delivery 현황Redshift 제거 과도기Bagelcode에서는 데이터를 추출해서 S3에 저장 후 Databricks에서 가공해서 사용합니다. 기존에는 end-user에게 데이터를 제공하기 위한 툴로 Redshift, Tableau를 이용 중이었습니다.그런데 테이블이 점점 늘어나면서 lock에 걸려서 write, read 시간이 오래 걸리고 비용 문제 등의 이유로 Databricks SQL warehouse를 통해 Superset으로 쿼리할 수 있도록 변경했고 Redshift와 Superset을 동시에 이용하는 과도기를 지나 Superset만을 이용하는 방식으로 변경했습니다.Redshift를 제거하는 과정에 대해서 궁금하시다면 ‘Databricks SQL Serverless 도입기’를 참고해 주세요.Before Metabase과도기를 지난 후 데이터를 사용하는 end-user가 사용할 수 있는 툴은 Superset과 Tableau 두 가지가 되었습니다.직접 테이블에서 바로 쿼리를 해서 사용하고 싶을 때는 Superset으로, 시각화가 필요할 때는 Tableau를 이용하였습니다.추가적인 BI 툴 필요성 제기하지만 신작팀이 점점 늘어나면서 추가적인 BI 툴의 필요성을 느꼈습니다. 신작팀은 인원이 많지 않은 관계로 데이터를 직접적으로 다룰 수 있는 인원이 없는 경우가 많았습니다. 이 경우 데이터 팀에게 직접적으로 요청하는 방법이 존재하지만, 빠른 사이클이 필요한 신작팀에게는 일분일초가 소중합니다.After Metabase‘SQL 쿼리를 할 줄 모르는 사용자’도 ‘빠르게’ 데이터를 다룰 수 있는 BI 툴의 필요성을 느껴서 Metabase를 도입하게 되었습니다.Metabase에서는 question이라는 기능을 통해 template화된 GUI 쿼리 툴이 존재하기 때문에 SQL을 모르는 사용자도 쉽게 쿼리를 할 수 있도록 해주고 자체 시각화 기능 및 alert 설정 등 다양한 기능이 있기 때문에 도입을 결정하게 되었습니다.정리하자면 아래와 같습니다.Superset: SQL 쿼리를 다룰 줄 아는 사용자가 데이터를 추출하기 위해 사용.Tableau: SQL 쿼리를 다룰 줄 아는 사용자가 시각화를 위해 사용. 또는 SQL 쿼리를 모르는 사용자도 데이터 팀에 요청해 사용.Metabase: SQL 쿼리를 다룰 줄 모르는 사용자가 빠르게 데이터를 다루거나 시각화할 때 사용.Metabase 배
awsredshift
clojure
github
metabase
spark
superset
tableau
unity
한글과컴퓨터
한컴 타자 개발, 그리고 현대백화점 이벤트
어느덧 한컴타자가 새롭게 개편된지 1주년이 되었고 오픈 1주년 기념으로 한컴타자의 지난 1년간의 시간을 공유하고자 합니다. 간략하게 한컴타자를 소개해 보고자 하니 편안하게 봐주세요.한컴타자는 모르는 분들이 없으실 것 같지만 시작을 위해 잠시 간략하게 소개해 드리겠습니다.때는 바야흐로 1995년 DOS “한글타자 1.0” 을 시작으로 Windows 버전을 거쳐 현재는 Web 서비스로 제공되고 있습니다.저는 한컴타자 97 버전으로 연습했었네요.컴퓨터로 타자 연습을 하고 마법의 성을 부르던 그 시절이 참 좋았던 것 같습니다.현재의 한컴타자는 2022년 12월 7일 베타 오픈을 시작으로 2023년 6월 14일 정식 론칭을 하였습니다.베타에는 타자 연습, 워드크러시사가(2D 싱글게임), 랭킹, 상점 서비스가, 정식 론칭에는 필사와 킹덤디펜스(3D 멀티게임) 서비스가 오픈되었습니다.현재 킹덤디펜스는 게임성 및 유지 보수 측면에서 이슈가 있어 타자 서비스에서 제외되었으며 더 재미있는 게임을 선보일 예정입니다.개발 블로그인 만큼 간략하게 한컴타자 개발 기술을 소개해 보고자 합니다.한컴타자 서비스는 GitLab과 AWS Code Pipeline을 사용하여 CI/CD가 구성되어 있습니다.GitLab을 저장소로 사용하며 AWS Code Pipeline을 통해 빌드 및 배포가 진행됩니다.이쯤에서 잠깐 제가 담당하고 있는 한컴타자와 Unity에 대해 이야기 해볼까 합니다.타자 연습과 게임의 경우 이전 말랑말랑 한컴타자에서는 Phaser(https://phaser.io)로 개발되었으나, 현재 리뉴얼 버전에서는 Unity(https://unity.com/kr)를 사용하여 개발되었습니다.타자 연습 프로젝트를 Unity 에디터로 열면 아래와 같은 화면을 볼 수 있습니다.Unity는 씬(Scene)이라는 공간 안에 오브젝트들을 배치하여 게임을 만들 수가 있는데요.타자 연습은 총 5개의 씬(Scene)으로 구성되어 있습니다.각각의 씬(Scene) 안에는 타자 연습에 필요한 오브젝트들이 구성되어 있습니다.에디터에서 오브젝트 배치 및 효과 등의 UI 작업을 진행하고 C# 기반의 스크립트 코드에서 동작을 구현합니다. Unity는 크로스 컴파일을 지원하며 타자 연습은 WebGL(Web Grapthics Library) 플랫폼을 기반으로 Wasm으로 빌드 됩니다.타자 연습은 로그인 상태로 플레이가 가능하여 플레이 정보를 서버에 저장하도록 되어 있습니다. Unity에서는 네트워크 통신 API를 지원하여 타자 연습은 UnityWebRequset를 사용하여 API 서버와 통신하고 있습니다.지난 1년을 되돌아보니 2023년 한글날에 진행된 “타자의 신 경진 대회”가 가장 생각이 많이 남네요.잠시 그날로 돌아가 보겠습니다.“타자의 신 경진 대회”는 현대백화점에서 한글날 기념행사를 위해 한컴타자에 제휴 요청하여 진행되었습니다.한컴타자개발팀에서 이벤트 진행을 위해 Front-End, Back-End, Unity(https://unity.com/kr) 개발 담당자들이 협업하여 개발을 하였습니다
unity