5월 7일 오후 수업 기록 — 프로세스, 파이프, 언어 계보까지
2026.05.07 오후 | 인공지능 응용 개발자 과정
오전에 서버 구축 실습을 했고, 오후는 이론 중심이었다. 교과서 276쪽부터 370쪽까지 빠르게 훑으면서 개념을 잡는 시간이었다. 처음 듣는 용어들이 많았는데 오전 실습이랑 연결되는 부분이 생각보다 많았다.
🛠️ 개발 툴이란 무엇인가
교수님이 첫 마디로 던진 말이 인상적이었다. "윈도우 메모장도 개발 툴이다."
| 툴 | 설명 | 특징 |
|---|---|---|
| vi | 리눅스 기본 텍스트 편집기 | 가볍고 어디서든 사용 가능 |
| nano | 초보자용 편집기 | 오전 실습에서 사용 |
| 메모장 | 윈도우 기본 편집기 | 얘도 엄연한 개발 툴 |
| VSCode | 현업에서 많이 쓰는 편집기 | 확장 기능 풍부 |
도구가 중요한 게 아니라 코드를 작성하고 분석하는 자세가 중요하다는 뜻으로 들렸다. 비싼 툴 없어도 메모장으로 시작할 수 있다는 것.
🖥️ 오전 수업 복기 — 서버 구축 해봤는가?
교수님이 물었다. "서버 구축을 해봤는가?" 오전에 LXD + Docker + Flask로 내부망 서버를 직접 구축했으니 대답은 YES였다.
📌 교수님 말씀
모르는 게 있으면 배워야 한다. 시켜서 하는 게 아니라 스스로 공부해서 알아내는 자세가 중요하다. IT는 해봤거나 안 해봤거나 분석해서 배워야 한다. 들었다고 끝이 아니라 설명할 수 있어야 진짜 아는 것이다.⚙️ 프로세스란 무엇인가 (276쪽)
Program vs Process
Program = 디스크에 저장된 코드 파일 (실행 전)
↓ 실행하면
Process = 메모리에 올라가서 활성화된 상태 (실행 중)
↓
실행 단위 = 프로세스는 곧 실행 단위
↓ 실행하면
Process = 메모리에 올라가서 활성화된 상태 (실행 중)
↓
실행 단위 = 프로세스는 곧 실행 단위
📌 쉽게 말하면
악보 = Program (디스크에 저장된 것)연주 중인 음악 = Process (메모리에서 실행 중인 것)
포그라운드 / 백그라운드 (278쪽)
| 구분 | 설명 | 비유 |
|---|---|---|
| 포그라운드 (fg) | 터미널을 점유하며 실행 | 무대 위에서 공연 중 |
| 백그라운드 (bg) | 뒤에서 조용히 실행 | 무대 뒤에서 준비 중 |
터미널
# 백그라운드 실행 (& 붙이면 됨)
python3 app.py &
# 작업 목록 확인
jobs
# 백그라운드 → 포그라운드 전환
fg
# 실행 중인 프로세스 확인
ps -ef | grep python
python3 app.py &
# 작업 목록 확인
jobs
# 백그라운드 → 포그라운드 전환
fg
# 실행 중인 프로세스 확인
ps -ef | grep python
오전에 Docker 컨테이너를 -d 옵션으로 실행한 것이 바로 백그라운드 실행입니다. & 와 같은 개념입니다.
🔗 파이프 · 필터 · 리디렉션
파이프 |
두 개의 프로그램을 연결해주는 통로. 왼쪽 결과를 오른쪽으로 넘긴다.
ps -ef | grep python
전체 프로세스 출력 → python 관련만 필터링
전체 프로세스 출력 → python 관련만 필터링
터미널
# 실행 중인 python 프로세스 찾기
ps -ef | grep python
# 찾은 PID로 강제 종료
kill -9 [PID번호]
ps -ef | grep python
# 찾은 PID로 강제 종료
kill -9 [PID번호]
리디렉션 >
결과를 파일로 저장하는 대입 연산자.
터미널
# 프로세스 목록을 파일로 저장
ps -ef > 결과.txt
# 폴더 목록을 파일로 저장
ls > 목록.txt
ps -ef > 결과.txt
# 폴더 목록을 파일로 저장
ls > 목록.txt
파이프는 프로그램과 프로그램을 연결, 리디렉션은 결과를 파일로 저장합니다.
💾 하드디스크 관리와 마운트 (370쪽)
마운트란 하드디스크나 USB 같은 저장장치를 리눅스 폴더에 연결해서 사용 가능하게 만드는 것이다.
| OS | 저장장치 연결 방식 |
|---|---|
| 윈도우 | USB 꽂으면 자동으로 D: E: 드라이브 생성 |
| 리눅스 | mount 명령어로 직접 폴더에 연결해야 함 |
터미널
# USB를 폴더에 연결
mount /dev/sdb1 /mnt/usb
# 연결 해제
umount /mnt/usb
# 연결된 디스크 전체 현황
df -h
# 폴더별 용량 확인
du -h
mount /dev/sdb1 /mnt/usb
# 연결 해제
umount /mnt/usb
# 연결된 디스크 전체 현황
df -h
# 폴더별 용량 확인
du -h
오전에 만든 LXD/Docker 컨테이너도 내부적으로 파일시스템을 마운트해서 독립 환경을 만드는 구조입니다.
💻 개발 언어 계보와 취업 방향
언어 역사
Bell연구소 B언어
↓
C언어 (개발자 생산성 혁명)
↓
C++ (C + 객체지향)
↓
C# (MS가 Java 대안으로 개발)
↓
C언어 (개발자 생산성 혁명)
↓
C++ (C + 객체지향)
↓
C# (MS가 Java 대안으로 개발)
주요 언어 포지션
| 언어 | 특징 | 주요 사용처 |
|---|---|---|
| C | 가장 기초, 하드웨어 근접 | 임베디드, 운영체제 |
| C++ | C + 객체지향 | 게임엔진, 시스템 |
| Java | 범용, Oracle 소유 | 기업 서버, 안드로이드 |
| Objective-C | 애플 전용 | iOS 구버전 |
| JavaScript | 웹 전용 | 프론트엔드 |
| C# | MS 계열 표준 | 윈도우 앱, Unity 게임 |
MS vs Java 대안 관계
| 원본 | MS 대안 |
|---|---|
| Java | C# |
| Oracle DB | MS SQL Server |
| MySQL | MS SQL Server / Azure DB |
📌 Java가 밀리는 이유
Java는 Oracle 소유 → 기업들이 라이선스 비용 부담 → MS C#으로 넘어가는 기업 증가 → C# 수요 꾸준히 상승 중취업 방향
지금: Python → C언어 전환 중
↓
다음: C++ 심화
↓
목표: C# + SQL → MS 계열 취업
↓
범위: 대전 → 전국
↓
다음: C++ 심화
↓
목표: C# + SQL → MS 계열 취업
↓
범위: 대전 → 전국
광주/대전은 취업 자리가 한정적. C++ 제대로 익히면 원하는 지역 선택 폭이 넓어진다고 했다.
📋 오늘 배운 명령어 정리
| 명령어 | 역할 |
|---|---|
ps -ef | grep [이름] |
실행 중인 프로세스 찾기 |
kill -9 [PID] |
프로세스 강제 종료 |
명령어 & |
백그라운드 실행 |
jobs |
백그라운드 작업 목록 |
fg |
백그라운드 → 포그라운드 전환 |
df -h |
디스크 전체 현황 |
du -h |
폴더별 용량 확인 |
mount |
저장장치 연결 |
umount |
저장장치 연결 해제 |
명령어 > 파일 |
결과를 파일로 저장 (리디렉션) |
📝 오늘 오후 한 줄 요약
프로세스는 실행 단위. 파이프는 프로그램 연결 통로. 마운트는 저장장치 연결.
C → C++ → C# 순서가 MS 계열 취업으로 가는 정석 루트다.
들었다고 끝이 아니라 설명할 수 있어야 진짜 아는 것이다.
'생각 글' 카테고리의 다른 글
| 26년 5월 14일 생각 글 (0) | 2026.05.14 |
|---|---|
| 26년 5월 8일 생각 글 (0) | 2026.05.08 |
| 26년 5월 7일 생각 글1 (0) | 2026.05.07 |
| 26년 5월 6일 정리글 (0) | 2026.05.06 |
| 26년 4월 29일 생각 (0) | 2026.04.29 |