brunch

You can make anything
by writing

C.S.Lewis

by 마켙커리어 Jul 13. 2021

시스템 엔지니어는 어떻게 일하고 있을까?

#그로스토리 25 시스템엔지니어 강민구

성장한 이들의 경험담, '그로스토리' 시리즈입니다. 시행착오를 먼저 겪고 성과를 낸 이들의 인터뷰를 통해 실무 꿀팁을 얻어보세요!

그로스쿨 웹사이트 구경하기


인터뷰이 간단 소개

일본에서 시스템엔지니어로 일하고 있는 리눅스 장인 강민구님과 시스템엔지니어에 관한 이야기를 나눠보았습니다.

일잘러를 위한 교육 플랫폼, 그로스쿨입니다.




김나영(그로스쿨 대표, 이하 김): 무슨 일을 하고 있으시죠?

강민구 시스템 엔지니어(이하 강민구): 저는 시스템 엔지니어라고 소개를 하는데요. 개발하시는 분들도 시스템 엔지니어라고 하면 뭐 하는지 잘 모르는 경우가 많은 것 같아요. IT 분야 사람들도 잘 하지 않고 사람도 부족하고 발을 들이지 않는 분야인 것 같습니다.


김: 저도 시스템 엔지니어는 생소한데 어떻게 구분되나요?

강민구: 그렇죠. 이 분야는 크게 네트워크와 서버로 나뉘어요. 그래서 네트워크 엔지니어가 있고 서버 엔지니어가 있는데요. 시스템 엔지니어라고 하면 요즘은 DevOps(데브옵스) 또는 SRE 이런 식으로 롤이 바뀌어서 얘기가 나오고 있어요.


김: 요즘은? 예전에는요?

강민구: 예전에는 시스템 엔지니어라 하면 서버를 기본으로 다루고 네트워크도 어느 정도 손볼 수 있고, 백엔드단의 개발 소스도 읽어서 문제 되는 부분을 찾아낼 수 있는 분야까지 합쳐서 시스템 엔지니어라고 했어요. 공부해야 할 범위가 넓어서 허들이 높았어요.


김: 시스템 엔지니어를 두기 위해서는 굉장히 회사가 커야 할 것 같은 느낌이 드네요.

강민구: 꼭 그렇지만은 않아요. 예전부터 작은 회사에서는 보통 시스템관리자가 서버뿐만 아니라 회사 내에 있는 전산 자원을 관리하기도 했어요. 요즘은 물리 서버를 운영하기보다 클라우드에서 많이 하니까 하드웨어적인 관리가 쉬워진 대신 개발 쪽의 역할을 덧붙여서 DevOps라는 이름이 된 것이지요. 개발자 플러스 시스템 오퍼레이터의 역할을 하는 거죠.


김: 그럼 시스템엔지니어의 하는 일은 어떻게 되나요?

강민구: 인프라를 관리하는 엔지니어(시스템/네트워크)는 비슷한 업무 특성이 있어요. 군대로 치면 5분 대기조 같죠. 문제가 생기면 바로 들어가서 복구를 하고 새벽에 연락이 와서 출동하거나 집에서 작업하거나 하기도 해요. 기본적으로는 새로운 사업이나 프로젝트를 시작한다고 하면 타부서와 미팅을 통해 서버 규모를 예측하고 예산을 잡아요. 기획이나 마케팅 부서에서 이벤트가 있는 경우엔 어느 정도의 인원이 더 늘어날 것이라는 목표치를 듣고 그에 따른 트래픽 증가량을 예상해서 서버를 증설하거나 모니터링을 강화하기도 하고요. 개발부서와는 더 밀접한 관계가 있으니 대화가 더 많아져요.


김: 개발자와는 어떤 얘기를?

