포털:고등학교/기술·가정/정보(2015 개정)

위키배움터

정보 문화[편집]

정보과학과 우리 삶은 어떤 관련이 있을까[편집]

  1. 정보 사회와 정보과학

정보 사회는 다양한 자료의 수집, 분석, 처리 공유 등을 통해 정보의 생산과 활용이 모든 가치 판단의 중심이 되는 사회이다. 과거와 달리 정보 과학 기술이 보편화되면서 소프트웨어의 개발과 활용을 통한 문제 해결의 가치가 커지고 있다. 이런 의미에서 정보 사회는 소프트웨어 중심 사회로 진입하고 있는 사회라고 할 수 있다

  1. 정보과학 지식과 기술의 활용 분야

정보 과학은 일상생활의 문제를 효율적으로 해결하기 위해 컴퓨팅 시스템의 계산 능력을 이용하는 방법이나 지식을 탐구하는 학문이다. 이러한 정보들을 정보 기술(IT; Information Technology) 라고 한다. 정보 과학 지식과 기술은 개인의 삶 뿐만 아니라, 금융, 교육, 의료, 운송 등 사회 전반에 걸쳐 다양하게 활용된다.특히 소프트웨어를 기반으로 하는 활발한 정보의 생산과 활용이 이루어지고 있다.

  1. 정보과학과 미래 직업
소프트웨어 개발자, 데이터 과학자, 로봇 공학자 등

이러한 사회의 변화가 직업의 세계에도 영향을 미쳐 새로운 일자리가 생기기도 하지만 기존의 직업들이 쇠퇴하거나 사라지고 있다. 정보 과학의 발전은 사회, 경제 분야의 변화 뿐만 아니라 직업의 세계에도 많은 변화를 주고 있다. 특히, 인공 지능, 빅 데이터, 사물 인터넷, 로봇 등 정보 과학과 관련된 분야에서 새로운 직업들이 탄생 중이다.

정보 공유와 정보 보호는 어떻게 실천할까[편집]

  1. 정보 공유
정보를 다른 사람과 나누는 것

인터넷의 검색 엔진이나 위키, 소셜 네트워킹 서비스(SNS)등을 통해 공유되는 정보들은 또 다른 새로운 형태의 정보로 가공되어 활용된다. 정보의 공유는 공통 관심사를 가진 사람들을 하나로 묶어 새로운 인간관계를 만들거나, 협업이나 새로운 아이디어를 창출하여 여러 가지 형태의 창업을 가능하게 하는 원동력이 되기도 한다. 사람들이 정보 공유를 통해 협업, 소통, 개방 등의 새로운 가치를 생산하지만, 무분별한 정보 공유로 사생활 침해, 정보 유출, 저작권 침해 등 다양한 사이버 범죄가 발생할 가능성이 있다. 이를 예방하기 위해서는 정보 보호에 대한 올바른 이해가 필요하다. 정보 보호는 정보 사회의 구성원이 올바른 정보 공유를 통해 다양한 가치를 얻을 수 있게 하는 중요한 개념이다.

  1. 정보 보호 제도 및 방법
정보보호 : 정보가 불법적으로 유출, 훼손, 파괴, 변조, 접근, 기록되는 것으로부터 보호 등을 하기 위한 모든 행위를 말한다.

정보 보호를 하기 위해서는 정보를 보호 대상으로 보호해야하는 어떤 정보를 보호해야 하는지 구분할 수 있어야한다. 우리가 보호해야할 정보는 군사 정보, 금융 정보, 위치 정보, 개인 정보, 의료 정보, 영상 정보 등이 있다

무분별한 정보의 수집과 이용이 증가하고 있는데. 이런 문제를 해결하기 위해 국가는 정보를 보호하고, 정보 침해 행위를 제한하기 위한 여러 가지 법적 장치를 가지고 있는데 '개인정보 보호법', '정보통신망 이용촉진 및 정보보호 등에 관한 법률' 등이 이에 해당된다.

정보 보안은 왜 필요할까[편집]

  1. 정보 보안
