본문 바로가기메뉴 바로가기


카카오 크루의 일상을 더 이롭게 만드는 ‘플랫폼기술팀’ 이야기

우리는 모두 채용을 통해 만나고 원하는 부서에 발령을 받아 일합니다. 스스로 업무시간을 결정하며 짧고 간결한 회의를 통해 의사결정을 하고, 업무를 하기 위한 비용 이상의 가치를 만들어 좋은 평가를 통해 보상받습니다. 

영입 시스템을 통해 크루의 시작을 함께하고, 카카오의 문화 중 ‘신뢰’를 엿볼 수 있는 스스로 근무시간을 기록하는 근태 관리 시스템부터 인사/재무/총무/계정 시스템 등 카카오 일상의 중심에는 크루들이 안정적으로 업무에만 집중할 수 있도록 고민하고 개발하는 워크 플랫폼 개발자들이 있습니다. 사내 플랫폼 개발을 통해 보다 쉽고 편리한 일상으로 만들어가는 카카오 플랫폼기술팀 워크 플랫폼 개발자들의 이야기를 담아보았습니다.

카카오 크루의 시작, 슬기로운 카카오 생활의 중심에는
워크 플랫폼 개발자들이 있습니다.

카카오가 지속적으로 변화하고 발전함에 따라 이에 대응할 수 있는 시스템이 필요합니다.
워크 플랫폼 개발자들은 이러한 변화에 맞춘 시스템을 갖추고 발전시키는 역할을 하고 있습니다. 

주로 인사/재무/총무/계정과 관련된 영역의 시스템을 개발하고 이를 통해 기존에 수기로 해야 했던 작업들을 모두 자동화하고 있습니다. 최근에는 ‘안녕카카오’의 개발로 크루들은 근무시간을 카카오톡 터치 한 번으로 간편하게 휴가 신청, 근무시간 변경 등을 할 수 있게 만들었습니다.

또한 사내 정보 시스템의 구축으로 복잡한 급여 계산이나 근무시간 계산 등은 모두 시스템에 맡길 수 있게 되어 급여 담당자분들은 급여 계산이 맞는지 매 달마다 반복되는 검증을 하지 않아도 됩니다.
모두 시스템에서 자동으로 계산과 검증까지 끝내주기 때문에 보다 편리하게 반복되는 작업을 진행할 수 있게 되었습니다.

이처럼 워크 플랫폼 개발자들은 크루들의 시간을 아낄 수 있도록, 그렇게 아낀 시간으로 더욱 생산적인 일을 할 수 있도록 사내에서 필요한 서비스를 끊임없이 고민하고 개발하고 있습니다.

✔️ 기술스택

DDD를 지향하는 MSA(Micro service architecture) 기반의 Spring-boot를 기본 프레임워크로 사용하며, Java의 LTS 버전인 8 혹은 11을 사용합니다. 이 외에 spring-batch, spring-data, spring-security 등의 스프링 프로젝트를 적극적으로 활용하고 있고 OAuth2, Event driven, RESTFul API, TDD에 친숙한 편입니다. 

쿠버네티스 환경에 올릴 때는 graceful shut down의 용이성 때문에 2.3 이상 버전으로 올리고 있습니다.  일부 시스템은 Spring Webflux를 사용해서 reactive programming을 경험해 볼 수 있습니다.

프론트엔드는 Jsp+jQuery, Vue.js, React 등 다양하게 쓰이고 있으며, 향후 React의 사용이 늘어날 예정입니다.

최근 진행 중인 기술 관심사는 온프로미스 환경의 시스템을 쿠버네티스 기반의 환경으로 변경하는 것입니다. 셀 별로 스터디를 진행하기도 하고, 사내 강의와 글을 보며 쿠버네티스 사용을 위한 준비를 착실히 하고 있습니다. 2021년 내로 저희 시스템이 쿠버네티스 기반 환경에서 돌아가도록 개선하는 것이 목표입니다.

✔️ 개발 문화 : 명확한 방향성과 목표 그리고 적극적인 참여

