"스레드를 많이 쓸수록 항상 성능이 좋아질까요?" 기술 면접에서 물어본다면?

Sdílet
Vložit
  • čas přidán 28. 08. 2024
  • #스레드 #기술면접 #개발자 #쉬운코드
    스레드는 동시에 여러 작업을 수행하기 위해 많이 쓰이죠
    스레드들을 통해 동시 처리량이 많아지니까 애플리케이션 성능도 좋아집니다
    그런데 스레드를 많이 쓰면 쓸수록 항상 성능이 좋아질까요?
    기술 면접에서 이런 질문을 받는다면 어떻게 대답할 수 있을까요?
    오늘은 이 얘기를 해보도록 하겠습니다

Komentáře • 21

  • @devyun1954
    @devyun1954 Před rokem +4

    요즘 이 부분에 대한 답변을 정리하고 있었는데 제가 운이 좋았네요 ㅎㅎ 감사합니다. 최근에 자료구조 영상을 주로 챙겨 보는데 덕분에 큰 도움 받고 있습니다 .. !! 이번주도 고생 많으셨습니다. 😀

    • @ez.
      @ez.  Před rokem +1

      오 나이스 타이밍이었네요ㅎㅎ
      다행입니다~ 도움이 많이 되고 있다니 저도 뿌듯하네요 :)
      항상 좋게 봐주시고 애청해 주셔서 정말 감사해요!! 최고최고!! 👍👍👍

  • @NLDS003
    @NLDS003 Před rokem +1

    영상 보기 전에 미리 답을 스스로 생각해보았는데 거의 대부분 일치해서 기분이 좋았네요! 횡설수설 설명이었는데 역시 쉬운코드님 설명이 깔끔 정확..👍 오늘도 잘 봤습니다.

    • @ez.
      @ez.  Před rokem +1

      크~~ 역시 seul님 최고십니다!! 기본기가 탄탄하신 분 👍👍👍

  • @P3N9U1N5
    @P3N9U1N5 Před rokem +7

    CPU bound, IO bound가 뭔지 몰랐는데, 혹시 저 같은 분 계시면 선행 영상으로 먼저 이 걸 보고 보면 더 좋겠네요~
    czcams.com/video/qnVKEwjG_gM/video.html
    실행 순서랑 Context Switching밖에 생각 안났는데 많이 배우고 가네요. 감사합니다!

    • @ez.
      @ez.  Před rokem

      와우 이런 댓글 너무 좋습니다😄 다른 분들도 배려하는 센스!! 정말 최고십니다👍

  • @pinetree_kr
    @pinetree_kr Před rokem +1

    평소 궁금한 부분이었는데, 이렇게 설명해주셔서 감사합니다 :)

    • @ez.
      @ez.  Před rokem +1

      크~~ 도움 된 것 같아서 뿌듯하네요 ㅎㅎ 댓글 감사합니다 👍

  • @sapzilking
    @sapzilking Před rokem +1

    최근에 알게되었는데 컨텐츠 들이 다 좋고 만드시느라 노력하신게 느껴지네요. 감사히 보겠습니다 :)

    • @ez.
      @ez.  Před rokem +1

      감사합니다!!
      보시는 분들이 최대한 쉽게 이해하실 수 있게 내용과 시각적인 것 모두 열심히 준비하고 있어요 :)
      자주 놀러와 주세요 😄

  • @jihyekim3543
    @jihyekim3543 Před rokem +1

    꾸준하게 영상 올리시는거 진짜 존경합니다. 언제나 응원하고 있습니다!

    • @ez.
      @ez.  Před rokem +2

      극찬 감사합니다 ㅠㅠ
      저야말로 항상 꾸준히 응원해 주셔서 정말 감사드려요~! :)
      올해도 3개월 정도 남았는데 계획하신 모든 일들 다 잘 되길 응원할게요 !!

  • @user-ut9tq7ce7h
    @user-ut9tq7ce7h Před rokem

    많이 배우고 있습니다
    잘못 알고 있던 부분도 많네요

  • @bum7006
    @bum7006 Před rokem +4

    컨텍스트 스위칭까지는 알고 있었고 실무에서 스레드 수를 오히려 줄여서 latency를 낮춰본 경험이 있습니다. 헌데 Io bound, cpu bound까지는 생각못했습니다..!! 또 하나 배워가네요 감사합니다!

    • @ez.
      @ez.  Před rokem +1

      오 !! 이미 실무에서 튜닝하신 경험이 있으시군요 ! 멋지십니다 👍
      댓글로 자주 소통해 주셔서 감사해요 :)

    • @bum7006
      @bum7006 Před rokem +1

      @@ez. 저희가 redis를 broker, celery로 worker로 이용하고 있는데요, celery에서 concurrency 설정이 가능합니다. 이 값에 따라 프로세스 혹은 스레드가 해당 값만큼 생성되어 메세지를 처리하는 방식이구요. 마스터 process 혹은 thread에서 message를 받아와서 worker들에게 할당하고 worker가 이를 받아 실행하게 되어 있는데요, 이 worker 수를 concurrency로 설정하게 됩니다. 코어 수에 비해서 이 수치가 100으로 생각보다 크게 설정되어 있길래 46정도로 줄여보았더니 latency가 크게는 아니지만 줄어드는걸 확인할 수 있었습니다 ㅎㅎ

    • @ez.
      @ez.  Před rokem +1

      오오 자세히 설명해 주셔서 감사합니다!
      멋지십니다~! 설정값 하나 바꾸는 것이 간단해 보이지만 사실 이쪽 지식이 없으면 못보고 지나칠 수 있는 부분인데 잘 튜닝해 주셔서 실제 성능 개선까지 이끄신게 멋지신거 같아요 👍
      혹시 괜찮으시면 써주신 댓글을 언젠가 관련 콘텐츠 만들 때 사용해도 될까요?
      좋은 사례가 될 것 같아서요~

    • @bum7006
      @bum7006 Před rokem +1

      @@ez. 헙 이거 왜 제가 답글을 안달았죠! 그럼요!! 동시성 영상보면서도 생각난 사례가 있는데 댓글로 남길게요

    • @ez.
      @ez.  Před rokem +1

      오 감사합니다!! 좋은 사례로 잘 사용할게요 👍

  • @user-cx3sv5ue1f
    @user-cx3sv5ue1f Před rokem

    안녕하세요~ 댓글은 처음남겨보는데 취업준비하면서 영상 많이 도음받고있어요 진심으로 감사드립니다!!
    스레드 관련 영상들 보고 있던중에 궁금한점이 생겨서요! 말씀하시는스레드는 항상 유저레벨 스레드인것이 맞나요? 커널은 그저 프로세스를 실행한다고 생각할뿐이고 그 프로세스 내에서 실제로는 여러 스레드들이 존재하는게 맞는지 헷갈리네요😂 그리고 유저레벨에서는 하나의 스레드가 블럭되면 결국 커널입장에서는 알수 없으니 프로세스 자체가 블럭된것과 마찬가지라고 알고 있는데, 그렇다면 유저레벨에서 내부적으로 스레드를 스케쥴링하는 방법은 무엇이 있나요? 예를들어서 일정시간이 되면 yield 를 해서 내놓아야한다거나 .. 이러한 부분들을 개발자가 직접 프로그래밍하는단계에서 조절이 가능한지 궁금합니다!
    이미 어디선가 언급하셨다거나.. 제가 애초에 이해를 잘못했다면 알려주시면 감사하겠습니다ㅎㅎㅎ 적을수록 뭔가 더 헷갈리네요 우하핫… ㅠㅠ

    • @ez.
      @ez.  Před rokem

      안녕하세요 민지님 반갑습니다 :)
      보통 스레드라고 할 때는 일반적으로 OS 스레드 (즉, 커널 레벨의 스레드)라고 생각하시면 됩니다
      유저레벨 스레드의 경우 OS 스레드와 1:1로 맵핑되는 경우에는 일반적으로 그냥 스레드라고 부르지만 그 외의 경우, 즉 N:1이거나 N:M 맵핑일 때의 유저 레벨 스레드는 보통은 스레드가 아닌 다른 용어로 불리기 때문에 보통 스레드라고 할 때는 일반적으로는 OS 스레드라고 생각하시면 될 것 같아요 :)
      나머지 질문들은 제가 시간 관계 상 모두 답변드리기가 어려워서요 ㅠㅠ 이 부분은 양해 부탁드리겠습니다~!