정보 보안의 3요소 : 정보의 기밀성, 무결성, 가용성

정보의 기밀성이란 허가된 사용자에게만 정보를 제공하는 것이고, 정보의 무결성은 정보는 훼손되거나 변형되지 않고 원형 그래도 유지하면서 보존되어야하기때문에 허락받지 않은 사용하자 정보를 변경하면 안된다는 것, 마지막 정보의 가용성은 허락된 사용자가 원할 떄는 언제든지 정보를 제공한다는 것이다.

  1. 정보 보안의 필요성
사례 : 불법 문자 메세지, 스미싱, 가짜 은행 사이트 파밍, 인터넷 쇼핑몰, 고객 정보 유출 사건

인터넷의 급속한 성장과 인터넷을 통한 공격 기술이 발달하고, 크래킹 기술의 발달, 정보 시스템의 취약점 증가, 보안 대책의 미비 등으로 보안 침해 사고가 증가 중이다. 정보 보안이 중요한 이유 개인적 측면: 개인의 사생활을 보호하기 위함이고 해킹, 스미싱, 파밍, 명의 도용 등으로부터 개인 정보를 보호하기 위함이다. 사회, 기업적 측면: 기업 간 고객의 개인 정보 유출, DDoS 공격 등으로 발생할 수 있는 피해를 막아 기업의 신뢰를 유지하고 중요 자산을 지키기 위함이다. 국가적 측면 : 국가 간의 사이버 테러를 막기 위함이다.

  1. 정보 보안 실천하기

정보 보안을 실천하는 방법 비밀번호는 1년에 2번은 바꾸고, 부팅, 윈도, 화면 보호기 등에 비밀번호를 설정하여 자신의 컴퓨터나 정보기기를 다른 사람이 사용하지 못하도록 관리합니다./ 접근 권한 설정하기 사용자 계정 관리를 통해 접근을 제어하거나 사용자 권한을 부여하여 관리합니다./ 방화벽 사용 및 설정하기 외부의 침투를 막고, 우리가 모르는 사이에 주요 정보가 외부로 유출되는 것을 막기 위해 방화벽을 사용합니다./ 백신 설치 및 업데이트하기 컴퓨터 바이러스 감염 예방을 위해 백신 프로그램을 설치합니다./ 운영 체제 보안 업데이트하기 운영 체제 보안 및 패치를 주기적으로 업데이트합니다.

소프트웨어 저작권은 어떻게 보호할 수 있을까[편집]

  1. 소프트웨어 저작권의 이해

시, 소설, 음악, 미술,영화, 연극, 컴퓨터 프로그램 등에서 사람의 생각이나 감정을 표현한 창작물을 저작물이라고 한다. 그리고 이러한 저작물에 대한 창작자의 권리를 저작권이라고 한다.

소프트웨어는 어문, 음악,연극, 미술, 건축 등의 저작물과 같이 저작권에 의해 보호받을 수 있는데, 이를 소프트웨어 저작권 또는 프로그램 저작권이라고 한다.
  1. 소프트웨어 보호 제도

소프트웨어를 사용하려면 먼저 보호받는 저작물인지 확인해야하고 합법적인 비용을 치른 후 이용하도록 해야한다 소프트웨어는 크게 3가지로 구분해 사용할 수 있다.

상용 소프트웨어: 소프트웨어에 대한 일정한 사용료를 지불하고 소프트웨어 사용권을 받는 형태의 소프트웨어를 말한다.
공개 소프트웨어 : 누구나 자유롭게 무료로 사용 가능한 소프트웨어를 말한다.
오픈 소스 소프트웨어 : 누구나 이용, 복제, 수정, 배포 할 수 있는 소프트웨어이다. 특히 소스 코드를 오픈함으로써, 누군가가 필요에 의해 소스코드를 수정 및 재배포하여 많은 사람이 함께 공유하면서 사용할 수 있도록 한 소프트웨어이다.