강민구: 개발자와는 미팅으로 어떤 식으로 무엇을 개발할 지에 대해 이야기를 들은 후 시스템 부서에서는 어떤 서버가 필요한지, 그 서버의 규모는 어느 정도가 적정선인지, 그 규모에 따른 금액을 산정하고, 그걸 실제로 구축을 해서 개발자가 개발할 수 있는 장소를 제공해요. 그럼 개발자는 거기에서 개발해서 소스를 올리면 서비스 오픈이 되는 거죠. 그리고 오픈한 다음에는 서버를 계속 모니터링하면서 문제가 생기면 알림이 날아오거나 하게끔 자동화해놓죠.


김: 시스템을 구축할 때는 어떤 어려움이 주로 있나요?

강민구: 기술적인 어려움보다는 비용 문제가 더 어려운 것 같아요. 처음에 기획할 때 규모 산정에 실패하면 들어간 비용에 비해 매출이 나오지 않는 경우가 있거든요. 이쪽은 금전적 투자를 많이 해야 하는 분야라서 물리 서버를 도입한다고 하면 서버 한 대당 몇백만 원에서 1천만 원을 넘기도 하니 5~6대만 도입해도 몇천이 들어가거나 아니면 비싼 데이터베이스를 도입해야 하면 억 단위를 넘어가는 일도 있거든요.

출처 : 데브옵스(DevOps)의 현재와 미래 – ChatOps & VoiceOps (윤석찬)


장기 같은 역할을 하는 시스템 엔지니어를 더 파보자

김: 회사에서 시스템 엔지니어가 하는 일들을 잘 이해를 하고 있나요?

강민구: 설명을 해도 용어도 어렵고 단어 하나가 함축하고 있는 의미가 책 한 권이기도 하고 해서 어려워하시죠. 물론 개발도 비슷하긴 한데 개발은 만들어 놓으면 눈에 보이기라도 하잖아요. 코드나 웹 화면에서의 변화를 보여주는 게 되는데 시스템 분야는 물리적인 서버도 데이터센터에 있고 클라우드 서버를 쓴다면 더더욱 눈에 안 보이고, 용어는 어렵고, 복잡하고, 돈은 수억씩 들어가서…


김: 하나라도 없으면 죽는데 눈에 안 보이니까 어디가 병들고 있는지 어디가 아픈지 모르는군요.

강민구: 시스템 엔지니어의 중요한 덕목 중 하나가 커뮤니케이션이에요. 주변인(특히 결정권을 가진 분들) 설득을 해서 예산 확보를 하고 안정적인 서버 시스템을 만들어 놔야 하죠.


김: 안정적인 서버 시스템은 어떻게 잘 만들 수 있죠?

강민구: 저는 이걸 건물로 비유하는데 어떤 건물을 사무실로 쓰려고 해요. 그럼 그 건물은 당연히 전기, 가스, 수도 같은 인프라가 잘 되어있어야 하죠. 그 인프라를 만드는 거로 생각하시면 편해요.

처음에 설계를 잘해 놓으면 나중에 다시 뜯어서 처음부터 고칠 일이 거의 없어요. 즉, 앞으로 유저가 늘어날 때를 대비해서 확장 가능성 있게 설계를 하는 것이 잘 만든 인프라라고 할 수 있죠.

출처 : 컴투스 시스템엔지니어 경력 지원자격

김: 클라우드 환경으로 바뀌면서, 옛날에는 전산실 있고 회사마다 서버 두는 데가 따로 있고 거기는 24시간 관리하고 이런 게 기억이 나긴 하는데, 지금은 클라우드로 많이 바뀌면서 역할이나 하는 일이 바뀐 게 있나요?

강민구: 회사마다 달라요. 한창 클라우드가 주목받을 때 큰 회사들이 클라우드로 다 넘어갔었는데 최근 몇 년 사이 온프레(온프레미스라고도 한다) 환경으로 다시 돌아오는 경우가 꽤 있어요. 데이터센터에 물리 서버를 두고 운용하는 환경을 온프레미스라고 해요. 돌아온다는 표현을 썼는데 모든 서버를 전부 다 온프레로 가져오는 게 아니라 온프레랑 클라우드를 반반씩 섞어 쓰는 하이브리드 환경으로 가는 추세예요.


