#Backend
카카오페이 서버 개발자들이 참여하는 프로젝트와 사용하는 기술, 협업 방식과 기술 문화에 대해 이야기합니다.
발표자 : happy.together 카카오페이 오프라인결제서비스에서 서버 개발을 하고 있는 Happy입니다.
카카오페이서버 개발자로 일한다는 것황지연 Happy.together카카오페이Copyright 2022. Kakao Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao.if(kakao)2022
View Slide
카카오페이 경험협업 방식개발 언어 및 환경기술 전파와 스터디 문화업무의 확장
카카오페이 경험
오프라인 결제 정산- 입사 3주 만에 제주도로 (결제 시스템과 PG에 대한 도메인 학습)
오프라인 결제 정산- 입사 3주 만에 제주도로 (결제 시스템과 PG에 대한 도메인 학습)- 정산을 개발해 본 적 없던 개발자 5명 (모두 입사 6개월 미만, 그중 2명은 1개월 미만)- 정산 도메인 전문 PM 3명
오프라인 결제 정산- 입사 3주 만에 제주도로 (결제 시스템과 PG에 대한 도메인 학습)- 정산을 개발해 본 적 없던 개발자 5명 (모두 입사 6개월 미만, 그중 2명은 1개월 미만)- 정산 도메인 전문 PM 3명- 2주 동안 무에서 유를 만들어 냄- 잇몸으로 초반 데이터 설정
페이상품권- 카카오톡 친구에서 상품권 선물- 받은 친구는 카카오페이 모든 가맹점에서 사용- Kotlin + Spring MVC- MySQL에 상품권, 결제 데이터 저장- Redis로 분산 락 관리- Kafka 프로듀서/컨슈머 구현- MongoDB 조회성 데이터 저장
내 주변- 지도 기반 매장, 멤버십, 혜택 정보 제공- Kotlin + Spring Webflux- 마이크로 서비스들을 비동기로 호출- BFF(Backend For Frontend) 패턴- MySQL에 즐겨찾기 관리
- 인프라가 잘 구축되어 있고, 지원이 잘 된다- 서비스 도메인과 어플리케이션 개발에 집중할 수 있다- k8s 환경에서 MSA 개발을 경험해 볼 수 있다- 결제나 송금 등 돈과 관련된 서비스의 경우, 트랜잭션 처리에 관해 깊게 개발해 볼 수 있다If Kakao Pay
- 인프라가 잘 구축되어 있고, 지원이 잘 된다- 서비스 도메인과 어플리케이션 개발에 집중할 수 있다- k8s 환경에서 MSA 개발을 경험해 볼 수 있다- 결제나 송금 등 돈과 관련된 서비스의 경우, 트랜잭션 처리에 관해 깊게 개발해 볼 수 있다- 금융을 개발해야 하기 때문에 망분리 환경에서 개발해야 한다- 때로 금감원에 제출하는 데이터 작업이 필요하기도 하다- 탈퇴 유저 데이터 분리 보관, 개인 정보 마스킹 등 유저의 개인 정보 보호를 위해 신경써야 할 부분들에 대해 경험할 수있다If Kakao Pay
협업 방식
PM ViewFE목적 조직에 소속. 주로 PM FE와 협업목적 조직BE
PM ViewFERE, QA, ClientViewQA ViewClientViewREBE목적 조직
DevOps ViewSREDevOps, Infra, DBA, SRE, BIViewDBA ViewBIInfra
개발 언어 및 환경
프레임워크언어Java/KotlinScalaGoSpringDBMySQLMongoDB개발 언어 및 환경
AdminAPISpring MVCSpring WebFluxSpring SecurityVue.js, ReactBatchSpring Batch개발하는 어플리케이션
GrafanaAPM트랜잭션/에러 로그 수집 서버 상태 모니터링ElasticHTTP 요청/응답 로그서버 모니터링
T2Krane개발 환경 VM 생성 API 테스트TestLAB성능 테스트서버 개발 지원 인프라
기술 전파와 스터디 문화
카카오페이 기술 블로그
기술 블로그 기고 및 피드백
꼬꼬지(꼬리에 꼬리를 무는 지식)- 프로모션 서버로 기술 찍먹 해보기- GKA - T2 intellij http 통합테스트로 안심하고 배포하기- 통합테스트 어디까지 해봤니? (testContainer, wireMock, etc)- 코루틴으로 spring mvc에서 논블로킹 맛보기- 페이상품권 E2E Test 적용기- 청구서 레거시를 다루는 방법 // 여기는 절대로 수정하지 마세요
- 마이크로 서비스 패턴- 구글 엔지니어는 이렇게 일한다- 코틀린을 다루는 기술- Kotlin in Action- 도메인 주도 설계- DDD Start- 프로젝트 성패를 결정짓는 데이터 모델링 이야기- Neo4j로 시작하는 그래프 데이터베이스스터디 그룹
업무의 확장
데이터 관점페이상품권을 개발하면서데이터를 기반으로 실험과 개선을 반복하는 기법인 그로스해킹을 실무에 도입했습니다.PM과 함께 지표에 대해 토의하고, 빠르게 대응할 수있도록 제플린 대시보드를 개발했습니다.
아이디어 제안아이디어 워크샵을 통해 신규 서비스, 개선 방향에 대해 주기적으로 논의하는 자리가 있습니다.전사적으로 아이디어를 제안할 수 있는 다양한 창구가있습니다.- 아이디어 공모전- 서비스에 대한 개선점 제안- 벤치마킹 사례 공유- 사내 CBT
E.O.D