하지만 오픈 소스 소프트웨어를 이용하기 위해서는 개발자가 규정한 일정 조건인 라이선스를 지켜야하고, 이를 지키지 않으면 저작권 침해가 발생할 수 있다. 대표적인 라이선스에는 소스 코드를 공개해야 하는 GPL, MPL 라이선스와 소스 코드를 공개하지 않아도 되는 Apache 라이선스, BSD 라이선스 등이 있다.

소프트웨어를 보호하기 위한 다른 여러 가지 제도에는 특허에 의한 소프트웨어 보호, 정품 소프트웨어 인증 제도, 상표에 의한 소프트웨어 보호, 디자인권에 의한 소프트웨어 보호, 소프트웨어 보호를 위한 기술적 조치 등이 있다.

사이버 윤리는 어떻게 실천할까[편집]

  1. 사이버 윤리

사이버 윤리란 사이버 공간에서 지켜야 할 올바른 가치관과 올바른 행동 양식을 말한다.

  1. 사이버 윤리 실천

사이버 범죄 예방을 위한 실천 수칙
1.인터넷에서 누군가에게 이름, 사진, 살고 있는 곳, 전화번호, 학교 등을 알려 주기 전에 부모님이나 보호자에게 항상 허락을 받는다(가족이나 다른 사람에 대한 어떤 정보도 마찬가지임).
2.부모님이나 보호자의 허락 없이 온라인에서 만난 사람을 실제로 만나려고 해서는 안 되며, 부득이한 경우에는 공개적인 장소에서 만난다.
3.정보 기기의 비밀번호와 화면 패턴 등이 유출되지 않도록 주의하며, 함부로 남에게 알려주지 않는다.
4.인터넷에서 혼란스럽거나 꺼림칙한 일 또는 불쾌감을 느끼게 하는 일이 있었다면, 부모님이나 믿을 만한 어른에게 말한다.
5.누군가가 불쾌감을 느끼게 말한다면 절대 응답하지 말고, 그런 일이 채팅방에서 일어났다면 그곳을 즉시 나오도록 한다.
6.기분을 상하게 하는 말이나 불쾌한 그림을 보면 부모님이나 보호자에게 꼭 말한다.
7.온라인에 개인과 관련된 내용을 써 넣어야 하거나 돈이나 개인 신상 정보 또는 신용카드 번호를 요구한다면, 먼저 부모님이나 보호자의 허락을 받는다.
8.백신 프로그램을 설치하고, 주기적으로 업그레이드한다.
9.공인 인증서와 같은 중요한 정보는 이동식 디스크나 보안 토큰 등의 안전한 저장 매체에 보관한다.
10.불법 콘텐츠 및 불법 사이트는 방문하지 않는다.
11.보안이 설정되어 있지 않은 무선 인터넷을 함부로 사용하지 않는다.
12.출처가 불명확한 파일이나 전자 우편을 열지 말고 삭제한다.

자료와 정보[편집]

자료 유형에 따른 부호화는 어떻게 할까[편집]

  1. 자료의 디지털 표현과 부호화

디지털 표현:우리가 일상에서 사용하는 숫자, 문자. 이미지, 소리 등과 같은 다양한 자료를 0과 1의 숫자 형태로 표시하는 것
부호화:자료를 컴퓨터가 이해할 수 있는 형식으로 변환하는 작업

  1. 문자의 부호화

부호화의 방식:아스키코드, 유니코드 등

  1. 이미지의 부호화

색을 표현하는 방법:비트의 수에 따라 표현할 수 있는 색이 다름
픽셀과 해상도: 해상도=가로의 픽셀 수 x 세로의 픽셀 수
해상도가 높을수록 이미지를 구성하는 픽셀의 수가 많다는 뜻이다.

빅 데이터에서 컴퓨팅 기술이 왜 필요할까[편집]

  1. 빅 데이터와 컴퓨팅 기술