JIRA를 이용하여 모든 작업을 기록하며 관리하고 있습니다. JIRA는 내가 어떤 일을 하고 있고 어떤 일을 하게 될 것인가를 모두가 볼 수 있는 비주얼 플래닝 (Visual Planning) 을 할 수 있게 도와주는데 이 과정에서 불필요한 미팅을 줄여 일에 집중할 수 있는 환경을 만들고 있습니다.

JIRA는 2주간 마감 기한을 가지는 스프린트가 반복되며 일을 관리하는데 이 과정에서 발생되는 이슈를 서로 공유하고 해결책을 찾는 과정을 가집니다. JIRA TASK 작업이 끝나면 코드 리뷰 과정을 거치며 작성한 코드에 대해 더 나은 비즈니스 로직이나 설계 방식은 없는지에 대해 논의를 통해 코드를 완성해 나갑니다.

규모와 상관없이 진행했던 모든 프로젝트가 끝이 나면 KPT (Keep / Problem / Try) 기준을 통해 회고 과정을 거치기도 합니다. 회고를 통해 발생되었던 문제점을 되돌아 보고 다음 프로젝트를 진행하기 전에 이를 개선해 똑같은 문제를 겪지 않게 방지하려고 하고 있습니다.

이 모든 과정은 팀원이 같은 목표를 공유하며 적극적인 참여가 있어야 이루어질 수 있습니다. 그렇기 때문에 무엇보다도 팀의 방향성과 목표가 명확해야 한다고 생각합니다. 그래야만 그 가운데 내가 어떤 일을 하게 되며 어떻게 성장할 것 인지를 그릴 수 있기 때문입니다. 

이를 위해 한 해를 마무리하는 시점에 회고를 진행하는데 일 년 동안 팀에서 진행했던 프로젝트와 성과를 되짚어 보고 앞으로 팀에서 진행하려는 일들에 대한 이정표와 목표를 공유하며 카카오에서 팀과 모두가 함께 성장하는 방향에 대해 공유하는 자리를 가지고 있으며, 무엇보다도 모두가 성장하며 즐겁게 일할 수 있는 개발 환경을 만들고자 함께 노력하고 있습니다.

✔️ 목표

워크 플랫폼 개발자들은 회사를 운영하기 위한 근간의 영역과 크루가 효율적으로 좀 더 가치 있는 회사 생활을 할 수 있도록 하는 많은 것을 제공합니다. 기본기에 대한 목표는 국가 정책과 법령부터 회사의 정책 또는 전략, 크루의 일하는 방식 등 다양한 기준점을 가지는 변화에 최대한 빠르고 안정적으로 대응할 수 있는 시스템 구조와 기술 역량을 갖추고 발전시켜 나가는 것입니다. 

또 다른 관점에서의 목표는 회사와 크루에게 저희를 통해 생산되는 양질의 데이터를 해석하고 가공하여 인사이트를 줄 수 있는 시스템을 제공하는 것입니다. 궁극적으로는 회사와 크루에게 최고의 시스템을 제공하고 높은 퀄리티의 피드백을 받는 과정이 선순환 되도록 하여 회사와 크루 그리고 시스템과 우리가 함께 지속적으로 성장할 수 있는 기반을 마련하는 것입니다.

워크 플랫폼 파트는 카카오 크루의 순간순간을
효율적으로 만들기 위한 고민을 합니다.

워크 플랫폼 분야에서 요즘 핫한 이슈

요즘 코로나(COVID-19) 상황으로 인해 워크 플랫폼에서 ‘언택트’와 ‘디지털’이 중요해졌습니다. 크루들이 한 공간에 있지 않아도 동일하게 일할 수 있는 환경을 제공할 수 있어야 합니다. 비대면으로 일할 때 동일한 환경을 제공하기 위해서 많은 시스템이 편리하게 제공되어야 합니다.

그리고 크루들의 개인 정보 데이터입니다. 저희는 크루의 처음부터 끝까지 모든 데이터를 책임지고 관리하는 조직입니다. 그렇기 때문에 크루의 모든 데이터들이 팀과 회사에 어떠한 성과를 가져다주는지 파악하고, 회사와 개인에게 어떤 방향으로 나가야 서로가 서로에게 긍정적인 영향을 미칠지 분석해야 합니다. 지금 당장은 조금 부족한 부분이 있지만 최종 목표를 향해 조금씩 조금씩 나아가고 있습니다.

