Search
Duplicate
🏹

백엔드 팀이 일하는 방법

소다기프트 백엔드팀은 글로벌 사용자들에게 24시간 장애 없는 서비스를 제공하기 위해 비즈니스 환경을 구축, 개발하고 있습니다.
소다기프트 백엔드팀은 이렇게 일하고 있습니다.
비즈니스를 어떻게 개발할까?
Spring 기반 백엔드 비즈니스 로직을 개발합니다.
비즈니스는 JPA를 활용하여 DDD 설계를 진행합니다.
데이터를 어떻게 저장하고 관리할까?
MySQL, Ehcache 에 데이터를 저장합니다.
슬로우 쿼리의 실행계획을 살펴보고 인덱스 설계 및 튜닝을 진행합니다.
테스트 코드를 작성하고 있을까?
Junit5 기반의 테스트를 작성하고 AssertJ 로 검증합니다.
대용량 트래픽을 어떻게 대비하고 있을까?
트래픽 분산을 위해 독립된 서비스로 개발하고 배포합니다.
AWS 기반 인프라에 서비스를 구축합니다.
코드 리뷰를 어떻게 할까?
Github PR을 요청하고, Best Practice를 찾아 코드 리뷰를 진행합니다.
필요하면 페어 프로그래밍을 진행합니다.
지속적인 리팩토링을 진행하고 있을까?
매주 하루 디자인 패턴, 개발방법론 적용을 위한 미팅을 진행합니다.
서비스 배포 자동화가 되어있을까?
Github, Jenkins, AWS 를 이용해 CI/CD 를 구축하였습니다.
서버 모니터링이나 로깅이 잘 구성되어 있을까?
Elastic Stack(ELK), Slack, AWS CloudWatch 를 이용해 구축하였습니다.
서비스 도메인에서 경험 할 수 있는 것은 무엇일까?
글로벌 도메인에 필요한 언어, 시간, 환율을 고려한 개발 경험을 가질 수 있습니다.
이커머스에 필요한 결제, 상품, 배달, 인증을 개발하실 수 있습니다.
문서화는 하고 있을까?
테스트 기반 RestDocs 를 작성하고 프론트와 협업합니다.
WikiNotion 을 이용하여 개발 과정을 기록합니다.

개발 문화

소다기프트 백엔드 팀은 함께 자라기를 추구하고 있습니다.
개발 과정에서 발생한 문제에 대한 해결책을 공유합니다.
이 과정에서 인사이트를 얻고, 팀워크가 다져집니다.
그래서 백엔드팀은 소통을 중요하게 생각하고, 문화를 만들어나가고 있습니다.
DRI (Directly Responsible Individual) 추구 ⇒ 소다기프트 백엔드 팀은 스스로 생각하고, 스스로 결정합니다.
적극적인 코드 리뷰 ⇒ 서로 다른 생각을 리뷰하고, 최선을 선택합니다.
빠른 피드백을 위한 지속적인 코드 병합 전략 추구 ⇒ Ship / Show / Ask 전략을 사용합니다.
페어 프로그래밍 ⇒ 어려움이 있으면 동료와 함께 개발을 진행합니다.
매주 하루는 개선을 위한 미팅 ⇒ 오전은 팀별 미팅, 오후는 개발팀 미팅
복수 공유를 통한 문제 해결 ⇒ 개발 과정에서 필요한 지식을 빠르고 수평적으로 공유합니다.

페어 프로그래밍

적극적인 코드 리뷰

빠른 피드백을 위한 지속적인 코드 병합 전략 추구

기술 스택

Spring 기반의 개발 스택을 가지고 있습니다.
Java8, Spring
Junit5, AssertJ
Mysql, Flyway
AWS (EC2, Cloud Watch, RDS, SQS, SNS, Beanstalk...)
Jenkins, Nginx, Elastic Stack (ELK)
Git & Github
IntelliJ, Postman
Slack, Google Meet, Notion, Jira & Wiki Confluence