빅 데이터는 '빅(big)'과 '데이터(data)'의 합성어로 인터넷과 정보 기술이 발전하면서 디지털 환경에서 생성되는 방대한 규모의 데이터 집합체를 말한다.
빅 데이터=정형화된 데이터+비정형화된 데이터
cf.정형화된 데이터=구조화된 데이터 비정형화된 데이터=구조가 복잡한 데이터
빅 데이터의 속성: 규모, 다양성, 속성

  1. 빅 데이터의 활용과 사회 변화

빅 데이터의 활용 사례: 심야 버스 노선 선정, 맞춤형 유의 질병 및 병원 정보 제공 서비스, 빅 데이터 기반 유통 시장 분석 정보 서비스
사회 변화: 빅 데이터 시대가 열리면서 정형화되지 않은 데이터까지 분석과 활용을 하기 시작했다.

필요한 자료는 어떻게 수집할까[편집]

  1. 자료의 수집 절차
  • 자료 수집 목적 파악
  • 자료 수집 방법 결정
  • 수집할 자료의 대상과 범위 결정
  • 수집할 자료의 종류 결정
  1. 자료의 수집 방법
  • 도서관에서 자료 열람
  • 신문 기사를 통한 수집
  • 설문 조사를 통한 자료 수집
  • 사전을 통한 자료 수집
  • 인터넷을 통한 자료 수집

수집한 자료는 어떻게 관리하고 분석할까[편집]

  1. 정보 관리와 데이터베이스
•정보관리: 자료의 효율적 저장, 자료의 손실로 부터의 보호 그리고 용이한 자료 검색 등의 정보 처리와 관련된 활동.
- 스프레드시트: 표에 숫자 또는 문자 자료 입력 및 조작하여 자료를 처리하는 응용프로그램이다. 이는 복잡한 계산이나 통계 처리 등에 사용된다. 
- 데이터베이스 : 사회 조직에서 여러 업무에서 공유하기 위한 데이터들을 체계화하여 통합, 관리할 수 있도록 저장한 집합체이다. 데이터 종속 문제, 데이터 중복 문제, 데이터 불일치 문제를 해결할 수 있다. 스프레드시트가 지녔던 단점인 많은 양의 복잡한 자료관리와 원하는 정보만을 따로 관리하는 등의 작업을 수행하지 못했던 점을 개선함.
  1. 자료 분석
자료분석이란 주어진 자료의 정보를 정리하여 자료의 특성, 의미 등을 알아내는 것이다. 최근에는 소프트웨어를 통한 빅데이터를 분석이 중요해지고 있다.

분석한 결과를 잘 표현하려면 어떻게 해야 할까[편집]

  1. 정보의 구조화
데이터를 빠르게 파악할 수 있도록 정보를 특징에 따라 체계적으로 분류 및 조직하는 것이다. 구조화 방법에는 목록, 표, 트리, 그래프 등이 있다.
  1. 정보의 시각화
숫자 등의 다양한 형태의 정보를 우리가 알아볼 수 있도록 그래픽 요소를 통해 표현하는 것이다. 그 예로 통계자료나 안내도 등이 있다. 소프트웨어를 통하여 시간, 관계, 비교, 분포, 공간 등에 따라 시각적으로 표현할 수 있다.

문제 해결과 프로그래밍[편집]

문제란 무엇이고 어떻게 해결할까[편집]

  1. 정보과학과 문제

우리는 살면서 사회적 또는 개인적으로 다양한 문제 상황에 놓이게 되는데, 정보과학에서는 이러한 문제들을 빠르고 정확한 계산 능력을 가진 컴퓨터를 이용하여 해결하는 것을 목표로 한다.

  1. 계산 문제

계산 문제란 <15부터 127까지의 자연수 중에서 홀수의 개수는 몇 개일까?>와 같이 컴퓨터를 이용하여 절차적으로 해결할 수 있는 문제이다. 그러나, <사과와 배 중 무엇이 더 맛있을까?>와 같이 정확한 답을 구할 수 없는 문제는 컴퓨터를 이용하여 해결하기 어렵다.

  1. 컴퓨터로 문제 해결

