C# 비동기 사용 예제(Task, WhenAll, WhenAny)

Поделиться
HTML-код
  • Опубликовано: 23 дек 2024

Комментарии •

  • @sjagalo4618
    @sjagalo4618 4 месяца назад

    강의 잘 봤어요! 많은 도움이 되었습니다^^

  • @SJ_Woo-f3f
    @SJ_Woo-f3f 4 месяца назад

    강의 더 듣고싶습니다. 방법이 있을까요?

    • @kaburi-coder
      @kaburi-coder  4 месяца назад +3

      안녕하세요! 우선 제 강의를 들어주시고 더 듣고 싶어하신다는 말씀에 너무나도 감사하다는 말씀을 전달 드리고 싶습니다.
      몇번이나 댓글을 달아주셨는데 바쁘다는 핑계로 답변들 달아드리지 못해서 죄송합니다.
      우선 제 근황을 간단하게 말씀드릴게요
      이전엔 winform, wpf 개발에 몰두하고 있었습니다.
      그러다 보니 상대적으로 여유 시간이 생겨 강의영상을 찍게 되었습니다.
      현재는 너무나 감사하게도 현재 일하고 있는 회사에서 능력을 인정받고 다양한 프로젝트를 참여하게 되었습니다.
      현재 제가 회사에서 사용하는 기술스택을 간단하게 적어보자면
      FrontEnd : React, Next.js
      BackEnd : Express, Nest.js
      DevOps: Docker, Kubernetes, Prometheus stack, elk Stack 등
      App : Android(Flutter)
      Windows: Winform, Wpf
      DB: MongoDB, MySql
      정도로 요약할 수 있습니다.
      회사의 규모가 크지 않아 웹 fullstack, AOS, 배포자동화, 테스트 환경, 가상환경에 배포환경 구축, 윈도우app 개발 및 유지보수, 동료직원들 서포트까지 혼자 도맡아 하고 있습니다.
      기존 windows만 사용하던 시절에 비해 터무니 없이 많은 부분을 맡고 관리하다 보니 유튜브에 양질의 강의를 올리기가 당분간은 어렵다는 판단을 했습니다.
      ( 저도 강의를 올리다 보면 좀 더 정확한 정보를 전달하기 위해 공부도 더 하게 되고 편집시간이 생각보다 많이 소요 되더라구요 ㅠㅠ )
      그래도 이렇게 댓글 달아주실 때마다 너무나 큰 힘이 되고 하루 빨리 강의를 올리고 싶은 생각도 들기도 합니다. 하하..
      이런저런 많은 기술스택을 공부하고 적용하고 많은 트러블 슈팅을 경험하면서 아직 저의 부족한 점도 더 깨달았고 아직은 강의 영상을 찍기보단 저의 부족함을 더 채워가며 성장하는 목표를 잡는게 우선이라고 생각을 했습니다.
      제 스스로가 만족할만한 수준에 도달하게 된다면 더 좋은 강의 영상으로 찾아뵐 것을 약속 드릴게요.
      하루도 게을리 살지 않고 부족한 부분 채워나가며 성장하는 까불이코더가 되도록 하겠습니다.
      감사합니다.
      -- 추가로 제 질문입니다. ^^ --
      어떤 부분의 강의가 추가로 듣고 싶으신가요~?
      개발을 하시다가 막혀서 해결이 되지 않았거나 공부해봤는데 이해가 어려웠던 부분이 있으셨다면 콕 찍어 말씀해주시면 답변 드리도록 하겠습니다. ^^

    • @SJ_Woo-f3f
      @SJ_Woo-f3f 4 месяца назад +2

      @@kaburi-coder 오 안녕하세요! 까불이 코더님 댓글을 달아주셔서 영광입니다.
      저는 현 5년차 c# (윈폼,wpf)개발자입니다.
      wpf 에 대해 이렇게나 자세히 알고 계신데 기술스택을 보아하니 대단하다는 말씀밖에 못드리겠네요.. 현재 저는 c# 만을 다루고 있습니다.
      이전 회사에서 mvvm을 사용을 해왔긴 하지만 난이도가 높지 않아 사내 도메인에 대해서 익숙 할 뿐 실력은 항상 부족하다 생각했는데 이직하면서 부족함을 알게 되어. 공부를 하면서 까불이 코더님을 알게되었습니다. 현재 디자인 패턴에 대해 공부하고 있고 혹여나 제가 모를 c#(주로 wpf) 에 대해 찾아보며 상기하고 있습니다.
      일단 일차적인 목표는 까불이 코더님처럼 c# 에 대해 체계적으로 설명할 수 있을 정도의 내공을 쌓고싶네요. 강의가 1년전에 끝이나서 아쉽긴하지만 유료 강의라도 올려주시면 듣고싶을 정도입니다.
      궁금한점이 있는데 c# 은 어떻게 공부를 하셨는지가 궁금하네요. 저는 업무를 통해 공부하게 되었고 필요한건 제때 찾아서 활용하는 편입니다. 그리고 저는 지방에서 근무라 주위 개발자 풀도 적네요.

    • @kaburi-coder
      @kaburi-coder  4 месяца назад +2

      ​@@SJ_Woo-f3f
      현실에 안주하지 않으시고 꾸준히 노력하시는군요! 향후에 훌륭한 시니어로 성장하시리라 생각이 듭니다 ㅎㅎ
      우선 저에 대해 높게 평가해주신 점 다시 한번 감사드립니다. 자만하지 않고 더 열심히 하도록 하겠습니다.
      저도 지방에서 근무를 하다보니 주변 개발자분들 한분 한분 소중함을 누구보다 잘 알고 있습니다. 하하..
      제 공부법이 궁금하셨다니 간단하게 설명해드릴게요.!! 어떤 것이든 정답은 없으니 와닫는 부분만 쏙쏙 캐치하셔서 적용해보셔도 좋을 것 같습니다.
      1. 상황에 맞는 코드를 작성하기 위해서 상식의 폭을 넓히기
      요즘 시립도서관 시스템이 아주 잘 되어있어요.
      저는 기초를 다지기 위해서 `이것이 C#이다` 라는 서적을 도서관에서 대여하여 정독했어요.
      가장 좋은 것을 따라 코딩해보는 것이지만
      `한번 씩 읽어보고 이런게 있구나` 정도만 파악하는 것으로도 충분하다고 생각했습니다.
      열심히 공부해서 하나부터 열까지 마스터하면 물론 좋겠지만 실무에서 자주 사용하지 않게되면
      결국 까먹기 일수에요.
      예를 들어서 채팅 앱을 만들고 싶은데 내가 알고 있는 개념은 Timer밖에 없다면 1초마다 Tick을 보내
      새로운 채팅데이터를 불러오려고 하겠죠.
      하지만 TCP통신의 개념에 대해 알고만 있다면 매 1초마다 채팅이 오지도 않았는데 불필요한 트래픽을 보낼 필요가 없다는 것쯤은 알 수 있을거에요.
      그를 구현하기 위해서는 그때 그때 검색하며 기능을 구현해 나가시면 됩니다.
      2. 실무에서 요구하는 사항에 대해 우선 공부하기
      WPF로 예를 든다면 MVVM 패턴(아키텍쳐)을 사용한다면 바인딩의 개념은 필수적으로 알고 있어야 합니다.
      필수적으로 공부해야할 항목들은 빠르게 숙지하는게 좋다고 생각합니다.
      이렇게 필수적으로 공부해야하는 부분들은 인터넷에 많은 자료가 있기에 쉽게 공부하실 수 있으실거에요.
      3. 직접 프로젝트 만들어보기! 문제 해결하며 역량 키워나가기!
      가장 중요하다고 생각합니다. 10년동안 책을 읽었다 한들 모든 개념에 대해 마스터 했다고 한들 매 상황에 맞게 작성하기는 쉽지 않습니다.
      1번에서 작성한 내용에 추가로 이야기하자면
      소켓 통신을 사용하여 채팅앱을 구현했는데 사용자가 많아졌다고 가정해보겠습니다.
      하나의 방에서 1초에 100개의 채팅이 한꺼번에 입력되는 상황이 발생되었는데 MultiThread환경에서 데이터를
      수신받다보니 100개 중 97개만 채팅창에 보이는 현상이 일어났습니다.
      왜 그럴까요~?
      이건 경험을 직접해보지 않고서는 이해하기 어려운 부분일 수 있습니다. 책을 읽더라해도 인터넷 강의를 듣는다 해도 직접경험하기 전엔
      이 부분에 대해 공부할 생각조차 할 수 없는 부분이죠.
      4. 효율적으로 검색하기
      문제가 발생했을 때 정말 필요한 키워드만 검색하는 것도 개발자의 역량 중 하나로 생각합니다.
      3번의 문제는 `c# 스레드 동시성 문제` 로 검색하면 원하는 답을 얻을 수 있을 것 같습니다.
      문제의 요지를 파악하고 그에 해당하는 키워드만 빠르게 추출하는 연습을 하시는 것도 지식을 효율적이고 빠르게 습득하는데 큰 도움을 줄 수 있다고 생각해요.
      요즘은 GPT와 같은 AI 검색엔진을 이용해서 질문하면 좀 더 수월하게 답변을 받을 수 있어서 GPT와 효율적으로 대화하는 법을 공부하시는 것도 추천드립니다.
      5. C#만 공부하지 않기.
      아이러니하게 들리실 수 있지만 저에게는 큰 도움이 됐던 공부법입니다.
      C# 이라는 언어가 어느정도 익숙해지셨다면 다른 언어도 한번 공부해보세요.
      언어마다 특색이 있어 다양한 방식으로 코딩을 하게되는데
      정말 많은 인사이트를 얻을 수 있습니다.
      예를 들어 C# 윈폼만 개발하던 사람이 매 코드마다 에러처리를 위해 TryCatch를 사용하여 모든 부분에서 로그 수집을 하고 있었다고 가정해봅시다.
      그러던 날 백엔드를 개발해야해서 Express를 공부해봤는데 신기하게도 미들웨어라는 것을 사용하게 되고 에러발생 시 에러를 한곳에서 처리 받고 로그를 생성하며 동일한 형태의 반환값을 반환할 수 있다는 것을 배웠습니다.
      어 ~? C# 윈폼에서도 가능하지 않을까? 라는 생각을 할 수 있게 됩니다.
      자 이제 GPT에게 질문을 날려봅니다.
      `C# WinForm에서 한 곳에서 에러처리를 집중관리 하고싶어. 마치 Express 처럼 말이야`
      라고 검색해보면 원하는 답을 얻을 수 있을거에요.
      이러하듯 다른 언어나 라이브러리, 프레임워크 등을 공부하다보면 내가 몰랐던 지식들을 적용해볼 수 있는 생각의 폭이 넓어졌음을 알 수 있을거에요.
      6. 새로 공부한 지식을 누군가에게 알려주기
      누군가에게 가르친다는 것은 생각보다 쉽지 않았습니다. 정확한 정보를 전달해야 한다는 압박도 있구요. 막상 입 밖으로 이야기하려니
      뭐라고 이야기할지 모를 경우가 대부분일 거에요. 하지만 남에게 지식을 공유하는 일을 습관처럼 해보세요. 나중에는 자연스럽게 술술 이야기 할 수 있게 될 거에요.
      또한 정말 기억에 오래남습니다. ㅎㅎㅎ
      7. 소스코드 리펙토링, 또 리펙토링, 또 하기
      리펙토링을 한다는 것은 소스코드를 좀 더 간결하고 이해하기 쉽게. 즉 가독성을 높이기 위해 하는 것이죠.
      코드를 더 효율적으로 작성하기위해 스스로가 추가적으로 공부를 해야함을 느끼게 됐었던 것 같습니다.
      8. UDEMY 강의 사이트 활용하기
      개발 강좌 사이트 중 단연 가성비 갑이라고 보는 사이트 중 하나인데요. ㅎㅎ
      할인 이벤트를 자주하니 할인 이벤트에 맞춰서 필요한 강의 구매하시는 것도 좋을 듯 싶습니다.
      하하 작성하다보니 너무나도 길어졌네요.
      저는 누군가에게 정보를 공유하고 새로운 것을 공부하고 개발하는 것에 큰 흥미를 느낍니다.
      이 재미를 누군가도 같이 느꼈으면 좋겠다는 생각이 커서 최대한 많은 지식을 공유하고 싶었습니다.
      아직 부족한 저를 좋게 봐주신 점 다시한번 감사드립니다.
      조금이나마 도움이 되셨으면 좋겠습니다. 좋을 하루 되세요 ^^

    • @SJ_Woo-f3f
      @SJ_Woo-f3f 4 месяца назад +2

      @@kaburi-coder 이렇게나 자세히 알려주셔서 감사합니다. 지금 읽고있는데 다 맞는 말씀같네요. ㅎㅎ 언제 유튭에 강의를 하실지는 모르겠지만 앞으로도 계속 구독하고 커뮤니티를 이어가고싶네요. 감사합니다.