개발자라면 많은 트래픽을 받아보고 싶은 분들이 많을텐데요,
정작 신입 이력서에서 요구하는 대규모 트래픽 경험을 도대체 어디서 얻을 수 있는지는 알기가 어렵습니다.
기업에서 신입에게 어느정도의 선을 요구할지, 좀 더 명확하게 차근차근 알려드리겠습니다.
당연하게도, 가장 이상적인건 직접 경험하는 것
당연히 대규모 트래픽을 직접 경험해보았다면 가장 이상적이겠지만,
이 글을 보시는 분들은 이런 대답을 원한게 아닐 것이라는 것쯤은 알고있습니다.
그렇다면, 왜 이게 가장 이상적일지 생각해보신적이 있을까요?
깊게 생각해보지는 않고 "단순히 동일한 경험이니까." 정도로 치부할게 아니라,
대규모 트래픽을 경험해봤다는 것의 실제 의미는 시스템 운영 중에 트래픽으로 인한 부하가 될만한 지점(병목지점)을 인지하고 개선하는 것입니다.
당연히 실제 운영되는 서비스로 경험해보았다면, 위 과정을 진행한 것이니 이상적인거죠.
핵심은 부하지점 인지와 개선
결국 기업에서 원하는 대규모 트래픽의 핵심은 "이 사람이 시스템의 부하지점을 정확히 정의할 수 있고, 그것을 개선할 수 있는 능력을 가졌는가?" 입니다.
시스템을 개선하기 위해서는 부하지점을 알아야하는데, 그럼 부하지점을 알기 위해서는 어떤 방법이 필요할까요?
당연하게도 트래픽이 많은 상황을 직접 만들어보는 것, 바로 "부하테스트" 입니다.
부하테스트를 위한 도구로는 jmeter, ngrinder, k6 등의 여러가지가 있지만, 여기서 가장 중요한건 부하테스트 도구를 공부하는게 중요한게 아니라, 부하테스트를 어떤 목적에서 진행하는지를 인지하는 것입니다.
그럼, 어느정도까지 부하테스트를 해야할까?
부하테스트를 해보려고 했을 때, 어느수준까지의 부하테스트가 필요한지도 모호할 수 있습니다.
그럼 기업은 어느정도의 부하테스트를 원할까요?
안타깝게도 대규모 트래픽의 기준은 기업마다 천차만별입니다.
어떤 기업에서는 1초에 몇백 건의 요청만으로도 서비스 전체가 문제가 발생할 수도 있지만, 어떤 기업은 초당 수천 건이 크지않은 요청이라고 판단할 수도 있습니다.
결국 '대규모' 라는 단어는 상대적인 말이기 때문에, 이것만으로 부하테스트의 규모를 결정짓기는 어렵습니다.
그러나 생각해볼 수 있는 건 "이제 막 들어올 신입에게 엄청난 TPS를 처리하는 수준을 기대하지 않을 것이다." 라는거죠.
그러므로 저사양의 서버나 TPS가 많지 않더라도 여기서는 문제가 많지 않습니다.
그럼 왜 대규모 트래픽이라는 말을 썼을까요?
위에서 이야기한 내용대로라면 대규모 트래픽이 아니라, "부하테스트를 경험해본 사람" 정도만 어필이 되더라도 크게 문제없을 것 같은데, 왜 대규모 트래픽을 경험해본 사람을 원한다고 적었을까요?
의미가 없어보이지만, 많은 의미가 있습니다.
먼저 "부하테스트를 경험해본 사람"이 의미하는 것은 관점에 따라 "부하테스트 툴을 사용해본 사람"의 수준까지도 내려갈 수 있습니다.
그러므로 부하테스트 툴만 사용한 사람은 의미가 없죠.
반대로 "대규모 트래픽을 경험해본 사람"의 경우 아무리 낮게 생각하더라도, "트래픽이 증가함에 따른 문제를 정의하고 개선할 수 있는 사람"입니다.
기업에서는 이력서가 들어오는 것부터 비용이기 때문에 채용 전에 걸러주는 효과가 큽니다.
오히려 "대규모 트래픽"이라는 문구의 부담으로 인해 기술적 역량이 적은 사람들도 취업하는데 부담을 느끼게 하기 좋죠.
부하를 인지하고 해결하는데는 기술적인 역량이 필요합니다.
시스템의 부하가 발생하면 서버(어플리케이션 레벨)뿐만 아니라, 하드웨어나 인프라 요소들까지도 생각하고 고려해야하는 경우가 있습니다.
결국 "문제를 정의하고 개선할 수 있는" 이라는 말 속에는 위와 같은 요소를 어떻게 측정하고 문제 지점을 지정했는지에 대한 "기술적인 근거"가 필요합니다.
그리고 그 근거로 인한 문제를 해소하기 위한 "방법" 또한 기술적인 근거가 필요한거죠.
그 근거에 필요한 기술들은 채용공고에 나와있을 가능성이 높으니, 채용공고를 잘 확인해보세요!
대규모 트래픽 경험 요구의 본질
정리하자면, 신입 개발자에게 대규모 트래픽 경험을 요구하는 것이 반드시 높은 TPS를 기대하는 것은 아닙니다.
"부하"라는 주제를 기준으로 문제를 정의하고 해결하는 것에 대한 전반을 아는지를 보는 것입니다.
그러니 마냥 걱정만 하기보다는원하는 기업에 맞는 대규모의 트래픽을 경험해보기 위해서 어떤 기술이 필요할지, 어떻게 테스트해보면 될지 등을 고민해보는 것이 중요할 것 같습니다.
어려운 시기에 취업을 위해 노력하시는 분들에게 조금이라도 도움이 되길 바랍니다.
'생각 정리 > 개발' 카테고리의 다른 글
개발을 할 때는 아무것도 믿지 않는다. (1) | 2025.02.11 |
---|---|
프로그램 설계, 이게 정답입니다. (0) | 2025.02.02 |
개발부하와 업무부하는 비슷하다. (1) | 2025.02.02 |
성장을 위해선 생각해야 한다. (1) | 2025.01.13 |
개발은 완벽하지 않아도 된다. (0) | 2025.01.09 |