brunch

매거진 Work

You can make anything
by writing

C.S.Lewis

by 카카오뱅크 Plus Aug 26. 2022

서비스의 신뢰성을 책임지는 아키텍트 이야기

경계를 넘나드는 직무


Intro


카카오뱅크 아키텍트는 어떤 일을 어떻게 하고 있을까요?

직무에 대해 조금 더 알아보는 시간, 경계를 넘나드는 직무 이야기를 통해 확인해 보세요.

뱅킹 아키텍트 공고 확인하기

서비스 아키텍트 공고 확인하기



차례대로 Eric, Randy, Ader, Locke



Q. 안녕하세요. 인터뷰에 참여해주셔서 감사합니다. 간단한 소개 부탁드려요.


Eric. 뱅킹아키팀의 에릭입니다. 뱅킹아키 전반의 시스템 설계, 관리와 운영, 트러블 슈팅 등을 하고 있습니다.


Randy. 뱅킹아키팀의 랜디입니다. 뱅킹아키팀에서 계정계 및 작업 자동화, EDMS, 리포트 등의 솔루션을 담당하고 있습니다. 뱅킹 코어인 계정계와 계정계 관련 솔루션들이 안정적으로 운영될 수 있도록 관리하고 모니터링하면서 개발과 트러블슈팅도 하고 있습니다.


Ader. 뱅킹아키팀 아더입니다. 저는 대외기관 시스템 연계를 담당하고 있고 FEP, EAI와 같은 인터페이스를 담당하고 있습니다.


Locke. 서비스아키팀 로크입니다. 서비스아키팀에서 API Gateway의 개발 및 운영을 하고 있습니다. 채널의 거의 모든 요청을 처리하는 시스템이라고 생각해주시면 될 것 같고요. 그 밖에도 Redis, RabbitMq, Consul, Terraform, Vault, Minio 등 미들웨어 설치 및 운영 관리나 Kotlin, Webflux로 만들어진 대기표 시스템을 개발, 운영하는 일도 합니다.



Q. '아키텍트'라는 직무를 낯설게 느끼는 분들이 많을 것 같아요. 아키텍트는 어떤 일을 하나요?



Eric. '아키텍트'라고 검색을 해보면 가장 먼저 나오는 뜻이 '건축가'에요. 건축하는 사람은 어떤 건물을 짓기 전에 주위 환경을 분석하고 어떤 구조와 형태로 설계할지, 어떤 느낌과 분위기로 만들지 고민을 하죠. 저희가 하는 일도 비슷해요. IT의 범주로 가져와 생각해보면 어떤 시스템을 구성하기 위해 이 시스템이 가져야 하는 특징, 제반사항, 다른 시스템과의 호환성, 사용성을 고려하고, 안전하고 견고한 시스템을 구성할 수 있도록 기초를 설계하는 사람이라고 생각하면 됩니다. 카카오뱅크에는 뱅킹 아키텍트, 서비스 아키텍트, 솔루션 아키텍트가 있어요. 



Q. 서비스 아키텍트, 뱅킹 아키텍트에 대한 이야기를 조금 더 듣고 싶네요. 


Locke. 서비스 아키텍트는 은행의 코어 시스템인 계정계를 감싸고 있는 '채널계' 시스템을 관리하고 있어요. 채널계에서는 카카오뱅크 모바일 앱에서 오는 다양한 요청을 처리하고 있습니다. 신규로 생기는 프로젝트의 표준 개발 환경을 만들어 제공하고, 보다 편한 개발 환경을 구축하려고 노력하고 있는데요. 카카오뱅크의 서비스가 갈수록 다양해지고 있어 지속 가능하고 확장 가능한 시스템을 만들기 위해 고민하고 있고, 유연한 아키텍처를 위한 새로운 기술을 먼저 도입하고 가이드하고 있습니다. 


Spring Boot로 만든 서비스를 올리고 다양한 미들웨어(redis, rabbitmq 등)를 직접 구축하기도 합니다. 뿐만 아니라 private kubernetes cluster를 구축해보기도 하고, golang을 사용해서 custom terraform provider를 개발하기도 하는 경우도 있고, OpenTelemetry 기반의 모니터링 시스템을 새로 구축해보기도 해요. 물론 혼자 다 하는 건 아니죠. (웃음)



