우리 팀(프로젝트)을 소개합니다.
엔픽셀의 신규 모바일 mmorpg 프로젝트입니다.
이런 동료를 기다리고 있습니다.
이런 일을 함께 하실 분 (게임 업계 경력이 없으시더라도 무방합니다!)
- 모바일 MMORPG 서버를 초기 단계에서 함께 설계해 나가실 분
- 기존 방법을 답습하기보다는 목적에 맞는 기술 스택을 함께 의논하며 결정해 나가실 분
- 새로운 언어&프레임워크를 함께 공부하며 성장해 나가실 분(뛰어난 분들 덕분에 초반에 걱정했던 것 보다 꽤 잘 동작하고 있습니다!)
- 오픈 소스를 활용해 빠르게 개발하고, 더 나아가서 생태계에 기여하고 싶으신 분
이런 요건들을 가지고 계신 분
- 프로그래밍에 대한 기본적인 지식을 가지고 계신 분
- OS, 자료구조, 네트워크 등 컴퓨터 공학의 기본적인 지식을 가지고 계신 분
- 새로운 프로그래밍 언어나 기술들을 빠르게 습득하고 적용하실 수 있는 분
- 문제의 해결책을 함께 이야기하면서 풀어나갈 수 있도록 좋은 커뮤니케이션 능력을 가지신 분
현재까지 선정한 기술 스택(바뀔 수도 있습니다! 오셔서 함께 고민해 주시면 좋을 것 같아요)
- Rust+ ECS(Entity Component System): 실시간 처리를 위한 서버 개발에 활용하고 있습니다.
- Kotlin + Spring(MVC, JPA): DB를 다루는 서버에서 활용하고 있습니다.
- Flutter(Dart): 게임 데이터 툴 제작에 활용되고 있습니다.
- Kafka Streams: 서버 간 통신, 메시지 유실 처리, 스케일 아웃에 활용되고 있습니다.
- DB:현재 MySQL과 Redis를 주로 활용하고 있습니다.
저희가 지향하는 것들입니다.
- 기획자는 게임을 만들고 프로그래머는 게임을 만들기 위한 시스템을 만듭니다.
- 프로젝트의 성공 뿐만 아니라 개개인의 실력 향상에 도움이 되는 선택을 합니다.
- 너무 신기술이나 이론에 몰두하다 아무것도 못하기 보다는, 동작하는 소프트웨어를 빨리 만들어 냅니다.
- 컴파일러보다 더 잘할 수 있다는 욕심을 내지 않습니다.
저희가 좋아하지 않는 것들입니다.
- 락(안잡으면 레이스 컨디션, 잘못 잡으면 데드락)
- 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
|