- 오늘 이호준 멘토님 덕분에 야놀자 시스템 엔지니어인 김성한님과 미팅(?)이라기보다 조언을 받는 시간을 가질 수 있었습니다. 기억이 휘발되기 전에 다른 분들에게도 내용을 공유하고 싶어 글을 남깁니다. 다만 제 기반지식이 부족해 잘못된 내용이 있을 수도 있습니다.
- 원본링크 : https://velog.io/@yujo/
시스템 엔지니어가 되려면 어떻게 해야하나요
시스템 엔지니어가 뭐하는 사람인가, 인프라 엔지니어는 뭐를 하는지 먼저 알아야 한다.
통신 프로토콜을 이해하는게 중요하다.
OSI Layer를 이해해야 한다.(4계층과 7계층의 차이)
내가 짠 코드가 실행 될 때 힙 영역, 스택 영역 어디에서 얼마만큼의 자원을 사용하며 실행되는지 알아야 한다.
OS가 무엇이냐
OS는 개발할 때 사용하는 3가지 자원(RAM, CPU, DISK)에 대해 스케줄링하는 녀석
시스템 모니터링을 통해 자원스케줄링이 가능해야 한다.
요즘의 추세
많은 기업들이 클라우드를 사용하고 있다. 그러나 클라우드가 온프레미스(On-premise)방식보다 무조건 싸다는건 착각.
On-premise : 소프트웨어 등 솔루션을 클라우드 같이 원격 환경이 아닌 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식
아직 온프레미스 위주로 운영되는 회사들도 있다. 서버도 단순히 한번 설치하고 끝이 아니다. 장비 같은 경우 길어야 5년 정도 사용할 수 있고 장비의 관리를 위해 자원도 많이 사용하지 못 한다.
이전에는 서버의 CPU점유율이 30%만 넘어가도 약간 비상? 상황이 됐다고 한다. 만약 서버 하나가 망가지게 되면 다른 관계부처들과 협의하고 서버를 언제 내릴지(임시점검) 회의하는데만 1주일이 넘게 걸리고 프로세스를 모두 거쳐 서버를 시키고 재설치하는데만 대략 2 ~ 3개월이 걸렸다고 한다. 하지만 클라우드 환경에서는 비슷한 일이 있을 경우 수 시간 내로 해결이 가능. 클라우드는 확장성이 좋다. 그래서 클라우드 서버는 CPU점유율을 90%넘게까지 사용한다.(많이 쓰면 비싸니 적게 사용하는 이유도 있다.)
클라우드 서비스를 “잘” 써야 싸다. “잘” 쓰려면 코드를 효율적으로 작성해야 한다. 쉽지 않은 일
예전에는 보안이 필요한 통신에서는 별도의 핫-라인을 설치해서 핫라인으로만 통신하는 일이 많았다.(ex. 결제, 개인정보 등등), 그러나 요즘에는 클라우드 내에서도 퍼블릭 클라우드 안에 프라이빗 클라우드를 운용할 수 있게 돼서 핫라인을 설치하지 않고 클라우드로 한다고 한다. 이런 쪽으로 굉장히 보수적은 금융권마저 요즘에는 클라우드로 옮기는 추세
멘토님들의 조언
프론트엔드, 백엔드 어느 쪽 개발을 하던 언젠가는 인프라에 대한 이해가 필요한 순간이 온다. 직접 시스템 엔지니어로 일을 하지 않더라도 인프라, 클라우드에 대한 이해가 있으면 굉장히 좋다.
프론트엔드, 백엔드를 할 수 있다고 풀스택 개발자가 아니다. 풀스택 개발자는 인프라도 이해하고 사용할 수 있어야 한다.
듣고 느낀 점
오픈 스택을 이용해 직접 서버를 구축해보는건 너무 재밌고 값진 경험이 될거 같다.
내 기반 지식이 부족해 멘토님들의 얘기를 모두 이해하지 못해 너무 아쉽다. 더 열심히 공부하자.
이외에도 피가 되고 살이 될만한 좋은 조언들을 많이 해주셨습니다. 가장 아쉬운건 제 기반지식이 부족해 이호준 멘토님과 김성한 시스템 엔지니어님께서 해주신 말씀들을 100%이해하지 못한 점입니다. 다음 번에 테크세미나 같은 형식으로 다시 한번 초청해 얘기를 들을 기회를 마련해주신다고 하셨는데, 그 때까지 열심히 공부해서 그 때는 말씀해 주신 내용을 모두 이해하고 제 것으로 만들고 싶습니다. 좋은 기회를 마련해주신 이호준 멘토님과 피가 되고 살이 될만한 조언을 해주신 김성한 시스템 엔지니어님에게 다시 한번 감사의 인사를 드립니다.