Search
Duplicate
🐧

CLASS101 기술현황

클래스101 기술 스택
팀에 도움이 되는 기술이 있다면 적극적으로 채택하는 편이며, 이를 주도할 수 있는 환경을 제공합니다.
GraphQL, Apollo, Typescript, MSA, Docker, K8s, MongoDB 등등을 채택하여 제품에 적용하고 있습니다.-
기술을 안써보셨더라도, 배울 의지가 있으시면 괜찮습니다. 온보딩을 통하여 익히실 수 있는 환경입니다.
현재의 기술 현황
프론트엔드(웹/앱)
WEB
Typescript
GraphQL
React
Apollo-Client
Styled-Components
Class101 UI
Mobile APP
Typescript
GraphQL
React-Native
Apollo-Client
Styled-Components
Class101 UI
백엔드
MSA
Docker, K8s
결함내성을 갖게 하기 위해서 MSA를 하면서 K8s를 도입하였고, ingress controller나 istio같은 기술도 고려하고 있습니다. MSA를 할 경우, 서로 인터커뮤니케이션하는 것이 중요해서 kafka같은 메시지큐를 쓰고 있고, 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 전략을 따릅니다.
모든 변경 사항은 develop에서 시작(checkout)하여, 하루 안에 다시 develop에 merge하는 것을 목표로(지속적으로 통합)합니다. 이렇게 빠른 주기로 개발하는 것은 고객의 경험을 점진적으로 개선하고, 피드백을 빠르게 수집하는 데 용이하기 때문입니다.
지속적인 배포을 위해 우리는 모든 코드의 변경사항을 최소한으로 합니다. 변경을 최소한으로 만들면, 주위 개발자가 리뷰하기 쉽고, 코드를 병합하는데 비용이 적습니다. 리뷰하기 쉬운 코드는 결함을 발견할 확률이 높아집니다. 결함이 없는 클린 코드는 배포하기도 쉽고, 고객의 경험을 개선한다고 믿습니다.
배포는 Azure Devops Pipeline를 활용 합니다.