개발자

개발자들이 말하는 대규모 트래픽 경험은 뭔가요?

2023년 01월 06일조회 6,929

안녕하세요. 이번에 백엔드 개발자로 취준을 하고 있는 학생입니다. 문득 면접 정리를 하다보니 "대규모 트래픽을 경험해보고 싶습니다"라고 말한 것이 사람마다 느끼는 점이 다를 수 있겠다 라고 생각이 되더라구요. 저는 저 표현을 썼을때 1000만명이 써도 서비스가 안 죽고 요청을 잘 처리하는 서버 운영 방법을 알고 싶다라는 의미에서 썼는데요. 생각해보니 대규모 트래픽이 몰려서 서버가 죽는 경우는 일상에서 그렇게 흔하지 않을 수도 있다고 생각이 되었습니다. 혹시 선배님들은 위와 같은 말은 하면 어떤 것을 경험해보고 싶다인지 구체적인 사례를 알려주실 수 있나요? 예를 들면 대규모 트래픽이란 어느정도고 서버가 트래픽 때문에 죽는 경우가 실제로 흔한 사례인지도 궁금합니다. 감사합니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 4

인기 답변

손정현님의 프로필 사진

안녕하세요! 이미 좋은 답변이 많아서 저는 공부하시면서 참고하면 좋을 것 같은 사이트만 링크 걸겠습니다 :) - http://highscalability.com/start-here/ - https://alexpareto.com/scalability/systems/2020/02/03/scaling-100k.html - https://leonkim.dev/systems/scaling-100k/ (위 링크 번역본) - https://shdkej.com/100k_concurrent_server/

profile picture

익명

작성자

2023년 01월 11일

링크 감사합니다 살펴보겠습니다!

구성모님의 프로필 사진

구성모

Junior BE Dev1월 20일

좋은 정보 너무 감사합니다.

인기 답변

옥민수님의 프로필 사진

통념적으로 "대규모 트래픽에 대한 경험"이 가르키는 것은 "절대적으로 많은 트래픽"이 기준이긴 합니다. 하지만 실제적으로는 "시스템 가용성의 범위를 넘었을 때의 대응 경험"이 더 올바릅니다. 예를 들어 아래 1,2,3 구성은 예상 트래픽에 맞춰 설계되었고 그에 맞춰 가용성을 가지고 있습니다. 이 가용성을 넘어 섰을 때 각 리소스 별 한계로 인한 장애가 발생이 됩니다. 구성에 따라 TPS와 설계/구현의 방식, 병목/장애 포인트, 모니터링과 배포 전략 등이 다 다릅니다. 1. srv 1 + db 1 2. lb 1 + srv n + db 1 + cache 1 3. lb n + srv n + db n + cache n + queue n + fs 1 + es n ...... 결론적으로 서비스의 가용성 이상의 트래픽에 대한 대응이 가능한 경우가 "대용량 트래픽에 대한 경험"일 것 입니다. * 순간적인 트래픽에 대한 1차적인 대응으로는 Scale Out/Up, Cache, Proxy 전략을 사용하지만 성장을 하고 있는 서비스라면 설계 자체를 변경하여야 합니다.

profile picture

익명

작성자

2023년 01월 11일

오 그렇군요 답변 감사합니다 큰 도움이 되었어요!

인기 답변

강병진님의 프로필 사진

말씀하신 것처럼 여러명이 사용하는 서비스를 잘 운영하는 부분도 있지만 예상하지 못한만큼 사용자가 증가하는 경우도 포함한다고 생각합니다. MAU가 1000만명이면 월 1000만명이 사용했을 때 문제가 없도록 구현을 잘 해놓았을텐데, 이게 갑자기 동시에 100만명이 리퀘스트를 보내는 것과는 또 다른 개념이라고 생각합니다!

profile picture

익명

작성자

2023년 01월 11일

아하 네 이해했습니다 감사합니다!

커리어리 AI 봇님의 프로필 사진

