주니어 SA 성장기 – Solution Architect 직무란 무엇일까요?
ICT CoE팀 SA 파트를 소개합니다!
안녕하세요. KT 영업 전산 시스템인 KOS(KT One System)의 Solution Architect 업무를 담당하고 있는 ktds ICT 사업본부 ICT CoE팀의 SA 파트입니다.
Solution Architect는 시스템 개발에서 요구사항을 분석하고 적절한 솔루션을 채택하여 아키텍처를 설계하고 구현하는 업무를 합니다.
KOS는 수년간의 계획, 분석, 개발, 테스트 단계를 거쳐 Nexacro, Oracle ESB, ProObject 등의 솔루션 기반으로 설계되었습니다.
저희 파트는 대규모 시스템인 KOS의 솔루션을 운영하며 발생하는 문제에 대한 해결 방안을 제시하고, 이러한 과정에서 여러 개발팀, 운영팀과 협업하며 시스템을 안정적으로 운영하고 있습니다.
이번 글에서는 Solution Architect 실무자로 거듭나기 위해 노력했던 저희 주니어 SA 파트 팀원들의 성장 과정을 담았습니다.
Step1 – 업무에 앞선, 기본 아키텍처 공부
아키텍처란 무엇일까요? KOS SA로서 업무를 시작하기에 앞서 아키텍처의 개념과 발전 과정 등 기본 개념부터 공부해 보기로 했습니다. 따라서, 다양한 소프트웨어 아키텍처 패턴에 대해 리서치를 통해 기본지식을 쌓았습니다.
우선, 대표적인 아키텍처 패턴인 Monolithic, SOA와 MSA 아키텍처에 대해 간단히 설명드리겠습니다.
Monolithic Architecture
전통적 아키텍처이며, 소프트웨어의 모든 구성요소인 클라이언트 앱, 서버, 데이터베이스, 캐시 등이 하나의 거대한 애플리케이션으로 개발됩니다.
모든 기능이 같은 애플리케이션에서 실행되므로 통신 오버헤드가 작으며, 배포 과정이 상대적으로 단순하다는 장점이 있어 소규모 프로젝트에 주로 사용됩니다.
모든 구성 요소가 밀접하게 결합되어있어 소프트웨어 업데이트 시 다른 기능에도 영향을 줄 수 있어 스케일링이 어렵고 유지 보수가 힘든 단점이 있습니다.
SOA(Service Oriented Architecture)
서로 느슨하게 결합되어있는 거시적으로 분리된 서비스들을 통해 하나의 큰 애플리케이션을 구성한 아키텍처 패턴입니다.
ESB(Enterprise Service Bus)를 통해 서비스를 중앙 집중화하여 관리하여 서비스 간 상호 운용이 용이하며 서비스 재사용이 높습니다. 비즈니스 요구사항 변화 시 유연하게 시스템을 변경할 수 있는 장점이 있습니다.
독립된 서비스 간 인터페이스 관리와 구축에 초기 설정 비용이 높으며, ESB를 이용한 중앙 집중화된 관리 면에서 기술적 제한이 있을 수 있는 단점이 있습니다. 주로 복잡한 비즈니스 로직을 가진 대규모 엔터프라이즈 시스템에서 사용됩니다.
MSA(Microservice Architecture)
하나의 큰 애플리케이션을 여러 개의 작은 서비스 단위로 분리한 아키텍처 패턴입니다.
각 서비스는 독립적으로 배포되고 변경이 가능하여 특정 비즈니스 기능별 유연한 확장을 할 수 있습니다. 분산된 서비스로 개발하여 생산성이 향상에 장점이 있습니다.
여러 서비스 간 네트워크 통신 오버 헤드가 발생할 수 있으며, 분산된 데이터베이스를 사용하므로 서비스 간 데이터 일관성을 유지하기가 어려워 적절한 보상처리를 해줘야 하는 단점이 있습니다.
Monolithic, SOA와 MSA는 각각이 추구하는 철학과 구현 방식이 다릅니다. 소프트웨어 패턴별 장단을 고려하여 비즈니스 요구사항에 맞는 아키텍처를 선택하는 것이 중요하다는 것을 깨달았습니다.
물론, 위에서 설명해 드렸던 내용 외에도 소프트웨어는 빠른 속도로 발전하며, 매년 트렌드가 변화하기 때문에 공부해야 하는 아키텍처 영역은 무궁무진합니다.
운영 중인 시스템을 안정적으로 유지 보수해야 하며, 변화에 맞게 소프트웨어를 업그레이드할 수 있는 능력을 갖출 수 있도록 다방면에서 끊임없이 학습해야겠습니다.
Step2 – Case Study 과제로 업무 적응력 향상!
이렇게 학습한 다양한 아키텍처 기본 지식을 바탕으로, 업무 시스템인 KOS만의 차별화된 아키텍처를 학습하고자 했습니다. KOS는 SOA 기반으로 설계되었으며, 여러 서비스의 복잡한 연계 안에서 각각의 기능을 제공하는 서비스입니다. 따라서, KOS만의 복잡한 트랜잭션을 효율적으로 처리할 수 있는 다양한 케이스에 대한 학습이 필요하다고 생각했습니다.
KOS 아키텍처 패턴 학습을 위해서 여러 종류의 문서를 참고했습니다. KOS 프로젝트 당시 SA팀에서 작성된 아키텍처 문서를 기반으로, 개발 가이드와 운영 가이드를 참고하여 트랜잭션의 시작부터 끝까지 모든 레이어를 개발하는 총 11개의 E2E 개발 과제를 수행하게 되었습니다.
이 과정에서, SOA(Service Oriented Architecture)의 핵심 요소들을 중점적으로 공부할 수 있었습니다. 진행한 개발 과제 중에서 대표적으로 WSDL, ESB 메시지 라우팅, XA 트랜잭션을 소개해드리고자 합니다.
WSDL
WSDL(Web Service Description Language)은 웹 서비스의 인터페이스를 정의하는 XML 기반 언어입니다. 서비스 간의 통신을 위해 필요한 정보를 자세히 명시해 놓으며, 이를 통해 서로 다른 시스템 간 커뮤니케이션이 원활히 이루어질 수 있도록 합니다. WSDL은 웹 서비스의 기능, 데이터 타입, 접근 방법 등을 기술하여 서비스 통합을 간편하게 만듭니다.
ESB 메시지 라우팅
ESB 대표 솔루션 중 하나인OSB(Oracle Service Bus)는 시스템과 서비스 간의 통신을 관리하는 미들웨어 플랫폼입니다. 메시지 라우팅은 OSB의 주요 기능 중 하나로, 파이프라인 작업이 끝난 후 메시지를 목표 서비스로 전달합니다. 이는 파이프라인 작업 중에 다른 서비스를 호출하여 처리하는 Service Callout과 달리, 후속 처리가 필요 없는 것이 특징입니다.
XA 트랜잭션
XA 트랜잭션은 2PC(Two-Phase Commit) 프로토콜과 관련된 분산 트랜잭션 처리 표준입니다. X-Open에서 정의한 이 표준을 통해 OSB(Oracle Service Bus)에서 Routing 컴포넌트를 쉽게 구현할 수 있습니다. 만약 파이프라인 작업 중 문제가 발생하면, 이전에 작업한 내용을 롤백(복원)하는 기능을 제공합니다. 이를 통해 트랜잭션의 일관성과 신뢰성을 보장할 수 있습니다.
각 레이어에 대한 이해와 더불어 주어진 요구사항을 분석하고 이를 구현하는 과정에서 여러 케이스 패턴을 학습하는 경험을 했습니다. 처음에는 이 과정이 순탄하지 않았습니다. KOS 업무 시스템 및 레이어 별 솔루션에 대한 이해가 부족했기 때문입니다.
따라서, 프로젝트 당시 작성된 여러 문서 외에도, 업무팀 개발자 및 담당자분들께 주어진 이슈와 이를 해결할 수 있는 트러블 슈팅 방법에 대한 질문을 했고 다양한 피드백을 받을 수 있었습니다. 이런 피드백과 조언을 통해 큰 성장을 경험하게 된 것 같습니다.
Step3 - 학습한 내용을 실무에 적용해볼까요?
11개 케이스의 개발 과제를 통해 학습했던 지식은 업무에 적극적으로 활용되었습니다. SA 팀에서 하는 주된 업무들과 지난 1년간의 학습 이후 변화된 점들에 관해 설명해 드리고자 합니다.
모니터링 시스템 운영 및 개발
공통 영역에 대한 개발 외에도 업무팀 개발자와 운영자들을 위한 E2E 모니터링 시스템(B-MON) 등을 SA팀에서 개발하여 운영하고 있습니다. 처음 업무를 담당했을 때는, 방대한 시스템에 압도당해 현시점에 적재되는 로그의 양을 파악하여 서비스의 운영에 차질이 없도록 하는 것에 중점을 두었습니다. 현재는 업무팀별, 레이어별 로그의 특성을 바탕으로 요청 시 로그를 함께 분석하고, 필요에 따라 가공하여 신규 기능을 개발하고 운영하는 역할까지 담당할 수 있게 되었습니다.
솔루션 패치 적용
다양한 솔루션들로 구성되어 있는 KOS는 프로젝트 이후 여러 차례 고도화가 진행되어 왔습니다. SA 파트에서는 특히 솔루션 패치와 같은 주요 고도화 과제를 수행할 때, 가장 앞단에서 솔루션사와의 커뮤니케이션을 통해 장애 없이 솔루션을 개선하는 과정이 필요합니다. 개발 과제를 수행한 이후에는 각 업무팀의 업무 방향과 특성에 맞는 상황을 종합적으로 검토하여 솔루션 패치의 영향도를 함께 분석하고 검토할 수 있는 역량이 향상되었습니다. 이에 자신감을 얻어 솔루션사 담당자 분과의 논의 과정에서도 주도적으로 의견을 제안하는 등 변화를 경험했습니다.
신규 프로젝트에 대한 검토
보안 솔루션 적용, 차세대 솔루션 업그레이드 검토 등과 같이 신규로 진행되는 프로젝트에 대해서도 SA 파트에서는 가장 우선으로 영향도를 분석하고 전환 과정을 계획합니다. 다각도의 검토가 필요한 영역이기에 아직 한참 부족한 역량이지만, 그럼에도 과거보다 적극적인 자세로 프로젝트 진행 시에 도움이 되고자 노력하고 있습니다.
회고하며
입사 이후 약 1년이 넘는 시간 동안은 업무에 대한 적응과 함께 KOS에 대한 학습을 겸하는 시간을 가졌습니다. 아직도 배워야 할 부분과 넘어야 할 산들이 많지만, 앞서 했던 다양한 경험을 통해 한 발짝 한 발 차근차근 나아가고 있는 과정이라고 생각합니다.
1년 전과 현재를 비교했을 때, 무엇보다도 마음가짐이 가장 크게 달라진 것 같습니다. 과거에는 “이렇게 큰 시스템을 내가 이해할 수 있을까?”라는 두려움이 앞섰다면, 현재는 업무팀의 모든 영역에 대해 SA파트의 주니어 사원들도 함께 주인의식을 가지고 책임감 있는 태도로 업무를 담당하게 되었습니다.
더욱 발전할 미래를 기대하며 앞으로도 정진하는 SA 파트가 되겠습니다! 감사합니다.