(SW - 도봉1기) - 컴퓨터 구조와 운영체제

novice developer·2024년 1월 30일

Saltlux

목록 보기
17/22

목차

1. 컴퓨터구조

2. 디버깅 방법론

3. 운영체제 그리고 리눅스

4. GUI와 CLI, 리눅스 기본 명령어

5. (실습) 리눅스 컨테이너 명령어 연습하기


1-1 컴퓨터 구조를 배워야하는 이유

  • 개발할 줄 안다 = 프로그래밍 언어의 문법을 알고 컴퓨터에 코드를 입력할 수 있다?
  • =>에러 해결을 할 줄 알아야 함
  • 우리가 하는 일은 빙산의 일각 구조를 알아야 에러를 해결하기 편하다

1-2 컴퓨터 구조의 랜드스케이프



CPU 구성 요소 / ALU, 레지스터, 제어장치

CPU 동작원리





2-1 디버깅 방법론 3가지 논리오류, 구문오류, 실행시간 오류

논리오류


구문오류 (99% 오타)

실행시간 오류

디버깅 추천 사이트

2-2 효과적인 디버깅 방법

1. 깨끗한 환경에서 디버깅을 시작

2. 버그를 재현할 수 있도록 한다 - 추천 에러기록일지 쓰기

3. 오류메세지를 주의 깊게 읽는다

4. 디버거를 사용한다


5. 가상의 사람에게 설명한다는 가정


3. 운영체제 그리고 리눅스

3-1 운영체제란?

컴퓨터를 동작하게 하는 특별한 프로그램


3-2 커널이란 운영체제 내에서 핵심을 담당하는 심장과 같은것


커널이 담당하지 않은 부분으로는 UI가 있다.

3-3 운영제체 종류 - 윈도우

3-3 운영제체 종류 - 맥

3-3 운영제체 종류 - 유닉스

3-3 운영제체 종류 - 리눅스

4. GUI 와 CLI 리눅스 기본 명령어

쉘 스크립트

기본 명령어 학습 가이드 - man

5. 도커 명령어

https://hub.docker.com/_/ubuntu
제일 최근꺼를 가져오지말고 한단계 전것이 좋다
하기전 반드시 도커 데스크탑을 설치하고 실행하여야한다 추가로

윈도우 기능 켜기/끄기에서 반드시 실행 해 주어야 한다.

docker pull ubuntu:24.04
도커 pull 로 이미지 가져오기

docker images
이미지들 확인

docker run --name ubuntu-container -it -d ubuntu:24.04
컨테이너 만들기
- —name : container 의 이름 지정
- -it : interactive and tty , 사용자가 컨테이너 내부 쉘과 터미널 환경에서 상호작용하도록 해주는 옵션
- -d : detach 모드로 실행, background 에서 실행되도록 설정

docker ps 
도커 컨테이너 확인

docker exec -it ubuntu-container /bin/bash
- -it : interactive and tty , 사용자가 컨테이너 내부 쉘과 터미널 환경에서 상호작용하도록 해주는 옵션
- /bin/bash : bash 쉘을 실행하라는 명령어

1. 디렉토리 및 파일 생성

mkdir my_folder: "my_folder"라는 이름의 폴더를 생성합니다.

  • cd my_folder: 생성한 "my_folder" 폴더로 이동합니다.
  • touch file1.txt file2.txt file3.txt: "my_folder" 내에 "file1.txt", "file2.txt", "file3.txt"라는 세 개의 파일을 생성합니다.

2. 파일 및 디렉토리 조회

  • ls -a: 숨겨진 파일을 포함하여 현재 폴더의 모든 파일과 폴더를 나열합니다.
  • ls -l: 파일과 폴더의 상세 정보(권한, 소유자, 크기 등)를 나열합니다.
  • pwd: 현재 작업 중인 폴더의 경로를 출력합니다.

3. 디렉토리 변경

  • cd ..: 상위 폴더로 이동합니다.

4. 쉘에서 명령어 실행 결과 출력

  • echo pwd`` : 현재 폴더의 경로를 출력합니다.

5. 파일 및 폴더 복사

  • cp file1.txt backup_file1.txt: "file1.txt"를 "backup_file1.txt"로 복사합니다.
  • mkdir backup_folder: "backup_folder"라는 이름의 폴더를 생성합니다.
  • cp -r my_folder backup_folder: "my_folder" 폴더를 "backup_folder"로 재귀적으로 복사합니다.
profile
초보개발자

0개의 댓글