본문 바로가기

강의 정리/현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무!

2-1 CPU를 극단적으로 사용하는 애플리케이션 만들기

해당 포스팅은 class101의 [현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무]를 보고 작성되었습니다.

[수업 목표]

  • 컴퓨터가 어떻게 프로그램을 실행시키는 지 알아보기
  • CPU bound 애플리케이션과 I/O bound 애플리케이션 알기
  • hash 연산을 위해 CPU를 극단적으로 사용하는 애플리케이션 만들기
  • GCP 인스턴스에 CPU bound 애플리케이션 수동 배포해보기
  1. 컴퓨터는 프로그램을 어떻게 실행시키는가
    1. 하드디스크에 저장된 프로그램을 실행시킨다.
    2. 프로그램이 메모리에 적재된다 (이때 메모리에 적재된 프로그램을 프로세스 라고 한다.
    3. 메모리에 올라간 프로세스를 CPU가 적절히 선택하여 실행시킨다.
      • CPU가 선택하는 방식은 다음에서 학습할 수 있다.
  2. I/O bound 와 CPU bound
    • 프로그램에서 I/O 를 하는시간을 I/O burst라고 하고 CPU를 사용하는 시간을 CPU burst라고 한다.
    • I/O burst가 많은 프로그램을 I/O bound 어플리케이션 CPU burst가 많은 프로그램을 CPU bound라고 한다.
  3. Hash 연산을 위해 CPU를 극단적으로 사용하는 애플리케이션 만들기
    • 다음 에서 해당 프로젝트를 확인할 수 있다.
  4. GCP 인스턴스에 CPU bound 애플리케이션 수동 배포해보기
    1. 인스턴스 생성
    2. CPU bound application jar 패키징 후 git 에 upload
    3. 인스턴스에 wget 설치 (sudo yum install wget)
    4. 인스턴스에 java 설치 (sudo yum install java)
    5. wget 으로 git 파일 download 다운로드 경로
    6. java 명령어로 jar 파일 실행 (sudo java -jar cpu-0.0.1-SNAPSHOT.jar)]

[학습정리]

  • 해당 챕터에서는 cpu bound 와 i/o bound의 개념에 대해 학습할 수 있었다.
  • cpu bound application 을 개발하기 위해 hash 연산을 극단적으로 사용하는 프로그램을 개발하였다.
  • GCP를 처음 사용해 봤는데 ui가 깔끔해서 aws보다 사용성이 좋았다.
  • 사용한 명령어들