
솔루션 아키텍트(Solution Architect) 란?
이전에 NAVER 검색엔진 에서 한번 “솔루션 아키텍트" 란 단어를 검색해 본적이 있었는데 솔루션 아키텍트가 어떤 일을 하는지 잘 설명되어 있는 글들이 없었다. 그러다가 네이버 지식 In 에 있는 한 포스트를 보았는데 누가 여러가지 질문을 물어본걸 한분이 대답을 해주신걸 발견했다. 아마존 솔루션 아키텍트 페이지 같은 곳에서 정보를 찾을수도 몇분들의 블로그에서 감을 잡을수도 있지만 이런 내용을 정리한 한글로 되어 있는 글이 생각보다 많지 않은것 같은 것 같아 네이버 지식 In 에서 받았던 질문을 토대로 내가 스스로 답을 적어보기로 했다.
참고로 난 깃허브 (GitHub) 이란 회사에서 Solution Architect 에 있었으며 과거 레드햇 (Red Hat) 이란 회사에서 컨설턴트로 3년 있었으며 그 전엔 다양한 회사에서 프로그래머 관련 경력을 가지고 있다는걸 미리 말해주고 싶다.
1. 솔루션 아키텍트 (Solution Architect) 는 정확히 무슨 일을 하나요?
사람들이 일반적으로 알고 있는 개발자 즉 프로그래머들은 한 회사의 제품을 개발하고 프로그래밍하고 만드는 역할을 한다면 솔루션 아키텍트는 그 만들어진 제품을 주로 큰 대기업 고객들이 성공적으로 쓸수 있게 도와주는 일을 합니다.솔루션 아키텍트는 만들어진 제품을 주로 큰 대기업 고객들이 성공적으로 쓸수 있게 도와주는 일을 한다.
예를 들어 아마존 웹 서비스 (Amazon Web Service) 란 제품이 있다면 그걸 개인이나 작은 팀이 사용할려고 하면 혼자 인터넷에서 배우고 겪어 가면서 사용해도 만족 하겠지만 큰 회사들이 쓰는 소프트웨어들은 사용 케이스도 일반 사용 케이스도 다르게 복잡하고 시간을 절약해주는 일 그리고 효율적으로 만드는 설계가 중요하기 때문에 이런 일들을 솔류션 아키텍트가 주로 맡아서 합니다.
실제 업무는 고객에 소속 되어 있는 개발자들 그리고 나머지 팀원들이 궁금한걸 물어볼때 대답할수 있고 전문가 적인 조언을 줄수 있는 상담시간 같은 미팅에도 참여를 하지만 직접적인 설계 그리고 필요에 따른 프로그램을 짤수 있고 트레이닝도 해주는 식으로 다양한 업무와 같이 병행합니다.
2. 클라우드 엔지니어 및 아키텍트가 되기 전에 어떤 직무에서 경력을 쌓는게 도움이 될까요?
클라우드 엔지니어가 되는 방법은 기본적인 클라우드 개념을 이해하는게 우선 입니다. 즉 클라우드의 정의를 알며 왜 필요한지, public 클라우드 와 private 클라우드 의 차이점, IaaS/PaaS/SaaS 의 차이점 그런 여러가지 개념들을 이해하고 다른 누군가에게 설명할 수 있을 정도의 지식을 갖추는게 중요합니다. 그런 다음 AWS/Azure/GCP 같은 클라우드를 직접 사용하고 가상 머신 (Virtual Machine) 을 만들고 그걸 관리하면서 앱을 개발해서 배포할수 있는 정도의 실력을 쌓는게 클라우드 엔지니어의 초기 단계라고 볼수 있습니다.
아키텍트 정도가 될려면 다양한 환경을 다 사용한 경험 뿐만 아니라 데이터베이스 한가지만 고려하더라도 이게 왜 좋은지 나쁜지 그리고 다른 사람들이 쓸려면 어떻게 해야 하는지 직접 설계하고 만들수 있는 단계까지 가야만 합니다.
3. 솔루션 아키텍트 와 클라우드 아키텍트의 상관관계가 궁금합니다
4. 솔루션 아키텍트가 되기 전에 배우면 좋겠다 하시는 자격증 혹은 언어가 있나요?
대부분 코딩을 하는 프로그래머들은 자격증이 그렇게 의미 없는 편입니다. 반면에 솔루션 아키텍트는 그 서비스 관련 자격증이 있다면 두가지 이유로 도움이 될순 있습니다.
첫번째 이유는 솔루션 아키텍트 자리에 지원한 분의 이력서를 보았을때 이 지원자가 이 분야에 대해 어느정도 잘 알고 있다는 인상이 들수도 있습니다. 인터넷에 수많은 무료 정보가 넘쳐나는 코딩과는 다르게 클라우드나 특정 엔터프라이즈 기술 제품에 관한 일을 하는 솔루션 아키텍트는 무료로 배울 수 있는 정보가 한정된 편입니다. 솔루션 아키텍트들이 다루는 문제점들이 상당수가 기업에 특수화 되어 있어서 정해진 유료 트레이닝이나 자격증 프로그램을 통해서 배울수 있는게 보편적입니다. 그러므로 솔루션 아키텍트에 필요한 자격증을 땄다고 하면 이 사람이 어느정도 지식은 가지고 있다는 인상은 듭니다.
두번째 이유는 자격증이 업무에 필요한 모든걸 알려줄 순 없지만 솔루션 아키텍트가 다루는 클라우드, 데브옵스, 혹은 엔터프라이즈 제품에 대한 자격증은 실제적으로 많이 쓰이는 내용을 바탕으로 하기 때문에 가장 기본적인 지식을 배울수 있는 가이드를 잘 제시해 주고 있습니다.
솔루션 아키텍트는 주로 한 회사에서 내세우는 주요 제품들을 상대로 일하기 때문에 자격증을 취득 하실려고 하면 그 회사의 자격증 부터 있는지 알아보는게 우선인것 같습니다. 예를 들어 마이크로소프트 Azure 클라우드의 솔루션 아키텍트라고 한다면 Azure Fundamental 시험인 AZ-900 를 딴다음 다음과 같이 자격등 경로를 알고 준비하셔서 취득하시는게 제일 좋은 방법이라고 봅니다.
5. 클라우드 엔지니어 및 아키텍트가 될 사람들이 어떤 역량을 가지면 좋다고 생각하시나요?
클라우드 엔지니어와 아키텍트는 다른 직무이기 때문에 따로 나눠서 설명하는게 맞는것 같습니다.
클라우드 엔지니어는 프론트엔드 프로그래밍, 백엔드 프로그래밍, 모바일 프로그래밍, 네트워크 엔지니어 등등 수많은 분야가 있는 Information Technology (IT) 란 큰 개념에서 “클라우드" (Cloud) 를 만지고 다루는 업무를 합니다. 그렇기 때문에 기본적으로 클라우드 개념을 이해하고 다른 누군가에게 설명할수 있을 정도의 역량을 키운 후 AWS, Azure, GCP 등등 클라우드 환경을 접하고 앱을 배포하고 가상머신을 관리하는 업무를 계속 접하는 환경에 참여 하는게 중요합니다. 클라우드 엔지니어는 직접적으로 코딩을 만지는 경우도 있지만 프로그래머보다 Operation 혹은 Ops 라고 해서 서버를 관리하고 Bash 같은 Shell 스크립트를 만지고 Ansible, Terraform 같은 Configuration as Management 라는 툴들을 사용해서 클라우드 인프라에 필요한 가상머신, 네트워크, 데이터베이스, 보안 을 관리하는 스크립트를 설정하고 적을수 있습니다. 하지만 클라우드 엔지니어는 말 그대로 엔지니어 이기 때문에 포지션 레벨 (예: 인턴, 쥬니어, 시니어) 에 따라서 누구나 지원하고 들어갈수 있는 엔트리나 중급 레벨 포지션인 경우가 많습니다.
반면에 아키텍트 (Architect) 란 포지션은 어떤 시스템의 전체적인 플로우와 관계도를 이해하고 엔지니어 경력이 상당하시고 한 팀을 이끄는 포지션이라 여러 IT 분야를 접하고 어느정도 리더쉽 능력을 키우신 후 지원해 보시는 걸 추천합니다. 흔한 케이스는 아니지만 솔루션 아키텍트 인턴쉽 프로그램이 만들어져 있거나 쥬니어 레벨을 만든 회사들도 가끔 찾으 실수 있기 때문에 열정이 있으시면 이런 포지션을 찾아서 지원해 보시는 것도 좋은 생각인 것 같습니다.
6. 한국 클라우드 서비스가 세계권에서 한참 못 미치는데 앞으로 5~10년 동안의 향후 전망에 대해 어떻게 보시나요?
한국의 클라우드 서비스나 비슷한 소프트웨어 계의 생태계가 이렇다 저렇다 판단은 하긴 힘들지만 아무래도 엔터프라이즈 클라우드를 최초로 도입하고 확장한 회사들은 미국의 아마존 이였고 후에는 마이크로소프트, 구글, 랙스페이스 (RackSpace) 같은 대형 회사들이였기 때문에 한국뿐 만이 아니라 다른 외국 나라들이 미국 클라우드 기업에 비해 비교적 뒤쳐져 있는건 사실인것 같습니다.
가장 잘 알려진 클라우드 제품인 아마존 웹 서비스 (AWS) 탄생 역사를 보면 이런 서비스는 처음 부터 어떤 방대한 계획을 가지고 아마존이 Top-Down 형식으로 계획을 해서 짜짠 하고 하루밤 사이에 런칭한 서비스가 아니라 아마존 E-Commerce 에서 쓰는 데이터나 프로세스가 워낙 방대하고 복잡하다 보니 이런 기술을 뒷바침 해야 하는 어마 어마한 규모의 데이터센트가 이미 존재 했었고 또한 이런 서비스들을 정리하고 아마존 사내 개발자 들이 쓰기 쉽게 만든게 아마존 웹 서비스의 시작이라고 알려져 있습니다. 마이크로소프트나 구글이 아마존을 쉽게 따라갈수 있었던 이유도 이미 많은 프로세스를 처리하고 데이터 센터를 가지고 있었던 회사 들이였기 때문에 쉽게 쟁쟁한 클라우드 서비스를 런칭하고 지원할수 있지 않았나 생각 듭니다.
한국의 네이버, 카카오, 삼성 같은 큰 IT 회사들은 이미 뛰어난 IT 기술을 가지고 있고 데이터센터도 있기 때문에 성장할수 있는 여건은 큰 편입니다. 각 나라마다 운영되는 서비스 기준에 중요한 규율이나 거버넌스 (Governance) 시점으론 한국에서 존재하는 회사나 비즈니스들은 한국 클라우드 회사를 통한 서비스를 쓰는게 더 안전해 보이고 쉬울 수 있습니다. 아무래도 다른 나라 클라우드 서비스를 도입하면 국제 데이터 보호법이나 보안 그리고 성능정인 면에서 어려고 까다로울 수 있으니까요.
각 클라우드 마다 제공하는 서비스 차원으로만 비교한다면 한국 클라우드 회사들이 시간이 어느정도 흐른다면 비슷하게 도달할것이라고 봅니다. 아무래도 AWS, Azure, GCP 에 나와 있는 서비스 포트폴리오나 사용에 필요한 정보들은 이미 인터넷에서 찾을수 있고 이런 점들을 벤치마킹해서 필요한 서비스를 개발하고 출시 하는건 충분히 가능한 일이니까요. 다만 클라우드 서비스를 선택하는 고객들 즉 회사나 비즈니스 입장에선 단순히 어떤 서비스 (예: 머신러닝 혹은 데이터베이스) 의 존재 여부만 중요한게 아니라 다양한 점들을 따져보고 선택하기 때문에 기술적인 면에선 한국 클라우드 기업들이 쟁쟁하고 비슷한 서비스를 제공한다고 하더라도 그에 따라 오는 시장점유율 그리고 매출은 시간이 지나봐야 알수 있는것 같습니다.
7. 솔루션 아키텍트의 장단점이 무엇이라고 생각하시나요?
솔루션 아키텍트의 장점 중 하나는 다양한 고객사와 직접 일할 기회가 많기 때문에 일이 지루하지 않고 항상 새로운 프로젝트와 다양한 업무를 접하고 배울수 있는 기회가 생깁니다. 그리고 어떤 한 시스템에 관한 전문가와 리더로서 조언을 주고 설계하고 개발하고 이끄는 역할을 하기 때문에 성공적으로 마무리 했을때 성취감이 큰 편이며 짦은 시간에 영향을 주는 업무를 할수도 있습니다. 또 다른 장점은 테크니컬한 부분만이 아니라 세일즈 즉 영업에 관한 일들도 접하고 다양한 부서의 사람들과 일 할 기회가 많기 때문에 단순히 빙산의 한 끝 부분만이 아니라 이 제품을 사람들이 어떻게 사용하는지 만족해 하는지 이해할수 있고 직접 영향도 줄수 있습니다. 솔루션 아키텍트에 관한 책임이 제법 크기 때문에 그에 따른 혜택이나 보상도 대부분 큰 편입니다. 마지막으로 여행을 좋아하신다면 컨설턴트 만큼은 아니지만 솔루션 아키텍트도 어느정도 출장을 다녀야 해서 다른 도시에서 일해볼수 있는 기회가 생기는 직장입니다.
솔루션 아키텍트의 단점들은 장점과 연결되어 있습니다. 우선 주어진 업무와 기대가 크기 때문에 그만큼 업무에 관한 스트레스를 느끼고 책임감이 크게 다가올수 있습니다. 그리고 끓임없이 발전하는 분야들을 소화하고 이해시켜야 하기 때문에 마찬가지로 본인도 끓임없이 공부하고 많은걸 시도하는게 필수입니다. 솔루션 아키텍트는 단순 기술적인 분야 뿐만 아니라 커뮤니케이션이나 소프트 스킬 (soft skill) 이라고 해서 사람과 사람들 사이에서 소통하는 기술이 중요하기 때문에 감정을 읽고 대화를 이끌고 일을 성사 시키는 일에 부담을 느낄수도 있습니다. 마지막으로 여행이 잣진 않지만 어느정도 요구를 하는 직업이기 때문에 만약 가족이 계시고 여행을 좋아하지 않는 분들은 어려울 수 있습니다.
8. 솔루션 아키텍트 라는 직무의 정보가 많지 않은데 질문 외에 해주고 싶은 말씀이 나 조언 해주시면 감사할 것 같습니다
저도 처음에 컴퓨터 과학이란 전공을 졸업하고 첫 회사에서 80% 업무과 코딩을 하는 실무적인 일을 하며 Java 를 짜고 스프링 프레임워크 (Spring Framework) 를 쓰는 완전 개발자 포지션으로 시작 하였습니다. 대학교 다녔을땐 코딩을 아는게 제일 중요하다고 믿었고 가장 대단하게 보여졌던 사람들은 역시 코딩을 제일 잘하는 사람들이였죠. 하지만 일을 시작하고 몇년이 흐르면서 여러 직장을 옮겨 다니고 기업용 웹 앱 개발에서 클라우드 플랫폼 테크 리드에서 컨설턴트로 옮겼다가 지금 솔루션 아키텍트로 옮기게 된 계기는 제가 더 발전을 할려면 다른 일들을 접해 보는게 중요하고 또 직접 고객들과 일을 하며 영향을 주는 일에 참여하고 싶다는 목표가 생겼기 때문입니다.
학교에 다니고 있거나 혹은 새로 직장을 시작하시는 분들에겐 IT 외에도 프로그래밍 외에 다른 기술들이 중요하다 이런 관점이 익숙한 분들은 많이 없을 것 입니다. 저도 역시 그랬으니까요. 그나마 부모님이나 친한 지인들이 이런 이야기들을 미리 들려 주었거나 혹은 해커톤, 대회, 오픈소스 프로젝트 혹은 인턴쉽 기회를 통해서 미리 접해 분들은 조금이나마 인식하고 경험해 본들이 있지 않을까 생각듭니다. 물론 코딩을 아주 뛰어나게 잘하고 그런 일을 좋아하신다면 구글이나 카카오 같은 뛰어난 프로그래머들을 뽑고 우대하는 최고의 회사에 높은 연봉을 받아서 입사하는게 제일 좋은 길인 것 같습니다. 평생 좋아하는 코딩을 하고 어느정도의 커뮤니케이션 스킬만 배워서 그 분야의 최고의 위치에 갈수도 있습니다.
하지만 현실은 조금 다릅니다. 어떤 분들은 코딩 문제를 푸는 능력이 어느정도 만 있지만 사람을 배려하는 능력 그리고 공감해 주는 능력 이런 숨겨진 재능이 있을수도 있습니다. 대화를 아주 잘해서 말을 하면 주변 사람들을 끌리게 하고 리더쉽 있다는 말을 들으시는 분들도 있을 수 있습니다. 혹은 정리정돈을 잘하고 글을 잘 적어서 사람들이 칭찬을 해주거나 복잡한 내용을 쉽게 이해하게 만들어 주는 분들도 있으실 수 있습니다. 아무래도 현재 세계는 IT 직장들이 수요가 크고 많은 대학생들이 컴퓨터 과학을 선호하고 선택 하는 시대라 코딩을 배우는게 제일 중요하게 생각되는 것 같습니다. 하지만 계속 직장을 다니고 경력을 쌓다보면 단순히 무언가를 만드는 것 에는 한계가 있다는 걸 깨닫게 됩니다. 아무리 뛰어난 서비스나 그 다음 구글 혹은 페이스 북을 만들더라도 세상에 출시 되지 않거나 아무도 쓰지 않는다면 아무런 소용이 없고 역사 속에서 사라질거니까요.
그런 세드 엔딩을 막기 위해 회사에서 마케팅을 해서 서비스를 세상에 알리고 영업을 해서 제품을 팔고 그리고 솔루션 아키텍트 같은 테크니컬 서비스 분야 분들을 고용해서 제품을 쓰기 쉽게 만들고 성공적으로 쓰게 도와주는 역할을 합니다. 그리고 아키텍트나 메니져를 고용해서 이런 제품을 만드는 개발자들을 같은 목표 안에서 움직이고 다 같이 뛰어난 결과를 만들기 위해 움직이고 관리하는 것입니다. 솔루션 아키텍트란 분야가 다소 낫설순 있지만 “이런 제품을 써봤는데 왜 이렇게 불편하지?” 혹은 “내가 잘 설명해서 다른 누군가 쓰면 만족해 할 것 같다" 이런 생각을 많이 해보고 직접 바꾸는데 호기심이 있는 분들은 솔루션 아키텍트 란분야를 한번 고려해 보시는 것도 좋을것 같습니다.
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.