# Introduction

Backend

저희 백엔드파트는 환경, 언어, 상황을 가리는 법이 없습니다. 저희에게 개발을 하면서 발생할 수 있는 모든 문제들은 해결 가능한 크고 작은 퀘스트에 불과합니다. 운영상 겉으로 크게 들어나는 부분은 없다는 아쉬움은 있지만, 시스템의 완성도와 안정성을 위해 다양한 기술들을 폭 넓게 수용하며 보이지 않는 많은 부분들의 시스템을 가꾸어가고 확장해 나가고 있습니다. 시간이 지날 수록 늘어가는 트래픽을 대응해나가며 획기적인 성능 개선을 이뤄낼 때 가장 큰 성취감과 보람을 느껴나가고 있습니다.

# Fall in love

Backend

저희 백엔드 파트는 아래의 키워드들에 오타쿠처럼 빠져있는 사람들이 모여있습니다. 마치 슈퍼카의 엔진을 만들어 가는 것 처럼, 내 집을 만드는 설계도면을 그려낸는 것 처럼, 우리 서비스의 핵심적인 부분을 고민하고 다듬어내는 과정 자체를 즐기고 좋아합니다.
  • Scalability
  • Security
  • Robustness
  • Readability
  • Performance Oriented
  • Maintainability

# Our roles

  • 소프트웨어의 목표를 이해하고 효과적인 솔루션을 제시합니다.
  • 데이터, 프로세스, 코드를 컴파일 및 분석하여 문제를 해결하고 개선점들을 찾아냅니다.
  • 프론트엔드 파트 및 다른 팀과 협력하여 목표 및 디자인 모델(아키텍처)을 구현합니다.
  • 데이터를 조작하고 데이터에 대한 승인된 액세스를 보장합니다.
  • 모든 장치에서 안전하게 사용할 수 있는 외부 API 리소스를 개발, 관리합니다.
  • 적절한 알고리즘을 사용하여 시스템의 논리를 최적화합니다.

# The technology stack

스택을 결정할 요소가 외부적(기술변화)으로나, 내부적(기술요구)으로 다양하기 때문에 시시각각 올바른 스택을 선택하기란 결코 쉽지 않습니다. 특히 서비스 구축에 사용되는 기술들은 서비스의 성능에 직접적인 영향을 미치기에 프로젝트의 성공에 중요한 요인으로 작용한다는 점을 잘 이해하고 아래 세가지를 항시 고려하고 있습니다.

  • Size and complexity of the project.
  • The type of product
  • The cost

# Language & Frameworks & Environment

Backend

저희가 지향하는 환경은 MSA이기 때문에 백엔드 개발의 언어나, 프레임워크등에 제한을 두고 있는 편은 아닙니다. 상황, 요구조건에 따라 가장 적합한 언어나 도구들을 사용하고 있기 때문이죠, 그러기 위해 많은 연구와 그에따른 시간비용이 크지만 저희 팀은 그런 비용을 아까워하지 않습니다.

  • Go
  • Typescript
  • Apollo + GraphQL
  • Node.js
  • Nest.js
  • express
  • Python
  • Java