1-1) 사전과제 진행 가이드

  • 아래 총 5 문제에 대한 해설을 작성한 뒤 Pull Request를 날려주세요.
  • 문제 해설에 대한 정해진 양식은 없으며, 최대한 자세히 해설해주시면 좋습니다.
  • 문제 유형은 해당 코스에서 다룰 주제들을 포함하고 있으니 완벽히 이해하시면 코스를 수강하는데 큰 도움이 될 것입니다.

*문의 사항은 사전 과제 Repository의 Issue로 등록해 주세요.

1-2) 사전 과제

  • (1) 동기와 비동기 프로그래밍에 대한 차이점을 설명해주세요. 동기 (Synchronous)

  • 요청과 결과가 한 자리에서 동시에 일어남

  • 절차가 순차적으로 진행된다. 비동기 (Asynchronous)

  • 요청한 그 자리에서 결과가 나타 나지 않음

  • 절차가 순차적으로 진행되면서 오래걸리는 일이 생긴다면 그 부분을 진행 시켜놓고 뒤에 부분을 먼저 실행한다.

  • (2) 블로킹과 논블로킹의 차이점을 설명해주세요. blocking

  • 요청한 작업을 마칠 때까지 기다린다.

  • 즉시 값을 반환한다.

  • 반환값을 받아야 종료된다.

  • Thread관점에선 요청된 작업을 마칠때 까지 대기하며 반환값을 받을때 까지 한Thread를 계속 사용/대기 한다. non-blocking

  • 요청한 작업을 바로 종료할수 없다면 즉시 값을 반환한다.

  • 바로 반환하지 않는다.

  • Thread관점에서, 하나의 Thread가 여러개의 일을 처리한다.

  • (3) 본인이 주로 사용하는 언어에서 비동기 프로그래밍을 사용하는 방법을 설명해주세요.

  • (4) 메세지 큐를 쓰는 이유에 대하여 2가지 예시를 서술해주세요.

    • 이메일 발송, 문자발송 등 한번에 여러요청을 하는경우
  • (5) 본인이 작성한 서버 코드가 있는 github repo 주소를 제출해주세요. (CRUD 기능을 모두 포함하여야 하며, 서버에 대한 설명을 README에 작성해주시면 더욱 좋습니다.)

  • (6 - Optional) 해당 수업을 통해 꼭 배우고 싶은 주제 또는 지식이 있다면 자유롭게 서술해주세요.