김: 왜요? 불편해서요?

강민구: 각각의 장단점이 있는데 장점만 섞으려는 거에요. 클라우드의 경우 장기적인 운용비용이 비싸요. 온프레 환경이 서비스를 오래 유지하는 것이 보장된다면 오히려 운영비용을 싸게 만들 수 있거든요. 그래서 최소한의 서버 운용 구성을 온프레에다 두고 갑자기 생기는 이레귤러나 이벤트 등으로 서버가 필요하면 클라우드 상에서 빠르게 늘려 접속이 느려져서 서비스 사용이 불편하지 않게 환경을 만들 수 있어요.

클라우드는 필요한 만큼 서버를 늘리거나 줄이는 게 빠르게 가능하고 쓴 만큼만 비용을 내는 것이 장점인데 이것을 이용한 것이지요.


김: 그러면 민구님 회사는 하이브리드 환경인가요?

강민구: 온프레에서 하이브리드로 옮겨가려고 계획 중입니다. 저는 지금까지는 대부분 온프레 환경 또는 클라우드 환경에서 일했어요. 이번에 처음으로 온프레에서 하이브리드 환경으로 옮기는 계획을 세워서 준비하고 있어요. 이전에 게임 회사에 다닐 때 온프레에 있던 서버를 클라우드로 옮기거나, 클라우드에 있는 거를 온프레의 프라비잇 클라우드로 옮기는 작업과 운용 경험은 있어요.

게임 같은 경우 처음에 이 게임이 얼마나 잘 될지 모르거든요. 그러니까 처음에는 클라우드에 올려서 서버를 빨리 늘였다 줄였다 하면서 운용하다가 트래픽이 안정되면 그걸 최소한의 구성으로 온프레로 옮겨요. 온프레도 프라이빗 클라우드로 구축해 놓아서 가지고 있는 물리 서버의 제한 안에서 서버의 추가/삭제가 빠르게 이루어질 수 있거든요.



그가 15년 차 시스템 엔지니어가 되기까지…


김: 민구님은 전공이?

강민구: 컴퓨터공학을 전공했어요. 병특을 반년 정도 하다가 이런저런 문제로 병특을 못 마치고 군대에 가서 전산병으로 서버 관리를 했죠. 거기서부터 메인 프레임(큰 타워형 유닉스 서버) 관리자를 시작으로 전역하고 유닉스 관련 자격증이랑 데이터베이스 관련 자격증을 따서 한국에서 취업을 먼저 했어요.


김: 서버 말고도 개발도 다양하게 있었잖아요? 서버를 택한 이유가 있나요?

강민구: 원래는 98년도에 PC통신 나우누리 데이터베이스가 오라클이었고. 엔지니어가 다리 건너서 아는 분이었는데, 돈을 잘 번다 하더라고요. 그래서 막연히 돈을 잘 벌고 싶다는 생각에 데이터베이스 엔지니어가 되어야겠다 하고서 DB 공부를 열심히 했어요. 그중에서 OS 설정 튜닝이나 운용에 사용할 OS 지식이 꽤 필요했어요. DB 분야를 더 넓게 공부하기 위해서 운영체제 공부를 시작했는데 너무 재미있어서…


김: 아… 공부가 재미있다…

강민구: 허허… 군대에서 서버 관리하며 단편적으로 얻었던 지식이 전역 후 공부하면서 하나로 연결되는 것이 신나고 즐거웠어요.

이후에 구직 사이트를 찾아봤는데 DB 엔지니어는 2년 이상의 경력직만 뽑아서 신입인 제가 이력서를 낼 곳도 없더라고요. 그래서 재밌게 공부했던 서버 쪽으로 진로를 변경했습니다.


김: 그래서 첫 회사가?

