우리 팀(프로젝트)을 소개합니다.
엔픽셀의 신규 모바일 mmorpg 프로젝트입니다.
이런 동료를 기다리고 있습니다.
이런 일을 함께 하실 분 (게임 업계 경력이 없으시더라도 무방합니다!)
- MSA 기반의 모바일 MMORPG 서버를 개발해서 오픈하실 분
- 기존 방법을 답습하기보다는 목적에 맞는 기술 스택을 함께 의논하며 결정해 나가실 분
- 새로운 언어&프레임워크를 함께 공부하며 성장해 나가실 분
- 오픈 소스를 활용해 빠르게 개발하고, 더 나아가서 생태계에 기여하고 싶으신 분
이런 요건들을 가지고 계신 분
- 프로그래밍에 대한 기본적인 지식을 가지고 계신 분
- OS, 자료구조, 네트워크 등 컴퓨터 공학의 기본적인 지식을 가지고 계신 분
- 새로운 프로그래밍 언어나 기술들을 빠르게 습득하고 적용하실 수 있는 분
- 문제의 해결책을 함께 이야기하면서 풀어나갈 수 있도록 좋은 커뮤니케이션 능력을 가지신 분
기술 스택(추가될 수도 있고, 변경될 수도 있습니다! 같이 고민해주시면 좋을 것 같아요.)
- Rust + Entity Component System: 빠른 성능과 응답성이 중요한 로직에 사용됩니다.
- Kotlin + Spring: DB를 다루고 대량의 데이터를 처리하는 로직에 사용됩니다. Reactive(coroutine) 기술을 적극적으로 사용합니다.
- Flutter: 기획자분들이 쉽게 데이터 작업을 할 수 있게 도와주는 게임 데이터 툴 제작에 사용합니다.
- Kafka Streams: 분산 서버들 간에 메시지를 주고받거나 비동기 처리를 위해 사용합니다.
- DB: MySQL 또는 PostgreSQL을 R2DBC 또는 JPA를 활용하여 개발합니다. 필요하다면 Redis 등 인 메모리 DB가 사용될 예정입니다.
저희가 지향하는 것들입니다.
- 기획자는 게임을 만들고 프로그래머는 게임을 만들기 위한 시스템을 만듭니다.
- 프로젝트의 성공 뿐만 아니라 개개인의 실력 향상에 도움이 되는 선택을 합니다.
- 너무 신기술이나 이론에 몰두하다 아무것도 못하기 보다는, 동작하는 소프트웨어를 빨리 만들어 냅니다.
- 컴파일러보다 더 잘할 수 있다는 욕심을 내지 않습니다.
- 혼자 잘하기보다는 서로 배운 내용을 학습하면서 시너지를 만들어 냅니다.
저희가 좋아하지 않는 것들입니다.
- 락(안잡으면 레이스 컨디션, 잘못 잡으면 데드락)
- OCP를 단번에 깨버리는 싱글톤 패턴 및 글로벌 변수
- 해시 테이블 기반 프로그래밍
- Mutable 변수를 이리저리 조작하는 for, if문
- 불필요한 타이머를 사용하는 임시 로직
저희가 관심을 가지고 있는 기술들이에요!
- Microservice Architecture: event sourcing, CQRS, eventual consistency, choreography saga, message bus
- Domain Driven Design: bounded context, aggregate
- Functional Programming: reactive programming, entity-component system, parallelism, immutability, monad chain
- Test Driven Development: unit test, integration test
- Object-Oriented Programming: dependency injection, design patterns
- Deployment: AWS, Kubernetes, Docker
|