일단 너무나 잘 보고 있습니다! 아직 저한테는 너무 어려운 주제라 몇번은 곱씹어보며 제대로 이해하기 위해 노력해보겠습니다..! 다름이 아니고 몇가지 궁금해서 이렇게 질문 드려봅니다!
제가 다니는 회사는 공공기관을 대상으로 하는 SI 업체를 다니고 있습니다! 아무래도 회사나 클라이언트의 목표 자체가 성능보다는 안전함을 추구하기에 사실 이렇게 대규모 시스템 설계와는 좀 거리가 먼 경향이 있습니다ㅠㅠ 강의 내용이랑이런게 너무 좋긴한데 이럴때는 강사님은 어떤식으로 공부하실거같나요??
1번과 연관된 질문인데 제가 지금 유지보수하는 사이트가 그렇게 많은 트래픽을 받고 있진 않습니다..! 그렇더라도 저렇게 바람직한 설계를 해두는 것이 좋은 것인가 궁금합니다!
마지막으로 강의 내용을 보면 MSA 방식을 사용하셨는데 앞으로 대용량 트래픽을 다루는 많은 기업들이 MSA 방식을 채택하고 변경하실 것이라고 생각하나요?? MSA 방식에 대해 공부하고 학습해두면 취업 시장에서 경쟁력이 있을지 궁금합니다!
이래저래 고민이 많다보니 이렇게 길게 질문드려서 죄송합니다! 좋은 강의 감사합니다 강사님 답변 기다리겠습니다!
승환님, 안녕하세요!
강의 잘 수강해주셔서 감사합니다!
대규모 시스템을 직접 다뤄본적이 없다면 누구든 어렵게 다가올 수 있는 내용이라, 꾸준히 학습하시면서 잘 체득하시리라 믿습니다!
일단 짚고 넘어갔으면 하는 부분은, 성능을 추구한다고 해서 절대로 안정성이 떨어지는건 아닙니다!
다만, 복잡한 분산 시스템보단 단일 시스템이 시스템에 대한 이해는 편할 수는 있겠네요.
말씀드리고 싶은 점은, 대규모 시스템이든/소규모 시스템이든 결국 안정성은 가장 주요한 1순위입니다. 오히려 성능적인 측면에 후순위라고 생각되네요.
그리고 어떠한 지표든 결국 가장 중요하고 공부가 필요한 것은 기본기라고 생각됩니다.
CS 이론(운영체제, 데이터베이스, 자료구조, 네트워크, 컴퓨터 구조 등)과 알고리즘에 대한 기본기가 없다면, 처음부터 성능이나 안정성 고려해서 설계 및 구현하기도 어렵고 문제 시에 원인 파악도 쉽지 않습니다.
기본기를 공부하면서 실무 경험을 차차 쌓아나가면 좋을 것 같네요.
기본기 외에는 사실 직접 운영하고 경험적인 측면에서 배우는게 가장 크기 때문에, 개발에 대한 욕심이 있다면 조금 더 문제 상황이 복잡하고 실 사용자가 많은 시스템이 있는 곳에서 실무 경험 쌓아나가시면 좋을 것 같네요!
당장 마땅한 실무 경험을 겪지 못하는 상황이라면, 다른 실무 관점에서의 개발 책이나 다른 기업들 기술 공유도 블로그나 영상으로 제공되는게 많다보니 간접적으로나마 경험해보는 것도 추천 드립니다.
절대 처음부터 복잡하게 시스템을 구축할 필요는 없습니다.
단순하게 개발 난이도 뿐만 아니라 팀 구성원들의 학습 수준에 대한 고려가 필요할 수도 있고, 실제 돈(서버 비용)도 들어갈 수 있는 문제라, 회사와 팀 사정 고려해 보셔도 좋을 것 같습니다.
다만, 이후에 문제가 발생할 여지가 있고 미리 챙겨두는게 큰 비용이 없는 부분이라면, 당연히 미리 챙기면서 설계하는게 좋다고 생각되네요. 예를 들어, 처음부터 캐시/카프카 이런 것들은 당연히 적용할 필요는 없지만, 어차피 만들어야하는 인덱스 같은 경우 처음부터 잘 설계하고 최적화 해두는게 유리할 것 같네요.
결국 현재 처한 상황에서 최선의 구조를 만들어내면 충분할 것 같습니다. 물론, 각자 처한 환경이나 시스템이 모두 다를 수 있다보니 이에 대한 기준을 잡아나가는건 쉽지 않겠지만요.
이러한 기준도 알아야 만들어낼 수 있는 것이기 때문에, 본인이 직접 학습하고 경험하며 이 기준을 만들어 나가면 될 것 같습니다!
이미 대용량 트래픽을 다루는 많은 기업들은 MSA 방식을 채택하고 있습니다. 물론, 이론적인 부분이라 구현에 대한 정답은 없고 모두 다르긴 하지만요..
다만 취업 시장에서 MSA를 "학습"했다고 해서 경쟁력이 있다고 말씀드리긴 어려울 것 같습니다.
MSA가 확립된 구현 방향이 있는 것도 아니고, 실제로 대규모 트래픽을 다루지 않는다면 제대로된 MSA를 했다고 말할 수도 없고, 기업에서도 그렇게 믿지도 않습니다.
결국 경험이 중요한 것인데, 그러한 경험을 쌓는게 쉽진 않은 것 같아요.
그래도 이론적인 부분이나 MSA와 관련된 기술들은 어느 정도 학습해두시면 좋다고 생각 됩니다!
제대로된 경험이 있다면 취업 시장에서 경쟁력이 되는건 사실이고요.
실제로 요즘 기업들 모집 공고보면, 우대조건에 MSA 운영 경험은 항상 적혀있던 것 같아요.
충분한 답변이 되었을지 모르겠네요, 혹시 더 궁금한 점 있으시면 편히 남겨주세요!
답글