강민구: 시스템 엔지니어 뽑는다는 곳 약 150여 곳에 이력서를 냈는데 교육 관련 회사에 들어가게 됐어요.


김: 그럼 들어가서 어떤 일을 하셨죠?

강민구: 거기서 서버 구축/운용을 했죠. 교육 프랜차이즈 회사라 여러 가지 브랜드가 많았거든요. 브랜드가 런칭 될 때마다 서버를 구축하고 온라인 강의하는 서버도 만들고 했었죠.


김: 그러다 어쩌다 일본으로 이직을…

강민구: 거기서 배울 수 있는 건 다 배웠다 싶어서 다른 회사 찾아보던 중에, 같이 일하시던 분 중 한 분이 일본으로 취업을 하셨어요. 개발하던 분인데 일본에서는 서버를 관리하고 있었어요. 처음에는 메신저로 계속 리눅스에 관한 질문을 하시더라고요. 계속 대답을 하다가 그냥 제가 가면 안 되겠냐고 했더니 일본으로 오는 것에 거부감이 없으면 오시라고 해서 한 달 만에 한국 생활을 정리하고 일본으로 갔죠.


김: 제가 서버 쪽은 진짜 잘 모르는데, 서버 쪽은 윈도우랑 리눅스 있다고 얕게 알고 있습니다. 그거 말고도 또 있나요? 서버 엔지니어들이 다루는 운영체제가?

강민구: 크게 윈도우와 유닉스 리눅스가 있는데 전통적으로는 유닉스를 많이 썼고요, 윈도우가 유닉스에 도전하던 중에 리눅스란 게 나온 거고, 리눅스가 요즘에는 유닉스 시장을 잠식을 많이 했어요. 그래서 지금은 리눅스 서버가 세계에서 제일 많이 쓰이고 있어요. 윈도우도 점유율을 높여가며 지금은 리눅스 VS. 윈도우의 구도예요.


김: 장단점이 있나요?

강민구: 윈도우는 예전에는 불안정했어요. 윈도우 쓰다 보면 파란 화면 뜨고 막 이랬잖아요. 그래서 과거에 온라인 RPG 게임이 일주일에 한 번씩 정기점검하는 이유가 업데이트 패치의 이유도 있지만 서버 재부팅 하려고 점검을 해요. 재부팅을 안 하면 뻗거든요. 최근의 윈도우는 이전보다 많이 안정적이고 성능도 좋아졌다고 하지만… 비쌉니다.

리눅스는 우선 무료입니다. 그리고 세계에서 가장 많이 서버로 사용하는 운영체제다 보니 웹에서 찾을 수 있는 레퍼런스가 많습니다. 단점은 운용 엔지니어의 역량에 따라서 비용과 성능의 차이가 크게 날 수 있다는 점이 있습니다.

경쟁력 있는 시스템 엔지니어가 되기 위해서

김: 그러면 리눅스로 몇 년 정도를 해 오신 거죠?

강민구: 리눅스로 13년? 14년 정도 된 것 같아요.


김: 수많은 서버, 시스템 엔지니어들 보셨을 거잖아요. 그 시장에서 내가 그래도 어떤 경쟁력이 있고 어떻게 경쟁력을 유지할 수 있는지에 대한 팁이 있을까요?

강민구: 저는 살아남기 위해서 계속 새로운 키워드를 얻으려고 노력했어요. 그 키워드를 얻을 수 있는 데가 페이스북의 기술 커뮤니티와 구직 사이트예요. 그리고 리눅스, 셸 스크립트, 아파치, DB, 네트워크 들어가는 키워드로 검색해서 나오는 최신 책이나 재밌겠다 싶은 거는 무조건 사서 한 달에 두세 권씩 계속 봤어요.


김: 계속 최신동향이나 이런 건 어떻게 되는지 알기 위해서.