플랫폼 개발자의 가장 큰 매력

✔️ 카카오 워크 플랫폼 개발자로서 경험할 수 있는 것들

카카오 인사 및 회계 등의 비즈니스 업무 지식을 직접적으로 경험할 수 있고, 복잡도가 높고 다양한 업무의 프로세스를 시스템으로 구현해 가는 과정에서 높은 난이도의 문제를 해결해가는 성취감을 느낄 수 있습니다. 

워크 플랫폼 개발자는 요구 사항이 명확한 크루가 필요로 하는 시스템을 만드는 것이 큰 매력 중 하나인데요,  서비스가 필요한 조직 또는 크루와 다양하고 직접적인 커뮤니케이션을 통해서 기획/개발을 하고 서비스를 릴리즈합니다.

이후 즉각적인 크루의 피드백을 받으면서 맞춤 정장과 같이 fit한 서비스를 완성해 나가면서 즐거움을 느낍니다. 이러한 과정을 통해 좀 더 고품질의 서비스를 스스로 생각할 수 있게 되고, 다양한 상황과 마주치며 스스로를 성장시켜 나갈 수 있습니다.

IT업계 속어 중 ‘개밥 먹기’라는 말이 있는데요, ‘개발한 제품을 직접 써보면서 사용자 입장을 느껴보는 것’을 의미합니다. 워크 플랫폼 개발은 나와 내 동료가 사용할 시스템을 만드는 점에서도 큰 매력을 가집니다. 

개밥 먹기를 하면서 사용자 입장에서 불편한 점들을 개선해 나가며 소프트웨어 품질을 향상시켜 나갈 수 있는데요, 워크 플랫폼 시스템들은 스스로가 개발자이자 사용자이기 때문에 개밥 먹기가 잘 이루어져 사용자 입장에서 생각할 수 있는 기회가 많다는 점이 매력이라고 생각됩니다.

워크 플랫폼은 크루들의 업무 환경을 개선하는 역할을 하기 때문에 저희가 내는 결과물이 크루들의 컨디션에 많은 영향을 끼친다고 생각하고 있습니다. 더 효율적으로 일하는 크루들이 더 좋은 결과물을 낼 수 있다고 믿기 때문에 항상 최선의 결과물을 내려고 노력합니다.

✔️ 플랫폼기술팀 개발자에게 필요한 자세와 스킬

첫 번째는 업무 설계 능력입니다. 인사/재무 등 복잡한 업무에 대한 다양한 요구 사항 속에서 핵심을 찾아내서 최적화된 업무 설계를 할 수 있어야 합니다.

두 번째는 커뮤니케이션 능력입니다. 다양한 크루들과 원활하게 커뮤니케이션을 하고 그 과정에서 개선 포인트를 파악해서 주도적으로 시스템을 완성해 나가면 좋습니다.

세 번째는 함께 성장하려는 자세입니다. 다양한 서비스/업무에 대해서 끊임없는 학습, 다른 크루들의 코드 리뷰, 서로 열린 마음으로 토론을 하려는 자세가 중요합니다.

워크 플랫폼 서비스를 이용해서 크루들의 니즈를 충족시키는 부분에서 자부심을 가지고 일하고 있습니다.

워크 플랫폼 개발자들의 현재 그리고 앞으로의 계획

최근 카카오톡 챗봇을 활용해서 크루는 언제 어디서든 근무시간/휴가를 쉽게 조회/등록/수정할 수 있는 시스템을 개발하여 오픈하였으며, 현재는 전자 결재 시스템 고도화 작업, 신규 사내 계정 시스템 구축/개발과 더불어 카카오 공동체 모든 법인이 사용할 수 있는 재무 시스템을 새롭게 구축하는 프로젝트를 진행하고 있습니다. 또한, 시스템의 셀프 힐링과 스케일 아웃의 용이함을 위해 운영 중인 시스템을 점진적으로 쿠버네티스 환경으로 전환 중입니다.

워크 플랫폼 개발자들은 크루의 편리함을 위해 많은 서비스를 개발하고 계획하고 있습니다.

내년에는 카카오 모빌리티를 시작으로 카카오페이, 카카오브레인 등 여러 공동체에 카카오가 개발한 편리한 사내 시스템을 활용할 수 있도록 순차적으로 구축하는 것을 계획하고 있는데요, 카카오가 개발한 멋진 시스템을 공동체에서도 사용할 수 있도록 더 유연하게, 확장 가능하도록 리팩토링하며 전파하고 있습니다.

또한 현재 퀵링크만 제공하는 홈을 개편하여 회사와 크루의 소식지가 되는 홈을 계획하고 있으며, 크루들의 사내 포털이 되어줄 시스템 개발 프로젝트와 총무 구매와 일반 구매로 나누어진 구매 시스템을 통합하는 프로젝트 등 많은 계획이 있습니다.

크루들의 한마디 

jackjack

연차와 상관없이 누구나 열린 생각으로 의견을 나눌 수 있는 곳입니다. 얼마 전에 15년차 시니어 개발자와 2년 차 주니어 개발자가 코드리뷰 시스템에서 팽팽하게 줄다리기를 하고 있는 상황을 보고 다양한 의견을 자유롭게 낼 수 있는 개발 문화를 가지고 있다고 생각합니다.

eric

누구나 자유롭게 의견을 제시할 수 있다는 게 참 좋았습니다. 예를 들어서, 저희 팀에는 이야기하고 싶은 점이 있다면  손들고(?) 팀원들을 모으는 제도인 포커스 미팅이라는 제도가 있습니다. 누구나 의견을 제시할 수 있고 이에 대해서 치열하게 토론을 벌이기도 합니다. 일단 발제가 되어 논의를 할 때는 정말 치열하게 논의합니다. 연차, 직급과 관계없이 하나의 주제를 진지하게 토론하는 모습은 저희 팀 문화의 가장 큰 장점이라고 생각합니다. 그리고 그 자리에서 논의를 통해 정해진 것은 팀 문화에 바로 반영이 되곤 합니다.

개발 문화나 팀 문화나 이렇게 할 말을 다 할 수 있다는 점은 정말 매력적이라고 생각합니다. 하고 싶은 기술이 있으신가요? 포커스 미팅을 소집하고 팀원들을 설득해보세요! 설득에 성공한다면 그 즉시 팀원들은 그 기술에 대해 알아보고 사용하려고 시도하기 시작할 겁니다.

ted

일하기 좋은 문화를 경험하고 싶으시다면 지원해 주세요! 연차와 상관없이 본인의 의견을 공유하며 주도적으로 일을 할 수 있습니다. 또 서비스 도입을 위해 새로운 기술을 함께 스터디하며 함께 성장해 가는 경험도 같이 느껴보실 수 있을거예요.

elly

1년 동안 카카오에서 근무하면서 다양한 경험을 할 수 있었습니다! MSA, DDD, React, TypeScript 등 여러 기술을 이용해 실제 서비스를 개발해 볼 수 있었고, 팀 내에서 코드 리뷰, 회고 등을 통해서 개발에 대한 고민을 동료들과 자유롭게 나누면서 성장하고 있다는 기분이 들었습니다. 그리고 인사/재무시스템 같은 도메인을 깊이 경험하며 개발자로서 전문성도 함께 키울 수 있다는 점이 좋았습니다.

wade

카카오가 세상의 많은 사람을 위한 시스템을 만들어 가고 있다면, 플랫폼기술팀 워크플랫폼파트는 카카오라는 법인과 크루를 위한 시스템을 만드는 개발 부서이며, 카카오라는 법인과 그 안에서 함께 일을 하고 있는 크루의 다양한 업무 및 회사 생활을 위한 시스템을 만드는 일을 합니다.

법인(기업)이 운영될 때 반드시 지켜져야 하는 법규와 제도를 성실하게 수행하기 위한 인사 및 회계 등 경영상의 다양한 업무 관리를 시스템으로 구축하고 운영하며, 카카오의 입사 지원을 시작으로 크루가 사용하는 계정의 생성과 매월 급여가 빠짐없이 지급되고, 업무할 때 필요한 회의실을 예약하고 사용한 법인카드를 쉽게 정산하고 필요한 결재를 처리할 수 있도록, 그리고 자신의 휴가를 등록하고 근무시간을 기록하는 등 회사의 제도와 복지를 크루가 보다 편리하게 사용할 수 있는 웹 서비스를 개발하고 있습니다.

카카오의 성장과 크루의 회사생활과 업무에 도움이 되는 시스템을 만들고 가꾸어 가는 것이 가장 큰 보람이라고 생각하며, 여느 기업이 구축하는 시스템과는 다른 카카오만의 문화를 지켜갈 수 있는 그리고 카카오의 개발자다운 멋진 시스템을 만들어 가는 것에 자부심을 갖고 일하고 있습니다.


재무시스템 개발자 모집 바로가기 >>

인사시스템 개발자 모집 바로가기 >>

계정시스템 개발자 모집 바로가기 >>

kakao tech
kakao tech Developer Relations at kakao corp.
Top Tag
2021
2021-new-krew
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
App2App
applicative
Architecture
arena
ast
async
aurora
babel
babel7
Backend
BApp
bgp
big-data
ble
blind-recruitment
block
Block Chain
blockchain
bluetooth
brian
business
Cache
cahtbot
Caver
cd
ceph
certificate
certification
cgroup
ci
cite
client
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
codereview
coding
competition
component
conference
consul
container
contents
contest
core-js@3
couchbase
COVID-19
cpp
Data
data-engineering
DB
deep-learning
dependency-graph
dev
dev-session
dev-track
developer
developer relations
developers
devops
digitalization
digitaltransformation
dns
docker
dr
employeecard
eslint
Feature List
Featured
friendstime
front-end
frontend
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
globalpollution
go
graphdb
graphql
Ground X
growth
ha
hadoop
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
if kakao
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
jsconf
jsconfkorea
json
k8s
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocommerce
kakaocon
kakaoenterprise
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KAS
KCDC
khaiii
Klaytn
Klip
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
monorepo
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
planning poker
Platform
polyfill
programming-contest
project-structure
pycon
python
quagga
react
reactive-programming
reactor
recap
recommendation
recruitment
redis
redis-keys
redis-scan
related-blind
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
typescript
update
User Story
vim
vim-github-dashboard
vim-plugin
vue
vue.js
web-cache
webapp
WebSocket
weekly
work
workplatform
All Tag
2021
2021-new-krew
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
App2App
applicative
Architecture
arena
ast
async
aurora
babel
babel7
Backend
BApp
bgp
big-data
ble
blind-recruitment
block
Block Chain
blockchain
bluetooth
brian
business
Cache
cahtbot
Caver
cd
ceph
certificate
certification
cgroup
ci
cite
client
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
codereview
coding
competition
component
conference
consul
container
contents
contest
core-js@3
couchbase
COVID-19
cpp
Data
data-engineering
DB
deep-learning
dependency-graph
dev
dev-session
dev-track
developer
developer relations
developers
devops
digitalization
digitaltransformation
dns
docker
dr
employeecard
eslint
Feature List
Featured
friendstime
front-end
frontend
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
globalpollution
go
graphdb
graphql
Ground X
growth
ha
hadoop
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
if kakao
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
jsconf
jsconfkorea
json
k8s
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocommerce
kakaocon
kakaoenterprise
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KAS
KCDC
khaiii
Klaytn
Klip
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
monorepo
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
planning poker
Platform
polyfill
programming-contest
project-structure
pycon
python
quagga
react
reactive-programming
reactor
recap
recommendation
recruitment
redis
redis-keys
redis-scan
related-blind
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
typescript
update
User Story
vim
vim-github-dashboard
vim-plugin
vue
vue.js
web-cache
webapp
WebSocket
weekly
work
workplatform

위로