모니터링 시스템을 개발, 운영하며 트러블 슈팅을 하기도 해요. 예를 들면 OS 문제나 Java의 버추얼 머신 상의 문제와 같이 개발자 분들이 찾기 어려운 문제가 있기도 하거든요. 트러블 슈팅 결과와 해결 방법을 개발자와 상의하며 서비스의 완성도를 높이는 작업을 합니다.


마지막으로 장애가 발생하더라도 다른 서비스에 전파되지 않도록 빠르게 장애 대응을 하거나, 시스템 아키텍처 개선을 고민합니다. 서비스를 안정적으로 운영할 수 있는 다양한 방법을 모색하고 신뢰성을 더해가는 사람들이라고 볼 수 있겠네요.



Randy. 뱅킹아키 역시 로크가 말씀하신 서비스아키와 하는 일이 다르지 않아요. 두 팀의 다른 점은 서비스아키가 채널계 시스템을 관리한다면 뱅킹아키는 보다 금융에 초점이 맞춰진 계정계 시스템을 관리하고 있다고 보시면 돼요. 그리고 각 요소를 구성하는 기술(솔루션) 셋이 다르다 정도 일 것 같습니다.


뱅킹아키팀은 프로젝트 표준 개발환경을 제공하고 대용량 트래픽을 효율적으로 처리하기 위해 고민하고 있습니다. 또 장애가 전파되지 않도록 중간중간 벽을 세우고 빠르게 이슈 트래킹 할 수 있는 방법을 설계하고 있어요. 카카오뱅크의 코어 영역인 계정계 시스템이 안정적이고 연속성 있게 서비스를 제공할 수 있도록 개발하고 유지하는 역할이라고 보시면 될 것 같아요.



Q. 카카오뱅크가 고객에게 꾸준한 신뢰감을 받을 수 있었던 것도 안정적으로 시스템을 설계하고 운영한 아키텍트의 역할이 아주 중요했을 것 같네요. 


Randy. 카카오뱅크는 대용량 트래픽을 받는 은행이잖아요. 대용량 트래픽을 어떻게 효율적으로 분산시킬지, 어떤 기준으로 분산할지, 트랜잭션은 어떻게 처리할지 등에 대한 많은 고민이 담겨 설계되어 있어요. 카카오뱅크를 둘러싼 주변 환경과 시스템은 계속 변하고 있고 트래픽도 점점 늘어나고 있죠. 서비스도 다양해지고 있고요. 변하는 상황에 따라 카카오뱅크의 계정계도 한 곳에서 머무르지 않고 계속해서 적합한 해법을 찾아가는 과정을 겪고 있습니다. 팀원들과 같이 여러 가지 관점으로 고민하고 접근해본 결과로 안정적으로 잘 처리하는 시스템을 보면 뿌듯함을 느낍니다.





Q. 카카오뱅크에서 아키텍트로 일하며 좋은 점이 있는지 궁금해요.


Eric. 보통 금융회사에서 아키텍트의 역할은 상당히 세부적으로 나뉘어 있어요. 하지만 카카오뱅크에서는 업무의 범위를 제한하지 않고 많은 부분에 접근할 수 있어요. 제가 관심이 있으면 모든 것을 볼 수 있고, 그 누구도 여기까지만 하라고 말하는 사람이 없어요. 그렇기 때문에 나무만 보는 게 아니라 시스템 전반이라는 숲을 보게 됩니다. 이 숲을 넓고 아름답게, 유려한 경관으로 만들기 위해 많은 것을 고민하고 실행해볼 수 있어요. 금융 회사 시스템이라고 하는 전체적인 숲을 볼 수 있는 경험을 할 수 있다는 점이 좋아요.





# 채용공고 함께 읽기


Q. 이제 채용공고의 '담당업무'를 같이 살펴보려고 하는데요. 우선 서비스 아키텍트부터 살펴볼게요. 서비스 아키텍트 입사자는 어떤 업무를 하게 되나요?

