DevOps
DevOps는 개발과 운영을 연결해서 소프트웨어를 빠르고 안정적으로 배포하기 위한 방식이다.
| 개념 | 의미 |
|---|---|
| Development | 개발 |
| Operations | 운영 |
| DevOps | 개발과 운영의 협업 방식 |
DevOps의 핵심은 개발자가 코드만 만들고 끝나는 게 아니라,
빌드/테스트/배포/운영까지 자동화하고 협력하는 것이다.
DevOps 주요 목표
| 목표 | 설명 |
|---|---|
| 개발과 운영 협력 | 개발팀과 운영팀의 소통 강화 |
| 자동화 | 빌드, 테스트, 배포 자동 처리 |
| 빠른 배포 | 수정된 코드를 빠르게 반영 |
| 안정성 확보 | 배포 오류와 장애 감소 |
핵심 암기
DevOps / 개발과 운영 협업 / 자동화 / 빠르고 안정적인 배포
CI
CI는 Continuous Integration, 즉 지속적 통합이다.
여러 개발자가 작성한 코드를 자주 합치고, 자동으로 빌드와 테스트를 수행한다.
코드 작성 / 저장소 업로드 / 자동 빌드 / 자동 테스트 / 오류 확인
CI의 역할
| 역할 | 의미 |
|---|---|
| 코드 자주 통합 | 여러 개발자의 코드를 자주 합침 |
| 자동 빌드 | 실행 가능한 상태인지 확인 |
| 자동 테스트 | 코드에 오류가 있는지 검사 |
| 오류 조기 발견 | 큰 문제가 되기 전에 발견 |
핵심 암기
CI / 코드 자주 통합 / 자동 빌드 / 자동 테스트
CD
CD는 Continuous Delivery 또는 Continuous Deployment이다.
| 구분 | 의미 |
|---|---|
| Continuous Delivery | 배포 가능한 상태까지 자동화 |
| Continuous Deployment | 실제 배포까지 자동화 |
핵심 암기
CD / 지속적 전달 / 지속적 배포 / 배포 자동화
0608 - 프로그램/프로세스/스레드/멀티스레드
프로그램
프로그램은 실행되기 전 저장장치에 저장된 파일이다.
예시:
크롬 실행 파일 / 게임 실행 파일 / 카카오톡 실행 파일
핵심 암기
프로그램 / 실행 전 파일
프로세스
프로세스는 실행 중인 프로그램이다.
| 상태 | 개념 |
|---|---|
| 크롬 실행 파일이 저장되어 있음 | 프로그램 |
| 크롬을 실행함 | 프로세스 |
프로세스 관련 단어
| 단어 | 의미 |
|---|---|
| 프로세스 | 실행 중인 프로그램 |
| 프로세스 상태 | 실행/대기/준비 같은 상태 |
| 프로세스 제어 블록 PCB | 프로세스 정보를 저장하는 자료구조 |
| 문맥 교환 | 실행 중인 프로세스를 바꾸는 작업 |
핵심 암기
프로세스 / 실행 중인 프로그램
스레드
스레드는 프로세스 안에서 실제 작업을 수행하는 작은 실행 단위이다.
예시:
크롬 프로세스 안에서
화면 표시 / 파일 다운로드 / 영상 재생
핵심 암기
스레드 / 프로세스 안의 작업 단위
멀티스레드
멀티스레드는 하나의 프로세스 안에서 여러 스레드를 동시에 실행하는 것이다.
예시:
하나의 앱에서
음악 재생 / 다운로드 / 화면 표시를 동시에 처리
핵심 암기
멀티스레드 / 하나의 프로세스 안에서 여러 작업 단위 실행