컴퓨터를 이용하여 계산 문제를 해결하기 위해서는 문제를 추상화하고 알고리즘을 설계하며, 이를 자동화하는 과정이 필요하다. 추상화란 주어진 문제를 이해하고 분석하여 문제 해결을 위해 불필요한 요소를 제거하거나 작은 문제로 나누는 과정이다. 추상화를 위해서는 문제 분석, 핵심 요소 추출, 문제 분해 및 모델링의 과정을 적용하며, 추상화를 적용한 후에는 문제가 명확하고 해결하기 쉬운 형태로 바뀌게 된다. 그리고 알고리즘 설계란 글이나 도형과 흐름선 등으로 구체적인 문제 해결 방안을 단계별로 나열하는 과정이다. 추상화를 통해 재표현한 문제를 해결하기 위해 순차, 선택, 반복 구조 등을 이용하여 알고리즘을 설계하고, 알고리즘의 성능을 분석한다. 이때 수행 시간의 관점에서 알고리즘의 성능을 분석하고, 더 좋은 알고리즘을 설계하기 위해 고민한다. 마지막으로 자동화란 문제의 해결책, 즉 알고리즘 설계를 사람이 아닌 컴퓨팅 시스템 스스로가 수행할 수 있도록 변환하는 과정이다. 알고리즘 설계가 끝났을 때 자동화를 위해 설계 알고리즘을 프로그래밍 언어로 구현하여 소프트웨어를 개발한다.

문제 분석은 어떻게 해야 할까[편집]

  1. 문제 분석을 통한 현재 상태와 목표 상태 구하기

일반적으로 문제 상황은 다양한 자료를 포함하고 있다. 이 자료들을 처리하고 가공하여 원하는 형태로 변형하면 문제를 해결할 수 있다. 따라서 처리되기 전의 자료들을 ‘현재 상태라고 한다면, 이러한 자료들을 적절한 형태로 처리하여 원하는 자료로 만든 상태를 ‘목표 상태라고 한다. 문제를 해결하는 과정은 현재 상태를 시작으로 목표 상태로 가는 과정을 말하고 이 과정에서 자료들의 상태는 다양하게 변화하므로 문제 해결 과정에서는 그 시점에 따라 다양한 ‘현재 상태’가 존재할 수 있다. 결론적으로 문제를 해결했다는 것은 ‘현재 상태’와 ‘목표 상태’가 일치 되었다는 뜻이다. 문제 상황을 분석하여 현재 상태와 목표 상태를 파악하고, 수행 작업을 정의하는 과정을 문제 분석이라고 하며, 문제에 따라 다양한 분석 결과가 도출될 수 있으나 효율적인 문제 해결을 위해 명확한 방법으로 표현해야 한다.

  1. 핵심 요소 추출

문제를 해결하기 위해 반드시 고려해야 하는 요소들을 핵심 요소라고 한다. 핵심 요소를 찾기 위해 가장 먼저 할 일은 현재 상태와 목표 상태를 찾는 일이고 문제를 해결하기 전에 핵심 요소를 분석하면 문제를 절차적으로 해결하는데 큰 도움을 준다

문제 분해와 모델링은 왜 하는 것일까[편집]

  1. 문제 분해

문제의 상태를 파악하고 핵심 요소를 추출한 후 다음에 해야 할 일은 주어진 문제를 분해하는 것이다. 복잡한 문제는 한 번에 해결하기 어려우므로 주어진 문제를 해결 가능한 작은 단위의 문제들로 분해하는 과정이 필요하다. 문제를 분해하는 과정은 '기능별로 분해하는 방법'과 '원래 문제와 구조가 동일한 작은 문제로 분해하는 방법'이 있다.

  1. 모델링

모델링은 복잡한 문제를 쉽게 이해하여 해결할 수 있는 형태로 다시 표현하는 것을 말하는데 문제의 상태 분석, 핵심 요소 추출 및 분해의 작업이 선행되면 더 나은 형태의 문제 해결 모델을 만들 수 있다.