대규모 트래픽을 경험해보고 싶다는 표현은 indeed 사이트에서 IT 업종 취업 공고에서 자주 사용되는 표현 중 하나입니다. 그러나 이는 개발자에게 구체적인 의미가 없는 추상적인 표현이기도 합니다. 따라서, 이를 구체화하여 명확한 의미를 부여하는 것이 중요합니다. 대규모 트래픽이란, 초당 수백, 수천, 수만 개의 요청이 동시에 발생하는 경우를 의미합니다. 이는 서비스의 규모나 종류에 따라 달라질 수 있습니다. 예를 들어, SNS나 온라인 게임과 같은 대규모 서비스의 경우 수억 명의 사용자가 존재하며, 초당 수만 개 이상의 요청이 발생할 수 있습니다. 반면, 작은 규모의 웹 애플리케이션의 경우 몇 백 명에서 몇 천 명의 사용자가 있을 뿐, 초당 요청이 몇 개에서 몇십 개 정도밖에 발생하지 않을 수도 있습니다. 서버가 트래픽 때문에 죽는 경우는 서비스의 규모와 서버의 사양에 따라 다를 수 있습니다. 일반적으로 서버의 부하를 줄이기 위해 로드밸런싱, 캐싱, 데이터베이스 분산, 샤딩 등의 방법이 사용됩니다. 또한, 클라우드 서비스를 이용하면 필요에 따라 자동으로 서버의 개수를 조정할 수 있어 대규모 트래픽에 대한 대응이 수월해집니다. 따라서, "대규모 트래픽을 경험해보고 싶다"는 표현은 구체적으로 어떤 수준의 트래픽을 다루고 싶은지, 어떤 서비스에서 일하고 싶은지에 따라 의미가 달라집니다. 서버 부하 분산, 캐싱, 데이터베이스 최적화 등의 기술적인 문제를 해결하고, 안정적인 서비스를 제공하는 것이 개발자로서의 역량을 키울 수 있는 방향입니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

비슷한 질문 1

Q. 서버 설계 어떻게 해야 하나요? 너무너무 궁금하고 급합니다.

부끄럽지만 서버 설계를 바꿔야 할 시기가 와서 선배님들께 여쭈어봅니다. 지금 aws에서 ec2 1대를 이용해서 서비스를 이용하고 있습니다. 당연 오픈한지 얼마 안 돼서 고객 유입도 적어 문제가 안됐는데 마케팅 이후 300명이 되면서 서버를 다시 작업해야 할 시기가 된 거 같아 아무리 찾아도 무얼 봐야 하는지 몰라서 여쭈어봅니다. 추가 마케팅 이후 예상 고객이 천명이 이상의 접속자가 생길 예정입니다. 프론트 : react 백엔드 : node.js DB : RDS (db.t3.micro) PC : aws EC2 1대 (t2.medium) 배포 : 젠킨스 git - 회원가입 - 상품1,상품2,고객 리스트 페이지 - 회원 정보 페이지 - 채팅(+결제) - 관리자 - 이미지 저장 이렇게 크게 나누어져 있습니다. 이런 작업이 회바회고 케바케이다 보니 어떻게 해야 할지 맞는것이 뭔지 못 찾고 있습니다. 프론트는 8080포트에서 서버를 3000 포트에서 돌리고 있습니다. 1. 컴퓨터 댓수를 늘린다. 가 서버를 분산해서 개발하는걸 말하는 걸까요? 2. 아니면 큰 PC 라지 이상의 PC를 구매하면 문제가 없는 걸까요? 부끄럽지만 이미지도 한번 추가해서 올려봅니다. ㅠㅠ

저도 서버프로그래머가 아니라 궁금한데 보통 동시접속이 아니고서야 1000명은 거뜬히 커버가능하지 않나요? aws ec1 스펙이 어느정도인지는 모르나. 저도 지금 nodejs 서버프로그래밍하고 있는데 컴퓨터 한대당 1만명으로 잡고있어서요. 궁금하네요.

외 6개 답변 보러 가기

목록으로

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!