담당할 업무

· 어플리케이션 아키텍처(AA) 설계 및 운영
· 오픈소스 기반의 미들웨어(Apache, Nginx, Redis, Rabbitmq 등) 설치
· 서버 / 어플리케이션 성능 모니터링 시스템 구축
· 서비스 및 시스템 관련 장애 대응 등 문제 해결
· RESTful API 설계 및 개발


Locke. 처음 입사하면 팀 동료와 함께 새로운 프로젝트를 함께 진행해 봐요. 프로젝트 오픈까지 함께 해보거나 설계, 배포 시스템 설정, 미들웨어 설치 등 여러 과정을 쭉 경험하고 관심 있는 분야에 정착하게 됩니다. 담당할 업무가 많지만 이 모든 것을 해본 분을 찾는 건 아니에요. 개발에 흥미가 있고 잘하는 분이라면 아키텍트 경험이 없어도 얼마든지 지원이 가능해요. 개발자라면 '이런 것을 이렇게 설계해 보고 싶다'라고 전체적인 관점에서 생각해 본 적이 분명 있을 거거든요. 



Q. 뱅킹 아키텍트는 쉽게 볼 수 없는 직무인 것 같아 더 궁금하네요.

담당할 업무

· 뱅킹 시스템 아키텍트 업무 전반
· 금융 업무 시스템 개발 및 운영 지원
   - 뱅킹 도메인 업무(계정계, 단위) 시스템 
   - 인터페이스(MCI, FEP, EAI 등) 시스템
   - 통합단말, 리포트, 이미지 관리 시스템 
   - 작업 자동화 및 금융 특화 솔루션
   - 금융 업무시스템 사용자 권한 관리 및 개발
· 전행 주요 기술 과제 수행
· 서비스 및 시스템 관련 장애 대응 등 문제 해결
· 트러블 슈팅 및 신뢰성 향상 엔지니어링


Randy. 담당할 업무에 기재된 것은 뱅킹아키팀에서 하고 있는 굵직굵직한 업무들이에요. 뱅킹 시스템의 내부는 어떻게 설계하고 밖은 또 어떻게 설계할지, 기술 요소 간 연결을 어떤 방식으로 하고 구성은 어떻게 할지에 대한 아키텍처를 설계하는 업무라고 보시면 돼요. 시스템의 안정성과 성능에 대해 고민하며, 전체적인 숲을 보는 일을 좋아하시는 분을 찾고 있습니다.


Eric. 꼭 아키텍트가 아니더라도 더 큰 그림을 설계해보고 싶거나 오픈 소스를 통해 금융권 시스템을 개발해보고 싶다는 욕심이 있다면 카카오뱅크에서 해보실 수 있습니다.





Q. 필수 경험과 역량이 여러 개 기재되어 있는데요. 혹시 각 직무별로 중요하게 보고 있는걸 딱 하나만 골라주신다면요?

필수 경험과 역량

뱅킹아키
· Java 기반 개발 경력 3년 이상인 분
· Linux 사용이 능숙한 분
· 소프트웨어 아키텍트 또는 시스템 공통 업무 경험이 있는 분

서비스아키
· Spring F/W 기반 대용량 시스템 설계 및 개발/운영 경험이 있는 분
· Linux 환경에서 오픈소스 기반의 미들웨어 설치 및 운영 경험이 있는 분
· JVM 기반의 어플리케이션 트러블 슈팅 및 성능 개선 경험이 있는 분
· Server, Network, DB 등 IT기술 전반에 대한 이해가 있는 분
· 관련 경력 3년 이상인 분


Ader. 뱅킹아키팀은 주로 Java를 사용하고 있어서 'Java 기반 개발 경력 3년 이상인 분'을 중요하게 보고 있어요. 자바 내부의 메모리 구조나 Garbage Collection 등 내부 구조와 동작을 잘 알고 쓰는 개발자면 더 좋을 것 같아요. 


Locke. 서비스아키팀은 'Spring F/W 기반 대용량 시스템 설계 및 개발/운영 경험이 있는 분'을 꼽고 싶습니다. 최근에는 Webflux와 같은 non-blocking 기반의 프레임웍을 적용하고 있어서 최신 트렌드에 관심을 가진 분을 선호하고 있어요. 



Q. 우대사항도 하나씩 골라보면 좋을 것 같아요.

우대사항

뱅킹아키
· 금융서비스 중계 인프라(MCI, FEP, EAI) 솔루션 개발/운영 관리 경험을 보유한 분
· 프레임워크(상용 프레임워크, Spring 등 ) 활용하여 개발 및 확장 경험을 보유한 분
· 오픈 소스 기반 으로 시스템 설계/구축/운영 경험을 보유한 분

서비스아키
· 동시 접속량이 많은 서비스 설계 경험이나 관련 기술에 관심이 많은 분
· 지속적인 기술 습득을 통한 개인 및 조직의 역량 강화에 관심이 많은 분
· 개발 생산성 향상 및 운영 환경 개선에 적합한 오픈소스 솔루션 활용에 관심이 많은 분
· 컨테이너 오케스트레이션(Kubernetes 등) 구축 및 설계 경험이 있는 분
· 성능 및 부하 테스트를 통한 서비스 개선 및 최적화 경험이 있는 분
· 다양한 환경의 Cloud 기반의 개발 및 운영 경험이 있는 분


Eric. '오픈 소스 기반 솔루션으로 시스템 설계/구축/운영 경험을 보유한 분'을 고르고 싶어요. 시스템 하나를 구현하고 실제 오픈하고 운영하는 사이클을 작게라도 경험해본 분(토이 프로젝트도 상관 없어요)이 지원해주신다면 어떤 고민과 과정을 거쳐 시스템을 구축했는지 이야기를 들어보고 싶습니다.


Locke. 저는 '지속적인 기술 습득을 통한 개인 및 조직의 역량 강화에 관심이 많은 분'이 중요한 것 같아요. 시스템이 대부분 오픈소스로만 구성이 되어 있어서 새로운 것이 나오면 빠르게 도입해 적용해봐야 하거든요. 트렌드에 민감하고, 꾸준히 학습을 하며 팀 동료와 지식을 나눌 수 있는 분이라면 좋겠습니다.



Q. 은행이나 금융회사 경력이 필수적일까요?


Eric. 뱅킹아키팀에는 금융 회사 출신이 아닌 분도 많아요. 이미 팀에 금융 도메인에 대해 잘 아는 구성원이 많아서 오히려 '꼭 금융회사 경험이 있어야 해?'라고 생각하고 있어요. 금융회사 경험이 있던 없던 다양한 의견과 관점을 모아 결정을 하고, 서로의 경험을 통해 시야가 넓어지는 걸 느끼고 있거든요. 



금융 업무 시스템은 금융 회사가 아니면 다루기 어렵다고 생각하시고 지원을 머뭇거리는 경우를 보았는데요. 직접적인 관련 경험보다 더 중요한 게 생각의 깊이와 흐름이라 생각해요. 시스템을 구성하는데 얼마나 많은 고민을 했는지, 트랜잭션을 처리하기 위해 생각했던 방안은 무엇이고 그것을 어떻게 표현했는지를 보고 있어요.


Ader. 저는 전 회사가 핀테크 회사였어요. 결제 서비스의 백엔드 개발을 담당했었는데 지금은 뱅킹아키팀에서 일하고 있죠. 내부적으로 금융 도메인에 대해 잘 정리된 문서가 많고 교육 세션도 준비되어 있어서 금융 도메인에서 일하지 않은 분도 카카오뱅크에서 어려움을 겪지 않으실 거예요.


Locke. 저는 이커머스 회사에서 왔어요. 서비스아키팀은 오히려 IT 회사에서 일하고 있는 실력 있는 개발자가 어울리는 곳인 것 같습니다.





# 합격 꿀팁


Q. 자기소개서에 문항이 없다 보니 서류전형에서 합격하기 위해 어떤 점을 입사지원서에 담아야 할지 고민인 분들이 계실 것 같네요.


Locke. 프로젝트 경험을 작성하실 때 가끔씩 '이런 일을 했다'라고만 서술하시는 분이 있는데, 기술 스택과 프로젝트에서의 기술 사용 경험을 꼭 작성해주시면 좋을 것 같습니다.


