해당 포스팅은 class101의 [현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무]를 보고 작성되었습니다.
[수업 목표]
- 컴퓨터가 어떻게 프로그램을 실행시키는 지 알아보기
- CPU bound 애플리케이션과 I/O bound 애플리케이션 알기
- hash 연산을 위해 CPU를 극단적으로 사용하는 애플리케이션 만들기
- GCP 인스턴스에 CPU bound 애플리케이션 수동 배포해보기
- 컴퓨터는 프로그램을 어떻게 실행시키는가
- 하드디스크에 저장된 프로그램을 실행시킨다.
- 프로그램이 메모리에 적재된다 (이때 메모리에 적재된 프로그램을
프로세스
라고 한다. - 메모리에 올라간 프로세스를 CPU가 적절히 선택하여 실행시킨다.
- CPU가 선택하는 방식은 다음에서 학습할 수 있다.
- I/O bound 와 CPU bound
- 프로그램에서 I/O 를 하는시간을 I/O burst라고 하고 CPU를 사용하는 시간을 CPU burst라고 한다.
- I/O burst가 많은 프로그램을 I/O bound 어플리케이션 CPU burst가 많은 프로그램을 CPU bound라고 한다.
- Hash 연산을 위해 CPU를 극단적으로 사용하는 애플리케이션 만들기
- 다음 에서 해당 프로젝트를 확인할 수 있다.
- GCP 인스턴스에 CPU bound 애플리케이션 수동 배포해보기
- 인스턴스 생성
- CPU bound application jar 패키징 후 git 에 upload
- 인스턴스에 wget 설치 (sudo yum install wget)
- 인스턴스에 java 설치 (sudo yum install java)
- wget 으로 git 파일 download 다운로드 경로
- java 명령어로 jar 파일 실행 (sudo java -jar cpu-0.0.1-SNAPSHOT.jar)]
[학습정리]
- 해당 챕터에서는 cpu bound 와 i/o bound의 개념에 대해 학습할 수 있었다.
- cpu bound application 을 개발하기 위해 hash 연산을 극단적으로 사용하는 프로그램을 개발하였다.
- GCP를 처음 사용해 봤는데 ui가 깔끔해서 aws보다 사용성이 좋았다.
- 사용한 명령어들
'개발' 카테고리의 다른 글
2-4 Jenkins를 이용해서 배포하기 (0) | 2021.02.21 |
---|---|
2-3 Dockerized 애플리케이션 GCP에 배포하기 (0) | 2021.02.20 |
2-2 스트레스 테스트 툴로 성능 측정하기 (0) | 2021.02.19 |