문제 해결을 위한 알고리즘은 어떻게 설계할까[편집]

  1. 알고리즘의 이해

문제를 해결하기 위한 구체적인 방법과 절차를 알고리즘이라고 하고 알고리즘은 구체적이면서도 명확하게 표현되어야 한다.

  1. 알고리즘의 표현

알고리즘은 그것을 읽는 모든 사람이 동일한 작업을 수행할 수 있도록 모호하지 않게 표현해야 한다. 알고리즘을 표현하는 방법에는 순서도, 의사 코드, 프로그래밍 언어 등이 있으며, 명확하게 표현할 수 있다면 우리가 사용하는 일상 언어(자연어)로도 알고리즘을 표현할 수 있다.

  1. 알고리즘의 기본 구조

알고리즘은 기본적으로 순차 구조, 반복 구조, 선택 구조를 사용하여 실행 순서와 절차를 나열하여 설계한다. 순차 구조란 알고리즘의 실행 순서를 위에서 아래로 순차적으로 표현한 구조를 말한다. 그리고 상황에 따라 반복적으로 수행할 때는 반복 구조를 사용하고 참 또는 거짓을 판단해야 한다면 선택 구조를 사용한다.

  1. 알고리즘의 설계

어떤 문제를 해결하는 알고리즘을 알고 있으면 그 문제를 쉽게 해결할 수 있지만 모든 문제에 대한 알고리즘을 다 알 수는 없기 때문에 필요할 경우 스스로 알고리즘을 설계할 수 있어야 한다. 따라서 주어진 문제에 대하여 자신만의 알고리즘을 설계할 줄 아는 것이 많은 알고리즘을 알고 있는 것보다 더 중요하다.

어떤 알고리즘이 더 효율적일까[편집]

  1. 알고리즘의 효율 분석
    동일한 문제를 해결하는 알고리즘들에 대하여, 가장 효율적인 알고리즘을 골라내기 위해 사용하는 대표적인 효율성 분석 방법으로 수행 시간 분석 방법이 있다. 수행 시간이란 알고리즘이 실행한 순간부터 종료될 때까지의 시간을 뜻하며, 일반적으로는 포함된 명령의 수를 가리킨다.

    동일한 문제를 해결하는 다양한 알고리즘의 예시로 1부터 n까지의 정수를 더한 값을 구하는 알고리즘이 있다.

    1부터 n까지의 정수를 더한 값을 구하는 가장 쉬운 방법은 직접 순차적으로 더하는 것이다. 이런 식으로 값을 구할 경우 2n+2개의 명령이 실행된다.

    1. 변수 선언 : sum =0, i =1 (i는 현재 더할 정수)
    2. 정수 더하기 : sum =sum+i
    3. 만약 i<n이면 i에 1을 더하고 2. 단계로 돌아가기 아니면 4. 단계로 가기
    4. sum 출력하고 프로그램 종료하기

    n =3일 때
    1 -1. sum =0, i =1
    2 -2. sum =sum+i =0+1
    3 -3. i<n (1<3) 이므로 i =i+1 =1+1을 수행한 후 2. 로 돌아가기
    4 -2. sum =sum+i =1+2
    5 -3. i<n (2<3)이므로 i =i+1 =2+1을 수행한 후 2. 로 돌아가기
    6 -2. sum =sum+i =3+3
    7 -3. i<n (3<3)이 성립하지 않으므로 4. 로 가기
    8 -4. sum 출력하기


    이 알고리즘 대신에 1부터 n까지의 정수들의 합을 구하는 공식을 사용할 수 있다. 이 경우에는 1개의 명령을 실행하고 프로그램이 종료될 것이다.

    1. n*(n+1)/2 (나머지는 버리기)를 출력하고 프로그램을 종료하기
  2. 알고리즘의 효율 비교
    1부터 n까지의 정수를 더하는 예제에서 보았듯이 첫 번째 알고리즘의 수행시간은 n값이 커짐에 따라 늘어나지만, 두 번째 알고리즘의 수행 시간은 n값에 관계없이 항상 1이다. 따라서 두 번째 알고리즘의 효율이 훨씬 더 우수하다.

프로그램은 어떻게 작성할까[편집]

  1. 프로그램 개발 환경
    알고리즘을 프로그래밍 언어로 구현하는 일은 일련의 과정을 거친다.

    1. 프로그래밍의 언어의 문법과 규칙을 지켜 소스 코드를 작성하기
    2. 소스코드를 컴퓨터가 이해할 수 있는 언어로 번역하기

    1. 과 2. 과정에서 쓰이는 도구들을 각각 '편집기', '컴파일러'라고 부른다. 만약 2. 과정에서 작성자가 문법이나 규칙을 어겨 '컴파일'을 할 수 없게 되면 컴파일러는 오류를 출력한다. 이런 컴파일러가 내는 오류인 '컴파일 에러'를 제외하고도 '런타임 에러'(설계미숙 ex) 0으로 나누는 작업 실행), '로직 에러(논리 오류)'(작성자가 의도한 작업을 프로그램이 수행하지 못함)와 같은 오류들이 있다. '디버거'는 이런 오류들을 수정할 때, 특히 논리 오류는 에러를 출력하지 않기 때문에 논리 오류를 해결할 때 유용하다. 디버거는 번역 과정을 제어하고, 데이터의 이동을 추적할 수 있기 때문에 원인을 알기 어려운 오류를 찾아내게 도와준다. '편집기', '컴파일러', '디버거'를 한 곳에 모아 제공하는 소프트웨어를 통합 개발 환경(IDE)라고 한다.
  2. 통합 개발 환경의 종류
    책에서는 Code::Blocks(https://codeblocks.org/downloads)와 Dev-C++(https://sourceforge.net/projects/orwelldevcpp)을 소개한다. 두 IDE 모두 유명한 IDE지만, 책에서 소개된 것 보다 두루 쓰이는 IDE들이 있다.

    1. 구름IDE(웹) https://ide.goorm.io
    2. replit(웹) https://repl.it
    3. Visual Studio https://visualstudio.microsoft.com/ko/downloads
    4. VSC(편집기) https://code.visualstudio.com/download
  3. C 언어 시작하기

값의 입력과 저장, 연산과 출력은 어떻게 프로그래밍 할까[편집]

  1. 변수와 연산자
  2. 입력과 출력
  3. 파일을 이용한 입력과 출력

프로그램의 흐름은 어떻게 제어할까[편집]

  1. 선택 구조와 반복 구조
  2. 선택 구조를 이용한 프로그래밍
  3. 반복 구조를 이용한 프로그래밍

배열과 함수는 왜 사용할까[편집]

  1. 배열
  2. 함수
  3. 반환 값이 없는 함수
  4. 전역 변수와 지역 변수

다양한 문제 상황은 어떻게 프로그래밍으로 해결할까[편집]

  1. 예제
  2. 문제1
  3. 문제2

컴퓨팅 시스템[편집]

효율적으로 자원을 관리하려면 어떻게 해야 할까[편집]

  1. 컴퓨팅 시스템의 구성과 동작 원리
  2. 운영 체제와 자원 관리

네트워크를 구성하고 사용하려면 어떻게 해야 할까[편집]

  1. 컴퓨터 네트워크의 개념과 구성
  2. 컴퓨터 네트워크의 접속 환경과 설정

피지컬 컴퓨팅 시스템은 어떻게 구성할까[편집]

  1. 피지컬 컴퓨팅의 개념

피지컬 컴퓨팅이란 물리적인 정보(빛, 소리, 열 등)를 센서를 통해 입력받아 처리한 후 출력장치 (LED,모터 등)를 통해 결과를 출력하는 것으로써, 즉 현실세계의 정보를 컴퓨터의 가상세계와 상호작용하게하는 시스템을 의미한다.

  1. 피지컬 컴퓨팅 시스템 제작에 필요한 하드웨어
피지컬 컴퓨팅 시스템은 센서, 마이크로컨트롤러, 액추에이터로 구성되어진다.

센서: 현실세계의 정보들을 감지하는 입력장치. 마이크로컨트롤러: 센서를 통하여 입력된 정보들을 처리하는 제어장치. 액추에이터: 처리된 결과물을 현실세계에서 물리적으로 나타내도록 하는 출력 장치.

  1. 피지컬 컴퓨팅 활용 분야
 1. 반응형 전시 시스템 : 피지컬 컴퓨팅은 박물관 등에서 전시물 전시 시스템 제작에 활용된다.
 2. 미디어 아트 : 피지컬 컴퓨팅을 통한 미디어 아트는 예술가의 표현 의도를 효과적으로 전달해준다.
 3. 프로토타입 기기 개발: 비전문가의 경우에도 피지컬 컴퓨팅 시스템의 설계 및 구현과정을 통해 스스로 기기를 설계하고 제품의 초기모델인 시제품(prototype)을 만들 수 있다. 
 4. 과학 실험 장치 설계 및 구현: 과학 장치들을 피지컬 컴퓨팅을 활용하면 쉽고 간단하게 설계하고 구현해볼 수 있다.
  1. 피지컬 컴퓨팅 시스템의 설계
 다양한 문제상황에서 자신의 목적을 위한 피지컬 컴퓨팅 시스템을 설계할 수 있으며 이는 실제 제품으로 만들어질 수 있다. 

피지컬 컴퓨팅 시스템의 설계는 다음과 같은 과정으로 이루어진다.

1. 현재 상태와 목표 상태 및 수행 작업 정하기 
2. 현재 상태 해결을 위한 핵심 요소 추출하기 
3. 문제 분해 및 모델링 하기 (문제 해결을 위한 컴퓨팅 시스템의 부품 조사)

피지컬 컴퓨팅 시스템은 어떻게 제어할까[편집]

  1. 피지컬 컴퓨팅 시스템의 회로 설계 원리

1. 마이크로컨트롤러

아두이노는 가장 간단한 형태의 컴퓨팅 시스템으로 입출력 포트와 중앙처리장치(CPU), 마이크로컨트롤러로 구성된다. 마이크로컨트롤러는 아두이노 기반의 보드들을 통해 가장 널리 사용되며 나아가 추가 확장 기능을 제공하는 아두이노 쉴드들을 이용하여 컴퓨팅 시스템을 설계할 수 있다.

- 아두이노 보드의 구성

마이크로 컨트롤러, 디지털 입출력 포트, 전원 출력 포트, 아날로그 입력 포트 등.

- 작동원리

센서들로부터 전기 신호 입력, 마이크로컨트롤러에의해 처리된 후 디지털 포트 출력을 통하여 액추에이터들을 동작시킴.

- 아날로그 전기신호:0~1023, 디지털 전기 신호: 0/1, PWM(Pulse-Width Modulation)포트: (~)기호로 시작되는 번호의 포트. 디지털 신호를 이용하여 아날로그 신호와 유사한 형태의 입출력이 가능함.출력범위: 0~255 2. 브레드보드 브레드보드란 전류가 흐르는 선이 배치되어 있어 다양한 센서와 엑추에이터들의 전자 회로를 편리하게 구성할 수 있는 판이다. +/- 전원라인은 가로로 연결되어 있으며 회로를 직렬 및 병렬로 구성할 수 있는 부분은 세로로 연결되어 있다.

  1. 피지컬 컴퓨팅 시스템의 제어 프로그래밍의 이해
아두이노의 공식 프로그래밍 언어: sketch (C/C++ 프로그래밍 언어를 사용한 '프로세싱'기반으로 만들어짐

-기본 코드

setup(){수행할 명령문}: 전원이 공급된 후 가장 처음으로 1회만 실행됨.
loop(){수행할 명령문}: 그 이후 무한 반복 실행.

- 피지컬 컴퓨팅 시스템 구현

1. 목표상태 설정
2. 알고리즘 설계
3. 하드웨어 설계
4. 제어 프로그램 구현)]