Randy. '아 이런 일을 했구나!', '어디에 강점이 있겠구나!'를 알 수 있다면 좋은 입사지원서라고 생각합니다. 본인이 했던 일을 좀 더 명확하고 상세하게 표현해 주신다면 확신을 갖고 '합격'을 드릴 것 같아요.


Ader. 저는 여기 계신 분 중 가장 최근에 입사했는데요. 입사지원서를 쓸 때 제가 좋아하고 잘하는 일에 초점을 맞췄어요. 전 직장에서 좋아하는 일로 사이드 프로젝트를 진행했었는데 어떤 방법을 썼고 어떤 결과가 있었는지 작성했습니다. 카카오뱅크 안에도 분명 내가 좋아하는 일이 필요한 팀이 있을 거고, 그 팀에서 내 입사지원서를 재미있게 읽어주지 않을까?라고 생각했거든요. 그래서 뱅킹아키팀에 입사하게 된 게 아닐까 싶네요. (웃음)



Q. 실무진 면접전형은 어떻게 진행되나요?


Eric. 면접에서는 코드 리뷰를 하고 경력기술서를 바탕으로 이야기를 나누게 됩니다. 우선 코드 리뷰와 경력사항 모두 과거의 일이기 때문에 면접 시작 전 복기를 하고 오시면 큰 도움이 될 거예요. 코딩테스트를 수행하는 시간이 제한적이다 보니 구현을 하지 못한 것도 있을 텐데요. 완벽하게 해 주시면 가점이 되지만 부족한 부분이 있다면 코드 리뷰 과정에서 보완, 개선 방법에 대한 의견을 나누기도 합니다.


Locke. 저희도 뱅킹아키팀과 비슷하게 진행하고 있어요. 경력기술서를 보며 지원자 분이 사용했던 오픈소스나 개발했던 서비스의 아키텍처에 대한 질문을 많이 드리고 있습니다. 왜 사용했는지 또는 잘 이해하고 있는지에 대한 질문이죠. 새로운 오픈소스와 기술 트렌드에 대해 이미 잘 알고 있는 것도 좋지만 앞으로의 성장 가능성도 많이 보고 있어요. 





Q. 공고에 담진 못했지만 이 이야기는 꼭 하고 싶다!라는 게 있다면?


Eric. 저의 전 직장(금융권)에도 아키텍트라는 직무가 있었는데, 그때는 개발을 많이 하지 않았던 것 같아요. 주로 전체적인 구조를 설계하고 관리 감독(?)하는 역할이었던 것 같기도 한데요. 카카오뱅크의 아키텍트는 설계뿐만 아니라 직접 어플리케이션 구현까지 참여하고 있어서, 개발자로서 성장도 할 수 있는 곳입니다. 


Ader. 저도 처음 뱅킹아키팀에 왔을 때 '나는 개발하는 걸 좋아하는데 개발 못하는 거 아닐까?'라는 걱정을 잠깐 했어요. 하지만 여기 와서 보니 오히려 더 재미있고 다양한 개발을 할 수 있게 된 것 같아요. 개발을 좋아하고 잘하는 분이 많이 오셨으면 좋겠어요. 만족하실 수 있을 것입니다!


Randy. 뱅킹아키 업무 외에도 각자 원하는 사이드 프로젝트를 할 수 있어요. 함께 할 동료도 많고요. 꼭 업무와 관련된 기술이 아니더라도 새로운 기술을 사용하거나 개인 프로젝트를 해볼 수 있는 환경이니 많은 지원 부탁드립니다.


Locke. 카카오뱅크는 은행이긴 하지만 은행에 접목할 수 없는 기술도 시도해보고 적용해보려 하고 있어요. 혁신을 하고 싶다, 새로운 것을 만들어보고 싶다는 분에게는 좋은 회사이니 많이 지원해 주세요.







· 서버 개발자 집중 채용 공고 보러 가기

· 나의 개발이 세상을 바꾼다고? 서버 개발자 집중 채용 살펴보기

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari