Non-blocking I/O와 Multi-threading은 바늘과 실이다.

  Рет қаралды 10,368

널널한 개발자 TV

널널한 개발자 TV

Күн бұрын

Пікірлер: 59
@swb5272
@swb5272 2 жыл бұрын
감사합니다.
@swb5272
@swb5272 2 жыл бұрын
좋은 강의 감사합니다!!
@swb5272
@swb5272 2 жыл бұрын
스레드는 작업 단위(작업자)를 얼마나 둘 것인지에 대한 문제 - 프로세스의 동영상 처리에 몇개의 작업자(스레드)를 둘 것인가? - 동영상 다운로드 1, 동영상 재생 1, 동영상 업로드(송신) 1 - 각 작업은 순차적으로 이루어져야 하고, 3개의 스레드가 나눠서 처리한다. - 멀티스레드 and blocking i/o의 방식이라면 - 동영상 600mb를 모두 다운로드 받은 뒤에 동영상을 재생하고, 동영상 재생이 모두 완료되면 동영상을 업로드한다. - 멀티스레드 and non blocking i/o의 방식이라면 - 다운로드 스레드에서 동영상이 1mb(최소 단위) 다운로드되면 일단 재생 스레드가 재생시키고 재생이 완료된 분만큼 동영상 업로드 스레드가 업로드한다. - 다음 분량의 동영상이 다운로드되는대로 이를 반복하며 각 스레드가 계속 일을 한다. - 동영상이 모두 다운로드되면 얼마 안있어 동영상 업로드 또한 완료될 것이다. 비동기 I/O는 각 스레드(single or multi)에서 작업을 어떻게 실행하고 처리할 것인가에 대한 문제, 멀티 스레드는 스레드(작업자)를 얼마나, 어떻게 배치할 것인가에 대한 문제. 서로 바라보는 관점이 다르다 (task / executor)
@swb5272
@swb5272 2 жыл бұрын
동영상 보고 이 정도로 이해했는데.. 혹시 맞지 않는 내용 있을까요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
와우~~! 후원 감사합니다. 몽땅 커피마시는데 사용하겠습니다. ^^
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
개념적인 내용입니다. 일단 이 정도로 알고 계셔도 무방하겠습니다. 개념적인 측면에서 한 가지 더 알아 두기를 바라는 것은 'OS도 프로그램'이라는 사실입니다. 동기/비동기 라는 것도 따지고 보면 별것 아닙니다. I/O를 통제하는 역할을 수행중인 OS에게 I/O 꺼리를 던져주고 기다릴 것인지 아니면 잊고 있다가 전화를 받을 것인지...그 차이 정도가 되겠습니다. 'OS도 프로그램'이라는 사실을 꼭 기억해두시기 바랍니다. 조금 다르긴 하지만 이 관점에서 Docker 기술이나 가상화 기술도 이해할 수 있습니다. Word를 여러 개 실행해 여러 문서를 보는 것과 비슷합니다.
@nick6267
@nick6267 2 жыл бұрын
너무 좋네요ㅎㅎ보통 프로그래밍적으로 설명하는 것을 넘어서서 os레벨에서까지 같이 들으니까요
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가 감사합니다. 이렇게 내부적인 흐름까지 같이 알아 두면 다양한 현상을 이해하는데 도움이 되지요. 열공하세요~~~! ^^
@miseongYoutube
@miseongYoutube 9 ай бұрын
안녕하세요. 강의를 듣다가 궁금한 점이 생겨 질문드립니다! 8:38 에서 쓰레드 1이 요청한 '파일 읽는 작업이 비동기'로 진행된다고 하였는데, 파일 읽기와 영상 처리 그리고 송신의 작업들을 각각 쓰레드로 분리하여 작업을 한다면, 굳이 하나의 쓰레드에서 파일 읽는 작업을 비동기로 처리할 필요가 없지 않나요? 하나의 쓰레드가 하나의 I/O 작업을 하도록 멀티 쓰레딩으로 구현했기 때문에 I/O 작업을 하는 동안 블락되어 기다려도 비동기 처리와 같은 성능을 낼 것 같다는 생각이 들었습니다!
@nullnull_not_eq_null
@nullnull_not_eq_null 9 ай бұрын
클라이언트라면 큰 차이가 없을 수 있습니다. 그러나 서버는 이야기가 다릅니다. 작은 차이지만 입출력 병목을 해결하기 위해 그 차이를 줄여주지 않으면 성능이 나오질 않습니다. 참고하시기 바랍니다. :)
@seung-kyojin8296
@seung-kyojin8296 2 жыл бұрын
너무 재미있습니다...! 최고입니다~
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가와 피드백 감사합니다. 최근에 운영체제와 시스템 프로그래밍 강의를 올리고 있습니다. 함께 보시면 더 도움이 될 것으로 보입니다. 참고하세요. ^^
@CatabraAbra
@CatabraAbra 2 жыл бұрын
고맙습니다😘
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
저도 고맙습니다. ^^
@ConstantSTAN
@ConstantSTAN 2 жыл бұрын
강의를 듣다 보면 운영체제에 적용된 개념들이 프레임워크나 라이브러리, 도커와 같은 컨테이너 기술 등에도 거의 유사한 개념들이 적용되어 있다는 것이 조금씩 느껴져 참 흥미롭고 신기합니다~ 좀 더 프로그래밍의 근간이 되는 지식과 기술들을 학습해봐야 겠습니다
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
음...기본 원리는 같습니다. 거기서 파생 발전되는 형태로 이해하시면 되겠습니다. 필요한 것이 있다면 언제든 설명을 요청하시기 바랍니다. 제가 알고 있는 것에 대해서는 영상으로 답변을 드리겠습니다.
@욱튜브-v4f
@욱튜브-v4f 4 күн бұрын
안녕하세요 항상 좋은 강의보며 배우고 있습니다. 설명하신 예제가 딱 제가 개발하고 있는 애플리케이션과 거의 동일하네요... 해당 예시가 산업에서 많이 사용되는 예시인가봅니다. 저는 어떻게 구조를 잡아야 할지 열심히 고민해서 구성했는데 이 영상을 보고 했으면 확신을 가지면서 구조를 잡았겠네요 다만 조금 다른 부분이 저는 큐를 블록킹 큐(c++의 condition variable 활용한 생산자 소비자 패턴) 구성했습니다. (각 쓰레드에서 큐가 채워지길 기다리는 것보다 효율적이라고 생각했습니다) 이것 또한 예시 상황에서 일반적인 구성일런지요? 설명을 위해 생략하신 건지 궁금합니다
@욱튜브-v4f
@욱튜브-v4f 4 күн бұрын
아 주제가 비동기라서 그런 거군요.
@nullnull_not_eq_null
@nullnull_not_eq_null 4 күн бұрын
와우~! 스스로 파악까지 끝내시는 센스~!! :)
@justv1ewer
@justv1ewer 2 жыл бұрын
[질문] 8:15 삽입할 때 잠그는 것을 삽입 전에 하는 거라고 이해하면 될까요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
네, 맞습니다. 화장실 갈 때를 생각하시면 쉽습니다. 1. 똑똑...(누가 이미 점유했는지 확인) 2. 없으면 진입 + Lock 3. 내가 Unlock하고 나가기 전까지는 모두 줄서서 대기 !!
@justv1ewer
@justv1ewer 2 жыл бұрын
@@nullnull_not_eq_null 감사합니다! 최고의 강의!
@korean_huny
@korean_huny Жыл бұрын
안녕하세요 좋은 강의 잘 보고있습니다. 저는 현재 IT회사에서 근무중인 주니어 개발자입니다. 금일 업무를 진행하면서 주위 개발자와 이야기를 나누다 궁금한 점이 생겨 질문 드립니다. 다만 다소 잘못된 질문일 수 있으니 ㅠㅠ 양해를 구합니다. 질문은 다음과 같습니다. "싱글스레드의 비동기 I/O와 멀티프로세스 중 어떤 것이 더 빠르고 효율적인가 ?" 라는 이야기를 하다가 그렇다면 멀티프로세스에서 각각의 프로세스에 할당된 스레드가 비동기 처리를 하면 더욱 효과적인것이 아닌가 ? 하는 의문이 생겼습니다. 이렇게 처리를 하지 않는 이유를 저희는 데이터 선점의 문제, 동기화의 문제일 것이라고 추측하고 있는 상황입니다. 보다 정확한 답변을 구하고싶어 염치불구하고 댓글 달아봅니다. 감사합니다. 좋은 하루 보내셨으면 좋겠습니다. 😁
@nullnull_not_eq_null
@nullnull_not_eq_null Жыл бұрын
음...상황에 따라 다르긴 하겠지만...싱글 스레드 + 비동기 I/O가 멀티스레드 + 동기 I/O보다 더 높은 성능을 낼 가능성이 높습니다. 범용 OS에서 입/출력의 주체는 OS입니다. 제 아무리 User mode 프로세스가 애써봤자 OS를 이길 수는 없습니다. 다만 멀티스레드 + 비동기 I/O 조합은 이길 방법이 없겠습니다. 소켓 통신 기법 중 최고봉으로 쳐주는 IOCP가 정확히 멀티스레드 + 비동기 I/O 이기 때문입니다. 물론 플러스 알파가 있긴 합니다. (대표적으로 스레드 풀 및 관리체계가 그렇습니다.) 물론 이 경우 동기화 이슈가 발생하며 무엇보다 OS의 Callback을 수신하고 처리하는 문제를 비롯해 논리적으로 생각 할 것이 많긴 합니다. 당연히 동기화 이슈도 따라옵니다. 개인적인 의견이지만 동기화보다 더 머리 아픈 것은 사용자 세션 객체 관리나 메모리 관리 입니다. 적절한 해체 타이밍을 계산하기가 생각보다 어렵습니다. 결국 가비지 컬렉터를 구현하는 방식으로 마무리 했던 기억이 있습니다. 짧은 답변이지만 참고하시기 바랍니다. 건투를 빕니다!
@멍충의심장
@멍충의심장 Жыл бұрын
컴공과 1학년 C를 배울 초반에는 과연 "컴퓨터공학과"가 적성에 맞을까 너무 고민이 되었던 기억이 있는데, 어느새 선생님 강의를 듣게된 지도 2-3년이 흘렀네요. 그 사이에 컴퓨터공학에 정말 깊이 빠진 것 같고(실력과 별개로), 처음 시작할 때 참 좋은 선생님을 만나서 복을 많이 받은 것 같아서 다행이고 감사합니다 :) 하지만 아쉬운 건, 곧 군입대를 기다리고 있는 지라 이 재미있는 공부를 당분간은 유튜브나 강의가 아니라 전공서적 가지고서만 해야할 듯 싶어요. 훈련소에서 태블릿이나 휴대폰은 사용할 수가 없으니까요 ㅎㅎ 그래도, 독하게 시작하는 C프로그래밍하고, 공룡책 운영체제 두 개 정도 가져가서 이번 기회에 틈틈이 복습 / 공부하려고 해요! 훈련소 수료하고... 자대배치 받고... 또 개발 공부를 적극적으로 다시 시작할 즈음, 강의도 다시 듣겠습니다 :) 아 멤버십은 끊지 않고 계속 구독하려구요 ㅎㅎ 나라 지키는 돈이랍시고 어줍잖게 명품 사입는 것보다 더 값진 돈인 것 같아서요! 여하튼! 2개월 정도는, 그간 배운 내용을 저 혼자 소화해보는 시간을 가져볼까 해요! 컴공을 사랑하게 해주셔서, 개발에 의미있는 꿈을 갖게 해주셔서 너무너무 감사드립니다 ㅎㅎ 군대 잘 다녀오겠습니당 :)
@nullnull_not_eq_null
@nullnull_not_eq_null Жыл бұрын
영상으로 답변을 드립니다. ^^;; kzbin.info/www/bejne/gJS8pK2Fm8RseLM
@toby_MusicProgrammer
@toby_MusicProgrammer Жыл бұрын
군대 잘 다녀오세요! 저는 군대에서도 사지방 이용하면서 코딩 공부 잘 할 수 있었어요! 개인정비 시간 + 연등시간까지 합하면 평일에도 꽤 많은 시간을 사지방에서 보낼 수 있고 백엔드 부분도 GCP나 AWS 이용해서 가상 머신 이용하시면 손쉽게 연습하실 수 있어요! 특히 GCP에 App Engine 이라는 기능이 있는데 거기 웹 IDE 가 꽤 괜찮더라고요 Vim 으로 연습하는것 보다야 백배 낫습니다 ㅎㅎ 군대 잘 갔다오시고 가서도 충분히 공부 많이 하실 수 있으니 걱정하지 마세요!
@wooogy-og
@wooogy-og 2 жыл бұрын
non-blocking, 동기, 동기화가 혼재되어 설명되어 서… 이들이 전부 이어지는 개념이라고 할 수 있을까요?? 잡힐듯 말듯 하네요. 제 생각에 동기와 동기화는 그 단어 자체와 별개로 의미가 사용되는 컨텍스트가 다르다고 생각이 들었습니다. 동기는 태스크의 실행 순서 또는 I/O와 관련되어 있다면, 동기화는 상태를 맞춰준다 라고 생각이 드는데요. 동기화(synchronized)는 락(Lock)의 방법 중 하나로 동시성 문제(Concurrency issue), 즉 여러 쓰레드가 동일한 자원을 동시에 접근했을 때의 문제점을 해결해주는 것으로써 이야기되기 때문입니다. 어떻게 생각하시는지 궁금합니다.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
동기화는 멀티스레드나 멀티 프로세싱할 때 신호등 역할을 해주는 것이고 동기/비동기 I/O는 처리를 요청한 프로세스나 스레드가 응답을 기다릴 것인지 아니면 그냥 다음 코드로 넘어가 제 할 일을 할 것인지를 나누는 것입니다. 결국 모든 입/출력 처리는 OS가 합니다. 참고하시기 바랍니다.
@wooogy-og
@wooogy-og 2 жыл бұрын
답변 감사드립니다! 추가 질문이 있습니다. 여기서는 그렇다면 큐가 동일한 자원이 된다는 가정일텐데, 큐는 FIFO 구조임에도 이러한 문제(race condition)를 고려해줘야 하는지 궁금합니다. producer와 consumer 관점에서는 엄밀히 producer는 이벤트를 큐에 넣고, consumer는 해당 이벤트를 빼간다는 다른 영역이라고 생각이 들었는데, 이 부분은 어떻게 생각하시는지 궁금합니다.
@tchinom
@tchinom 2 жыл бұрын
감사합니다
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
응원 감사합니다. ^^
@명익-x1s
@명익-x1s 9 ай бұрын
안녕하세요. 영상 설명란에 "비동기 입출력을 시도하는 코드가 등장하면 거의 대부분 멀티스레딩 환경이 됩니다" 라고 말씀하신 부분에 대해 궁금한게 생겨 질문드립니다. "거의 대부분" 이라고 표현하신 것에 대해, 단일 스레드로만 이루어진 프로세스가 있다고 가정했을때 이 프로세스의 스레드를 블로킹하지 않고 파일 입출력을 수행할 수 있는 방법이 존재하나요? 설령 운영체제를 통해 가능하다 해도 운영체제 또한 다수의 프로세스로 이루어진 거대한 환경일텐데, 그 환경의 특정 스레드를 블락하지 않고 파일 입출력이 가능한가 하는 생각이 듭니다. 추가로 멀티스레딩 환경이라고 표현하신게 애플리케이션이 여러 스레드를 가지고 있다는 의미인지, 시스템이 여러 스레드를 다룰 수 있다는 의미인지도 설명해주시면 감사하겠습니다. (Node.js 를 비롯한 많은 런타임이나 라이브러리 등은 독자적인 thread pool 등을 이용해 입출력 작업을 위임하여 메인 스레드 대신 블락 되도록 하는 방식으로 동작한다고 이해하고 있습니다)
@nullnull_not_eq_null
@nullnull_not_eq_null 8 ай бұрын
네, 가능합니다. 하지만 그렇게 싱글 스레딩으로 처리하려면 사실 상 동기모드로 작성한 것과 큰 차이가 없어집니다. 따라서 사실 상 아무도 그렇게 하지는 않습니다. 그러나 혹시라도 제가 모르는 예외가 있을 수도 있겠다 싶어 여유를 두고 '거의 대부분'이라는 표현을 사용했습니다. 그리고 커널 영역는 제외하고 의미를 생각하는 것이 좋겠습니다. 핵심은 입/출력을 실제로 수행하는 주체는 OS이고 그렇기에 비동적으로 OS에게 처리를 맡기는 방식이 더 놓은 성능을 보장한다는 것을 아는 것이 중요하겠습니다. 끝으로 멀티스레딩 환경이란 한 프로세스 내부에 여러 스레드가 있는 경우 입니다. 시스템 수준으로 볼 수는 없겠습니다. 그리고 Node.js는 V8 엔진을 사용합니다. 따라서 입/출력 성능과 관련한 이야기는 결국 엔진수준에서 결정될 것으로 보입니다. 참고하시기 바랍니다. :)
@갈가마구
@갈가마구 2 жыл бұрын
프로세스간 동작하는 방식이 쓰레드간 동작 방식이랑 비슷한가 보네요.. 물론 쓰레드간은 같은 주소를 공유하고 있으니 차이는있겠지만...쓰레드간에도 큐가 있어 정보를 주고 받는데 이용을 하는군요...음...갈수록 복잡해 지네요 .. 감사합니다. 😅
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
동기화 객체 + 이벤트(시그널) + 큐...이 셋은 늘 따라다닙니다. ^^
@chrisshim2488
@chrisshim2488 2 жыл бұрын
명강의 감사합니다. actor model framework를 사용하면 높은 추상화로 동시성을 해결 할 수 있지요.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
네, 맞습니다. 그러고 보니 UML 강의도 만들어야 하고...디자인 패턴도 해야 하고...산더미네요. 좋은 의견 감사합니다. ^^
@abcduuid
@abcduuid Жыл бұрын
강의 듣다가 궁금한 점이 생겼는데요 1. 한 쓰레드에서 여러 작업을 동시에 실행하는 것을 비동기 2. 여러 쓰레드에서 여러 작업을 동시에 실행하는 것을 비동기 둘다 비동기라고 볼 수 있나요?
@nullnull_not_eq_null
@nullnull_not_eq_null Жыл бұрын
아니오. 동기/비동기와 스레드는 관련이 없습니다. 분리해 생각해야 합니다.
@qkrtmddn0507
@qkrtmddn0507 2 жыл бұрын
저만 알고 싶은 명강의입니다 ㅎㅎㅎㅎ
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가 감사합니다. 그리고 채널이 성장하지 못하면 제가 채널을 닫을 지도 모르니...널리 알려주세요. 저도 그 실버버튼을 꼭 갖고 싶어서요 ^0^;;;
@dhk840
@dhk840 2 жыл бұрын
윗글에서 synchronous/asynchronous와 blocking/non-blocking가 개념/구현방법이라 말씀해주셨는데, Boost application performance using asynchronous I/O(2008년에 쓰여진 글이긴 합니다.)에선 개념적으로 보진 않은 것 같습니다. 옛날이랑 지금이랑 변한게 있는걸까요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
음...일단 제 주관적 견해라는 점을 말씀드리고 싶습니다. 개인적으로 동기/비동기라는 것은 처리를 위탁하는 쪽에서 정하는 개념으로 생각하고 있습니다. 성능관점에서 핵심은 결국 스케줄링과 관련이 깊은데 사용자 모드 응용 프로그램은 아무리 잘 스케줄링을 잘 하더라도 운영체제의 통제 범위에서 한정됩니다. 동기/비동기 개념에서 함께 따라다니는 것은 결국 입/출력입니다. 관련 장치에 대한 제어가 따라오는 것은 당연하고요. 그리고 이 모든 것들에 대한 통제는 운영체제 커널에서 이루어집니다. 따라서 커널이 직접 스케줄링 한다면 최적화된 입/출력이 가능하고 결국 좋은 성능으로 이어집니다. 의견 감사합니다. ^^
@ilililililiilllililli
@ilililililiilllililli 2 жыл бұрын
webflux 나 리액티브자바가 컨텍스트스위칭이 걸리지 않고 비동기 작업을 빠르게하는 동작원리 설명좀 부탁드리겠습니다 ㅠ
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
제가 잘 아는 분야는 아니라서 정확히 말씀드리기는 어려워 당장 답변을 드릴 수는 없겠습니다. 저도 공부를 좀 해보고 답변 올리겠습니다. 감사합니다. ^^
@모르면전진
@모르면전진 2 жыл бұрын
Node JS는 비동기지만 싱글스레드라고 하던데 그럼 이 구조는 굳이 비동기 싱글스레드로 만든게 비효율적이라고 봐도 될까요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
Node.js가 싱글 스레딩이 아니라 JS자체가 싱글 스레딩으로 작동하는 것으로 알고 있습니다. 그리고 비동기라는 것은 다분히 개념적인 것이며 비동기 구조를 적용했을 때 얻을 수 있는 논리적 장점 때문에 사용하다고 생각하시면 되겠습니다. 그리고 오직 효율(혹은 극단적 성능)만 생각한다면 사실 C/C++이나 어셈블리어를 사용해야 합니다. 그렇지 않다면 유지보수성이 뛰어나면서 코드 가독성도 좋고 개발도 편리하고...이런 인간 관점에서의 장점이 더 중요한 시대라 하겠습니다. 결론, 비효율을 말할 이유가 없습니다.
@zbflzlxl
@zbflzlxl 2 жыл бұрын
바쁜 대기 말고 이벤트 처리가 더 세련된 방식인 것 같은데, 실제로 저렇게 바쁜 대기가 많이 사용 되나요? 바쁜 대기랑 이벤트 처리 구현의 기징 큰 차이점이 무엇인지 궁금 합니다.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
이벤트 처리 체계를 가졌느냐 그렇지 않느냐의 차이로 생각할 수 있겠습니다.
@Blank_____1
@Blank_____1 2 жыл бұрын
안녕하세요 강의 감사히 잘보고있습니다. 혹시 멀티스레딩 디버깅방법에관해 공유해주실만한 팁같은게있을까요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
음...몇 가지 있는데...윈도우 환경에 특화된 경향이 있습니다. 영상을 하나 더 만들어야 겠네요. ^^ 지금 올렸습니다. 참고하세요. kzbin.info/www/bejne/baHIi5VrbK16nrs
@richardkang1983
@richardkang1983 11 ай бұрын
어디가 비동기라는 걸까? 파일읽기? 소켓에 쓰기? 굳이 쓰레드로 역할을 구분했음에도.
@nullnull_not_eq_null
@nullnull_not_eq_null 11 ай бұрын
의견 고맙습니다.
@hyeopkim5928
@hyeopkim5928 2 жыл бұрын
한 url에서 예시의 작업(request: 영상 파일 읽기-> 처리-> 응답)을 하도록 api를 작성했다고 했을 때, 비동기를 지원하는 api로 작성했다면 알아서 쓰레드를 나눠서 작업하나요? 아니라면 쓰레드를 나누는 작업은 누가 해주는 건가요? (강의 너무 재밌습니다bb)
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
스레드를 나누는 작업은 개발자 자신이 해야 합니다. 만일 영상파일 처리 시간이 많이 걸리는 대용량 파일들이라면 응답을 분리하는 것도 한 방법이 되긴 하겠습니다. 그리고 피드백 감사합니다. ^^
@delta4489
@delta4489 2 жыл бұрын
오,,첫번째
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
1위 경쟁이 치열하네요.^^;;;
@ryanlee5435
@ryanlee5435 2 жыл бұрын
까비..
Blocking I/O와 Non-blocking I/O
15:00
널널한 개발자 TV
Рет қаралды 23 М.
Process와 Thread의 차이
19:33
널널한 개발자 TV
Рет қаралды 78 М.
Cat mode and a glass of water #family #humor #fun
00:22
Kotiki_Z
Рет қаралды 42 МЛН
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 9 МЛН
BAYGUYSTAN | 1 СЕРИЯ | bayGUYS
36:55
bayGUYS
Рет қаралды 1,9 МЛН
개발자라면 알아야 할! base64 인코딩 원리
12:00
널널한 개발자 TV
Рет қаралды 14 М.
개발자의 기본기에 대해서...
18:29
널널한 개발자 TV
Рет қаралды 21 М.
Cat mode and a glass of water #family #humor #fun
00:22
Kotiki_Z
Рет қаралды 42 МЛН