Contents/Lecture

2021.11.22 - 웹정보시스템 <HashiCorp 이규석 기술이사님 특강>

728x90

웹정보시스템은 클라우드 컴퓨팅에 대해 배우는데, 교수님께서 이 부분은 실무에서 많이 쓰이는 부분이라 수업에서 경험해 볼 수 있는 것들은 한정적이므로 현재 개발직에 계신 분을 초청해 특강을 진행해주셨다.

멀티태스킹에 약해서 들으면서 쓰는 걸 굉장히 못한다..ㅎ

그래서 글들이 연결점이 없고 중요한 얘기들도 굉장히 빼먹은 것 같지만, 다시 읽어보면 좋은 내용들도 분명 있을 것 같아서 남기는 게 좋겠다고 판단했다.

 

HashiCorp의 이규석 기술이사님이시고 Solution Engineering을 하고 계시며 협업에 계신지 15년차 되신다.

이규석 님은 주로 회사에서 제공하는 기술을 필요로 하는 기업을 상대로 회사의 기술을 이용해달라고 PT를 하셔서, 우리 같이 이 회사의 기술이 뭔지 모르는 사람들에게 기술을 설명해 주시는 것은 처음이라고 하셨다.

 

작성자가 멀티태스킹에 굉장히 약하므로 잘못된 정보도 있을 수 있음.

HashiCorp 란?

하시코프의 '하시'란 교각, 다리라는 뜻이다.

그래서 하시코프는 대부분 연결을 하는 역할을 한다.

'솔루션을 만든다' 라는 개념적인 부분으로 이해하면 좋다.

멀티/하이브리드 클라우드의 연결점 역할

하시코프의 소프트웨어 스택은 애플리케이션과 이를 지원하는 인프라의 프로비저닝, 보안, 연결, 실행을 가능하게 한다.

프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. 서버 자원 프로비저닝, OS 프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있다. 수동으로 처리하는 '수동 프로비저닝'과 자동화 툴을 이용해 처리하는 '자동 프로비저닝'이 있다.

즉, 하나의 클라우드 플랫폼을 사용하는 게 아니라 여러 가지 플랫폼을 사용해서 어떻게 연결하는 게 좋을까 하는 문제를 해결해준다. 모든 비즈니스를 위한 클라우드 운영 모델을 적용하고 디지털 혁신 전략이 성공할 수 있도록 지원한다.

 

획기적인 서비스가 아니라 여러 서비스를 잘 섞어서 하나의 서비스를 만들어 출시하는 것, 사람들이 불편해하는 점들을 편하게 해주는 것도 하나의 방법이다. 예로는 네이버 쇼핑을 들어주셨다. 네이버 쇼핑은 여러 쇼핑몰에 들어가볼 필요 없이 하나로 확인 가능한 서비스로, 여러 서비스를 잘 섞어서 하나의 서비스를 만들었고 사람들이 불편해하는 점을 해소시켜주었다.

 

테라폼은 클라우드에 관심이 있으면 알아보는 것이 좋다.

하시코프에서 개발한 테라폼은 코드로 인프라를 관리하는 IaC(Infrastructure as Code)라는 개념에서 출발한 클라우드 인프라 관리 자동화 도구다.

workflower를 자동화시키는 부분이 DevOps에 들어있다. DevSecOps에는 DevOps에 시큐리티가 들어간 것. 보안에 대한 취약점이나 이슈가 발견되면 서비스를 다시 기획해야 하며, 서비스를 만들 때 시큐리티가 중요하다.

DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합입니다. 기존의 소프트웨어 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선할 수 있습니다. 이러한 빠른 속도를 통해 조직은 고객을 더 잘 지원하고 시장에서 좀 더 효과적으로 경쟁할 수 있습니다.

 

Middleware Engineer

데이터와 어플리케이션 사이에 있는 모든 솔루션들이 미들웨어다.

미들웨어 엔지니어는 필드 엔지니어이며, 에어컨 설치기사로 예를 들어주셨다. 에어컨 설치 기사가 에어컨을 설치, 수리하러 현장을 방문하는 것처럼 필드 엔지니어는 어느 회사에서 어떤 서비스가 필요할 때 가서 설치해주고 오류를 해결해주는 엔지니어다. 이처럼 중간에서 커뮤니케이션을 하는 역할이다 보니, 다양한 분야의 엔지니어들과 커뮤니케이션이 가능했다. 

현장 경험자로서의 다양한 조언들

취업을 하는데 그 회사가 금융 쪽 회사라면 금융 개발자가 된다. 금융 개발자가 되면 다른 분야 개발을 하기 어려워진다. 그래서 첫 단추를 잘 꾀야 한다. 개발자가 되려면 서비스를 잘 이해해야 하고 금융권은 굉장히 어렵기 때문에 계속 금융권 분야 개발을 하게 된다. eCommerce(전자 상거래 ex. 쿠팡) 회사에 가게 되면 해당 분야 공부를 계속해야 되기 때문에 계속 eCommerce에 머물게 된다. 그래서 처음 직종을 정할 때, 내가 관심이 있는 분야를 잘 생각해봐야 한다. 개발자는 다 같은 개발자가 아니다.

 

si 사업을 하는 삼성 SDS와 같이, 프레임워크나 보안 툴, 임베디드 등을 만드는 회사도 많이 있다.

 

미들웨어는 서비스업에 가까운 개발직종이며, 중간에서 커뮤니케이션을 많이 해야 하고, 솔루션을 제시해야 한다.

 

DB 쪽은 과거엔 오라클이 최고였으나, 오라클이 성능이 좋지만 비싸기도 해서 클라우드에서는 MongoDB와 같은 다른 DB가 많이 쓰인다. 개발 쪽에서 어느 DB를 쓸 것인지에 대해 많은 의견을 나눈다.

 

애플리케이션을 출시하고 나면 이 애플리케이션이 잘 돌아가는지 계속 모니터링을 해야 하며, 대표적인 모니터링 툴은 JENNIFER, Datadog, Splunk 등이 있다. 우리 시스템이 잘 돌아가겠지 막연히 생각하기보다는 모니터를 띄워 놓고 계속 돌아가는 모습을 보는 것이 좋다. 모니터링 툴은 시스템이 잘 돌아가고 개선 사항을 찾기 위해 많이 쓰인다.

 

취업에 뜻이 있다면, 회사의 공고에 우대사항에 있는 툴을 보고 어느 하나의 툴에 대해서는 익숙해지는 것이 필요하다.

 

어느 서비스를 오픈하기 위한 개발자냐 유지 보수하기 위한 개발자냐에 따라도 하는 일이 굉장히 달라진다. MMORPG 게임 개발사 기준으로 개발자도 직무에 따라 Client, Server, Planning, Art로 나눌 수 있다. Art가 개발자 직무로 들어온 이유는 게임에서 물이나 빛 같은 산술적, 공학적으로 표현해야 하는 것들도 모두 알고리즘으로 구현된다. 게임에서는 Client는 보통 빠른 언어인 c#, c++이나 Unity, Unreal Engine 같은 툴을 쓴다. Server 쪽은 익히 알고 있는 백엔드 개발자와 비슷하며 서비스의 화면을 볼 일은 거의 없다. Planning은 보통 게임에 대한 기획(lv.1은 뭐뭐고, lv.2는 어쩌구고, lv.100은 저쩌구고~)만 했었다면, 요즘에는 코딩에 대한 planning도 같이 한다. 자신들이 기획한 것들이 코딩으로 돌아가는 것을 테스팅해보기도 하고, 기획에 대한 것들을 엑셀로 정리하기엔 힘들어서 간단한 파이썬 같은 것들로 관리하고 시뮬레이팅 한다. 게임사에선 (미적분 같은 어려운 개념보다는 중학교  배운 수학 쪽으로)수학이 굉장히 중요하다. 게임의 랜덤 뽑기는 랜덤 함수를 쓰지 않고 싸인, 코싸인 개념을 사용한다.

 

개발사에선 서비스에 가장 가까운 개발을 하는 개발자가 가장 높은 대우를 받는다.

 

Pre-sales | 비즈니스의 이해

pre-sales는 서비스를 만든 뒤, 주로 해외에 파는 일을 한다. 'sales'는 it에 대해 잘 모른다. 이런 사람들에게 it에 대해 잘 알려주고 가이드를 해주는 사람이 'pre-sales'이다.

외국계 회사에선 pre-sales 직종을 꼭 뽑는다.

sales가 돈을 가장 많이 번다. 그다음이 pre-sales, 다음이 마케팅. 개발사에선 서비스에 가장 가까운 개발을 하는 개발자가 가장 높은 대우를 받는다고 했는데 sales가 돈을 가장 많이 버는 이유는, 외국계 기업의 sales의 연봉이 base 50~60%, 인센티브가 40~50% 정도라서 그렇다. (정형화되지 않은 업무를 하는 직종일수록 인센티브가 높다. ex. 설득하고 설명하는 일을 하는 사람들)

(여기서 연봉 알려주시려고 했던 거 같은데,,,, 교수님이 시간 압박하셔서 그냥 넘어간 느낌이...ㅜㅜㅜ)

 

다양한 분야의 개발사 선배님들의 조언

내가 너보다 한 시간에 몇 천 원 정도 더 버는데,
우리가 만나면 누가 커피를 사야 할까?

시간의 가치, 나의 가치를 측정할 수 있어야 한다. 직장을 옮길 때, 시간의 가치를 매길 줄 알아야 한다. 그래야 나의 임금을 타협할 수 있다. 내가 가지고 있는 시간당 가치를 높이는 작업을 해야 하고, 시간 당 가치를 증명할 수 있는 작업(포트폴리오, 경력 등)을 해야 한다.

 

열정을 보여주세요! 기술은 앞으로 배워 가시는 거지만...
그 안의 열정은 변하지 않습니다.


관심은 많다고 하지만 그 안에 노력은 무엇을 보여주었는지 모르겠다. 증명을 못한다. 신입사원에게 기대하는 바는 처음 하는 것이니까 잘하는 것은 모르겠고, 클라우드에 관심이 있으면 어떻게 관심이 있었는지 보여줄 수 있었으면 좋겠다. 그것을 모호하게 열정이라고 하고 싶다. '클라우드 좋아해요!' 보다는 '이런 거, 이런 거 해봤다.'가 더 좋다.

 

클라우드는 손으로 돌린다.
진화한 IT 인프라의 밑바탕에는
기존 기술들에 대한 경험과 기술력이 녹아 있습니다.

결국 클라우드에 딸린 기술들은 과거의 기술과 다를 바 없다.  그만큼 기본이 중요하다. 네이버 클라우드에서 진행하고 있는 그린루키 크레딧 20만 원 혜택을 제공한다고 한다.

 

클라우드 기술은 오픈소스에 있습니다.
그리고 그 기여는 지금부터도 가능합니다.
두려워하지 마세요. 아무도 안 잡아먹습니다.

기여하는 방법은 여러 가지가 있다. 한글화를 한다거나 아이디어를 제시하는 것도 기여에 포함된다. 기여하는 것은 조금만 찾아보면 쉽게 알 수 있다. 두려워하지 말라는 의미는 너무 어려워하지 말라는 뜻. 이런 거, 저런 거를 해봤다 길게 적는 것보다 오픈소스에 한 줄 기여했다고 저는 것이 더 나을 수도 있다. 교수님의 추가 말씀 "남이 안 한 것을 하는 것이 기여이고, 남이 안 한 것을 하는 것이 중요하다! 또한 깃헙으로 기여를 하고 잘 정리하는 것도 중요하다."

 

마지막으로

내가 원하는 직종의 구직사이트에 들어가서 어느 것들을 필요로 하는지 알아보는 것이 중요!

Q&A

Q. 외국계 기업의 pre-sales로 취직하기 위해선 무엇을 준비해야 하는지?

A. 외국계 기업은 대부분 경력직을 뽑는다! 해외에서 서비스를 팔아야 하기 때문에 뽑아서 바로 투입시켜야 하기 때문이다. IT 마케팅 쪽은 신입을 채용하기도 한다. 영어는 기술적이냐, 영어로 커뮤니케이션을 많이 하느냐에 따라 다르다. 보통 외국계 기업은 코딩 테스트보다는 케이스를 주고 풀어나가는 데모를 진행한다. 외국계에 한 번 발을 담그면 외국계 기업에서 계속 연락이 온다.

Q. 게임 개발을 하고 다른 개발 직종으로 전직하는 것에 어려움이 있나?

A. 사실 좀 어렵다. 게임 개발 쪽은 다른 클라이언트(유니티, 언리언)를 사용하기 때문에 힘들다. 기술이 다른 쪽과 접목시킬 것이 있냐가 중요하다. 메타버스 같은 경우는 통신사 쪽에도 모집하는 경우도 있다. 기술 접목이 중요!

Q. DevOps 관련 쪽으로 취직하려면 무엇을 잘해야 하는지?

A. DevOps 엔지니어 쪽 취직은 국내에서는 개발을 잘하냐 못하냐 보다는 인프라를 잘 이해하냐 못하냐가 더 중요하다. 해외 쪽에서는 인프라를 조금 알고 개발을 잘하는 사람을 더 뽑는다.

Q. 현재 백엔드 쪽 근무 중인데, 외국계 DevOps를 가고 싶다면 무엇을 준비하면 되는지?

A. 외국계 기업 특히 미국 쪽 기업에 DevOps 쪽으로 취업하고 싶으면 그냥 개발을 잘하면 된다. 이미 외국계는 DevOps를 기반으로 굴러가서 DevOps 직종이 따로 없다.

 

추가

https://roadmap.sh/devops

 

Developer Roadmaps

Community driven roadmaps, articles, guides, quizzes, tips and resources for developers to learn from, identify their career paths, know what they don't know, find out the knowledge gaps, learn and improve.

roadmap.sh

이곳에 각 분야 별로 배워야 할 것들이 로드맵으로 정리되어 있다.

원하는 분야에서 필요한 툴들이 뭔지 보는 데에 유용하다.

 

후기 및 감상평

이런 류의 특강일 줄 모르고 맨 뒤에 앉아서 '에잇, 여차하면 다른 과제나 해야지.'라고 생각하고 있었다.

그런데 생각보다 너무 유익했다.

 

우선, 개발자 직무라고는 백엔드, 프론트엔드, 데이터 엔지니어 정도로만 알고 있었는데, 오늘 굉장히 많은 직무를 알게 되었고 이것도 정말 일부일 거라는 것을 알게 되었다. 지금까지는 막연하게 백엔드 개발자가 되어야겠다고 생각했고 백엔드 개발자는 어느 회사나 필요하니 아무 회사나 대기업이면 괜찮다고 생각하고 있었다. 그런데 이제는 정말 세부적인 진로를 결정해야 할 때인데, 결정에 많은 도움이 될 것 같다.

다음으로 나의 무지를 알 수 있었다. 현업에서 많이 사용하는 용어들을 많이 몰라 특강을 들으면서 이해하는데 조금 어려움이 있었다. 하지만 지금이라도 늦지 않게 알게 되었고 이것을 잊어버리지 않고 기억해두면 된다고 생각한다.

언어뿐만 아니라, 현업에서 사용하는 툴에 대한 부분도 많이 몰랐다고 생각한다. 모니터링 툴 같은 것은 있는 줄도 몰랐기 때문에, 다음 프로젝트를 진행한다면 꼭 사용해보고 싶다.

취업 준비에 대한 방향이 잡혔다. 싸피에 합격하지 못하면 막연히 정처기, 알고리즘, 회화 정도 공부하고 프로젝트는 어떻게 하고... 취업 준비는 어떻게 하는건지... 걱정이 많았는데 이젠 취업 준비를 어떻게 해야 할지 어느 정도 틀이 잡히는 것 같은 느낌이다.

이런 자리를 마련해주신 교수님께 감사드리며, 학생들을 대상으로 하는 강연이 처음이시라 준비하시는데 쉽지 않으셨을 텐데 이 시점에서 정말 알아야 할 것들을 많이 알려주신 이사님께 감사드린다.

728x90