강민구: 그렇죠. 커뮤니티에서 최신 동향 확인하고 책도 계속 사서 보고, 구직 사이트를 항상 체크해요. 그걸 보면 요즘엔 이런 기술을 가진 사람을 찾는구나, 라는 게 보이거든요. 그런 거 계속 보면서 어떻게든 뒤처지지 않으려고 했어요.


김: 회사마다 서버를 구축할 때 특징이 다 다르잖아요, 어떤 차이점들이 있을까요?

강민구: 회사라기보다 서비스에 따라서 서버 스펙이나 구성이 달라져요. 웹서비스라면 웹서버, 캐시서버, DB 서버, 그 밖에 메일서버가 있을 수도 있죠. 요즘엔 잘 안 쓰지만, 그런 식으로 어느 정도 정형화된 게 있어요. 채팅이 들어갈 수도 있고요.

어느 정도 대략적인 가이드라인이 있고 그다음에는 개발자와 시스템 엔지니어의 성향에 따라서 프로그램, 버전을 선택해야 하죠.


김: 그러면 서버를 공부하고 싶거나 나는 좀 더 뒷단의 구축하는 걸 하고 싶다, 이런 사람들한테는 어떻게 가이드를 주시는지?

강민구: 그런 분들이 되게 많았어요. 많았는데 제가 해야 할 것들을 전부 알려주면 공부할 양이 많아서 그런지 빠르게 다른 길을 찾아가더라고요. (웃음)

가장 빠른 방법은 우리가 판검사 변호사 될 것처럼 법전 외우는 것도 아니니까 자기가 경험하는 분야에 자주 쓰는 명령어나 시스템 구성을 자꾸 접하다 보면 익숙해질 거예요. 그런 다음에 다른 명령어를 한 번 더 써본다든가 같은 일을 하더라도 다른 방식으로 구축을 해 본다든가 하는 식으로 범위를 넓혀나가는 게 가장 빠르게 실력이 늘더라고요.


김: 그래서 제가 빠르게 실력이 늘고픈 사람들을 위해 민구님에게 강의를 찍게 했는데요. (웃음) 어떤 걸 전해주고 싶은가요?

강민구: 제가 시스템 엔지니어로 일을 하면서 대학교 후배들이나 커뮤니티 등에서 “리눅스를 어떻게 하면 잘하는지”, “리눅스 설치했는데 이제 뭐 해야 해요?” 이런 질문을 하시는 분들이 많더라고요. 저도 처음에 그랬어요. 설치는 다 했는데 이제 까만 화면에 하얀 글씨만 멍하게 보고 있는 거죠, 팔짱 끼고 뭘 해야 하나 싶어서 책을 찾아보면 명령어가 처음에 나오거든요. 명령어를 책에 나와 있는 대로 쳐봐요. 그러면 이제 “오! 이런 명령을 이렇게 써 보면 책대로 이런 결과가 나오는구나!”


김: 명령어를 습득했다!! 마치 망치의 사용법을 익힌 것과 같네요. 그 후에 근데 뭘 만들어봐야 하지 않나요?

강민구: 네 맞아요. 여기까지는 좋은데 그다음에 더 본질적인 질문이 나와요. “근데 이게 뭐야? 언제 어디에 쓰는 거야?”하고 의문이 들어요. 왜냐면 실무를 안 해 봤기 때문에. 그래서 그런 부분에 대한 이해를 돕기 위해서 실무에서 ‘이 명령어를 이럴 때 사용한다, 그래서 이런 결과가 나오고 이 결과는 이렇게 해석한다’ 거나, ‘이렇게 조합해서 이런 결과를 뽑아낸다.’를 예시를 들어 설명했어요.


김: 그럼 리눅스에 대해서 알고 싶다거나 실무에서 어떻게 하는지 궁금함이 있는 분들이 들으면 좋겠네요.

