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