Search
🐧

CLASS101 기술 현황

클래스101 기술 스택
팀에 도움이 되는 기술이 있다면 적극적으로 채택하는 편이며, 어느 누구나 이를 주도할 수 있는 환경을 제공합니다.
React, GraphQL, Apollo, TypeScript, Kotlin, Spring Boot, MSA, K8s, MongoDB 등을 채택하여 제품에 적용하고 있습니다.
배울 의지만 있다면, 기술을 사용한 경험이 없어도 괜찮습니다. 온보딩을 통해 익힐 수 있는 환경입니다.
현재 기술 현황
프론트엔드
React와 React Native로 웹과 모바일 앱을 각각 개발합니다. 웹과 네이티브 환경을 동시에 지원하는 디자인 시스템을 개발해 통일된 개발 환경을 만들기 위해 노력하고 있습니다.
TypeScript를 적극적으로 사용합니다.
Nx를 사용해 모노레포를 관리하고 있습니다. Nx의 다양한 기능을 활용해 엔터프라이즈 환경에서 빠르게 개발하고 쉽게 유지보수 할 수 있는 구조로 프론트엔드 애플리케이션의 아키텍쳐를 변경하고 있습니다.
GraphQL & Apollo의 장점을 최대한 활용해 클라이언트의 복잡한 상태 관리 로직을 줄이고, 필요한 데이터를 쉽고 효율적으로 전달하기 위해 노력합니다.
Next.js 등 성능 개선에 도움을 주는 프레임워크나 라이브러리들을 적극적으로 사용해 기능 구현에만 집중할 수 있는 환경을 만들고 있습니다.
백엔드
MSA
k8s
결함내성과 도메인 간에 복잡도를 낮게 하기 위해서 MSA로 전체 시스템을 구현 하고 있습니다. K8s를 도입하였고, istio 같은 기술도 고려하고 있습니다. presentation layer의 데이터 aggregation 을 유용하게 하기 위해서 Graphql을 쓰고 있습니다.
Spring Boot
Kotlin, Java
JPA, QueryDSL, JOOQ
Gradle
MariaDB
Spock, JUnit, Mockito
Node.js Back-end (Apollo-Server)
TypeScript, GraphQL, Apollo, TypeGraphQL, Typegoose
MongoDB
Docker, K8s
DevOps
AWS
클래스101 개발환경
개발자의 경험을 개선하는 플랫폼팀이 개발자의 생산성과 개발 환경을 개선하기 위해 노력하고 있습니다.
QS파트가 따로 구성되어있으며 품질을 보증하는것이 아닌 만족할 만한 수준의 품질을 유저들에게 전달하고 있습니다.
AWS를 이용하여 인프라를 구축하고 있습니다.
컨테이너 오케스트레이션은 아마존 EKS를 활용합니다.
로그 수집 및 분석은 데이터독을 활용합니다.
배치 스케쥴링은 에어플로우를 활용합니다.
배포 프로세스
Trunk Based Development 전략을 따릅니다.
지속적인 배포을 위해 우리는 모든 코드의 변경사항을 최소한으로 합니다. 변경을 최소한으로 만들면, 주위 개발자가 리뷰하기 쉽고, 코드를 병합하는데 비용이 적습니다. 리뷰하기 쉬운 코드는 결함을 발견할 확률이 높아집니다. 결함이 없는 클린 코드는 배포하기도 쉽고, 고객의 경험을 개선한다고 믿습니다.
배포는 Azure Devops Pipeline를 활용 합니다.
[다른 목차로 이동하기]