강민구: 그렇죠. 그리고 꽤 오래전부터 사람들이 해커나 해킹에 대한 로망이 있어요. 이런 게 결국 리눅스에서 명령어를 쓰는 걸 기본으로 하고, 여러 가지 툴을 사용하는 거거든요. 근데 그 툴을 사용하는 것도 어느 정도 명령어랑 개념이 있어야 사용할 수 있고 셸 스크립트를 만들 수 있으면 상대방 서버에 들어가서 스크립트를 돌려서 원하는 작업을 하거나 이런 게 가능해지는 거죠.


김: 실전편에서 하고 싶은 얘기는요?

강민구: 실전편에서는 말 그대로 실전과 비슷한 환경을 준비했어요. 가상으로 회사를 하나 만들어서 회사에서 일어나는 일을 롤플레잉 게임처럼 진행하려고요.

이 회사에서 서비스를 구성하는 서버 구성도와 서버 스택, 스펙도 미리 준비를 다 해놨습니다. 그리고 실습용 서버를 로컬에 쉽게 구축할 수 있게 스크립트도 만들어 놨거든요. 그 스크립트를 실행하면 로컬에서 3대의 서버가 구축돼요. 그리고 제가 만든 시나리오를 진행하면서 서버를 관리하며 생길 수 있는 문제를 쉘 스크립트로 풀어나가는 것이지요.

구체적인 예를 들자면 웹서버가 장애가 났다, 그러면 웹서버 트러블슈팅을 해야 하는데 장애 대처의 대략적인 흐름을 이야기하고, 이걸 해결하는 데 필요한 셸 스크립트를 만들어요. 무작정 만들기보다 셸스크립트에 필요한 명령어, 옵션 등 기초 지식을 이야기한 후에 흐름을 파악하고 스크립트를 만드는 순서로 진행해요. 기초편이라고 해서 명령어와 옵션만 대충 구경하는 강의가 아닙니다. 실전에서 바로 쓸 수 있는 옵션과 명령으로 엄선했습니다. 실전편은 더 재밌는 스토리로 준비하고 있으니 기대해주세요.




시스템엔지니어가 알려주는 리눅스 기초편 Bash Shell Script 더 알아보기 


리눅스 명령어를 몇 개 쓸 줄 아는데 이걸 언제 어디에 어떻게 써야하나요?

이렇게 쉬운/어려운 명령어를 실무에서 쓰긴 쓰나요?

이런 명령어는 어디에서 어떤 때 쓰나요?


전 세계에서 서버로 가장 많이 사용하는 운영체제인 리눅스(Linux)!
그 리눅스를 자유자재로 다루기 위한 첫걸음인 CLI(Command Line Interface)기본 명령어와 그 명령어의 조합으로 만드는 쉘 스크립트에 대한 이야기입니다. 이 강의는 리눅스에 관심이 있는 분이라면 처음에 누구나 가져봤을 의문과 고민을 해결해 드립니다.


일잘러를 위한 교육 플랫폼, 그로스쿨입니다.




클래스101 신주혜, 쿠팡 셀러 강요한, 해킹그로스길드 최윤석이 들려주는 마케팅 세미나!

9월 1일, 실시간 온라인 스트리밍으로 만나보세요.


무료로 신청하기:
abit.ly/sba그로스쿨_마케팅세미나


Plav 대표 박상욱, XYZ벤터파트너스 대표 하용호가 들려주는 비즈니스 트렌드 세미나!
8월 25일, 실시간 온라인 스트리밍으로 만나보세요.


무료로 신청하기:
abit.ly/sba그로스쿨_트렌드세미나




일잘러를 위한 교육 플랫폼 <그로스쿨>에서는

재야의 찐 고수분들을 모셔 기획, 마케팅, 비즈니스, 커머스, 생산성 분야의 온·오프라인 강의를 열고 있어요.

커리어 성장을 도와주는 다양한 프로그램을 만나보세요 :)


그로스쿨 웹사이트

그로스쿨 페이스북

그로스쿨 인스타그램

매거진의 이전글 당신이 콘텐츠를 만들었으면 좋겠습니다
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari