가진 자원보다 더 큰 트래픽을 받으면 대용량이죠. 자원 한계를 넘어서기 위해서 어떤 고민을 해서 프로그래밍을 했는가 이게 대용량 경험의 핵심입니다 트래픽이 몇 정도 되었을 때 장애가 발생하였나? 코드상에 불필요한 연산을 개선할 수 없나? 장애가 발생한 시점에 컴퓨팅 자원은 가용성이 아예 없었나? 가용성을 늘리기 위해 멀티스레드, 멀티프로세스를 적절히 구현하였는가? 서버를 늘렸을 때, 서버 간 분배는 잘 이루어졌는가? 급작스럽게 서버를 늘려야 할 경우, 서비스 구동까지 수 분 안에 증설할 수 있나? 서버가 많아졌는데 로그 수집 및 모니터링은 어떻게 할 건지? 돈찍누를 하려고 해도, 돈찍누 할 준비는 되어있어야죠. 트래픽이 적더라도, 위에 이슈들이 발생했다고 가정하고 하나하나 해결하기 위해 공부하다보면 내 면접 때 충분한 인정을 받을 수 있을겁니다. jmeter같은거로 트래픽 미친듯이 쏠 때 모든 서버에서 cpu가 비명지르는 모습을 행복하게 바라보는 마음가짐이 중요합니다 ㅋ
좋은 지적이네요. 덤으로 요즘 드는 생각은... "대용량 트래픽 경험" 이라고 이야기하는데 사실 이건 너무 추상적인 게 아닐까 싶어요. 어느정도 규모가 있는 서비스들은 영상에서 이야기한대로 탄력이 붙어서 계속 커지고 온갖 사고가 발생하고 그걸 해결하며 코드베이스도, 시스템도, 아키텍처도, 조직의 규모도 같이 성장하는데, 그 과정과 결과를 겪어본 게 더 좋은 경험이 아닐까 싶어요. 그리고 사실 이건 성장하는 스타트업이라도 겪어볼 수 있을 테고... (그러고보니 구독해두고 영상 보긴 하는데 댓글은 처음 남기네요 ㅎㅎㅎ)
좋은 영상 감사드립니다! 최근 취업 준비를 하고 있는데, 지난 2개의 팀프로젝트에 대해서 대용량 트래픽 경험 뿐 아니라 사용자 경험이 많지 않아서 막막했습니다.. 해당 영상을 보고, '대용량 트래픽을 임의로 줘서 경험을 쌓으면 되는구나' 라는 걸 느꼈습니다. 곰곰이 생각하면 알 수 있지만, 뭔가 확신이 들지 않았는데 해당 영상을 통해 확신이 들게되었습니다. 팀프로젝트에 적용해보겠습니다! 감사합니다! 😊
봐주셔서 감사합니다😊 아무래도 팀 프로젝트에서는 환경상 두가지 포인트를 다 만족하기 쉽지 않은 것 같아요! (특히 사용자 경험은 더 어렵죠ㅜㅜ) 그래도 트래픽에 대해서는 100% 현업의 경험은 못 하지만, 부하를 부어보면 간접적으로 실무를 느껴볼 수 있으니 한번 해보시면 좋을 것 같습니다! 화이팅하세요!!
비슷한 주제로 타 시니어 개발자 분께도 질문을 드렷던적이 있는데 대용량 트래픽 관련질문을 면접 평가 기준으로 잘 안잡는다 하더군요 대용량의 기준도 모호하고 설령 대용량 트래픽으로 한다 해도 흔히말하는 돈찍누로 해결하는 경우도 꽤 봐서 지원자의 경험이나 실력을 평가하는 기준으로는 부적절하다 한게 기억나네요 이런주제 관련 애기 들을때마다 핵심은 개발하면서 예상했던 트래픽보다 더 많이 들어온다면 어떻게 대처해야지? 에 대한 고민과 대처법을 잘 설정하고 대처법에 대한 비용을 고민한 생각이 중요한것 같습니다
제가 여쭤본게 벌써 2개나 영상으로 나오다니.. 감사합니다 크흡 제미니님이 말씀하신것처럼 요즘은 트래픽이 많은 상항에서 어떤식으로 설계를 바꿔나갈지 토이 프로젝트에 혼자 트래픽을 늘려보면서 테스트를 해보고 있었는데, 트래픽 경험이 없으면 트래픽을 부워봐라!가 당연한 방법이라고 할 수있지만 잘하는 분이 이 방법을 추천해주시니 제대로 하고 있는것 같아서 기분이좋네요.. ㅎㅎ 하나 궁금한게 있는데, 동시성 이슈가 발생할 여지가 있는 로직의 테스트는 1, 이슈가 발생해서 exception 터지는걸 테스트 -> 2. 개선 -> 3. 통과 테스트 순으로 진행하고 있는데, 실무에서 이런 테스트를 할 때 executorService를 주로 쓰나요?? 어떤 방식으로 테스트 코드를 짜는지 궁금해서 여쭤봅니다
항상 좋은 질문 제가 더 감사드립니다😄 말씀하신 테스트 같은 경우는 executor 사용하는편이구요 CountDownLatch 같은 것도 같이 사용하기도 합니다 (만약 DB 유니크 충돌 케이스라면 executor도 필요 없을거구요!) 추후 적절한 예제 나오면 코드로도 얘기해보겠습니다ㅎㅎ
제미니님 항상 영상 잘보고있습니다! 영상들이 너무 도움이 많이됩니다 . 한가지 궁금한게 있는데 레이어간 (컨트롤러, 서비스, 레파지토리) 데이터를 넘기는 객체는 어떤객체로 하는게 맞는건지 너무 헷갈립니다 컨트롤러 리퀘스트로 받은 객체를 그대로 서비스에 넘기는게 맞는건지 아니면 레이어간 이동시에는 핵심도메인객체로 변환해서 넘기는게 맞는건지 (ex 엔티티) 제미니님만의 규칙? 같은게 있는지 궁금합니다.
봐주셔서 감사합니다! 물어보신 내용은 아래 글과 영상을 참고하시면 될 것 같습니다. (제 채널에 비슷한 얘기의 영상도 있을텐데 어떤 영상인지 모르겠네요) geminikims.medium.com/지속-성장-가능한-소프트웨어를-만들어가는-방법-97844c5dab63 ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-RVO02Z1dLF8.htmlsi=xLcY7RwPILdX3vD6