Twinworld는 현실과 디지털 월드의 경계를 없애고, 새로운 것을 만들고 공유하며 즐길 수 있는 메타버스를 제공합니다. Twinworld에서는 사용자들이 아바타를 커스터마이징하여 나의 개성을 뽐낼 수 있으며, 다른 사용자들이 만든 멋진 공간을 탐험하거나 나만의 공간을 아이템을 배치하고 미디어나 사운드를 넣어 창의적으로 만들 수 있습니다. 아이템은 기본적으로 제공되는 것 외에도 3D 애셋이 있다면 Twinworld 웹 페이지에 직접 업로드하여 다른 사용자들과 공유할 수 있습니다. 우리가 만든 세계 안에서 다른 사용자들과 이야기하고 소통하면서 실시간으로 함께 구축할 수 있습니다 . Twinworld에서 여러분의 상상력을 자유롭게 펼쳐보세요!
Cubing은 나만의 큐브 만들기 서비스입니다. 사용자들은 큐브안에 좋아하는 것들을 배치하여 SNS를 통해 친구들과 즐길 수 있습니다. Cubing에서 만든 나만의 큐브는 추후 Twinworld 서비스에서 사용자의 공간을 꾸밀 수 있는 아이템이 되거나 큐브안에 사용자가 들어갈 수 있는 공간이 될 수 있습니다.
저희 백엔드 팀은 이러한 서비스들을 많은 글로벌 사용자가 장애 없이 이용할 수 있도록 노력하고 있습니다.
정체되어 있지 않고 새로운 기술 동향에 항상 관심이 많습니다. 그러한 기술들을 반영하여 팀내 기술 공유를 적극적으로 하고 있습니다.
저희와 함께 가치 있는 서비스를 사용자들에게 제공하고 다양한 문제를 같이 해결해 나가고 싶은 백엔드 개발자분들을 찾고 있습니다.
서비스 인프라는 Kubernetes를 사용중입니다.
클라우드는 AWS를 사용중이고 EKS를 통해 관리하고 있습니다.
Route53을 통해 도메인 관리를 하고 외부로 노출 되어야 하는 일부 서비스들은 ALB를 통해 노출하고 그외에 서비스들은 클러스터 내부통신만 허용하고 외부에서 들어오는 인바운드 트래픽은 Gateway를 통해 접근 하도록 하고 있습니다.
DDD 방법론을 통해 Microservice를 구성하고 있고 각 Domain별로 통신은 Kafka를 통해 이벤트를 전달하고 있습니다. 관리의 편의성을 위해서 Kafka는 MSK를 사용하고 있습니다.
서비스별 스펙에 따라서 노드 그룹을 관리하고 필요에 따라서 원할한 오토스케일링이 되도록 관리 하고 있습니다.
향후 안정적인 서비스를 위해 모니터링을 더 강화 하려 하고 있습니다.
현재 서버는 Twinworld, Cubing를 메인서비스로 제공 하고 있고 해당 서비스의 복잡성 증가와 신규 서비스들이 생겼을때 원할한 유지보수와 확장석을 고려하여 Microservice로 구성하고 있습니다.
내부 서비스들은 보안을 위해 외부로 직접 노출은 최소화 하고 각 요청은 gateway를 통해서 관리되고 있습니다.
Twinworld, Cubing는 현실 기반 메타버스 서비스를 제공 하고 있으며 현실에서 구현되는 개인 공간들은 space라는 도메인으로 관리를 하고 있습니다. space를 사용자들이 구성하고 p2p로 즐기는 모든 기능에 대한 관리를 하고 있습니다. 현재는 p2p는 외부 서비스를 사용하고 있으나 향후에는 자체 서비스를 구축 계획에 있습니다.
Twinworld, Cubing에서 사용자들이 3D Model, 2D, Video등 모든 관리 리소스는 Content서버를 통해 관리되고 있으며 서비스 내부에서 제공하는 content 외에 user가 직접 content를 upload 할 수 있습니다. 해당 content는 종류별로 다양하게 사용될 수 있도록 더욱 더 많은 기능이 추가될 예정입니다.
Media server는 컨텐츠를 업/다운로드 및 관리하는 서버로 대용량, 대량의 컨텐츠를 upload 할 수 있어야 하며, 컨텐츠의 관리를 위한 권한을 관리할 수 있어야 합니다. 단순 저장만을 위한 서버기능 이외에 3D모델의 경우는 서비스가 제공 받길 원하는 포멧으로 컨버팅해주는 기능이 추가 되어 있습니다.
사용자들이 업로드 하게된 모든 컨텐츠들로 다양한 경제 활동을 위한 Marketplace server또한 준비 중입니다. 3D 모델에 특화된 e-커머스 서비스로 사용자가 쉽고 간편하게 원하는 모델을 추가 하고 구매할 수 있는 시스템을 구축 하기 위해 노력 중입니다.
NodeJS(NestJS), PostgreSQL, MongoDB, Git, AWS(EKS, EC2, MSK, S3, CloudFront ...등)
KPT
지속적으로 개발팀 문화를 개선하기 위해 노력 하는시간으로 개발팀 전체가 한 달에 한 번 모여 유지하고 싶은 것 (Keep), 개선해야 할 문제라고 생각하는 것 (Problem), 문제를 해결하기 위해 노력해야 할 것 (Try) 에 대해 논의해 실천하고 피드백을 주고 받는 회의 입니다. KPT를 통해 더욱 발전하는 개발팀을 기대할 수 있습니다.
Daily Stand Up
매일 오전 그 날 해야 하는 일들을 병목지점을 중심으로 팀에 공유하여 도움을 주고 받는 시간입니다. 팀원 서로가 어떤 일을 하는 지 알고 도와줄 수 있는 부분은 도우며 효율적으로 일을 합니다.
Code Review
리뷰는 GitHub을 통해 진행하고 있습니다. 모든 작업의 결과물은 PR로 다른 개발자가 팀별로 정해진 방법으로 피드백을 주고받는 과정을 진행합니다. 이 과정을 통해 본인이 발견하지 못한 실수를 다른 사람이 발견하여 코드의 퀄리티를 높이는 과정을 진행합니다. 때로는 더 좋은 구현 방법에 대해서 논의하기도 합니다.
Dev Meeting
주기적으로 설계 리뷰, 오프라인 코드 리뷰, 컨벤션 정하기 등 코드와 관련한 모든 미팅입니다. 개발팀은 더 나은, 더 좋은 코드를 위해 끊임없이 생각합니다.
Study
팀내 논의 중 나왔던 주제들이나 개인적으로 관심있는 개발 관련 주제를 공부해서 공유하는 미팅입니다. 관심있고 공유하고 싶은 기술을 공부하여 나누고 다른 팀원을 통해 함께 성장하고 배울 수 있습니다.
Play Our
VR과 AR에 대한 시장 조사와 개발 업무 목적으로 다양한 게임을 해보며 팀워크도 함께 다질 수 있는 활동입니다. 동종 업계에 대한 관심을 지속적으로 둘 수 있으며 다양한 아이디어를 더 생각해볼 수 있는 시간입니다.
Onboarding
개발팀에는 입사한 날부터 약 3개월간의 Onboarding이 준비되어 있습니다. 기존 팀원들이 신규 입사자가 팀에 빠르게 흡수될 수 있게 도와주고 업무에 익숙해지는 시간을 가질 수 있습니다.
각 업무/직무 별 모집 인원
신규 및 기존 사내 서비스 백엔드 개발: 0명
마켓 서버: 0명
미디어 서버: 0명
공통 개발 주요 업무
1. 담당 도메인 영역의 아키텍처 설계 및 API 개발
2. 마이크로 서비스 구현 및 인프라 관리 (EKS, MSK)
- EKS 를 이용한 배포 및 운영
- MSK 메시지 / 이벤트를 사용하여 마이크로 서비스 간 통신 구현
3. 장애 대응 및 유지보수
공통 자격요건
- RESTful API server 를 개발, 운영해본적이 있거나, 그에 준하는 이해도가 있는 분
- RDBMS, NoSQL 경험자
- AWS 혹은 클라우드 서비스로 인프라 운영을 해보신 분
- git 으로 협업 및 소스코드 버전 관리 를 할 줄 아시는 분
- 클라이언트 개발자, 기획자 등과 적극적으로 소통하며 협업할 수 있는 능력이 있으신 분
공통 우대사항
- K8s 로 배포 및 운영 을 해본적 있는 분
- 마이크로서비스 아키텍처 설계 혹은 개발에 참여해본 경험이 있는 분
- Domain Driven Development 에 대한 이해가 있는 분
- JIRA 등 agile 한 일정관리를 경험해 보신 분
- 대용량 컨텐츠 serving 경험이 있으신 분
컨텐츠 & 미디어 서버 주요 기능
스토리지, 파일 권한 관리
관리자 페이지
다양한 크기, 종류에 무관한 파일을 안정 적인 양방향 전송
3D모델을 다양한 포멧으로 컨버팅
glTF
obj
fbx
etc
영상 스트리밍
개인화
WebRTC
소셜 기능
카테고리 분류
실시간 전송
자격 요건:
신입 또는 3년 이상의 IT 개발 경력을 보유하신 분
우대 사항:
미디어 서버 구축 경험 우대
3D 모델에 대한 이해도가 있으신 분
대용량 컨텐츠 serving 경험이 있으신 분
영상 스트리밍 서비스 경험이 있으신 분
밝은 성격과 적극적인 의사소통 능력 보유자
마켓 플레이스 서버 주요 기능
상품 카테고리 관리
상품 정보 관리
장바구니 관리
상품 주문
상품 결제
구매 내역 관리
정산
상품 정보 외부 연동
자격 요건:
신입 또는 3년 이상의 IT 개발 경력을 보유하신 분
우대 사항:
e-커머스에 대한 이해도가 있으신 분
주문 및 결제 또는 정산 프로세스 전반을 이해하고 운영한 경험이 있으신 분
디지털 상품 판매 서비스 경험이 있으신 분
밝은 성격과 적극적인 의사소통 능력 보유자
PG사 연동 또는 관련 서비스 경험자
사내 서비스 백엔드 모집 요건
주요 업무:
Twinworld 서비스 API 개발
Cubing 서비스 API 개발
The CAVE 서비스 API 개발
그외에 신규 서비스 API 개발
CI/CD DevOps
우대 사항:
백엔드 개발 경력 3년 이상
NodeJS, Javascript의 이해도가 높으신 분
NestJS 프레임워크, Typescript 유 경험자
AWS 유 경험자