🔟애플리케이션 프로그래밍과 시스템 프로그래밍
고수준 언어와 저수준 언어 프로그래밍 방식 비교
1. 애플리케이션 vs 시스템 프로그래밍: 동물 퀴즈로 알아보기
1) 웹 브라우저는 '고급 컴퓨터'다?
● 브라우저가 제공하는 고수준 인터페이스
2) 애플리케이션 vs 시스템 수준의 프로그래밍 비교
● 그림 10-1의 구조 요약

3) 예제 프로그램: '동물 맞히기 게임'
● 예시 대화 흐름
● 핵심 기능
4) 프로그램 구조: 순서도 이해하기
● 그림 10-2: 동물 퀴즈 트리 순서도 요약

5) 시스템 수준과 애플리케이션 수준의 차이
구분
애플리케이션 수준 (JS/웹)
시스템 수준 (C/콘솔)
📌 부가설명: JSON → DB → 프론트까지 흐름도
● JSON 기반 데이터 흐름
2. 부가정리 : 동물 퀴즈 트리: JSON 구조 & C 구조체 변환
1) 동물 퀴즈 트리 구조란?
2) JSON 구조로 저장하기
📌 JSON 저장 포인트
3) C 구조체로 표현하기
📌 사용법 예시
5) JSON ↔ 구조체 변환 개념 요약
항목
JSON 저장
C 구조체 표현
마무리 정리
3. 왜 우리는 브라우저를 떠나 C 코드로 가는가?
1) 브라우저의 고수준 추상화 구조
2) 그래서, C 버전으로 구현한다는 것은?
1. 직접 입력과 출력을 제어해야 합니다
2. 시스템 콜로 OS에 요청해야 합니다
3. 드라이버가 키보드/디스플레이와 연결을 흉내 냅니다
🔄 입출력 흐름: 전체 흐름도 설명
🎯 왜 원형 버퍼가 필요할까?
일반 큐의 문제점
원형 버퍼(Circular Buffer)
📎 표준 입출력 라이브러리 (stdio)의 역할
stdio)의 역할역할
설명
🧪 실제 동물 추측 프로그램 예시에서의 흐름 (C 기반)
📌 정리하자면…
비교 항목
브라우저 환경
C 터미널 환경
4. 동물 추측 게임: HTML/CSS/JS vs C 코드 비교 분석
1) 프로그램 구조 비교
항목
브라우저 기반 (HTML+JS)
시스템 기반 (C 터미널)
2) 지식 트리 구현 코드 비교
🧱 HTML/JS (브라우저)
⚙️ C 코드 (터미널)
3) 인터페이스 및 I/O 방식 비교
기능
HTML+JS
C (터미널)
4) 메모리 구조 및 관리 차이
항목
브라우저 버전
C 버전
5) 핵심 개념 비교 요약표
구분
브라우저 환경
C 환경
✅ 어떤 상황에 어떤 방식이 좋을까?
목적
브라우저 방식이 유리
C 방식이 유리
📌 결론
🧠 추상화를 활용한 코드 개선 – C와 자바스크립트의 접근 방식 차이
1) 상황 설정: 왜 매번 ‘고양이 vs 개’부터 시작할까?
2) C 언어는 어떻게 이걸 해결했나?
✅ 파일 시스템의 추상화 활용
🎯 예시 흐름
3) 브라우저(자바스크립트)는 왜 어려운가?

❌ 추상화가 ‘숨겨져 있는’ 구조
❗ 불편한 점
4) 요약 비교
항목
C 프로그램
자바스크립트 (브라우저)
5) 🌐 프로그래밍 언어 설계에 대한 교훈
📦 런타임 라이브러리와 표준 입출력: 시스템 프로그래밍의 시작점
1) 프로그램이 실행되기까지 – 우리가 보지 못한 준비 작업들
🛠️ 런타임 라이브러리가 하는 일
2) stdio: C에서 가장 널리 쓰이는 라이브러리
📍 stdio의 핵심 개념: 버퍼링된 입출력
이름
설명
디스크립터
🤔 stdout과 stderr의 차이는?
stdout과 stderr의 차이는?
3) 시스템 프로그래밍의 어두운 그림자 – 버퍼 오버플로
💣 gets()의 위험한 함정
gets()의 위험한 함정
4) 메모리와 포인터를 사용하는 C 구조체 – 노드 구조 선언
💡 메모리 할당 방식
🧾 정리: 런타임, 입출력, 보안까지 이어지는 시스템 세계
항목
설명
🧠 주제: 고수준과 저수준 프로그램의 경계에서 – 자바스크립트 vs C로 구현한 ‘동물 추측 게임’ 비교
1) 프로그램 구조와 실행 환경 비교
구분
HTML/JavaScript
C 언어
2) 입출력 추상화의 차이
3) 메모리와 자료구조 구현 비교
항목
JavaScript
C 언어
4) 버퍼링과 표준 입출력 구조
stdin / stdout / stderr 구조
🎯 버퍼 오버플로 예시
5) 훈련 기능 구현 차이
✨ 마무리: 왜 두 코드는 같은 게임인데 이렇게 다를까?
Last updated
