프로그래밍 및 코딩의 원리 - PDFCOFFEE.COM (2024)

온라인 https://online.salempress.com

4919 Route 22, PO Box 56 Amenia NY 12501 전화: 518-789-8700 | 800-562-2139 팩스: 845-373-6360 www.greyhouse.com |[이메일 보호됨]www.salempress.com |[이메일 보호됨]

프로그래밍 및 코딩의 원리

이 책 보기

세일럼 프레스

원리

프로그래밍 및 코딩

프로그래밍 및 코딩의 원리

프로그래밍 및 코딩 에디터의 원리

Donald R. Franceschetti, PhD 멤피스 대학교

SALEM PRESS 매사추세츠 주 입스위치 EBSCO 정보 서비스 부서

그레이 하우스 출판

표지 이미지: 작성자: monsitj(iStock) 저작권 ©2018, 작성자: Salem Press, EBSCO Information Services, Inc. 및 Gray House Publishing, Inc.의 부서. 모든 권리 보유. 본 저작물의 어떤 부분도 저작권 소유자의 서면 허가 없이는 어떤 방식으로든 사용 또는 복제할 수 없으며 사진 복사, 녹음 또는 정보 저장 및 검색 시스템을 포함하여 전자적 또는 기계적 형태나 수단으로 전송할 수 없습니다. 권한 요청은 다음으로 문의하세요.[이메일 보호됨]. ↑ 이 책에 사용된 용지는 인쇄된 도서관 자료용 용지의 영구성에 대한 미국 국가 표준, Z39.48 1992(R2009)를 준수합니다. 출판사의 출판물 목록 데이터(The Donohue Group, Inc.에서 작성) 이름: Franceschetti, Donald R., 1947-편집자. 제목: 프로그래밍 및 코딩의 원리 / 편집자, Donald R. Franceschetti, PhD. 다른 제목: 프로그래밍 및 코딩의 원리 설명: [초판]. | 매사추세츠주 입스위치: EBSCO Information Services, Inc.의 사업부인 Salem Press; [뉴욕 아메니아] : 그레이하우스 퍼블리싱, [2018] | 시리즈: 원리 | 참고문헌과 색인이 포함되어 있습니다. 식별자: ISBN 9781682176764(하드커버) 주제: LCSH: 컴퓨터 프로그래밍. | 코딩 이론. 분류: LCC QA76.6 .P75 2018 | DDC 005.1—dc23

미국에서 첫 번째 인쇄본 인쇄

목차 발행인의 메모. . . . . . . . . . . . . . . . . . . . . . . . . . . . vii 편집자 소개. . . . . . . . . . . . . . . . . . . . . . . . . ix 기여자. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv 3D 프린팅. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 알고리즘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 정보 교환을 위한 미국 표준 코드(ASCII) . . . . . . . . . . . . . . . . . . . . . . . . . 6 안드로이드 운영체제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 신청. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 자율 컴퓨팅 . . . . . . . . . . . . . . . . . . . . . . 14 아바타 및 시뮬레이션. . . . . . . . . . . . . . . . . . . . . . . 16 2진수 16진수 표현 . . . . . . . . . . . 19 부울 연산자. . . . . . . . . . . . . . . . . . . . . . . . . . 23 분기 논리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25개의 문자 및 문자열. . . . . . . . . . . . . . . . . . . . . . . 클라우드 컴퓨팅. . . . . . . . . . . . . . . . . . . . . . . . . . . 코딩 및 암호화. . . . . . . . . . . . . . . . . . . . . . 색상 코딩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 조합론 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 댓글 프로그래밍. . . . . . . . . . . . . . . . . . . . . 비교 연산자. . . . . . . . . . . . . . . . . . . . . . . 컴퓨터 애니메이션. . . . . . . . . . . . . . . . . . . . . . . . 컴퓨터 메모리. . . . . . . . . . . . . . . . . . . . . . . . . 컴퓨터 모델링. . . . . . . . . . . . . . . . . . . . . . . . 컴퓨터 보안. . . . . . . . . . . . . . . . . . . . . . . . . . 컴퓨터 지원 설계(CAD). . . . . . . . . . . . . . . . 컴퓨터 지원 설계 및 컴퓨터 지원 제조 소프트웨어(CAD/CAM) . . . . . . . . . . 컴퓨터 보조 교육(CAI) . . . . . . . . . . . 조건부 연산자. . . . . . . . . . . . . . . . . . . . . . . 제약 프로그래밍. . . . . . . . . . . . . . . . . . . . . 제어 시스템 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 카우보이 코딩. . . . . . . . . . . . . . . . . . . . . . . . . . . . . CPU 디자인. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 크라우드펀딩. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 크라우드소싱. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 암호화. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28 30 32 35 37 39 41 44 46 48 51 53

데이터 수집 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 데이터웨어 하우스 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 데이터베이스 디자인. . . . . . . . . . . . . . . . . . . . . . . . . . . . 데이터베이스 구조화 규칙. . . . . . . . . . . . . . 디버깅. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78 80 82 83 85

55 57 59 62 64 66 68 71 72 74

장치 드라이버. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 혁신의 확산 . . . . . . . . . . . . . . . . . . . . . 89 디지털 격차 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 디지털 포렌식. . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 디지털 도서관. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 디지털 네이티브 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 디지털 사진. . . . . . . . . . . . . . . . . . . . . . . . . 98 디지털 신호 프로세서(DSP). . . . . . . . . . . . . . . . 99 디지털 워터마킹. . . . . . . . . . . . . . . . . . . . . . . 101 디스크 운영 체제(DOS). . . . . . . . . . . . . . . . 103 드론 전쟁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 드론 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 전자금융. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 전자 학습. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 전자 회로. . . . . . . . . . . . . . . . . . . . . . . . . 전자 통신 소프트웨어. . . . . . . . . . . 암호화. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 오류 처리. . . . . . . . . . . . . . . . . . . . . . . . . . . . 이벤트 중심 마케팅(EDM) . . . . . . . . . . . . . . 기대 이론. . . . . . . . . . . . . . . . . . . . . . . . . 실험자의 편견. . . . . . . . . . . . . . . . . . . . . . . . 익스트림 프로그래밍 . . . . . . . . . . . . . . . . . . . . .

110 111 113 115 117 119 121 123 124 126

방화벽. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 펌웨어. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 기능적 전기 자극(FES). . . . . . . . 133 게임 프로그래밍 . . . . . . . . . . . . . . . . . . . . . . . 게이미피케이션. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 그래픽 사용자 인터페이스(GUI) . . . . . . . . . . . . . . 그래픽 형식. . . . . . . . . . . . . . . . . . . . . . . . . . 가드 조항. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

135 137 138 140 142

HTTP 쿠키. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145개의 상상의 공동체. . . . . . . . . . . . . . . . . . . . . 점진적인 개발. . . . . . . . . . . . . . . . . . . 정보 기술(IT) . . . . . . . . . . . . . . . . 정보 시각화 . . . . . . . . . . . . . . . . . . . 인터넷 프로토콜(IP). . . . . . . . . . . . . . . . . . . . . . 통제의 반전(할리우드 원칙). . . . . iOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 반복적 구성. . . . . . . . . . . . . . . . . . . . . . . . .

147 149 151 153 154 155 158 160

자바 프로그래밍 언어. . . . . . . . . . . . . . . . . 163 자바스크립트 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164v

프로그래밍 및 코딩의 원리

내용물

지식 근로자. . . . . . . . . . . . . . . . . . . . . . . . . 166단계의 처리 이론. . . . . . . . . . . . . . . . . . 168 논리 합성. . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 물류 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 기계 학습. . . . . . . . . . . . . . . . . . . . . . . . . . 악성 코드. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 대규모 공개 온라인 강좌(MOOC) . . . . . . . . . 메타 분석. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 메타컴퓨팅 . . . . . . . . . . . . . . . . . . . . . . . . . . . 메타데이터. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 마이크로프로세서. . . . . . . . . . . . . . . . . . . . . . . . . . . 혼합 방법 연구(MMR). . . . . . . . . . . . . 모바일 앱. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 모바일 기술. . . . . . . . . . . . . . . . . . . . . . . . . 마더보드. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 다중 처리 운영 체제(OS) . . . . . . . 다중 사용자 운영 체제(OS). . . . . . . . . . . . .

173 174 177 179 181 183 184 186 188 191 193 195 197

명명 규칙. . . . . . . . . . . . . . . . . . . . . . . 200 망 중립성. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 네트워크 보안. . . . . . . . . . . . . . . . . . . . . . . . . . . 205 신경언어 프로그래밍(NLP). . . . . . . . . 207 신경마케팅. . . . . . . . . . . . . . . . . . . . . . . . . . . 208 뉴로모픽 칩. . . . . . . . . . . . . . . . . . . . . . . 210 객관성. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 객체 지향 설계(OOD). . . . . . . . . . . . . . . 215 객체 지향 프로그래밍(OOP). . . . . . . . . 217 개인 정보 보호 권리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 프로그래밍 언어. . . . . . . . . . . . . . . . . . . . 222 프로토타이핑. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 양자 컴퓨팅. . . . . . . . . . . . . . . . . . . . . . . 228 랜덤 액세스 메모리(RAM). . . . . . . . . . . . . . 230 신속한 애플리케이션 개발(RAD). . . . . . . . 232 합리적 선택 이론 . . . . . . . . . . . . . . . . . . . . . 234

vi

검색 엔진 최적화(SEO) . . . . . . . . . . . 의미기억 . . . . . . . . . . . . . . . . . . . . . . . . . 의미론. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 신호 처리. . . . . . . . . . . . . . . . . . . . . . . . . . 소스코드 주석. . . . . . . . . . . . . . . . . . . . . 나선형 개발. . . . . . . . . . . . . . . . . . . . . . . . 표준 편차. . . . . . . . . . . . . . . . . . . . . . . . . 관점 이론. . . . . . . . . . . . . . . . . . . . . . . . . 통계적 추론. . . . . . . . . . . . . . . . . . . . . . . . 문자열 지향 기호 언어  (SNOBOL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 구조 방정식 모델링(SEM). . . . . . . . . .

237 238 239 240 243 245 248 249 251

교육 기술. . . . . . . . . . . . . . . . . . . . 두 배로 테스트하십시오. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 다중 지능 이론. . . . . . . . . . . . . . X이론과 Y이론.. . . . . . . . . . . . . . . . . . . . 변환 우선순위 전제(TPP). . . . . . . . 트리 구조. . . . . . . . . . . . . . . . . . . . . . . . . . . . 튜링 테스트 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

256 259 261 262 264 266 269

252 254

불확실성 감소 이론(URT). . . . . . . . . . 272 유니코드 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 유닉스 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 변수 및 값. . . . . . . . . . . . . . . . . . . . . . . . 279 폭포수 개발 . . . . . . . . . . . . . . . . . . . . . 웹 디자인. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 웹 그래픽 디자인. . . . . . . . . . . . . . . . . . . . . . . . 작업 기억. . . . . . . . . . . . . . . . . . . . . . . . . . 더 나쁠수록 좋습니다. . . . . . . . . . . . . . . . . . . . . . . . . . . .

282 284 287 289 291

프로그래밍 및 코딩의 발명 및 발전 연대표. . . . . . . . . . . . . . . . . . 용어 사전 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 서지. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 색인. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

295 307 315 ​​345

출판사 노트

Salem Press는 생명공학, 화학, 물리학, 천문학, 컴퓨터 과학, 물리과학, 생물학 및 과학 연구를 포함하는 원리 시리즈의 10번째 제목으로 프로그래밍 및 코딩 원리를 추가하게 된 것을 기쁘게 생각합니다. 이 새로운 자료는 학생과 연구자에게 이해하기 쉬운 언어를 사용하여 프로그래밍 및 코딩의 기본 사항을 소개함으로써 독자가 이 복잡한 주제에 대한 탄탄한 시작과 더 깊은 이해 및 감상을 제공합니다. 이 책에 포함된 138개 기사는 정보 시각화, 불확실성 감소 이론, 교육 기술 등에 관심을 기울여 3D 프린팅 및 알고리즘부터 폭포수 개발, 나쁠수록 좋음에 이르기까지 프로그래밍 및 코딩의 기본 원리를 설명합니다. 모든 항목은 A부터 Z까지의 순서로 배열되어 있어 관심 있는 주제를 쉽게 찾을 수 있습니다. 기본 원리 및 개념과 관련된 항목은 다음과 같습니다. • 프로그래밍 및 코딩과 관련된 과학 및 기술의 다양한 분야와 주제 사이의 연결을 설명하는 연구 분야; • 주제에 대한 간략하고 구체적인 요약과 항목 구성 방법을 제공하는 초록; • 프로그래밍과 코딩에 대한 주제의 배경과 중요성에 대한 설명을 제공할 뿐만 아니라 프로세스가 작동하는 방식이나 효과적인 프로그램 및 코드 작성과 관련된 중요한 목표를 달성하기 위해 절차나 기술이 적용되는 방법을 설명하는 텍스트입니다.

• 클라우드 컴퓨팅, 암호화, 전자 뱅킹, 뉴로마케팅, 워터폴 프로그래밍 등 주요 주제의 모델, 다이어그램 및 차트를 통해 어려운 개념을 명확하게 설명하는 일러스트레이션. • 항목과 관련된 추가 읽기를 제공하는 참고문헌. 이 참고 작업은 테네시 대학교 명예 교수이자 볼륨 편집자인 Donald Franceschetti가 작성한 해당 분야에 대한 포괄적인 소개로 시작됩니다. 이 책에는 다음과 같은 유용한 부록이 또 다른 귀중한 자료로 포함되어 있습니다. • 프로그래밍 및 코딩 분야의 발명 및 발전 연대표; • 용어 사전; • 참고문헌; 그리고 • 주제 색인. Salem Press와 Gray House Publishing은 이 작품의 개발과 제작에 참여한 모든 분들께 감사의 마음을 전합니다. 항목은 해당 분야의 전문가가 작성했습니다. 상속인 이름 목록은 편집자의 소개를 따릅니다. 프로그래밍 및 코딩의 원리와 모든 Salem Press 참고 도서는 인쇄본과 전자책으로 제공됩니다. 자세한 내용은 www.salempress.com을 방문하세요.

vii

편집자 소개 프로그램이란 무엇입니까?

프로그램은 여러 개인이나 지능형 기계 중 하나에 의해 수행되도록 고안된 일련의 지침입니다. 육군 훈련병은 간단한 지침을 사용하여 부하들을 통제합니다. 기본 명령의 의미가 이해되면 상사는 부하들을 특정 지역에 제한하거나 20마일 하이킹 동안 행동을 통제할 수 있습니다. 그가 사용하는 명령 세트는 컴퓨터 프로그램의 명령과 유사합니다. 사전 녹음이 가능하므로 인간 프로그래머(또는 훈련병)가 필요하지 않습니다. 대부분 우리는 컴퓨터 프로그램이 디지털 컴퓨터에 제공하는 명령에 관심을 갖습니다. 예를 들어, 프로그램은 여러 명령문을 입력한 다음 이를 알파벳 순서로 출력하는 등 매우 간단할 수도 있고 완료 시점을 결정하는 분기점 및 수렴 기준을 포함하는 훨씬 더 복잡할 수도 있습니다. 컴퓨터 프로그램은 인간 프로그래머와 컴퓨터 모두가 이해할 수 있는 컴퓨터 언어로 작성되어야 합니다. 컴퓨터 언어의 개발은 그 자체로 언어학의 주요 하위 분야, 즉 언어와 문법에 대한 연구입니다. 안내나 간섭 없이 스스로 기능을 수행하도록 고안된 모든 기계를 오토마톤이라고 합니다. 오토마타의 역사는 수세기에 걸쳐 이어집니다. 1802년에 발명된 자카드 직기가 초기 사례였습니다. 직기는 직물의 모든 실 패턴을 재현하도록 프로그래밍할 수 있습니다. 흥미롭게도 직기는 컴퓨터 프로그래밍에 사용되는 펀치 카드의 전신인 일종의 펀치 카드에 의해 제어되었습니다. 다양한 메모 관리 시스템은 인덱스 카드를 기반으로 했으며, 여기서 원하는 카드는 구멍이 모두 제대로 뚫린 카드입니다. 영국의 수리논리학자 앨런 M. 튜링(Alan M. Turing)의 연구 결과로 큰 진전이 이루어졌습니다. 튜링의 주된 관심은 기본적인 산술을 할 수 있는 기계에 있었습니다. Turing은 각 계산을 기본 단계로 나누는 것부터 시작했습니다. Turing이 도입한 일반 프레임워크에는 단일 메모리 위치와 잠재적으로 무한히 긴 테이프가 있는 시스템이 포함됩니다. 그런 다음 튜링 기계는 테이프의 지정된 사각형에서 시작하고 해당 사각형에 쓰여진 기호와 메모리에 저장된 기호에 따라 다음을 수행합니다.

테이프에 쓴 다음 테이프를 한 칸씩 앞뒤로 이동합니다. 산술의 모든 효과적인 절차는 튜링 기계로 구현될 수 있으며, 더 나아가 다른 튜링 기계의 설명을 읽고 이를 에뮬레이션할 수 있는 튜링 기계가 있다는 것이 밝혀졌습니다. 이는 결국 범용 튜링 기계 또는 프로그래밍 가능한 컴퓨터라는 개념으로 이어졌습니다. 이제 대부분의 응용 프로그램에는 범용 Turing 기계가 필요하지 않습니다. 특히 속도나 크기를 고려할 때 다양한 목적에 유용할 축소된 명령어 세트를 절약하고 사용할 수 있습니다. 정보 기술에 대한 폭넓은 관점은 이 분야가 두 센터에서 성장하고 있음을 보여줍니다. 한 센터는 전신과 음성 통신으로 시작하여 텔레비전, 궁극적으로 가상 현실로 이어지는 통신이라는 라벨을 붙일 수 있습니다. 두 번째 센터는 여러 세대의 컴퓨터를 포함하는 계산입니다. 시간이 지남에 따라 두 개의 "센터"가 합쳐졌습니다. 예를 들어 현대 휴대폰을 생각해 보십시오. 전자 메일이나 카메라, 컴퓨터 터미널로 사용할 수 있습니다. 하나의 장치에 기능을 결합하려는 이러한 경향은 대부분의 정보 기술 발전의 특징입니다. 항상 특화된 응용이 존재하겠지만 추세는 분명 더 일반화되는 방향으로 가고 있습니다.

코딩이란 무엇입니까?

인간이 컴퓨터가 실행할 수 있는 작업을 고안하려면 인간 프로그래머와 컴퓨팅 기계 모두가 이해할 수 있는 공통 언어가 있어야 합니다. 컴퓨터 과학의 역사는 공통 언어를 찾는 것에서 시작됩니다. 이제 인간은 이미 수많은 간단한 코드에 익숙합니다. 전자공학도가 특정 저항을 가진 저항기를 식별하는 색상 코드가 바로 그러한 코드입니다. 통신에 사용하기 위해 다양한 알파벳 코드가 개발되었습니다. 전신기사가 사용하는 모스 부호는 해상 통신에 사용되는 신호기 부호와 마찬가지로 주목할만한 예입니다. 통신을 더 빠르고 안정적으로 만들기 위해 패리티 비트와 같은 다양한 장치가 코드에 추가됩니다. 코더의 눈으로 자연을 보면 코딩이 ix단계에서 진화했다는 것을 알 수 있습니다.

편집자 소개

상황. 생물학의 근본적인 질문 중 하나는 “자손은 왜 부모를 닮는가”입니다. 전송 수단은 사실상 모든 유기체가 DNA 염기의 세 쌍의 순서로 필수 단백질에 대한 설명을 저장하는 유전 코드입니다. 기본 주제의 변형을 통해 면역 반응, 돌연변이 및 기타 여러 생물학적 현상을 설명할 수 있습니다. 코딩은 시간의 차원에서도 일어날 수 있다. 감각이 인코딩된 메시지는 다양한 수단으로 샘플링될 수 있습니다. 신경계는 신체의 한 부분에서 다른 부분으로 메시지를 전달합니다. 동물계에서도 코딩이 사용되는 것도 분명합니다. 꿀벌이 먹이의 위치를 ​​전달하기 위해 사용하는 코드는 아마도 곤충 세계에서 가장 잘 알려진 코딩 예일 것입니다.

컴퓨터 진화의 개요

컴퓨터의 미래 발전을 예측하는 것은 어렵습니다. 물리학은 갈릴레오와 뉴턴 시대부터 존재해 왔습니다. 전기 공학은 트랜지스터가 도입된 이후로 눈에 띄게 성장했지만 100년이 훨씬 넘었습니다. 컴퓨터 사용의 발전이 해당 분야와 그 성장에 기하급수적인 영향을 미치면서 계산 과학은 훨씬 더 빠르게 성장했습니다. 컴퓨터 과학의 하위 분야는 끊임없이 변화하고 있습니다. 다음은 컴퓨터 진화와 그것이 컴퓨터 과학에 미치는 영향에 대해 일반적으로 받아들여지는 견해입니다. 컴퓨터 설계자들은 전자 컴퓨터가 4세대의 개발을 거쳐 이제 5세대 개발을 시작하고 있다는 데 일반적으로 동의합니다. 진공관 회로는 구식이지만 대부분의 경우 전자 계산의 기본 원리는 1세대 전자 컴퓨터 시대에 확립되었습니다. 이 컴퓨터의 단점은 잘 알려져 있었습니다. 그들은 수명이 제한되어 있고 고장이 나는 것으로 알려진 진공관에 의존했습니다. 신뢰할 수 있는 솔루션을 얻으려면 컴퓨터에 있는 모든 튜브의 기능적 건전성을 테스트하는 예비 프로그램을 관심 프로그램 전후에 실행하여 튜브가 타지 않았는지 확인해야 했습니다. 진공관의 본질적인 가변성을 고려하기 위한 계산 방식이 개발되었습니다. 진공관 작업의 본질적인 어려움 외에도 컴퓨터 자체는 상대적으로 크고 많은 양의 열을 발생시켰습니다.

프로그래밍 및 코딩의 원리

컴퓨터를 수용하는 일과 컴퓨터에서 발생하는 낭비되는 열을 방출하는 일도 극복하기 어려워졌습니다. 1947년 트랜지스터의 발명은 약 10년 후에 2세대 전자 컴퓨터를 탄생시켰습니다. 트랜지스터 회로는 진공관보다 훨씬 더 작고 에너지 효율적이었습니다. 그들의 특성도 훨씬 더 균일해졌습니다. 최초의 컴파일러는 이 시기로 거슬러 올라가 지루한 기계어 프로그래밍이 필요하지 않게 되었습니다. FORTRAN(공식 번역)은 1954년 IBM의 Jim Backus가 발명했습니다. Fortran을 사용하면 과학자들이 기계 언어의 신비를 이해하지 않고도 공식을 사용하여 계산을 수행할 수 있습니다. 미 해군 장교인 그레이스 호퍼는 1958년에 COBOL(Common Business Oriented Language)이라는 언어를 개발했습니다. 참고로 해군 소장으로 현역에서 은퇴한 그레이스 호퍼의 경력은 컴퓨터를 좋아하는 소년들과 아이들에게 영감을 줍니다. 여자애들도 마찬가지야. 1964년부터 1971년까지 지속된 것으로 간주되는 3세대는 집적 회로를 기반으로 했습니다. 이것은 IBM 360, 370과 같은 대형 메인프레임 컴퓨터와 그 대응 제품의 시대였습니다. 이 기간 동안 BASIC(Beginners' All-Purpose Symbolic Instruction Code)과 같은 새로운 언어가 개발되었으며 C 언어도 여러 버전으로 개발되었습니다. 이 세대의 컴퓨터는 많은 주변 장치의 작업을 지원할 수 있는 단일 중앙 처리 장치를 갖춘 시분할 기능을 갖추고 있습니다. 초기 인공지능 연구에 널리 사용되었던 목록 처리 언어인 LISP도 이 시기에 탄생했다. 4세대(1972~2010)는 현재 모든 컴퓨터에 널리 사용되는 마이크로프로세서를 기반으로 합니다. 이 발전은 개인용 컴퓨터의 시작을 의미했습니다. 매우 빠르고 컴팩트한 슈퍼 컴퓨터에 대한 필요성은 여전히 ​​남아 있지만, 개인용 컴퓨터의 개발은 컴퓨팅 전반에 큰 영향을 미쳤습니다. 개인용 컴퓨터의 기반이 되는 반도체 칩에는 재료 과학의 몇 가지 발전이 필요했습니다. 결정 성장에 대한 더 나은 이해; 이온 주입; 에피택시; 그리고 포토리소그래피. 소유자가 필요하지 않을 때 마이크로컴퓨터는 네트워크로 연결되어 외계 지능 검색이나 단백질 접힘의 보다 실용적인 모델링과 같은 난해한 작업에 참여할 수 있습니다. 아마추어도 이제 몇 백 달러만 내면 작동하는 컴퓨터를 조립할 수 있지만,

프로그래밍 및 코딩의 원리

핵심 구성 요소는 칩 제조업체에 의존했습니다. 이제 실리콘 칩을 대량 생산할 수 있는 고진공 및 초청정 시설을 갖춘 제조업체는 거의 없습니다. 이 시점에서 모든 물리적 문제에 폐쇄형으로 기록될 수 있는 해결책이 있는 것은 아니라는 점을 지적하는 것이 중요합니다. 실제로 대다수는 그렇지 않습니다. Mathematica 패키지 개발의 길잡이 중 한 명인 Stephen Wolfram이 지적했듯이 컴퓨터 시뮬레이션은 원칙적으로 가장 복잡한 시스템에서도 가능합니다. 기본 법칙을 로컬 형식으로 작성하고 작은 시간 증분으로 업데이트하면 가장 복잡한 시스템도 수치적으로 시뮬레이션할 수 있습니다. 흥미로운 부작용은 혼돈 이론의 발전이었습니다. 많은 수학적 절차가 초기 조건에 매우 민감하다는 것이 밝혀졌습니다. 컴퓨터 그래픽의 발전으로 많은 특별한 수학적 집합을 설명할 수 있게 되었습니다. 프랙탈 기하학과 만델브로 집합은 컴퓨터 관련 개념으로 대중화되었습니다. 5세대는 진정한 인공지능의 도래를 예고하고 있다. 이 분야에서 눈에 띄는 기업은 IBM과 일본의 여러 반도체 제조업체로, 이들의 조직 및 정부-산업 협력 방식은 서유럽과 북미의 전통적인 경제에 새로운 방식입니다. 마이크로컴퓨터 편승이 매우 느렸던 IBM이 왓슨 슈퍼컴퓨터로 다시 선두 자리를 확고히 한 점은 주목할 만하다. 초기 출시 후 Watson은 TV 게임 Jeopardy를 플레이하면서 인간 상대와 맞붙었습니다. 실수로부터 배울 수 있는 기계인 왓슨(Watson)이 그 위력을 입증했고, 그 기계는 전 세계 암 문헌에 등장했습니다. 다양한 유망한 새로운 치료법은 해당 분야의 Watson의 연구에서 유래되었습니다.

이 책에서 무엇을 찾을 수 있습니까?

이 책은 코딩과 프로그래밍의 다양한 측면에 관한 140개 이상의 기사를 제공합니다. 기사의 범위는 엄격하게 기술적인 내용부터 인간 심리학에 대한 일반적인 내용까지 다양합니다. 모두가 논란에서 자유로운 것은 아니다. 모든 기사를 읽는 것도 컴퓨터 과학 분야의 전문가가 될 수는 없습니다. 그럼에도 불구하고, 기사는 빠르게 변화하는 인간 노력 분야의 현재 상태에 대한 스냅샷을 제공합니다. 이 분야는 너무 빠르게 변화하여 똑똑한 고등학생의 기여가 박사 학위의 기여보다 더 큰 영향을 미칠 수 있습니다. 실제로 성공한 많은 직장인들은

편집자 소개

이 분야에서는 모든 젊은 에너지를 이 분야에 바칠 수 있도록 정규 교육을 중단했습니다. 독자에게 할 수 있는 유일한 약속은 변화가 일어나고 있으며 혁신의 속도가 느려지지 않는다는 것입니다.

행동과학과 심리학의 역할

코더는 작업 환경, 과거에 수행된 작업, 프로젝트에 소요된 시간과 즉각적인 솔루션 요구 사항을 충족하는 데 필요한 시간 사이의 명백한 균형에 주의를 기울여야 합니까? 주어진 프로젝트에 참여하는 코더는 경쟁자에게 이점을 양보하지 않으면서 사용할 컴퓨터 언어와 기존 프로그램이 충분히 잘 작동하는지 여부를 결정해야 합니다. 저작권 및 독점 정보(영업 비밀)는 보호가 필요할 수 있습니다. 폭포수 개발 또는 "나쁠수록 좋다" 방법론에 관한 기사에서는 다양한 프로그램 작성 접근 방식에 대한 조사를 제공합니다. 심리적 요인의 개입을 과소평가해서는 안 됩니다. 한동안 튜링 테스트를 통과할 수 있는 짧은 프로그램의 몇 가지 고전적인 예에 ​​대한 이야기가 있지만 지능으로 간주될 수 있는 모든 것을 표시하는 프로그램을 작성하는 것은 또 다른 문제입니다. 현재 수많은 프로그램이 전반적으로 지능적인 행동을 시도하는 것이 아니라 인간 수행의 한 측면만 취하고 확장된 검색, 통신 또는 추론을 위해 컴퓨터의 용량을 사용하여 인간이 문제를 일으키는 제한 없이 작업을 수행합니다. 중요한 공개 질문은 컴퓨터가 자연에서 발견되는 정보 처리를 어느 정도 모방해야 하는가입니다. 신경망과 같은 고도로 분산된 프로세서를 위한 컴퓨터 코드를 작성해야 할까요, 아니면 독립성을 측정하기 위해 난수 생성을 사용하는 보다 결정적인 컴퓨터를 위한 컴퓨터 코드를 작성해야 할까요? 생물학적 진화와 유사한 과정을 통해 시험 솔루션을 반복적으로 수정하는 유전 알고리즘은 계산에 대한 "생물학적" 접근 방식의 한 예일 뿐입니다.

경제적 전환

가장 중요한 변화 중 하나는 새로운 발전으로 이어질 연구 비용을 누가 지불할 것인가의 문제입니다. 역사에 대한 인식이 없다면 연구를 위한 정부 자금의 삭감에 놀랄 수도 있습니다. 현재 상황은 주로 제2차 세계대전과 핵무기 경쟁의 산물입니다. 실제로 20세기 역사에는 다음과 같은 내용이 있을 수 있습니다.

편집자 소개

프로그래밍 및 코딩의 원리

알버트 아인슈타인이 지금은 유명한 전보를 프랭클린 루즈벨트 대통령에게 보냈고 미군은 카리스마 넘치는 지도자인 J. 로버트 오펜하이머 박사를 찾아 대규모이지만 비밀 작전을 지휘하게 했다면 결과는 달라졌습니다. 흥미롭게도 앨런 튜링은 동시에 영국 정부를 위해 전쟁 연구에 적극적으로 참여하여 독일의 에니그마 코드를 해독하려고 했습니다. Turing과 Oppenheimer는 둘 다 당시 보안 관리들에게 다소 의심을 받았고 그들의 지위를 유지하려면 고위직에 있는 친구가 필요했습니다. 오늘날 주요 인물은 아마도 빌 게이츠와 스티브 잡스(공개적으로 오펜하이머를 롤모델로 인정한 사람)일 것이며, 가장 치열한 전투는 재래식 무기나 핵무기를 사용하는 것이 아니라 주식 시장 지수에서 벌어지고 있습니다. 허블망원경과 같은 경이로운 연구를 지원하는 것이 미국 정부의 역할이고, 인간 게놈 프로젝트도 부인할 수 없지만, 연구의 상당 부분이 민간 기업에 의해 이루어졌다는 점은 주목할 만하다. 더 이상 노벨상이 학자나 국가 연구 센터의 구성원에게 수여된다는 것이 확실하지 않습니다. 2003년 노벨상은 DNA 지문 채취와 인간 게놈 프로젝트의 필수 도구인 중합효소 연쇄반응에 대한 연구로 Cetus Corporation의 Kary Mullis에게 수여되었습니다. 우주 탐사와 같이 전통적으로 정부 계획에 맡겨져 있던 분야에서도 민간 기업과 정부 산업계 협력이 점점 더 많은 역할을 하고 있음을 알 수 있습니다.

사용 가능한 메모리가 시스템에 적합하도록 언어가 필요합니다.

인터넷

컴퓨터 게임

우편물의 이동 속도를 향상시키는 것은 전신 발명 이후 통신 기술의 목표였습니다. 첫 번째 발전은 두 장소 사이에 유선 연결이 있으면 전신으로 통신할 수 있다는 것을 의미했습니다. 다음 단계는 음성을 전달하는 것이었고, 이어서 전화가 발명되었습니다. 그 다음에는 무선 전송의 발견이 이루어졌고, 그로부터 20년 이내에 텔레비전이 뒤따랐습니다. 이미지 전송은 팩시밀리를 통해 가능해졌습니다. 이제 프로세스는 매우 저렴하며 사람들은 Skype 또는 유사한 그룹 회의 소프트웨어를 사용하여 장거리, 심지어 전 세계에서도 "대면"으로 만날 수 있습니다. 인터넷은 휴대용 휴대폰 및 기타 소형 휴대용 장치에서 접속할 수 있기 때문에 마이크로컴퓨터의 필요성을 어느 정도 대체했습니다. 더 작은 휴대용 장치로 다양한 컴퓨터 xii

생물학을 따르다

이제 컴퓨터를 사용하여 정신 과정을 모델링하는 데 상당한 노력이 투입됩니다. 1943년 일리노이 대학교 정신의학과의 워렌 맥컬로크(Warren McCulloch)는 Bulletin of Mathematical Biophysics에 "신경 활동에 내재된 아이디어의 논리적 계산법"이라는 제목의 기사를 게재했습니다. 이 논문에서는 기본 논리 기능이 임계값을 사용하여 개별 신경 세포로 모델링될 수 있다고 제안했습니다. 이것이 실제로 뇌에서 무슨 일이 일어나는지 이해하려는 노력의 시작이었습니다. 물론 신경 과정에는 많은 실제 뉴런이 포함되며 최초의 신경망은 지나치게 단순화되었지만 이 분야에 대한 조사는 계속되고 있습니다.

인간 심리학, 지각 및 감각 물리학

정신물리학(Psychophysics) 인간 감각의 물리학을 설명하는 데 사용되는 용어로, Ernst Mach가 약 100년 전에 시작한 분야입니다. 컴퓨터의 시각적 또는 음향 출력의 모든 속성은 그에 상응하는 인간의 감각을 가지고 있습니다. 따라서 주파수, 진폭 및 조화 혼합은 우리가 인식하는 소리의 감각을 음조, 크기 및 음색으로 설명하는 반면, 시각에는 훨씬 더 복잡한 설명이 필요합니다. 화학적 감각(맛과 냄새)도 컴퓨터 분석의 대상입니다. 마지막으로 컴퓨터 게임과 대체 현실의 문제가 있습니다. 개인용 컴퓨터의 출현으로 아케이드가 팩맨(Pac Man), 탁구(Ping Pong)와 같은 비디오 게임과 함께 집 안으로 들어오게 되었지만, 게임 디자이너들은 약간 나이가 많은 플레이어들에게 어필할 수 있는 물리학과 유사한 시뮬레이션에 관심을 가졌습니다. 우주 비행에 대한 정확한 시뮬레이션은 흥미진진한 게임을 만들기에는 너무 느렸지만, 수많은 대략적인 계산 체계를 통해 컴퓨터 화면에서 믿을 만한 결과를 볼 수 있었습니다. 이제 점점 더 현실적인 시뮬레이션이 우주 비행사 훈련에 포함됩니다. 게임의 최전선은 현실적인 시뮬레이션과 순수한 환상을 모두 담당하는 재능 있는 프로그래머를 끌어모았으며 다음 발전을 기다리는 수많은 팬을 확보했습니다. ——Donald R. Franceschetti, PhD

프로그래밍 및 코딩의 원리

추가 자료:

다이슨, 조지. 튜링 대성당: 디지털 우주의 기원. 런던: 펭귄북스, 2013. 인쇄. 파이겐바움, 에드워드 앨버트, 줄리안 펠드먼. 컴퓨터와 생각. AAAI Press, 1995. 프랭클린, 스탠. 인공 정신. MIT Press, 2001. 칸, 자와드. “5세대 컴퓨터.” 바이트노트 | 컴퓨터 과학 학습 플랫폼, 8월 31일

편집자 소개

2013년, www.byte-notes.com/five- Generations-computers. Whitson, GM “인공 지능.” 응용 과학, Donald R. Franceschetti 편집, Salem Press, EBSCO 정보 서비스 부문, Inc., 2012년, pp. 121-127. 윈스턴, 패트릭 H. 인공 지능. 독서, 매사추세츠 애디슨-웨슬리, 1999. 인쇄.

xiii

기여자

앤드루 파렐, MLIS

매사추세츠주 레온 제임스 바이넘

Andrew Hoelscher, MEng

리사 U. 필립스, MFA

린제이 롤랜드

루크 E. A. 록하트

셀레스트 코딩턴-라세르테

마리암 오르코다시빌리(Mariam Orkodashvili) 박사

매사추세츠주 크리스토퍼 레이거

Marjee Chmiel, MA, PhD

다니엘 호로비츠

메리 우드버리 후퍼

Daniel L. Berek, MA, MAT

마우라 발렌티노, MSLIS

Elizabeth Rholetter Purdy, MA, PhD

마우라 발렌티노, MSLIS

Gavin D. J. Harper, 석사, MIET

멜빈 오

매사추세츠주 히타프 R. 케이디

미카 L. 식스

매사추세츠주 이사야 플레어

Mitzi P. Trahan, MA, PhD

Jennifer A. Vadeboncoeur, MA, PhD

Narissa Maria Punyanunt-Carter, MA, PhD

제리 존슨

패트리샤 호프만-밀러, MPA, PhD

조엘 크리스토펠

란다 탄타위 박사

다니엘 쇼월터 박사

리처드 드 보

존 마크 프로일랜드(John Mark Froiland) 박사

로버트 N. 스테이시, CSS, MA

존 바인스

로버트 N. 스테이시, 매사추세츠

존 월시 박사

Sarah E. Boslaugh, PhD, MPH

조셉 듀이 박사

스콧 짐머, JD

조슈아 밀러

샤리 파슨스 밀러, 매사추세츠

조이 크렐린

스티븐 밀러

줄리아 길스타인

Susan R. Adams, MA, PhD

켈리 코비엘로

테레사 E. 슈미트

켄릭 베지나, MS

Trevor Cunnington, MA, PhD

매사추세츠주 로라 L. 런딘

xv

3D 프린팅 연구 분야 컴퓨터 과학; 디지털 미디어 개요 AM(적층 가공) 또는 3D 프린팅은 플라스틱, 종이, 유리 또는 금속 층으로 3차원 물체를 제작하기 위한 여러 자동화 프로세스로 구성됩니다. AM은 강력하고 가벼운 3D 객체를 빠르고 효율적으로 생성합니다. 주요 용어 바인더 분사: 액체 결합제를 사용하여 분말 층을 융합하는 것입니다. 지향성 에너지 증착: 와이어 또는 분말 재료를 물체에 증착한 다음 레이저, 전자 빔 또는 플라즈마 아크를 사용하여 녹이는 프로세스입니다. 재료 압출: 가열된 필라멘트가 노즐을 통해 압출되어 일반적으로 제거 가능한 지지대 주위에 층으로 증착되는 프로세스입니다. 재료 분사: 액체 감광중합체 방울이 프린터 헤드를 통해 침전되고 가열되어 건조하고 안정적인 고체를 형성하는 프로세스입니다. 파우더 베드 융합: 이동 가능한 파우더 베드에서 레이저를 사용하여 파우더 재료 층을 가열합니다. 시트 적층: 얇은 층의 재료 시트를 접착하거나 융합한 다음 절단 도구나 레이저를 사용하여 여분의 재료를 제거하는 프로세스입니다. 통 광중합: 레이저가 통 안의 감광성 물질 층을 경화시키는 과정입니다.

AM(적층 가공)이라고도 불리는 적층 제조 3D 프린팅은 플랫폼에 재료의 연속적인 레이어를 추가하여 3차원 물체를 제작합니다. AM은 기존의 절삭 가공 제조와 다릅니다.

가공이라고도 합니다. 기계 가공에서는 원하는 구조가 남을 때까지 시작 샘플에서 재료가 제거됩니다. 대부분의 AM 공정은 원자재를 덜 사용하므로 가공보다 낭비가 적습니다. 최초의 AM 공정은 1980년대에 자외선(UV)으로 경화된 액상 수지를 사용하여 개발되었습니다. 2000년대에는 다양한 AM 공정이 개발되었습니다. 이러한 공정의 대부분은 액체, 분말 또는 압출 기술을 사용합니다. AM은 복잡한 컴퓨터 모델링 및 로봇 공학과 결합하여 제조 분야의 새로운 시대를 열 수 있습니다. 곧 복잡한 기계 물체도 AM을 통해 생성될 수 있게 되었습니다.

소프트웨어 및 모델링 3D 프린팅은 CAD(컴퓨터 지원 설계) 도면 또는 물체의 3D 스캔으로 시작됩니다. 이러한 도면이나 스캔은 일반적으로 STL이라는 디지털 파일 형식으로 저장됩니다. STL은 원래 "스테레오리소그래피"의 약자이지만 이후 "표면 테셀레이션 언어"와 같은 다른 의미가 부여되었습니다. STL 파일은 개체를 "테셀레이션"합니다. 즉, 반복되는 모양 패턴으로 표면을 덮습니다. 모든 모양을 사용할 수 있지만 STL 파일은 일련의 겹치지 않는 삼각형을 사용하여 3D 개체의 곡선과 각도를 모델링합니다. 파일의 오류는 복구가 필요할 수 있습니다. STL 파일의 "슬라이스"는 필요한 재료 레이어의 수와 두께를 결정합니다. 액체 3D 프린팅 최초의 AM 기술은 Chuck Hull이 1986년에 특허를 낸 SLA(Stereolithography)였습니다. SLA는 UV 광선으로 경화된 액체 수지 또는 폴리머를 사용하여 3D 물체를 만듭니다. 기본 SLA 프린터는 감광성 액체 폴리머로 채워진 탱크에 매달린 엘리베이터 플랫폼으로 구성됩니다. UV 레이저는 얇은 수지층을 경화시킵니다. 플랫폼이 낮아지고 레이저가 다음 층을 경화시켜 첫 번째 층과 융합시킵니다. 이 과정은 객체가 완성될 때까지 반복됩니다. 1

프로그래밍 및 코딩의 원리

3D 프린팅

FDM 프로세스

SLA 공정 액화기 헤드(x 및 y 방향으로 이동) 압출 노즐 폼 슬래브

지원

스캐닝 시스템

리코터 블레이드

플랫폼 구축(z 방향으로 이동)

지원 재료 스풀 빌드 재료 스풀

레이저

지원

액상 광중합체 수지 플랫폼

SLS 프로세스 스캐닝 시스템

CO2 레이저

질소 분위기를 갖춘 온도 조절식 빌드 챔버 파우더 레벨링 롤러

분말사료

빌드 피스톤의 파우더 베드

과도한 분말 흡수

이는 세 가지 일반적인 3-D 프린팅 프로세스인 SLA(액체 고분자 수지가 레이저로 고형화되고 완료 후 지지 재료가 제거됨), SLS(분말이 CO2 레이저로 융합되고 융합되지 않은 분말이 작용함)를 비교한 것입니다. 서포트로서) 및 FDM(액상 모델링 재료가 압출 노즐을 통해 압출되어 빠르게 응고되며 빌드 재료와 서포트 재료를 함께 사용할 수 있으며 완성 후 서포트 재료는 제거됨)이 있습니다.

2

프로그래밍 및 코딩의 원리

그런 다음 물체를 청소하고 UV로 경화시킵니다. 이 AM 기술은 액체 수지 통 내에서 발생하기 때문에 배트 광중합이라고도 합니다. 다양한 유형의 SLA 인쇄 프로세스에는 "사진 가공" 및 "사진 응고"와 같은 대체 이름이 지정되었습니다.

분말 기반 3D 프린팅 1980년대 텍사스 대학의 엔지니어들은 액체 대신 분말 고체를 사용하는 대체 프로세스를 만들었습니다. 선택적 층 소결(SLS) 또는 분말 베드 융합은 재료가 "소결"될 때까지 분말 유리, 금속, 세라믹 또는 플라스틱을 분말 베드에서 가열합니다. 무언가를 소결한다는 것은 그것을 액화시키지 않고 열이나 압력을 통해 입자를 융합시키는 것입니다. 레이저는 분말의 얇은 층을 선택적으로 소결하는 데 사용되며, 융합되지 않은 분말은 그 아래에 구조적 지지를 제공합니다. 레이저가 물체 위를 다시 통과하면서 플랫폼이 낮아지고 분말이 압축됩니다. 압출 인쇄 재료 압출 인쇄는 플라스틱 또는 폴리머 필라멘트를 가열하고 이를 노즐을 통해 압출하여 플랫폼에 재료 층을 증착합니다. 이 프로세스의 한 가지 예를 FDM(융합 증착 모델링)이라고 합니다. 재료가 냉각되면 플랫폼이 낮아지고 마지막 레이어 위에 다른 레이어가 추가됩니다. 돌출된 모델을 생성하려면 객체가 붕괴되는 것을 방지하기 위해 구조적 지지대를 사용해야 하는 경우가 많습니다. 압출 프린팅은 가장 저렴하고 일반적으로 사용 가능한 3D 프린팅 프로세스입니다. 신흥 및 대체 방법 몇 가지 다른 3D 프린팅 방법도 등장하고 있습니다. 재료 분사에서 잉크젯 프린터 헤드는 액화 플라스틱 또는 기타 감광성 재료를 표면에 증착한 다음 UV 광선으로 경화시킵니다. 또 다른 잉크젯 인쇄 기술은 잉크젯 프린터 헤드를 사용하여 접착제 같은 액체 방울을 분말 매체에 증착하는 바인더 분사입니다. 그런 다음 액체가 매체에 스며들어 고체화됩니다. 지향성 에너지 증착(DED)에서는 금속 와이어나 분말이 레이저나 기타 열원으로 녹기 전에 지지체 위에 얇은 층으로 증착됩니다. 시트 라미네이션은 얇은 종이 시트를 융합하여,

3D 프린팅

금속 또는 접착제가 있는 플라스틱. 그런 다음 결과물을 레이저나 기타 절단 도구로 절단하여 모양을 다듬습니다. 이 방법은 다른 방법보다 비용이 적게 들지만 정확도도 떨어집니다.

3D 프린팅의 미래 AM 기술은 1980년대부터 사용되어 왔지만 엔지니어들은 이 기술이 아직 완전한 잠재력에 도달하지 못했다고 믿습니다. 주요 용도는 3D 프린터를 사용하여 생산 안내에 사용할 수 있는 3D 모델을 신속하게 생성하는 신속한 프로토타이핑이었습니다. 많은 경우, 3D 프린팅은 기계로 만든 물체보다 더 강하고, 더 가벼우며, 더 맞춤화된 물체를 만들 수 있습니다. 인쇄된 부품은 이미 비행기, 경주용 자동차, 의료용 임플란트, 치아 크라운 등의 제품에 사용되고 있습니다. AM은 절삭 가공보다 재료 낭비가 훨씬 적기 때문에 보존, 폐기물 관리 및 비용 절감 측면에서 중요합니다. 소규모 3D 프린터를 사용하면 개인과 중소기업이 전통적으로 산업 제조 시설이 필요한 제품을 만들 수 있으므로 이 기술은 제조를 민주화할 수도 있습니다. 그러나 AM 사용이 더욱 광범위해짐에 따라 지적재산권 분쟁이 더 자주 발생할 수도 있습니다. —Micah L. Issitt 참고문헌 "적층 가공 정보." 적층 제조 연구 그룹. 러프버러 대학교, 2015. 웹. 2016년 1월 6일. 허친슨, 리. "가정용 3D 프린터는 우리를 다른 차원으로의 놀라운 여행으로 안내합니다." 아르스 테크니카. Condé Nast, 2013년 8월 27일. 웹. 2016년 1월 6일. "지식 기반: 3D 프린팅 기술." 디자인테크. DesignTech Systems, n.d. 편물. 2016년 1월 6일. 레베카 마툴카. “3D 프린터의 작동 원리.” 에너지. 정부 에너지부, 2014년 6월 19일. 웹. 2016년 1월 6일. “인쇄된 세계.” 경제학자. 이코노미스트 신문, 2011년 2월 10일. 웹. 2016년 1월 6일. "3D 프린팅 프로세스: 무료 초보자 가이드." 3D 프린팅 산업. 3D 프린팅 산업, 2015. 웹. 2016년 1월 6일.

알고리즘 연구 분야 컴퓨터 과학; 운영체제; 소프트웨어 엔지니어링 개요 알고리즘은 올바른 순서로 실행될 때 특정 문제에 대한 해결책을 제공하는 정확하고 계산 가능한 명령 세트입니다. 알고리즘은 수학과 공학에서 널리 사용되며, 알고리즘의 설계를 이해하는 것은 컴퓨터 과학의 기본입니다. 주요 용어 결정론적 알고리즘: 입력이 주어졌을 때 항상 동일한 출력을 생성하는 알고리즘입니다. 분산 알고리즘: 여러 처리 센터에서 실행되도록 설계된 알고리즘으로, 여러 컴퓨터 시스템 간에 집중된 작업을 지시할 수 있습니다. DRAKON 차트: 알고리즘을 모델링하고 하이브리드 DRAKON 컴퓨터 언어로 프로그래밍하는 데 사용되는 순서도입니다. 기능: 특정 이벤트나 작업을 실행하기 위해 컴퓨터 프로세서가 읽는 명령입니다. 재귀적: 중심 문제의 여러 작은 인스턴스를 해결하는 것과 관련된 문제 해결 방법을 설명합니다. 상태: 프로그램이나 회로가 주어진 시간에 액세스할 수 있는 저장된 모든 정보와 그 구성에 대한 기술 용어입니다.

고대 아이디어 "알고리즘"이라는 용어는 alKhwarizmi라는 이름에서 파생되었습니다. 무함마드 이븐 무사 알콰리즈미(Muhammad ibn Musa al-Khwarizmi)는 9세기 페르시아 수학자였으며 서양에 십진법을 도입한 것으로 알려져 있습니다. 그 4

수학과 개념적 문제 해결의 선구자로 전 세계적으로 기념되어 왔습니다. "알고리즘"에는 정확한 정의가 없습니다. 대체로 문제 해결을 위해 특정 순서로 배열되고 특정 언어로 설명된 유한한 지침 세트를 의미합니다. 즉, 알고리즘은 사람이나 기계에게 주어진 작업을 완료하기 위해 수행해야 할 단계를 알려주는 계획이나 지도와 같습니다.

알고리즘 기초 컴퓨터 과학에서 알고리즘은 데이터 정렬, 계산 또는 찾기와 같은 특정 기능을 수행하도록 컴퓨터에 지시하는 일련의 명령입니다. 지침의 각 단계를 통해 컴퓨터는 원하는 최종 상태에 도달할 때까지 한 상태에서 다른 상태로 전환됩니다. 특정 입력 세트(데이터 목록, 숫자, 정보 등)를 취하고 원하는 목표(특정 데이터 찾기, 목록 정렬 등)에 도달하는 모든 절차는 알고리즘입니다. 그러나 모든 알고리즘이 동일한 것은 아닙니다. 알고리즘은 코딩의 단순성을 측정하는 "우아함"으로 평가될 수 있습니다. 우아한 알고리즘은 완료하는 데 최소한의 단계가 필요한 알고리즘입니다. 알고리즘은 알고리즘이 완료되는 속도를 측정하는 "양호함"이라는 측면에서 평가될 수도 있습니다. 알고리즘은 여러 가지 방법으로 설명될 수 있습니다. 순서도는 알고리즘 단계를 시각화하고 매핑하는 데 자주 사용됩니다. 1980년대에 개발된 DRAKON 컴퓨터 언어를 사용하면 사용자는 각 알고리즘의 단계를 보여주는 순서도를 만들어 컴퓨터에 알고리즘을 프로그래밍할 수 있습니다. 이러한 순서도를 DRAKON 차트라고도 합니다. 알고리즘은 특정 조건이 충족된 경우에만 발생하는 조건부 프로세스를 지정하는 경우가 많습니다. 예를 들어, 점심을 먹는 것에 대한 알고리즘은 "배고프세요?"라는 질문으로 시작할 수 있습니다.

프로그래밍 및 코딩의 원리

대답이 "예"이면 알고리즘은 사용자에게 샌드위치를 ​​먹도록 지시합니다. 그런 다음 사용자가 배고픈지 다시 묻습니다. 대답이 여전히 '예'이면 "샌드위치 먹기" 지시가 반복됩니다. 대답이 "아니요"이면 알고리즘은 사용자에게 샌드위치 섭취를 중단하도록 지시합니다. 이 예에서 알고리즘은 "배고프지 않음"이라는 조건에 도달할 때까지 "샌드위치 먹기" 단계를 반복하며, 이 시점에서 알고리즘이 종료됩니다.

알고리즘 유형 다양한 유형의 알고리즘은 문제를 해결하기 위해 서로 다른 접근 방식을 취합니다. 반복 알고리즘은 원하는 결과를 얻을 때까지 동일한 단계를 동일한 방식으로 반복하는 간단한 형태의 알고리즘입니다. 재귀 알고리즘은 동일한 문제의 더 작은 인스턴스를 완료하여 문제를 해결하려고 시도합니다. 재귀 알고리즘의 한 가지 예는 "분할 정복" 알고리즘입니다. 이 유형의 알고리즘은 동일한 문제의 덜 복잡한 예를 해결한 다음 결과를 결합하여 올바른 솔루션을 추정함으로써 복잡한 문제를 해결합니다. 알고리즘은 직렬화될 수도 있습니다. 즉, 알고리즘은 특정 순서에 따라 한 번에 하나의 명령을 실행하도록 컴퓨터에 지시합니다. 다른 유형의 알고리즘에서는 특정 명령이 동시에 실행되도록 지정할 수 있습니다. 분산 알고리즘이 이러한 유형의 예입니다. 알고리즘의 다양한 부분은 여러 컴퓨터나 노드에서 동시에 실행된 다음 결합됩니다. 알고리즘은 미리 결정된 단일 출력을 가질 수도 있고 입력 이외의 요인에 따라 출력이 달라질 수도 있습니다. 결정론적 알고리즘은 문제에 대한 답을 찾기 위해 모든 단계에서 정확하고 구체적인 계산을 사용합니다. 결정론적 알고리즘을 실행하는 컴퓨터는 항상 동일한 상태 시퀀스를 통해 진행됩니다. 비결정적 알고리즘은 프로세스의 특정 단계에서 무작위 데이터 또는 "추측"을 통합합니다. 이를 통해 이러한 알고리즘을 예측 또는 모델링 도구로 사용하여 특정 데이터가 부족한 문제를 조사할 수 있습니다. 예를 들어, 컴퓨터 생물학에서는 진화 알고리즘을 사용하여 인구 수준, 번식률 및 기타 환경적 압력을 추정하여 시간이 지남에 따라 인구가 어떻게 변할지 예측할 수 있습니다. 알고리즘 응용 알고리즘의 가장 유명한 응용 중 하나는 다음을 찾는 데 사용되는 "검색" 프로그램을 만드는 것입니다.

알고리즘

램프가 작동하지 않습니다

램프가 연결되어 있나요?

아니요

램프를 연결하세요

전구가 다 타버렸나요?

전구를 교체하세요

아니오 새 램프를 구입하십시오. 알고리즘은 문제를 해결하거나 데이터를 처리하기 위한 일련의 작업 또는 절차입니다. 순서도는 종종 프로세스의 시각화로 사용되어 단계가 수행되는 순서를 보여줍니다.

인터넷 정보. Google 검색 엔진은 방대한 양의 데이터를 검색하고 다양한 사용자에 대해 특정 순서로 수백만 개의 검색 결과 순위를 지정할 수 있습니다. 대규모 데이터 목록을 정렬하는 것은 컴퓨터 과학자들이 알고리즘을 사용하여 해결하려고 시도한 가장 초기의 문제 중 하나였습니다. 1960년대에는 퀵소트 알고리즘이 가장 성공적인 정렬 알고리즘이었습니다. 목록에서 임의의 요소를 "피벗"으로 사용하여 퀵 정렬은 컴퓨터에 목록에서 다른 요소를 선택하고 이를 피벗과 비교하도록 지시합니다. 요소가 피벗보다 작으면 그 위에 배치됩니다. 더 크면 아래에 배치됩니다. 각 피벗이 적절한 위치에 있고 데이터가 목록으로 정렬될 때까지 프로세스가 반복됩니다. 컴퓨터 과학자들은 리소스를 최소한으로 사용하면서 기능을 신속하게 완료한다는 측면에서 보다 "우아하고" "좋은" 검색 및 정렬 알고리즘을 찾으려고 여전히 노력하고 있습니다. 5

정보 교환을 위한 미국 표준 코드(ASCII)

검색과 정렬은 알고리즘의 가장 유명한 예입니다. 그러나 이는 컴퓨터 과학자들이 개발한 수천 개의 알고리즘 응용 프로그램 중 두 개에 불과합니다. 알고리즘 설계에 대한 연구는 컴퓨터 과학 내에서 번성하는 하위 분야가 되었습니다. —Micah L. Issitt 참고문헌 Anthes, Gary. “기본으로 돌아가기: 알고리즘.” 컴퓨터월드. Computerworld, 2008년 3월 24일. 웹. 2016년 1월 19일.

프로그래밍 및 코딩의 원리

벨, 팀, 그 외 여러분. “알고리즘.” 컴퓨터 과학 현장 가이드. 캔터베리 대학교, 2015년 2월 3일. 웹. 2016년 1월 19일. Cormen, Thomas H. 알고리즘 잠금 해제. 케임브리지: MIT P, 2013. 인쇄. Cormen, 토마스 H., 그 외 여러분. 알고리즘 소개. 3판 케임브리지: MIT P, 2009. 인쇄. “알고리즘 입문.” 칸아카데미. 칸 아카데미(Khan Acad.), 2015. 웹. 2016년 1월 19일. 토탈, 레이. “알고리즘과 데이터 구조.” 레이 톨. Loyola Marymount U, n.d. 편물. 2016년 1월 19일.

정보 교환을 위한 미국 표준 코드(ASCII) 연구 분야 컴퓨터 과학; 컴퓨터 공학 개요 ASCII(American Standard Code for Information Interchange)는 문자 인코딩 시스템입니다. 이를 통해 컴퓨터 및 기타 전자 통신 장치에서 텍스트 및 기타 그래픽 문자를 저장, 처리, 전송, 인쇄 및 표시할 수 있습니다. 1963년에 처음 출판된 ASCII는 PC와 인터넷에서 사용하기 위해 개발된 여러 다른 문자 인코딩 시스템의 기초를 형성했습니다. 기본 용어 비트 폭: 정수 값이나 기타 데이터를 저장하기 위해 컴퓨터나 기타 장치에서 사용하는 비트 수입니다. 문자: 서면 언어에 사용되는 단일 문자, 숫자, 구두점, 공백 또는 기타 기호를 나타내는 정보 단위입니다. 제어 문자: 컴퓨터 및 기타 장치가 텍스트 및 기타 문자를 처리하는 방식을 제어하는 ​​데 사용되는 정보 단위입니다. 해밍 거리: 문자 처리, 오류 감지 및 오류 정정에 영향을 미치는 두 문자 또는 제어 문자 간의 차이를 측정한 것입니다. 6

인쇄 가능한 문자: 사람이 읽을 수 있는 방식으로 쓰거나 인쇄하거나 표시할 수 있는 문자입니다.

문자 인코딩 이해 기록된 언어 또는 텍스트는 문자라고 하는 다양한 그래픽 기호로 구성됩니다. 많은 언어에서 이러한 문자에는 문자, 숫자, 구두점 및 공백이 포함됩니다. 이러한 문자는 사람이 읽을 수 있는 형식으로 인쇄되거나 표시될 수 있기 때문에 인쇄 가능한 문자라고도 합니다. 또 다른 유형의 캐릭터는 제어 캐릭터입니다. 제어 문자는 다른 문자의 처리에 영향을 줍니다. 예를 들어, 제어 문자는 프린터에게 새 줄에 다음 문자를 인쇄하도록 지시할 수 있습니다. 문자 인코딩은 문자를 컴퓨터나 전신과 같은 전자 장치에서 사용할 수 있는 형식으로 변환하는 프로세스입니다. 원래 사무엘 모스(Samuel Morse)의 전신 시스템과 함께 사용하도록 설계된 모스 부호는 널리 사용되도록 채택된 최초의 문자 인코딩 체계 중 하나였습니다. 전신은 전신선을 통해 전자 펄스를 보내 정보를 전송합니다. 모스 부호는 각 문자를 짧은 펄스와 긴 펄스의 고유한 조합에 할당합니다. 예를 들어, 문자 A는 하나의 짧은 펄스와 하나의 긴 펄스의 조합에 할당된 반면 문자 T는 단일 긴 펄스에 할당되었습니다. 전신 교환원은 모스 부호를 사용하여 다음을 수행할 수 있습니다.

프로그래밍 및 코딩의 원리

정보 교환을 위한 미국 표준 코드(ASCII)

이 차트는 키보드의 일반 문자에 대한 10진수 및 16진수 ASCII 코드를 나타냅니다.

일련의 펄스를 전송하여 메시지를 보냅니다. 펄스의 시퀀스 또는 문자열은 메시지 텍스트를 구성하는 문자를 나타냅니다. 텔레프린터와 컴퓨터를 포함한 새로운 유형의 전자 장치의 요구를 충족하기 위해 다른 문자 인코딩 시스템이 만들어졌습니다. 1960년대 초에는 문자 인코딩 시스템이 널리 사용되었습니다. 그러나 서로 다른 제조업체의 시스템이 서로 통신할 수 있도록 보장하는 표준 문자 인코딩 시스템은 존재하지 않았습니다. 실제로 1963년에는 60가지가 넘는 다양한 인코딩 시스템이 사용되었습니다. IBM에서만 9개의 서로 다른 시스템을 사용했습니다. 이 문제를 해결하기 위해 ASA(미국 표준 협회) X3.4 위원회는 ASCII라는 표준화된 문자 인코딩 체계를 개발했습니다.

ASCII 표준 이해 ASCII 표준은 영어를 기반으로 합니다. 128개의 문자를 0부터 127까지의 정수 값으로 인코딩합니다. 문자 중 33개는 제어 문자이고, 95개는 A부터 Z까지의 대문자와 소문자, 0부터 9까지의 숫자, 구두점을 포함하는 인쇄 가능한 문자입니다. , 그리고 공백. 예를 들어 문자 A는 65로 인코딩되고 쉼표는 44로 인코딩됩니다.

인코딩된 정수는 컴퓨터 시스템이 저장할 수 있는 가장 작은 데이터 단위인 비트로 변환됩니다. 단일 비트는 0 또는 1의 값을 가질 수 있습니다. 1보다 큰 정수를 저장하려면 추가 비트를 사용해야 합니다. 값을 저장하는 데 사용되는 비트 수를 비트 너비라고 합니다. ASCII는 비트 너비를 7로 지정합니다. 예를 들어 ASCII에서는 정수값 65가 7비트를 사용하여 저장되는데, 이는 비트열 1000001로 표현될 수 있습니다. 특정 문자에 대한 ASCII 7비트 정수값은 임의로 할당되지 않았습니다. 오히려 각 값 사이의 해밍 거리를 최대화하기 위해 특정 문자의 정수 값을 선택했습니다. 해밍 거리는 두 개의 비트열을 비교할 때 서로 다른 값으로 설정된 비트 수입니다. 예를 들어, 비트 문자열 0000001(10진수 값 1)과 0000011(10진수 값 3)은 두 문자열 간에 마지막에서 두 번째 비트만 다르기 때문에 해밍 거리가 1입니다. 비트 패턴 0000111(10진수 값 7)과 0000001(10진수 값 1)은 세 번째부터 마지막 ​​위치까지의 비트도 두 문자열 간에 다르기 때문에 해밍 거리가 2입니다. ASCII는 해밍 거리가 클수록 더 효율적인 데이터 처리가 가능하고 오류 감지 및 처리가 향상되므로 해밍 거리를 최대화하도록 설계되었습니다. 7

프로그래밍 및 코딩의 원리

안드로이드 OS

샘플 문제

ASCII는 알파벳의 처음 11개 소문자에 대한 정수 값을 다음과 같이 정의합니다. a = 97; b = 98; c = 99; d = 100; e = 101; f = 102; g = 103; h = 104; 나는 = 105; j = 106; k = 107 이 정보를 사용하여 hijack이라는 단어를 올바른 ASCII 정수 값으로 변환하세요. 답변: hijack이라는 단어의 ASCII 표현은 다음과 같이 단어의 각 문자를 정의된 십진수 값과 비교하여 확인할 수 있습니다. h i j a   c   k h (104) i (105) j (106) a (97)  c (99) k (107) 104 105 106 97 99 107 hijack이라는 단어의 올바른 ASCII 인코딩은 104 105 106 97 99 107입니다.

ASCII를 넘어 ASCII는 1963년에 도입된 이후 계속해서 개선되었습니다. 이는 최초의 IBM PC를 포함하여 광범위한 컴퓨터 시스템에서 사용하기 위해 점차적으로 채택되었습니다. 다른 제조업체들도 곧 IBM의 뒤를 따랐습니다. ASCII 표준은 인터넷에서도 널리 채택되었습니다. 하지만 영어 이외의 언어를 지원하려면 더 많은 문자가 필요하기 때문에

성장함에 따라 이러한 요구를 충족하기 위해 다른 표준이 개발되었습니다. 그러한 표준 중 하나인 유니코드는 120,000자 이상의 문자를 인코딩할 수 있습니다. 그러나 ASCII는 여전히 중요한 기술입니다. 많은 시스템이 여전히 ASCII를 사용합니다. 유니코드와 같은 문자 인코딩 시스템은 기존 시스템과의 호환성을 높이기 위해 ASCII를 통합합니다. —Maura Valentino, MSLIS 참고문헌 Amer. 표준 Assn. 정보 교환을 위한 미국 표준 코드. 아메르. Standards Assn., 1963년 6월 17일. 디지털 파일. 앤더슨, 데보라. “인터넷을 위한 글로벌 언어 다양성.” 2005년 1월 ACM 통신: 27. PDF 파일. 피셔, 에릭. 문자 코드의 진화, 1874~1968. N.p.: Fischer, n.d. Trafficways.org. 편물. 2016년 2월 22일. 제닝스, 톰. “일부 문자 코드의 주석이 달린 역사.” 세계 전력 시스템. Tom Jennings, 2004년 10월 29일. 웹. 2016년 2월 16일. McConnell, Robert, James Haynes, Richard Warren. “ASCII 코드 이해.” NADCOMM. NADCOMM, 2011년 5월 14일. 웹. 2016년 2월 16일. 실버, H. 워드. “디지털 코드 기초.” Qst 98.8(2014): 58–59. PDF 파일. “컴퓨터 역사의 타임라인: 1963년.” 컴퓨터 역사 박물관. 컴퓨터 역사 박물관, 2015년 5월 1일. 웹. 2016년 2월 23일.

안드로이드 OS 연구 분야

주요 약관

컴퓨터 과학; 운영체제; 모바일 플랫폼

응용 프로그램 인터페이스(API): 두 가지 소프트웨어, 특히 소프트웨어 응용 프로그램과 이를 실행하는 운영 체제가 상호 작용하는 방식을 정의하는 코드입니다. 몰입형 모드: 사용하지 않을 때 상태 및 탐색 표시줄이 보이지 않게 숨겨지는 전체 화면 모드입니다. 머티리얼 디자인: Google 플랫폼과 기기 전반에 걸친 시각, 모션, 상호작용 디자인에 대한 포괄적인 가이드입니다.

개요 이 기사에서는 모바일 컴퓨팅과 관련된 일반적인 문제를 간략하게 설명하고 Google Android 운영 체제의 역사와 분석을 제시합니다. 성장하는 모바일 기술 시장에서 Android의 미래를 살펴보는 것으로 마무리됩니다. 8

프로그래밍 및 코딩의 원리

안드로이드 OS

멀티태스킹: 휴대폰 환경에서 PC의 여러 개의 열린 창에서 작업할 수 있는 기능과 마찬가지로 다양한 앱을 동시에 실행할 수 있습니다. 멀티터치 제스처: 설치된 소프트웨어의 동작을 트리거하는 다양한 제스처를 허용하는 터치스크린 기술입니다.

모바일 컴퓨팅의 힘 모바일 ​​컴퓨팅은 기술 시장에서 가장 빠르게 성장하는 부문입니다. 가격이 더욱 저렴해지면서 개발도상국, 특히 아프리카가 스마트폰 시장에서 가장 크게 성장하고 있습니다. 스마트폰을 사용하여 사용자는 쇼핑하고, 정보를 수집하고, Twitter 및 Facebook과 같은 소셜 미디어를 통해 연결하고, 소통합니다. 이는 전통적으로 전화와 관련된 용도 중 하나입니다. 지금까지 휴대폰에서 실행되는 가장 인기 있는 운영 체제는 Android입니다. 매출이 거의 두 배로 Apple의 iOS를 능가했습니다. 2014년 기준으로 매일 백만 개가 넘는 Android 기기가 활성화되었습니다. 2008년 출시 이후 Android는 경쟁사를 단연 압도해 왔습니다. Android의 시작 Android는 모바일 기술이 변혁하는 순간에 탄생했습니다. 2007년 이전에는 슬라이드 아웃 키보드가 데스크탑 PC의 타이핑 경험을 모방했습니다. 그해 6월, Apple은 첫 번째 iPhone을 출시하여 휴대폰의 판도를 완전히 바꿔 놓았습니다. Apple은 멀티터치 제스처와 터치스크린 기술에 중점을 두었습니다. 이와 거의 동시에 Google의 Android는 최초의 API(응용 프로그램 인터페이스)를 출시했습니다. Google의 새로운 운영 체제(OS)의 원본 API는 2008년 10월에 처음 등장했습니다. Android OS는 HTC Dream이라고도 알려진 T-Mobile G1에 처음 설치되었습니다. 이 프로토타입에는 매우 작은 사전 설치된 앱 세트가 있었고 슬라이드형 QWERTY 키보드가 있었기 때문에 터치스크린 기능이 없었습니다. Apple의 iOS에는 아직 없는 기본 멀티태스킹 기능이 있었습니다. 그럼에도 불구하고 Google은 Apple과 경쟁하기 위해 물리적 키보드와 액세스 버튼을 가상 화면 컨트롤로 교체해야 했습니다. Android의 다음 버전은 HTC Magic과 함께 출시되었으며 가상 키보드와 더욱 강력한 앱 시장이 함께 제공되었습니다. 시간이 지나도 변함없는 초기 기능 중에는 풀다운 알림 목록, 홈 화면 등이 있습니다.

원래 Android 운영 체제용으로 설계된 Swype 키보드는 사용자가 각 문자를 선택하기 위해 손가락을 떼지 않고도 키보드 위에서 손가락을 움직여 문자에서 문자로 이동할 수 있도록 하여 입력 속도를 높이기 위해 개발되었습니다. Android 운영 체제의 이 표준 소프트웨어를 사용하면 빠른 문자 메시지를 보낼 수 있습니다.

위젯, Google Gmail 서비스와의 강력한 통합. 최신 기능인 전체 화면 몰입형 모드는 방해 요소를 줄여 인기가 높습니다. 2013년 Android 4.4 'KitKat'과 함께 처음 출시된 이 앱은 특정 앱이 사용되는 동안 탐색 및 상태 표시줄을 숨깁니다. 2015년 안드로이드 5.0 '롤리팝' 출시 때까지 유지됐다.

Android의 변화와 성장 Google의 운영 체제인 Android와 클라우드 기반 데스크톱 OS인 Chrome은 모두 엔지니어 Linus Torvalds가 만들고 1991년에 처음 출시된 무료 오픈 소스 OS Linux를 기반으로 합니다. 오픈 소스 소프트웨어는 다음을 사용하여 만들어집니다. 공개적으로 사용 가능한 소스 코드. 9의 오픈 소스 개발

안드로이드 OS

Android를 통해 제조업체는 신흥 시장과 개발도상국 시장에서 폭넓은 인기를 누리는 데 기여하는 강력하고 저렴한 제품을 생산할 수 있었습니다. 이는 Android가 가장 가까운 라이벌인 Apple의 iOS보다 두 배 이상 많은 신규 사용자를 확보한 이유 중 하나일 수 있습니다. 이 전략은 비용을 절감하고 백만 개가 넘는 기본 앱을 무료로 제공하는 Android의 앱 마켓플레이스를 구축하는 데도 도움이 되었습니다. 2014년까지 Android는 전 세계 스마트폰 시장의 54%를 차지했습니다. Android의 이러한 오픈 소스 개발은 한 가지 부정적인 영향을 미쳤습니다. 바로 중국에서 주로 발생하는 '포킹' 현상입니다. 포크는 민간 기업이 OS를 가져와 이메일과 같은 기본 Google 서비스와 별도로 자체 제품을 만드는 것입니다. Google은 이러한 회사를 지원하지 않거나 해당 회사의 앱을 시장에 포함하지 않음으로써 이러한 통제권(및 수익) 손실을 방지하려고 합니다. Android의 포크 버전은 2014년 초 전 세계 시장의 거의 4분의 1을 차지했습니다. Google의 비즈니스 모델은 항상 "빠른 반복, 웹 스타일 업데이트 주기"에 초점을 맞춰 왔습니다. 대조적으로, Microsoft 및 Apple과 같은 경쟁업체는 하드웨어 문제로 인해 훨씬 ​​더 느리고 더 신중한 속도를 보였습니다. Google의 더 빠른 접근 방식의 이점 중 하나는 적시에 문제를 해결할 수 있다는 것입니다. 단점은 "구름 부패"로 알려진 현상입니다. 클라우드 기반 OS가 오래됨에 따라 이전 버전 전용이었던 서버의 용도가 변경됩니다. 처음에는 몇 달에 한 번씩 OS가 변경되었기 때문에 한 달 전에는 작동했던 앱이 갑자기 기능을 잃거나 완전히 사용할 수 없게 되었습니다. 이후 Android 업데이트는 6개월 이상의 기간에 출시되었습니다.

Android의 미래 2014년 한 해에만 Android를 사용하는 기기가 10억 개 이상 활성화되었습니다. 안드로이드의 미래에 대한 가장 큰 우려 중 하나는 포크 문제입니다. 개발자에게 무료로 코드를 제공함으로써 Android는 Microsoft 및 Apple과 같은 고급 제조업체에 대한 바람직하고 비용 효율적인 대안이 되었지만 Google은 경쟁사의 표적이 되었습니다. Android의 미래를 위한 또 다른 고려 사항은 Chrome OS와의 불가분한 연결입니다. 구글 계획

10

프로그래밍 및 코딩의 원리

두 가지를 별도로 유지합니다. 또한 Google 경영진은 Chromebook(Chrome을 실행하는 노트북)과 Android 기기의 목적이 서로 다르다는 점을 분명히 했습니다. Android는 터치스크린 기술, 멀티터치 동작, 화면 해상도에 중점을 두어 휴대폰, 태블릿, 최신 웨어러블 기기 및 TV용 순수 모바일 OS로 자리매김했습니다. 그동안 크롬은 키보드 단축키 등 PC와 노트북 환경에서 더욱 유용한 도구들을 개발해왔다. 하지만 2014년부터 Google의 다양한 플랫폼과 기기의 모양과 기능을 통합하려는 노력인 Material Design이 도입되었습니다. 또한 Google은 ARC(Apps Runtime on Chrome)를 통해 Android 앱이 Chrome에서 실행될 수 있도록 보장했습니다. 이러한 구현은 Android와 Chrome 사용자 경험의 느린 병합을 암시합니다. —Andrew Farrell, MLIS 참고문헌 Amadeo, Ron. “안드로이드의 역사.” 아르스 테크니카. Condé Nast, 2014년 6월 15일. 웹. 2016년 1월 2일. "안드로이드: 시각적 역사." 가장자리. Vox Media, 2011년 12월 7일. 웹. 2016년 1월 2일. Bajarin, Tim. “구글은 안드로이드와 크롬 OS와의 큰 갈림길에 서 있습니다.” PCMag. Ziff Davis, 2015년 12월 21일. 웹. 2016년 1월 4일. Edwards, Jim. “안드로이드가 정말로 가난한 사람들을 위한 것이라는 증거입니다.” 비즈니스 인사이더. Business Insider, 2014년 6월 27일. 웹. 2016년 1월 4일. Goldsborough, Reid. “상승 중인 안드로이드.” 기술 방향 2014년 5월: 12. 학술 검색 완료. 편물. 2016년 1월 2일. Manjoo, Farhad. “플래닛 안드로이드의 흔들리는 궤도.” 뉴욕 타임즈 2015년 5월 28일: B1. 인쇄. 뉴먼, 자레드. “안드로이드 노트북: 200달러 가격은 맞지만 OS는 그렇지 않을 수도 있습니다.” PCWorld. IDG 소비자 및 중소기업, 2013년 4월 26일. 웹. 2016년 1월 27일. 뉴먼, 자레드. “Android Lollipop을 통해 모바일 멀티태스킹이 크게 도약합니다.” 패스트컴퍼니. Mansueto Ventures, 2014년 11월 6일. 웹. 2016년 1월 27일.

프로그래밍 및 코딩의 원리

애플리케이션

응용 연구 분야 응용; 소프트웨어 엔지니어링 개요 정보 기술 분야에서 애플리케이션은 워드 프로세싱, 웹 브라우징, 체스 플레이 등의 작업을 수행하기 위해 만들어진 소프트웨어입니다. 각 애플리케이션은 데스크톱 컴퓨터, 노트북, 태블릿 컴퓨터나 스마트폰과 같은 모바일 장치에 설치되는 시스템 소프트웨어 유형인 특정 플랫폼에서 실행되도록 설계되었습니다. 주요 용어 앱: "애플리케이션"의 약어로, 컴퓨터나 모바일 장치에서 특정 작업을 수행하도록 설계된 프로그램입니다. 응용 프로그램 제품군: 워드 프로세서, 스프레드시트, 프리젠테이션 작성기 및 데이터베이스 응용 프로그램을 포함하는 사무용 제품군과 같이 긴밀하게 함께 작동하도록 설계된 프로그램 세트입니다. 플랫폼: 컴퓨터 시스템의 기초가 되는 특정 하드웨어 또는 소프트웨어 인프라; 종종 Windows, Mac OS, Linux와 같은 운영 체제를 나타냅니다. 시스템 소프트웨어: 하드웨어 및 기타 소프트웨어에서 사용하기 위해 컴퓨터의 리소스를 관리하는 기본 소프트웨어입니다. 유틸리티 프로그램: 디스크 파티셔닝 및 유지 관리, 소프트웨어 설치 및 제거, 바이러스 보호 등 하나 이상의 일상적인 기능을 수행하는 시스템 소프트웨어 유형입니다. 웹 애플리케이션: 사용할 때마다 인터넷에서 전체 또는 일부가 다운로드되는 애플리케이션입니다.

상황별 애플리케이션 애플리케이션은 워드 프로세싱이나 웹 브라우징과 같은 특정 작업을 수행하는 소프트웨어 프로그램입니다. 하나 이상의 특정 플랫폼에서 실행되도록 설계되었습니다. "플랫폼"이라는 용어는 하드웨어 자체와 이를 관리하는 운영 체제(OS)를 포함한 모든 기본 컴퓨터 인프라를 의미할 수 있습니다. OS는 장치의 하드웨어 및 기타 소프트웨어 리소스를 관리하는 시스템 소프트웨어 유형입니다. 응용 프로그램 디자이너는 다른 것을 만들 수 있습니다

다양한 플랫폼에서 실행되는 애플리케이션 버전. 크로스 플랫폼 애플리케이션은 둘 이상의 플랫폼에서 실행될 수 있는 애플리케이션입니다. 태블릿이나 스마트폰과 같은 모바일 장치의 맥락에서 "애플리케이션"이라는 용어는 일반적으로 앱으로 축약됩니다. 2007년 iPhone이 출시된 이후 앱은 가전제품 영역에서 중심 무대를 차지했습니다. 이전에는 소비자가 기기의 하드웨어나 OS 기능에 더 매력을 느끼는 경향이 있었습니다. 소비자는 견고한 디자인이나 빠른 프로세서 때문에 특정 전화기를 좋아했을 수도 있고, Linux의 명령줄 인터페이스보다 Microsoft Windows 및 Mac OS의 그래픽 인터페이스를 선호했을 수도 있습니다. 이후 이러한 기능은 일반 소비자의 관심이 훨씬 덜해졌습니다. 대신 소비자는 사용하려는 특정 앱을 지원하는 장치를 찾는 데 더 관심을 갖는 경향이 있습니다.

애플리케이션의 진화 수년에 걸쳐 앱은 점점 더 전문화되었습니다. 한때 OS에 포함되었던 기본 유틸리티 프로그램도 이제 별도의 앱으로 구매할 수 있습니다. 경우에 따라 이러한 앱은 OS와 함께 제공되는 유틸리티 소프트웨어의 고급 버전입니다. 예를 들어, OS에는 무료 바이러스 백신 소프트웨어가 함께 제공될 수 있지만 사용자는 더 나은 보호 기능을 제공하는 다른 프로그램을 구입하기로 선택할 수 있습니다. 일부 소프트웨어 회사는 상호 운용되는 프로그램의 응용 프로그램 제품군을 제공합니다. Adobe Creative Cloud는 Photoshop 및 InDesign과 같은 널리 사용되는 디자인 및 편집 프로그램이 포함된 클라우드 기반 그래픽 디자인 제품군입니다. Microsoft Office는 워드 프로세서(Word), 스프레드시트 프로그램(Excel) 및 사무실 환경에서 일반적으로 사용되는 기타 응용 프로그램으로 구성된 Office 제품군입니다. 이러한 프로그램은 비용이 많이 들고 사용자 컴퓨터에서 많은 양의 저장 공간을 차지할 수 있습니다. 광대역 인터넷 접속이 널리 보급되기 전에는 전화 접속 연결을 통해 다운로드하는 데 시간이 너무 오래 걸리기 때문에 응용 프로그램 모음을 플로피 디스크, CDROM 또는 DVD와 같은 휴대용 미디어에 배포했습니다. 고속 인터넷 액세스가 훨씬 더 일반화됨에 따라 애플리케이션 개발자는 다른 접근 방식을 취했습니다. 부피가 큰 애플리케이션 제품군에 투자하는 대신 사용자는 웹 애플리케이션을 사용할 수 있는 옵션이 있는 경우가 많습니다. 이러한 응용 프로그램은 부분적으로 또는 11

프로그래밍 및 코딩의 원리

애플리케이션

컴퓨터 하드웨어

디버거

파일 관리 도구

운영 체제

유용

시스템 소프트웨어

컴파일러 어셈블러 게임 커뮤니케이션

그래픽 워드 프로세싱

데이터베이스

애플리케이션 소프트웨어

스프레드시트

이를 지원하는 시스템 소프트웨어 및 하드웨어의 제한된 배열에 비해 사용 가능한 응용 프로그램 소프트웨어의 다양성과 양은 엄청납니다.

12

프로그래밍 및 코딩의 원리

전적으로 원격 서버에 있으므로 컴퓨터의 하드 드라이브에 설치할 필요가 없습니다.

응용 프로그램 유형 다양한 유형의 소프트웨어가 응용 프로그램이라는 광범위한 제목에 속합니다. 응용 프로그램 시장의 큰 부분은 사무용 및 생산성 소프트웨어에 중점을 두고 있습니다. 이 범주에는 전자 메일 응용 프로그램, 워드 프로세서, 스프레드시트 소프트웨어, 프레젠테이션 소프트웨어 및 데이터베이스 관리 시스템이 포함됩니다. 사무실 환경에서는 사용자가 이러한 애플리케이션을 사용하여 문서를 작성하고 이를 다른 사람과 공유할 수 있는 것이 중요합니다. 이는 기업이나 조직이 특정 애플리케이션 제품군을 선택한 다음 모든 직원이 이를 사용하도록 요구한다는 의미인 경우가 많습니다. 다른 유형의 응용 프로그램에는 게임, 오디오 비디오 편집 및 제작 소프트웨어, 심지어 프로그래머가 새 소프트웨어를 작성하는 데 도움이 되는 소프트웨어도 포함됩니다. 소프트웨어 엔지니어링의 복잡성으로 인해 프로그래머는 더욱 세련되고 버그 없는 프로그램을 생성하는 데 도움이 되는 많은 응용 프로그램을 개발해 왔습니다. 소프트웨어 개발자는 여러 응용 프로그램을 사용하여 단일 프로그램을 코딩할 수 있습니다. 그들은 워드 프로세서나 텍스트 편집기를 사용하여 소스 코드와 설명 주석을 작성하고, 디버깅 도구를 사용하여 코드의 오류를 확인하고, 컴파일러를 사용하여 코드를 컴퓨터가 실행할 수 있는 기계어로 변환할 수 있습니다. 다른 컴퓨터 내에서 실행되는 가상 컴퓨터를 에뮬레이션할 수 있는 애플리케이션 유형도 있습니다. 이러한 응용 프로그램은 웹 호스팅 회사에서 자주 사용됩니다. 등록하는 각 고객에 대해 새로운 물리적 서버를 설정하는 대신 사용자가 액세스할 수 있는 또 다른 가상 서버를 생성할 수 있습니다. 보안 의미 응용 프로그램이 실행 중인 컴퓨터의 리소스를 사용하려면 특정 권한이 있어야 합니다. 결과적으로 공격자가 악용할 수 있는 약점이 되는 경우도 있습니다. 영리한 공격자는 취약한 애플리케이션을 장악한 다음

애플리케이션

컴퓨터가 해서는 안 되는 방식으로 작동하도록 만드는 권한입니다. 예를 들어, 공격자는 스팸 전자 메일을 보내거나, 불법적으로 공유된 파일을 호스팅하거나, 동일한 네트워크에 있는 다른 컴퓨터에 대해 추가 공격을 시작할 수도 있습니다.

응용 분야 경력 응용 분야는 소프트웨어 작업에 관심이 있는 사람들을 위한 다양한 직업 선택의 초점입니다. 컴퓨터 프로그래머의 명백한 역할 외에도 취할 수 있는 다른 경로가 몇 가지 있습니다. 한 가지 옵션은 품질 보증입니다. 품질 보증 직원은 개발 중인 소프트웨어를 테스트하여 제대로 작동하는지 확인하는 일을 담당합니다. 기술 지원은 또 다른 옵션입니다. 기술 지원 전문가는 사용자가 소프트웨어를 작동하고 이로 인해 발생할 수 있는 오류를 수정하도록 지원합니다. 또 다른 길은 기술 문서 작성입니다. 기술 작가는 소프트웨어 사용자 매뉴얼과 교육 자료를 만듭니다. 마지막으로, 일부 애플리케이션은 너무 복잡해서 이를 사용하는 것 자체가 직업이 될 수 있습니다. —Scott Zimmer, JD 참고문헌 벨, Tom. 프로그래밍: 입문서; 초보자를 위한 코딩. 런던: 임페리얼 콜. P, 2016. 인쇄. Calude, Cristian S., 에디션. 컴퓨팅의 인간 얼굴. 런던: 임페리얼 콜. P, 2016. 인쇄. 데이, 프라딥, 마나스 고쉬. C. 2nd ed의 컴퓨터 기초 및 프로그래밍. 뉴델리: 옥스포드 UP, 2013. 인쇄. 고리우노바, 올가, 에디션. 재미와 소프트웨어: 컴퓨팅의 즐거움, 역설, 고통 탐구. 뉴욕: Bloomsbury, 2014. 인쇄. 나폴리탄, Richard E. 알고리즘 기초. 5판 벌링턴: 존스, 2015. 인쇄. 탤벗, 제임스, 저스틴 맥클린. Android 애플리케이션 프로그래밍 학습: Android 애플리케이션 구축을 위한 실습 가이드. 어퍼 새들 리버: 애디슨, 2014. 인쇄.

13

프로그래밍 및 코딩의 원리

자율 컴퓨팅

자율 컴퓨팅 연구 분야 컴퓨터 과학; 임베디드 시스템; 시스템 수준 프로그래밍 개요 자율 컴퓨팅은 컴퓨터가 사용자 입력과 독립적으로 작동할 수 있도록 하는 데 초점을 맞춘 컴퓨터 과학의 하위 분야입니다. 2001년 IBM이 처음으로 구체화한 이 개념은 로봇 공학, 인공 지능(AI), 기계 학습과 같은 분야와 특히 관련이 있습니다. 주요 용어 자율 구성 요소: 자체 관리 기능이 내장된 독립형 소프트웨어 또는 하드웨어 모듈로, 입력/출력을 통해 시스템의 다른 구성 요소에 연결됩니다. 부트스트래핑: 부팅 프로세스가 시작된 후 자동으로 다른 프로세스를 시작하도록 구성된 컴퓨터 시스템의 자체 시작 프로세스입니다. 다중 에이전트 시스템: 문제 해결을 위해 협력하고 조직할 수 있는 소프트웨어 또는 하드웨어 시스템의 여러 개별 에이전트로 구성된 시스템입니다. 자원 분배: 다양한 소프트웨어나 하드웨어 구성요소 또는 네트워크로 연결된 컴퓨터 시스템을 통해 컴퓨팅 시스템에 사용 가능한 자원의 위치. 자체 별 속성: 컴퓨팅 시스템이 자율 시스템으로 분류되는 데 필요한 구성 요소 및 시스템 속성 목록입니다.

자가 관리 시스템 자율 컴퓨팅(Autonomic Computing)은 어느 정도 자율적으로 작동할 수 있는 컴퓨터를 개발하는 것을 목표로 하는 컴퓨터 과학의 한 분야입니다. 자율 시스템은 하나 이상의 측면에서 자체 관리되는 시스템입니다. 이러한 시스템은 때때로 "self-*" 또는 "self-star"로 설명됩니다. 별표 또는 "별"은 자율 시스템의 다양한 속성(자기 조직화, 자기 유지 관리)을 나타냅니다. 자율 컴퓨팅은 외부 입력이 덜 필요한 시스템을 개발하여 사용자가 다른 활동에 집중할 수 있도록 하는 것을 목표로 합니다. 14

셀프스타 시스템(Self-Star Systems) 자율 컴퓨팅의 개념은 자연에서 발견되는 자율 시스템을 기반으로 합니다. 그러한 시스템의 예로는 인간의 자율신경계와 벌과 개미와 같은 군체 곤충의 자기 조절이 있습니다. 자율 시스템에서 개별 구성 요소의 동작은 전체 그룹의 더 높은 차원의 자체 유지 속성으로 이어집니다. 시스템이 자율적으로 기능하는 데 필요한 속성을 종종 자체 별 속성이라고 합니다. 하나는 자체 관리입니다. 즉, 초기 설정 후 외부 입력 없이 시스템이 자체적으로 관리할 수 있다는 의미입니다. 컴퓨터 과학자들은 시스템이 자율적인 것으로 간주되기 위해 갖춰야 할 다른 자체 별 특성에 대해 의견이 일치하지 않습니다. 제안된 속성은 다음과 같습니다: 자체 안정화, 구성 변경 후 안정적인 상태로 돌아가는 기능; 자가 치유, 외부 손상이나 내부 오류로부터 복구하는 능력; 자기 조직화, 목표를 향해 구성 요소와 프로세스를 조직화하는 능력; 자기 보호, 운영에 대한 외부 위협에 대처하는 능력; 자체 최적화, 모든 리소스와 구성요소를 관리하여 운영을 최적화하는 능력입니다. 자율 시스템은 또한 자기 인식과 자기 학습을 나타낼 수도 있습니다. 컴퓨터 시스템의 자기 인식은 생물학적 시스템의 자기 인식과 다릅니다. 컴퓨터 시스템에서 자기 인식은 내부 구성 요소 및 구성에 대한 시스템의 지식으로 더 잘 정의됩니다. 자가 학습은 사용자가 시스템에 새로운 정보를 프로그래밍하지 않고도 경험을 통해 학습할 수 있는 능력입니다.

자율 시스템의 설계 자율 컴퓨터 시스템은 일반적으로 적어도 부분적으로 자체 관리되는 자율 구성 요소(AC)를 갖는 것으로 구상됩니다. AC의 예로는 부트스트래핑이 있습니다. 부트스트래핑은 컴퓨터가 시작 중에 다양한 프로세스를 구성하고 시작하는 프로세스입니다. 사용자가 컴퓨터를 켜면 부트스트래핑 프로세스가 자체 관리됩니다. 자가 진단 검사를 진행한 후 다양한 하드웨어 및 소프트웨어 구성 요소를 활성화합니다.

프로그래밍 및 코딩의 원리

자율 컴퓨팅

자체 구성 자체 최적화

기본 레벨 1

관리 수준 2

자가 치유 자가 보호

예측 수준 3

적응형 레벨 4

자율 수준 5 자체 구성

자체 최적화

자가 치유

자가 치유

자기 보호

자기 보호

자기 보호

자체 최적화

자체 최적화

자체 최적화

수동

자율

컴퓨터 시스템이 집중적인 IT 관리가 필요한 매우 기본적인 기술에서 자체 관리가 가능한 자율 시스템으로 발전함에 따라 자체 최적화, 자체 보호, 자체 치유, 자체 구성이라는 네 가지 주요 디딤돌이 생겼습니다. 완전 자율 시스템을 향한 이러한 각 단계는 최종 사용자에게 필요한 기술 수준을 낮추면서 더욱 광범위한 컴퓨팅을 가능하게 합니다.

자율 컴퓨터 설계에는 피드백 제어 시스템과 다중 에이전트 시스템이라는 두 가지 기본 모델이 있습니다. 피드백 제어 시스템에서 조건 변경은 시스템 기능의 변경을 촉발하는 시스템에 피드백을 제공합니다. 피드백 제어는 종종 생물학적 시스템에서 발견됩니다. 예를 들어, 자율신경계에서는 다양한 신경전달물질의 수준이 피드백과 연결되어 있습니다.

AC를 활성화하거나 비활성화하는 시스템. 다중 에이전트 시스템은 개별 구성 요소의 집합적 기능을 사용하여 더 높은 수준의 기능을 완성합니다. 예를 들어, 컴퓨터 그룹은 네트워크로 연결되어 개별 기능을 수행함으로써 구성 요소가 외부 입력의 필요성을 줄이면서 시스템의 기능과 리소스를 집합적으로 관리할 수 있습니다. 여러 프로세서를 함께 연결하면 15가 변경됩니다.

프로그래밍 및 코딩의 원리

아바타 및 시뮬레이션

작업을 효과적으로 처리하려면 연결된 모든 에이전트 내에서 컴퓨팅 리소스를 찾을 수 있어야 합니다. 반자동 소프트웨어 및 하드웨어 시스템이 일반적으로 사용됩니다. 소셜 네트워킹 및 커뮤니케이션을 위한 P2P(Peer-to-Peer) 시스템은 일반적으로 자체 구성, 자체 조정 및 자체 구성을 비롯한 몇 가지 자율적 속성을 가지고 있습니다. 이러한 시스템은 사용자의 특정 컴퓨터 설정을 결정하고, 다양한 환경에서 기능하도록 스스로 조정하고, 데이터나 구성 변경에 대응하여 자체 구성할 수 있습니다. 대부분의 최신 컴퓨팅 시스템에는 AC가 포함되어 있지만 여전히 일부 외부 관리가 필요하기 때문에 완전히 자율적인 것으로 간주되지 않습니다.

자율 시스템의 약속 자율 컴퓨팅의 주요 목표는 컴퓨터 시스템이 스스로 기본적인 유지 관리 및 최적화 작업을 수행할 수 있도록 하는 것입니다. 컴퓨터가 처리할 수 있는 자동화된 기능의 수를 최대화하면 엔지니어와 시스템 관리자가 다른 활동에 집중할 수 있습니다. 또한 특히 데이터 관리나 시스템 유지 관리에 능숙하지 않은 사람들의 작업 용이성을 향상시킵니다. 예를 들어, 오류를 감지하고 수정하는 부트스트래핑 시스템과 자체 규제 시스템은 일반 사용자에게 컴퓨팅을 더욱 친숙하게 만들었습니다. 자율 컴퓨터 시스템은 로봇 공학, 인공 지능(AI), 기계 학습 분야에서 특히 중요합니다. 이 분야에서는 초기 설정 및 프로그래밍 후 도움 없이 작동할 수 있는 기계를 설계합니다. 자율 컴퓨팅 과학은 아직 초기 단계이지만 처리 능력과 동적 성능의 발전으로 인해 크게 향상되었습니다.

컴퓨터 네트워킹. 예를 들어, 전 IT 전문가인 Chetan Dube가 개발한 AI 시스템 Amelia는 구두 질의에 응답하고 질문에 답할 뿐만 아니라 인간 운영자가 대답할 수 없는 질문에 대답하는 것을 듣고 학습할 수도 있습니다. 어떤 사람들에게는 자체 프로그래밍을 학습하고 변경할 수 있는 시스템이 자율 설계의 궁극적인 목표입니다. —Micah L. Issitt 참고문헌 Bajo, Javier, et al., eds. 에이전트, 다중 에이전트 시스템 및 지속 가능성의 실제 적용에 대한 하이라이트. 진행 PAAMS 2015 국제 워크숍, 2015년 6월 3~4일, 스페인 살라망카. 참: Springer, 2015. 인쇄. 번스, 앤드류, 수쿠마르 고쉬. “Self-* 속성 분석.” SASO 2009: 자기 적응형 및 자기 조직화 시스템에 관한 세 번째 IEEE 국제 컨퍼런스. Los Alamitos: IEEE, 2009. 10–19. Andrew Berns: 홈페이지. 편물. 2016년 1월 20일. 폴린, 스티브. “IT 인프라 자율화를 준비합니다.” 인더스트리위크. 펜턴, 2015년 11월 19일. 웹. 2016년 1월 20일. Gibbs, W. Wayt. “자율 컴퓨팅.” 사이언티픽 아메리칸. Nature Amer., 2002년 5월 6일. 웹. 2016년 1월 20일. Lalanda, Philippe, Julie A. McCann 및 Ada Diaconescu, eds. 자율 컴퓨팅: 원리, 설계 및 구현. 런던: 스프링어, 2013. 인쇄. Parashar, Manish 및 Salim Hariri, 편집. 자율 컴퓨팅: 개념, 인프라 및 애플리케이션. 보카 레이톤: CRC, 2007. 인쇄.

아바타 및 시뮬레이션 연구 분야 디지털 미디어; 그래픽 디자인

컴퓨터의 이미지와 소리로 아바타는 특정 개인의 개인적인 표현입니다. 시뮬레이션과 VR은 엔터테인먼트부터 비즈니스까지 다양한 응용 분야에 사용됩니다.

개요 아바타와 시뮬레이션은 컴퓨터 사용자가 들어갈 수 있는 몰입형 세계를 만들려고 시도하는 가상 현실(VR)의 요소입니다. 시뮬레이션은 현실 세계를 모방하거나 근사화하는 방법입니다.

주요 용어 애니메이션 변수(avars): 애니메이션 그림이나 개체의 움직임을 제어하기 위해 컴퓨터 애니메이션에 사용되는 정의된 변수입니다.

프로그래밍 및 코딩의 원리

키프레임: 일반적으로 그림 형식으로 시퀀스 시작 부분과 끝 부분에서 개체의 위치와 모양을 보여주는 컴퓨터 애니메이션 프로세스의 일부입니다. 모델링: 컴퓨터 시뮬레이션을 통해 실제 물체, 사람 또는 기타 요소를 재현합니다. 렌더 팜: 애니메이션 응용 프로그램용 그래픽을 렌더링하려는 노력을 결합한 강력한 컴퓨터 클러스터입니다. 가상 현실: 시각적, 청각적 입력을 통해 사용자가 몰입할 수 있는 시뮬레이션 세계를 만드는 기술을 사용합니다.

가상 세계 컴퓨터 시뮬레이션과 가상 현실(VR)은 1960년대 초반부터 존재해 왔습니다. 시뮬레이션은 1980년대부터 제조업에 사용되었지만, 아바타와 가상 세계는 게임과 엔터테인먼트 이외의 분야에서는 아직 널리 채택되지 않았습니다. VR은 컴퓨터화된 소리, 이미지, 심지어 진동까지 사용하여 인간이 매일 주변 환경으로부터 지속적으로 받는 감각 입력의 일부 또는 전부를 모델링합니다. 사용자는 일상생활에서는 불가능한 방식으로 VR 세계가 작동하는 방식에 대한 규칙을 정의할 수 있습니다. 현실 세계에서 사람들은 날 수도 없고, 불을 마실 수도 없고, 벽을 뚫을 수도 없습니다. 그러나 VR에서는 규칙이 인간 코더에 의해 정의되고 변경되거나 삭제될 수도 있기 때문에 이 모든 것이 가능합니다. 이것이 바로 사용자의 아바타가 빵 한 덩어리, 스포츠카, 펭귄 등 상상할 수 있는 거의 모든 것으로 가상 세계에 나타날 수 있는 이유입니다. 가상 세계의 많은 사용자는 이러한 유형의 자유 때문에 가상 세계에 매력을 느낍니다. VR 시뮬레이션은 물리적 공간에서 발생하지 않기 때문에 현실 세계에서 사람들은 얼마나 멀리 떨어져 있는지에 관계없이 '만날' 수 있습니다. 따라서 회의를 진행하기 위해 시뮬레이션된 세계를 사용하는 회사에서는 홍콩과 뉴욕의 직원이 아바타를 통해 동일한 VR 룸을 사용할 수 있습니다. 이러한 가상 회의 공간을 통해 사용자는 음성뿐 아니라 비언어적 신호도 전달할 수 있습니다. 이를 통해 전화 회의보다 더 높은 수준의 신뢰성을 얻을 수 있습니다. 애니메이션의 메커니즘 컴퓨터 시뮬레이션에서 아바타 애니메이션을 사용하려면 단일 워크스테이션이 제공할 수 있는 것보다 더 많은 컴퓨팅 성능이 필요한 경우가 많습니다. 애니메이션 영화를 제작하는 스튜디오에서는 관객이 기대하는 부드럽고 정교한 효과를 만들기 위해 렌더 팜을 사용합니다.

아바타 및 시뮬레이션

렌더링 단계에 앞서 애니메이션 캐릭터나 아바타가 어떻게 보일지, 어떻게 움직일지, 그리고 그 움직임 동안 텍스처가 어떻게 작동할지 디자인하는 데 많은 노력이 들어갑니다. 예를 들어, 바람에 야외에서 빠르게 움직이는 모피로 덮인 아바타는 바람에 날리는 것처럼 보이는 섬유질과 함께 모피 또는 털이 많은 질감을 가져야 합니다. 이 모든 것은 컴퓨터 애니메이터가 디자인하고 조정해야 합니다. 일반적으로 첫 번째 단계 중 하나는 애니메이터가 애니메이션 개체의 시작 및 끝 위치와 모양을 결정하는 키프레임입니다. 그런 다음 애니메이션 변수(avar)를 개체의 여러 지점에 할당하여 시작과 끝 사이의 움직임을 디자인합니다. 이 단계를 "중간" 또는 "트위닝"이라고 합니다. avar가 할당되면 컴퓨터 알고리즘은 서로 조정하여 avar 값을 자동으로 변경할 수 있습니다. 또는 애니메이터가 "사이에" 그래픽을 직접 변경할 수도 있습니다. 프로그램이 실행되면 변화하는 avar의 시각적 표현이 애니메이션으로 나타납니다. 일반적으로 더 많은 avar를 지정할수록 애니메이션의 움직임이 더 자세하고 사실적으로 표현됩니다. 애니메이션 영화에서 주인공은 종종 자신과 관련된 수백 개의 아바타를 가지고 있습니다. 예를 들어, 1995년 영화 토이 스토리에서는 카우보이 우디에게 712개의 아바타가 사용되었습니다. 이는 청중이 대부분의 시간 동안 캐릭터에 관심을 집중하기 때문에 캐릭터의 행동이 생생하다는 것을 보장합니다. 정상적인 표정과 동작에 대한 코딩 표준은 근육의 움직임을 기반으로 개발되었습니다. MPEG-4 국제 표준에는 인간과 휴머노이드 움직임을 애니메이션화하기 위한 86개의 얼굴 매개변수와 196개의 신체 매개변수가 포함되어 있습니다. 이러한 매개변수는 애니메이션 파일로 인코딩되며 비트 전송률(초당 인코딩된 데이터) 또는 파일 크기에 영향을 미칠 수 있습니다.

아바타는 소셜 미디어 이전부터 존재했습니다. 컴퓨터가 더욱 강력해지고 렌더링 기능이 더욱 효율적으로 변하면서 아바타의 세부 묘사와 다양성도 향상되었습니다.

17

프로그래밍 및 코딩의 원리

아바타 및 시뮬레이션

교육적 응용 시뮬레이션은 오랫동안 다양한 직업에서 유용한 훈련 방법이었습니다. 조종사는 비행 시뮬레이터에서 훈련을 받고 운전 시뮬레이터는 면허 시험 준비에 사용됩니다. 최신 응용 프로그램에는 교실을 위한 교사 훈련과 군대 상담 개선이 포함되었습니다. VR은 이러한 직업 시뮬레이션을 훨씬 더 현실적으로 만들 수 있다는 약속을 갖고 있습니다. 더 많은 컴퓨팅 성능이 추가됨에 따라 시뮬레이션 환경에는 예를 들어 일반적인 운전 또는 비행 상황의 많은 주의를 산만하게 하는 요소와 세부적인 주변 환경에 더 잘 근접하는 자극이 포함될 수 있습니다. 3D VR 지금까지 사람들이 경험한 VR의 대부분은 컴퓨터나 영화 화면에서 발생하는 2차원이었습니다. 재미있기는 하지만 이러한 경험은 실제로 VR의 개념을 포착하지 못합니다. Oculus Rift와 같은 3차원(3D) VR 헤드셋은 언젠가는 더욱 실제와 같은 비즈니스 회의와 제품 계획을 촉진할 수 있습니다. 또한 군인 및 응급 요원을 위한 더욱 풍부한 직업 시뮬레이션을 제공할 수도 있습니다. —스콧 짐머, JD

18

참고문헌 Chan, Melanie. 가상 현실: 현대 미디어의 표현. 뉴욕: Bloomsbury, 2014. 인쇄. 이런, 제임스 폴. 통합 담론 분석: 언어, 현실, 가상 세계 및 비디오 게임. 뉴욕: 루트리지, 2015. 인쇄. Griffiths, Devin C. Virtual Ascendance: 비디오 게임과 현실의 재구성. Lanham: Rowman, 2013. 인쇄. 하트, Archibald D. 및 Sylvia Hart Frejd. 디지털 침략: 기술이 귀하와 귀하의 관계를 형성하는 방법. 그랜드래피즈: 베이커, 2013. 인쇄. 키자, 조셉 미가. 정보화 시대의 윤리적, 사회적 문제. 5판 런던: 스프링어, 2013. 인쇄. 선취권, 트레이시. "가상 현실은 비디오 게임만을 위한 것이 아닙니다." 로스앤젤레스 타임즈. 트리뷴, 2015년 1월 8일. 웹. 2016년 3월 23일. 파리시, 토니. 가상 현실 학습: 데스크탑, 웹 및 모바일을 위한 몰입형 경험 및 애플리케이션 개발. 세바스토폴: 오라일리, 2015. 인쇄.

B 이진 16진수 표현 연구 분야 컴퓨터 과학; 컴퓨터 공학; 소프트웨어 엔지니어링 개요 이진수 시스템은 2진수 시스템입니다. 디지털 장치에서 데이터를 저장하고 수학 연산을 수행하는 데 사용됩니다. 16진수 체계는 16진수 체계입니다. 이를 통해 인간은 이진 데이터로 저장된 많은 숫자를 효율적으로 작업할 수 있습니다. 기본 용어 기수-16: 0~9, A~F의 16개 기호를 사용하는 수 체계. 기수-2 체계: 숫자 0과 1을 사용하는 수 체계. 비트: 숫자를 표현할 수 있는 단일 이진수 0 또는 1의 값을 갖습니다. 바이트: 8비트 그룹. 니블: 4개의 비트 그룹.

이진수 체계 이해하기 수학적 숫자 체계는 정의된 기호 집합을 사용하여 숫자를 표현하는 방법입니다. 숫자 체계는 숫자를 나타내기 위해 사용하는 기호의 수에서 이름을 따옵니다. 예를 들어, 가장 일반적인 수학 숫자 체계는 10진법 또는 10진법 체계입니다. 십진법은 "10"을 의미합니다. 숫자의 기호로 0부터 9까지의 10자리 숫자를 사용합니다. 그러나 숫자 체계는 고유 기호 수에 따라 달라질 수 있습니다. 예를 들어, 두 개의 숫자 기호(0과 1)를 사용하는 숫자 체계를 이진법 또는 2진수 체계라고 합니다. 10진수와 2진수 체계 모두 숫자를 나타낼 때 비슷한 방식으로 숫자의 상대적 위치를 사용합니다. 가장 오른쪽 또는 첫 번째 위치의 값은 시스템에서 사용되는 자릿수에 0의 거듭제곱을 곱합니다. 10진법의 경우 이 값은 100입니다. 2진법의 경우 이 값은 20입니다. 100과 20은 모두 1입니다. 0의 거듭제곱으로 올린 숫자 x는 1과 같습니다. 사용되는 거듭제곱은 1만큼 증가합니다. 두 번째 위치 등등.

10진수/2진수 테이블. 표는 8에서 1까지의 위치별, 7승부터 0승까지의 거듭제곱에 따라 이진 기반 값과 십진수 기반 값을 구성합니다.

10진수 체계를 사용하여 정수 234는 기호 2, 3, 4를 위치 3, 2, 1에 각각 배치하여 표시됩니다. 19

프로그래밍 및 코딩의 원리

2진수 16진수 표현

십진수/숫자 테이블. 표는 소수점 값과 자릿수를 3부터 1까지 위치별로 정리한 것입니다.

10진법에서는 234 = (2 × 100) + (3 × 10) + (4 × 1) 또는 (2 × 102) + (3 × 101) + (4x100)입니다. 이진법에서는 기호 0과 1의 상대적 위치를 사용하여 정수 234를 다른 방식으로 표현합니다.

바이너리/비트 테이블. 테이블은 Binary 기반의 값과 Bit 값을 8에서 1까지 위치별로 정리한 것입니다.

이진법에서는 234 = (1 × 128) + (1 × 64) + (1 × 32) + (0 × 16) + (1 × 8) + (0 × 4) + (1 × 2) + ( 0 × 1) 또는 234 = (1 × 27) + (1 × 26) + (1 × 25) + (0 × 24) + (1 × 23) + (0 × 22) + (1 × 21) + (0 × 20).

시스템. 이러한 장치는 각각 두 상태 간에 전환할 수 있는 전자 부품인 트랜지스터를 사용하여 데이터를 저장합니다. 한 상태는 이진수 0을 나타내고 다른 상태는 이진수 1을 나타냅니다. 이러한 이진수는 저장 및 조작할 수 있는 데이터의 가장 작은 단위인 비트입니다. 단일 비트를 사용하여 값 0 또는 1을 저장할 수 있습니다. 1보다 큰 값을 저장하려면 비트 그룹이 사용됩니다. 4비트 그룹은 니블입니다. 8비트 그룹이 바이트입니다.

이진수 체계의 중요성 이진수 체계는 숫자를 저장하고 컴퓨터에서 수학 연산을 수행하는 데 사용됩니다.

샘플 문제

디지털 애플리케이션에서 이진수를 사용하려면 숫자를 이진수 값에서 십진수 값으로 변환할 수 있는 능력이 중요합니다. 다음 이진 바이트를 십진수 값으로 변환하십시오. 10111001 답: 이진수 바이트 10111001의 십진수 값은 185입니다. 십진수 값은 차트를 사용하여 계산한 다음 결정할 수 있습니다.

8

7

6

5

4

2

1

128 또는 2

64 또는 2

32 또는 2

16 또는 2

8 또는 2

4 또는 2

2 또는 2

1 또는 20

1

1

1

1

1

7

6

5

4

2

1

= (1 × 27) + (0 × 26) + (1 × 25) + (1 × 24) + (1 × 23) + (0 × 22) + (0 × 21) + (1 × 20) = ( 1 × 128) + (0 × 64) + (1 × 32) + (1 ×16) + (1 × 8) + (0 × 4) + (0 × 2) + (1 × 1) = 185 20

프로그래밍 및 코딩의 원리

십진수 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50

2진수 16진수 표현

16진수 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32

바이너리 00000000 00000001 00000010 00000011 00000100 00000101 00000110 00000111 00001000 00001001 00001010 00001011 00001100 00 001101 00001110 00001111 00010000 00010001 00010010 00010011 00010100 00010101 00010110 00010111 00011000 00011001 00011010 00011011 00011100 00011101 00011110 00011111 00100000 00100001 00100010 00100011 00100100 00100101 00100110 00100111 0010100 0 00101001 00101010 00101011 00101100 00101101 00101110 00101111 00110000 00110001 00110010

ASCII(미국 정보 교환 표준 코드)는 기본 문자를 컴퓨터가 읽을 수 있는 숫자 코드로 변환하는 데 사용된 초기 시스템이었습니다. 키보드의 공통 문자는 10진수와 16진수 코드로 제공됩니다.

21

프로그래밍 및 코딩의 원리

2진수 16진수 표현

16진수를 사용하여 이진수 단순화하기 16진수 체계는 16진법 체계입니다. 숫자 0부터 9까지와 문자 A부터 F를 사용하여 숫자를 나타냅니다. 16진수 또는 16진수 A의 10진수 값은 10입니다. 16진수 B는 11, C는 12, D는 13, E는 14, F는 15입니다. 16진수에서 값 10은 16과 같습니다. 십진법. 16진수를 사용하여

바이너리 니블은 단일 기호로 표시될 수 있습니다. 예를 들어, 10진수 값 15에 대해 이진 니블 1111 대신 16진수 F를 사용할 수 있습니다. 이진 니블에서는 16가지의 서로 다른 비트 조합이 가능합니다. 따라서 16개의 서로 다른 기호가 있는 16진수 시스템은 니블 작업에 이상적입니다. 이진수 사용의 한 가지 단점은 큰 숫자를 나타내려면 많은 수의 숫자가 필요하다는 것입니다.

10진수/16진수 테이블. 표는 8에서 1까지의 위치, 7에서 0까지의 거듭제곱을 기준으로 10진수 기반 값과 16진수 기반 값을 구성합니다.

정수. 예를 들어, 1,000,000은 11110100001001000000과 같이 이진수로 표시됩니다. 동일한 숫자는 F4240과 같이 16진수로 표시되며 이는 (15 × 65,536) + (4 × 4,096) + (2 × 256) + (4 × 16)과 같습니다. + (0 × 1).

위치

5 4승 16진수 65,536 또는 164 16진수 F 또는 15

4 제3의 권력 4,096 또는 163 4

컴퓨터는 이진수로 된 큰 숫자를 빠르고 쉽게 처리할 수 있습니다. 인간은 이진수를 사용하여 큰 숫자를 작업하는 데 더 어려움을 겪습니다. 2진수는 16진수보다 더 많은 숫자를 사용하여 큰 숫자를 나타냅니다.

3 초 위력 256 또는 162 2

2 1차 분말 16 또는 161 4

1 제로 전력 1 또는 160 0

16진수/16진수 표. 표는 16진수 기반 값과 해당 16진수를 5에서 1까지 위치별로 구성합니다.

숫자. 따라서 16진수는 이진수보다 쓰기, 읽기, 처리가 더 쉽습니다. —Maura Valentino, MSLIS 참고문헌 호주 국립 대학교. 이진 표현과 컴퓨터 산술. Australian National U, n.d. 디지털 파일. 치버, 에릭. “숫자의 표현.” 스와스모어 칼리지. 스워스모어 칼리지, n.d. 편물. 2016년 2월 20일. Govindjee, S. 숫자의 내부 표현. 토목환경공학과, 22

캘리포니아 버클리대학교, 2013년 봄. 디지털 파일. 글레이저, 안톤. 이진수 및 기타 비10진수 계산의 역사. 개정판. 로스앤젤레스: 토마시(Tomash), 1981년. 인쇄. Lande, Daniel R. “이진수 시스템의 개발과 컴퓨터 과학의 기초.” 수학 애호가 2014년 12월 1일: 513–40. 인쇄. “데이터 표현에 대한 자습서: 정수, 부동 소수점 숫자 및 문자.” NTU. 교육. Nanyang Technological U, 2014년 1월. Web. 2016년 2월 20일.

프로그래밍 및 코딩의 원리

부울 연산자

부울 연산자 연구 분야 소프트웨어 개발; 코딩 기술; 컴퓨터 과학 개요 부울 또는 논리 연산자는 조건이 참인지 거짓인지 테스트하는 부울 표현식을 만드는 데 사용됩니다. if 문과 같은 문은 부울 표현식을 사용하여 컴퓨터 프로그램이 명령 및 기타 문을 처리하는 순서를 제어합니다. 주요 용어 if-statement: 특정 조건이 참인 경우 코드 블록을 실행하도록 컴퓨터 프로그램에 지시하는 명령입니다. 연산자: 특정 수학적, 관계형 또는 논리적 연산을 나타내는 문자입니다. 문자열: 컴퓨터 프로그래밍에서 특정 순서로 배열된 문자로 구성된 데이터 유형입니다.

부울 표현식 이해하기 컴퓨터 프로그래밍에서 표현식은 종종 정수, 문자열, 상수 또는 변수를 사용하여 일부 값(수학 방정식과 유사)을 설명합니다. 부울 표현식은 평가 시 "true/false", "yes/no" 또는 "on/off"의 두 값 중 하나를 반환하는 표현식입니다. 예를 들어, 부울 표현식 x > 5는 x = 4인 경우 "false" 값을 반환하고 x = 6인 경우 "true" 값을 반환합니다. 부울 표현식은 정수, 문자열 및 변수를 포함한 다양한 데이터 유형과 함께 사용할 수 있습니다. . 부울 연산자를 사용하여 복잡한 부울 표현식을 만들 수 있습니다. 부울 연산자는 두 개 이상의 부울 표현식을 단일 표현식으로 결합하고 부울 표현식의 값을 반대로 바꿀 수도 있습니다. 세 가지 주요 부울 연산자(AND, OR 및 NOT)가 있습니다. 프로그래밍 언어마다 AND의 경우 && 또는 ||와 같이 서로 다른 기호를 사용하여 이를 나타냅니다. Java의 OR에 대해 사용되지만 용도는 동일하게 유지됩니다. AND 연산자는 두 개의 부울 표현식을 두 표현식이 모두 참인 경우에만 참으로 평가되는 단일 표현식으로 결합합니다. 두 표현식 중 하나가 false로 평가되면 결합된

표현이 거짓입니다. 두 식이 OR 연산자로 결합되면 결합된 식이 둘 중 하나가 true이면 true로 평가되고 둘 다 false인 경우에만 false로 평가됩니다. NOT 연산자는 부울 표현식의 값을 반대로 바꿉니다. 예를 들어, x > 5 표현식은 x 값이 5보다 큰 경우 true로 평가됩니다. 그러나 NOT 연산자를 사용하면 이 결과를 반전할 수 있습니다. NOT x > 5 표현식은 x 값이 5보다 큰 경우 false로 평가됩니다. 연산이 수행되는 순서를 "우선순위"라고 합니다. 산술은 부울 연산 전에 수행됩니다. 우선 순위가 높은 부울 연산자는 우선 순위가 낮은 연산자보다 먼저 평가됩니다. NOT은 AND보다 먼저 평가되고, AND는 OR보다 먼저 평가됩니다. 중첩된 괄호를 사용하여 기본 우선순위를 재정의할 수 있습니다. 가장 안쪽 괄호 안에 있는 표현식이 먼저 평가되고, 그 다음에는 이를 둘러싸는 괄호 안에 포함된 표현식이 평가됩니다. 그러나 AND 연산자를 사용할 때 구성 요소 표현식이 false로 평가되면 false 표현식 뒤에 오는 구성 요소 표현식은 평가되지 않습니다. 마찬가지로 OR 연산자를 사용할 때 구성 요소 표현식이 true로 평가되면 true 표현식 뒤에 오는 구성 요소 표현식은 평가되지 않습니다. 이를 "단락"이라고 합니다. 명령문이 실행되는 순서를 "제어 흐름"이라고 합니다. if-statement 및 if-else 문과 같은 문은 프로그램의 제어 흐름을 변경합니다. if 문은 조건을 테스트하고 해당 조건이 true이면 제어 흐름이 지정된 코드 블록으로 전달됩니다. 조건이 거짓이면 아무 작업도 수행되지 않습니다. if-else 문에서 조건이 false이면 제어 흐름이 다른 코드 블록으로 전달됩니다. 부울 표현식은 if-문 및 if-else 문에서 사용되는 조건을 만드는 데 사용됩니다.

부울 연산자를 효과적으로 사용하기 컴퓨터 프로그램은 사람들이 작업을 보다 효율적으로 수행할 수 있도록 설계되는 경우가 많습니다. 많은 작업이 서로 다른 조건이 참인지 거짓인지에 따라 결정을 내려야 하기 때문에 부울 연산자는 컴퓨터 프로그램이 이러한 작업을 효과적으로 완료하도록 돕습니다. 실제로 간단한 부울 표현식은 단어가 23개인 것처럼 코딩되므로 간단한 조건부 테스트를 코드로 쉽게 변환할 수 있습니다.

부울 연산자

일상언어에서 사용됩니다. 다음 일반 언어 설명을 고려하십시오. "콘서트 날짜가 2018년 9월 1일이고 콘서트 유형이 포크 음악인 경우 마스터 목록에서 콘서트를 삭제합니다." 이 문은 다음과 같은 코드로 표현될 수 있습니다. IF (Date = “9/1/18”) AND (ConcertType = “folk music”) THEN Delete Concert END IF 그러나 불리언 표현이 복잡해질수록 표현하기가 점점 어려워집니다. 올바르게 이해하세요. 예를 들어 NOT x < 5 AND y > 1 OR country = “UK”라는 표현식은 연산자의 우선 순위를 알고 있는 경우에만 올바르게 실행될 수 있습니다. 프로그래머는 괄호를 사용하여 해당 표현식을 더 쉽게 이해할 수 있도록 원하는 순서 우선 순위를 정의합니다. 예를 들어 위 표현식은 다음과 같이 다시 작성할 수 있습니다. NOT (x < 5 AND (y > 1 OR country = “UK”))

실제 조건문 If 문과 if-else 문을 사용하여 시험 점수에 따라 문자 등급을 할당할 수 있습니다. 먼저, 부울 표현식을 사용하여 시험이 완료되고 채점되었는지 확인합니다. 문자 등급을 부여하려면 두 조건이 모두 참이어야 하기 때문에 AND 연산자가 사용됩니다. IF (ExamComplete = 1) AND (ExamScored = 1) THEN ExamScore 검색 END IF Score라는 변수에 ExamScore 저장 다음으로 코드에서는 if 문의 체인을 사용하여 Grade 변수에 문자 등급을 할당합니다. 첫 번째 명령문은 둘 이상의 표현식을 평가할 필요가 없기 때문에 부울 연산자를 사용하지 않습니다. 다음 세 개의 문에서는 코드가 실행되려면 두 식이 모두 참이어야 하기 때문에 부울 연산자 AND를 사용합니다. 마지막 if 문은 다른 모든 if 문이 실행되지 않는 경우에만 실행되므로 부울 표현식을 포함하지 않습니다.

24

프로그래밍 및 코딩의 원리

IF (점수 >= 90) THEN 등급 = "A" ELSE IF (점수 >= 80) AND (점수 < 90) THEN 등급 = "B" ELSE IF (점수 >= 70) AND (점수 < 80) THEN 등급 = “C” ELSE IF (점수 >= 60) AND (점수 < 70) THEN 등급 = “D” ELSE 등급 = “F” END IF

실제 세계의 부울 연산자 부울 연산자는 데이터베이스에서 정보를 검색할 때 일반적으로 사용됩니다. 예를 들어, 학생이 기후 변화에 관한 연구 논문을 작성해야 한다면 "지구 온난화 OR 기후 변화"라고 입력할 수 있습니다. 이렇게 하면 라이브러리의 데이터베이스가 두 구문 중 하나를 포함하는 결과를 반환하도록 지시하므로 반환되는 전체 결과 수가 늘어납니다. 부울 연산자는 순차적인 제어 흐름을 원하지 않는 소프트웨어를 프로그래밍하는 데에도 사용됩니다. 이를 활성화하는 조건을 통해 프로그램은 선택을 통해 분기할 수 있을 뿐만 아니라 코드 섹션을 루프(또는 반복)할 수도 있습니다. 따라서 부울 연산자를 사용하면 더 복잡한 소프트웨어를 개발할 수 있습니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2014. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2016. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016. Van Roy, Peter 및 Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004.

프로그래밍 및 코딩의 원리

분기 논리

분기 논리 연구 분야 코딩 기술; 소프트웨어 개발; 컴퓨터 과학 개요 분기 논리는 하나 이상의 조건에 따라 서로 다른 코드 섹션을 실행해야 할 때 컴퓨터 프로그래밍에서 사용됩니다. 가능한 각 코드 경로는 또 다른 분기를 만듭니다. 복잡한 논리를 구현하는 데 사용할 수 있는 분기 수에는 제한이 없습니다. 주요 용어 부울 논리: 변수에 "true" 또는 "false"라는 두 가지 가능한 값만 있는 대수학 유형입니다. if-then-else: 부울 표현식을 평가한 다음 표현식이 참인지 거짓인지에 따라 다양한 명령어 세트를 실행하는 조건문입니다. 매개변수: 컴퓨터 프로그래밍에서 더 큰 프로그램 내의 함수나 서브루틴에 전달되는 할당된 값이 있는 변수입니다.

분기 논리란 무엇입니까? 분기 논리는 프로그램 실행 중에 특정 조건이 충족되는지 여부에 따라 컴퓨터 프로그램이 다양한 명령 세트를 따르는 의사 결정의 한 형태입니다. 각 명령어 세트는 서로 다른 분기를 나타냅니다. 실행되는 코드 분기는 분기 프로시저의 매개변수에 할당된 값에 따라 달라집니다. 이러한 매개변수의 값은 사용자가 입력할 수도 있고 이전 절차의 출력에 의해 생성될 수도 있습니다. 분기 논리의 일반적인 형태는 if-thenelse 문입니다. 이러한 명령문은 일반적으로 다음과 같은 형식을 취합니다. IF 조건 1 THEN 결과 A ELSE 결과 B END IF 이 명령문에서는 부울 논리를 사용하여 주어진 조건(조건 1)을 테스트하며 해당 조건이 참인지 거짓인지 확인할 수 있습니다. 조건 1이 다음과 같이 평가되는 경우

true이면 결과 A를 생성하기 위해 코드가 실행됩니다. false로 평가되면 결과 B를 생성하기 위해 코드가 실행됩니다. if-then-else 문의 정확한 구문은 프로그래밍 언어에 따라 다르지만 논리는 동일하게 유지됩니다. 일부 프로그래밍 언어에서는 "else" 문이 선택 사항입니다. 이러한 경우 조건문이 거짓으로 평가되면 프로그램은 "end if" 문 뒤에 오는 명령을 계속 진행합니다. 여러 분기를 사용하여 여러 조건을 테스트할 수 있습니다. 다른 조건을 테스트하기 위해 위의 예에 "else if" 문을 추가할 수 있습니다. IF 조건 1 THEN 결과 A ELSE IF 조건 2 THEN 결과 B ELSE IF 조건 3 THEN 결과 C ELSE 결과 D END IF 위 구조에서는 세 가지 조건이 적용됩니다. 테스트를 거쳤으며 네 가지 결과가 가능합니다. 대부분의 애플리케이션은 코드를 변형 없이 선형적으로 실행하지 않습니다. 오히려 애플리케이션이 실행될 때마다 다른 입력으로 인해 다른 결과가 발생할 수 있습니다. 예를 들어, 워드 프로세싱 응용 프로그램에서 컴퓨터 키보드의 동일한 문자 키를 누르면 다른 특정 키를 동시에 누르는지 여부에 따라 결과가 달라집니다. 사용자가 문자 a를 누르면 애플리케이션은 해당 문자가 대문자 A로 표시되어야 하는지, 소문자 a로 표시되어야 하는지 또는 다른 문자로 표시되어야 하는지 결정하기 전에 해당 사용자가 Shift 키나 Ctrl 키도 눌렀는지 여부를 평가해야 합니다. 대신 코드를 실행해야 합니다. 이 출력의 결정 구조는 다음과 유사할 수 있습니다. IF Shift 키도 누른 다음 ELSE IF 제어 키도 누른 다음 전체 문서 선택 ELSE END IF 25 표시

분기 논리

분기 논리 모델에는 여러 이벤트 시퀀스가 ​​있습니다. 어떤 지침을 따르는지는 경로의 특정 노드에 따른 결과에 따라 달라집니다. 스크립트 A가 완료된 후 출력이 예상 결과와 일치하면 스크립트 B가 실행됩니다. 그렇지 않은 경우 스크립트 C가 실행됩니다.

이 예에서 평가되는 부울 문은 "Shift 키도 눌려졌습니다." 및 "Control 키도 눌렸습니다."입니다. 사용자가 누른 키는 매개변수로 저장된 다음 해당 매개변수를 사용하여 문이 참인지 평가하는 분기 프로시저로 전달됩니다. 사용자의 작업으로 인해 동일한 코드 섹션이 실행될 때마다 새로운 결정이 내려질 수 있습니다.

분기 논리는 언제 사용됩니까? 컴퓨터 프로그램과 애플리케이션은 수신되는 입력에 따라 서로 다른 코드 조각을 실행할 수 있어야 합니다. 예를 들어, 분기 논리는 참가자가 자신에게 적용되는 질문만 받을 수 있도록 설문조사에서 자주 사용됩니다. 설문조사에 특정 성별에만 적용되는 질문이 포함된 경우 첫 번째 설문조사 질문에서 참가자의 성별을 물을 수 있습니다. 참가자의 응답은 매개변수로 저장되어 어떤 추가 질문이 제시될지 결정합니다. 모든 참가자가 가능한 모든 질문을 모두 읽어서 각 질문이 자신에게 적용되는지 여부를 결정해야 한다면 설문조사는 훨씬 더 어렵고 시간이 많이 걸리며 더 많은 오류가 발생할 것입니다. 분기 논리는 마케팅과 같은 분야의 워크플로에도 사용됩니다. 고객이 26페이지 중 한 페이지를 본 경우

프로그래밍 및 코딩의 원리

웹사이트에서 특정 마케팅 자료가 해당 고객에게 전송됩니다. 다른 페이지를 보면 다른 자료가 전송됩니다. 확인해야 할 조건이 많으면 분기 논리의 중첩 구조로 인해 계획이 혼란스러울 수 있습니다. 프로그래머는 스크립트 도구를 사용하여 사용자가 조건문을 평가하는 데 사용할 매개변수를 입력할 수 있는 양식 구조를 만들 수 있습니다. 이 기술을 사용하면 입력되는 데이터에 제한을 둘 수 있으므로 오류가 줄어듭니다. 스크립트 도구를 사용하여 입력 매개변수에서 계산된 정보를 사용자에게 제공할 수도 있습니다. 분기 논리를 사용하면 몇 가지 사소한 단점이 있습니다. 예를 들어, "else if" 문의 중첩 구조로 인해 일부 컴파일러에서는 어려움이 더해지고 조건문은 코드 처리 속도를 늦출 수 있습니다. 이러한 어려움을 극복하기 위해 더 빠른 구조가 개발되었습니다.

분기 논리는 어떻게 사용됩니까? 분기 논리는 다양한 분야의 컴퓨터 프로그램에서 사용됩니다. 예를 들어, 온라인 소매점에서 일부 품목은 사용자가 구매 여부 등 한 가지 결정만 내리면 되는 반면, 다른 품목에서는 사용자가 색상과 사이즈를 선택해야 합니다. 색상을 먼저 선택하면 매장에서는 해당 색상으로 구매 가능한 사이즈만 표시하며 그 반대의 경우도 마찬가지입니다. 이는 상점이 사용자에게 존재하지 않는 선택 사항을 제시하고 프로세스 후반까지 알리지 않은 경우보다 훨씬 더 편리하고 사용자에게 덜 실망스럽습니다. 세 가지 색상(소형 및 중형), 네 가지 색상(대형), 한 가지 색상(특대형)으로 제공되는 품목 목록은 다음 결정 구조를 따를 수 있습니다. IF 사이즈 = 소형 THEN 색상 = 파란색, 녹색, 빨간색 ELSE IF 크기 = 중간 THEN 색상 = 파란색, 빨간색, 노란색 ELSE IF 크기 = 대형 THEN 색상 = 파란색, 녹색, 빨간색, 노란색 ELSE 색상 = 파란색 END IF 사용자가 크기보다 색상을 선택하는 경우 후속 결정 구조는 유사해 보입니다. 두 구조는 더 큰 if-then-else 문 내에 중첩될 수 있습니다.

프로그래밍 및 코딩의 원리

크기나 색상을 먼저 선택했는지에 따라 둘 중 하나를 실행합니다.

분기 논리가 중요한 이유는 무엇입니까? 많은 컴퓨터 프로그램에는 의사 결정이 필요하며 분기 논리는 의사 결정 방법 중 하나입니다. 이는 컴퓨터 프로그래밍에서 매우 일반적이므로 많은 언어에는 훨씬 적은 코드 줄로 분기 절차를 실행할 수 있는 대체 구조가 있습니다. 예를 들어 조건 연산자는 단 한 줄의 코드를 사용하여 if-then-else 문과 동일한 결과를 생성할 수 있습니다. 스위치 문은 테이블을 사용하여 주어진 조건에 대해 많은 값을 확인하는 좀 더 복잡한 형태의 분기 논리입니다. 분기 논리는 현대 프로그래밍에서 광범위하게 사용되며 프로그램이 더욱 복잡해짐에 따라 많은 발전을 가져왔습니다.

분기 논리

참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2015. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2017. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004.

—마우라 발렌티노, MSLIS

27

C 문자 및 문자열 소프트웨어 개발 연구 분야; 코딩 기술; 컴퓨터 과학 개요 문자와 문자열은 컴퓨터 프로그램이 데이터를 저장, 검색 및 조작하도록 지시하는 프로그래밍 언어의 기본 단위입니다. 문자는 프로그래밍 언어의 개별 문자, 숫자, 구두점 및 기타 기호를 나타냅니다. 문자열은 특정 순서로 배열된 문자 그룹입니다. 주요 용어 명령: 미리 정의된 특정 작업을 수행하도록 컴퓨터에 지시하는 사용자가 컴퓨터에 제공하는 명령입니다. 보간: 컴퓨터 프로그램이 문자열 내의 변수 표현식을 평가하는 프로세스입니다. 순서: 코드가 배열되어 출력에 영향을 미치는 특정 순서입니다. 문자열 리터럴: 작은따옴표 또는 큰따옴표로 묶인 소스 코드에 나타나는 고정된 문자 시퀀스입니다. 구문: 컴퓨터 프로그래밍에서 프로그래밍 언어의 요소를 배열하는 방법을 제어하는 ​​규칙입니다.

문자와 문자열이란 무엇입니까? 문자는 프로그래밍 언어의 가장 기본적인 단위입니다. 문자에는 문자, 숫자, 구두점, 공백 및 기타 기호가 포함됩니다. 컴퓨터 프로그래밍에서는 문자를 그룹화하여 문자열이라는 정보 단위를 형성할 수 있습니다. 하나 이상의 문자를 순차적으로 배치하여 문자열을 만들 수 있습니다. 예를 들어 O, P, T 문자는 문자입니다. 이 세 문자는 28이 될 수 있습니다.

결합되어 "TOP", "OPT" 및 "POT" 문자열을 생성합니다. 동일한 문자를 사용하는 문자열이라도 문자가 배열된 순서에 따라 다른 의미와 출력을 가질 수 있습니다. 컴퓨터 프로그램은 변수를 사용하여 데이터를 저장하고 조작합니다. 변수는 고유한 기호 이름으로 참조됩니다. 변수에 저장된 데이터를 값이라고 합니다. 숫자 및 텍스트 정보를 포함하여 다양한 유형의 데이터를 변수로 저장할 수 있습니다. 예를 들어, 오류 메시지를 보관하는 데 사용되는 변수의 이름은 ErrorMessage일 수 있습니다. 컴퓨터 프로그램이 사용자에게 오류가 발생했음을 알려야 하는 경우 "Error!"라는 문자열을 저장하여 이를 수행할 수 있습니다. 변수 ErrorMessage에 있습니다. 그런 다음 프로그램은 컴퓨터에 오류 메시지를 표시하도록 지시하는 명령을 실행할 수 있습니다. 프로그래밍 언어에서 단어와 기호의 배열과 의미를 제어하는 ​​규칙은 구문입니다. 예를 들어, 한 컴퓨터 언어에서는 다음 구문을 사용하여 오류 메시지를 표시할 수 있습니다. ErrorMessage = “오류!” echo ErrorMessage 이 예에서는 ErrorMessage가 변수입니다. "오류!" 문자열입니다. 명령 이름은 echo이며 명령문은 줄 바꿈으로 구분됩니다. 반면, 다른 언어에서는 동일한 작업을 수행하기 위해 다른 구문을 사용할 수 있습니다. ErrorMessage = 'Error!'; 인쇄 화면 오류 메시지; 이 예에서는 ErrorMessage가 변수이고 “Error!”입니다. 문자열입니다. 그러나 printscreen이 명령이고 명령문은 세미콜론과 줄 바꿈으로 구분됩니다. 두 예 모두에서 문자열 Error! ~이다

프로그래밍 및 코딩의 원리

첫 번째 명령문에서 변수 ErrorMessage의 값으로 저장됩니다. 그런 다음 문자열은 두 번째 명령문의 명령에 의해 사용자 모니터에 표시됩니다. 문자열 값을 생성하는 방법에는 여러 가지가 있습니다. 한 가지 방법은 문자열 리터럴을 사용하는 것입니다. 문자열 리터럴은 고정된 값을 가진 변수를 나타내는 문자열입니다. 문자열 리터럴은 소스 코드에서 따옴표로 묶입니다. 예를 들어 문자열 "John Smith"는 다음과 같이 CustomerName 변수에 저장될 수 있습니다. CustomerName = "John Smith" 문자열 리터럴은 다양한 자리 표시자를 결합하여 생성될 수도 있습니다. 예를 들어 CustomerName 변수는 다음과 같이 생성될 수도 있습니다. FirstName = "John" LastName = "Smith" CustomerName = FirstName + " " + LastName 이러한 방식으로 두 개의 문자열 변수를 함께 추가하는 프로세스를 연결이라고 합니다. 변수, 문자열 리터럴 및 상수를 결합하여 문자열을 만들 수도 있습니다. 컴퓨터 프로그램이 문자열 내의 다양한 자리 표시자를 평가하는 것을 보간이라고 합니다. 예를 들어 FirstName 및 LastName 변수는 문자열 리터럴 "Dear" 및 공백과 함께 다음과 같이 Salutation 변수에 문자열 값 "Dear John Smith"를 저장하는 데 사용될 수 있습니다. FirstName = "John" LastName = " Smith” Salutation = “Dear” + “ “ + FirstName + “ “ + LastName 이 예에서 문자열 값 “John”은 변수 FirstName에 저장되고 문자열 값 “Smith”는 변수 LastName에 저장됩니다. 코드의 마지막 줄에서는 보간법을 사용하여 변수에 저장된 데이터를 문자열 리터럴 "Dear" 및 공백과 결합하여 문자열 값 "Dear John Smith"를 저장하는 Salutation이라는 새 변수를 만듭니다.

문자열에 특수 문자 사용 이전 예에서 설명한 것처럼 컴퓨터 언어 구문에서는 큰따옴표를 사용하여 다음과 같이 문자열을 정의할 수 있습니다. LastName = “Smith”

문자와 문자열

큰따옴표와 같은 문자가 문자열을 정의하는 데 사용되는 경우 이를 특수 문자라고 합니다. 문자열을 정의하기 위해 특수 문자를 사용하면 특수 문자 자체를 문자열 내에서 사용해야 할 때 문제가 발생합니다. 프로그래밍 언어는 문자열을 이스케이프하기 위해 문자 조합을 사용하여 이 문제를 해결합니다. 예를 들어, 큰따옴표로 묶인 문자열에 사용된 큰따옴표는 다음과 같이 백슬래시로 표시될 수 있습니다. MyQuotation = “/”Hello there, Mr. Jones!/”“ 이 코드는 “Hello”라는 텍스트를 출력합니다. 저기, 존스 씨!” 사용자의 모니터에 백슬래시는 문자열의 끝을 표시하는 것에서 문자열 내의 일반 문자를 나타내는 것까지 앞에 있는 따옴표의 의미를 변경합니다.

실제 데이터 처리에서의 문자열 및 문자 문자와 문자열을 사용하여 문자 언어를 구성하는 기호를 저장하고 조작하는 것은 컴퓨터 프로그래밍에서 흔한 일입니다. 문자열은 모든 유형의 텍스트 데이터를 처리하는 데 사용됩니다. 컴퓨터 프로그램은 문자열과 문자를 사용하여 광범위한 텍스트 정보를 빠르고 정확하게 정렬, 검색 및 결합합니다. 컴퓨터 프로그래밍에서 텍스트 데이터가 널리 사용되면서 프로그래밍 언어와 소프트웨어 전반에 걸쳐 텍스트 공유를 촉진하는 산업 표준이 개발되었습니다. 예를 들어, 텍스트 데이터를 처리, 표시 및 저장하는 데 가장 널리 사용되는 시스템인 유니코드는 128,000개 이상의 문자와 135개 언어에 대한 인코딩을 표준화합니다. 광범위한 사용으로 인해 문자열과 문자는 컴퓨터 및 정보 과학의 초석 중 하나를 형성합니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2014. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, 옥스포드 UP, 1999. 29

프로그래밍 및 코딩의 원리

클라우드 컴퓨팅

Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, 피어슨, 2016.

반 로이, 피터, 세이프 하리디. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004.

클라우드 컴퓨팅 연구 분야 정보 기술; 컴퓨터 과학; 소프트웨어 개요 클라우드 컴퓨팅은 컴퓨터 저장, 처리 및 프로그램 액세스가 가상 네트워크를 통해 처리되는 네트워킹 모델입니다. 클라우드 컴퓨팅은 가장 수익성이 높은 IT 트렌드 중 하나입니다. 구독을 통해 다양한 클라우드 기반 소비자 제품을 이용할 수 있습니다. 기본 용어 하이브리드 클라우드: 암호화된 연결을 통해 연결된 프라이빗 클라우드 플랫폼과 퍼블릭 클라우드 서비스를 결합하는 클라우드 컴퓨팅 모델입니다. 서비스형 인프라: 인터넷을 통해 하드웨어 시스템을 연결하여 추가 컴퓨팅 리소스를 제공하는 클라우드 컴퓨팅 플랫폼. "서비스로서의 하드웨어"라고도 합니다. 다중 테넌트(multitenancy): 여러 사용자가 서로 다른 위치에서 소프트웨어에 액세스하고 사용할 수 있도록 하는 소프트웨어 프로그램입니다. 서비스형 플랫폼: 사용자가 웹 애플리케이션을 개발, 실행 및 관리할 수 있는 가상 머신을 제공하는 클라우드 컴퓨팅 카테고리입니다. 서비스형 소프트웨어: 소프트웨어가 공급자의 데이터 센터에 저장되고 가입자가 액세스하는 소프트웨어 서비스 시스템. 타사 데이터 센터: 인프라 유지 관리를 담당하는 별도의 회사에서 제공하는 데이터 센터 서비스입니다.

클라우드 네트워크 설계 클라우드 컴퓨팅은 사용자가 원격으로 데이터를 저장하거나 처리할 수 있게 해주는 네트워킹 모델입니다. 몇몇 주요 인터넷 서비스 및 콘텐츠 제공업체는 30개 이상의

사용자 데이터를 위한 클라우드 기반 스토리지. 다른 것들은 소프트웨어 프로그램에 대한 가상 액세스나 향상된 처리 기능을 제공합니다. 클라우드 컴퓨팅은 인터넷 서비스 산업에서 가장 빠르게 성장하는 분야 중 하나입니다. 이는 정부와 연구 기관에서도 채택되었습니다.

클라우드 네트워크 유형 프라이빗 클라우드는 제한된 수의 알려진 사용자에게 제공되는 가상 네트워크입니다. 이는 기업이나 연구 기관에서 자주 사용됩니다. 프라이빗 클라우드를 운영하려면 현장 또는 제3자를 통한 인프라(소프트웨어, 서버 등)가 필요합니다. 퍼블릭 클라우드는 일반 대중이나 유료 가입자가 사용할 수 있습니다. 퍼블릭 클라우드 서비스 제공업체는 인프라를 소유하고 관리합니다. 프라이빗 클라우드와 달리 퍼블릭 클라우드는 알 수 없는 사용자 풀에 대한 액세스를 제공하므로 보안이 취약합니다. 퍼블릭 클라우드는 무료이며 모든 사용자가 수정할 수 있는 오픈 소스 코드를 기반으로 하는 경향이 있습니다. 하이브리드 클라우드는 둘 사이 어딘가에 있습니다. 이는 일부 서비스나 구성 요소를 공용 클라우드에 유지하면서 데이터베이스 서버와 같은 프라이빗 클라우드 스토리지 또는 소프트웨어 서비스에 대한 액세스를 제공합니다. 하이브리드 클라우드 서비스를 사용하면 설정 비용이 더 낮아질 수 있습니다. 하이브리드 클라우드를 사용하는 그룹은 인프라 투자 및 유지 관리의 일부 측면을 아웃소싱하지만 여전히 퍼블릭 클라우드보다 더 높은 보안을 누리고 있습니다. 민감한 데이터를 현장에서 보호해야 하는 의료, 법률, 투자 분야에서 하이브리드 클라우드가 널리 보급되었습니다. 서비스형 클라우드 컴퓨팅 IaaS(Infrastructure as a Service) 모델은 연결된 서버 네트워크를 통해 가상 스토리지 및 처리 기능에 대한 액세스를 제공합니다. 클라우드 기반 스토리지는 Apple iCloud 및 Dropbox와 같은 서비스가 사용자의 물리적 메모리 이상의 스토리지 대안을 제공하면서 대중화되었습니다.

프로그래밍 및 코딩의 원리

구름

클라우드 컴퓨팅

가상 네트워크를 통한 프로그램. Adobe Systems의 Creative Cloud는 월별 요금으로 Photoshop, Illustrator, Lightroom과 같은 프로그램에 대한 액세스를 제공합니다. 사용자는 프로그램을 구매하기 위해 미리 높은 비용을 지불하는 대신 시간이 지남에 따라 적은 금액을 지불합니다. SaaS는 단일 프로그램 사본을 여러 클라이언트가 사용할 수 있는 다중 테넌트를 지원합니다. 이를 통해 소프트웨어 제공업체는 소프트웨어 프로그램의 단일 인스턴스를 통해 여러 클라이언트로부터 수익을 얻을 수 있습니다.

클라우드의 장점과 단점 클라우드 네트워킹을 통해 소규모 회사와 개인은 한때 엄청나게 비싸거나 상당한 관리 및 관리가 필요했던 개발 도구, 디지털 스토리지 및 소프트웨어에 액세스할 수 있습니다. 구독료를 지불함으로써 사용자는 소프트웨어 또는 기타 컴퓨팅 도구에 대한 월별, 연간 또는 사용량에 따라 액세스할 수 있습니다. 클라우드 컴퓨팅은 아웃소싱 관리를 통해 프로세서, 메모리 및 기타 주변 장치를 사용하는 것을 의미합니다. 외부 서비스 장치의 경우 네트워크를 통해 워크스테이션에 연결됩니다. 클라우드 공급자를 사용하면 클라우드 컴퓨팅은 비용 효율적으로 데이터를 저장하고 오프사이트에 복제하여 데이터를 보호하고 패키징 및 인력 요구 비용을 없애기 때문에 인프라를 줄입니다. 개별 프로그램 및 기타 제품을 판매합니다. 데이터 보안은 컴퓨터의 주요 관심사입니다. IaaS는 또한 클라우드 컴퓨팅을 고려하는 사용자에게 더 많은 혜택을 제공할 수 있습니다. 특정 프로세스를 실행하고 하이브리드 클라우드 모델을 허용함으로써 개인 퍼팅 파워는 하드웨어 회사가 아닌 가상 네트워크에서 클라우드 컴퓨팅의 이점을 얻을 수 있는 안전한 방법을 제공합니다. 단일 시스템의 . IaaS를 사용하면 기업에서는 방화벽과 암호화를 사용할 수 있으며 이러한 시스템의 데이터를 제3자가 처리하여 기업 데이터 센터를 안전하게 만드는 일반적인 수단이 됩니다. 공급자는 데이터 센터를 위해 노력하고 있습니다. 이러한 타사 센터는 퍼블릭 클라우드의 보안을 강화하여 일반적으로 프라이빗 또는 하이브리드 시스템에 필요한 IT 지원 및 서버 리소스를 줄입니다. 구독료. PaaS(Platform as a Service) 모델은 주로 Micah L. Issitt가 여러 사용자가 소프트웨어 애플리케이션 또는 앱을 개발하는 데 사용할 수 있는 특정 플랫폼에 대한 액세스를 제공합니다. 참고문헌 많은 앱에는 특정 개발 Beattie, Andrew에 대한 액세스가 필요합니다. “클라우드 컴퓨팅: 왜 화제인가?” 프로그램들 . Google App Engine 및 IBM의 deTechopedia. Techopedia, 11월 30일 2011년. 웹. 1월 21일 veloperWorks Open은 2016년에 출시된 환경을 제공합니다. 웹 앱을 저장, 지원 및 실행합니다. PaaS는 SoftHuth, Alexa 및 James Cebula를 허용합니다. 컴퓨팅에 투자하지 않고 앱을 만드는 클라우드웨어 개발자의 기본 . N .p .: Carnegie Mellon U 및 미국 인프라 및 데이터 센터 지원. 공급자 컴퓨터 비상 준비 팀, 2011 . PDF는 가상 저장소, 가상 넷파일에 대한 액세스도 제공할 수 있습니다. 작품, 기타 서비스. 케일, 비벡. 비즈니스용 클라우드 컴퓨팅 가이드 및 SaaS(Software as a Service) 모델은 기술 관리자를 제공합니다. 보카 레이톤: CRC, 2015 . 인쇄. 사용자의 소프트웨어 구독 기반 또는 공유 액세스 31

프로그래밍 및 코딩의 원리

코딩 및 암호화

크루크, 로버트. “퍼블릭, 프라이빗, 하이브리드 클라우드: 차이점은 무엇인가요?” 테코피디아. Techopedia, 2012년 5월 18일. 웹. 2016년 1월 21일. Rountree, Derrick, Ileana Castrillo. 클라우드 컴퓨팅의 기본. 월섬: Elsevier, 2014. 인쇄.

라이언, 자넬. “클라우드 컴퓨팅에 대해 알아야 할 5가지 기본 사항.” 포브스. Forbes.com, 2013년 10월 30일. 웹. 2013년 10월 30일. 샌더스, 제임스. “하이브리드 클라우드: 그것이 무엇이며 왜 중요한가요?” ZDNet. CBS Interactive, 2014년 7월 1일. 웹. 2016년 1월 10일.

코딩 및 암호화 개요 수학적 알고리즘은 현대 암호화 및 암호 해독에 사용됩니다.

개요 인간은 비밀 정보를 보존하고 공유하려는 경향이 있습니다. 암호화는 그리스어 kryptos(숨겨짐)와 graphein(쓰기)의 합성어로 비밀 정보가 포함된 메시지를 코딩하고 해독하는 기술이자 과학입니다. 암호화는 일반 텍스트를 암호 텍스트(이해할 수 없는 기호 모음처럼 보임)로 변환하는 알고리즘 프로세스인 반면, 암호 해독은 암호 텍스트를 다시 원래 일반 텍스트로 변환하는 역 프로세스입니다. 암호화 알고리즘과 관련 키는 시퀀스의 양방향을 제어하며, 코드의 보안 수준은 알고리즘의 복잡성과 직접적으로 관련됩니다. 암호화의 두 가지 기본 유형은 대칭(또는 비밀 키) 또는 비대칭(또는 공개 키)이며 다양한 변형이 있습니다. 미국의 수학자이자 전자공학자인 클로드 섀넌(Claude Shannon)은 정보 이론과 암호학의 아버지로 알려져 있습니다. 어떤 사람들은 부울 대수학의 전기적 응용이 논리적 수치 관계를 구성하고 해결할 수 있음을 입증한 그의 석사 논문이 역대 가장 중요한 석사 논문이라고 주장합니다.

기원전 2000년경 이집트 서기관들은 비문에 비표준 상형문자를 포함시켰습니다. 전쟁 캠페인 중에 Julius Caesar는 로마 장군에게 암호화된 정보를 보냈습니다. 1775년 보스턴 종탑에서 보낸 폴 리비어(Paul Revere)의 신호는 암호화된 메시지의 간단한 예이기도 합니다. 두 차례의 세계 대전에서 연합군의 성공은 독일의 에니그마 코드를 해독하는 데 달려 있었습니다. 군대, 기업 및 정부에 보안 메시지를 전송하기 위해 보다 정교한 코딩 알고리즘이 전 세계적으로 필요함에 따라 사람들은 수학, 컴퓨터 기술 및 엔지니어링의 결합된 힘을 활용하기 시작했습니다. 암호의 가장 간단한 예에는 전치 또는 대체가 포함됩니다. 기원전 450년에 스파르타인들은 두꺼운 지팡이에 좁은 띠를 나선형으로 감고 막대 길이를 따라 일반 텍스트(또는 메시지)를 쓸 때 전위 암호를 사용했습니다. 일단 풀리면 벨트는 무의미한 일련의 상징처럼 보였습니다. 암호문을 해독하기 위해 수신자는 비슷한 지팡이에 벨트를 감았습니다. 전치 암호의 변형에는 경로 암호와 Cardan 그릴이 있습니다. Julius Caesar는 대체 사전을 사용하여 일반 텍스트의 각 문자를 다른 문자나 기호로 바꾸는 대체 암호를 사용했습니다. 예를 들어 다음과 같이 가정합니다.

원래 알파벳: A

이자형

에프

G

안녕

제이

케이

남 N

오피

Q R

에스

V

W X

와이

V

W X

와이

이자형

에프

G

안녕

제이

주요 사전: K 32

남 N

오피

Q R

에스

프로그래밍 및 코딩의 원리

코딩 및 암호화

노트북에 코드를 쓰는 남자

여기서 키 사전은 "코드" 문자 K로 시작한 다음 루프처럼 알파벳을 작성하여 만들어집니다. 일반 텍스트 "The World Is Round"를 인코딩하기 위해 각 문자는 동반 문자로 대체되어 암호 텍스트 "CRO FXAUN SB AXDWN"을 생성합니다. 단어 길이를 위장하고 복잡성을 추가하기 위해 암호 텍스트는 때때로 "CROF XAUN SBAX DWN"과 같은 고정 길이 문자 그룹으로 차단되었습니다. 암호문을 해독하려면 "코드" 문자만 알면 됩니다. 단순하고 처음에는 혼란스러웠지만 이제 대체 암호는 문자와 단어의 빈도 패턴을 사용하여 쉽게 해독됩니다. 대체 암호의 변형에는 문자 빈도 억제, 음절 대체 또는 Vigenère 또는 Beaufort 암호와 같은 다중 알파벳 대체가 포함됩니다. 제1차 세계 대전 당시 영국이 사용한 플레이페어 스퀘어 암호는 대체 암호이지만 단일 문자 대신 문자 쌍을 암호화하는 것이 더 강력하면서도 사용하기 쉽습니다. 암호 키는 "수학"과 같은 키워드로 시작되는 5×5 테이블입니다. 교환 테이블 모델

시간

이자형

에스

에프

G

케이

N

영형

아르 자형

V

엑스

와이

표는 먼저 중복된 문자를 피하면서 표의 셀을 키워드 문자로 채워 왼쪽에서 오른쪽으로, 위에서 아래로(또는 나선형과 같은 다른 시각적 패턴) 이동하여 구성됩니다. 그런 다음 후속 셀에는 알파벳의 나머지 문자가 채워지고 "I"는 "J"를 나타내어 알파벳을 26자가 아닌 25자로 줄입니다. 코더와 디코더 모두 공통 암호 키를 구성하는 데 사용되는 키워드와 규칙을 모두 알아야 합니다. 코더는 먼저 일반 텍스트를 두 문자 쌍으로 나누고 규칙 시스템을 통해 암호 키를 사용합니다. 일반 텍스트에 이중 문자가 있으면 그 사이에 X를 삽입합니다. 마지막 문자 쌍의 마지막 필러로 X를 사용하여 일반 텍스트를 두 문자 쌍의 시퀀스로 다시 작성합니다. 두 문자가 같은 행에 있는 경우 각 문자를 오른쪽 문자로 바꿉니다(예: CS는 SB가 됩니다). 두 문자가 같은 열에 있는 경우 각 문자를 그 아래 문자로 바꿉니다(TS는 SK가 되고 PW는 WA가 됩니다). 두 문자가 정사각형에 포함된 직사각형 모서리에 있는 경우 동일한 직사각형의 해당 문자로 대체합니다(TB는 SH가 되고 CR은 PB가 됩니다). 이 암호 키를 사용하면 일반 텍스트 "The World Is Round"가 첫 번째 33이 됩니다.

코딩 및 암호화

TH EW 또는 LD는 RO UN DX이며 인코딩되면 HE ZA PU BN CB UP ZU ZS가 됩니다. 이 메시지를 해독하는 데 동일한 암호 키가 사용되지만 규칙은 반대로 해석됩니다. 공통 암호 키를 구성하기 위한 키워드와 규칙 모두에 액세스하지 않고 이 암호 텍스트를 해독하는 것은 매우 어렵습니다. 모든 대체 및 전치 암호화 시스템의 문제점은 코더와 의도된 디코더 간의 공유 비밀성에 대한 의존성입니다. 암호 텍스트를 통해 일반 텍스트를 전송한 다음 이를 다시 공개 텍스트로 성공적으로 디코딩하려면 양 당사자가 공통 시스템, 공통 키워드 및 공통 시각적 배열을 알고 사용해야 합니다. 결과적으로, 사용자가 키워드를 배우거나 단어/문자 패턴의 빈도 기술을 사용하여 코드를 해독할 수 있는 경우 이러한 시스템은 가치가 없기 때문에 개인 정보 보호가 필요합니다. 더 복잡하고 안전한 암호화 프로세스가 필요했지만 1970년대가 되어서야 발명되었습니다. 암호화의 혁명적인 아이디어는 암호화 키가 모든 사람(즉, 대중)에게 알려지는 공개 키 시스템이라는 아이디어였습니다. 그러나 이 지식은 공개되지 않은 복호화 키를 알아내는 데 유용하지 않았다는 점이 반전이었다. 1977년 Ronald Rivest, Adi Shamir 및 Leonard Adleman("RSA"는 발명가의 이름을 나타냄)이 발명한 RSA 공개 키 암호는 모두 수학 학사 학위와 컴퓨터 과학 고급 학위를 보유하고 있지만 여전히 강력한 수학과 강력한 컴퓨터 시스템 덕분에 오늘날 사용됩니다. RSA 시스템에서 의도된 메시지의 "수신자"는 프로세스의 드라이버입니다. "발신자" 대신 수신자는 암호화 키와 일치하는 암호 해독 키를 모두 선택합니다. 실제로 "수신자"는 암호화 키를 디렉터리에 공개하여 모든 "발신자"가 이를 사용하여 보안 메시지를 보낼 수 있으며 "수신자"만이 암호 해독 방법을 알고 있습니다. 다시 말하지만, 후자의 암호 해독 프로세스는 "발신자"도 알 수 없습니다. 문제가 매우 복잡하고 합동 관계와 모듈러 산술을 모두 사용하기 때문에 프로세스의 의미만 다음과 같이 설명할 수 있습니다.

프로그래밍 및 코딩의 원리

"수신자"로서 두 개의 매우 큰 소수 p와 q와 동일한 곱 n으로 시작합니다. (p-1)(q-1)에 상대적으로 소수인 숫자 e를 선택하세요. 게시된 암호화 키는 (n,e) 쌍입니다. A=2, B=3, C=4,… , Z=27과 같은 변환을 사용하여 일반 텍스트 문자를 동등한 숫자 형식으로 변경합니다. 게시된 암호화 키를 사용하여 "발신자"는 m = z e mod(n) 공식을 사용하여 각 숫자 z를 암호화하며, 새 숫자 시퀀스는 암호문이 됩니다. 텍스트를 해독하기 위해 "수신기"는 e와 n의 인수를 모두 알고 있을 뿐만 아니라 n의 소인수인 큰 소수 p와 q도 알고 있습니다. 그런 다음 암호 해독 키 d는 비공개이지만 역관계 ed =1 mod(p-1)(q-1)을 사용하여 "수신자"에 의해 계산될 수 있습니다. 이를 통해 암호화된 숫자를 숫자 집합으로 해독할 수 있습니다. 일반 텍스트로 다시 변환할 수 있습니다. RSA 공개 키 시스템은 잘 작동하지만 필요한 소수 p와 q는 매우 커야 하며 종종 300자리를 초과해야 합니다. 크기가 크지 않으면 강력한 컴퓨터는 숫자 n을 인수분해하여 주어진 암호화 키(n,e)에서 암호 해독 키 d를 결정할 수 있습니다. 이러한 복호화는 컴퓨터가 큰 숫자를 쉽게 곱할 수 있지만 컴퓨터에서 큰 숫자를 인수분해하는 것이 훨씬 더 어렵다는 사실 때문에 가능합니다. 유형에 관계없이 암호화 시스템은 여러 특성을 충족해야 합니다. 첫째, 극도의 복잡성과 외부 물리적 장치를 피하면서 사용자의 능력과 물리적 상황을 반영해야 합니다. 둘째, 작성이나 전송의 작은 오류로 인해 메시지가 의미 없는 횡설수설로 바뀌지 않도록 일종의 오류 검사가 포함되어야 합니다. 셋째, 암호문 디코더가 의미 있는 단일 일반 텍스트를 생성하도록 보장해야 합니다. NSA(National Security Agency)와 같은 정부 기관뿐만 아니라 이러한 원칙을 사용하여 디지털 정보의 저장 및 전송에 대한 향상된 보안을 개발하는 민간 기업에서 일하는 많은 수학자들이 있습니다. 실제로 NSA는 미국에서 가장 큰 수학자 고용주입니다. —제리 존슨

프로그래밍 및 코딩의 원리

색상 코딩

참고문헌 Churchhouse, 로버트. 코드와 암호. 영국 케임브리지: 케임브리지 대학 출판부, 2002. Kahn, David. 코드브레이커: 비밀 글쓰기 이야기. 뉴욕: 맥밀런, 1967.

르완드, 로버트. 암호 수학. 워싱턴 DC: 미국 수학 협회, 2000. 스미스, 로렌스. 암호화: 비밀 글쓰기의 과학. 뉴욕: 도버 출판물, 1971.

색상 코딩 연구 분야 프로그래밍 방법론; 소프트웨어 개발 개요 많은 텍스트 편집기는 컴퓨터 프로그래밍이나 마크업 언어의 다양한 요소를 다양한 색상으로 표시합니다. 색상 코딩의 목표는 프로그래머가 소스 코드를 더 쉽게 작성하고 읽고 이해할 수 있도록 하는 것입니다. 키워드와 같은 프로그래밍 언어 구문의 일부를 색상으로 구분하여 강조하는 구문입니다. 의미론적 강조는 코드 내용에 따라 변수와 같은 다른 측면을 색상으로 구분합니다. 주요 용어 주석: 컴퓨터 프로그래밍에서 프로그램 실행에 필수적이지는 않지만 코드를 읽는 모든 사람에게 추가 정보를 제공하는 프로그램의 소스 코드에 추가되는 주석 또는 기타 문서입니다. 클래스: 객체 지향 프로그래밍에서 공통 변수와 메소드를 공유하는 관련 객체의 범주입니다. 명령: 미리 정의된 특정 작업을 수행하도록 컴퓨터에 지시하는 사용자가 컴퓨터에 제공하는 명령입니다. 방법: 객체 지향 프로그래밍에서 특정 클래스의 객체에 특정한 프로시저나 함수. 구문: 컴퓨터 프로그래밍에서 프로그래밍 언어의 요소를 배열하는 방법을 제어하는 ​​규칙입니다. 변수: 컴퓨터 프로그래밍에서 컴퓨터 메모리의 특정 위치에 저장된 데이터를 나타내는 기호 이름으로, 그 값은 변경될 수 있습니다.

명확성을 위한 색상 코드 컴퓨터 코드는 무엇보다도 컴퓨터용 명령 세트입니다. 그러나 실제로 소프트웨어를 작성하는 과정에서 프로그래머는 자신의 코드와 동료의 코드를 읽는 데 시간을 투자해야 합니다. 코드를 읽고 이해하는 것은 어렵고 시간이 많이 걸릴 수 있습니다. 코드 읽기 프로세스를 용이하게 하기 위해 텍스트 편집기와 통합 개발 환경(IDE)은 1980년대 후반에 시각적 도구를 통합하기 시작했습니다. 이러한 보조 기능 중에는 코드 구문의 중요한 요소에 다양한 색상(경우에 따라 글꼴 및 스타일)을 할당하는 기술인 구문 강조가 있습니다. 예를 들어 숫자는 녹색으로, 키워드는 파란색으로 표시할 수 있습니다. 색상 코딩의 목표는 프로그래머가 코드 세그먼트의 목적을 이해하는 데 걸리는 시간을 줄이는 것입니다. 프로그램의 소스 코드가 단색으로 표시되면 프로그래머는 전체 내용을 이해하기 위해 각 줄을 주의 깊게 읽어야 합니다. 색상 코딩은 프로그래머가 같은 색상의 단어와 패턴을 훑어보고 오류를 식별하는 데 도움을 주는 것을 목표로 합니다. 색상 코딩이 이해력에 미치는 영향을 조사한 연구에서는 엇갈린 결과가 나왔습니다. 2006년 핀란드 실험에서는 프로그래머가 눈으로 코드를 검색했을 때 색상 코딩이 아무런 이점도 없는 것으로 나타났습니다. 이러한 검색은 이해와 디버깅에 매우 중요합니다. 대조적으로, 2015년에 진행된 두 번의 소규모 캠브리지 대학 실험에서는 컬러 코드가 초보 프로그래머의 코드 작성 시간을 크게 단축했지만 숙련된 프로그래머의 경우에는 그보다 적은 것으로 나타났습니다. 흥미롭게도 핀란드 사람들은 컬러 코드의 효과가 크지 않은 경우에도 컬러 코드를 선호했습니다. 색상 코딩에 대한 접근 방식 텍스트 편집기나 IDE에서 색상 코딩을 사용하려면 주어진 코드 세그먼트가 어떤 언어인지 알아야 합니다.

색상 코딩

프로그래밍 및 코딩의 원리

샘플 문제

Java 프로그래밍 언어로 작성된 다음 코드 세그먼트를 고려하십시오. Java에 익숙하지 않은 사람이라도 색상을 지정하면 코드를 더 쉽게 읽을 수 있다는 점을 알 수 있습니다. 세그먼트의 어떤 색상이 아래 나열된 언어 요소에 해당하는지 식별합니다. 각 요소에 대해 적용되는 색상을 최대한 나열하세요. 코드에 컬러 글꼴을 사용하면 코드 자체의 기능이 변경되지는 않지만 코드를 더 쉽게 읽을 수 있습니다. 이 코드 블록은 명령, 변수, 함수, 문자열 및 주석에 대해 별도의 색상을 갖습니다. 코더는 시력을 사용하여 특정 요소를 빠르게 찾을 수 있습니다.

해당 언어의 구문 규칙을 이해하고 작성해야 합니다. 일부 편집기는 단일 프로그래밍 언어만 지원합니다. 이러한 편집자는 자신이 접하는 모든 코드가 자신이 지원하는 언어로 되어 있다고 가정합니다. 보다 다재다능한 편집기는 파일 확장자와 소스 코드 파일의 내용을 검사하여 사용되는 언어를 결정합니다. 일부 편집자는 색상 코딩을 위해 특정 언어의 구문에 대한 내장된 지식에 전적으로 의존합니다. 보다 다양한 편집기를 사용하면 언어 확장 또는 플러그인을 설치할 수 있습니다. 이를 통해 편집자가 사전 지식이 없는 언어에 대해 강조 표시를 사용할 수 있습니다. 일부 텍스트 편집기에서는 프로그래머가 색상 코딩의 세부 사항을 사용자 정의할 수 있습니다. 여기에는 색상을 지정할 요소와 사용할 색상에 대한 선택이 포함될 수 있습니다.

일반적으로 색상이 지정된 요소 구문 강조에 대한 표준 접근 방식은 종종 다음을 포함하여 다양한 구문 요소에 색상을 할당합니다.

클래스 이름 설명 언어 키워드 변수 이름 리터럴 값 메소드 이름 답: 진한 파란색 진한 녹색 보라색 주황색, 회색, 검정색 빨간색 밝은 녹색 • 키워드(예: for, true 또는 if) • 리터럴 값 및 상수(예: “Hello world” ,” 3.14) • 짝을 이루는 대괄호 일치(커서가 해당 문자에 인접한 경우) • 주석 및 주석(예: //fix this) “의미 강조”라고 하는 구문 강조의 강력한 확장 기능은 추가 색상 결정을 시도합니다. 코드의 의미를 기반으로 합니다. 의미 강조 표시는 색상 코딩을 변수 이름(때로는 각각에 대해 다른 색상 사용), 클래스 및 메소드로 확장할 수 있습니다.

실제 세계의 컬러 코딩 컬러 코딩은 컴퓨터 프로그래밍에서 널리 사용됩니다. 대부분의 주요 코드 편집기에서 지원될 뿐만 아니라 코드 공유 웹사이트에서도 이 기술을 채택했습니다. 코드가 표시되는 거의 모든 곳은 색상으로 표시됩니다. 비록 효율성은

프로그래밍 및 코딩의 원리

조합론

컬러 코딩은 여전히 ​​논쟁의 여지가 있지만 컬러풀한 코드는 프로그래밍 세계에서 확고한 기반을 갖고 있는 것으로 보입니다. 각각의 새로운 언어는 이전 언어의 비효율성을 수정하려고 시도하며, 각 IDE 업데이트에는 프로그래밍 작업을 더욱 간소화하기 위한 새로운 기능이 제공됩니다. 각 단계에서 프로그래머는 시각적 자료와 같은 도구를 고민하는 데 소요되는 시간을 줄이고 어려운 문제에 대한 우아한 솔루션을 상상하는 데 더 많은 시간을 보냅니다. —Joel Christophel과 Daniel Showalter, PhD 참고문헌 Beelders, Tanya R., Jean-Pierre L. Du Plessis. “소스 코드를 읽고 이해할 때 영향을 미치는 요소로서의 구문 강조.” 안구 운동 연구 저널, vol. 9, 아니. 2016년 1월 1일, 2207~19페이지. Deitel, 폴 J., 그 외 여러분. 머리말. Android: 프로그래밍 방법, 글로벌 에디션. 2판, Pearson, 2015, pp. 19–30. 디미트리, 조반나 마리아. “Sonic Pi의 구문 강조가 미치는 영향.” 프로그래밍 심리학

관심 그룹, 2015, www.ppig.org/sites/default/files/2015-PPIG-26th-Dimitri.pdf. 2017년 2월 22일에 액세스함. Everitt, Paul. “의미론적 강조를 통해 변수를 한 눈에 이해하세요.” PyCharm 블로그, JetBrains, 2017년 1월 19일, blog.jetbrains.com/pycharm/2017/01/make-sense-of-your-variablesat-a-glance-with-semantic-highlighting/. 2017년 2월 17일에 액세스함. Hakala, Tuomas, et al. “로컬 패턴의 시각적 검색에 대한 프로그램 코드 강조 효과에 대한 실험.” 제18차 프로그래밍 관심 그룹 심리학 워크숍, 서식스 대학교, 2006년 9월, www.ppig.org/papers/18th-hakala.pdf. 2017년 3월 7일 액세스. Kingsley-Hughes, Adrian 및 Kathie KingsleyHughes. 프로그래밍 시작. Wiley Publishing, 2005. Sarkar, Advait. “프로그램 이해에 대한 구문 색칠의 영향.” 프로그래밍 관심 그룹의 심리학, 2015, www.ppig.org/sites/default/files/2015-PPIG-26th-Sarkar.pdf. 2017년 2월 17일에 액세스함.

결합학 연구 분야 정보 기술; 알고리즘; 시스템 분석 개요 조합론은 특정 조건을 충족하는 개체 집합과 관련된 수학의 한 분야입니다. 컴퓨터 과학에서 조합론은 특정 문제를 해결하기 위해 고안된 일련의 단계 또는 규칙인 알고리즘을 연구하는 데 사용됩니다. 주요 용어 분석 조합론: 대규모 개체 집합에 대해 정확한 정량적 예측을 생성하는 방법입니다. 코딩 이론: 코드에 대한 연구와 다양한 응용 분야의 특정 상황에서의 사용.

조합 설계: 특정 유형의 설계에서 유한 집합의 생성 및 속성에 대한 연구입니다. 열거 조합론: 일련의 객체를 사용하여 특정 패턴이 형성될 수 있는 방법의 수를 연구하는 조합론의 한 분야입니다. 그래프 이론: 객체 간의 관계를 모델링하는 데 사용되는 다이어그램인 그래프에 대한 연구입니다.

조합론의 기초 조합론은 계산 방법과 조합, 순열 및 개체 집합의 배열을 연구하는 수학의 한 분야입니다. 예를 들어, 15개의 서로 다른 개체 집합이 주어지면 조합론은 원래 15개 개체 집합에서 몇 개의 서로 다른 5개 집합을 만들 수 있는지 결정하는 방정식을 연구합니다. 조합론에 대한 연구는 알고리즘 연구에 매우 중요합니다. 알고리즘은 세트 37입니다.

프로그래밍 및 코딩의 원리

조합론

C C

A B

B D

D Konigsberg 브리지 문제는 가능한 값 조합을 식별하고 정량화하는 데 사용되는 조합 구조의 일반적인 예입니다. 각 대륙은 정점 또는 노드가 되고, 각 다리는 호 또는 가장자리가 됩니다. 컴퓨터 과학에서 이러한 그래프는 네트워크나 계산 흐름을 나타내는 데 사용됩니다.

특정 문제를 해결하기 위해 함께 연결된 규칙, 단계 또는 프로세스입니다.

계산 및 조합의 과학 조합론은 종종 "계산의 과학"이라고 불립니다. 이는 무한한 수의 객체를 가지지 않아 이론적으로 셀 수 있는 유한한 객체 집합의 속성에 중점을 둡니다. 특정 세트의 모든 항목을 설명하거나 계산하는 프로세스를 "열거"라고 합니다. 조합론에는 선택 순서가 중요하지 않을 때 세트에서 항목을 선택하는 과정인 조합 연구도 포함됩니다. 마지막으로 조합론은 순열도 연구합니다. 순열에는 배열 순서가 중요한 경우 목록에서 항목을 선택하거나 배열하는 작업이 포함됩니다. 조합론은 또한 다양한 방법으로 집합으로 구성된 개체 간의 관계를 연구합니다. 다양한 방법으로 객체 세트를 연구하는 데 사용되는 조합론의 하위 분야가 많이 있습니다. 열거 조합론은 이 분야의 가장 기본적인 분야입니다. 이는 주어진 세트에 있는 개체의 수를 파생하는 데 사용되는 계산 방법에 대한 연구로 설명할 수 있습니다. 대조적으로, 분석 조합론은 열거 조합론의 하위 분야입니다. 정량 분석을 사용하여 대규모 개체 집합의 속성을 예측하는 작업을 다룹니다. 모든 조합론 분석에는 미적분학에 대한 자세한 지식이 필요합니다. 많은 하위 분야에서는 확률 이론과 예측 분석을 광범위하게 사용합니다. 38

조합론 응용 분석 수학, 공학, 물리학, 컴퓨터 과학 분야에서 조합론을 적용하는 방법은 다양합니다. 조합론의 가장 친숙한 기본 사례 중에는 인기 있는 게임인 스도쿠가 있습니다. 이 게임에서는 플레이어가 특정 열과 행 값을 사용하여 "마방진" 다이어그램의 빈칸을 채워야 합니다. 스도쿠 퍼즐은 요소들 사이에 대칭 또는 수학적/기하학적 균형이 있는 물체의 배열을 연구하는 조합론의 한 분야인 조합 디자인의 한 예입니다. 조합론은 그래프 이론에서도 중요합니다. 그래프 이론은 그래프, 즉 공간에 있는 물체의 표현을 다루는 수학 분야입니다. 그래프는 기하학, 컴퓨터 과학 및 기타 분야에서 객체 간의 관계를 모델링하는 데 사용됩니다. 예를 들어, 컴퓨터 과학에서 그래프는 일반적으로 컴퓨터 네트워크, 계산 흐름, 웹사이트 내 링크 구조를 모델링하는 데 사용됩니다. 조합론은 그래프의 열거를 연구하는 데 사용됩니다. 이는 특정 애플리케이션이나 모델에 사용할 수 있는 다양한 그래프의 수를 계산하는 것으로 볼 수 있습니다. 알고리즘 설계의 조합론 컴퓨터 과학에서 조합론은 알고리즘 생성 및 분석에 사용됩니다. 알고리즘은 특정 계산 문제를 해결하기 위해 함께 연결된 지침, 계산 단계 또는 기타 프로세스의 집합입니다. 알고리즘은 본질적으로 집합이기 때문에

프로그래밍 및 코딩의 원리

알고리즘 내의 단계는 열거 또는 순열과 같은 조합 분석을 사용하여 연구할 수 있습니다. 조합론은 연구자들이 객체 또는 세트의 보다 효율적인 배열을 찾는 데 도움이 될 수 있으므로 조합 분석은 종종 컴퓨터 알고리즘의 효율성을 테스트하고 평가하는 데 사용됩니다. 조합론은 정렬 알고리즘 설계의 핵심이기도 합니다. 정렬 알고리즘을 사용하면 컴퓨터가 개체(종종 데이터 조각, 웹 페이지 또는 기타 정보 요소)를 정렬할 수 있습니다. 이는 웹 검색을 위한 효과적인 알고리즘을 만드는 데 필요한 단계입니다.

코딩의 조합론 조합론은 코딩 이론, 코드 연구 및 관련 속성과 특성에도 사용됩니다. 코드는 암호화, 데이터 압축 또는 번역, 수학, 전기 및 정보 시스템의 오류 수정 등의 응용 프로그램에 사용됩니다. 코딩 이론은 조합 분석에서 등장했습니다. 수학의 이 두 가지 분야는 서로 다르지만 이론과 기법을 공유합니다. 조합론은 고급 연구 분야입니다. 객체 간의 관계를 배열, 구성 및 연구하여 분석 정보를 제공합니다.

코멘트 프로그래밍

많은 학술 및 실무 분야에 적용 가능합니다. 조합론은 코드 개발, 정보의 정확한 연구 및 데이터 배열을 포함하여 컴퓨터 설계 및 프로그래밍의 여러 측면에 영향을 미칩니다. —Micah L. Issitt 참고문헌 Beeler, Robert A., 계산 방법: 조합론 소개. 뉴욕: 스프링어, 2015. 인쇄. “조합론.” 마티곤. Mathigon, 2015. 웹. 2016년 2월 10일. Faticoni, Theodore G., 조합론: 소개. 뉴욕: Wiley, 2014. 디지털 파일. 기차드, 데이비드. “조합론과 그래프 이론 소개.” 휘트먼. Whitman Coll., 2016년 1월 4일. 웹. 2016년 2월 10일. Roberts, Fred S., Barry Tesman. 응용 조합론. 2판 보카 레이턴: 채프먼, 2012. 인쇄. 바그너, 칼. “선택, 기회 및 추론.” Math.UTK.edu. 테네시 대학교, 녹스빌, 2015. 웹. 2016년 2월 10일.

프로그래밍 연구 분야 소프트웨어 개발에 관한 의견; 코딩 기술; 컴퓨터 과학

ä

추상적인

ä

주석은 컴퓨터 프로그램을 만드는 데 사용되는 코드의 목적과 구조를 설명하는 데 사용되는 주석입니다. 적절한 주석을 사용하면 컴퓨터 프로그램을 보다 효율적으로 생성, 디버그 및 유지 관리할 수 있으며 프로그래머가 보다 효과적으로 함께 작업할 수 있습니다. 주요 용어 주석: 컴퓨터 프로그래밍에서 프로그램 소스 코드에 필수적이지 않지만 프로그램 소스 코드에 추가되는 주석 또는 기타 문서입니다.

ä

프로그램을 실행하지만 코드를 읽는 모든 사람에게 추가 정보를 제공합니다. 클래스: 객체 지향 프로그래밍에서 공통 변수와 메소드를 공유하는 관련 객체의 범주입니다. 명령: 미리 정의된 특정 작업을 수행하도록 컴퓨터에 지시하는 사용자가 컴퓨터에 제공하는 명령입니다. 메소드(method): 객체 지향 프로그래밍에서 특정 클래스의 객체에 특정한 프로시저나 함수. 구문(syntax): 컴퓨터 프로그래밍에서 프로그래밍 언어의 요소가 어떻게 배열되어야 하는지를 결정하는 규칙. 변수: 컴퓨터 프로그래밍에서 컴퓨터 메모리의 특정 위치에 저장된 데이터를 나타내는 기호 이름으로, 그 값은 변경될 수 있습니다. 39

코멘트 프로그래밍

주석을 사용하여 코드 주석 달기 컴퓨터 프로그래밍 언어의 구문에 익숙한 사람이라면 누구나 코드 자체를 읽고 명령문 또는 일련의 명령문이 수행하는 작업에 대한 기본적인 이해를 얻을 수 있습니다. 그러나 코드 자체는 특정 명령문 또는 일련의 명령문이 사용된 이유나 전체 프로그램 또는 코드 섹션의 전반적인 목적을 프로그래머에게 밝힐 수 없습니다. 이로 인해 컴퓨터 프로그램을 이해하고 디버깅하고 유지 관리하기가 어려워질 수 있습니다. 이 문제를 해결하기 위해 프로그래머는 주석을 사용하여 자신이 만든 코드에 주석을 답니다. 주석은 다양한 유형의 컴퓨터 코드에 주석을 다는 데 사용될 수 있습니다. 예를 들어, 특정 명령이 사용된 이유에 대한 설명을 주석으로 제공할 수 있습니다. 주석은 함수, 서브루틴, 클래스, 메소드를 설명하고 변수가 사용되는 이유를 설명하는 데에도 사용할 수 있습니다. 주석은 프로그래밍 언어의 구문이 아닌 일반 언어로 작성됩니다. 그러나 각 프로그래밍 언어는 프로그램이 적절하게 표시된 주석을 실행 가능한 코드 줄과 구별하고 무시할 수 있도록 하는 고유한 규칙을 제공합니다. 예를 들어, 다음과 같이 주석을 구성하는 텍스트 앞에 두 개의 슬래시를 사용하여 주석을 구별할 수 있습니다. // This is a comment.

유용한 주석을 작성하는 방법 주석을 대신할 만한 좋은 방법은 없습니다. 시간이 걸리더라도 코드에 주석을 다는 데 소요되는 시간은 디버깅 및 유지 관리에 소요되는 시간을 크게 줄일 수 있습니다. 코드 작성 전, 작성 중, 작성 후에 주석을 추가할 수 있습니다. 코드의 변경 사항을 반영하도록 주석을 업데이트하는 것은 처음에 주석을 추가하는 것만큼 중요합니다. 주석을 달면 귀중한 프로그래밍 시간이 걸리기 때문에 짧지만 효과적이고 유용한 주석을 작성하는 방법을 배우는 것이 중요한 기술입니다. 주석은 단순히 코드 줄이나 블록이 수행하는 작업을 다시 설명하는 것이 아니라 코드가 수행하는 작업의 이유와 프로그램의 전체 구조 및 기능과 어떻게 관련되는지 설명하는 데 중점을 두어야 합니다. age 변수 선언과 관련된 다음 설명을 고려하세요. // age라는 정수 변수를 선언합니다. 이 댓글은 40에서 판단할 수 없는 어떤 의미나 정보를 전달하지 않습니다.

프로그래밍 및 코딩의 원리

코드 문 자체. 보다 효과적인 의견은 다음과 같이 작성할 수 있습니다. // 변수는 사회보장 혜택에 대한 적격성 상태를 결정하는 데 사용되는 // 신청자 연령을 저장합니다. 이 주석은 변수가 선언되는 이유와 프로그램 내에서 변수가 작동하는 방식을 간결하게 설명합니다. 댓글은 여러 곳에서 예상됩니다. 전체 프로그램에는 일반적으로 시작 부분에 주석이 있습니다. '헤더 코멘트'라고 불리는 이 주석에는 작성자, 작성 날짜, 마지막 업데이트 날짜, 프로그램의 목적 및 기능이 명시되어 있습니다. 직관적이지 않은 코드 한 줄과 마찬가지로 각 함수를 호출해야 합니다. 인라인 주석이 너무 많으면 코드가 지나치게 복잡하다는 의미일 수 있습니다. 또는 변수, 상수, 함수 등의 이름이 충분히 설명적이지 않다는 의미일 수도 있습니다.

주석을 사용하여 소프트웨어 개발 개선 효과적이고 유용한 주석을 작성하는 것은 프로그래머 팀이 종종 복잡한 응용 프로그램에서 함께 작업하는 실제 프로그래밍 환경에서 매우 중요합니다. 예를 들어, 주요 보험사의 고객 데이터를 추적하는 데 사용되는 애플리케이션은 수많은 변수, 메서드, 클래스, 명령 및 기타 명령문을 포함하는 수만 줄의 코드로 구성될 수 있습니다. 이러한 프로젝트는 일반적으로 수십 명의 프로그래머에 의해 몇 주, 몇 달, 심지어 몇 년에 걸쳐 개발됩니다. 따라서 주석을 적절하게 사용하면 프로그래머는 다른 프로그래머가 작성한 코드 줄 간의 상호 작용과 목적을 빠르게 이해할 수 있습니다. 이를 통해 애플리케이션을 개발하고 업데이트할 수 있는 효율성이 크게 향상됩니다. Visual Basic 언어의 다음 코드 예제를 고려하십시오. Dim y as 정수 Dim t as 정수 y = GetYesterdaysTotal() t = GetTodaysTotal() n=y+t echo z 해당 예제는 구문상 정확할 수 있지만 문 자체는 거의 수행되지 않습니다. 설명하다

프로그래밍 및 코딩의 원리

코드의 목적. 그러나 주석과 명확한 이름을 사용하면 다음과 같이 코드의 목적을 더 명확하게 만들 수 있습니다. // 어제 낳은 알의 수를 저장하기 위해 eggYesterday 변수를 선언합니다. Dim eggYesterday를 정수로 지정 // 오늘 낳은 계란 수를 저장하기 위해 eggToday 변수를 선언합니다. Dim eggToday as 정수 // Egg1 데이터베이스에서 어제 낳은 총 알 수를 검색합니다. eggYesterday = GetYesterdaysTotal() // Egg1 데이터베이스에서 오늘 낳은 총 알 수를 검색합니다. eggToday = GetTodaysTotal() // 지난 이틀 동안 낳은 총 알 수를 계산합니다. eggNow = eggYesterday + eggToday // 지난 이틀 동안 낳은 총 알 수를 표시합니다. echo eggNow 주석과 함께 줄바꿈을 추가하고 중첩된 코드 블록을 들여쓰기하면 코드를 더 쉽게 읽고 이해할 수 있습니다.

댓글 좋은 코드를 더욱 유용하게 만듭니다. 프로그래머는 올바른 구문을 가진 효과적인 코드를 작성하는 데 중점을 둡니다. 그러나 본질적인 한계는

비교 연산자

프로그래밍 언어에서는 프로그램에 기능이 거의 없고 작성자가 한 명이라도 주석을 사용하지 않고는 코드를 완전히 설명하기가 어렵습니다. 복잡한 기능을 제공하고 여러 프로그래머가 함께 작업하는 대규모 프로젝트는 관리하기가 기하급수적으로 더 어렵습니다. 적절한 주석을 일관되게 사용하면 프로그래머에게 상당한 이점을 제공하고 효율성을 높이고 비용을 낮추며 더욱 강력하고 효과적인 코드를 얻을 수 있습니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2014. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2016. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016. Van Roy, Peter 및 Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004.

비교 연산자 연구 분야 소프트웨어 개발; 컴퓨터 과학

코딩

기법;

컴퓨터 프로그램의 흐름. 이를 통해 컴퓨터 프로그램의 복잡한 의사 결정을 지원합니다. 주요 약관

ABSTRACT 비교 연산자는 true 또는 false 값으로 확인되는 표현식의 두 값을 비교합니다. 주요 비교 연산자는 같음, 같지 않음, 보다 큼, 크거나 같음, 보다 작음, 작거나 같음입니다. 비교 연산자는 조건식에서 코드 블록이 실행되는지 또는 다른 블록이 실행되는지 확인하는 데 사용됩니다.

배열: 동일한 유형의 값 또는 변수의 고정된 크기 모음을 보유하는 데이터 구조입니다. 부울 연산자: 둘 중 하나 값으로 해석되는 표현식을 결합하는 데 사용되는 미리 정의된 단어 집합(일반적으로 AND, OR, NOT 및 변형) 중 하나입니다. 조건식: 조건이 참인지 거짓인지에 따라 실행되는 문입니다. 41

비교 연산자

프로그래밍 및 코딩의 원리

변수(x)의 값을 주어진 값과 비교하는 데 사용되는 연산자를 "비교 연산자"라고 합니다. 이 표에서는 여러 비교 연산자, 연산자 정의 및 이를 사용하는 명령문을 제공합니다. 각 명령문에는 변수 값의 참 및 거짓 예가 제공됩니다.

객체: 객체 지향 프로그래밍에서 특정 클래스에 할당된 변수와 메서드를 공유하는 특정 클래스에 속하는 자체 포함 데이터 모듈입니다. 문자열: 컴퓨터 프로그래밍에서 특정 순서로 배열된 문자로 구성된 데이터 유형입니다.

비교 연산자 이해 컴퓨터 프로그래밍에서 비교 연산자는 조건식에 사용되어 실행되는 코드 블록을 결정함으로써 프로그램 흐름을 제어합니다. 비교 연산자는 true 또는 false 값으로 확인되는 표현식의 두 값을 비교합니다. if-then-else 문에서 비교 연산자를 사용하면 비교 결과가 true인지 false인지에 따라 다양한 코드 블록을 실행할 수 있습니다. 부울 연산자를 사용하면 or 식을 결합하여 true 또는 false로 확인되는 복잡한 부울 식을 만들 수 있습니다. 이를 통해 더 복잡한 시나리오를 테스트하여 어떤 코드 블록을 실행해야 하는지 결정할 수 있습니다. 6가지 주요 비교 연산자(같음, 같지 않음, 초과, 크거나 같음, 작음, 작거나 같음)가 있습니다. 프로그래밍 언어마다 이러한 연산자를 표현하기 위해 서로 다른 구문을 사용하지만 의미는 동일합니다. 일부 언어에는 JavaScript의 동일 값 및 동일 유형 연산자(===) 및 동일 값 또는 동일 유형이 아닌 연산자(!==)와 같은 추가 연산자가 포함되어 있습니다. 비교 연산자는 정수와 문자열을 포함한 다양한 데이터 유형을 비교할 수 있습니다. 예를 들어 x가 정수 변수인 경우 x는 5 42보다 작습니다.

x가 4 이하이면 참으로 평가되지만 x가 5 이상이면 거짓으로 평가됩니다. x와 y가 문자열 변수인 경우 x = y는 문자열의 길이가 동일하고 동일한 순서의 동일한 문자로 구성된 경우에만 true로 평가됩니다. 따라서 "abc"는 "abc"와 동일하지만 "abc"는 "bac"와 동일하지 않습니다. 일부 작업의 경우 동일한 유형의 데이터만 비교할 수 있습니다. 예를 들어 x가 정수이고 y가 문자열인 경우 x가 y보다 크다면 오류가 반환됩니다. JavaScript 및 MySQL과 같은 일부 언어에서는 문자열의 문자에 숫자 값을 사용하여 비교합니다. 배열은 일반적으로 비교 연산자를 사용하여 비교되지 않습니다. 배열의 동등성을 비교할 때 언어마다 다른 결과를 반환합니다. 예를 들어, C 언어는 메모리 내 두 배열의 위치에 대한 포인터를 반환한 다음 메모리 위치가 동일한지 비교합니다. 따라서 배열의 내용과 저장된 값은 직접 비교되지 않습니다. 마찬가지로 JavaScript 또는 C#과 같은 언어에서 객체를 "같음" 비교 연산자와 비교할 때 비교 연산자는 객체가 동일한 클래스인지 확인하고 객체 내에 저장된 데이터를 비교하지 않습니다. 그러나 PHP 언어에서는 값도 평가됩니다. 따라서 해당 프로그래밍 언어의 규칙을 아는 것이 중요합니다.

비교 연산자 사용 비교 연산자는 컴퓨터 프로그램에서 다양한 방법으로 사용됩니다. 예를 들어, 데이터베이스에 저장된 개인 정보를 비교할 수 있습니다.

프로그래밍 및 코딩의 원리

프로그램이나 혜택에 대한 자격 요건. 부울 연산자 AND를 사용하면 프로그램이 두 가지 조건을 확인할 수 있으며, 두 조건 모두 true여야 true 값을 반환할 수 있습니다. IF CandidateAge > 65 AND CandidateAnnualIncome < 250,000 THEN SocialSecurityEligible() END IF 문자열을 비교하는 데에도 사용됩니다. 여기서는 또 다른 부울 연산자인 OR을 사용하여 두 가지 비교를 확인했으며, 둘 중 하나가 true이면 전체 문이 true 값을 반환하고 함수가 호출됩니다. IF userState = "NY" OR userState = "New York" THEN NewYorkResident () END IF 비교 연산자는 if-else 조건 논리를 지원하므로 중요한 개발 도구입니다. 부울 논리의 기능이 추가되면 복잡한 의사 결정 구조가 가능해집니다. 예를 들어 "분기" 또는 "선택"을 사용하면 조건에 따라 다양한 작업 과정(즉, 실행할 다른 else if 문)을 수행할 수 있습니다. 그러나 비교 연산자를 잘못 사용하면 수정하기 어려운 오류가 발생할 수 있습니다. 프로그래머는 배열, 개체 및 문자열이 처리되는 방식에 특히 주의하면서 다양한 컴퓨터 언어를 사용하여 다양한 유형의 데이터를 비교할 때 비교 연산자가 어떻게 작동하는지 확인해야 합니다.

실제 비교 연산자 비교 연산자는 프로세스 코드에서 자주 사용됩니다. 다음 예에서는 데이터베이스에서 고객 이름을 업데이트하는 함수에서 오류 코드가 반환됩니다. 그런 다음 비교 연산자를 사용하여 어떤 오류가 발생했는지 확인한 다음 적절한 코드 블록으로 제어를 전달합니다. 먼저 함수가 호출되고 함수가 반환하는 값은 code라는 변수에 저장됩니다. 코드 = updateDatabase("제인 스미스")

비교 연산자

다음으로, if 문은 함수가 반환하는 값에 따라 다양한 코드 블록을 실행하는 데 사용됩니다. IF 코드 = 1 THEN 업데이트가 성공했다는 메시지를 표시합니다. IF 코드 = 2 THEN 데이터베이스를 찾을 수 없다는 메시지를 표시합니다. IF 코드 = 3 THEN 사용자를 찾을 수 없다는 메시지를 표시합니다. ELSE 알 수 없는 오류가 발생했다는 메시지를 표시합니다. 종료 IF

비교의 힘 비교 연산자는 다양한 개발 시나리오에서 사용됩니다. 이는 정확한 비교가 중요한 인증 루틴에 사용됩니다. 예를 들어, 데이터베이스에 대한 액세스가 허용되기 전에 승인된 사용자의 데이터베이스에 대해 사용자의 자격 증명을 확인할 수 있습니다. 비교 연산자는 할인 코드 처리와 같은 보다 일상적인 작업에도 사용될 수 있습니다. 사용자가 할인코드를 입력하면 유효한 코드와 비교하여, 코드가 유효하면 해당 할인이 적용됩니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2014. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. 닉슨, 로빈. PHP, MySQL, JavaScript, CSS 및 HTML5 학습: 동적 웹사이트 생성을 위한 단계별 가이드. 3판, O'Reilly, 2014. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016. Van Roy, Peter 및 Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. 43

프로그래밍 및 코딩의 원리

컴퓨터 애니메이션

컴퓨터 애니메이션 연구 분야 디지털 미디어; 그래픽 디자인 개요 컴퓨터 애니메이션은 특수 컴퓨터 프로그램을 사용하여 영화, TV 또는 기타 미디어용 애니메이션 프로젝트를 만드는 것입니다. 애니메이션 프로젝트는 짧고 단순한 클립부터 상세하고 생동감 넘치는 장편 영화에 이르기까지 다양하므로 각각 애니메이터의 요구 사항을 충족하는 다양한 애니메이션 소프트웨어를 사용할 수 있습니다. 컴퓨터 애니메이션 프로세스에는 모델링, 키프레임 및 렌더링을 포함한 여러 주요 단계가 포함됩니다. 이러한 단계는 일반적으로 애니메이터 팀에 의해 수행됩니다. 주요 용어 애니메이션 변수(avars): 애니메이션 캐릭터나 개체의 움직임을 제어하는 ​​정의된 변수입니다. 키프레임: 애니메이션 전환에서 첫 번째와 마지막(또는 키) 프레임을 정의하는 프로세스입니다. 렌더 팜: 애니메이션 콘텐츠 렌더링 전용 대형 컴퓨터 시스템. 3D 렌더링: 3D 모델을 사용하여 2D 애니메이션을 만드는 프로세스입니다. 가상 현실: 사용자가 시뮬레이션된 환경을 보고 상호 작용할 수 있도록 하는 기술의 한 형태입니다.

컴퓨터 애니메이션의 역사 20세기 초부터 애니메이션 분야는 빈번하고 급격한 변화를 겪었습니다. 이 분야의 혁신은 영화, TV, 광고, 비디오 게임 및 기타 미디어에까지 광범위하게 적용되었습니다. 처음에는 실험적인 방법이었고 개발하는 데 수십 년이 걸렸습니다. 컴퓨터 애니메이션은 20세기 후반과 21세기 초반에 영화와 TV 산업에 활력을 불어넣었으며, 여러 면에서 수십 년 전에 애니메이션이 가졌던 문화적 영향력을 반영했습니다. 컴퓨터 애니메이션이 출현하기 전에는 대부분의 애니메이션 프로젝트가 나중에 "전통적인" 또는 "셀" 애니메이션으로 알려진 프로세스를 사용하여 제작되었습니다. 셀애니메이션에서 캐릭터의 움직임, 44

개체와 배경은 프레임별로 만들어졌습니다. 각 프레임은 손으로 그려졌습니다. 시간이 많이 걸리고 어려운 이 과정에서는 영화의 매 초마다 수십 개의 개별 프레임을 만들어야 했습니다. 컴퓨터 기술이 발전함에 따라 컴퓨터 연구자와 애니메이터는 컴퓨터를 사용하여 단편 애니메이션을 만드는 실험을 시작했습니다. 1960년대에는 2D 이미지를 만드는 데 컴퓨터가 사용되었습니다. 나중에 1986년에 스튜디오 Pixar를 설립한 Ed Catmull은 1972년에 컴퓨터를 사용하여 자신의 손의 3D 애니메이션을 만들었습니다. 이것은 Futureworld(1976)에 등장했을 때 장편 영화에 사용된 최초의 3D 컴퓨터 그래픽이었습니다. 컴퓨터 애니메이션의 초기 시도는 실사 영화에서 발견되었습니다. 예를 들어, 1986년 영화 Labyrinth에는 오프닝 크레딧을 통해 날아가는 컴퓨터 애니메이션 올빼미가 등장합니다. 기술이 향상됨에 따라 컴퓨터 애니메이션은 실사 미디어 특수 효과의 주요 구성 요소가 되었습니다. 셀 애니메이션이 애니메이션 장편 영화에 계속 사용되는 동안, 영화 제작자들은 그러한 작품에 일부 컴퓨터 생성 요소를 포함시키기 시작했습니다. 예를 들어 1991년 월트 디즈니 스튜디오의 영화 미녀와 야수(Beauty and the Beast)의 한 장면은 주로 컴퓨터를 사용하여 제작된 연회장을 특징으로 합니다. 1995년, 최초의 장편 컴퓨터 애니메이션 영화의 개봉은 애니메이션 분야의 전환점이 되었습니다. 그 영화 <토이 스토리>는 컴퓨터 애니메이션의 선구자인 픽사(Pixar)가 제작했습니다. 이후 수십 년 동안 Pixar와 Disney(2006년 Pixar 인수) 및 DreamWorks를 포함한 다른 스튜디오는 수많은 컴퓨터 애니메이션 영화를 제작했습니다. 컴퓨터 애니메이션은 애니메이션 TV 쇼는 물론 비디오 게임, 광고, 뮤직 비디오 및 기타 미디어를 만드는 일반적인 프로세스가 되었습니다. 21세기 초에는 컴퓨터 애니메이션이 헤드 마운트 디스플레이인 Oculus Rift와 같은 가상 현실 장비를 통해 액세스되는 시뮬레이션 환경을 만드는 데에도 사용되기 시작했습니다. 이 기간 동안 제작된 컴퓨터 애니메이션 콘텐츠의 대부분은 3D로 나타나는 캐릭터와 주변 환경을 특징으로 합니다. 그러나 일부 애니메이터는 전통적인 애니메이션 작품 스타일과 더욱 유사한 2D 애니메이션을 만들기로 결정했습니다.

프로그래밍 및 코딩의 원리

컴퓨터 애니메이션

원래 애니메이션 모델을 디자인하는 것부터 유체, 머리카락 및 기타 복잡한 시스템의 움직임을 제어하는 ​​알고리즘을 만드는 것까지 컴퓨터 소프트웨어는 애니메이션 예술을 크게 변화시켰습니다. 다각형을 조작할 수 있는 소프트웨어를 통해 얼굴을 렌더링하고 추가로 조작하여 손으로 그린 ​​일러스트레이션보다 훨씬 효율적으로 여러 이미지를 만들 수 있습니다. 따라서 이미징의 디테일이 증가하는 동시에 전체 애니메이션을 개발하는 데 필요한 시간이 단축됩니다.

3차원 컴퓨터 애니메이션 장편 컴퓨터 애니메이션 작품을 제작하는 것은 다른 영화 업계 전문가와 협력하여 대규모 애니메이터 팀이 수행하는 복잡하고 시간 집약적인 프로세스입니다. 3D 컴퓨터 애니메이션 프로젝트를 만들 때 애니메이션 팀은 일반적으로 스토리보드를 그리는 것부터 시작합니다. 스토리보드는 제안된 장면의 대략적인 초안 역할을 하는 작은 스케치입니다. 다음으로 애니메이터는 애니메이션 소프트웨어를 사용하여 2D 캐릭터 디자인을 3D 모델로 변환합니다. 애니메이션 변수(avar)를 사용하여 3D 캐릭터가 이동하는 방식을 제어하고 캐릭터 신체의 다양한 지점에 가능한 이동 방향을 할당합니다. 사용되는 avar의 수와 이들이 제어하는 ​​영역은 매우 다양할 수 있습니다. 2006년 픽사 영화 <카>

캐릭터의 입을 혼자서 제어하기 위해 수백 개의 avar를 사용한 것으로 알려졌습니다. 이러한 변수를 사용하면 애니메이션 캐릭터의 동작 범위가 넓어지고 표현과 몸짓이 더욱 사실적으로 표현되는 경우가 많습니다. 캐릭터와 객체를 모델링하고 애니메이션화한 후 배경은 물론 조명 및 특수 효과와 결합합니다. 그런 다음 모든 요소가 결합되어 3D 모델을 2D 이미지나 영화로 변환합니다. 이 프로세스를 3D 렌더링이라고 합니다.

2차원 컴퓨터 애니메이션 2D 컴퓨터 애니메이션 작품을 애니메이션화하는 것은 3D 모델링에 의존하지 않는다는 점에서 3D 작품과 다소 다릅니다. 대신 일반적으로 각 레이어에는 서로 다른 개별 요소가 포함되어 있는 여러 레이어를 사용하는 것이 특징입니다. 이 애니메이션 방법 45

프로그래밍 및 코딩의 원리

컴퓨터 메모리

일반적으로 키프레임 기능이 있습니다. 이 절차에서 애니메이터는 애니메이션 시퀀스의 첫 번째 프레임과 마지막 프레임을 정의하고 컴퓨터가 그 사이의 움직임을 채울 수 있도록 합니다. 전통적으로 애니메이션 영화에서는 손으로 하는 힘든 작업이었던 이 과정을 흔히 "인비트위닝" 또는 "트위닝"이라고 합니다.

도구 애니메이터가 사용할 수 있는 다양한 애니메이션 프로그램은 각각 고유한 장점과 단점을 가지고 있습니다. Maya 및 Cinema 4D와 같은 일부 애니메이션 소프트웨어는 3D 애니메이션에 맞춰져 있습니다. Adobe Flash와 같은 다른 것들은 2D 애니메이션에 더 적합합니다. Adobe Flash는 일반적으로 TV용 2D 만화를 제작하는 데 사용되는데, 이는 그러한 콘텐츠를 만드는 빠르고 저렴한 수단으로 간주되기 때문입니다. Pixar와 같은 애니메이션 스튜디오는 일반적으로 독점 애니메이션 소프트웨어를 사용하여 특정 요구 사항을 충족합니다. 애니메이션 소프트웨어 외에도 컴퓨터 애니메이션 프로세스는 하드웨어에 크게 의존합니다. 프로세스의 많은 단계가

사용중인 시스템. 예를 들어 렌더링에는 상당한 양의 처리 능력이 필요한 경우가 많습니다. 따라서 많은 스튜디오에서는 해당 작업에 전념하는 크고 강력한 컴퓨터 시스템인 렌더 팜을 사용합니다. —조이 크렐린

참고문헌 Carlson, Wayne. “컴퓨터 그래픽과 애니메이션의 중요한 역사.” 오하이오 주립대학교. 오하이오 주립 대학, 2003. 웹. 2016년 1월 31일. 하이필드, 로저. “만화 현실로 빨리 감기.” 전신. Telegraph Media Group, 2006년 6월 13일. 웹. 2016년 1월 31일. 부모님, Rick. 컴퓨터 애니메이션: 알고리즘 및 기술. 월섬: Elsevier, 2012. 인쇄. "우리의 이야기." 픽사. 픽사, 2016. 웹. 2016년 1월 31일. 시토, 톰. 움직이는 혁신: 컴퓨터 애니메이션의 역사. 케임브리지: MIT P, 2013. 인쇄. 와인더, 캐서린, 자흐라 다우라타바디. 애니메이션 제작. 월섬: 초점, 2011. 인쇄.

컴퓨터 메모리 연구 분야 컴퓨터 과학; 컴퓨터 정보 기술

공학;

개요 컴퓨터 메모리는 컴퓨터가 현재 작업 중인 정보를 저장하는 데 사용되는 컴퓨터의 일부입니다. 컴퓨터의 하드 드라이브, 디스크 드라이브 또는 CD-ROM이나 DVD와 같은 저장 매체의 저장 공간과는 다릅니다. 컴퓨터 메모리는 컴퓨터 작동 속도와 한 번에 수행할 수 있는 작업 수를 결정하는 요소 중 하나입니다. 기본 용어 플래시 메모리: 장치를 물리적으로 조작하지 않고도 전자 신호를 통해서만 삭제하거나 덮어쓸 수 있는 비휘발성 컴퓨터 메모리입니다. 46

비휘발성 메모리: 컴퓨터에 전원이 공급되는지 여부에 관계없이 정보를 저장하는 메모리입니다. RAM(Random Access Memory): 관련 정보가 저장 매체의 어디에 있는지에 관계없이 컴퓨터가 매우 빠르게 액세스할 수 있는 메모리입니다. 가상 메모리: 컴퓨터가 추가 RAM으로 사용할 수 있도록 물리적 저장소(예: 하드 드라이브)의 일부를 구성할 때 사용되는 메모리입니다. 메모리 리소스가 부족해질 때마다 정보가 RAM에서 복사되어 가상 메모리로 이동됩니다. 휘발성 메모리: 컴퓨터에 전원이 켜져 있는 동안에만 컴퓨터에 정보를 저장하는 메모리입니다. 컴퓨터가 종료되거나 전원이 차단되면 정보가 손실됩니다.

컴퓨터 메모리 개요 컴퓨터 메모리는 컴퓨터를 구성하고 사용하는 데 매우 중요한 부분입니다. 많은 이용자들이 찾아

프로그래밍 및 코딩의 원리

컴퓨터 메모리

메모리 기본 ROM PROM EPROM EEPROM

보조 디스크 드라이브

RAM 정적 RAM

동적 RAM

플로피 디스크

하드 디스크

테이프 드라이브 광학 메모리

CD 읽기/쓰기

SD 카드

USB 플래시 드라이브

DVD 읽기/쓰기

컴퓨터 메모리는 다양한 형식으로 제공됩니다. 일부는 RAM 및 ROM과 같은 기본 CPU 메모리입니다. 다른 것들은 일반적으로 외부 형태의 보조 메모리입니다. 외부 메모리 형식은 수년에 걸쳐 변경되었으며 하드 드라이브, 플로피 드라이브, 광학 메모리, 플래시 메모리 및 보안 디지털(SD) 메모리가 포함되었습니다. ItsAllAboutEmbedded 블로그에서 수정되었습니다.

컴퓨터 메모리와 컴퓨터 저장 장치의 개념에 대해 스스로 혼란스러워합니다. 결국, 둘 다 정보를 저장합니다. 그러나 스토리지는 메모리와는 매우 다른 용도로 사용됩니다. 일련의 회전하는 자기 디스크 플래터와 움직이는 읽기/쓰기 헤드를 사용하기 때문에 저장 속도가 더 느립니다. 이는 정보를 기록하거나 읽기 위해 플래터의 작은 부분의 극성을 수정할 수 있는 작은 자기장을 생성합니다. 스토리지의 장점은 비휘발성 메모리이므로 전원이 꺼져도 내용이 유지된다는 점입니다. 반면에 컴퓨터 메모리는 컴퓨터에 전원이 흐르는 동안에만 정보를 저장하기 때문에 휘발성 메모리입니다. 이는 특히 새로 생성되었지만 저장되지 않은 문서와 같이 전력 서지로 인해 시스템이 종료될 때 손실되는 중요한 정보가 사용자에게 있는 경우 단점이 될 수 있습니다. 그러나 메모리는 컴퓨터가 현재 작업 중인 정보를 저장할 수 있게 해주기 때문에 매우 유용합니다. 예를 들어, 사용자가 하드 드라이브에 저장된 이력서 파일을 업데이트하려는 경우 먼저 컴퓨터에 저장 장치에 액세스하여 파일 사본을 찾도록 지시합니다. 컴퓨터는 파일을 찾은 다음 파일 내용을 휘발성 메모리에 복사하고 문서를 엽니다. 사용자가 파일을 변경하면 이러한 변경 사항은 사용자가 저장소에 저장할 때까지 메모리에만 반영됩니다. 어떤 사람들은 저장과 기억을 사서에 비유했습니다. 보관은 사서가 도서관에 가지고 있는 수천 권의 책과 같으며, 충분한 시간이 주어지면 이를 참고할 수 있습니다. 기억은 사서가 머리 속에 가지고 다니는 지식과 같습니다. 접근 가능하다

매우 빠르지만 책보다 적은 양의 정보를 담고 있습니다.

랜덤 및 가상 메모리 다른 유형의 정보 저장보다 훨씬 빠른 메모리 기능 중 하나는 RAM(Random Access Memory)이라는 것입니다. 메모리 공간의 다른 항목을 정렬할 필요 없이 메모리 블록의 모든 주소에 직접 액세스할 수 있습니다. 이는 순차 액세스 장치인 자기 테이프와 같은 다른 유형의 메모리와 대조됩니다. 테이프의 특정 부분에 도달하려면 먼저 나오는 테이프의 다른 모든 부분을 통해 앞으로 이동해야 합니다. 이로 인해 해당 유형의 메모리에 액세스하는 데 걸리는 시간이 늘어납니다. 거의 모든 요소보다 메모리는 컴퓨터가 요청에 응답하고 작업을 완료하는 속도를 결정합니다. 이는 소비자가 더 빠르고 동시에 더 많은 작업을 수행할 수 있는 시스템을 원하기 때문에 더 많은 메모리가 지속적으로 요구된다는 의미입니다. 한 번에 너무 많은 작업이 진행되어 컴퓨터의 메모리가 부족한 경우 이를 보완하기 위해 가상 메모리를 사용할 수 있습니다. 가상 메모리는 컴퓨터가 저장 공간의 일부를 사용하여 메모리 공간을 보완하는 기술입니다. 컴퓨터의 메모리가 거의 부족하고 다른 작업이 들어오면 컴퓨터는 메모리의 일부 내용을 하드 드라이브에 복사합니다. 그런 다음 이 정보를 메모리에서 제거하고 새 작업을 위한 공간을 만들 수 있습니다. 새 작업이 관리되면 컴퓨터는 하드 드라이브에 복사된 정보를 가져와 메모리에 다시 로드합니다. 47

프로그래밍 및 코딩의 원리

컴퓨터 모델링

플래시 및 솔리드 스테이트 메모리 일부 새로운 유형의 메모리는 메모리와 스토리지 사이에 걸쳐 있습니다. 많은 모바일 장치에 사용되는 플래시 메모리는 시스템 전원이 차단되더라도 내용을 유지할 수 있습니다. 그러나 순전히 전기 신호를 통해서만 액세스하거나 삭제할 수도 있습니다. 플래시 메모리의 모든 내용을 지우고 다른 버전으로 교체하는 것을 때때로 장치 "플래싱"이라고 합니다. 많은 최신 컴퓨터에는 여러 측면에서 플래시 메모리와 유사한 SSD(Solid State Disk)가 통합되어 있습니다. 플래시 메모리와 마찬가지로 SSD에는 움직이는 부품이 없으며 시스템 전원이 꺼진 후에도 콘텐츠를 유지하므로 하드 드라이브를 교체할 수 있습니다. SSD는 기존 컴퓨터 구성보다 훨씬 빠르기 때문에 많은 고급 컴퓨터 사용자가 SSD를 채택했습니다. 몇 분이 아닌 몇 초 만에 시스템 전원을 켜고 사용할 수 있습니다. —스콧 짐머, JD

참고문헌 Biere, Armin, Amir Nahir, Tanja Vos, eds. 하드웨어 및 소프트웨어: 검증 및 테스트. 뉴욕: 스프링어, 2013. 인쇄. 잉글랜드 사람, Irv. 컴퓨터 하드웨어 및 시스템 소프트웨어의 아키텍처: 정보 기술 접근. 5판 호보켄: 와일리, 2014. 인쇄. 쿨리쉬, 울리히. 컴퓨터 산술 및 타당성: 이론, 구현 및 응용. 2판 보스턴: De Gruyter, 2013. 인쇄. 판돌피, 루치아노. 영구 메모리가 있는 분산 시스템: 제어 및 순간 문제. 뉴욕: 스프링거, 2014. 인쇄. 패터슨, 데이비드 A., 존 L. 헤네시. 컴퓨터 구성 및 설계: 하드웨어/소프트웨어 인터페이스. 5판 월섬: 모건, 2013. 인쇄. 소토, 마리아, 앙드레 로시, 마크 세보, 요한 로랑. 임베디드 시스템의 메모리 할당 문제: 최적화 방법. 호보켄: 와일리, 2013. 인쇄.

컴퓨터 모델링 연구 분야 컴퓨터 과학; 컴퓨터 공학; 소프트웨어 엔지니어링 개요 컴퓨터 모델링은 동작을 연구하기 위해 상호 작용하거나 상호 의존적인 부분으로 구성된 특정 시스템의 표현을 설계하는 프로세스입니다. 컴퓨터 프로그램으로 구현되고 실행되는 모델을 컴퓨터 시뮬레이션이라고 합니다. 주요 용어 알고리즘: 계산을 수행하기 위한 단계별 지침 집합입니다. 데이터 소스: 데이터베이스나 스프레드시트와 같은 컴퓨터 모델이나 시뮬레이션에 사용되는 정보의 출처입니다. 매개변수: 시스템 내 변수 간의 관계에 영향을 미치는 시스템의 측정 가능한 요소입니다. 48

시뮬레이션: 컴퓨터 시스템에 의해 실행되는 컴퓨터 모델. 시스템: 복잡한 전체를 형성하는 상호 작용하거나 상호 의존적인 구성 요소 집합입니다. 변수: 고정된 값이 없는 양을 나타내는 기호입니다.

컴퓨터 모델 이해 컴퓨터 모델은 시스템의 동작을 모방하기 위한 시스템의 프로그래밍된 표현입니다. 기상학, 물리학, 천문학, 생물학, 경제학을 포함한 광범위한 분야에서는 컴퓨터 모델을 사용하여 다양한 유형의 시스템을 분석합니다. 시스템을 대표하는 프로그램이 컴퓨터에 의해 실행되는 것을 시뮬레이션이라고 합니다. 최초의 대규모 컴퓨터 모델 중 하나는 맨해튼 프로젝트 중에 최초의 원자폭탄을 설계하고 제작한 과학자들에 의해 개발되었습니다. 초기 컴퓨터 모델은 분석하기 어려운 테이블이나 행렬 형태로 출력을 생성했습니다. 나중에 인간이 데이터 추세를 볼 수 있다는 사실이 밝혀졌습니다.

프로그래밍 및 코딩의 원리

컴퓨터 모델링

수학적 모델 개발

실제 시스템

모델의 컴퓨터 프로그램

실험 수행

시뮬레이션 수행

실험 결과

시뮬레이션 결과

모델 평가 및 개선

이론을 평가하고 개선합니다.

수학적 모델은 실제 시스템에 영향을 미치는 세부 사항을 식별하고 이해하는 데 사용됩니다. 컴퓨터 프로그램을 사용하면 수학적 모델의 다양한 변형을 빠르고 정확하게 평가할 수 있으므로 모델을 효율적으로 평가하고 개선할 수 있습니다. (Allen과 Tildesly의 “액체의 컴퓨터 시뮬레이션”에서 발췌)

데이터를 시각적으로 표현하면 더 쉽습니다. 예를 들어, 인간은 폭풍 시스템 시뮬레이션의 결과를 기상 데이터 표가 아닌 지도에 그래픽 기호로 표시하면 분석하기가 더 쉽다는 것을 알게 됩니다. 따라서 그래픽 출력을 생성하는 시뮬레이션이 개발되었습니다. 컴퓨터 모델은 시스템이 물리적 모델을 사용하여 연구하기에는 너무 복잡하거나 어려울 때 사용됩니다. 예를 들어, 미국 항공 우주국(NASA)이 정확하게 수행했지만 행성과 달이 서로 간에 그리고 우주의 다른 물체에 미치는 중력 효과를 나타내는 물리적 모델을 만드는 것은 어려울 수 있습니다.

이제 태양계를 떠나는 보이저 우주 탐사선의 경우입니다. 모델에는 여러 가지 유형이 있습니다. 정적 모델은 건물 설계와 같은 정지 시스템을 시뮬레이션합니다. 동적 모델은 시간이 지남에 따라 변화하는 시스템을 시뮬레이션합니다. 동적 모델을 사용하여 해수 온도 변화가 일년 내내 해류 속도에 미치는 영향을 시뮬레이션할 수 있습니다. 연속 모델은 끊임없이 변화하는 시스템을 시뮬레이션하는 반면, 이산 모델은 특정 시간에만 변경되는 시스템을 시뮬레이션합니다. 일부 모델에는 이산 요소와 연속 요소가 모두 포함되어 있습니다. 농업 모델은 49의 효과를 시뮬레이션할 수 있습니다.

컴퓨터 모델링

끊임없이 변화하는 날씨 패턴과 특정 시간에 발생하는 살충제 살포.

컴퓨터 모델의 작동 방식 컴퓨터 모델을 만들려면 먼저 모델링할 시스템의 경계와 연구할 시스템의 측면을 결정해야 합니다. 예를 들어, 모델이 태양계인 경우 다른 행성이 태양계에 진입할 경우 기존 행성의 궤도에 대한 잠재적 영향을 연구하는 데 사용될 수 있습니다. 그러한 모델을 만들기 위해 컴퓨터 프로그래머는 시스템 작동을 복제하는 데 필요한 방정식과 기타 지침이 포함된 일련의 알고리즘을 개발합니다. 변수는 필요한 입력 데이터를 나타내는 데 사용됩니다. 태양계 모델에 사용될 수 있는 변수의 예로는 질량, 직경, 이론적 새 행성의 궤적 등이 있습니다. 시스템을 정의하는 값과 변수가 서로 어떻게 영향을 미치는지는 시스템의 매개변수입니다. 매개변수는 시뮬레이션이 실행될 때 시뮬레이션의 출력을 제어합니다. 연구 중인 시스템 및 문제와 관련된 다양한 시나리오를 테스트하는 데 다양한 값을 사용할 수 있습니다. 태양계의 매개변수 예시

샘플 문제

컴퓨터 모델을 설계할 때 적절한 변수와 매개변수를 선택하는 것이 중요합니다. 야구공이 투수의 던지는 손에서 3피트 떨어진 후의 속도를 결정하는 데 사용할 수 있는 변수 두 개와 매개변수 두 개를 나열하세요. 답변: 공의 속도를 결정하는 데 필요한 변수에는 공의 질량과 크기, 공을 놓는 각도, 공을 던지는 힘이 포함될 수 있습니다. 다양한 시나리오를 테스트하기 위해 변경될 수 있는 시스템을 정의하는 매개변수에는 풍속, 공의 공기역학적 항력, 공을 던질 때 비가 내리는지 여부 등이 있습니다.

50

프로그래밍 및 코딩의 원리

모델에는 알려진 행성의 궤도, 태양으로부터의 거리, 물체의 질량과 중력을 연결하는 방정식이 포함될 수 있습니다. 시뮬레이션이 실행될 때마다 다양한 시나리오를 테스트하기 위해 특정 매개변수를 변경할 수 있습니다. 매개변수는 항상 일정하지 않기 때문에 때때로 변수와 구별하기 어려울 수 있습니다. 모델에는 입력 데이터를 그릴 데이터 소스도 있어야 합니다. 이 데이터는 프로그램에 직접 입력하거나 파일, 데이터베이스 또는 스프레드시트와 같은 외부 소스에서 가져올 수 있습니다.

컴퓨터 모델이 중요한 이유 컴퓨터 모델은 사회에 큰 혜택을 제공했습니다. 그들은 과학자들이 우주를 탐험하고, 지구를 이해하고, 질병을 치료하고, 새로운 이론을 발견하고 테스트하도록 돕습니다. 그들은 엔지니어가 건물, 운송 시스템, 전력 시스템 및 일상 생활에 영향을 미치는 기타 항목을 설계하는 데 도움을 줍니다. 더욱 강력한 컴퓨터 시스템이 개발됨에 따라 컴퓨터 모델은 세상을 이해하고 인간 상태를 개선하는 데 중요한 메커니즘으로 남을 것입니다. —Maura Valentino, MSLIS 참고문헌 Agrawal, Manindra, S. Barry Cooper 및 Angsheng Li, eds. 계산 모델의 이론 및 응용: 제9차 연례 컨퍼런스, TAMC 2012, 중국 베이징, 2012년 5월 16~21일. 베를린: Springer, 2012. 인쇄. Edwards, Paul N. A Vast Machine: 컴퓨터 모델, 기후 데이터 및 지구 온난화의 정치. 케임브리지: MIT P, 2010. 인쇄. Kojic', Miloš 등. 생명공학의 컴퓨터 모델링: 이론적 배경, 예 및 소프트웨어. 호보켄: Wiley, 2008. 인쇄. Law, Averill M. 시뮬레이션 모델링 및 분석. 5판 뉴욕: 맥그로, 2015. 인쇄. 모리슨, 포스터. 동적 시스템 모델링 기술: 혼돈, 무작위성 및 결정론 예측. 1991. 미네올라: 도버, 2008. 인쇄. Seidl, Martina 등. UML@Classroom: 객체 지향 모델링 소개. 참: Springer, 2015. 인쇄.

프로그래밍 및 코딩의 원리

컴퓨터 보안

컴퓨터 보안 연구 분야 정보 기술; 보안 개요 컴퓨터 보안의 목표는 적절한 인증 없이 컴퓨터와 네트워크 시스템에 액세스하는 것을 방지하는 것입니다. 이는 하드웨어 설계 및 배포부터 소프트웨어 엔지니어링 및 테스트에 이르기까지 정보 기술의 다양한 측면을 포괄합니다. 여기에는 사용자 교육 및 작업 흐름 분석도 포함됩니다. 컴퓨터 보안 전문가는 최신 보안 패치로 소프트웨어를 업데이트하고, 하드웨어가 적절하게 설계되고 안전하게 저장되었는지 확인하며, 무단 액세스로부터 민감한 정보를 보호할 수 있도록 사용자를 교육합니다. 주요 용어 백도어: 시스템에 비밀리에 쉽게 액세스할 수 있도록 시스템의 일반 사용자 모르게 컴퓨터 시스템에 액세스하는 숨겨진 방법입니다. 장치 지문 인식: 특정 컴퓨터, 구성 요소 또는 컴퓨터에 설치된 소프트웨어를 고유하게 식별하는 정보입니다. 이는 어떤 장치가 특정 온라인 리소스에 액세스했는지 정확하게 알아내는 데 사용될 수 있습니다. 침입 탐지 시스템: 하드웨어, 소프트웨어 또는 둘 다를 사용하여 컴퓨터나 네트워크를 모니터링하여 누군가가 승인 없이 시스템에 액세스하려고 시도하는 시점을 확인하는 시스템입니다. 피싱: 온라인 통신을 사용하여 사람을 속여 신용 카드 번호나 주민등록번호와 같은 민감한 개인 정보를 공유하도록 하는 것입니다. 최소 권한 원칙: 컴퓨터나 네트워크 사용자에게 기본적으로 작업을 수행할 수 있는 가장 낮은 수준의 권한을 부여하는 컴퓨터 보안 철학입니다. 이렇게 하면 사용자 계정이 손상되면 제한된 양의 데이터만 취약해집니다. TPM(신뢰할 수 있는 플랫폼 모듈): 장치가 일반 텍스트를 암호 텍스트로 또는 그 반대로 변환할 수 있도록 하는 특수 칩인 암호화 프로세서 설계에 사용되는 표준입니다.

하드웨어 보안 컴퓨터 보안 분야의 첫 번째 방어선은 컴퓨터 하드웨어 자체와 관련이 있습니다. 기본적으로 컴퓨터 하드웨어는 승인된 직원만 접근할 수 있는 안전한 위치에 보관되어야 합니다. 따라서 많은 조직에서는 직원 워크스테이션이 있는 구역에 대한 접근이 제한됩니다. 접근하려면 배지나 기타 신분증이 필요할 수 있습니다. 엔터프라이즈 서버와 같은 민감한 장비는 접근하기가 더욱 어렵고 온도 조절이 가능한 금고에 잠겨 있습니다. 기존 컴퓨터 시스템에 하드웨어 보안 조치를 추가하여 더욱 안전하게 만드는 것도 가능합니다. 이에 대한 한 가지 예는 사용자 로그인의 일부로 지문 스캐너와 같은 생체 인식 장치를 사용하는 것입니다. 컴퓨터는 지문이 인증된 사람의 로그인만 허용합니다. 음성 인증, 망막 스캔 및 기타 유형의 생체 인식에도 유사한 제한 사항이 연결될 수 있습니다. 컴퓨터 내부에는 TPM(신뢰할 수 있는 플랫폼 모듈)을 기반으로 하는 특수 유형의 프로세서가 장치 간의 암호화된 연결을 관리할 수 있습니다. 이렇게 하면 장치 하나가 손상되더라도 전체 시스템이 계속 보호될 수 있습니다. 또 다른 보안 유형인 장치 핑거프린팅을 사용하면 시스템에 액세스하는 데 사용된 장치 또는 애플리케이션을 식별할 수 있습니다. 예를 들어, 커피숍의 무선 액세스 포인트가 공격을 받은 경우 액세스 포인트의 로그를 검사하여 공격을 시작하는 데 사용된 장치의 컴퓨터 주소를 찾을 수 있습니다. 매우 정교한 보안 하드웨어 중 하나는 침입 탐지 시스템입니다. 이러한 시스템은 다양한 형태를 취할 수 있지만 일반적으로 네트워크나 호스트로 들어오고 나가는 모든 트래픽을 필터링하고 분석하는 장치로 구성됩니다. 침입 탐지 시스템은 데이터 흐름을 검사하여 네트워크 해킹 시도를 정확히 찾아냅니다. 그러면 시스템은 피해가 발생하기 전에 공격을 차단할 수 있습니다. 네트워크 보안 네트워크 보안은 컴퓨터 보안의 또 다른 중요한 측면입니다. 이론적으로 인터넷에 연결된 모든 컴퓨터는 공격에 취약합니다. 공격자는 소프트웨어 설계의 약점을 이용하거나 사용자를 속여 시스템에 침입하려고 시도할 수 있습니다.

프로그래밍 및 코딩의 원리

컴퓨터 보안

하드웨어 방화벽

키 암호화

인터넷 인터넷 접속이 거부되었습니다.

암호화된 무선 연결 키 암호화

소프트웨어 방화벽

암호 거부됨 컴퓨터 보안은 데이터와 프로그램을 보호하기 위해 다양한 형태로 제공될 수 있습니다. 암호는 컴퓨터에 액세스할 수 있는 사람을 제한하고, 키 암호화는 전송된 데이터를 읽을 수 있는 사람을 제한하며, 방화벽은 인터넷으로부터의 침입을 제한할 수 있습니다.

사용자 이름과 비밀번호. 후자의 방법은 정보를 얻기 위한 "낚시"를 포함하므로 피싱이라고 합니다. 그러나 두 방법 모두 시간이 많이 걸릴 수 있습니다. 따라서 해커가 액세스 권한을 얻으면 백도어를 설치할 수 있습니다. 백도어를 사용하면 향후 시스템에 감지되지 않고 쉽게 액세스할 수 있습니다. 공격자가 인증된 사용자를 속여 액세스 권한을 부여하는 것을 방지하는 한 가지 방법은 최소 권한 원칙을 따르는 것입니다. 이 원칙에 따라 사용자 계정에는 각 사용자가 업무를 수행하는 데 필요한 최소한의 액세스 권한이 부여됩니다. 예를 들어 접수원의 계정은 이메일, 일정 관리, 교환대 기능으로 제한됩니다. 이렇게 하면 접수원의 사용자 이름과 비밀번호를 알아낸 해커가 자신의 급여를 설정하거나 52

회사 자산을 자신의 은행 계좌로 이체합니다. 따라서 권한을 유지하면 조직은 침입자가 가할 수 있는 피해를 최소화할 수 있습니다.

소프트웨어 보안 소프트웨어는 컴퓨터 시스템의 또 다른 취약 지점을 나타냅니다. 이는 컴퓨터에서 실행되는 소프트웨어가 작동하려면 특정 액세스 권한을 부여받아야 하기 때문입니다. 소프트웨어가 안전한 방식으로 작성되지 않은 경우 해커가 소프트웨어의 권한을 강화할 수 있습니다. 그런 다음 해커는 이러한 향상된 권한을 사용하여 의도하지 않은 기능을 수행하거나 소프트웨어를 실행하는 컴퓨터를 장악할 수도 있습니다. 해커의 언어에서는 이를 시스템 "소유"라고 합니다.

프로그래밍 및 코딩의 원리

움직이는 대상 컴퓨터 보안 전문가는 부럽지 않은 작업을 수행합니다. 하드웨어 및 소프트웨어 취약점을 최대한 방지하기 위해 사용자가 컴퓨터를 사용하려는 방식을 방해해야 합니다. 보호하려는 동일한 사용자가 이러한 보호 조치를 우회하려고 시도하여 불편하거나 완전히 부담스러운 경우가 많습니다. 이러한 경우 컴퓨터 보안은 안전과 기능 사이의 균형을 맞추는 역할을 할 수 있습니다. —Scott Zimmer, JD 참고문헌 Boyle, Randall, Raymond R. Panko. 기업 컴퓨터 보안. 4판 보스턴: 피어슨, 2015. 인쇄.

CAD(컴퓨터 지원 설계)

Brooks, R. R. 컴퓨터 및 네트워크 보안 소개: 회색 음영 탐색. 보카 레이톤: CRC, 2014. 디지털 파일. Jacobson, 더글라스, Joseph Idziorek. 컴퓨터 보안 지식: 디지털 세계에서 안전 유지. 보카 레이톤: CRC, 2013. 인쇄. Schou, 코리, 스티븐 에르난데스. 정보 보증 핸드북: 효과적인 컴퓨터 보안 및 위험 관리 전략. 뉴욕: 맥그로, 2015. 인쇄. Vacca, John R. 컴퓨터 및 정보 보안 핸드북. 암스테르담: 카우프만, 2013. 인쇄. Williams, Richard N. 손쉬운 인터넷 보안: 컴퓨터를 제어하세요. 런던: 불꽃 나무, 2015. 인쇄.

컴퓨터 지원 설계(CAD) 일반적으로 CAD라고 불리는 컴퓨터 지원 설계는 컴퓨터 소프트웨어, 프로그램 및 시스템을 사용하여 2차원(2D) 벡터 기반 그래픽과 3차원(3D) 모델을 만드는 것입니다. 건축, 설계, 제도, 토목, 전기 및 기계 공학 산업에서 광범위하게 사용됩니다. 1980년대부터 CAD 프로그램과 소프트웨어가 도입되면서 제조 비용이 크게 줄어들었고 이러한 분야와 기타 분야에서 설계 및 개념 역량이 확장되었습니다.

개요 CAD 프로그램과 소프트웨어는 사용자가 기계 부품, 자동차, 건물, 보철물을 설계할 수 있을 뿐만 아니라 시각 효과, 컴퓨터 애니메이션, 비디오 게임, 지도, 지리 공간 응용 프로그램을 만들 수 있는 다양한 응용 프로그램을 포함합니다. CAD는 1980년대 초반에 처음 도입되었으며 건축 및 엔지니어링에 사용되는 많은 수동 제도 기술의 필요성을 대체하여 제도 직업을 변화시키기 시작했습니다. 그러나 현장의 많은 사람들은 Ivan Sutherland의 1963년 MIT 박사 학위 논문인 컴퓨터 프로그램 Sketchpad를 그래픽 기술을 산업에 발전시킨 공로를 인정합니다.

디지털 시대. 컴퓨터 기술이 향상되고 개인용 컴퓨터가 더욱 저렴해짐에 따라 후속 프로그램의 기능과 사용이 증가하여 다른 디자인 응용 프로그램을 통합하게 되었습니다. 결과적으로, 다양한 설계 분야의 기업은 전통적인 제도, 설계 및 엔지니어링 기술에 비해 더 적은 사람이 더 짧은 시간에 많은 작업을 수행할 수 있게 함으로써 전반적인 생산 비용을 절감할 수 있는 기회를 얻었습니다. 업계에서 이 기술의 가치는 비용 효율성과 생산성 그 이상입니다. 이러한 시스템과 관련된 고급 기술은 제조 및 건설 기술을 개선하여 제품과 건물의 안정성과 안전성을 높이고, 정확성을 높이고 프로세스에 도입되는 오류를 줄였습니다. 이러한 향상된 정확성 덕분에 설계자, 엔지니어 및 건축가는 건설 전에 재료와 구조가 3D 모델에서 어떻게 작동할지 결정할 수 있으므로 프로젝트에 사용되는 재료를 개선할 수 있는 방법을 살펴볼 수 있습니다. CAD는 또한 핸드 드로잉 및 모델과 같은 전통적인 기술을 통해 수행하기에는 비용이 많이 드는 새로운 모양과 복잡한 기하학적 설계로 건축 가능성을 확장했습니다. 많은 전문가들이 53점을 인정합니다.

CAD(컴퓨터 지원 설계)

프로그래밍 및 코딩의 원리

펜실베니아주 챔버스버그에 위치하고 있습니다. Letterkenny Army Depot의 컴퓨터 지원 설계/컴퓨터 지원 제조(CAD/CAM) 시스템 중앙 처리 시설 및 그래픽 플로터의 모습.

건축가, 설계자 및 엔지니어가 제품 및 구조에 적용할 수 있는 비전통적인 모양을 개념화하도록 장려하는 동시에 결과 설계를 제조하거나 구축하는 데 필요한 정확성을 향상시켜 설계 프로세스를 향상시키는 CAD입니다. CAD 소프트웨어는 오픈 소스 및 무료 소프트웨어로 제공되는 소프트웨어를 포함하여 다양한 종류로 제공됩니다. 그러한 프로그램 중 하나가 2000년 여름에 출시되어 54개 부문에서 우승한 SketchUp입니다.

같은 해 커뮤니티 초이스 상. 3D 모델링 기술과 위치정보 구성요소를 결합한 SketchUp 무료 버전을 사용하면 여러 사용자가 다른 사용자의 디자인을 다운로드하고 Google Earth와 관련된 대규모 다중 그룹 프로젝트에 기여할 수 있습니다. 널리 사용되는 CAD 소프트웨어 패키지에는 CADKEY, CATIA, IEAS-MS, Inventor, Pro-E, SolidEdge, SolidWorks 및 Unigraphics가 포함됩니다. —로라 L. 런딘(매사추세츠주)

프로그래밍 및 코딩의 원리

컴퓨터 지원 설계 및 컴퓨터 지원 제조 소프트웨어

참고문헌 Bethune, James. AutoCAD 2014를 사용한 엔지니어링 그래픽. 샌프란시스코: Peachpit, 2013. 인쇄. Farin, G. E. 컴퓨터 기반 기하학적 설계를 위한 곡선 및 표면: 실용 가이드. 4판 샌디에고: 학술, 1997. 인쇄. 생산 디자인의 혁신: CAD에서 가상 프로토타이핑까지. Eds. 모니카 보르데고니와 카테리나 리제. 런던: Springer, 2001. 인쇄. Rao, P. N. CAD/CAM: 원리 및 응용. 3판 인도: 타타 맥그로(Tata McGraw), 2010. 인쇄. 스토이코비치, 즐라타르. 전력 공학의 컴퓨터 지원 설계: 소프트웨어 도구의 응용. 뉴욕: 스프링거, 2012. 인쇄.

서덜랜드, 이반. 스케치패드: 인간-기계 그래픽 통신 시스템. 디스. MIT. 케임브리지: MIT, 1963. 인쇄. Thakur, A. A. G. Banerjee 및 S. K. Gupta. “물리 기반 시뮬레이션 응용프로그램을 위한 CAD 모델 단순화 기술에 대한 조사.” CAD 컴퓨터 지원 설계 41.2(2009): 65–80. 인쇄. 유, 쳉, 송지아. 컴퓨터 지원 설계: 기술, 유형 및 실제 응용. 뉴욕: Nova, 2012. eBook 컬렉션(EBSCOhost). 편물. 2015년 6월 5일.

컴퓨터 지원 설계 및 컴퓨터 지원 제조 소프트웨어(CAD/CAM) 연구 분야 응용; 그래픽 디자인 개요 CAD(Computer-Aided Design) 및 CAM(Computer-Aided Manufacturing)은 사용자가 제품을 설계하고 컴퓨터 유도 기계를 사용하여 필요한 사양에 따라 제품을 제조할 수 있도록 하는 소프트웨어입니다. CAD/CAM 프로그램은 다양한 산업 분야에서 사용되며 기업이 제품의 반복을 제조하고 테스트할 수 있는 프로세스인 신속한 프로토타이핑에서 중요한 역할을 합니다. 주요 용어 4차원 건축 정보 모델링(4D BIM): 제조 프로세스를 안내하기 위해 시간 관련 정보를 통합하는 3D 모델을 생성하는 프로세스입니다. 신속한 프로토타이핑: 테스트하고 평가할 실제 프로토타입 모델을 만드는 프로세스입니다. 래스터: 개별 픽셀 사용을 기반으로 이미지 데이터를 저장, 표시 및 편집하는 수단입니다.

솔리드 모델링: 솔리드 개체의 3D 표현을 만드는 프로세스입니다. 벡터: 정의된 점과 선의 사용을 기반으로 이미지 데이터를 저장, 표시 및 편집하는 수단입니다.

CAD/CAM의 응용 "CAD/CAM"이라는 용어는 "컴퓨터 지원 설계"와 "컴퓨터 지원 제조"의 약어입니다. CAD/CAM은 광범위한 컴퓨터 소프트웨어 제품을 총칭합니다. CAD 소프트웨어와 CAM 소프트웨어는 서로 다른 두 가지 유형의 프로그램으로 간주되지만 함께 사용되는 경우가 많으므로 서로 밀접하게 연관되어 있습니다. 주로 제조에 사용되는 CAD/CAM 소프트웨어를 사용하면 사용자는 컴퓨터의 도움을 받아 프로토타입부터 사용 가능한 부품까지 다양한 개체를 설계, 모델링 및 생산할 수 있습니다. CAD/CAM 소프트웨어는 1960년대 연구자들이 전문가의 설계 및 모델링을 지원하기 위해 컴퓨터 프로그램을 개발하면서 시작되었습니다. 그 이전에는 물체를 디자인하고 3D 모델을 만드는 데 시간이 많이 걸리는 프로세스였습니다. 이러한 작업을 지원하도록 설계된 컴퓨터 프로그램은 상당한 시간 절약 효과를 가져왔습니다. 1960년대 후반에는 CAD 프로그램이 초기 CAM 소프트웨어와 함께 사용되기 시작했습니다. 55

컴퓨터 지원 설계 및 컴퓨터 지원 제조 소프트웨어

설계

표시하다

치사한 사람

분석

디지털 표현

물리적 모델

CAD(컴퓨터 지원 설계)와 CAM(컴퓨터 지원 제조)은 동일한 기본 목표를 달성하기 위해 많은 산업 분야에서 사용됩니다. 3D 품목을 스캔 및 분석하고, 새로운 품목을 설계한 다음, 해당 디자인을 CAM을 통해 제조 품목으로 변환할 수 있습니다. CAM은 기계가 새로운 품목을 적절하게 생성하는 데 필요한 프로그램을 개발할 수 있습니다.

CAM을 사용하면 사용자는 컴퓨터 호환 기계에 디지털 설계에 따라 다양한 물체를 제조하도록 지시할 수 있습니다. CAD/CAM 소프트웨어의 사용은 이후 수십 년 동안 널리 퍼졌습니다. CAD/CAM은 이제 대기업에서 소규모 스타트업에 이르기까지 수많은 회사의 제조 프로세스의 핵심 부분입니다. CAD/CAM이 특히 유용하다고 입증된 산업에는 자동차 및 컴퓨터 기술 산업이 포함됩니다. 그러나 CAM 소프트웨어는 치과 및 섬유 제조를 포함하여 덜 명확한 분야에서도 널리 사용되었습니다. CAM 소프트웨어와 함께 사용하는 것 외에도 CAD 소프트웨어는 여러 분야에서 단독으로 작동합니다. CAD 소프트웨어를 사용하면 기계로 제작할 필요가 없는 물체나 구조물의 3D 모델을 만들 수 있습니다. 예를 들어, 전문 CAD 소프트웨어는 건축 분야에서 건물의 평면도와 3D 모델을 설계하는 데 사용됩니다. 56

프로그래밍 및 코딩의 원리

CAD/CAM 소프트웨어를 사용한 컴퓨터 지원 설계는 설계부터 시작하는 두 부분으로 구성된 프로세스입니다. 어떤 경우에는 사용자가 CAD 소프트웨어를 사용하여 개체의 2D 선 그리기를 만들어 개체 디자인을 시작합니다. 이 프로세스를 "초안 작성"이라고 합니다. 그런 다음 CAD 소프트웨어 내의 도구를 사용하여 2D 계획을 3D 모델로 변환할 수 있습니다. CAD/CAM은 물리적 객체를 생성하는 데 사용되므로 모델링 단계는 디자인 프로세스에서 가장 필수적인 단계입니다. 해당 단계에서 사용자는 항목의 3D 표현을 만듭니다. 이 품목은 기계 부품, 반도체 부품 또는 신제품의 프로토타입 등이 될 수 있습니다. 어떤 경우에는 사용자가 객체의 윤곽과 유사한 3D 모델인 "와이어 프레임 모델"을 만들 수도 있습니다. 그러나 이러한 모델에는 물체의 단단한 표면이나 내부 세부 사항이 포함되지 않습니다. 따라서 견고한 물체를 제조하는 것이 목표인 CAM에는 적합하지 않습니다. 따라서 CAD/CAM 환경에서 CAD 소프트웨어를 사용하는 사람들은 솔리드 모델링에 더 중점을 두는 경우가 많습니다. 솔리드 모델링은 객체의 가장자리와 내부 구조를 포함하는 객체의 3D 모델을 생성하는 프로세스입니다. CAD 소프트웨어를 사용하면 일반적으로 사용자가 생성된 모델을 회전하거나 조작할 수 있습니다. CAD를 사용하면 설계자는 제품의 모든 개별 부품이 의도한 대로 서로 들어맞는지 확인할 수 있습니다. CAD를 사용하면 사용자가 디지털 모델을 수정할 수도 있습니다. 이는 실제 모델을 수정하는 것보다 시간 소모가 적고 낭비도 적습니다. CAM 기술을 통해 모델을 제작하려는 의도로 모델을 설계할 때 사용자는 주요 측정에 특히 주의해야 합니다. 정밀하고 정확한 스케일링이 중요합니다. 따라서 사용자는 모델을 디자인할 때 반드시 벡터 이미지를 사용해야 합니다. 개별 픽셀 사용을 기반으로 하는 래스터 이미지와 달리 벡터 이미지는 서로 정의된 관계가 있는 선과 점을 기반으로 합니다. 사용자가 벡터 이미지를 아무리 축소하거나 확대하더라도 이미지는 점과 선의 상대적 배치 측면에서 올바른 비율을 유지합니다. Computer-Aided Manufacturing 사용자는 CAD 소프트웨어를 사용하여 물체를 설계한 후 CAM 프로그램을 사용하여 해당 물체를 제작할 수 있습니다. CAM 프로그램은 일반적으로 컴퓨터 수치 제어(CNC)를 통해 작동됩니다. CNC에서는 명령이 일련의 방식으로 제조 기계에 전송됩니다.

프로그래밍 및 코딩의 원리

숫자의. 이러한 지침은 기계에게 물체를 구성하기 위해 어떻게 움직여야 하는지, 어떤 작업을 수행해야 하는지 알려줍니다. 해당 프로세스에 사용되는 기계 유형은 다양하며 밀링 머신, 드릴 및 선반이 포함될 수 있습니다. 21세기 초, 플라스틱이나 기타 재료의 얇은 층으로 물체를 제작하는 장치인 3D 프린터가 CAM에 사용되기 시작했습니다. 3D 프린터는 기존 CNC 기계와 달리 대규모 제조 기술이 필요한 개인이나 소규모 기업에서 주로 사용됩니다.

특수 응용 프로그램 CAD/CAM 기술이 발전함에 따라 다양한 특수 응용 프로그램에 사용되게 되었습니다. 예를 들어 일부 CAD 소프트웨어는 4차원 건축 정보 모델링(4D BIM)을 수행하는 데 사용됩니다. 이 프로세스를 통해 사용자는 시간과 관련된 정보를 통합할 수 있습니다. 예를 들어, 4D BIM을 사용한 모델링 프로세스에서 특정 프로젝트의 일정을 고려할 수 있습니다. 또 다른 일반적인 CAD/CAM 애플리케이션은 신속한 프로토타이핑입니다. 그 과정에서 기업이나 개인은 사물의 물리적 프로토타입을 설계하고 제작할 수 있다. 이를 통해 설계자는 테스트 및 평가에 따라 변경하고 테스트할 수 있습니다.

컴퓨터 보조 교육(CAI)

제품의 다양한 반복. 결과 프로토타입은 종종 3D 프린터를 사용하여 제작됩니다. 신속한 프로토타이핑을 통해 품질 관리가 향상되고 제품 출시 시간이 단축됩니다. —Joy Crelin 참고문헌 Bryden, Douglas. 제품 설계를 위한 CAD 및 신속한 프로토타이핑. 런던: 킹, 2014. 인쇄. 추아(Chua), 치 카이(Chee Kai), 카 파이 렁(Kah Fai Leong), 추싱 림(Chu Sing Lim). 신속한 프로토타이핑: 원리 및 응용. Hackensack: 월드 사이언티픽, 2010. 인쇄. “컴퓨터 지원 설계(CAD) 및 컴퓨터 지원 제조(CAM).” Inc. Mansueto Ventures, n.d. 편물. 2016년 1월 31일. "디자인과 기술: 제조 공정." GCSE 바이트 크기. BBC, 2014. 웹. 2016년 1월 31일. 허먼, 존. “시작하는 방법: 3D 모델링 및 프린팅.” 인기 역학. Hearst Digital Media, 2012년 3월 15일. 웹. 2016년 1월 31일. Krar, Steve, Arthur Gill, Peter Smid. 컴퓨터 수치 제어가 단순화되었습니다. 뉴욕: 산업, 2001. 인쇄. 사르카르, 자얀타. 컴퓨터 지원 설계: 개념적 접근. 보카 레이톤: CRC, 2015. 인쇄.

컴퓨터 보조 수업(CAI) 학습 분야 컴퓨터 과학; 정보 시스템 개요 컴퓨터 보조 수업은 수업 수단이나 교실 수업 보조 수단으로 컴퓨터 기술을 사용하는 것입니다. 교육 내용은 기술과 관련될 수도 있고 그렇지 않을 수도 있습니다. 컴퓨터를 이용한 교육은 종종 강사와 학생 사이의 거리를 연결하고 소수의 교육자가 다수의 학생을 교육할 수 있게 해줍니다. 주요 용어 학습자 제어 프로그램: 학생이 교육 속도를 설정하고, 집중할 콘텐츠 영역을 선택하고,

ä

ä

ä

언제 탐색하거나 교육의 중간 또는 난이도 수준을 결정하는 영역; “학생 주도 프로그램”으로도 알려져 있습니다. 학습 전략(learning strategy): 개념 목록을 음악에 맞춰 암기하는 것과 같이 특정 유형의 지식을 획득하고 유지하기 위한 구체적인 방법. 학습 스타일: 시각적 자극 보기, 읽기, 듣기 또는 손을 사용하여 가르치는 내용을 연습하는 등 지식 습득에 대해 개인이 선호하는 접근 방식입니다. 교육학(pedagogy): 교육의 목적과 이를 달성할 수 있는 방법을 다루는 교육 철학입니다. 단어 예측: 사용자가 이전에 입력한 단어를 인식하고 사용자가 입력을 시작할 때마다 자동으로 완성하도록 제안하는 소프트웨어 기능입니다. 57

프로그래밍 및 코딩의 원리

컴퓨터 보조 교육(CAI)

컴퓨터 지원 대 전통적인 수업 전통적인 교실에서 교사는 연필, 종이, 분필, 칠판과 같은 기본 도구를 사용하여 학생들에게 정보를 제공합니다. 대부분의 수업은 강의, 학생의 그룹 및 개인 작업, 견학이나 실험실 실험과 같은 실습 활동으로 구성됩니다. 대부분의 경우, 학생들은 자신의 학습 선호도를 교사 자신의 교수법에 맞게 조정해야 합니다. 왜냐하면 한 교사가 동시에 여러 학습 스타일을 가르치려고 하는 것은 비현실적이기 때문입니다. 컴퓨터 지원 교육(CAI)은 이 모델을 기술, 즉 학생들이 수업의 일부 또는 전부를 위해 작업하는 컴퓨팅 장치로 보완합니다. 일부 CAI 프로그램은 자료 제시 방법과 지원되는 학습 전략에 대해 제한된 옵션을 제공합니다. 학습자 통제 프로그램으로 알려진 다른 프로그램은 더 유연합니다. 일반적인 CAI 수업은 장기 분할이나 아시아의 역사와 같은 하나의 특정 개념에 중점을 둡니다. 프로그램이 표시될 수 있습니다.

오디오, 비디오, 텍스트, 이미지 또는 이들의 조합을 통한 정보. 그런 다음 학생이 내용을 주의 깊게 이해했는지 확인하기 위해 퀴즈를 냅니다. 그러한 교육에는 여러 가지 이점이 있습니다. 첫째, 학생들은 여러 매체를 통해 정보를 받는 경우가 많기 때문에 교사가 선호하는 스타일에 적응할 필요가 없습니다. 둘째, 교사는 학생들이 그룹에 정보를 제시하는 데 집중하지 않고도 수업을 진행하면서 학생들을 더 잘 지원할 수 있습니다.

장점과 단점 CAI에는 장점과 단점이 모두 있습니다. 특정 소프트웨어 기능을 사용하면 더 쉽게 입력할 수 있는 단어 예측, 철자 실수를 방지하는 데 도움이 되는 철자 검사 등 학습 환경을 더 쉽게 탐색할 수 있습니다. 복사하여 붙여넣기 기능을 사용하면 동일한 정보를 계속해서 다시 입력하는 데 소요되는 시간을 절약할 수 있습니다. 음성 인식은 시각 장애가 있거나 신체 장애가 있거나 쓰기에 영향을 미치는 학습 장애가 있는 학생에게 도움이 될 수 있습니다. 다른

새로운 수업

샘플 문제 전문가 솔루션

교정 학생 솔루션

솔루션 비교 및 ​​학생 평가

맞다면

학생에게 피드백 제공

도움말 세션

잘못된 경우

또 다른 시도?

아니요

컴퓨터 보조 수업은 프로그래밍을 사용하여 학생이 수업을 이해했는지(예제 문제에 올바르게 답함) 또는 추가 도움이나 교정이 필요한지(예제 문제에 잘못 답함) 여부를 결정합니다. 이 순서도는 컴퓨터 보조 교육의 일반적인 경로를 나타냅니다. (S. Egarievwe, A. O. Ajiboye 및 G. Biswas, “컴퓨터 기반 학습에서 LabVIEW의 인터넷 응용프로그램,” 2000년에 채택됨.)

58

프로그래밍 및 코딩의 원리

학생에게 도움이 되도록 의도되지 않았음에도 불구하고 유용한 기능이 존재합니다. 예를 들어, CAI 비디오 강의에는 재생을 일시 중지하거나 앞으로 또는 뒤로 건너뛰거나 다시 시작하는 옵션이 포함되어 있습니다. 이러한 기능은 특히 어려운 수업을 이해하는 데 어려움을 겪고 있거나 필기 연습을 하는 학생에게 매우 중요할 수 있습니다. 언제든지 비디오를 중지하고 제공된 콘텐츠를 본 후 다시 시작할 수 있습니다. 대조적으로, 정규 교실에서는 얼마나 많은 학생이 이해하고 따라가기 위해 애쓰는지에 관계없이 강사가 동일한 속도로 계속 진행하는 경우가 많습니다. 학습은 "모든 경우에 적용되는" 일이 아닙니다. 다양한 주제는 타고난 능력과 학습 습관에 따라 다양한 학생들에게 더 크거나 덜 도전적인 문제를 제기합니다. 정규 교실에서 교사는 일부 학생이 수업으로부터 혜택을 받지 못하는 것을 종종 감지하고 그에 따라 조정할 수 있습니다. 일부 CAI에서는 수업이 한 가지 방식으로만 제공되기 때문에 이는 옵션이 아닙니다.

적응형 수업 다행히도 일부 형태의 CAI는 적응형 방법을 사용하여 자료를 제시함으로써 다양한 학습 속도를 해결합니다. 이 프로그램은 학생들의 지식을 테스트한 후 수업에서 더 어려워하는 부분에 적응합니다. 예를 들어, 수학 프로그램에서 학생이 분수를 곱할 때 종종 실수를 한다는 것을 알아차리면 학생에게 해당 주제에 대한 추가 연습을 제공할 수 있습니다. 적응형 프로그램은 교사에게 학생의 개별 요구 사항을 더 잘 평가하고 진행 상황을 추적할 수 있는 수단을 제공합니다. 기술이 향상됨에 따라 더 자세하고 구체적인 결과가 나오면 교육을 더욱 맞춤화하려는 교사의 노력이 강화될 수 있습니다.

조건부 연산자

원격 교육 CAI는 성장하는 온라인 교육 분야에 특히 중요합니다. 온라인 강사는 커리큘럼을 보완하기 위해 CAI 요소를 사용하는 경우가 많습니다. 예를 들어, 온라인 과정에서는 학생들이 해당 과정에 대한 자신의 연구 논문을 완성하는 방법을 알 수 있도록 도서관 연구 수행에 대한 스트리밍 비디오를 시청하도록 요구할 수 있습니다. 또한 온라인 교육을 통해 단 몇 명의 강사가 먼 거리에 걸쳐 많은 수의 학생을 가르칠 수 있습니다. 수만 명의 학생이 단일 MOOC(대규모 공개 온라인 강좌)에 등록할 수 있습니다. —Scott Zimmer, JD 참고문헌 Abramovich, Sergei, ed. 교육용 컴퓨터. 2 권. 뉴욕: 노바, 2012. 인쇄. Erben, Tony, Ruth Ban 및 Martha E. Castañeda. 기술을 통해 영어 학습자를 교육합니다. 뉴욕: 루트리지(Routledge), 2009. 인쇄. Miller, Michelle D. Minds Online: 기술을 활용한 효과적인 교육. 케임브리지: 하버드 UP, 2014. 인쇄. Roblyer, M.D., Aaron H. Doering. 교육 기술을 교육에 통합합니다. 6판 보스턴: 피어슨, 2013. 인쇄. Tatnall, Arthur 및 Bill Davey, 편집. 교육에서의 컴퓨터 역사에 대한 고찰: 컴퓨터의 초기 사용과 학교에서의 컴퓨팅 교육. 하이델베르그: 스프링어, 2014. 인쇄. 토메이, 로렌스 A., 에디션. 정보 기술 커리큘럼 통합 백과사전. 2 권. Hershey: 정보 과학 참고서, 2008. 인쇄.

조건부 연산자 연구 분야 코딩 기술; 소프트웨어 개발; 컴퓨터 과학

분기 논리에 필요한 코드 줄 수를 줄이는 데 사용됩니다. 이러한 리팩터링을 사용하면 코드를 더 쉽게 이해하고 디버깅하고 유지 관리할 수 있습니다.

추상적인

주요 약관

조건 연산자는 코드에서 if-then-else 구문과 같은 다른 조건식과 유사한 기능을 수행합니다. 조건부 연산자는 다음과 같습니다.

bool: 많은 프로그래밍 언어에서 "true" 또는 "false", "yes" 또는 "no", "on" 또는 "off"와 같은 둘 중 하나의 값으로 구성된 데이터 유형입니다. 59

조건부 연산자

피연산자: 컴퓨터 프로그래밍에서 주어진 수학적, 관계형 또는 논리적 연산이 수행되는 데이터를 지정하는 컴퓨터 명령의 일부입니다. 데이터 자체를 의미하기도 합니다. 삼항 연산자: 세 개의 피연산자를 취하는 연산자; 대부분 조건부 연산자를 나타냅니다.

조건부 연산자란 무엇입니까? 컴퓨터 프로그래밍에서 피연산자는 특정 수학적, 관계형 또는 논리적 연산이 수행되는 데이터를 나타냅니다. 조건 연산자는 세 개의 피연산자를 취하는 연산자입니다. 첫 번째 피연산자는 조건문이고, 두 번째 피연산자는 조건이 true인 경우 반환할 결과, 세 번째 피연산자는 조건이 false인 경우 반환할 결과입니다. 많은 프로그래밍 언어에서 조건 연산자는 일반적으로 사용되는 유일한 삼항 연산자입니다. 이 때문에 "조건 연산자"와 "삼항 연산자"라는 용어는 종종 같은 의미로 사용됩니다. 조건 연산자는 조건식의 한 유형입니다. 조건식은 부울 조건이 true 또는 false로 평가되는지 여부에 따라 다른 작업을 수행합니다. 조건 연산자는 부울 조건에서 반환된 부울 값을 기반으로 다양한 코드 블록을 실행합니다. 조건은 x = 5와 같은 간단한 부울 조건일 수 있습니다. 또는 x = 5 AND y = 6 AND z = 7과 같은 부울 연산자로 구성된 복잡한 부울 표현식일 수도 있습니다.

비교 연산자와 함께 조건부 연산자를 사용하여 둘 이상의 조건을 단일 테스트로 결합할 수 있습니다. 다음 조건문에 대해 정수의 참 및 거짓 예가 제공됩니다: (x < 3) AND (y > 6), (x < 1) OR (y 1000 THEN 할인 = .1 ELSE 할인 = .05 END IF 이 코드 세트 고객이 해당 연도 동안 $1,000 이상 지출한 경우 0.1 또는 10%로 할인되고 고객이 $1,000 이하를 지출한 경우 0.05 또는 5%로 할인됩니다. 이 명령을 작성하는 보다 효율적인 방법은 조건부 연산자를 사용하는 것입니다. , 아래와 같이: yearlyPurchases > 1000 ? 할인 = .1 : 할인 = .05 if-thenelse 문의 부울 식이 조건 연산자의 첫 번째 피연산자이고 "if" 블록의 코드가 두 번째 피연산자라는 점에 유의하세요. "else" 블록의 코드는 세 번째 피연산자입니다. 소매업체가 해당 연도에 1,000달러 이상 지출한 고객은 10% 할인을 받고, 5,000달러 이상 지출한 고객은 15% 할인을 받는 보다 세련된 할인 시스템을 원한다고 가정해 보겠습니다. , 다른 모든 항목은 5%를 받았습니다. 다음과 같이 중첩된 if-then-else 문을 사용하여 작업을 수행할 수 있습니다. IF yearlyPurchases > 1000 THEN IF yearlyPurchases < = 5000 THEN 할인 = .1 ELSE 할인 = .15 END IF ELSE 할인 = .05 END IF 그러나 조건부 연산자를 사용하면 필요한 코드 줄을 9줄에서 1줄로 줄일 수 있습니다.

조건부 연산자

연간 구매 > 1000 ? (yearlyPurchases < = 5000 ? 할인 = .1 : 할인 = .15) : 할인 = .05 가장 바깥쪽의 "if" 문에 사용된 부울 식이 외부 조건 연산자의 첫 번째 피연산자가 됩니다. 마찬가지로 가장 안쪽의 "if" 문에 사용된 부울 표현식은 내부 조건 연산자의 첫 번째 피연산자가 됩니다.

단순화된 코드의 이점 조건부 연산자는 특히 복잡한 중첩 시나리오에서 분기 논리를 만드는 데 필요한 코드 줄 수를 줄일 수 있는 if-then-else 구문에 대한 대안을 제공합니다. 이렇게 하면 코드 작성, 디버깅 및 유지 관리에 필요한 시간이 줄어들고 코드를 더 쉽게 이해할 수 있습니다. 조건식은 컴퓨터 프로그래밍에 사용되는 가장 일반적인 구문 중 하나이므로 절약된 시간은 상당할 수 있습니다. 분기 논리는 많은 알고리즘의 핵심이므로 모든 컴퓨터 언어에 필요한 핵심 기능입니다. 따라서 조건부 연산자는 새로운 컴퓨터 언어가 개발되고 기존 언어가 개선됨에 따라 계속해서 관련성을 갖게 될 것입니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2015. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2017. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004.

61

프로그래밍 및 코딩의 원리

제약 프로그래밍

제약 프로그래밍 연구 분야 소프트웨어 공학; 시스템 수준 프로그래밍 개요 제약 조건 프로그래밍은 일반적으로 제약 조건을 호스팅하므로 "호스트" 언어라고 하는 다른 언어에 제약 조건을 삽입하는 프로세스를 설명합니다. 모든 프로그램이 제약조건 프로그래밍에 적합한 것은 아닙니다. 일부 문제는 논리 프로그래밍과 같은 다른 접근 방식으로 더 잘 해결됩니다. 제약조건 프로그래밍은 여러 제약조건이 동시에 충족되는 상태를 구상하고 해당 상태에 맞는 값을 검색할 수 있는 경우 선호되는 방법입니다. 주요 용어 제약: 프로그래밍 문제에 의해 생성될 솔루션을 집합적으로 식별하는 컴퓨터 프로그래밍의 값에 대한 제한입니다. 도메인: 짝수 또는 -23.7보다 작은 모든 값과 같이 변수가 취할 수 있는 값의 범위입니다. 함수형 프로그래밍: 대부분 정적인 기능적 관계를 평가하기 위해 수학을 적용하는 데 중점을 두는 프로그래밍에 대한 이론적 접근 방식입니다. 명령형 프로그래밍: 주로 컴퓨터에 발행된 명령으로 구성된 코드를 생성하여 특정 작업을 수행하도록 지시하는 프로그래밍.

제약 프로그래밍 모델 제약 프로그래밍은 프로그래밍되는 "세계"에 여러 제약이 있는 상황에서 사용되는 경향이 있으며 목표는 가능한 한 많은 제약을 한 번에 만족시키는 것입니다. 목표는 값이 해당 변수의 제약 조건 내에 속하도록 세계를 집합적으로 설명하는 각 변수의 값을 찾는 것입니다. 이 상태를 달성하기 위해 프로그래머는 두 가지 주요 접근 방식 중 하나를 사용합니다. 첫 번째 접근 방식은 섭동 모델입니다. 이 모델에서는 일부 변수에 초기 값이 제공됩니다. 그런 다음 다양한 시점에 변수가 어떤 방식으로든 변경("교란")됩니다. 그런 다음 각 변경 사항은 62개의 시스템을 통해 이동합니다.

연못 표면의 잔물결과 같은 상호 연관된 변수: 다른 값은 제약 조건을 따르고 값 간의 관계와 일치하는 방식으로 변경됩니다. 섭동 모델은 스프레드시트와 매우 유사합니다. 한 셀의 값을 변경하면 원래 셀에 저장된 값을 참조하는 수식이 포함된 다른 셀도 변경됩니다. 셀에 대한 단일 변경 사항이 다른 많은 셀에 전파되어 해당 값도 변경될 수 있습니다. 대조되는 접근 방식은 개선 모델입니다. 섭동 모델이 변수에 특정 값을 할당하는 반면, 정제 모델에서는 각 변수가 해당 도메인 내의 모든 값을 가정할 수 있습니다. 그러면 시간이 지남에 따라 한 변수의 일부 값은 필연적으로 다른 변수가 가정하는 값에 의해 배제됩니다. 시간이 지남에 따라 각 변수의 가능한 값은 점점 더 적은 수의 옵션으로 세분화됩니다. 정제 모델은 변수를 하나의 가능한 값으로 제한하지 않기 때문에 때로는 더 유연한 것으로 간주됩니다. 일부 변수에는 때때로 여러 가지 솔루션이 있습니다.

프로그래밍에 대한 다른 접근 방식 제약 프로그래밍은 코드 작성에 대한 보다 전통적인 접근 방식에서 크게 벗어났습니다. 많은 프로그래머는 실행될 컴퓨터에 명령을 내리는 명령형 프로그래밍이나 프로그램이 특정 값을 받은 다음 해당 값을 사용하여 다양한 수학적 기능을 수행하는 함수형 프로그래밍에 더 익숙합니다. 반면에 제약 조건 프로그래밍은 예측 가능성이 낮고 유연성이 뛰어납니다. 제약 조건 프로그래밍에 특히 적합한 문제의 전형적인 예는 지도 색칠 문제입니다. 이 문제에서는 사용자에게 여러 주로 구성된 국가 지도가 제공되며, 각 주는 다른 주와 하나 이상의 국경을 공유합니다. 사용자에게는 색상 팔레트도 제공됩니다. 사용자는 인접한 상태(예: 테두리를 공유하는 상태)가 동일한 색상이 되지 않도록 각 상태에 색상을 할당하는 방법을 찾아야 합니다. 지도 제작자들은 지도를 더 쉽게 읽을 수 있도록 실제 생활에서 이를 수행하려고 노력하는 경우가 많습니다. 제약조건 프로그래밍 경험이 있는 사람들은 이 문제의 일부 요소를 즉시 인식할 수 있습니다. 가장 분명한 것은 제약입니다. 이는 인접한 상태가 서로 다를 수 없다는 제한입니다.

프로그래밍 및 코딩의 원리

제약 프로그래밍

문제 정의

새로운 제약(결정)

의사결정(및 철회)

초기 제약조건 정의 현재 제약조건 세트

현재 제약 조건에 따른 최적의 솔루션

모순을 추론하다

제약 전파

제약조건 프로그래밍에서 프로그램 설계는 개발 전에 결정된 특정 제약조건에 따라 결정됩니다. 문제가 식별된 후 초기 제약 조건이 정의되고 현재 프로그램 제약 조건으로 압축됩니다. 솔루션이 개발되고 테스트됨에 따라 중복을 제거하기 위해 제약 조건을 수정하거나 철회해야 하는지, 아니면 새로운 제약 조건을 개발해야 하는지에 대한 결정이 내려집니다. 프로세스는 모든 제약을 충족하고 초기 문제를 해결하는 솔루션이 개발될 때까지 현재의 제약과 솔루션을 순환합니다. Philippe Baptiste의 "실제 일정 문제 해결을 위한 운영 연구와 제약 프로그래밍 결합"을 각색했습니다.

같은 색. 또 다른 요소는 상태에 할당할 수 있는 색상 목록인 도메인입니다. 도메인에 포함된 색상이 적을수록 문제는 더욱 어려워집니다. 이 지도 색칠 문제는 단순해 보일 수 있지만 제약 조건 프로그래밍 개념에 대한 훌륭한 소개입니다. 학생 프로그래머가 코드로 변환하려고 시도하는 데 유용한 상황을 제공합니다.

타당성 대 최적화 제약 조건 프로그래밍은 작동하는 솔루션만 찾는 문제 해결 및 코딩에 대한 접근 방식입니다. 문제에 대한 최적의 솔루션, 즉 "최적화"라고 알려진 프로세스를 찾는 것과는 관련이 없습니다. 대신 기존 제약 조건을 모두 충족하는 변수 값을 찾습니다. 이는 제약조건 프로그래밍의 한계처럼 보일 수 있습니다. 그러나 유연성은 예상보다 빠르게 문제를 해결한다는 의미일 수 있습니다.

제약 프로그래밍이 적합한 문제의 또 다른 예는 작업 일정을 만드는 문제입니다. 부서나 팀에는 각각 고유한 제약 조건이 있는 여러 변수(직원)가 포함되어 있습니다. Mary는 금요일을 제외하고 언제든지 일할 수 있고 Thomas는 월요일부터 목요일까지 아침에 일할 수 있지만 금요일에는 저녁에만 일할 수 있습니다. 목표는 단순히 모든 제약 조건에 맞는 일정을 찾는 것입니다. 최적의 일정인지 여부는 중요하지 않으며, 실제로 '최적의' 일정은 없을 가능성이 높습니다. —Scott Zimmer, JD 참고문헌 Baptiste, Philippe, Claude Le Pape, Wim Nuijten. 제약 기반 스케줄링: 스케줄링 문제에 제약 프로그래밍 적용. 뉴욕: 스프링어, 2013. 인쇄. 63

프로그래밍 및 코딩의 원리

제어 시스템

Ceberio, Martine, Vladik Kreinovich. 제약 프로그래밍 및 의사 결정. 뉴욕: 스프링거, 2014. 인쇄. 헨츠, 마틴. 동시 제약 프로그래밍을 위한 객체. 뉴욕: 스프링거, 1998. 인쇄. 호프스테트, 페트라. 다중 패러다임 제약 프로그래밍 언어. 뉴욕: 스프링어, 2013. 인쇄.

펠로, 마리, 나렌드라 주스앙. 제약 프로그래밍의 추상 도메인. 런던: ISTE, 2015. 인쇄. 솔논, 크리스틴. 개미 식민지 최적화 및 제약 프로그래밍. 호보켄: Wiley, 2010. 인쇄.

제어 시스템 연구 분야 임베디드 시스템; 시스템 분석 개요 제어 시스템은 여러 다른 시스템이나 장치를 제어하기 위해 존재하는 장치입니다. 예를 들어, 공장의 제어 시스템은 공장의 상호 연결된 모든 기계의 작동을 조정합니다. 제어 시스템이 사용되는 이유는 이러한 기능의 조정이 지속적이고 거의 즉각적이어야 하기 때문에 인간이 관리하기 어렵고 지루할 수 있기 때문입니다. 주요 용어 액츄에이터: 특정 방식으로 다른 물체를 움직이거나 제어하도록 설계된 모터입니다. 자동 순차 제어 시스템: 특정 순서로 일련의 액추에이터를 트리거하여 다단계 작업을 수행하는 메커니즘입니다. 자율 에이전트: 해당 엔터티에 의해 직접적으로 제어되지 않고 다른 엔터티를 대신하여 작동하는 시스템입니다. 오류 감지: 작동 중에 오류가 발생하는 시기를 식별하기 위한 시스템 모니터링입니다. 시스템 민첩성: 시스템이 완전히 실패하지 않고 환경이나 입력의 변화에 ​​대응하는 능력입니다. 시스템 식별: 작동 모델을 개발하기 위해 시스템의 입력 및 출력을 연구합니다.

제어 시스템의 유형 다양한 상황에서 다양한 유형의 제어 시스템이 사용됩니다. 수행되는 작업의 성격에 따라 일반적으로 시스템 설계가 결정됩니다. 64

가장 기본적인 수준에서 제어 시스템은 개방 루프 또는 폐쇄 루프 시스템으로 분류됩니다. 개방 루프 시스템에서 출력은 시스템에 공급되는 입력에만 기반합니다. 폐쇄 루프 시스템에서 생성된 출력은 필요에 따라 시스템을 조정하기 위한 피드백으로 사용됩니다. 폐쇄 루프 시스템은 오류로 인해 발생하는 편차를 최소화하도록 설계되었으므로 오류 감지를 더욱 어렵게 만들 수 있습니다. 제어 시스템 설계의 첫 번째 단계 중 하나는 시스템 식별입니다. 제어할 시스템을 모델링하는 과정입니다. 여기에는 시스템의 입력과 출력을 연구하고 원하는 결과를 생성하기 위해 이를 어떻게 조작해야 하는지 결정하는 작업이 포함됩니다. 일부 제어 시스템은 작동 중에 어느 정도의 인간 상호 작용이나 안내가 필요합니다. 그러나 제어 시스템 설계자는 일반적으로 자율 에이전트로 작동할 수 있는 시스템을 선호합니다. 제어 시스템의 목적은 프로세스에 사람의 개입을 최대한 줄이는 것입니다. 이는 부분적으로는 직원이 더 중요한 다른 작업에 집중할 수 있도록 하기 위함이고 부분적으로는 인적 오류로 인해 문제가 발생할 가능성이 더 높기 때문입니다. 자율 에이전트의 단점은 더 큰 시스템 민첩성이 필요하다는 것입니다. 따라서 문제가 발생하더라도 제어 시스템은 치명적인 오류가 발생하거나 기능이 완전히 중단되는 대신 계속해서 역할을 수행하거나 "정상적으로 실패"할 수 있습니다. 이는 걸린 컨베이어 벨트가 자동으로 수정되는 것과 동일한 벨트가 전체 조립 라인을 폐쇄하는 것 사이의 차이를 의미할 수 있습니다.

제어 시스템 성능 제어 시스템은 다른 프로세스를 모니터링하는 단순한 컴퓨터 그 이상입니다. 종종 그들은 또한 통제합니다

프로그래밍 및 코딩의 원리

제어 시스템

피드백 방해 출력

체계

제어 장치

피드포워드/예측/계획 교란 시스템

산출

컨트롤러 제어 시스템은 원하는 결과에 도달하기 위해 프로세스 경로를 변경하는 데 사용됩니다. 컨트롤러는 경로를 따라 어떤 유형의 정보를 감지하고 시스템에 변화를 일으킵니다. 시스템 입력 이전에 시스템을 변경하는 것을 "피드포워드 제어"라고 합니다. 출력에 따라 시스템을 변경하는 것을 "피드백 제어"라고 합니다. (http://www.csci.csusb.edu/dick/cs372/a1.html에서 수정됨)

시스템 구성 요소의 물리적 움직임. 제어 시스템은 조립 라인 로봇이 자동차 문을 회전시켜 다른 기계가 손잡이를 부착할 수 있도록 하거나 장치가 판지를 상자에 접어 사탕을 채우도록 할 수 있습니다. 이러한 작업은 제어 시스템이 필요한 물리적 움직임을 실행하기 위해 조작하는 모터인 액추에이터를 통해 수행됩니다. 때로는 장치에서 단 한 번의 움직임만 필요할 수도 있습니다. 어떤 경우에는 장치가 정확한 시간에 맞춰 여러 가지 다른 동작을 수행해야 할 수도 있습니다. 이 경우 자동 순차 제어 시스템을 사용하여 기계에 무엇을 언제 수행할지 지시합니다. 매우 작고 저렴한 마이크로프로세서와 센서의 개발로 이를 제어 시스템에 통합하는 것이 가능해졌습니다. 폐쇄 루프 접근 방식과 마찬가지로 이 작은 컴퓨터는 제어 시스템이 성능을 모니터링하고 잠재적인 문제에 대한 자세한 정보를 제공하는 데 도움이 됩니다. 예를 들어, 제어 시스템이 새로운 것을 사용하고 있다면

마찰로 인해 열이 증가하고 시스템 작동 효율이 떨어지는 원인이 되는 원자재 유형이 있으면 기계 내부의 마이크로센서가 이를 감지하여 시스템 감독 담당자에게 경고할 수 있습니다. 이러한 정보는 감독자가 문제가 심각해지기 전에 문제를 해결할 수 있도록 함으로써 비용이 많이 드는 장비 고장과 생산 지연을 방지하는 데 도움이 될 수 있습니다.

선형 제어 시스템 선형 제어 시스템은 일종의 폐쇄 루프 시스템입니다. 출력으로부터 선형적인 부정적인 피드백을 받고 그에 따라 작동 매개변수를 조정합니다. 이를 통해 시스템은 관련 변수를 허용 가능한 한도 내에서 유지할 수 있습니다. 위의 예와 같이 선형 제어 시스템의 센서가 과도한 열을 감지하면 이로 인해 시스템이 추가 냉각을 시작할 수 있습니다. 이에 대한 예는 집중적인 응용 프로그램으로 인해 시스템에서 열이 발생하기 시작한 후 컴퓨터의 팬 속도가 빨라지는 경우입니다. 65

프로그래밍 및 코딩의 원리

카우보이 코딩

비하인드 스토리 제어 시스템은 산업화된 세계에서 일상 생활의 중요한 부분입니다. 사람들이 매일 사용하는 대부분의 제품은 수십 가지의 서로 다른 제어 시스템을 사용하여 생산되거나 포장됩니다. 인간은 자신의 작업을 지원하기 위해 기술에 크게 의존하게 되었고 어떤 경우에는 그 작업을 완전히 대신하게 되었습니다. 제어 시스템은 이를 가능하게 하는 메커니즘입니다. —Scott Zimmer, JD 참고문헌 Ao, Sio-Iong 및 Len Gelman, eds. 전기 공학 및 지능형 시스템. 뉴욕: 스프링어, 2013. 인쇄.

첸, Yufeng, Zhiwu Li. 자동화된 제조 시스템에 대한 최적의 감독 제어. 보카 레이톤: CRC, 2013. 인쇄. Janert, Philipp K. 컴퓨터 시스템을 위한 피드백 제어. 세바스토폴: 오라일리, 2014. 인쇄. 리(Li), 한시옹(Han-Xiong), 루신장(XinJiang Lu). 고급 제조를 위한 시스템 설계 및 제어 통합. 호보켄: 와일리, 2015. 인쇄. 송동핑. 확률론적 공급망 시스템의 최적 제어 및 최적화. 런던: 스프링어, 2013. 인쇄. Van Schuppen, Jan H. 및 Tiziano Villa, 편집. 분산 시스템의 조정 제어. 참: Springer, 2015. 인쇄.

카우보이 코딩 연구 분야 소프트웨어 개발; 프로그래밍 방법론; 코딩 기술 개요 카우보이 코딩은 프로그래머를 공식적인 소프트웨어 개발 방법론의 제약으로부터 해방시키는 소프트웨어 개발 스타일입니다. 카우보이 코딩을 지지하는 사람들은 그것이 창의성, 실험성, "틀에서 벗어난" 사고를 촉진한다고 주장하는 반면, 비평가들은 코딩이 비효율적이며 낮은 품질의 소프트웨어 개발로 이어진다고 주장합니다. 주요 용어 민첩한 개발: 전통적인 소프트웨어 개발 방법론을 개선하고 소프트웨어 수명 주기 동안 변화에 적응하는 데 초점을 맞춘 소프트웨어 개발 접근 방식입니다. 요구 사항: 제공해야 하는 서비스나 작동해야 하는 제약과 같은 소프트웨어 시스템이나 기타 제품의 필수 특성입니다. 소프트웨어 아키텍처: 시스템을 구성하는 구성 요소, 66개 요소 간의 관계를 포함한 소프트웨어 시스템의 전체 구조

해당 구성 요소와 해당 관계의 속성입니다. 폭포형 개발: 일련의 순서화된 단계를 기반으로 하는 전통적인 선형 소프트웨어 개발 방법론입니다.

카우보이 코딩이란 무엇입니까? 카우보이 코딩은 개별 프로그래머가 개발 프로세스의 모든 측면을 완벽하게 제어할 수 있도록 하는 소프트웨어 개발 스타일입니다. 워터폴 개발과 같은 전통적인 소프트웨어 개발 방법론과 달리 카우보이 코딩은 정의된 접근 방식을 따르지 않습니다. 오히려 프로그래머가 소프트웨어를 개발할 때 어떤 접근 방식이든 사용할 수 있습니다. 카우보이 코더는 공식적인 소프트웨어 방법론의 요소를 임의의 조합이나 순서로 사용할 수도 있고 공식적인 방법론을 완전히 포기할 수도 있습니다. 카우보이 코딩은 일반적으로 혼자 일하는 학생, 취미생활자, 개발자가 사용합니다. 공식적인 방법론을 사용하는 프로젝트에서 대규모 개발 팀 내의 개인이 실행할 수 있지만 카우보이 코딩 방식은 일반적으로 그러한 환경에서 부적절하고 파괴적인 것으로 간주됩니다. 카우보이 코딩은 종종 애자일 개발과 혼동됩니다. 카우보이 코딩과 마찬가지로 민첩한 소프트웨어 개발은 ​​프로그래머를 전통적인 개발 방법론의 제약으로부터 해방시키는 것을 목표로 합니다.

프로그래밍 및 코딩의 원리

먼저 계획을 세우지 않고 코드를 작성하는 프로그래밍 방식을 카우보이 코딩이라고 합니다. 또는 코드를 작성하기 전에 해당 소프트웨어에 대한 개발 전략과 사용자 기대치를 생각해 볼 수도 있습니다.

그러나 카우보이 코딩과 달리 애자일 개발에서는 소프트웨어 아키텍처를 설계하고 구현할 때 공식적인 방법론이 필요하지 않습니다. 대신 기존 방법론의 사용을 개선하고 최적화하는 데 중점을 둡니다. 예를 들어, 애자일 개발은 많은 개발 방법론에 포함된 포괄적인 소프트웨어 테스트를 포기하는 대신 개발 프로세스에 가치를 더하는 유용한 테스트에 중점을 두도록 장려합니다. 즉, 단순히 주어진 방법론의 일부이기 때문에 테스트가 수행되는 것이 아니라 특정 목적을 달성하기 위해 테스트를 수행해야 합니다. Agile은 또한 적절한 문서화 및 요구 사항 식별에 중점을 두는 것을 포함하여 많은 전통적인 소프트웨어 개발 요소를 유지합니다. 이러한 요소는 카우보이 코더에 의해 자주 버려집니다. 또한 민첩한 개발은 일반적으로 카우보이 코딩의 개별 초점과 달리 프로그래머가 잘 통합된 개발 팀에서 작업하도록 권장합니다.

카우보이 코딩은 논란의 여지가 있습니다. 카우보이 코딩은 프로그래머가 주어진 상황에서 자신에게 가장 적합한 프로세스, 모델 또는 기술을 사용하도록 권장합니다. 이 접근 방식을 지지하는 사람들은 이것이 창의성, 실험, 고정관념에서 벗어난 사고를 촉진한다고 믿습니다. 그들은 프로세스보다는 결과에 중점을 두어 효율적인 방식으로 혁신적인 솔루션을 생산하는 경우가 많다는 점에 주목합니다. 그들은 카우보이 코딩이 다음을 금지하지 않는다고 강조합니다.

카우보이 코딩

프로그래머는 확립된 방법론을 사용하지 않습니다. 그것은 단지 그들이 자신의 경험과 판단을 사용하여 어떤 방법론을 사용할지 선택할 수 있게 해줄 뿐입니다. 카우보이 코딩을 비판하는 사람들은 이 접근 방식이 전문 소프트웨어 개발 환경에서는 제대로 작동하지 않는다고 생각합니다. 그들은 잘못 설계되고 구현된 솔루션으로 이어지는 경향이 있다고 주장합니다. 공식적인 계획 및 설계 프로세스가 부족하면 프로젝트가 지연되고, 일정이 잘못되고, 노력이 낭비되고, 솔루션이 불완전하거나 설계 목적을 충족하지 못하게 될 수 있습니다. 비평가들은 또한 팀워크가 가장 작은 개발 프로젝트를 제외한 모든 프로젝트의 핵심 구성 요소라고 주장합니다. 개발자가 높은 수준의 독립성을 갖고 작업하는 경우 전문 개발자가 자주 직면하는 대규모의 복잡한 프로젝트 유형에 대해 다른 이해관계자와의 노력을 효과적으로 조정하는 것이 어려울 수 있습니다.

카우보이가 되는 것이 언제 좋은가? 카우보이 코딩은 일반적으로 전문 소프트웨어 개발에 사용되지 않지만, 독립적으로 작업하는 개별 소프트웨어 개발자가 사용하는 경우가 많습니다. 예를 들어, 이 접근 방식은 자신의 게임을 디자인하고 코딩하는 독립 게임 개발자가 자주 사용합니다. 이러한 시나리오는 카우보이 코딩의 약점을 최소화하면서 장점을 강조합니다. 개발팀이 부족하면 대규모 프로젝트에 필요한 계획 및 조정의 필요성이 줄어듭니다. 외부 고객 및 기타 이해관계자가 부족하기 때문에 합의된 벤치마크 산출물 및 날짜, 세부 프로젝트 사양 문서, 예정된 릴리스 및 적시 업데이트의 필요성이 줄어듭니다. 소규모 카우보이 코딩 프로젝트에 사용되는 주요 자원은 개발자의 시간입니다. 따라서 공식적인 개발 방법론에서 해결되는 비용 초과 및 기타 재정 및 리소스 관련 위험은 개발자에게만 영향을 미치므로 그다지 중요하지 않습니다. 숙련된 개발자는 표준 방법론 및 기타 전문 관행 요소를 사용하여 카우보이 코딩의 부정적인 영향을 완화할 수 있습니다. 이러한 이유로 카우보이 코딩은 이러한 기술에 익숙한 숙련된 개발자가 사용하는 것이 가장 좋습니다. 그들을 속박할 것인가, 아니면 돌아다니게 할 것인가? 카우보이 코딩은 소프트웨어 개발자들 사이에서 여전히 논란의 여지가 있습니다. 반대자들은 그것이 67을 약화시킨다고 믿습니다.

프로그래밍 및 코딩의 원리

CPU 설계

소프트웨어 개발 프로젝트의 성공은 전문 소프트웨어 개발 세계에서는 있을 수 없는 일입니다. 그들은 카우보이 코딩에 포함된 창의성과 유연성의 원칙이 정의된 소프트웨어 방법론의 틀 내에서 장려될 수 있다고 주장합니다. 그들은 정의된 소프트웨어 방법론이 프로그래머가 식별한 실제 요구 사항을 해결하기 위해 개발되었으며 적시에 효율적인 방식으로 효과적인 소프트웨어 솔루션을 생성하는 것으로 입증되었다고 주장합니다. 이 견해에 따르면, 모범 사례를 배우려는 노력을 전혀 하지 않는 카우보이 코더에 의해 이러한 효율성이 위협받고 있습니다. 카우보이 코더는 프로세스나 창의성에 대한 어떠한 제약도 없이 독립적으로 작업할 때 최상의 솔루션을 생성한다고 주장합니다. 그들은 “카우보이 코딩”이 엉성함이나 포괄적인 전망의 부족을 암시하는 경멸적인 용어로 사용되는 것을 거부합니다. 그들의 관점에서는 사용된 방법보다 개별 프로그래머의 기술이 더 중요합니다. 정의된 소프트웨어 개발 방법론은 전문 프로그래밍의 필수 요소로 남아 있지만, 많은 프로그래머1는 혼자 작업을 시작하고 독립적인 성격을 가지고 있습니다. 이 때문에 카우보이 코더와 전통주의자 사이의 갈등은

새로운 방법론과 기술이 개발됨에 따라 지속될 가능성이 높습니다. —Maura Valentino, MSLIS 참고문헌 Bell, Michael. 증분 소프트웨어 아키텍처: 실패한 IT 구현을 저장하는 방법. John Wiley & Sons, 2016. 프리드먼, 다니엘 P., 미첼 완드. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Jayaswal, Bijay K. 및 Peter C. Patton. 신뢰할 수 있는 소프트웨어를 위한 설계: 강력한 소프트웨어 개발을 위한 도구, 기술 및 방법론. Prentice Hall, 2007. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. Wysocki, Robert K. 효과적인 프로젝트 관리: 전통적, 민첩성, 극한. 7판, John Wiley & Sons, 2014.

CPU 설계 연구 분야 컴퓨터 공학; 정보 기술 개요 CPU 설계는 컴퓨터의 중앙 처리 장치(CPU) 설계에 초점을 맞춘 엔지니어링 분야입니다. CPU는 컴퓨터의 "두뇌" 역할을 하며 컴퓨터가 수행하는 작업을 제어합니다. 기본 작업은 소프트웨어 작성에 사용되는 프로그래밍 코드에 포함된 명령을 실행하는 것입니다. 서로 다른 CPU 설계는 서로 효율성이 높거나 낮을 수 있습니다. 일부 디자인은 특정 유형의 문제를 해결하는 데 더 좋습니다. 주요 용어 제어 장치 설계: 프로그램이 보낸 명령을 컴퓨터에 수행하는 방법을 컴퓨터에 알려주는 CPU 부분을 설명합니다. 68

데이터 경로 설계: 데이터가 CPU를 통해 흐르는 방식과 지침이 디코딩되고 실행되는 지점을 설명합니다. 논리 구현: 정보를 표현하기 위해 회로 조합의 개방 또는 폐쇄 상태를 사용하도록 CPU를 설계하는 방식입니다. 마이크로컨트롤러: 입력 및 출력 채널, 메모리, 프로세서 등 컴퓨터의 모든 필수 부품이 단일 마이크로칩에 통합되어 있는 작은 컴퓨터입니다. 주변 장치: 스캐너, 외부 저장 장치 등과 같이 컴퓨터에 연결되지만 컴퓨터 자체의 일부는 아닌 장치입니다. 프로토콜 프로세서: CPU에 대한 보조 기능을 수행하는 프로세서로, 네트워크에서 메시지를 인코딩하는 데 사용되는 통신 프로토콜 관리 작업의 일부를 CPU에서 덜어줍니다.

프로그래밍 및 코딩의 원리

CPU 설계

CPU 설계 목표 CPU 설계는 복잡한 작업입니다. CPU 설계의 주요 목표는 가능한 가장 빠르고 효율적인 방법으로 명령을 실행할 수 있는 아키텍처를 생성하는 것입니다. 속도와 효율성 모두 관련 요소입니다. 실행 속도가 빠른 명령이 적절한 경우도 있지만 작업을 수행하기 위해 간단한 명령을 수백 번 실행해야 하는 것이 타당하지 않은 상황도 있습니다. 종종 작업은 CPU가 수행할 작업과 CPU가 사용될 위치를 고려하여 설계자에 의해 시작됩니다. 예를 들어 비행기 내부의 마이크로컨트롤러는 주방 기기 내부의 마이크로컨트롤러와는 상당히 다른 작업을 수행합니다. CPU의 의도

기능은 디자이너에게 CPU가 가장 자주 실행할 프로그램 유형을 알려줍니다. 이는 결국 CPU가 포함된 마이크로칩에 사용할 명령어 세트 아키텍처 유형을 결정하는 데 도움이 됩니다. 어떤 유형의 프로그램이 가장 자주 사용되는지 알면 CPU 설계자가 가장 효율적인 논리 구현을 개발할 수도 있습니다. 이 작업이 완료되면 제어 장치 설계를 정의할 수 있습니다. CPU의 명령 처리가 물리적 형태로 제공되므로 일반적으로 데이터 경로 설계를 정의하는 것이 다음 단계입니다. 종종 CPU는 처리 부하를 처리하기 위한 추가 지원을 포함하여 설계되므로 CPU 자체에 과부하가 걸리지 않습니다. 예를 들어 프로토콜 프로세서는 통신을 지원할 수 있습니다.

메모리에서 가져오기

실행을 위한 디코딩

지침 실행

일반적인 상태 다이어그램은 간단한 처리 루프를 보여줍니다. 즉, 메모리에서 명령어를 가져오고, 명령어를 디코딩하여 적절한 실행 주기를 결정하고, 명령어를 실행한 다음, 메모리에서 다음 명령어를 가져와서 주기를 계속합니다. 상태 다이어그램은 데이터 경로와 논리 제어를 설계할 수 있는 초기 설계입니다.

69

CPU 설계

컴퓨터와 주변 장치 간 또는 인터넷을 통한 데이터 전송과 관련된 프로토콜 변환입니다. 인터넷 통신 프로토콜은 매우 복잡합니다. 여기에는 7개의 서로 다른 중첩된 프로토콜 계층이 포함되며 각 계층은 다음 계층을 처리하기 전에 협상되어야 합니다. 프로토콜 프로세서는 CPU에서 이 작업 부하를 덜어줍니다.

명령어 세트 CPU 설계는 사용되는 명령어 세트 유형에 크게 영향을 받습니다. 일반적으로 지침에는 두 가지 접근 방식이 있습니다. 첫 번째는 무작위 논리입니다. 때때로 이를 "하드와이어드 명령어"라고 합니다. 무작위 논리는 디코더 및 카운터와 같은 논리 장치를 사용하여 데이터를 전송하고 계산을 수행합니다. 랜덤 로직을 사용하면 더 빠른 칩 설계가 가능해집니다. 그러나 로직 자체는 명령을 저장하는 데 사용될 수 있는 공간을 차지합니다. 따라서 매우 큰 명령어 세트에 임의 논리를 사용하는 것은 실용적이지 않습니다. 명령어 세트에 대한 두 번째 접근 방식은 마이크로코드입니다. 마이크로코드는 작업 테이블을 참조하고 각 CPU 명령어를 실행하기 위해 테이블에 의해 인덱싱된 마이크로 명령어 세트를 사용하기 때문에 "에뮬레이션"이라고도 합니다. 마이크로코드는 때때로 무작위 논리보다 실행 속도가 느릴 수 있지만 이러한 약점을 상쇄하는 장점도 있습니다. 마이크로코드는 복잡한 명령어를 마이크로 명령어 세트로 분해합니다. 이러한 마이크로 명령어는 여러 가지 복잡한 명령어에 사용됩니다. 따라서 마이크로코드를 실행하는 CPU는 마이크로명령어를 재사용할 수 있습니다. 이러한 재사용을 통해 마이크로칩의 공간이 절약되고 더 복잡한 명령을 추가할 수 있습니다. 마이크로코드와 무작위 논리를 비교할 때 고려해야 할 가장 영향력 있는 요소는 메모리 속도입니다. 무작위 논리는 일반적으로 CPU 속도가 메모리 속도를 능가할 때 더 빠른 CPU를 생성합니다. 메모리 속도가 빠르면 마이크로코드가 랜덤 로직보다 빠릅니다. RISC(Reduced Instruction Set Computer) CPU 설계 초기에는 CPU 성능을 향상시키는 가장 좋은 방법은 다음과 같이 생각되었습니다.

70

프로그래밍 및 코딩의 원리

프로그래머에게 더 많은 옵션을 제공하기 위해 명령어 세트를 지속적으로 확장합니다. 그러나 결국 더 복잡한 명령을 추가한다고 해서 항상 성능이 향상되는 것은 아니라는 연구 결과가 나오기 시작했습니다. 이에 대응하여 CPU 제조업체는 RISC(Reduced Instruction Set Computer) 칩을 생산했습니다. RISC 칩은 더 많은 수의 명령어가 필요함에도 불구하고 덜 복잡한 명령어를 사용할 수 있습니다.

무어의 법칙 무어의 법칙은 컴퓨터 제조업체인 인텔의 공동 창업자인 고든 무어의 이름을 따서 명명되었습니다. 1975년에 무어는 집적 회로나 마이크로칩의 컴퓨팅 성능이 평균적으로 2년마다 두 배로 증가한다는 사실을 관찰했습니다. 이러한 개선 속도는 기술 역량의 급속한 발전과 상대적으로 짧은 소비자 가전 제품의 수명을 책임지고 있으며, 소비자 전자 제품은 구매 후 곧 구식이 되는 경향이 있습니다. —Scott Zimmer, JD 참고문헌 Englander, Irv. 컴퓨터 하드웨어, 시스템 소프트웨어 및 네트워킹의 아키텍처: 정보 기술 접근 ​​방식. 호보켄: 와일리, 2014. 인쇄. 하이드, 랜달. 훌륭한 코드 작성: 기계 이해. Vol. 1. 샌프란시스코: 전분 없음, 2005. 인쇄. Jeannot, Emmanuel, J. Žilinskas. 복잡한 환경에서의 고성능 컴퓨팅. 호보켄: 와일리, 2014. 인쇄. 리피안스키, 에드. 과학자 및 엔지니어를 위한 전기, 전자 및 디지털 하드웨어 필수 요소입니다. 호보켄: 와일리, 2013. 인쇄. 라자세카란, 상구테바르. 멀티코어 컴퓨팅: 알고리즘, 아키텍처 및 애플리케이션. 보카 레이톤: CRC, 2013. 인쇄. 스톡스, 존. 기계 내부: 마이크로프로세서 및 컴퓨터 아키텍처에 대한 소개 그림. 샌프란시스코: 전분 없음, 2015. 인쇄. 늑대, 마릴린. 고성능 임베디드 컴퓨팅: 아키텍처, 애플리케이션 및 방법론. 암스테르담: Elsevier, 2014. 인쇄.

프로그래밍 및 코딩의 원리

크라우드펀딩

크라우드펀딩 크라우드펀딩(CROWDFUNDING) 크라우드펀딩은 개인이나 단체가 대규모의 개인으로부터 기부를 받아 프로젝트, 대의명분, 사업을 위한 자금을 모으는 방법으로, 종종 이해관계 이상으로 서로 관계가 없는 사람들로부터 소액 기부를 많이 받는 방식입니다. 프로젝트. 크라우드펀딩은 주로 음악가, 예술가 및 기타 창의적인 사람들이 자신의 프로젝트에 대한 지원을 얻기 위한 방법으로 시작되었으며 잠재적 자금 제공자에게 접근하기 위해 인터넷에 크게 의존합니다. 크라우드펀딩은 자선 활동을 위한 자금을 모으고 새로운 사업을 위한 투자 자본을 모으는 데에도 사용됩니다.

개요 크라우드펀딩에는 기부 기반 크라우드펀딩과 투자 크라우드펀딩의 두 가지 주요 모델이 있습니다. 기부형 크라우드펀딩에서는

기부자는 영화나 책 제작과 같은 프로젝트를 위해 돈을 기부하고, 그 대가로 작가의 개인 메모, 프로젝트를 광고하는 커피 머그나 티셔츠, 제작된 제품의 사본과 같은 선물을 받습니다( 예를 들어 책이나 영화의 사본). 이 모델은 NPR(National Public Radio) 및 PBS TV에서 사용되는 모금 방법과 유사합니다. 사람들은 자신이 사는 지역 방송국이나 자신이 즐기는 특정 프로그램에 자선 기부를 하고 그 대가로 브랜드 제품을 받기로 선택할 수 있습니다. 투자 크라우드펀딩에서는 기업이 투자자에게 부채나 지분을 판매하고, 해당 투자자는 회사의 이익이 있는 경우 이를 공유하게 됩니다. 2008년에 설립된 Indiegogo는 자선 활동을 포함하여 사업 투자 이외의 모든 목적으로 모금을 허용하며 AngelList는 특히 사업 투자자를 찾는 기술 스타트업 기업을 위한 것입니다.

크라우드 펀딩 전문가 Pim Betist의 사진

71

프로그래밍 및 코딩의 원리

크라우드소싱

2010년에 설립된 GoFundMe는 창의적, 비즈니스, 자선 등 모든 종류의 프로젝트를 허용할 뿐만 아니라 사람들이 의료비와 같은 개인적인 필요를 위해 모금할 수 있도록 허용합니다. 인터넷 시대에 급증하는 인기에도 불구하고 크라우드 펀딩은 새로운 개념이 아닙니다. 수세기 동안 예술가와 출판업자들은 창의적인 프로젝트에 자금을 지원하기 위해 구독을 모색해 왔으며, 미국의 주목할만한 예로는 1884년 자유의 여신상 받침대 비용을 지불하기 위한 대중 기부 요청과 1933년 수영장 건설을 위한 공공 기부가 있습니다. 소아마비로 장애를 입은 프랭클린 루즈벨트 대통령이 수치료를 받을 수 있도록 백악관에 마련됐다. 2010년대에는 크라우드 펀딩이 주로 인터넷을 통해 이루어졌으며, 종종 Kickstarter와 앞서 언급한 Indiegogo 및 AngelList와 같은 웹사이트를 통해 이루어졌습니다. 이러한 사이트는 400개가 넘습니다. 각 사이트에는 고유한 규칙 세트가 있습니다. 예를 들어, 2009년에 출시된 Kickstarter는 창의적인 프로젝트에 대한 캠페인만 주최하고 프로젝트 제작자가 목표(모금할 금액)와 마감일을 설정하도록 요구합니다. 목표가 마감일까지 달성되지 않으면 이를 약속한 기부자로부터 돈을 모을 수 없습니다. Indiegogo와 같은 다른 사이트에서는 캠페인 제작자가 부분적으로 자금을 조달한 캠페인의 기부금을 유지할 수 있습니다. 크라우드펀딩 분야는 빠르게 성장하고 변화하고 있습니다. 2013년 8월 Forbes.com에 기고한 Chance Barnett에 따르면, 2012년 크라우드 펀딩 업계는 100만 개 이상의 개별 캠페인을 통해 27억 달러를 모금했습니다. 2014년 5월 크라우드펀딩 센터(Crowdfunding Center)의 보고서에 따르면 전 세계적으로 매시간 60,000달러 이상이 크라우드펀딩을 통해 모금되고 있으며 매일 442개의 크라우드펀딩 캠페인이 시작되고 있는 것으로 추정됩니다. —Sarah E. Boslaugh, PhD, MPH

참고문헌 Barnett, Chance. “모금 활동을 위한 상위 10개 크라우드펀딩 사이트.” Forbes.com. Forbes.com LLC, 2013년 5월 8일. 웹. 2013년 8월 7일. 클리포드, 캐서린. “크라우드펀딩은 시간당 60,000달러 이상을 창출합니다.” 기업가. Entrepreneur Media, 2014년 5월 19일. 웹. 2015년 5월 22일. 커닝햄, 윌리엄 마이클. JOBS법: 중소기업 및 스타트업을 위한 크라우드펀딩. 뉴욕: 스프링거, 2012. 인쇄. 드레지, 스튜어트. “Kickstarter의 가장 큰 히트작: 크라우드펀딩이 이제 트렌드를 설정하는 이유.” 보호자. Guardian 뉴스 및 미디어, 2014년 4월 17일. 웹. 2015년 5월 22일. Dushnitsky, Gary. “크라우드펀딩이 기업가나 성장하는 기업을 위한 주요 자금원이 된다면 어떨까요?” 포브스. Forbes, 2015년 5월 20일. 웹. 2015년 5월 22일. Jacobs, Deborah L. “크라우드펀딩의 문제.” Forbes.com. Forbes.com LLC, 2013년 4월 17일. 웹. 2013년 8월 7일. Lawton, Kevin, Dan Marom. 크라우드펀딩 혁명: 소셜 미디어를 사용하여 벤처 캐피탈을 조달하는 방법 뉴욕: 맥그로. 2012. 인쇄. 스타인버그, 돈. Kickstart 핸드북: 실제 크라우드펀딩 성공 사례. 필라델피아: 퀴크, 2012. 인쇄. 스타인버그, 스캇. “크라우드펀딩과 일하는 음악가의 재탄생에 관한 아만다 팔머.” Rollingstone.com. Rolling Stone, 2013년 8월 29일. 웹. 2013년 8월 7일. Trigonis, John T. 영화 제작자를 위한 크라우드펀딩: 성공적인 영화 캠페인을 위한 길. 스튜디오 시티: 마이클 위즈 프로덕션, 2013. 인쇄. 영, 토마스 엘리엇. 크라우드펀딩에 대한 모든 가이드: 중소기업 자금 조달을 위해 소셜 미디어를 사용하는 방법을 알아보세요. 에이본: F+W 미디어, 2013. 인쇄.

크라우드소싱 크라우드소싱이라는 용어는 Wired 매거진의 2006년 6월호에 처음으로 등장했으며 2013년에는 인터넷에서 비즈니스를 수행하는 확고한 방식으로 자리 잡았습니다. 크라우드소싱은 아웃소싱의 특수한 변형으로 생각할 수 있습니다.

콘텐츠는 대규모의 익명 온라인 커뮤니티에서 요청됩니다. 개인은 소량의 데이터를 제공하여 정보 요청에 응답합니다. 크라우드소싱을 후원하는 기관에는 기업, 학술 기관, 정부,

프로그래밍 및 코딩의 원리

그리고 개인. 크라우드소싱 프로젝트에 기여하는 사람은 단지 자신의 지식을 공유하는 데 관심이 있는 유급 전문가 또는 자원봉사자일 수 있습니다.

개요 크라우드소싱의 매력은 상대적으로 저렴한 비용, 조직의 기존 직원이 해결하기에는 너무 복잡한 문제를 수행할 수 있는 능력, 그리고 서로 다른 지식과 경험을 보유한 여러 개인의 지식을 활용하면 더 나은 결과를 얻을 수 있다는 아이디어에 기반합니다. , 더 정확한 데이터. 크라우드소싱에 참여하는 개인은 일반적으로 인구통계학적으로 다양하지만, 많은 사람들이 프로젝트와 관련된 학문적 훈련을 받았거나 상당한 전문 경험을 갖고 있습니다. 비평가들은 크라우드소싱 프로젝트의 품질과 정확성을 비난하지만, 2010년대에는 이러한 관행이 다양한 산업과 노력에 걸쳐 일반화되었습니다. 특수한 형태의 크라우드소싱을 통해 여러 사용자의 노력으로 다양한 유형의 목표를 달성할 수 있습니다.

크라우드소싱

뚜렷한 목표. 군중 생성은 복잡한 과학적 문제를 해결하기 위해 자주 사용됩니다. 크라우드 펀딩에는 신생 기업이나 예술 활동을 위한 모금 목표를 달성하기 위해 수많은 기부자로부터 소액의 돈을 모으는 것이 포함됩니다. 군중 검색은 인터넷과 스마트폰 사용자의 대규모 네트워크를 활용하여 분실된 물품이나 개인의 위치를 ​​확인합니다. 군중 투표는 공동 판단을 활용하여 웹 기반 콘텐츠의 등급을 매기고, 분류하고, 분류합니다. 이는 가장 일반적인 유형의 크라우드소싱입니다(예: Reddit에서 사용됨). 크라우드소싱은 인터넷 시대의 창조물이지만, 상당한 수의 참가자가 참여하는 정보 수집 프로젝트는 수십 년 동안 존재해 왔습니다. 크라우드소싱은 옥스퍼드 영어 사전을 만드는 수단으로 사용되었고, 영국의 경도상 대회에서 배의 위치를 ​​결정하는 새로운 방법을 담당했으며, 예수 그리스도 교회 회원들의 계보 데이터를 수집하는 방법이 되었습니다. 후기 성도.

8단계로 구성된 크라우드소싱 프로세스.

73

프로그래밍 및 코딩의 원리

암호화

인터넷 영화 데이터베이스(Internet Movie Database)와 위키피디아(Wikipedia)는 크라우드소싱된 인터넷 리소스의 가장 성공적인 예 중 두 가지입니다. 또 다른 호평을 받은 크라우드소싱 프로젝트는 뉴욕 공립 도서관의 "What's on the Menu"였습니다. 이 프로젝트는 2011년에 시작되어 1840년대부터 2010년대까지 45,000개 이상의 역사적 레스토랑 메뉴를 필사하려고 했습니다. 2011년 캘리포니아 디지털 신문 컬렉션은 디지털화된 신문의 텍스트를 수정하기 위해 크라우드소싱을 활용했으며 그 중 일부는 1850년 캘리포니아 건국 이전의 것입니다. Katrina PeopleFinder 프로젝트는 2005년 허리케인 카트리나의 여파로 개발되었습니다. 자연재해 피해자를 추적하기 위한 노력의 일환으로 9만 개 이상의 항목이 입력되었습니다. 2000년에 설립된 Carnegie Mellon University의 CAPTCHA 시스템은 사용자가 로그온 시퀀스의 일부로 문자를 식별하고 이를 통해 OCR(광학 문자 인식) 소프트웨어가 인식할 수 없는 텍스트를 판별하는 데 사용되는 암시적 크라우드소싱의 한 유형입니다. 역사적 텍스트 문서의 디지털화. Wei Li, Michael N. Huhns, Wei-Tek Tsai 및 Wenjun Wu가 편집한 클라우드 기반 소프트웨어 크라우드소싱(2015)에서는 클라우드 컴퓨팅을 사용하여 컴퓨터 소프트웨어 개발을 크라우드소싱하는 방법에 대해 논의합니다. 소프트웨어 개발 프로세스의 모든 단계를 클라우드로 이동하면 최종 사용자와 소프트웨어 개발자 간의 전통적인 구분이 모호해지는 공동 창작 프로세스가 됩니다. 클라우드 기반 크라우드소싱을 통해 효율적이고 확장 가능한 소프트웨어 개발이 가능합니다. - 매사추세츠주 레온 제임스 바이넘(Leon James Bynum)

참고문헌 Brabham, Daren C. 크라우드소싱. 케임브리지: MIT Press, 2013. 인쇄. 도슨, 로스, 스티브 빙홀. 군중으로부터 결과 얻기: 크라우드소싱을 사용하여 비즈니스를 성장시키는 확실한 가이드. 샌프란시스코: 첨단 인간 기술, 2011. 인쇄. Estelles-Miguel, Sofia, Ignacio Gil-Pechuán, Fernando J. Garrigos-Simon. 크라우드소싱의 발전. Cham: Springer, 2015. eBook 컬렉션(EBSCOhost). 편물. 2015년 6월 19일. 하우, 제프. 크라우드소싱: 군중의 힘이 비즈니스의 미래를 주도하는 이유 뉴욕: 크라운, 2009. 인쇄. 파웰, 줄리엣. 3,300만 명의 참석자: 소셜 네트워킹을 통해 성공적인 비즈니스를 창출하고, 영향을 미치고, 운영하는 방법. 어퍼 새들 리버: FT, 2009. 인쇄. 슬론, 폴, 에디션. 개방형 혁신 및 크라우드소싱 가이드: 주요 전문가의 조언. 런던: Kogan, 2012. 인쇄. Suie, Daniel, Sara Elwood, Michael Goodchild, 편집. 크라우드소싱 지리 지식: 이론과 실습에서 자원 봉사 지리 정보(VGI). 뉴욕: 2013년 봄. 인쇄. 서로비에츠키, 제임스. 군중의 지혜: 다수가 소수보다 더 똑똑한 이유와 집단적 지혜가 비즈니스, 경제, 사회 및 국가를 형성하는 방법. 뉴욕: Doubleday, 2004. 인쇄. Tsai, Wei-Tek 등, eds. 크라우드소싱: 클라우드 기반 소프트웨어 개발. 하이델베르그: Springer, 2015. eBook 컬렉션(EBSCOhost). 편물. 2015년 6월 19일. 위노그라드, 몰리. 밀레니얼 모멘텀: 새로운 세대가 어떻게 미국을 재창조하고 있는가. 뉴브런즈윅: Rutgers UP, 2011. 인쇄.

암호화 연구 분야 컴퓨터 과학; 컴퓨터 공학; 알고리즘

현대 컴퓨터가 도입되면서 암호화는 다양한 유형의 디지털 데이터를 보호하는 중요한 도구가 되었습니다.

추상적인

주요 약관

암호화는 메시지 및 기타 데이터를 의도된 수신자만 액세스할 수 있는 형식으로 전송하기 위해 암호화하는 프로세스입니다. 처음에는 서면 메시지에 적용되었습니다. 와 더불어

해시 함수: 문자열을 반전이나 복제가 이상적으로 불가능한 다른, 일반적으로 더 작은 고정 길이의 문자열로 변환하는 알고리즘입니다.

74

프로그래밍 및 코딩의 원리

암호화

공개 키 암호화: 데이터를 암호화하고 해독하기 위해 공개 키와 개인 키 두 개를 사용하는 암호화 시스템입니다. 대체 암호: 한 문자를 다른 문자로 대체하여 메시지를 인코딩하는 암호입니다. 대칭 키 암호화: 동일한 개인 키를 사용하여 데이터를 암호화하고 해독하는 암호화 시스템입니다. 전치 암호: 메시지 내의 문자 순서를 변경하여 메시지를 인코딩하는 암호입니다.

암호화란 무엇입니까? "암호화"라는 단어는 그리스어 kryptos("숨겨진", "비밀")와 graphein("쓰기")에서 유래되었습니다. 초기 암호화는 다른 당사자가 가로채거나 읽지 않고 서면 메시지를 의도한 수신자에게 보낼 수 있도록 하는 데 중점을 두었습니다. 이는 다양한 암호화 기술을 통해 달성되었습니다. 암호화는 간단한 원칙을 기반으로 합니다. 메시지는 읽을 수 없는 방식으로 변환됩니다. 암호화된 메시지는 수신자에게 전송되며,

앨리스의 개인 키

앨리스의 메시지

무작위 세션 키 Bob의 공개 키

그것을 원래 형태로 다시 변환(해독)하여 읽는 사람. 암호화의 초기 형태는 암호를 기반으로 했습니다. 암호는 메시지를 구성하는 문자를 변경하여 메시지를 암호화합니다. 원본 메시지를 "일반 텍스트"라고 하고, 암호화된 메시지를 "암호문"이라고 합니다. 암호 규칙을 아는 사람은 누구나 암호문을 해독할 수 있지만 다른 사람은 읽을 수 없습니다. 초기 암호는 충분한 시간과 통계에 대한 실무 지식이 주어지면 상대적으로 해독하기 쉬웠습니다. 1920년대에는 "로터 머신"이라고 불리는 전자 기계 암호 기계가 더 큰 도전 과제를 안겨주는 복잡한 암호를 생성했습니다. 로터 기계의 가장 잘 알려진 예는 제2차 세계대전 당시 독일군이 사용한 에니그마(Enigma) 기계입니다. 얼마 지나지 않아 1950년대 현대 컴퓨터 시스템의 개발은 암호화의 세계를 크게 변화시켰습니다.

컴퓨터 시대의 암호학 디지털 컴퓨터의 등장으로 암호학의 초점은 단순한 문자 언어에서 암호학으로 옮겨졌습니다.

공개 키 암호화

전자 서명

해시 함수

디지털 봉투

비밀 키 암호화

공개 키 암호화

암호화된 메시지

밥에게 보냄

암호화된 세션 키

이는 공개(비대칭) 키, 개인(대칭) 키 및 해시 함수와 같은 암호화 기술의 다이어그램입니다. 각각은 서로 다른 방식으로 데이터를 보호하며 데이터를 암호화하고 해독하려면 특정 유형의 키가 필요합니다. Gary C. Kessler의 "암호화 개요"에서 각색되었습니다.

75

프로그래밍 및 코딩의 원리

암호화

카이사르의 암호표. 카이사르의 암호에 따라 원본 문자와 대체 문자를 정리한 표입니다.

바이너리 형식으로 표현될 수 있는 모든 데이터. 이진 데이터의 암호화는 키를 사용하여 수행됩니다. 키는 암호화 알고리즘의 출력을 결정하는 데이터 문자열입니다. 암호화 알고리즘에는 다양한 유형이 있지만 일반적으로 두 가지 범주로 나뉩니다. 대칭 키 암호화는 단일 키를 사용하여 데이터를 암호화하고 해독합니다. "비대칭 키 암호화"라고도 하는 공개 키 암호화는 공개 키와 개인 키, 두 개의 키를 사용합니다. 일반적으로 공개 키는 데이터를 암호화하는 데 사용되며 개인 키는 데이터를 해독하는 데 사용됩니다. 대칭 키 암호화를 사용하는 경우 암호화된 메시지를 보내는 사람과 받는 사람 모두 동일한 키에 액세스할 수 있어야 합니다. 이 키는 보안 채널을 사용하여 당사자 간에 교환되어야 하며 그렇지 않으면 손상될 수 있습니다. 공개 키 암호화에는 그러한 교환이 필요하지 않습니다. 이것이 공개 키 암호화가 더 안전한 것으로 간주되는 이유 중 하나입니다. 컴퓨터와 함께 사용하기 위해 개발된 또 다른 암호화 기술은 디지털 서명입니다. 디지털 서명은 디지털 메시지를 보낸 사람의 신원을 확인하고 누구도 그 내용을 변조하지 않았음을 확인하는 데 사용됩니다. 디지털 서명은 공개 키 암호화를 사용합니다. 먼저 해시 함수를 사용하여 메시지에 포함된 데이터를 기반으로 고유한 값을 계산합니다. 이 고유한 값을 "메시지 다이제스트" 또는 간단히 "다이제스트"라고 합니다. 그런 다음 서명자의 개인 키를 사용하여 다이제스트를 암호화합니다. 다이제스트와 개인 키의 조합으로 서명이 생성됩니다. 디지털 서명을 확인하기 위해 수신자는 서명자의 공개 키를 사용하여 다이제스트를 해독합니다. 그러면 동일한 해시 함수가 메시지의 데이터에 적용됩니다. 새 다이제스트가 해독된 다이제스트와 일치하면 메시지는 그대로 유지됩니다.

기본 암호 해독 사용된 최초의 암호 중에는 전치 암호와 대체 암호가 있습니다. 전치 암호는 잘 정의된 76 숫자를 사용하여 메시지의 문자 순서를 변경하여 메시지를 암호화합니다.

계획. 가장 간단한 전치 암호 중 하나는 각 단어의 문자 순서를 바꾸는 것입니다. 이러한 방식으로 암호화되면 "MEET ME IN THE PARK" 메시지는 "TEEM EM NI EHT KRAP"이 됩니다. 더 복잡한 전치 암호에는 특정 방향(예: 쌓인 행)으로 메시지를 작성한 다음 다른 방향(예: 연속 열)으로 개별 문자를 읽는 작업이 포함될 수 있습니다. 대체 암호는 메시지의 특정 문자를 다른 문자로 대체하여 메시지를 인코딩합니다. 잘 알려진 초기 대체 암호 중 하나는 Julius Caesar의 이름을 딴 Caesar 암호입니다. 이 암호는 각 문자를 알파벳의 오른쪽이나 왼쪽에 지정된 수의 문자로 대체하여 메시지를 인코딩합니다. 예를 들어, 카이사르는 자신의 메시지를 암호화할 때 세 자리 왼쪽 시프트를 사용한 것으로 보고되었습니다.

샘플 문제

다음 메시지는 왼쪽 시프트 5를 사용하는 Caesar 암호로 인코딩되었습니다. JSHWDUYNTS NX KZS 메시지의 원본 텍스트는 무엇이었습니까? 대답: 대답은 다음 차트에 표시된 것처럼 인코딩된 메시지의 각 문자를 알파벳 위치에서 왼쪽으로 5자리 문자로 바꾸면 확인할 수 있습니다.

암호 테이블. 표는 5개의 암호를 왼쪽으로 이동하여 원본 문자와 대체 문자를 구성합니다.

원본 텍스트에는 "암호화는 재미있습니다."라고 적혀 있습니다.

프로그래밍 및 코딩의 원리

이 암호를 사용하면 율리우스 카이사르의 유명한 메시지 “내가 왔다, 내가 보았다, 내가 정복했다”가 암호화되면 “F ZXJB F PXT F ZLKNRBOBA”가 됩니다.

암호화가 중요한 이유는 무엇입니까? 가로채기와 해독으로부터 통신을 보호하는 능력은 오랫동안 군사 및 국제 문제에서 중요한 부분이었습니다. 현대에는 새로운 컴퓨터 기반 암호화 방법의 개발이 법 집행, 국제 문제, 군사 전략, 비즈니스 등 사회의 여러 분야에 큰 영향을 미쳤습니다. 이는 또한 조직 및 개인의 개인 정보 보호 권리와 법 집행 기관 및 정부 기관의 요구 사이의 균형을 맞추는 방법에 대한 광범위한 논쟁으로 이어졌습니다. 기업, 정부 및 소비자는 매일 상거래 및 은행 업무를 위한 디지털 통신 보안 문제를 해결해야 합니다. 컴퓨터가 더욱 강력해지고, 암호화 기술이 향상되고, 디지털 기술이 더욱 중요해짐에 따라 암호화가 사회에 미치는 영향은 더욱 커질 것입니다.

암호화

참고문헌 Esslinger, Bernhard, et al. CrypTool 스크립트: 암호화, 수학 등. 11판 프랑크푸르트: CrypTool, 2013. CrypTool 포털. 편물. 2016년 3월 2일. Hoffstein, Jeffrey, Jill Pipher, Joseph H. Silverman. 수학적 암호화 소개. 2판 뉴욕: 스프링거, 2014. 인쇄. 카츠, 조나단, 예후다 린델. 현대 암호화 소개. 2판 보카 레이톤: CRC, 2015. 인쇄. Menezes, Alfred J., Paul C. van Oorschot 및 Scott A. Vanstone. 응용암호화 핸드북. 보카 레이톤: CRC, 1996. 인쇄. Neiderreiter, Harald 및 Chaoping Xing. 코딩 이론과 암호화의 대수 기하학. 프린스턴: 프린스턴 UP, 2009. 인쇄. 파르, 크리스토프, 얀 펠지. 암호화 이해: 학생과 실무자를 위한 교과서. 하이델베르그: 스프링어, 2010. 인쇄.

—마우라 발렌티노, MSLIS

77

D 데이터 마이닝 개요 데이터 마이닝은 데이터베이스에서 패턴, 요약 및 기타 특정 형태의 정보를 추출하기 위해 알고리즘을 사용하는 비교적 최근의 관행입니다.

카테고리 비즈니스, 경제, 마케팅. 연구 분야 연구 분야: 데이터 분석 및 확률; 측정; 숫자와 연산. 20세기 후반 기술의 발전으로 인해 정부, 기업, 산업, 다양한 과학 분야에서 방대한 데이터 세트가 축적되었습니다. 이러한 대규모 데이터 세트에서 유용한 정보를 추출하려면 데이터를 모델링하고, 오류를 설명하고, 데이터 값 누락, 다양한 변수 척도 또는 측정값과 같은 문제를 처리하기 위한 새로운 수학적, 통계적 방법이 필요했습니다. 데이터 마이닝은 통계, 기계 학습, 컴퓨터 과학, 수학 등의 도구를 사용하여 데이터, 특히 대규모 데이터베이스에서 정보를 추출합니다. 데이터 마이닝과 관련된 개념은 수학자이자 컴퓨터 과학자인 Lotfi Zadeh가 개발한 퍼지 집합, Nils Barricelli와 같은 수학자들의 작업을 기반으로 한 유전 알고리즘 등 다양한 수학 분야에서 파생되었습니다. 처리되는 데이터의 양이 많기 때문에 데이터 마이닝은 컴퓨터에 크게 의존하며 수학자들은 새로운 알고리즘과 하드웨어 시스템 개발에 기여합니다. 예를 들어 Gfarm 그리드 파일 시스템(Gfarm Grid File System)은 고성능 페타스케일 수준의 컴퓨팅과 데이터 마이닝을 촉진하기 위해 21세기 초에 개발되었습니다.

78

역사 데이터 마이닝은 고전 통계, 인공 지능, 기계 학습의 세 가지 영역에 뿌리를 두고 있습니다. 1980년대 후반과 1990년대 초반에 대규모 고객 정보 데이터베이스를 소유한 회사, 특히 신용카드 은행은 거래를 통해 고객에 대해 더 많은 정보를 얻을 수 있는 가능성을 모색하고 싶었습니다. "데이터 마이닝"이라는 용어는 1960년대부터 통계학자들이 규율 없는 데이터 탐색을 설명하는 경멸적인 용어로 사용했습니다. '데이터 준설', '낚시'라고도 불렸습니다. 그러나 1990년대에 기계 학습 분야의 연구원과 실무자들은 기업이 더 나은 결정을 내릴 수 있는 패턴을 발견하고 향후 조사를 위한 가설을 개발할 수 있도록 알고리즘을 대규모 데이터베이스에 성공적으로 적용하기 시작했습니다. 부분적으로 "데이터 마이닝"이라는 용어의 부정적인 의미를 피하기 위해 연구자들은 데이터 수집 및 준비부터 데이터 수집에 이르기까지 데이터베이스에서 유용한 패턴을 찾는 전체 프로세스를 설명하기 위해 "데이터베이스의 지식 발견"(KDD)이라는 용어를 만들었습니다. 분석 결과를 다른 사람에게 전달하는 최종 결과물입니다. 이 용어는 머신러닝과 AI 분야에서 인기를 얻었지만 통계학자들은 여전히 ​​'데이터 마이닝'이라는 용어를 사용하고 있습니다. "KDD"라는 용어를 사용하는 사람들은 데이터 마이닝을 알고리즘이 데이터에 적용되는 KDD 프로세스의 특정 부분으로만 지칭합니다. 이 논의에서는 더 넓은 해석이 사용될 것입니다. 데이터 마이닝을 구현하는 소프트웨어 프로그램은 1990년대에 등장하여 오늘날에도 계속 발전하고 있습니다. 오픈 소스 프로그램(예: WEKA, http://www.cs.waikato.ac.nz/ml/weka 및 R 패키지, http://www.r-project.org)과 이를 지원하는 많은 상용 프로그램이 있습니다. 사용하기 쉬운 그래픽 사용자 제공

프로그래밍 및 코딩의 원리

조직 전체에 데이터 마이닝 관행의 확산을 촉진할 수 있는 인터페이스(GUI).

문제 유형 데이터 마이닝이 다루는 특정 작업 유형은 일반적으로 네 가지 유형으로 나뉩니다. 1. 예측 모델링(분류, 회귀) 2. 세분화(데이터 클러스터링) 3. 요약 4. 시각화 예측 모델링은 다음과 같은 모델을 구축하는 것입니다. 예측 변수의 새로운 값 또는 미래 값에 따라 해당 반응의 값을 예측하는 주요 목적으로 반응 변수를 사용합니다. 예측 모델링 문제는 예측되는 응답 변수의 특성에 따라 분류 문제 또는 회귀 문제로 더 세분화됩니다. 응답 변수가 범주형인 경우(예: 고객이 가입 기간이 끝나면 전화 공급자를 바꿀지 또는 현재 회사에 계속 머물지 여부) 문제를 "분류"라고 합니다. 응답이 정량적(예: 고객이 다음 해에 회사에서 지출할 금액)인 경우 문제는 "회귀 문제"입니다. 회귀 이외의 기술을 사용하여 예측을 생성하는 경우에도 이러한 문제에 대해 "회귀"라는 용어가 사용됩니다. 명확한 반응 변수가 있기 때문에 예측 모델링 문제는 기계 학습에서 "지도 문제"라고도 합니다. 예측할 반응 변수가 없는 경우도 있지만 분석가는 다양한 변수를 기반으로 고객을 세그먼트로 나누고 싶어할 수 있습니다. 이러한 세그먼트는 분석가에게 의미가 있을 수 있지만 세분화의 정확성을 평가하기 위해 예측할 응답 변수는 없습니다. 지정된 응답 변수가 없는 이러한 문제를 "비지도 학습 문제"라고 합니다. 요약은 반응을 모델링하는 데 반드시 사용되지 않는 변수의 수치적 요약을 설명합니다. 예를 들어, 분석가는 다른 행동을 예측하지 않고 대규모 잠재 신규 고객의 평균 연령, 소득 및 신용 점수를 조사하려고 할 수 있습니다. 특히 이러한 목적으로 그래픽 디스플레이를 사용하는 경우

데이터 수집

동시에 많은 변수를 포함하는 것을 "시각화"라고 합니다.

알고리즘 데이터 마이닝에서는 수학 방정식을 기반으로 하는 다양한 알고리즘(컴퓨터 코드)을 사용하여 반응 변수와 예측 변수 집합 간의 관계를 설명하는 모델을 구축합니다. 알고리즘은 선형 회귀, 로지스틱 회귀, 시계열 분석과 같은 고전적인 통계 기술뿐만 아니라 분류 및 회귀 트리(기계 학습의 ID3 또는 C4.5)와 같은 최근에 개발된 기술을 포함하여 통계 및 기계 학습 문헌에서 가져왔습니다. 신경망, Naive Bayes, K-최근접 이웃 기술, 지원 벡터 머신 등이 있습니다. 데이터 마이닝의 과제 중 하나는 특정 애플리케이션에 사용할 알고리즘을 선택하는 것입니다. 기존 통계의 관행과 달리 데이터 마이너는 종종 새로운 데이터 세트("테스트 세트"라고 함)를 사용하여 동일한 데이터 세트에 여러 모델을 구축하여 어떤 모델이 가장 잘 수행되는지 평가합니다. 데이터 마이닝의 최근 발전은 구성 모델의 이점을 수집하기 위한 노력의 일환으로 모델을 앙상블로 결합합니다. 두 가지 주요 앙상블 방법은 "부트스트랩 집계"(배깅)와 "부스팅"으로 알려져 있습니다. 두 방법 모두 동일한 데이터 세트의 리샘플링된 버전에 대해 많은(아마도 수백 또는 수천 개의) 모델을 구축하고 (일반적으로 가중) 평균(회귀의 경우) 또는 다수결(분류의 경우)을 사용하여 다음을 결합합니다. 모델. 앙상블 방법은 다양한 응용 분야에서 개별 모델보다 분산과 편향이 적은 모델을 생성한다는 주장이 있습니다. 이것이 데이터 마이닝의 현재 연구 분야입니다. 애플리케이션 데이터 마이닝 기술은 대규모 데이터 세트가 있는 모든 곳에 적용되고 있습니다. 중요한 응용 분야에는 다음이 포함됩니다. 1. 고객 관계 관리(CRM). 신용 카드 은행은 고객 행동 패턴을 예측하고 이해하기 위해 대규모 거래 데이터베이스를 사용하는 최초의 회사 그룹 중 하나를 구성했습니다. 모델은 은행이 인수, 유지 및 교차 판매 기회를 이해하는 데 도움이 됩니다.

79

프로그래밍 및 코딩의 원리

데이터웨어 하우스

2. 위험 및 수집 분석. 누가 대출을 불이행할 가능성이 가장 높은지, 어떤 유형의 회수 전략이 성공할 것인지를 예측하는 것은 은행에게 매우 중요합니다. 3. 직접 마케팅. 어떤 고객이 직접 마케팅에 반응할 가능성이 가장 높은지 알면 기업은 정크 메일 및 기타 관련 비용에서 연간 수십억 달러를 절약할 수 있습니다. 4. 사기 탐지. 사기 거래를 식별하는 모델은 은행과 주 감사관실, 국세청(IRS)을 포함한 다양한 정부 기관에서 사용됩니다. 5. 테러리스트 탐지. 데이터 마이닝은 테러 활동을 식별하는 데 도움을 주기 위해 다양한 정부 기관에서 사용되었습니다. 하지만 기밀 유지에 대한 우려도 있었습니다. 6. 유전체학과 단백질체학. 연구자들은 특정 유전자와 단백질을 질병 및 기타 생물학적 활동과 연관시키려는 시도로 데이터 마이닝 기술을 사용합니다. 이 분야는 "생물정보학"으로도 알려져 있습니다. 7. 건강 관리. 데이터 마이닝은 의사 결정, 의약품 처방, 진단 결과 및 기타 의료 결과의 효율성을 연구하는 데 점점 더 많이 사용되고 있습니다.

우려사항 및 논란 개인정보 보호 문제는 데이터 마이닝과 관련하여 대중의 주요 관심사 중 일부입니다. 실제로 일부

일종의 데이터 마이닝 및 발견은 불법입니다. 개인의 정보를 보호하는 연방 및 주 개인 정보 보호법이 있습니다. 거의 모든 웹 사이트, 신용 카드 회사 및 기타 정보 수집 조직에는 공개적으로 이용 가능한 개인 정보 보호 정책이 있습니다. Facebook과 같은 소셜 네트워킹 사이트는 데이터 마이닝 목적으로 가입자에 대한 정보를 공유하고 판매한다는 비판을 받아 왔습니다. 의료 분야에서는 개인의 건강 정보가 본인도 모르게 공유되는 것을 방지하기 위해 1996년 건강 보험 이동성 및 책임법(HIPAA)이 제정되었습니다. —Richard De Veaux 참고문헌 Berry, M. A. J., G. Linoff. 마케팅, 영업 및 고객 지원을 위한 데이터 마이닝 기술. Hoboken, NJ: Wiley, 1997. De Veaux, R. D. “데이터 마이닝: 구덩이 아래에서 본 전망.” 통계 34(2002). ——— 및 H. 에델슈타인. “데이터 마이닝 기술을 사용하여 정크 메일 줄이기.” 통계: 미지의 세계에 대한 안내. 4판 캘리포니아주 벨몬트: Thomson, Brooks-Cole, 2006. Piatetsky-Shapiro, Gregory. “실제 데이터베이스의 지식 발견: 워크숍 보고서.” AI 매거진 11호. 5(1991년 1월).

데이터 웨어하우스 데이터 웨어하우스는 다양한 소스로부터 정보를 수집하여 쉽게 액세스하고 분석할 수 있도록 중앙 위치에 저장하는 데이터베이스입니다. 데이터 웨어하우스에 저장된 데이터는 특정 시점에 각 항목이 어떻게 생겼는지에 대한 정적 기록 또는 스냅샷입니다. 이 데이터는 업데이트되지 않습니다. 오히려 시간이 지남에 따라 정보가 변경된 경우 동일한 항목의 나중에 스냅샷이 창고에 추가됩니다. 데이터 웨어하우스는 일반적으로 회사의 진행 상황을 추적하고 의사 결정을 내리는 데 있어 경영진을 지원하기 위해 비즈니스에서 사용됩니다. 80

개요 컴퓨터 과학자 William H. Inmon은 데이터 웨어하우징 개념을 체계화하고 대중화한 것으로 크게 알려져 있습니다. Inmon은 1970년대부터 기본 원칙에 대해 논의하기 시작했으며 1992년에 이 주제에 대한 첫 번째 책인 Building the Data Warehouse를 출판했습니다. 이 용어 자체는 1988년 Barry A. Devlin과 Paul T. Murphy가 "An Architecture for for"라는 논문을 발표하면서 만들어졌습니다. 비즈니스 및 정보 시스템”에서는 “비즈니스 데이터 웨어하우스”라고 설명하는 새로운 소프트웨어 아키텍처를 논의합니다.

프로그래밍 및 코딩의 원리

데이터 웨어하우스 개요.

간단히 말해서, 데이터 웨어하우스는 다른 소규모 데이터베이스 및 회사 기록과 같은 여러 다른 소스의 정보 복사본을 포함하는 중앙 데이터베이스로, 웨어하우스의 어떤 것도 변경하거나 덮어쓸 수 없도록 읽기 전용 형식으로 저장됩니다. 데이터 웨어하우징은 처음부터 비즈니스 전략 개발을 목적으로 기업의 축적된 데이터를 분석하는 비즈니스 인텔리전스 분야와 연관되어 왔습니다. 그러나 데이터 웨어하우스는 과학적 연구나 범죄 통계 분석과 같은 비업무적 맥락에서도 사용됩니다. 데이터 웨어하우스를 설계하는 데에는 위에서 아래로, 아래에서 위로라는 두 가지 주요 접근 방식이 있습니다. 인몬은 창고를 중앙 ​​정보 저장소로 설계하는 하향식 모델을 옹호합니다. 데이터는 가장 기본적인 형태로 웨어하우스에 입력되며, 그 후 웨어하우스는 데이터 마트로 세분화될 수 있으며, 해당 정보가 속한 팀이나 부서가 쉽게 접근할 수 있도록 관련 데이터를 그룹화할 수 있습니다. 하향식 데이터 웨어하우스에서 데이터 마트를 생성하면 훨씬 더 큰 웨어하우스보다 더 효율적으로 액세스할 수 있기 때문에 사용자 성능이 향상되고 다양한 데이터 하위 집합에 개별 보안 프로토콜을 적용할 수 있다는 장점이 있습니다. 그러나 데이터 마트는 하향식 창고 설계의 필수 구성 요소가 아니며 중복되거나 일관되지 않은 데이터에 대한 경향과 같은 단점이 있습니다.

데이터웨어 하우스

또는 Ralph Kimball이 개발한 상향식 데이터 웨어하우징 모델에서는 데이터 웨어하우스를 단순히 다양한 데이터 마트의 통합으로 간주합니다. 이 방법에서는 개별 부서에서 사용하고 유지 관리하는 별도의 데이터베이스인 데이터 마트를 먼저 생성한 후 연결하여 데이터 웨어하우스를 생성합니다. 한 접근 방식이 다른 접근 방식에 비해 장점이 있는지는 종종 논쟁의 여지가 있습니다. 더 저렴하고 빠르며 유연한 상향식 설계는 일반적으로 중소기업에서는 더 나은 것으로 간주되지만, 수많은 사람들이 서로 다른 데이터 마트에 새로운 데이터를 입력해야 하기 때문에 대기업에서는 다루기가 너무 어렵습니다. 일관성을 유지하고 중복을 피하려면 시간이 많이 걸립니다. 클라우드 컴퓨팅은 데이터를 저장, 관리 및 처리하기 위해 로컬 서버나 하드 드라이브가 아닌 인터넷의 원격 서버 네트워크를 사용하는 것입니다. 클라우드 컴퓨팅은 데이터 웨어하우징에 사용될 수 있습니다. 클라우드에 데이터를 보관하면 이점과 과제가 모두 제공됩니다. 데이터 웨어하우스를 클라우드로 이전하면 비용을 절감하고 유연성과 액세스를 높일 수 있는 이점이 있습니다. 문제에는 데이터 보안 및 개인 정보 보호, 네트워크 성능, 지적 재산 관리 유지가 포함됩니다. —란다 탄타위(Randa Tantawi) 박사

참고문헌 Chandran, Ravi. “DW-on-Demand: 클라우드에서 재정의된 데이터 웨어하우스.” 비즈니스 인텔리전스 저널 20.1(2015): 8–13. 비즈니스 소스가 완료되었습니다. 편물. 2015년 6월 8일. Devlin, Barry A., Paul T. Murphy. “비즈니스 및 정보 시스템을 위한 아키텍처.” IBM 시스템 저널 27.1(1988): 60–80. 인쇄. 그린필드, 래리. 데이터 웨어하우징 정보 센터. LGI 시스템, 1995. 웹. 2013년 10월 8일. 그리피스, 에릭. “클라우드 컴퓨팅이란 무엇입니까?” PC 매거진. Ziff Davis, PCMag Digital Group, 2015년 4월 17일. 웹. 2015년 6월 8일. Henschen, Doug, Ben Werther, Scott Gnau. “빅데이터 논쟁: 데이터 웨어하우징이 거의 끝나갈까?” 인포메이션위크. UBM Tech, 2012년 11월 19일. 웹. 2013년 10월 8일. Inmon, William H. 데이터 웨어하우스 구축. 4판 인디애나폴리스: Wiley, 2011. 인쇄. 81

프로그래밍 및 코딩의 원리

데이터베이스 설계

라베르지, 로버트. 데이터 웨어하우스 멘토: 실용적인 데이터 웨어하우스 및 비즈니스 인텔리전스 통찰력. 뉴욕: McGraw, 2011. 인쇄. 모하메드, 아리프. “클라우드 컴퓨팅의 역사.” 컴퓨터 주간. TechTarget, 2000-2015. 편물. 2015년 6월 8일. Singh, Ajit, D. C. Upadhyay 및 Hemant Yadav. “분석 데이터 웨어하우스: 기관의 결정을 강화하기 위한 지속 가능한 접근 방식

만들기." 국제 공학 과학 기술 저널 3.7(2011): 6049-57. PDF 파일. 스타이어, 샌디. "클라우드로 갈 것인가, 말 것인가: 데이터 웨어하우스는 어디에 속합니까?" 열광한. Condé Nast, 2013년 5월 29일. 웹. 2013년 10월 9일. 윌리엄스, 폴. “데이터 웨어하우징의 간략한 역사.” 데이터 다양성. Dataversity Educ., 2012년 8월 23일. 웹. 2013년 10월 8일.

데이터베이스 설계 데이터베이스 설계는 데이터가 영구적(지속적) 방식으로 저장될 수 있는 구조(데이터베이스)를 생성하기 위한 계획, 모델, 사양 및 지침으로 구성됩니다. 사용자는 특정 영역(도메인)의 질문에 답하는 조합으로 해당 데이터를 추출할 수 있습니다. 성공적인 데이터베이스 설계에는 데이터베이스 기술과 방법에 대한 완전한 최신 이해가 필요합니다. 또한 설계자는 사람들이 작업하는 방식과 데이터베이스가 대답하는 질문 유형을 이해해야 합니다. 다양한 기술적, 지적 능력이 작용하기 때문에 데이터베이스 디자인이 예술인지 과학인지에 대한 지속적인 논쟁이 있습니다.

개요 데이터베이스는 사용자가 액세스하여 조직이 어떻게 작동하는지에 대한 정보와 통찰력을 제공할 수 있도록 데이터를 저장합니다. 현재 우리가 사용하는 전자 데이터베이스라는 용어는 미 국방부를 위해 개발된 1950년대 후반으로 거슬러 올라갑니다. 1960년대에는 데이터베이스가 비즈니스 및 학술용으로 설계 및 생성되었습니다. 그 사이에 데이터베이스 디자인은 향상된 컴퓨팅 성능과 더불어 조직의 변화하는 요구 사항과 잠재 사용자의 점점 더 정교해지는 정보 전문 지식에 맞춰 변경되었습니다. 사용자와 설계자가 데이터를 보는 방식과 데이터가 자신의 요구 사항을 충족할 수 있는 방식이 발전하면서 몇 가지 데이터베이스 설계 방법이 수년에 걸쳐 선호되었습니다. 조직의 정보 요구 사항은 점점 더 커지고 복잡해졌습니다. 사람들이 정보를 보는 방식과 그 사용 방식도 더욱 정교해졌습니다. 82

데이터베이스 설계에는 다양한 변형이 존재하지만 방법론은 일반적으로 적절한 소프트웨어 및 하드웨어 기술 선택, 반복적인 개발 및 테스트를 통해 정보 및 사용자 요구 사항 수집부터 시작하는 일련의 단계를 따릅니다. 리버풀 대학의 컴퓨터 과학부에서 정의한 6단계 프로세스가 일반적입니다. 리버풀 방법론의 첫 번째 단계는 조직의 정보 요구 사항을 문서화하는 요구 사항 분석입니다. 조직이 알아야 할 것은 무엇입니까? 조직이 요구하는 그림을 형성하려면 어떤 데이터가 필요합니까? 이러한 데이터는 어떻게 구성되고 관계는 정의됩니까? 두 번째 단계인 개념적 데이터베이스 설계에서는 모든 데이터 조각을 식별하고 해당 데이터의 위치와 관계도 정의된 모델에 넣습니다. 동시에 데이터를 생성하는 비즈니스 프로세스도 모델링됩니다. 이 두 번째 단계는 데이터베이스 설계자가 고객의 요구 사항과 작업 방식을 철저히 이해해야 하기 때문에 매우 중요합니다. 데이터베이스 디자이너는 데이터베이스 전문가이지만 조직의 비즈니스 영역에 대해 항상 유사한 전문 지식을 보유하고 있지는 않기 때문에 이 단계에서 문제가 발생하는 경우가 많습니다. 세 번째 단계는 데이터베이스를 보호하기 위한 보안 프로그램 선택을 포함한 하드웨어 및 소프트웨어 선택입니다. 어떤 경우에는 사용 가능한 옵션이 넓어 잠재 사용자가 저렴한 규모로 필요한 기능을 얻을 수 있습니다. 네 번째 단계는 논리적 설계입니다. 비즈니스 프로세스(트랜잭션)가 문서화되고 다이어그램으로 작성되며 이어서 이러한 워크플로가 매핑됩니다.

프로그래밍 및 코딩의 원리

선택한(또는 새로 개발된) 데이터베이스의 기능에 따라 달라집니다. 다섯 번째 단계(물리적 설계)에서는 데이터를 저장할 위치와 데이터베이스에서 이동하는 방법을 결정합니다. 마지막 단계는 설치 및 사용 후 회사의 데이터베이스 관리자가 일반적으로 관리하는 데이터베이스의 모든 단계에서 지속적인(반복) 테스트를 통해 데이터베이스가 실제로 어떻게 개발되는지 계획하는 것입니다. —Robert N. Stacy, CSS, MA 참고문헌 Badia, Antonio, Daniel Lemire. “A Call to Arms: 데이터베이스 설계 재검토.” ACM SIGMOD 레코드 40.3(2009): 61–69. 인쇄. 벅스턴, 스티븐. 데이터베이스 설계: 모든 것을 알아보세요. 보스턴: Morgan Kaufmann, 2009. 인쇄.

데이터베이스 구조화 규칙

처처, 클레어. 데이터베이스 설계 시작: 초보자에서 전문가까지. 2판 버클리: Apress, 2012. 인쇄. 크레스웰, 존. W. 연구 설계: 정성적, 정량적, 혼합 방법 접근 방식. 사우전드 오크스: 세이지, 2013. 인쇄. 커림(Currim), 사바(Sabah) 등. 지식 학습 프레임워크를 사용하여 데이터베이스 설계의 오류를 예측합니다.” Elsevier 40(2014년 3월): 11–31. 인쇄. 대학원, 버튼, 토마스 J. Bergin. “데이터베이스 관리 시스템의 역사.” IEEE 컴퓨팅 역사 연보 31.4(2009): 3–5. 인쇄. Hernandez, Michael J. 단순한 필사자를 위한 데이터베이스 설계: 관계형 데이터베이스 설계 실습 가이드. 어퍼 새들 리버: Addison-Wesley, 2013. 인쇄. 스티븐스, 로드. 데이터베이스 설계 솔루션 시작. 인디애나폴리스: John Wiley & Sons, 2009. 인쇄.

데이터베이스 구조화 협약 연구 분야 소프트웨어 개발; 컴퓨터 과학

코딩

기법;

개요 데이터베이스 구조화 규칙은 데이터베이스 설계가 네트워크 대역폭 및 데이터베이스 스토리지와 같은 시스템 리소스를 효율적으로 사용하면서 필요한 데이터에 빠르고 정확하게 액세스할 수 있도록 보장하는 데 사용됩니다. 엔터티, 속성, 키, 보기 및 트리거를 정의하는 데 표준 규칙이 사용됩니다. 주요 용어 속성: 컴퓨터 과학에서 객체나 엔터티의 속성이나 특성입니다. 엔터티: 데이터베이스에서 저장되는 데이터를 구성하는 속성을 가진 관심 항목입니다. 외래 키: 동일한 데이터베이스의 다른 테이블에 있는 엔터티의 기본 키이며 두 엔터티 간의 관계를 설정하는 데 사용되는 데이터베이스의 한 테이블에 있는 엔터티의 속성입니다.

기본 키: 데이터베이스에 저장된 각 엔터티를 고유하게 정의하는 속성입니다. 트리거: 데이터베이스의 데이터가 변경될 때 실행되는 프로시저입니다.

엔터티 및 해당 속성 데이터베이스는 엔터티를 기반으로 구축됩니다. 엔터티는 단순히 데이터가 저장되는 사람, 사물, 이벤트 또는 장소와 같은 관심 있는 단일 항목입니다. 예를 들어 데이터베이스의 엔터티는 직원(사람), 제품(사물), 콘서트(이벤트) 또는 마을(장소)을 나타낼 수 있습니다. 각 엔터티에는 데이터베이스에 저장된 정보를 구성하는 연관된 속성 세트가 있습니다. 예를 들어 직원 속성에는 직위, 급여, 근속 기간 등이 포함될 수 있습니다. 데이터베이스는 테이블로 모델링될 수 있으며, 각 엔터티는 테이블의 행으로 표시되고 다양한 속성은 열로 표시됩니다. 엔터티

83

데이터베이스 구조화 규칙

다양한 유형이 별도의 표에 나열되어 있습니다. 예를 들어 데이터베이스에 회사 직원과 해당 회사 내의 여러 부서에 대한 레코드가 포함된 경우 한 테이블에는 직원과 해당 속성이 나열되고 다른 테이블에는 부서와 해당 속성이 나열됩니다. 서로 다른 유형의 엔터티 간에 관계를 구성할 수 있습니다. 이러한 관계는 일대일, 일대다 또는 다대다의 주요 형태 중 하나를 취합니다. 예를 들어 여러 직원(여러 엔터티)이 각각 동일한 부서(엔터티 하나)와 관계를 가질 수 있습니다. 관계를 구성하려면 먼저 각 엔터티에 기본 키라는 속성이 할당되어야 합니다. 동일한 테이블 내에서 값이 반복되어서는 안 되는 고유 식별자입니다. 직원 번호는 각 직원을 고유하게 식별하는 데 사용될 수 있으며, 각 부서에 대해 고유한 부서 식별(ID) 번호가 생성될 수 있습니다. 다음으로, 한 테이블에 있는 엔터티의 기본 키를 다른 테이블에 있는 엔터티의 속성으로 만들어 엔터티 간의 관계를 정의합니다. 이 새로운 속성을 외래 키라고 합니다. 예를 들어, 직원 테이블의 외래 키 열은 각 직원 부서의 부서 ID를 보유하여 직원과 해당 부서 간의 관계를 설정합니다. 한 테이블의 데이터가 업데이트되면 관련 테이블의 데이터도 업데이트해야 하는 경우가 많습니다. 예를 들어, 부서 ID가 변경되면 해당 부서의 모든 직원에 대한 직원 테이블에서도 해당 정보를 변경해야 합니다. 트리거와 제약 조건을 사용하여 올바른 업데이트가 발생하는지 확인할 수 있습니다.

데이터베이스 구축에 대한 일반적인 규칙은 엔터티 관계 모델에서 시각화될 수 있습니다. 이 모델은 사용자, 블로그 게시물, 블로그, 히트 및 캠페인 간의 관계를 보여주고 각 엔터티의 일부 속성을 나열합니다.

84

프로그래밍 및 코딩의 원리

일관된 명명 규칙을 설정하는 것은 데이터베이스 디자인의 중요한 부분입니다. 데이터베이스에서 개체의 이름을 지정할 때는 이름을 가능한 한 짧고 명확하며 설명적으로 유지하십시오. 약어가 필요한 경우 표준 약어를 사용하십시오. 데이터베이스 개체의 이름을 바꾸기 어려울 수 있으므로 시간이 지남에 따라 변경될 수 있는 용어를 사용하지 마십시오. 파일 이름 지정에 사용되는 것과 같은 조직의 명명 규칙은 데이터베이스 이름 지정을 알려야 합니다. 또한 다양한 데이터베이스 시스템은 개체 이름 지정에 자체 제한을 적용합니다. 일반적으로 공백이 아닌 밑줄을 사용하여 단어를 구분합니다. 접두사 또는 접미사는 뷰를 식별할 수 있습니다.

정규화를 사용하여 데이터베이스 최적화 필요한 엔터티와 속성이 결정되면 정규화를 통해 데이터베이스 구조를 최적화할 수 있습니다. 정규화는 중복을 줄이기 위해 테이블을 연결하는 키 사용을 최대화합니다. 예를 들어, 미국 기반 회사의 데이터베이스에 직원용 테이블과 고객용 테이블이 있는 경우 두 테이블 모두 각 엔터티의 거주 상태에 대한 속성을 가질 수 있습니다. 결과적으로 두 테이블 사이에 데이터가 중복되어 불필요한 공간을 차지하게 됩니다. 또한 주 이름이 표마다 다르게 축약된 경우(예: 텍사스가 "Tex"로 축약된 경우) 한 테이블에는 "TX"가 있고 다른 테이블에는 "TX"가 있어서 오류가 발생할 수 있습니다. 정규화 중에 각 주의 이름과 약어를 저장하기 위해 상태 테이블이 생성됩니다. 그런 다음 이 테이블은 키를 사용하여 직원 및 고객 테이블에 연결되므로 데이터 중복이 방지됩니다. 정규화는 또한 올바른 속성이 올바른 테이블에 저장되도록 보장합니다. 예를 들어, 직원의 근무 시간은 부서 테이블보다 직원 테이블에 저장하는 것이 더 논리적입니다. 이렇게 하면 데이터 검색 또는 쿼리를 더 쉽게 수행할 수 있습니다. 정규화는 테이블 크기를 줄여 성능상의 이점을 제공합니다. 여러 위치에서 데이터를 업데이트하거나 추가할 필요가 없으므로 업데이트 및 삽입 속도가 더 빨라집니다. 삭제로 인해 필요한 다른 데이터가 손실될 위험이 없습니다. 일반적으로 정규화된 데이터베이스는 데이터가 데이터베이스에 기록되거나 데이터를 읽는 것보다 더 자주 변경될 때 성능이 좋습니다. 이와 대조적으로, 비정규화된 데이터베이스는 데이터베이스에서 데이터를 쓰는 것보다 더 자주 읽을 때 성능 이점을 제공합니다. 필요한 데이터를 단일 서버에서 검색할 수 있기 때문입니다.

프로그래밍 및 코딩의 원리

디버깅

샘플 문제

개발자는 대학의 급여 부서에서 사용하는 정보를 저장하기 위한 데이터베이스를 설계하고 있습니다. 데이터베이스에는 최소한 3개의 테이블이 포함됩니다. 하나는 대학 직원용, 하나는 부서용, 다른 하나는 캠퍼스 위치용입니다. 다음은 다양한 데이터베이스 개체에 할당된 이름의 일부 목록입니다. 또한 vw_humanities_departments 및 vw_downtown_maintenance_employees라는 두 개의 보기 이름이 지정되었습니다. 이러한 이름이 주어지면 개발자가 사용하는 명명 규칙을 설명하십시오. 답변: 모든 이름은 소문자로 되어 있으며, 이름에 포함된 여러 단어는 밑줄로 구분됩니다. 표준 약어는 거의 사용되지 않습니다(예: Department_id에서 "id"는 약어이지만 "department"는 "dept"로 축약되지 않고 철자로 표기됩니다). 엔터티 및 속성 이름은 단수입니다. 각 테이블의 기본 키에는 짧은 이름(id)이 할당되고 외래 키 이름은 참조 테이블의 엔터티 이름과 기본 키 이름(예: Department_id)을 결합합니다. 뷰는 접두사(vw_)로 식별됩니다.

이는 정규화된 데이터베이스에 필요한 여러 테이블에 액세스하는 것보다 빠릅니다. 데이터베이스가 비정규화되면 인덱스 사용도 더 효율적입니다.

따라서 정규화와 비정규화는 특정 데이터베이스에 대한 읽기 및 쓰기 성능의 균형을 맞춰야 합니다.

좋은 구조는 성능을 극대화한다. 데이터베이스가 시스템 자원을 효율적으로 사용하면서 최대한의 성능을 제공하기 위해서는 잘 설계되어야 한다. 성공적인 디자인의 기초는 건전한 데이터베이스 구조입니다. 확립된 데이터베이스 구조화 규칙은 개발자가 최종 사용자의 개별 요구 사항에 따라 가장 효율적인 데이터베이스를 생성하는 데 도움이 됩니다. 이러한 규칙을 따르면 데이터베이스 디자인이 향상되는 것으로 입증되었습니다. —Maura Valentino, MSLIS 참고문헌 Churcher, Clare. 데이터베이스 설계 시작: 초보자에서 전문가까지. 2판, Apress, 2012. Harrington, Jan L. 관계형 데이터베이스 설계 및 구현. 4판, Elsevier, 2016. Hernandez, Michael J. 단순한 필사자를 위한 데이터베이스 설계: 관계형 데이터베이스 설계 실습 가이드. 3판, Addison-Wesley, 2013. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Mullins, Craig S. 데이터베이스 관리: DBA 실무 및 절차에 대한 전체 가이드. 2판, Addison-Wesley, 2013. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004.

디버깅 연구 분야 컴퓨터 과학; 소프트웨어 엔지니어링 개요 디버깅은 컴퓨터에서 "버그"라고 알려진 오류를 식별하고 해결하는 프로세스입니다.

시스템. 웹 브라우저, 비디오 게임 등의 소비자 프로그램부터 교통 및 인프라에 사용되는 복잡한 시스템에 이르기까지 모든 종류의 프로그램 개발에 필수적인 단계입니다. 디버깅은 해당 컴퓨터 시스템의 특성에 따라 다양한 방법을 통해 수행될 수 있습니다. 85

디버깅

주요 용어 델타 디버깅: 관련 없는 정보를 제거하면서 버그의 근본 원인을 식별하기 위한 자동화된 디버깅 방법입니다. 회로 내 에뮬레이터: 더 큰 시스템 내에 내장된 컴퓨터 시스템의 디버깅을 가능하게 하는 장치입니다. 통합 테스트: 여러 장치를 개별적으로 테스트하고 함께 작업하는 프로세스입니다. 메모리 덤프: 프로그램이 충돌했을 때의 컴퓨터 메모리 기록으로, 충돌을 일으킨 버그를 찾아내고 해결하는 데 사용됩니다. 소프트웨어 패치: 버그를 수정하거나 기타 개선 사항을 적용하는 소프트웨어 업데이트입니다.

디버깅 이해 디버깅은 소프트웨어나 기타 컴퓨터 시스템을 테스트하고, 발생한 오류를 기록하고, 해당 오류의 원인을 찾는 프로세스입니다. 컴퓨터 프로그램의 오류 또는 "버그"는 프로그램 작동에 심각한 영향을 미치거나 프로그램이 완전히 작동하지 못하게 할 수도 있습니다. 디버깅의 목적은 식별된 버그를 제거하는 것입니다. 이는 컴퓨터 프로그램이나 시스템이 원활하고 오류 없이 작동하도록 보장해야 합니다. 컴퓨터 프로그램은 컴퓨터에 수행할 작업과 수행 방법을 알려주는 특수 코드의 긴 문자열로 구성됩니다. 컴퓨터 코드가 제대로 작동하려면 특정 어휘와 구조를 사용해야 합니다. 이러한 코드는 인간 프로그래머가 작성하기 때문에 항상 인간 오류가 발생할 가능성이 있으며, 이는 많은 일반적인 버그의 원인입니다. 아마도 가장 일반적인 버그는 구문 오류일 것입니다. 이는 프로그램 코드의 오타와 같은 작은 실수의 결과입니다. 어떤 경우에는 프로그래머가 코드에 핵심 요소를 포함하는 것을 무시했거나 잘못 구성했기 때문에 버그가 발생할 수 있습니다. 예를 들어, 코드에는 컴퓨터에 특정 프로세스를 시작하도록 지시하는 명령이 포함되어 있지만 프로세스를 종료하는 해당 명령이 없을 수 있습니다. 버그는 언제, 어떻게 프로그램에 영향을 미치는지에 따라 여러 범주 중 하나로 분류됩니다. 컴파일 오류로 인해 프로그램이 실행되지 않습니다. 한편, 프로그램이 실행되는 동안 런타임 오류가 발생합니다. 프로그램 논리의 결함으로 인해 의도하지 않은 결과가 발생하는 논리 오류는 특히 일반적인 버그 형태입니다. 이러한 오류는 86년에 발생합니다.

프로그래밍 및 코딩의 원리

프로그램의 코드는 구문론적으로는 정확하지만 논리적으로 이해되지 않습니다. 예를 들어, 논리에 결함이 있는 코드 문자열로 인해 프로그램이 의도하지 않은 루프에 빠질 수 있습니다. 이로 인해 완전히 응답하지 않거나 정지될 수 있습니다. 다른 경우에는 프로그램 코드가 컴퓨터에 수학적으로 불가능한 작업인 숫자 값을 0으로 나누도록 지시할 때 논리 오류가 발생할 수 있습니다.

디버그하는 이유는 무엇입니까? 버그는 프로그램의 핵심 기능 수행이나 실행 능력을 방해할 수 있습니다. 모든 버그가 프로그램의 핵심 기능과 관련된 것은 아니며, 일부 프로그램은 오류가 있음에도 불구하고 사용할 수 있습니다. 그러나 사용 편의성은 많은 사람들이 어떤 프로그램을 사용할지 결정할 때 고려하는 중요한 요소입니다. 따라서 프로그램에 오류가 최대한 없는지 확인하는 것이 소프트웨어 제작자의 최선의 이익입니다. 프로그램이나 기타 컴퓨터 시스템을 대중에게 공개하기 전에 사내에서 테스트하는 것 외에도 많은 소프트웨어 회사는 출시 후 사용자로부터 버그 보고서를 수집합니다. 이는 일반적으로 메모리 덤프라고 하는 수집된 데이터의 전송을 통해 수행되는 경우가 많습니다. 그런 다음 소프트웨어 패치라고 알려진 업데이트를 통해 이러한 오류를 해결할 수 있습니다. 버그는 소비자 컴퓨터 프로그램에서는 불편하지만 보다 전문화된 컴퓨터 시스템에서는 훨씬 더 심각한 결과를 초래할 수 있습니다. 교통, 인프라, 금융과 같은 분야에서는 구문과 논리의 오류로 인해 생명과 생계가 위험해질 수 있습니다. 아마도 이러한 버그의 가장 두드러진 예는 소위 Y2K 버그일 것입니다. 이 버그는 2000년 1월 1일부터 수많은 컴퓨터 시스템에 영향을 미칠 것으로 예상되었습니다. 이 문제는 컴퓨터 프로그램에서 날짜가 기록되는 방식과 관련된 기존 관행으로 인해 발생했을 것입니다. 그러나 해당 문제를 방지하기 위해 영향을 받는 프로그램을 업데이트한 프로그래머의 작업을 통해 이는 대부분 방지되었습니다. 광범위한 Y2K 버그의 예에서 알 수 있듯이 사회 모든 영역에서 컴퓨터에 대한 의존도가 높아지면서 철저한 디버깅이 더욱 중요해졌습니다. 버그 식별 및 해결 디버깅 방법은 문제가 되는 컴퓨터 프로그램이나 시스템의 특성에 따라 다릅니다. 그러나 대부분의 경우 동일한 일반 프로세스를 통해 버그를 식별하고 해결할 수 있습니다. 언제

프로그래밍 및 코딩의 원리

장치 드라이버

버그가 처음 나타나면 프로그래머나 테스터는 먼저 오류의 결과와 오류가 발생하는 조건을 식별하기 위해 버그를 재현하려고 시도해야 합니다. 다음으로, 프로그래머는 프로그램 코드의 어느 부분이 오류를 발생시키는지 확인해야 합니다. 프로그램은 매우 복잡할 수 있으므로 프로그래머는 관련 없는 데이터를 최대한 제거하여 이 프로세스를 단순화해야 합니다. 코드의 잘못된 부분이 발견되면 프로그래머는 버그를 일으키는 특정 문제를 식별하고 수정해야 합니다. 원인이 오타나 구문 오류인 경우 프로그래머는 간단히 수정하면 됩니다. 논리 오류가 있는 경우 프로그래머는 프로그램이 논리적으로 작동하도록 코드의 일부를 다시 작성해야 할 수도 있습니다.

실제 디버깅 프로그래머는 프로그램을 디버깅하기 위해 다양한 도구를 사용합니다. 프로그램은 종종 복잡하고 길기 때문에 디버깅 프로세스의 일부를 자동화하는 것이 필수적인 경우가 많습니다. 자동화된 디버깅 프로그램 또는 "디버거"는 코드를 한 줄씩 검색하여 버그를 유발할 수 있는 구문 오류나 잘못된 논리를 검색합니다. 델타 디버깅이라는 기술은 프로그래머가 버그의 근본 원인을 찾을 때 관련 없는 정보를 필터링하는 자동화된 수단을 제공합니다. 다양한 유형의 프로그램이나 시스템에는 종종 다양한 디버깅 도구가 필요합니다. 회로 내 에뮬레이터는 테스트 중인 컴퓨터 시스템이 임베디드 시스템(즉, 더 큰 시스템 내에 위치한 시스템)이고 다른 방법으로는 액세스할 수 없는 경우에 사용됩니다. 의 형태

통합 테스트로 알려진 디버깅은 프로그램이 수많은 구성 요소로 구성될 때 자주 사용됩니다. 각 구성 요소는 자체적으로 테스트 및 디버깅된 후 서로 연결되어 하나의 단위로 테스트됩니다. 이렇게 하면 서로 다른 구성 요소가 함께 작동할 때 올바르게 작동할 수 있습니다.

역사적 기록 최초의 컴퓨터 버그는 오래된 진공관 컴퓨터 중 하나에 날아들어 스스로 튀겨지는 실제 버그(곤충)였습니다. 기술이 변경된 후에도 이름이 고정되었습니다. —Joy Crelin 참고문헌 Foote, Steven. 프로그래밍 학습. 어퍼 새들 리버: 피어슨, 2015. 인쇄. McCauley, 르네, 등. “디버깅: 교육적 관점에서 본 문헌 검토.” 컴퓨터 과학 교육 18.2(2008): 67–92. 인쇄. 마이어스, 글렌포드 J., 톰 배게트, 코리 샌들러. 소프트웨어 테스팅의 예술. 호보켄: 와일리, 2012. 인쇄. 세인트 저메인, H. 제임스 드. “디버깅 프로그램.” 유타대학교. 유타대학교, n.d. 편물. 2016년 1월 31일. “무엇이 잘못됐나요? 디버깅을 통해 오류를 찾고 수정합니다.” Microsoft 개발자 네트워크 라이브러리. 마이크로소프트, 2016. 웹. 2016년 1월 31일. 젤러, 안드레아스. 프로그램이 실패하는 이유: 체계적인 디버깅 가이드. 벌링턴: Kaufmann, 2009. 인쇄.

장치 드라이버 학습 분야 컴퓨터 공학; 소프트웨어 공학

의사소통이 필요할 수도 있습니다. OS에는 일부 장치 드라이버가 포함되어 있지만 컴퓨터에 새 장치를 추가할 때 이러한 드라이버를 설치할 수도 있습니다.

추상적인

주요 약관

장치 드라이버는 컴퓨터의 중앙 처리 장치(CPU)가 디스크 드라이브, 프린터 및 스캐너와 같은 주변 장치와 통신할 수 있도록 하는 소프트웨어 인터페이스입니다. 장치 드라이버가 없으면 컴퓨터의 운영 체제(OS)에는 해당 장치에 대한 모든 정보가 사전 설치되어 있어야 합니다.

장치 관리자: 컴퓨터 사용자가 컴퓨터에 설치된 장치 드라이버를 조작하고 드라이버를 추가 및 제거할 수 있는 응용 프로그램입니다. 입출력 명령어 : 컴퓨터의 중앙처리장치(CPU)가 사용하는 명령어 87

프로그래밍 및 코딩의 원리

장치 드라이버

CPU와 하드디스크 같은 장치 사이에 정보가 전송될 때. 인터페이스: 주변 장치의 하드웨어와 컴퓨터의 하드웨어 사이를 중재하는 장치 드라이버가 수행하는 기능입니다. 주변 장치: 컴퓨터에 연결되어 컴퓨터에서 사용되지만 프린터와 같이 컴퓨터의 일부는 아닌 장치입니다. 가상 장치 드라이버: 에뮬레이트된 하드웨어와 다른 장치 간의 통신을 처리하는 Windows 운영 체제에서 사용하는 장치 드라이버 유형입니다.

드라이브는 컴퓨터의 다른 하드웨어에 연결되어 있습니다. 장치 드라이버는 컴퓨터 구성 요소 간의 인터페이스 역할을 합니다. 프로그램이 컴퓨터에 연결된 주변 장치에 명령을 보내야 할 때 프로그램은 장치 드라이버와 통신합니다. 장치 드라이버는 장치가 수행하도록 요청받은 작업에 대한 정보를 받습니다. 이는 이 정보를 장치에 입력할 수 있는 형식으로 변환합니다. 그런 다음 장치는 요청된 작업을 수행합니다. 완료되면 메시지 또는 작업이 완료되었음을 알리는 간단한 표시로 드라이버에 전달되는 출력을 생성할 수 있습니다. 그런 다음 드라이버는 이 정보를 원래 프로그램이 이해할 수 있는 형식으로 변환합니다. 장치 드라이버는 컴퓨터와 주변 장치 간의 일종의 변환기 역할을 하며 둘 사이의 입력/출력 명령을 전달합니다. 따라서 컴퓨터 프로그램은 장치 기능을 만드는 데 필요한 모든 하위 수준 명령을 포함할 필요가 없습니다. 프로그램은 장치가 무엇을 하길 원하는지 장치 드라이버에게 알려줄 수만 있으면 됩니다. 장치 드라이버는 이를 구체적인 단계로 변환합니다.

장치 드라이버 작동 방법 장치 드라이버의 가장 큰 장점은 프로그래머가 해당 컴퓨터에 연결된 장치 유형에 관계없이 컴퓨터에서 실행되는 소프트웨어를 작성할 수 있다는 것입니다. 장치 드라이버를 사용하면 프로그램이 컴퓨터에 데이터를 하드 드라이브의 파일에 저장하도록 명령할 수 있습니다. 컴퓨터에 어떤 유형의 하드 드라이브가 설치되어 있는지 또는 하드 드라이브를 연결하는지에 대한 구체적인 정보는 필요하지 않습니다.

장치 드라이버

장치 드라이버

버스 기사 님

...

...

장치 컨트롤러/버스 드라이버

장치 드라이버

장치 드라이버

버스 기사 님

버스 기사 님

장치 컨트롤러

장치 컨트롤러

감시 장치

DVD 리더

CPU 마이크로 컨트롤러 장치 컨트롤러

생쥐

건반

...

장치 컨트롤러

...

CPU에 연결된 각 장치는 특정 장치(예: 키보드, 마우스, 모니터, DVD 리더)를 제어, 관리 및 모니터링하는 소프트웨어인 장치 드라이버에 의해 제어됩니다. 장치 드라이버는 장치를 구동하는 다른 소프트웨어(예: 시스템 관리 버스, 범용 직렬 버스 컨트롤러)도 구동할 수 있습니다.

88

프로그래밍 및 코딩의 원리

장치 드라이버를 만드는 방법 장치 드라이버를 작성하는 것은 매우 기술적인 작업입니다. 장치 드라이버를 생성할 때 실수가 발생하면 용서할 수 없다는 사실로 인해 더욱 어려워졌습니다. 이는 상위 수준 응용 프로그램이 컴퓨터의 모든 기능에 무제한으로 액세스할 수 없는 경우가 많기 때문입니다. 무제한 권한으로 잘못된 명령을 실행하면 컴퓨터 운영 체제(OS)에 심각한 손상을 초래할 수 있으며 경우에 따라 하드웨어에 심각한 손상을 초래할 수 있습니다. 이는 일반적으로 컴퓨터에 제한 없이 액세스할 수 있어야 하는 장치 드라이버에서 실제로 가능한 일입니다. 장치 드라이버를 작성하려면 많은 전문 정보가 필요하기 때문에 대부분의 장치 드라이버는 드라이버 개발을 전문으로 하고 하드웨어 제조업체에서 근무하는 소프트웨어 엔지니어가 만듭니다. 일반적으로 장치 제조업체는 장치와 장치가 제대로 작동하는 데 필요한 정보에 대해 가장 많은 정보를 갖고 있습니다. 이러한 추세의 예외는 오픈 소스 운동을 통해 달성된 엄청난 양의 드라이버 개발입니다. 전 세계의 프로그래머들은 Linux OS용 드라이버를 작성하기 위해 자신의 시간과 재능을 자원했습니다. 개발은 종종 논리적 장치 드라이버 개발과 물리적 장치 드라이버 개발로 구분됩니다. 논리 장치 드라이버 개발은 컴퓨터가 사용할 OS를 만든 사람이 수행하는 경향이 있습니다. 한편, 물리적 장치 드라이버 개발은 장치 제조업체에서 처리합니다. 이러한 업무 분업은 타당하지만 다양한 당사자 간에 표준과 관행을 공유하려는 조정과 의지가 필요합니다. 가상 장치 드라이버 가상 장치 드라이버는 기존 장치 드라이버의 변형입니다. 컴퓨터가 필요할 때 사용됩니다.

혁신의 확산

하드웨어를 에뮬레이트합니다. 이는 OS가 해당 운영 환경을 에뮬레이션하여 다른 OS용으로 생성된 프로그램을 실행할 때 자주 발생합니다. 한 가지 예는 DOS 프로그램을 실행하는 Windows OS입니다. DOS 프로그램이 연결된 프린터와 인터페이스해야 하는 경우 컴퓨터는 가상 장치 드라이버를 사용합니다.

장치 관리자 이제 대부분의 OS에는 사용자가 장치 드라이버를 보다 쉽게 ​​관리할 수 있도록 해주는 장치 관리자가 포함되어 있습니다. 이를 통해 사용자는 장치 문제를 진단하고, 문제를 해결하고, 드라이버를 업데이트하거나 설치할 수 있습니다. 장치 관리자의 그래픽 인터페이스를 사용하는 것은 드라이버 관련 작업을 수행하기 위해 텍스트 명령을 입력하는 것보다 덜 위협적입니다. —Scott Zimmer, JD 참고문헌 Corbet, Jonathan, Alessandro Rubini, Greg Kroah-Hartman. 리눅스 장치 드라이버. 3판 케임브리지: O'Reilly, 2005. 인쇄. 맥페드리즈, 폴. 컴퓨터 수리: 완전 초보자 가이드. 인디애나폴리스: Que, 2014. 인쇄. 뮬러, 스캇. PC 업그레이드 및 수리. 22판 인디애나폴리스: Que, 2015. 인쇄. 노어가드, 태미. 임베디드 시스템 아키텍처: 엔지니어와 프로그래머를 위한 종합 가이드. 2판 보스턴: Elsevier, 2012. 인쇄. 오윅, 페니, 가이 스미스. Windows Driver Foundation을 사용하여 드라이버 개발. 레드먼드: 마이크로소프트 P, 2007. 인쇄. “드라이버란 무엇인가?” 마이크로소프트 개발자 네트워크. 마이크로소프트, n.d. 편물. 2016년 3월 10일.

혁신 확산(DOI) 이론은 변화의 렌즈를 통해 혁신을 채택하는 프로세스를 연구하기 위한 프레임워크를 제공합니다. 변화가 왜, 얼마나 빨리 일어나는지에 대한 이야기를 들려줍니다. Everett Rogers의 1962년 저서인 Diffusion of Innovations는 혁신을 아이디어, 관행 또는 인지된 대상으로 정의합니다.

개인이나 문화에 따라 새로운 것으로 간주됩니다. 확산은 혁신이 시간이 지남에 따라 사회 시스템의 구성원들 사이에 전달되어 개인 또는 사회 변화를 가져오는 프로세스입니다. 혁신의 확산은 주로 기술 통합에 적용되며 다른 분야의 채택을 연구할 수 있는 길을 열어줍니다. 89

혁신의 확산

개요 Diffusions of Innovations 제5판에서 Rogers는 채택을 "가능한 최선의 조치로서 혁신을 최대한 활용하는 것"으로, 거부를 "혁신을 채택하지 않기로 한 결정"으로 설명합니다. DOI 이론의 네 가지 요소에는 혁신, 시간, 의사소통 채널, 사회 시스템이 포함됩니다. 혁신의 수용은 불확실성의 영향을 받습니다. 변화는 확산이 이루어지기까지 시간이 걸리는 느리고 불편한 과정일 수 있습니다.

Rogers(1962)에 따르면 혁신의 확산. 연속적인 소비자 그룹이 새로운 기술(파란색으로 표시)을 채택함에 따라 시장 점유율(노란색)은 결국 포화 수준에 도달하게 됩니다.

확산을 위해서는 전문적인 대인 커뮤니케이션 채널이 필요합니다. 사회 시스템은 궁극적으로 문화에 맞게 혁신을 수정하기로 결정합니다. Rogers는 채택률이 이전 기술에 비해 상대적 이점에 대한 다양한 인식, 기존 요구 사항과의 호환성, 복잡성 및 인식된 사용 어려움, 실험하고 혁신 결과를 확인할 수 있는 시험 가능성 및 관찰 가능성에 의해 영향을 받는다고 제안합니다. 채택률은 이러한 특성과 양의 상관관계가 있는 것으로 밝혀졌습니다. 혁신의 확산은 지식에서 시작하여 설득, 결정, 실행, 최종 확인의 단계로 이루어집니다. 지식은 신기술에 대한 사전 이해와 관련이 있습니다. 설득은 긍정적인 태도이다. 결정은 실행에 따른 약속과 밀접하게 연관되어 있습니다. 확인은 사용을 강화하는 긍정적인 결과에 의해 결정됩니다. 90

프로그래밍 및 코딩의 원리

DOI 이론이 제공하는 마지막 구성 요소는 채택자의 분류 구조입니다. 혁신가는 기술을 신속하게 수용하는 경향이 있으며, 변화를 쉽게 받아들이는 얼리 어답터가 그 뒤를 따릅니다. 또는 초기 다수 채택자는 일반적으로 더 많은 시간이 필요한 반면, 후기 다수 채택자는 공개적으로 회의론을 표현하지만 다수가 변화를 수용하면 결국 혁신을 받아들이게 됩니다. 현상 유지에 더 편안한 개인을 후발자라고 합니다. 채택 연구는 변화를 측정하기 위해 고안된 두 가지 인기 있는 도구의 개발에 불을 붙였습니다. 1973년 Gene Hall과 동료들은 기술 개발의 연속체에 따른 변화를 측정하는 우려 ​​기반 채택 모델(CBAM)을 개발했습니다. CBAM의 두 번째 차원은 우려의 단계(SoC)를 식별합니다. 여기서 우려는 개인을 내부 수용을 넘어 보다 글로벌한 관점으로 이동시키는 동기, 생각 및 감정의 강도로 개념화됩니다. Rogers의 이론적 틀은 혁신의 채택 과정과 속도에 대한 더 깊은 이해로 이어지는 가장 널리 사용되는 이론으로 남아 있습니다. 설명된 특성과 분류는 개인의 변화와 혁신을 사회 시스템에 수용하는 데 영향을 미치는 중추적인 요소입니다. —Mitzi P. Trahan, MA, PhD 참고문헌 Gollakota, Kamala, Kokila Doshi. “농촌지역 기술혁신 확산.” 기업시민저널 41(2011): 69–82. 인쇄. 홀, 진 E., R. C. 월리스, W. A. ​​도셋. 교육 기관 내 채택 과정의 발달적 개념화. 오스틴: 텍사스대학교, 1973년. 인쇄. Hebert, Dustin M. “교사 교육에서 전자 평가 시스템 채택에 영향을 미치는 혁신 확산 요인.” 전국 교사 교육 저널 5.2(2012): 35–44. 인쇄. 막사멘-콘래드(Magsamen-Conrad), 케이트(Kate) 등. "격차 해소: UTAUT를 사용하여 다세대 태블릿 채택 사례 예측." 인간 행동의 컴퓨터 50(2015): 186-196. 인쇄. 네오, 에밀리, 필립 J. 칼버트. “페이스북과 뉴질랜드 공공도서관의 혁신 확산.” 사서 및 정보과학 저널 44.4(2012): 227-37. 인쇄.

프로그래밍 및 코딩의 원리

정보 격차

파리넬로, 마이클. C. "비정형 항정신병 약물로 인한 대사 증후군 예방: 임상 실습에서 Rogers의 혁신 확산 모델 적용." 심리사회적 간호 및 정신 건강 서비스 저널 50.12(2012): 36–44. 인쇄. Rogers, Everett M. 혁신의 확산. 5판 뉴욕: 자유 언론, 2003. 인쇄. Sahin, Ismail I. “로저스의 혁신확산이론과 로저스의 이론을 바탕으로 한 교육공학 관련 연구에 대한 상세 고찰.” 터키 온라인 교육 기술 저널 5.2(2006): 14–23. PDF 파일. 시노하라, 카즈노리, 오쿠다 히로시. “동적 혁신 확산 모델링.” 전산경제학 35.1(2010): 51–62. 인쇄.

소퍼, 탈, 라피 나흐미아스, 주디스 램. “고등교육에서 웹 기반 수업의 확산 - 텔아비브 대학의 사례.” 교육 기술 및 사회 저널 13.3(2010): 212. 인쇄. Stummer, 크리스티안, 등. “경쟁 시장에서 반복 구매 제품의 혁신 확산: 에이전트 기반 시뮬레이션 접근 방식.” 유럽 ​​운영 연구 저널 245.1(2015): 157-167. 인쇄. 장, Xiaojun, 그 외 여러분. "혁신 확산 이론을 사용하여 소비자 E-Health 혁신의 환자 수용 및 사용에 영향을 미치는 요인 이해: 1차 의료 클리닉의 사례 연구." BMC 건강 서비스 연구 15.1(2015): 1–15. PDF 파일.

디지털 격차 인터넷 연결을 가능하게 하는 다양한 디지털 장치를 포함한 정보통신기술(ICT)의 출현은 사람들이 정보를 통신하고, 상호 작용하고, 학습하고, 생산하고, 유통하는 방식을 변화시켰습니다. ICT는 정보에 대한 접근을 민주화할 수 있는 잠재력으로 높이 평가되어 왔지만, ICT에 대한 접근 및 사용에는 심각한 격차가 존재합니다. 이러한 격차를 흔히 디지털 격차라고 합니다. 경제 및 기술 인프라를 기반으로 국가 간의 디지털 격차가 표면화됩니다. 이는 또한 한 국가 내에서 사회 계층, 교육, 위치(도시 또는 시골), 연령, 인종 및 민족적 배경이 다른 개인들 사이에서 나타납니다. 시간이 지남에 따라 디지털 격차의 정의는 기술 개발에 대한 접근뿐만 아니라 ICT 접근 및 사용까지 포함하도록 확대되었습니다.

개요 처음에 디지털 격차는 ICT에 접근할 수 있는 사람(가진 사람)과 접근할 수 없는 사람(없는 사람) 사이의 격차로 정의되었습니다. 저렴한 ICT 인프라 및 서비스에 대한 접근이 부족하거나 제한되어 있는 것은 국가 간 및 국가 내에서 디지털 격차가 커지는 원인으로 간주됩니다. 국가 내에서는 소득, 교육, 위치, 연령, 인종 및 민족에 따른 차이가 ICT와 인터넷 사용을 차별화하는 요소입니다. 예를 들어, 미국에서는

Pew Research Center의 2013년 데이터에 따르면 아메리카 인디언, 라틴계, 아프리카계 미국인 배경의 어린이 및 청소년은 백인 및 아시아계 미국인 배경의 어린이 및 청소년보다 기술에 대한 접근성이 현저히 낮은 것으로 나타났습니다. 농촌 지역 주민들은 집에서 컴퓨터에 접근할 가능성이 적습니다. ICT에 접근하고 이를 경험한 젊은이와 ICT에 접근하고 학습할 기회가 제한된 노년층 사이에는 세대 간 격차가 있습니다. 장애가 있는 사람과 스페인어를 모국어로 사용하는 사람도 인터넷을 전혀 사용할 가능성이 전혀 없으며, 집에서 인터넷에 접속할 수 있는 사람만 보면 그 격차가 더욱 커집니다. 그러나 더 높은 수준의 접근 및 사용에 가장 중요한 요소는 더 높은 소득 및 교육 수준입니다. 디지털 격차는 불평등의 새로운 환경을 식별합니다. 어릴 때나 자주 ICT에 접근할 수 없는 사람들은 불리한 입장에 있습니다. 그들은 언론 보도, 의료 정보, 학습 기회를 포함한 정보에 대한 접근이 제한될 뿐만 아니라 현재 의사소통 방법에 대한 접근도 제한됩니다. 비용, 부적절한 컴퓨터 기술, 관심 부족 등은 사람들의 인터넷 연결 끊김과 관련된 몇 가지 요인입니다. 이에 대해 학자들은 두 번째 종류의 분열을 연구하고 있습니다.

정보 격차

프로그래밍 및 코딩의 원리

디지털 격차(그림 1 참조) 연도가 없는 카드입니다.

ICT 기술과 기술 개발의 차이를 디지털 격차 확대의 속성으로 포함합니다. ICT에 대한 접근, 사용 및 기술은 그룹, 커뮤니티 및 국가 전반에 걸쳐 동등하게 발전하지 않습니다. ICT에 대한 가용성, 접근성 및 경험 부족은 결과적으로 발전하는 사고 및 실무 기술과 함께 공공 서비스 부족과 기술 자원 부족으로 인해 방해를 받습니다. 교육 환경은 다음 중 하나에 위치합니다. (1) 예를 들어 교육자가 ICT를 사용하여 가르칠 준비와 지원이 부족한 경우 분열을 촉진합니다. 또는 (2) 예를 들어 교육과 학습을 위한 방법으로 ICT 사용이 교실 실습 전체에 통합될 때 어린이와 청소년이 이를 극복할 수 있도록 합니다. 교육 정책과 관행은 92세를 지원하는 방식으로 변화하고 있습니다.

교실에서 ICT를 효과적으로 사용하고 학생들이 디지털화된 세상의 혜택을 누리고 함께 성장할 수 있도록 지원합니다. 그러나 가용성, 접근성, 기술이 학교 안팎의 모든 사람에게 동등하게 제공될 때까지는 디지털 격차가 존재할 가능성이 높습니다. —Hitaf R. Kady, MA 및 Jennifer A. Vadeboncoeur, MA, PhD 참고문헌 Creeber, Glen 및 Royston Martin, eds. 디지털 문화: 뉴미디어 이해. 버크셔: Open UP, 2009. 인쇄. 파일, 톰. “미국의 컴퓨터 및 인터넷 사용: 인구 특성.” 인구 조사. 정부 미국 상무부, 2013. PDF 파일.

프로그래밍 및 코딩의 원리

그레이엄, 마크. “지식 기반 경제와 디지털 노동 분업.” 개발 연구의 동반자. 에드. V. Desai와 R. Potter. 3판 런던: 루트리지, 2014. 189-95. 인쇄. 켈너, 더글러스. “뉴미디어와 새로운 문해력: 새천년을 위한 교육 재구성.” 뉴미디어 핸드북: ICT의 사회적 형성과 결과. Eds. 레아 리브루(Leah Lievrouw)와 소니아 리빙스턴(Sonia Livingstone). 천 오크스: 세이지, 2002. 인쇄. 빛, 제니퍼. “디지털 격차를 다시 생각해 보세요.” 하버드 교육 리뷰 71.4(2001): 709–33. 인쇄. Looker, 다이앤, 빅터 티센. “캐나다 학교의 디지털 격차: 학생의 정보 기술 접근 ​​및 사용에 영향을 미치는 요인.” 캐나다 통계청. 캐나다 통계청, 2003. PDF 파일. 민성재. “정보격차에서 민주격차까지: 인터넷 기술, 정치적 관심, 정치적 인터넷 사용의 2차 디지털 격차.” 정보 저널

디지털 포렌식

기술과 정치 7(2010): 22–35. 테일러 앤 프란시스 온라인. PDF 파일. Nair, Mahendhiran, Mudiarasan Kuppusamy 및 Ron Davison. “글로벌 정보 격차 문제에 관한 종단적 연구: 국가 간 디지털 격차 해소 전략.” 비즈니스 리뷰 캠브리지 4.1(2005): 315–26. PDF 파일. 국립통신정보청. “디지털 국가: 인터넷 사용 확대.” 국립통신정보청. 미국 상무부, 2011. PDF 파일. 레이니, 리. “디지털 격차의 상태.” 퓨리서치 인터넷 프로젝트. 퓨 리서치 센터(Pew Research Center), 2013년 11월 5일. 웹. 2014년 11월 11일. Tatalovic', Mic'o. “휴대폰이 어떻게 디지털 격차를 증가시켰는가.” SciDev.Net. SciDev.Net, 2014년 2월 26일. 웹. 2014년 11월 11일. van Deursen, Alexander, Jan van Dijk. “인터넷 기술과 디지털 격차.” 뉴미디어와 사회 13.6(2010): 893-911. PDF 파일.

디지털 포렌식 연구 분야 정보 기술; 시스템 분석; 개인 정보 보호 개요 디지털 포렌식은 저장된 디지털 데이터를 연구하는 과학 분야입니다. 이 분야는 1990년대에 등장했지만 2000년대까지 국가 표준을 개발하지 못했습니다. 디지털 기술의 발전으로 인해 디지털 포렌식 기술은 빠르게 변화하고 있습니다. 주요 용어 사이버 범죄: 컴퓨터 해킹, 디지털 불법 복제, 맬웨어나 스파이웨어 사용 등 범죄를 저지르기 위해 컴퓨터를 표적으로 삼거나 컴퓨터 또는 컴퓨터 네트워크를 사용하는 범죄입니다. 전자 통신 개인 정보 보호법: 컴퓨터 간에 또는 컴퓨터 네트워크를 통해 전자적으로 전송되는 정보의 검색 또는 가로채기를 포함하도록 도청 제한을 확대한 1986년 법률입니다.

논리적 복사본: 일반적으로 여유 공간과 파일 잔여물과 같은 아티팩트를 제외하고 원본과 다른 구성으로 활성 데이터와 파일을 캡처하는 하드 드라이브 또는 디스크의 복사본입니다. 원본과 크기 및 구성이 동일한 정확한 복사본인 실제 복사본과 대조됩니다. 메타데이터: 작성자 정보, 조직 정보, 데이터 생성 방법 및 시기 등 다른 데이터에 대한 정보가 포함된 데이터입니다. 디지털 증거에 관한 과학 실무 그룹(SWGDE): 디지털 포렌식 시스템, 지침, 기술 및 표준 개발에 관심이 있는 다양한 학술 및 전문 조직의 미국 협회입니다.

진화하는 과학 디지털 포렌식은 일반적으로 범죄 수사에서 디지털 데이터를 복구하고 연구하는 과학입니다. 디지털 포렌식 과학을 사용하여 수사 93

프로그래밍 및 코딩의 원리

디지털 포렌식

컴퓨터 포렌식

모바일 포렌식

컴퓨터 네트워크 포렌식

디지털 포렌식

법의학 데이터 분석

데이터베이스 포렌식

소셜 네트워크 포렌식

디지털 포렌식에는 컴퓨터 포렌식, 모바일 포렌식, 컴퓨터 네트워크 포렌식, 소셜 네트워킹 포렌식, 데이터베이스 포렌식, 포렌식 데이터 분석 또는 대규모 데이터 포렌식 분석이 포함됩니다.

사이버 범죄. 이러한 범죄는 컴퓨터 시스템의 사용을 표적으로 삼거나 관련됩니다. 예로는 신원 도용, 디지털 불법 복제, 해킹, 데이터 도용, 사이버 공격 등이 있습니다. 1998년에 결성된 디지털 증거에 관한 과학 실무 그룹(SWGDE)은 업계 지침, 기술 및 표준을 개발합니다.

디지털 포렌식 정책 디지털 포렌식은 범죄 수사에서 디지털 데이터의 중요성이 커지면서 1980년대 중반에 등장했습니다. 최초의 사이버 범죄는 1970년대 초반에 발생했습니다. 이 시대에는 "해킹", 즉 컴퓨터 시스템에 대한 무단 액세스가 출현했습니다. 디지털 포렌식 데이터의 최초 문서화된 사용 중 일부는 해킹 조사에서였습니다. 1986년 ECPA(전자 통신 개인 정보 보호법) 이전에는 디지털 데이터나 통신이 법으로 보호되지 않았으며 법 집행 기관이 수집하거나 가로챌 수 있었습니다. ECPA는 개인 통신에 있어서 디지털 데이터의 중요성이 커지는 것을 다루기 위해 1990년대와 2000년대에 여러 차례 개정되었습니다. 2014년 대법원은 경찰이 범죄 혐의로 체포된 피의자의 휴대전화를 수색하기 전에 영장을 발부받아야 한다고 판결했다. 94

디지털 포렌식 기술 포렌식 조사관이 압수되었거나 합법적으로 획득한 장비에 접근할 수 있게 되면 포렌식 이미징을 시작할 수 있습니다. 이 프로세스에는 장치 하드 드라이브의 변경되지 않은 복사본 또는 포렌식 이미지를 만드는 작업이 포함됩니다. 포렌식 이미지는 드라이브의 구조, 모든 내용, 원본 파일에 대한 메타데이터를 기록합니다. 포렌식 이미지는 "물리적 사본"이라고도 합니다. 컴퓨터 데이터를 복사하는 방법에는 물리적 복사와 논리적 복사의 두 가지 주요 방법이 있습니다. 물리적 복사본은 비어 있거나 삭제되었거나 조각난 데이터를 포함하여 특정 드라이브에 있는 모든 데이터를 복제하여 원래 구성으로 저장합니다. 이와 대조적으로 논리적 복사본은 활성 데이터를 복사하지만 삭제된 파일, 조각 및 빈 공간을 무시합니다. 이렇게 하면 데이터를 더 쉽게 읽고 분석할 수 있습니다. 그러나 관련 데이터에 대한 완전한 그림을 제공하지 못할 수도 있습니다. 영상을 촬영한 후 법의학 조사관은 영상화된 데이터를 분석합니다. 그들은 우발적인 데이터 손실을 방지하기 위해 많은 디지털 장치에 저장되어 있는 조각이나 백업 데이터를 사용하여 삭제된 파일을 복구하기 위해 특수 도구를 사용할 수 있습니다. 자동화된 프로그램을 사용하면 이미지 데이터를 검색하고 정렬하여 유용한 정보를 찾을 수 있습니다. (검색 및 정렬은 포렌식 프로세스에 매우 중요하므로 디지털 포렌식 조직은 더 나은 검색 및 정렬 알고리즘에 대한 연구에 투자합니다.) 심사관이 관심을 가질 수 있는 정보에는 이메일, 문자 메시지, 채팅 기록, 재무 파일 및 다양한 유형의 컴퓨터 코드가 포함될 수 있습니다. 분석에 사용되는 도구와 기술은 주로 범죄에 따라 달라집니다. 이러한 전문가들은 조사 중에 수집된 데이터를 해석하는 임무를 맡을 수도 있습니다. 예를 들어, 그들은 자신의 조사 결과를 경찰에 설명하거나 재판 중에 설명하라는 요청을 받을 수 있습니다. 미래를 위한 과제 디지털 포렌식은 빠르게 변화하는 디지털 기술에 뒤처지는 신흥 분야입니다. 예를 들어, 클라우드 컴퓨팅은 데이터 저장 및 처리가 여러 컴퓨터 또는 서버에 분산되는 상당히 새로운 기술입니다. 2014년에 미국 국립표준기술연구소(National Institute of Standards and Technology)는 클라우드 컴퓨팅과 관련하여 해결해야 할 65가지 과제를 확인했습니다. 이러한 과제에는 기술적 문제와 법적 문제가 모두 포함됩니다. SWGDE는 조사관이 변화에 보조를 맞추면서 효과적으로 데이터를 검색하고 분석할 수 있는 도구와 표준을 만들기 위해 노력합니다.

프로그래밍 및 코딩의 원리

기술. 또한 개인의 권리와 사생활을 보호하기 위해 설정된 경계 내에서 조사가 이루어지도록 법적 권리 단체와 협력해야 합니다. 각 법의학 조사에는 언론 및 표현의 자유를 보장하거나 불법적인 수색 및 압수를 금지하는 법률에 따라 보호될 수 있는 개인 통신 및 데이터에 대한 액세스가 포함될 수 있습니다. SWGDE와 법 집행 기관은 디지털 법의학이 계속 발전할 수 있도록 하면서 이러한 문제를 해결하기 위해 기존 개인 정보 보호 및 감시 법률의 변경에 대해 논의하고 있습니다. —Micah L. Issitt 참고문헌 “디지털 증거 및 법의학.” 국립법무연구소. 법무부 프로그램, 2015년 10월 28일. 웹. 2016년 2월 12일.

디지털 도서관

고골린, 그렉. 디지털 포렌식 설명. 보카 레이톤: CRC, 2013. 인쇄. Holt, Thomas J., Adam M. Bossler 및 Kathryn C. Seigfried-Spellar. 사이버 범죄 및 디지털 포렌식: 소개. 뉴욕: 루트리지, 2015. 인쇄. 폴릿, 마크. “디지털 포렌식의 역사.” 디지털 포렌식 VI의 발전. 에드. Kam-Pui Chow와 Sujeet Shenoi. 베를린: Springer, 2010. 3–15. 인쇄. 새먼스, 존. 디지털 포렌식의 기본: 디지털 포렌식을 시작하기 위한 입문서. 월섬: Syngress, 2012. 인쇄. 신더, 뎁. “그래서 당신은 컴퓨터 포렌식 전문가가 되고 싶은 거죠.” TechRepublic. CBS Interactive, 2010년 12월 27일. 웹. 2016년 2월 2일.

디지털 도서관 1990년대 초, 수세기에 걸친 종이 유물과 문서를 컴퓨터 데이터베이스로 디지털화할 수 있는 가능성으로 인해 전통적인 도서관 시스템이 처음 활성화되었을 때 도서관 과학자들은 디지털화된 자료의 글로벌 네트워크가 곧 실현될 것이라고 믿었습니다. 이 거대한 디지털 도서관은 개별 사용자가 언제 어떤 컴퓨터에서든 접근할 수 있게 되므로 도서관이 특정 지역 사회에 서비스를 제공하는 공공 건물이라는 개념이 더 이상 쓸모 없게 됩니다. 그러나 그 대담한 비전은 결실을 맺기에는 상당한 도전이었습니다. 시스템, 시스템 링크, 데이터베이스를 고안하고 디지털 도서관을 만들기 위해 아카이브를 축적하는 일을 맡은 컴퓨터 소프트웨어 전문가와 도서관 과학자들은 목표를 달성하려면 21세기 초에도 여전히 해결되지 않은 수많은 복잡성을 극복해야 한다는 것을 깨달았습니다.

개요 이용 가능한 모든 정보, 문서, 전문 출판물 및 데이터 아카이브가 디지털 라이브러리인 것은 아닙니다. 이 정의에 따르면 모든 인터넷 검색 엔진이 자격을 갖추게 됩니다. 대신, 전통적인 도서관과 마찬가지로 디지털 도서관은 장기 보관 및 보존이라는 전통적인 기능 외에도 자료 정리를 강조합니다.

디지털 도서관은 전통적인 도서관의 범위를 확장하기 위한 중요한 전략을 제공하며, 공공 및 대학 도서관은 수세기에 걸친 인쇄 자료를 디지털 형식으로 변환하기 위한 지속적인 프로젝트에 참여하는 것 외에도 이용자가 사용할 수 있도록 정기적으로 글로벌 데이터베이스를 구독합니다. 도서관 과학이 디지털 컬렉션의 가능성을 따라잡는 과정에 있지만, 디지털화해야 하는 자료(상대적으로 빠르고 저렴하며 기본적으로 1990년 이전의 모든 출판물에 적용할 수 있는 프로세스) 간에 구별이 확립되었습니다. 그리고 “디지털로 태어난” 재료들. 디지털 도서관용 템플릿 개발을 담당한 사람들은 중앙 디지털 도서관이 없고 단순히 데이터베이스와 아카이브를 연결하는 링크만 있을 것이라는 점을 고려할 때 전 세계 사용자가 효율적이고 투명하게 액세스할 수 있도록 끊임없이 증가하는 자료 본체를 구성해야 하는 가상 시스템의 필요성을 강조합니다. 세계 각국. 이러한 시스템

세계디지털도서관 로고.

95

프로그래밍 및 코딩의 원리

디지털 네이티브

종종 위협적인 정보 네트워크를 통해 사용자를 원활하게 이동시키려면 잘 훈련된 전문가가 필요합니다. 디지털 도서관의 개발은 건축학적으로 건전하고 상호 연관된 시스템 네트워크의 상부 구조 설계, 자료 복제 및 배포에 대한 기존 국제 저작권법 재작성, 메타데이터(즉, 설명하고 보관할 수 있는 데이터) 생성 등 여러 가지 중요한 과제를 제기합니다. 기존 카드 카탈로그나 색인과 마찬가지로 기본 자료를 카탈로그화하는 데 사용됩니다. 또한 도서관은 서적, 정기 간행물과 같은 전통적인 인쇄 자료뿐만 아니라 영화, 음악, 정부 기록, 과학 및 연구 데이터를 포함하여 끊임없이 확장되는 데이터를 따라잡아야 합니다. 이론적으로 무제한의 디지털 도서관을 조정하고, 각 도서관은 이용 가능한 자료의 특정 영역을 저장 및 구성하고, 디지털 사서의 도움을 받아 해당 네트워크를 사용자가 접근할 수 있는 범위 내에 두는 것이 도서관 과학자와 컴퓨터 엔지니어에게 남아 있는 과제입니다. —Joseph Dewey, MA, PhD

참고문헌 칸델라, 레오나르도, 도나텔라 카스텔리, 파스콸레 파가노. “디지털의 역사, 진화, 영향

도서관.” 전자 출판 및 디지털 도서관: 법적 및 조직적 문제. 에드. 이오안니스 이글레자키스, 타티아나-엘레니 시노디노우, 사란토스 카피다키스. 허쉬: IGI 글로벌, 2011. 1–30. 인쇄. Chowdhury, G. G. 및 Schubert Foo, eds. 디지털 도서관 및 정보 접근: 연구 관점. 뉴욕: 닐, 2012. 인쇄. Goodchild, Michael F. “알렉산드리아 디지털 도서관 프로젝트: 검토, 평가 및 전망.” 정보 관리 동향 1.1(2005): 20–25. 편물. 2013년 8월 21일. Jeng, Judy. “디지털 도서관의 맥락에서 유용성은 무엇이며 어떻게 측정할 수 있나요?” 정보 기술 및 도서관 24.2(2005): 47–56. 편물. 2013년 8월 21일. Lesk, Michael. 디지털 도서관의 이해. 2판 샌프란시스코: 모건, 2004. 인쇄. 맥머도, 토마스, 버디 맥레넌. “버몬트 디지털 신문 프로젝트와 전국 디지털 신문 프로그램: 장기적인 디지털 신문 접근 및 보존을 위한 협력 노력.” 도서관 자원 및 기술 서비스 57.3(2013): 148–63. 편물. 2013년 8월 21일. Reese, Terry, Jr., Kyle Banerjee. 디지털 도서관 구축: 사용 방법 매뉴얼. 뉴욕: 닐, 2008. 인쇄. 이, 에스더. “세계의 도서관을 온라인으로 만들기 위한 탐구 내부.” 대서양. Atlantic Monthly Group, 2012년 7월 26일. 웹. 2013년 8월 21일.

디지털 네이티브(Digital Native) 디지털 네이티브는 디지털 기술이 등장하는 정보화 시대 또는 그 이후에 태어난 사람을 말합니다. '디지털 네이티브'라는 용어는 가장 일반적으로 20세기 말에서 21세기에 태어난 사람들을 지칭합니다. 디지털 네이티브는 어릴 때부터 디지털 기술과 교류하기 시작했으며, 인터넷, 휴대폰, 컴퓨터 등 도구가 없는 삶에 익숙하지 않습니다. 디지털 네이티브(종종 밀레니얼, Y세대, Z세대로 식별됨)는 디지털 기술이 널리 보급되기 전에 태어나 나중에 디지털 기술을 채택해야 했던 디지털 이민자와 대조됩니다. 96

개요 "디지털 네이티브"라는 용어는 2001년 작가 Marc Prensky가 On the Horizon 저널에 실린 교육 분야의 새로운 문제에 대한 기사에서 만들어졌습니다. 그는 또한 같은 기사에서 "디지털 이민자"라는 용어를 만들었습니다. 기사에서 그는 교육의 변화하는 성격(학생은 디지털 기술을 중심으로 성장한 반면 교사는 그렇지 않음)과 그것이 교육 시스템에 어떤 영향을 미치는지에 대해 썼습니다. 그는 불연속성이 학생들의 비판적 사고와 정보 처리 방식을 변화시켰고, 이로 인해 학생들과 새로운 환경에 적응해야 하는 교사 사이의 격차가 더 벌어졌다고 주장했습니다.

프로그래밍 및 코딩의 원리

디지털 네이티브 교육을 위한 다양한 접근 방식(Wikipedia)

Prensky는 또한 디지털 이민자들이 구시대적인 언어와 행동을 혼합한 "악센트"를 유지하는 경우가 많아 새 것과 오래된 것을 조화시키려는 그들의 노력을 강조한다고 지적했습니다. 디지털 네이티브의 주요 특성은 병렬 프로세스와 멀티태스킹을 통해 정보를 신속하게 수신하고 동시에 많은 일을 수행하는 능력입니다. 형성기를 통해 이러한 기술에 익숙해진 디지털 네이티브는 교사인 디지털 이민자와 학습 프레임워크가 완전히 다릅니다. 이는 학생이 동시에 TV를 읽고 시청할 수 있는 것처럼 간단할 수도 있고, 교육의 의사소통, 네트워킹 및 연결과 관련된 훨씬 더 넓은 범위일 수도 있습니다. 또 다른 관련 문제는 원주민의 관심과 이민자의 방법론 간의 단절입니다. 교육을 넘어, 디지털 네이티브의 개념은 더 넓은 의미에서 인구통계학적, 세대적 차이와 관련되어 왔습니다. 때때로 "아날로그 대 디지털"이라고 불리는 두 그룹 간의 차이는 기술 개발이 계속해서 가속화됨에 따라 점점 더 중요해지고 있습니다. 디지털 네이티브는 새로운 것을 사용하는 방법을 직관하기 위해 이전 경험을 활용하여 거의 본능적으로 새로운 기술에 적응합니다. 디지털 이민자들은 따라잡기 위해 애쓰는 경우가 많으며 시도할 때 실패하는 경우가 많습니다.

디지털 네이티브

보다 전통적인 사고 스타일을 새로운 상황에 적용합니다. 디지털 격차로 알려진 디지털 원주민과 디지털 이민자 사이의 격차는 전 세계적으로 조사할 때 더 많은 의미를 갖습니다. 개발도상국의 빈곤은 연결된 것과 단절된 것 사이의 이러한 격차를 보여주는 강력한 예이며, 이는 단지 세대의 문제가 아니라 점점 더 확대되는 문제가 될 위험이 있음을 분명히 보여줍니다. 그러나 디지털 네이티브의 개념에는 논란이 없지 않습니다. 일부 비평가들은 디지털 기술의 사용법을 배우는 것이 단순히 접근권과 문화적 자본의 문제라고 지적합니다. 2015년 저서 The New Digital Natives: Cutting the Chord에서 Dylan Seychell과 Alexiei Dingli는 1세대 디지털 네이티브와 2세대 디지털 네이티브(2DN)를 구분합니다. 1세대 디지털 네이티브는 스마트폰, 태블릿, 소셜 네트워킹, Wi-Fi 및 노트북이 널리 보급되기 전에 성장했습니다. 이들의 웹 액세스는 마우스를 사용하거나 읽을 수 있을 때만 시작되었습니다. 2DN과 달리 이들 중 다수는 유아 때 처음으로 터치스크린을 통해 웹에 액세스했습니다. —켈리 코비엘로

참고문헌 Bennett, Sue, K. Maton. "'디지털 네이티브' 논쟁을 넘어: 학생들의 기술 경험에 대한 보다 미묘한 이해를 향하여." 컴퓨터 보조 학습 저널 26.5(2010): 321-31. 인쇄. Bittman, Michael, Leonie Rutherford, Jude Brown 및 Lens Unsworth. “디지털 네이티브? 새롭고 오래된 미디어와 어린이의 결과.” 호주 교육 저널 55.2 (2011): 161–75. 인쇄. Dingli, Alexiei, Dylan Seychell. 새로운 디지털 원주민: 화음을 끊다. 하이델베르그: Springer, 2015. eBook 컬렉션(EBSCOhost). 편물. 2015년 6월 19일. Joiner, Richard 외. “1세대와 2세대 디지털 네이티브의 인터넷 사용, 인터넷 불안 및 인터넷 식별 비교.” 사이버심리학, 행동 및 소셜 네트워킹 16.7(2013): 549–52. 인쇄. 존스, 크리스. “새로운 세대의 학습자? 인터넷 세대와 디지털 네이티브.” 학습, 미디어 및 기술 35.4(2010): 365–68. 인쇄. 97

프로그래밍 및 코딩의 원리

디지털 사진

펜틀랜드, 알렉스. “데이터 중심 사회.” 사이언티픽 아메리칸 309.4(2013): 78–83. 인쇄. Ransdell, Sarah, Brianna Kent, Sandrine GaillardKenney 및 John Long. “디지털 이민자는 사회적 의존으로 인해 디지털 원주민보다 더 나은 삶을 살아갑니다.” 영국 교육 기술 저널 42.6(2011): 931-38. 인쇄.

테오, 티모시. “디지털 네이티브 평가 척도(DNAS)의 초기 개발 및 검증.” 컴퓨터 및 교육 67(2013): 51–57. 인쇄. 톰슨, 페니. “학습자로서의 디지털 네이티브: 기술 사용 패턴 및 학습 접근 방식.” 컴퓨터 및 교육 65(2013): 12–33. 인쇄.

디지털 사진 문자가 있기 오래 전에 사람들은 수만 년 전의 암벽화와 판화 형태로 그림에 이야기를 기록했습니다. 대부분의 역사를 통틀어 장면을 기록하거나 상세한 이미지를 생성하는 것은 힘들고 시간 집약적인 과정이었습니다. 예술가들은 스케치를 바탕으로 그림과 에칭을 만들었습니다. 카메라의 발명으로 이러한 예술적 재능이 없는 사람들도 이미지를 기록할 수 있게 되었습니다.

배경 최초의 카메라는 유리나 금속판, 화학 물질 및 기타 장비가 필요한 크고 번거로운 도구였습니다. 1884년 조지 이스트먼(George Eastman)은 대형 판을 대체할 필름 기술을 도입했습니다. 16년 후인 1900년에 그가 설립한 회사인 Kodak은 모든 사람이 간단하면서도 효과적인 작은 카메라인 브라우니로 사진을 찍을 수 있게 했습니다. 디지털 사진은 일반 대중이 사진 이미지를 생산할 수 있도록 하는 다음 단계였습니다.

Cromemco Cyclops: 고체 영역 이미지 센서를 탑재한 최초의 완전 디지털 카메라.

98

쉽게. 1975년에 Cromemco는 상업적으로 이용 가능한 디지털 카메라인 Cyclops를 출시했습니다. 그러나 사용된 기술의 대부분은 다른 제품에 활용되었습니다. 개발이 훨씬 일찍 시작되었지만 1970년대 프로토타입이 등장하면서 시장에 널리 보급된 최초의 디지털 카메라는 스위스 기술 회사인 Logitech이 1990년에 출시한 Dycam Model 1이었습니다.

개요 디지털 카메라는 전자 광검출기를 사용하여 이미지를 캡처합니다. 빛과 광학(렌즈)의 과학은 기존 필름 카메라와 거의 동일하지만 감광 필름을 사용하지 않고 이미지가 전자적으로 저장됩니다. 전자 이미지는 RGB 색상 공간(빨간색, 녹색 및 파란색의 색조를 다양한 정도로 결합하여 가능한 모든 색상을 형성할 수 있음) 또는 원시 데이터(때때로 디지털 네거티브라고도 함)로 저장되며 다음을 포함한 모든 사진 메타데이터를 저장합니다. 빛, 색상, 채도, 화이트 밸런스, 대비 및 선명도. 원본 이미지를 저장할 수 있는 카메라의 장점은 디지털 네거티브에 훨씬 더 많은 정보가 포함되어 있어 사진 편집 중에 더 높은 품질과 더 정확한 사진을 생성할 수 있다는 것입니다. 두 경우 모두 이미지는 솔리드 스테이트 디지털 메모리 장치에 저장됩니다. 디지털 이미지의 기술적(미적 품질이 아닌) 품질은 여러 요인에 따라 달라집니다. 하나는 픽셀 수입니다. 즉, 주어진 공간 내 빨간색, 녹색 또는 파란색 이미지 포인트의 수입니다. 최신 카메라는 수백만 개의 픽셀(1메가픽셀 = 1,000,000픽셀)을 포함하는 이미지를 기록합니다. 카메라 제조업체와 공급업체는 메가픽셀을 인용하는 것을 좋아합니다. 이 숫자는 소비자에게 도움이 될 수 있지만

프로그래밍 및 코딩의 원리

카메라를 비교하면, 전체 영역이 아닌 사진의 한 축을 따라 있는 픽셀 수는 사진의 품질을 결정하는 데 훨씬 더 정확한 요소입니다. 선형 해상도가 증가할 때마다 전체 해상도의 제곱이 되기 때문입니다. 디지털 카메라는 기존 필름 카메라에 비해 많은 장점을 가지고 있습니다. 첫째, 사진가는 필름 롤의 노출 수 제한에 의존하지 않고 쉽게 많은 사진을 찍을 수 있습니다. 디지털 카메라를 사용하면 사진가는 즉시 이미지를 보고 장면을 다시 촬영해야 하는지 여부를 결정할 수 있습니다. 마지막으로, 디지털 사진을 사용하면 사진가는 Adobe Photoshop 또는 Lightshop과 같은 사진 편집 프로그램에서 사진을 편집하여 사진의 색상과 음영의 동적 범위를 끌어내 더 세부적인 부분을 드러낼 수 있습니다. 일부 사진작가들은 심미적인 목적으로 사진 편집을 사용하여 사진의 빛, 색조, 질감을 변경하기도 합니다. 사진 세계에는 전통적인 필름(및 전통적인 사진 현상)의 따뜻함을 선호하는 순수주의자들이 있습니다. 마찬가지로 음악 세계에는 비닐 녹음의 따뜻함과 다이내믹 레인지를 선호하는 오디오 애호가들이 있습니다. 디지털 사진은 결코 전통적인 아날로그 사진을 대체할 수 없지만 둘은 쉽게 공존할 수 있습니다. 카메라 기술의 발전이 계속됨에 따라 카메라 산업도 계속 발전하고 있습니다.

디지털 신호 프로세서(DSP)

참고문헌 앙, 톰. 디지털 사진 필수품. 뉴욕: DK, 2011. 인쇄. ______. 디지털 사진 마스터클래스. 뉴욕: DK, 2013. 인쇄. ______. 모든 것을 사진에 담는 방법: 디지털 카메라로 성공적인 사진을 찍으세요. 뉴욕: DK, 2009. 인쇄. 코튼, 샬럿. 현대미술로서의 사진. 런던: 템즈, 2009. 인쇄. 데이비스, 해롤드. 디지털 사진가의 길: 더욱 창의적인 사진을 향한 Photoshop 후반 작업 과정을 살펴보세요. 샌프란시스코: 피치핏(Peachpit), 2013. 인쇄. 호렌스타인, 헨리. 디지털 사진: 기본 매뉴얼. 보스턴: 리틀, 2011. 인쇄. 켈비, 스콧. 디지털 사진 책: 1부. 2판 샌프란시스코: 피치핏(Peachpit), 2013. 인쇄. 쉐웨, 제프. 디지털 네거티브: Lightroom, Camera Raw 및 Photoshop의 Raw 이미지 처리. 샌프란시스코: 피치핏(Peachpit), 2012. 인쇄. ______. 디지털 인쇄: Lightroom 및 Photoshop에서 인쇄용 이미지 준비. 샌프란시스코: 피치핏(Peachpit), 2013. 인쇄. 셰퍼드, 롭. 디지털 사진: 단순화된 100가지 팁과 요령. 인디애나폴리스, 인디애나: Wiley, 2010. 인쇄.

—다니엘 L. 베렉(매사추세츠주, MAT)

디지털 신호 프로세서(DSP) 연구 분야

주요 약관

컴퓨터 과학; 정보 기술; 네트워크 설계

고정 소수점 산술: 소수점 앞과 뒤에 정의된 자릿수가 있는 숫자를 포함하는 계산입니다. 부동 소수점 산술: 과학적 표기법에서 수행되는 것과 같이 소수점과 지수가 있는 숫자를 포함하는 계산입니다. Harvard 아키텍처: 데이터와 명령을 위한 물리적으로 구별되는 저장 위치와 신호 경로를 갖는 컴퓨터 설계입니다. 승산기-누산기: 수학적 연산을 수행하는 컴퓨터 하드웨어 부분

개요 디지털 신호 프로세서(DSP)는 특수 기능을 위해 설계된 마이크로프로세서입니다. DSP는 아날로그 신호와 함께 출력을 지속적으로 모니터링하는 데 사용되며 종종 신호 필터링 또는 측정과 같은 추가 기능을 수행합니다. DSP의 장점 중 하나는 한 번에 둘 이상의 명령이나 데이터를 처리할 수 있다는 것입니다.

99

프로그래밍 및 코딩의 원리

디지털 신호 프로세서(DSP)

아날로그 입력 신호

A/D 변환기

디지털 입력 신호

디지털 신호 프로세서

디지털 출력 신호

D/A 변환기

아날로그 출력 신호

이것은 아날로그-디지털 처리 시스템의 블록 다이어그램입니다. 디지털 신호 프로세서는 디지털 신호에 대해 지정된 작업을 수행하는 역할을 담당합니다. 디지털 프로세서의 프로그램이 올바르게 작동하려면 처음에는 아날로그였던 신호를 먼저 디지털 신호로 변환해야 합니다. 출력 신호를 다시 아날로그로 변환해야 할 수도 있고 그렇지 않을 수도 있습니다.

두 숫자를 곱한 다음 그 결과를 누산기에 더합니다. 파이프라인 아키텍처: 서로 다른 처리 요소가 직렬로 연결되어 한 작업의 출력이 다음 작업의 입력이 되는 컴퓨터 설계입니다. 반도체 지적 재산(SIP) 블록: 개인이나 그룹이 소유한 마이크로칩 레이아웃 설계의 수량입니다. "IP 코어"라고도 합니다.

디지털 신호 처리 디지털 신호 프로세서(DSP)는 특수 기능을 위해 설계된 마이크로프로세서입니다. DSP로 사용하도록 설계된 반도체 지적 재산(SIP) 블록은 일반적으로 매우 낮은 대기 시간 환경에서 작동해야 합니다. 그들은 지속적으로 비디오 또는 오디오 스트림을 처리하고 있습니다. 또한 특히 DSP에 크게 의존하는 모바일 장치의 경우 전력 소비를 최소한으로 유지해야 합니다. 이를 가능하게 하기 위해 DSP는 고정 소수점 연산과 보다 계산 집약적인 부동 소수점 연산 모두에서 효율적으로 작동하도록 설계되었습니다. 그러나 후자는 대부분의 DSP 애플리케이션에 필요하지 않습니다. DSP는 Harvard 아키텍처와 같이 한 번에 여러 명령을 가져올 수 있는 칩 아키텍처를 사용하는 경향이 있습니다. 많은 DSP는 아날로그 데이터를 입력으로 받아들이고 이를 디지털 데이터로 변환하고 일부 작업을 수행한 다음 출력을 위해 디지털 신호를 다시 아날로그로 변환해야 합니다. 이는 DSP에 파이프라인 아키텍처를 제공합니다. 그들은 한 단계의 출력이 다음 단계에 필요한 입력이 되는 다단계 프로세스를 사용합니다. DSP가 수행하는 작업 유형의 예는 승산기 누산기에서 볼 수 있습니다. 이는 2단계 작업을 수행하는 하드웨어입니다. 먼저 두 값을 입력으로 받고 한 값에 다른 값을 곱합니다. 다음은 100

multiplier-accumulator는 첫 번째 단계의 결과를 가져와서 이를 누산기에 저장된 값에 추가합니다. 마지막에는 누산기의 값이 출력으로 전달될 수 있습니다. DSP는 승산기-누산기 연산에 크게 의존하기 때문에 이러한 연산은 칩에 내장된 명령어 세트의 일부입니다. DSP는 수신하는 지속적인 데이터 스트림을 따라잡기 위해 이러한 작업을 신속하게 수행할 수 있어야 합니다. DSP가 수행하는 처리는 때때로 신비스러워 보일 수 있습니다. 그러나 실제로는 데이터 스트림의 각 값에 대해 상당히 간단한 수학적 연산을 수행하는 경우가 많습니다. 아날로그 입력의 각 부분은 디지털 값으로 변환됩니다. 그런 다음 이 디지털 값은 다른 값에 추가, 곱하기, 빼기 또는 나뉩니다. 그 결과는 수정된 데이터 스트림이며, 이 스트림은 다른 프로세스로 전달되거나 출력으로 생성될 수 있습니다.

디지털 신호 프로세서의 애플리케이션 DSP가 일상 생활의 필수적인 부분이 된 애플리케이션이 많이 있습니다. DSP의 기본 목적은 실제 세계의 아날로그 정보를 입력으로 받아들이는 것입니다. 여기에는 새소리부터 뉴스 이벤트 현장의 라이브 비디오 피드 방송까지 모든 것이 포함될 수 있습니다. DSP는 의료 영상 분야에서도 크게 의존하고 있습니다. 의료 영상은 초음파 또는 기타 기술을 사용하여 인체 내부에서 일어나는 일에 대한 실시간 영상을 생성합니다. 초음파는 태아의 발달 상태, 즉 태아가 어떤 위치에 있는지, 어떻게 움직이는지, 심장이 어떻게 뛰는지 등을 검사하는 데 자주 사용됩니다. DSP는 초음파 장비로부터 초음파 신호를 수신하여 디지털 데이터로 변환합니다. 그러면 이 디지털 데이터는

프로그래밍 및 코딩의 원리

태아를 보여주는 비디오 디스플레이 형태로 아날로그 출력을 생성하는 데 사용됩니다. 디지털 신호 처리는 많은 군사 응용 분야, 특히 소나나 레이더 사용에 의존하는 응용 분야에서도 중요합니다. 초음파 장치와 마찬가지로 레이더와 소나는 에너지 파동의 형태로 아날로그 신호를 보냅니다. 이러한 파동은 환경의 특징에서 반사되어 레이더 또는 소나 생성 장치로 돌아옵니다. 장치는 DSP를 사용하여 이 아날로그 정보를 수신하고 이를 디지털 데이터로 변환합니다. 그런 다음 데이터를 분석하고 인간이 쉽게 해석할 수 있는 그래픽 디스플레이로 변환할 수 있습니다. DSP는 처리 지연을 최소화할 수 있어야 합니다. 왜냐하면 수중 탐색을 위해 소나를 사용하는 잠수함은 경로에 장애물이 있는지 알아내기 위해 기다릴 여유가 없기 때문입니다.

생체인식 스캐닝 많은 사람들이 살면서 한 번쯤 접하게 되는 디지털 신호 처리의 한 유형은 신원을 확인하기 위해 많은 보안 상황에서 사용되는 지문 스캐너입니다. 이 스캐너를 사용하면 사람이 스캐너에 손가락을 올려 놓을 수 있으며 스캐너는 사람의 지문에 대한 아날로그 입력을 받습니다. 이 입력은 디지털 형식으로 변환되어 디지털 데이터와 비교됩니다.

디지털 워터마킹

그 사람이 일치하는지 확인할 수 있도록 파일에 보관하십시오. 보안 애플리케이션에서 생체 인식 데이터가 점점 더 중요해짐에 따라 디지털 신호 처리의 중요성도 커질 것입니다. —Scott Zimmer, JD 참고문헌 Binh, Le Nguyen. 디지털 처리: 광 전송 및 일관성 있는 수신 기술. 보카 레이톤: CRC, 2013. 인쇄. 이니에프스키, 크시슈토프. 임베디드 시스템: 하드웨어, 설계 및 구현. 호보켄: 와일리, 2013. 인쇄. Kuo, Sen M., Bob H. Lee 및 Wenshun Tian. 실시간 디지털 신호 처리: 기본, 구현 및 응용. 3판 호보켄: 와일리, 2013. 인쇄. Snoke, David W. Electronics: 물리적 접근 방식. 보스턴: 애디슨, 2014. 인쇄. 소잔스키, 크시슈토프. 전력 전자 제어 회로의 디지털 신호 처리. 뉴욕: 스프링어, 2013. 인쇄. 탄, 리, 장 지앙. 디지털 신호 처리: 기본 및 응용. 2판 보스턴: 학술, 2013. 인쇄.

디지털 워터마킹 연구 분야 컴퓨터 과학; 디지털 미디어; 보안 개요 디지털 워터마킹은 파일 내에 추가 신호를 배치하여 공유 또는 배포된 지적 재산을 보호합니다. 이 신호는 사용자에게 저작권 소유자의 신원을 알리고 디지털 데이터의 출처를 인증하는 데 사용될 수 있습니다. 디지털 워터마크는 표시되거나 숨겨질 수 있습니다. 주요 용어 반송파 신호: 아날로그 또는 디지털 정보를 전달하기 위해 변조된 전자기 주파수입니다.

크리플웨어: 주요 기능이 비활성화되어 있고 등록 후 또는 제품 키를 사용해야만 활성화할 수 있는 소프트웨어 프로그램입니다. 멀티비트 워터마킹: 전송될 신호에 여러 비트의 데이터를 삽입하는 워터마킹 프로세스입니다. 잡음 허용 신호: 원치 않는 신호 중단이나 변동(즉, 잡음)과 쉽게 구별할 수 있는 신호입니다. 1비트 워터마킹: 전송될 신호에 1비트의 바이너리 데이터를 삽입하는 디지털 워터마크의 일종. "0비트 워터마킹"이라고도 합니다. 가역적 데이터 은닉: 원본 데이터를 품질 저하 없이 정확한 형태로 복구할 수 있도록 데이터를 숨기는 데 사용되는 기술입니다. 101

프로그래밍 및 코딩의 원리

디지털 워터마킹

일반 이미지 워터마킹 과정 원본 이미지

양수표

JPEG 압축 최종 워터마크 이미지

+

위조 가능성을 식별하기 위한 이미지 워터마크 테스트 테스트 통과

네트워크에서 위조된 이미지일 수 있음 워터마크 테스트: 이미지를 추정된 워터마크 오버레이와 비교

비슷한

진본인

다른

위조 테스트 실패

테스트 통과

네트워크에서 위조된 이미지일 수 있음 워터마크 테스트: 이미지를 추정된 워터마크 오버레이와 비교

비슷한

진본인

다른

위조 테스트 실패

워터마킹 프로세스 및 워터마크 테스트 프로세스에 대한 다이어그램입니다.

디지털 데이터의 소유권 및 보안 보호 디지털 워터마킹은 디지털 미디어 파일에 숨겨진 디지털 코드를 삽입하는 기술입니다. 이는 20세기 후반에 처음으로 개발되었습니다. 이러한 숨겨진 코드는 저작권 데이터를 기록하고, 파일의 복사 또는 변경을 추적하거나, 저작권이 있는 파일을 변경하거나 무단으로 복사하려는 시도를 방지하는 데 사용될 수 있습니다. 따라서 디지털 워터마킹은 저작권으로 보호되는 음악, 비디오 및 소프트웨어 다운로드에 일반적으로 사용됩니다. 정부와 은행도 이를 통해 민감한 문서와 통화를 위조 및 사기로부터 보호할 수 있습니다. 워터마킹의 기본 종이 워터마크는 다른 이미지나 종이에 삽입된 이미지입니다. 이미지에 빛을 비추면 볼 수 있습니다. 워터마크가 사용됩니다 102

지폐, 여권, 기타 종이 문서에 진위 여부를 확인합니다. 마찬가지로, 디지털 워터마킹에는 신호의 신뢰성을 확인하거나 신호의 소유자를 식별하기 위해 디지털 신호 내에 데이터를 삽입하는 작업이 포함됩니다. 디지털 워터마킹은 1980년대 후반이나 1990년대 초반에 발명되었습니다. 이는 스테가노그래피(이미지, 오디오, 비디오 또는 텍스트 내에서 메시지, 파일 또는 기타 유형의 데이터를 숨기는 것)에도 사용되는 기술을 사용합니다. 대부분의 디지털 워터마크는 반송파 신호에 포함된 신호를 검색할 수 있는 알고리즘 없이는 감지할 수 없습니다. 반송파 신호에 워터마크가 표시되려면 잡음에 대한 내성이 있어야 합니다. 내잡음성 신호는 일반적으로 품질 저하나 원치 않는 변조에 저항하는 강력한 신호입니다. 일반적으로 디지털 워터마크는 숨겨진 신호로 원본 신호를 인코딩하는 알고리즘을 사용하여 데이터에 삽입됩니다. 삽입은 필요한 보안 수준에 따라 공개 키 또는 개인 키 암호화를 사용하여 수행될 수 있습니다.

디지털 워터마크의 품질 디지털 워터마크를 분류하는 한 가지 방법은 워터마킹 신호가 얼마나 길고 복잡한지를 측정하는 용량을 기준으로 하는 것입니다. 가장 간단한 유형은 1비트 워터마킹입니다. 이는 감지 여부(1 또는 0의 이진 결과)만을 의미하는 간단한 메시지를 인코딩하는 데 사용됩니다. 대조적으로, 멀티비트 워터마킹은 원본 신호에 여러 비트의 데이터를 삽입합니다. 멀티비트 시스템은 공격자가 워터마크가 삽입된 방법이나 위치를 알 수 없기 때문에 공격에 더 강할 수 있습니다. 워터마크는 견고성 또는 취약성으로 분류될 수도 있습니다. 강력한 워터마크는 대부분의 수정 유형에 저항하므로 압축이나 자르기 등의 변경 후에도 신호 내에 유지됩니다. 파일의 모든 복사본에도 워터마크가 표시되므로 이러한 워터마크는 저작권 정보를 삽입하는 데 자주 사용됩니다. 깨지기 쉬운 워터마크는 신호가 수정된 경우 감지할 수 없으므로 데이터가 변경되었는지 확인하는 데 사용됩니다. 경우에 따라 디지털 워터마크는 사용자가 파일에서 쉽게 감지할 수 있도록 설계됩니다. 예를 들어, 동영상 워터마크는 재생 중에 화면에 떠다니는 로고나 텍스트일 수 있습니다. 그러나 대부분의 경우 디지털 워터마크는 워터마킹 코드를 검색하는 알고리즘을 통해서만 감지할 수 있는 숨겨진 신호입니다. 가역적 데이터

프로그래밍 및 코딩의 원리

숨김이란 워터마크 삽입을 알고리즘으로 되돌려 원본 파일을 복구할 수 있는 경우를 말합니다.

디지털 워터마킹의 응용 디지털 워터마킹의 주요 기능은 저작권이 있는 디지털 콘텐츠를 보호하는 것입니다. 오디오 및 비디오 플레이어는 저작권이 있는 파일에 포함된 디지털 워터마크를 검색할 수 있으며, 워터마크가 포함된 파일만 재생하거나 복사할 수 있습니다. 이는 본질적으로 콘텐츠가 법적으로 소유되어 있음을 확인합니다. 구어적으로 크리플웨어(crippleware)라고 알려진 특정 유형의 프로그램은 초기 무료 평가 기간 이후 합법적으로 구매되었는지 확인하기 위해 눈에 보이는 디지털 워터마크를 사용합니다. 이미지 또는 비디오 편집 소프트웨어와 같이 디지털 미디어 파일을 생성하는 데 사용되는 프로그램은 사용자가 먼저 사용해 볼 수 있도록 무료로 다운로드할 수 있는 경우가 많습니다. 사용자가 전체 프로그램을 구매하도록 유도하기 위해 이러한 평가판은 눈에 보이는 워터마크가 포함된 이미지나 비디오를 출력합니다. 프로그램을 등록하거나 제품 키를 입력한 경우에만 이 워터마크가 제거됩니다. 일부 디지털 콘텐츠 제작자는 디지털 워터마킹을 사용하여 콘텐츠에 신원 및 저작권 정보를 삽입합니다. 강력한 워터마크를 사용하므로 파일의 변경된 복사본도 그대로 유지됩니다. 이를 통해 콘텐츠 소유자는 자신의 저작물이 다른 사용자에 의해 변경된 경우에도 소유권을 주장할 수 있습니다. 어떤 경우에는 워터마크가 있는 데이터를 구성하여 모든 복사본이 개별 사용자나 배포자를 추적할 수 있도록 할 수 있습니다. 이 기능은 저작권이 있는 자료의 불법 배포를 추적하는 데 유용할 수 있습니다. 또한 중요 파일이나 독점 파일의 무단 유출에 대한 조사에도 도움이 될 수 있습니다.

디스크 운영 체제(DOS)

최근에는 제품 포장에 숨겨진 워터마크를 생성하기 위해 디지털 워터마킹이 사용되었습니다. 이는 POS 장비가 제품의 추적 코드를 더 쉽게 찾고 스캔할 수 있도록 하기 위한 것입니다. 운전면허증이나 여권과 같은 중요한 신분증의 위조를 방지하기 위해 일반 워터마킹과 함께 또는 대신 디지털 워터마킹을 사용하는 경우도 점점 늘어나고 있습니다. —Micah L. Issitt 참고문헌 Chao, Loretta. “기술 파트너십은 디지털 워터마크를 통해 바코드 그 이상을 바라봅니다.” 월 스트리트 저널. 다우존스, 2016년 1월 12일. 웹. 2016년 3월 14일. “자주 묻는 질문(FAQ).” 디지털 워터마킹 얼라이언스. DWA, n.d. 편물. 2016년 3월 11일. Gupta, Siddarth, Vagesh Porwal. “최근 디지털 워터마킹 접근 방식, 멀티미디어 데이터 소유권 보호.” 컴퓨터 과학의 발전 4.2(2015): 21–30. 편물. 2016년 3월 14일. Patel, Ruchika, Parth Bhatt. “디지털 워터마킹 및 그 기술에 관한 검토 논문.” 국제 컴퓨터 응용 저널 110.1(2015): 10–13. 편물. 2016년 3월 14일. Savage, Terry Michael, Karla E. Vogel. 디지털 멀티미디어 소개. 2판 벌링턴: 존스, 2014. 256–58. 인쇄. “인간의 손길이 닿지 않은 작품.” 경제학자. 이코노미스트 신문, 2002년 12월 12일. 웹. 2016년 3월 14일.

디스크 운영 체제(DOS) 연구 분야 컴퓨터 과학; 운영체제

정보

기술;

개요 DOS라는 용어는 "디스크 운영 체제"의 약어입니다. DOS는 많은 유사점을 공유하는 여러 텍스트 기반 운영 체제를 나타냅니다.

아마도 가장 잘 알려진 DOS 형태는 MS-DOS일 것입니다. MS-DOS는 기술 회사인 Microsoft에서 개발한 운영 체제입니다. 이는 QDOS로 알려진 초기 운영 체제에 크게 기반을 두고 있습니다. DOS는 20세기 말에 그래픽 사용자 인터페이스를 갖춘 운영 체제로 대체되었습니다. 그러나 이 용어는 21세기에도 특정한 특수한 맥락에서 계속 사용됩니다. 103

디스크 운영 체제(DOS)

프로그래밍 및 코딩의 원리

주요 용어 명령줄: 사용자가 키보드를 통해 간단한 명령을 입력할 수 있는 텍스트 기반 컴퓨터 인터페이스입니다. 그래픽 사용자 인터페이스(GUI): 사용자가 아이콘이나 창과 같은 그래픽 요소와 상호 작용하여 컴퓨터나 기타 장치를 제어할 수 있도록 하는 인터페이스입니다. 비그래픽: 그래픽 요소가 없습니다. 쉘: 사용자가 컴퓨터나 기타 장치를 작동할 수 있게 해주는 인터페이스입니다.

DOS의 배경 "디스크 운영 체제"(DOS)는 개인용 컴퓨터(PC)용으로 설계된 다양한 초기 운영 체제를 통칭하는 용어입니다. 운영체제는 컴퓨터 초기부터 존재해왔습니다. 이는 1970년대 후반과 1980년대 초반에 더욱 중요해졌습니다. 그 당시 PC가 대중에게 공개되었습니다. 운영 체제를 사용하면 컴퓨터 프로그래밍에 익숙하지 않은 사용자가 이러한 장치와 직접 인터페이스할 수 있습니다. PC를 판매용으로 제공한 최초의 회사 중에는 오랫동안 컴퓨터 기술 분야의 선두주자였던 기술 회사인 IBM이 있었습니다. 1980년에 IBM은 새로운 장치인 IBM PC에 대한 운영 체제 라이센스를 모색했습니다. IBM은 CP/M(마이크로컴퓨터 제어 프로그램) 라이센스를 얻기 위해 Digital Research라는 회사에 접근했습니다. 그러나 두 회사는 합의에 이르지 못했다. IBM은 대신 소프트웨어 회사인 Microsoft와 계약을 체결했습니다. Microsoft는 1975년에 설립되었습니다. 처음에는 컴퓨터 프로그램과 프로그래밍 언어를 만들고 라이선싱하는 일을 전문으로 했습니다. IBM에 운영 체제를 공급하기 위해 Microsoft는 Seattle Computer Products 회사로부터 QDOS(Quick and Dirty Operating System) 라이센스를 받았습니다. 나중에 86-DOS로 이름이 변경된 이 시스템은 부분적으로 CP/M을 기반으로 했으며 유사한 명령을 사용했지만 몇 가지 주요 방식이 달랐습니다. 특히, 운영 체제는 한 번에 16비트 또는 이진 정보 조각을 처리할 수 있는 16비트 마이크로프로세서를 특징으로 하는 IBM PC와 같은 컴퓨터와 함께 사용하도록 설계되었습니다. Microsoft는 또한 QDOS 창시자인 Tim Patterson을 고용했습니다. Microsoft는 Patterson에게 PC-DOS라는 이름으로 IBM에 라이센스를 부여할 QDOS의 새 버전을 만들도록 요청했습니다. Microsoft는 MS-DOS라는 본질적으로 동일한 버전을 개발하여 컴퓨터 제조업체에 판매하고 라이센스를 부여했습니다. 104

FreeDOS 명령줄 인터페이스는 원래 DOS(디스크 운영 체제) 명령줄 인터페이스를 기반으로 하며 대부분의 운영 체제에서 사용할 수 있는 보다 널리 사용되는 그래픽 사용자 인터페이스에 대한 대안을 개인에게 제공합니다.

IBM의 PC가 점점 대중화되면서 경쟁 하드웨어 제조업체도 유사한 컴퓨터를 만들었습니다. 일반적으로 "IBM 클론"으로 알려진 이러한 컴퓨터 중 다수는 MS-DOS를 사용했습니다. MS-DOS, PC-DOS 및 86-DOS 외에도 수십 년에 걸쳐 다른 DOS 또는 DOS 호환 시스템이 시장에 출시되었습니다. 그러나 MS-DOS가 시장을 장악했고 흔히 간단히 DOS라고 불렸습니다.

DOS 이해 MS-DOS는 DOS의 가장 유명하고 잘 알려진 형태입니다. MS-DOS는 입/출력(I/O) 처리기, 명령 프로세서 및 보조 유틸리티 프로그램의 세 가지 주요 부분으로 구성됩니다. I/O 핸들러는 데이터 입출력을 관리하며 IO.SYS와 MSDOS.SYS라는 두 개의 프로그램으로 구성됩니다. 명령 프로세서를 통해 컴퓨터는 사용자로부터 명령을 받아 이를 수행할 수 있습니다. 가장 일반적으로 사용되는 명령 및 관련 루틴은 명령 프로세서에 저장됩니다. 다른 것들은 시스템 디스크에 저장되고 필요에 따라 로드됩니다. 이러한 루틴을 "보조 유틸리티 프로그램"이라고 합니다. 모든 운영 체제와 마찬가지로 DOS는 쉘 역할을 합니다. 쉘은 사용자가 컴퓨터 프로그래밍에 대한 지식 없이도 컴퓨터를 작동할 수 있도록 해주는 인터페이스입니다. DOS 또는 DOS 호환 시스템에서는 사용자가 텍스트 기반 명령을 입력해야 합니다. 그러나 이것들은 상대적으로 간단하고 숫자가 제한되어 있습니다. 따라서 대중은 초기 형태의 DOS를 갖춘 PC가 사용하기 매우 쉽다는 것을 알게 되었습니다.

프로그래밍 및 코딩의 원리

드론 전쟁

DOS 사용 MS-DOS 및 이후 버전 DOS 및 DOS 호환 시스템은 QDOS 및 CP/M과 같은 이전 시스템과 여러 면에서 매우 유사합니다. 일반적으로 MS-DOS 및 유사한 시스템은 비그래픽 시스템입니다. 따라서 클릭 가능한 아이콘 및 창과 같은 최신 그래픽 사용자 인터페이스(GUI)에 있는 그래픽 요소가 포함되어 있지 않습니다. 대신, 비그래픽 시스템에서는 사용자가 명령줄에 명령을 입력하여 컴퓨터를 작동할 수 있습니다. 사용자는 기본 명령을 입력하여 프로그램 실행, 파일 열기 또는 복사를 포함한 광범위한 기능을 수행하도록 컴퓨터에 지시할 수 있습니다. DOS의 영향 DOS 및 기타 비그래픽 시스템은 GUI가 대중화됨에 따라 1990년대 중반에 대부분 단계적으로 폐지되었지만 PC 운영 체제 개발에 여전히 영향력 있는 부분으로 남아 있었습니다. Microsoft의 Windows 95와 같은 일부 그래픽 운영 체제는 부분적으로 DOS를 기반으로 했으며 특수 모드에서 열 때 DOS 프로그램을 실행할 수 있는 기능이 있었습니다. 컴퓨터 기술의 발전에도 불구하고 MS-DOS 및 이와 유사한 시스템은 21세기에도 응용 프로그램에 여전히 사용되고 있습니다. 경우에 따라 회사나 기관에서는 DOS에서만 호환되는 소프트웨어에 대한 액세스를 유지하기 위해 운영 체제를 계속 사용합니다. 일부 개인은 DOS 및 DOS 호환 시스템을 사용하여 초기 게임을 플레이합니다.

원래 해당 시스템용으로 설계되었습니다. Microsoft와 같은 회사는 더 이상 대중에게 DOS를 판매하지 않습니다. 그러나 많은 회사와 조직에서는 오픈 소스 프리웨어 형태로 DOS 호환 시스템을 사용자에게 제공하는 데 전념하고 있습니다. —Joy Crelin 참고문헌 Doeppner, Thomas W. 운영 체제 심층 분석. 호보켄: Wiley, 2011. 인쇄. 갤러거, 션. "'거의 운영 체제'이기는 하지만 DOS는 (일부 사람들에게는) 여전히 중요합니다." 아르스 테크니카. Condé Nast, 2014년 7월 14일. 웹. 2016년 1월 31일. 해리 맥크라켄. “DOS 역사상 중요한 10가지 순간.” PCWorld. IDG 소비자, n.d. 편물. 2016년 1월 31일. Miller, Michael J. “DOS의 부상: Microsoft가 IBM PC OS 계약을 체결한 방법.” PCMag.com. PCMag Digital Group, 2011년 8월 10일. 웹. 2016년 1월 31일. "MS-DOS: 간략한 소개." 리눅스 정보 프로젝트. Linux 정보 프로젝트, 2006년 9월 30일. 웹. 2016년 1월 31일. "2부: 컴퓨터와의 통신 - 운영 체제." 과학자를 위한 컴퓨터 프로그래밍. 오리건주 U, 2006. 웹. 2016년 1월 31일. Shustek, Len. “Microsoft MS-DOS 초기 소스 코드.” 컴퓨터 역사 박물관. 컴퓨터역사박물관, 2013. 웹. 2016년 1월 31일.

드론 전쟁 드론 전쟁은 새로운 기술을 구현하여 군사적 우위를 유지하려는 미국의 지속적인 노력에서 가장 극적인 발전 중 하나를 나타냅니다. 지구 반대편에서 제어되는 무인 항공기(UAV)는 확장된 감시 및 정보 수집 임무를 수행할 수 있습니다. 필요한 경우 적 목표물에 대해 공습을 수행할 수 있습니다. 이러한 기능은 조종사를 위험에 빠뜨리거나 한 사람이 장기간 비행 임무를 수행하도록 의존하지 않고도 달성할 수 있습니다. 기술적 능력은 주요 윤리적, 도덕적 문제를 제기했으며, 그 중 UAV가 국제법 및 국내법을 위반할 가능성도 적지 않습니다.

개요 동력 항공기는 1903년 발명된 이후 군 지휘관이 어느 정도 안전한 거리에서 적을 보고 공격할 수 있는 도구로 사용되었습니다. 1911년까지 이탈리아군은 리비아 원주민 반란을 진압하기 위한 노력의 일환으로 항공기를 사용했습니다. 두 차례의 세계 대전을 통해 항공기의 항속 거리, 속도, 정보 수집 능력 및 치사율이 향상되었습니다. 이러한 능력 향상에도 불구하고 조종사의 신체 상태와 조종사 안전에 대한 우려로 인해 항공기는 여전히 제한적이었습니다. 이러한 한계를 극복하기 위한 노력으로 드론은 1950년대와 1960년대에 처음 등장했습니다. 105가 처음 사용되었습니다.

드론 전쟁

제361 원정정찰대대의 MQ-1B 프레데터 무인기.

비행 표적으로 사용하여 대공 승무원이 조종사를 죽이지 않고도 표적을 추적하고 파괴할 수 있습니다. 베트남 전쟁 중에 드론은 공중 정찰을 수행했습니다. 이 드론은 귀중한 서비스를 제공했지만 기지로 돌아와 안전하게 착륙하지 못하고 임무를 수행한 후 추락했습니다. 1970년대 초 이스라엘이 개발한 드론은 군사 정찰 임무와 공습을 수행했습니다. 이스라엘 드론 설계자 아브라함 카렘(Abraham Karem)은 1980년대 미국으로 건너가 처음에는 미국 국방고등연구계획국(DARPA), 나중에는 중앙정보국(CIA)의 지원을 받아 드론 개발을 시작했습니다. 1990년대 초 보스니아의 CIA는 호송대에 정보를 제공하고 세르비아 군대 위치를 파악하기 위해 드론을 사용했습니다. 2000년에 드론은 정보 목적으로 광범위하게 사용되었으며 9/11 테러 공격 이후 그 사용이 크게 증가했습니다. 드론은 2004년부터 아프가니스탄과 파키스탄에서 정찰과 특정 개인을 죽이는 수단으로 널리 사용되었습니다. 2009년 버락 오바마 대통령이 대통령이 된 후, 그의 행정부는 전략을 옹호하기 시작했고 예멘, 소말리아, 특히 파키스탄에서 드론 공격 횟수를 늘렸습니다. 2012년 파키스탄에서 드론 공격으로 알카에다의 2인자 아부 야히아 알 리비(Abu Yahya al-Libi)가 사살됐다. 그러나 이 전술에 대한 비판은 파키스탄인과 미국인 모두를 대신하여 특히 민간인 생명 손실과 관련하여 계속해서 증가했습니다. 다음 해 오바마는 더 엄격한 제한과 규칙을 약속하는 연설을 했습니다.

프로그래밍 및 코딩의 원리

드론 공격의 사용에 관해. 그러나 2015년 초, 파키스탄에서 또 다른 드론 공격으로 알카에다 인질 두 명(미국인과 이탈리아인)이 사망했다고 발표되었습니다. 오바마 대통령은 공개연설을 통해 유족들에게 사과했다. 군사 및 외교 정책에 대한 기술적 솔루션인 드론을 사용하면 조종사를 위험에 빠뜨리거나 일반 조종사보다 더 많은 시간 동안 한 사람이 항공기를 조종하지 않고도 사용자가 목표물을 찾아 파괴할 수 있습니다. 그러나 몇 가지 문제로 인해 UAV의 효율성이 저하됩니다. 첫째, 그것들은 완벽하지 않습니다. 그들은 종종 잘못된 목표물을 공격했으며 민간인 사상자를 발생시키기도 했습니다. 개인을 암살하기 위한 선택적 수단으로 이들을 사용하는 것은 많은 비판을 불러일으켰으며 많은 사람들에게 국제법 위반으로 간주됩니다. 인구를 확보하려는 노력의 일환으로, 원격지와 치명성은 사용자에 대한 여론을 밀어낼 수 있습니다. 마지막으로, 적어도 미국에서는 감시(연방 정보국장이 인정한 프로그램)를 수행하기 위해 미국 국경 내에서 이러한 장치를 사용하는 것은 특히 개인 정보 보호 권리와 개인 정보 보호 권리를 침해하는지 여부와 관련하여 상당한 우려를 불러일으켰습니다. 미국 시민을 공격하는 수단으로 사용되고 있습니다. —Robert N. Stacy, MA 참고문헌 Alkire, Brien. 해군 무인 항공기 시스템에 대한 응용 프로그램입니다. 산타 모니카: 랜드, 2010. 인쇄. Barnhardt, 리처드 K., 에릭 샤피. 무인 항공기 시스템 소개. 뉴욕: CRC, 2012. 인쇄. 벤자민, 메디아. 드론 전쟁: 원격 제어로 살해. 런던: 베르소. 2013. 인쇄. 베르겐, 피터, 제니퍼 롤랜드. “오바마는 드론 약속을 지켰나요?” CNN. 케이블 뉴스 네트워크, 2013년 10월 25일. 웹. 2015년 5월 22일. 코커, 크리스토퍼. Warrior Geeks: 21세기 기술이 전쟁에 대해 싸우고 생각하는 방식을 어떻게 변화시키고 있습니까? 런던: 허스트, 2013. 인쇄. 콜, 스티브. “깜박이지 않는 응시.” 뉴요커. Condé Nast, 2014년 11월 24일. 웹. 2015년 5월 22일. Hansen, V. “프레데터 드론 공격.” 뉴잉글랜드 법률 검토 46(2011): 27–36. 인쇄. Metz, J. R. 드론 전쟁: 미국 드론 공격의 역학 및 범위 파악. 디스. 웨슬리안 대학교, 2013. 인쇄.

프로그래밍 및 코딩의 원리

드론

풀리제, 조셉. 국가 폭력과 법 집행: 고문, 블랙 사이트, 드론의 생명정치적 조치. 뉴욕: 루트리지, 2013. 인쇄. 터스(Turse), 닉(Nick), 톰 엥겔하트(Tom Engelhardt). 터미네이터 행성: 드론 전쟁의 첫 번째 역사, 2001~2050년. TomDispatch, 2012. Kindle 파일. 미국 의회. 하원 감독 및 정부 개혁 위원회. 분과위원회

국가안보와 외교에 관한 것입니다. 드론의 부상: 하원, 제111차 의회, 감독 및 정부 개혁 위원회의 국가 안보 및 외교 소위원회 청문회, 두 번째 세션. 워싱턴: GPO, 2011. 인쇄.

드론 개요 드론은 일종의 항공기입니다. 드론은 무인항공기(UAV)라고도 합니다. 드론은 조종하기 위해 조종사가 탑승할 필요가 없기 때문에 "무인"입니다. 지상에 있는 사람이 드론을 날립니다. 일부 드론은 리모콘으로 조종됩니다. 다른 사람들은 컴퓨터에 의해 안내됩니다. 일부는 수천 마일 떨어진 곳에 있는 사람들에 의해 비행되었습니다. 드론은 다양한 크기와 모양으로 제공됩니다. 많은 사람들이 사진을 찍거나 비디오를 녹화하는 카메라를 가지고 있습니다. 미군은 1990년대 중반부터 드론을 사용해 왔다. 2013년 초부터 많은 사람들이 재미로 드론을 날리기 시작했습니다. 너무 많은 사람들이 드론을 소유하고 있기 때문에 정부는 드론 비행에 대한 규칙을 만들어야 했습니다.

드론의 역사 군대는 수년 동안 무인 항공기를 사용해 왔습니다. 남북전쟁(1861~1865) 동안 군대는 풍선을 사용하여 적 진영에 폭발물을 투하하려고 시도했습니다. 영국 왕립 해군은 1930년대에 드론과 유사한 차량을 만들었습니다. 조종사들은 사격 기술을 연습하기 위해 그것을 사용했습니다. 미군은 1995년부터 현대식 드론을 사용하기 시작했습니다. 군대는 처음으로 드론을 사용하여 정보를 수집했습니다. 예를 들어, 드론을 사용하여 적의 은신처를 찾을 수 있습니다. 비행기나 헬리콥터와 달리 드론에는 조종사가 탑승할 필요가 없습니다. 드론을 조종하는 사람들은 수천 마일 떨어져 있을 수 있습니다. 이러한 이유로 드론은 위험한 지역 위로 비행하는 것이 더 안전합니다. 미군은 이후 드론에 무기를 추가했다. 그들은 드론 공격을 수행하기 위해 드론을 사용하기 시작했습니다. 드론 공격 중에 드론은 적에게 무기를 발사합니다.

2013년 초 몇몇 기업에서는 일반 시민을 위한 드론을 출시했습니다. 사람들은 수백 달러에 드론을 직접 구입할 수 있었습니다. 이러한 드론의 대부분은 교과서 크기만큼 작습니다. 그다지 무겁지 않습니다. 이 드론에는 무기가 없습니다. 그러나 일부에는 사진을 찍거나 비디오를 녹화하는 카메라가 있습니다. 사람들은 여러 가지 이유로 드론을 구입합니다.

드론의 용도 드론이 도움이 될 수 있습니다. 농부들은 이를 사용하여 밭과 작물을 확인합니다. 소방관들은 산불을 확인하기 위해 숲 위로 드론을 날립니다. 영화 제작자는 이를 사용하여 영화의 장면을 녹화할 수 있습니다. 과학자들은 온도와 풍속과 같은 정보를 수집하기 위해 드론을 큰 폭풍 속으로 날아갈 수 있습니다. 일부 기업에서는 드론이 비즈니스 성장에 도움이 될 수 있다고 생각합니다. 예를 들어, Amazon과 Walmart는 드론을 사용하여 상품을 배달하는 데 관심이 있습니다.

일반적으로 드론으로 알려진 무인 항공기는 소형 장난감부터 대형 비행기까지 크기가 다양합니다. 군에서는 감시용으로, 민간인은 휴양용으로 사용합니다.

107

드론

사람들의 집. 드론은 몇 분 안에 물품을 배송할 수 있습니다. 사람들은 상품이 우편으로 도착할 때까지 기다릴 필요가 없습니다. 다른 회사들은 드론을 사용하여 음식을 배달하기를 원합니다. 사람들이 다른 사람들을 돕기 위해 항상 드론을 사용하는 것은 아닙니다. 일부는 법을 위반하기 위해 드론을 사용합니다. 예를 들어, 사람들은 드론을 사용해 감옥에 있는 수감자들에게 물품을 전달하려고 시도했습니다. 사람들은 야구장과 축구장 위로 드론을 날렸는데, 이는 허용되지 않습니다. 누군가 백악관 잔디밭에 드론을 추락시키기도 했습니다. 백악관은 대통령이 사는 곳이다.

드론의 문제점 드론은 매우 인기를 얻었습니다. 그러나 몇 가지 문제가 발생합니다. 많은 사람들이 드론을 신뢰하지 않습니다. 그들은 드론이 자신의 행동과 말을 기록할 것이라고 생각합니다. 그들은 드론이 그들의 사생활을 침해하는 것을 원하지 않습니다. 개인의 사생활이 침해되면 다른 사람들이 그 사람의 사생활을 알게 된다. 드론으로 인해 재산 피해가 발생할 수 있습니다. 재산은 누군가가 소유한 것입니다. 주택과 자동차는 재산의 예입니다. 많은 사람들이 드론을 비행하는 동안 드론에 대한 통제력을 잃습니다. 드론은 사람들의 집이나 자동차에 충돌하여 피해를 입힐 수 있습니다. 통제 불능의 드론은 사람을 때리고 다치게 할 수도 있습니다. 또 다른 문제는 드론이 다른 항공기와 충돌할 수 있다는 점이다. 제트기 엔진에 빨려 들어갈 수도 있습니다. 이러한 사건은 특히 결과적으로 헬리콥터나 비행기가 추락하는 경우 심각한 영향을 미칠 수 있습니다. 정부는 이러한 문제 중 일부를 방지하기 위해 규칙을 만들었습니다. 드론에 대한 규칙 연방항공청(FAA)은 비행에 대한 규칙을 만드는 미국 정부의 일부입니다. FAA는 2015년에 드론에 대한 규정을 도입했습니다. 먼저 사람들은 드론을 등록해야 합니다. 등록한다는 것은 자신의 이름을 공식 목록에 추가하는 것입니다. 그러면 FAA는 드론 소유자에게 식별 번호를 부여합니다. 이 번호는 드론에 표시되어야 합니다. 다음은 드론에 대한 추가 FAA 규칙입니다. 400피트 이상으로 비행하지 마십시오. 드론을 항상 시야에 유지하세요. 다른 항공기로부터 멀리 떨어지십시오. 공항 근처에서 비행하지 마십시오. 사람이나 경기장 근처에서 비행하지 마십시오. 108

프로그래밍 및 코딩의 원리

무게가 55파운드를 초과하는 드론을 비행하지 마십시오. 다른 사람을 위험에 빠뜨리면 벌금을 내야 할 수도 있습니다. —Lindsay Rohland 참고문헌 Anderson, Chris 저. “국내 드론 붐을 내가 우연히 촉발한 방법.” 유선(2012년 6월). http://www.wired.com/2012/06/ff_drones/. 이 기사에서는 드론의 다양한 용도와 저자가 직접 드론을 제작했던 기억을 설명합니다. 보든, 마크. “프레데터 드론이 전쟁의 성격을 어떻게 바꾸었나요?” 스미소니언(2013년 11월). http://www.smithsonianmag.com/history/how-the-predator-drone-changed-the-character-of-war-3794671/?no-ist. 이 기사에서는 전쟁에서 드론, 특히 프레데터(Predator) 드론을 사용하는 방법에 대해 설명합니다. 에디치코, 리사. "드론 배송이 곧 현실이 되지 않을 이유가 여기에 있습니다." 시기(2015년 11월). http://time.com/4098369/amazongoogle-drone-delivery/. 이 기사에서는 드론 배송 서비스와 관련된 여러 가지 잠재적인 문제를 식별합니다. 뉴욕타임스 편집위원회. “드론이 우리를 지배하기 전에 지배하라.” 뉴욕 타임즈(2016년 1월 10일): SR10. http://www.nytimes. com/2016/01/10/opinion/sunday/drone-regulations-should-focus-on-safety-and-privacy.html?_ r=0. 이 기사에서는 드론 규제의 필요성에 대해 설명합니다. 리플리, 아만다. “드론에 대한 방어 플레이.” 대서양(2015년 11월). http://www. theatlantic.com/magazine/archive/2015/11/playing-defense-against-the-drones/407851/. 이 기사에서는 다양한 장소에서 드론과의 상호 작용 및 반응에 대해 설명합니다. 섭생, 아사윈. “드론: 알고 싶었지만 묻기 두려웠던 모든 것.” 마더 존스(2013년 3월). http://www.motherjones.com/politics/2013/03/drones-explained. 이 질문과 답변 기사에서는 드론에 대한 개요를 제공합니다. 미국 연방 항공국. https://www.faa. gov/uas/model_aircraft/. “모형 항공기 운영.” 2016년 2월에 액세스함.

프로그래밍 및 코딩의 원리

사이트에서는 취미로 드론을 조종하는 사람들을 위해 연방 항공국이 제정한 규칙과 규정을 소개합니다. 미국 연방 항공국. https://www.faa. gov/uas/model_aircraft/. “모형 항공기

드론

운영.” 2016년 2월 액세스. 이 사이트는 취미로 드론을 조종하는 사람들을 위해 연방 항공국이 제정한 규칙 및 규정을 식별합니다.

109

E E-BANKING 인터넷뱅킹 또는 온라인뱅킹이라고도 불리는 전자뱅킹은 금융기관 고객이 온라인 상에서 계좌명세부터 대출신청까지 금융거래를 할 수 있는 기회를 제공합니다. , 가상 환경. Bank of America 또는 Chase와 같은 대부분의 전통적인 은행은 고객이 오프라인 매장을 완전히 피할 수 있도록 광범위한 온라인 서비스를 제공합니다. 이러한 서비스에는 예금, 이체, 지불, 계정 관리, 예산 도구 및 대출 신청이 포함됩니다. 실제로 Ally와 같이 완전히 온라인으로 운영되는 여러 은행이 있습니다. 전자금융은 온라인 데이터 전송, 자동화된 데이터 수집 시스템 등 다양한 전자 및 모바일 기술을 기반으로 구축되었습니다. 세계 글로벌 시장에서 전자금융은 전자상거래의 성장에 중요한 역할을 했으며, 특히 상품과 서비스를 구매하고 판매하는 과정에서 사람과 기업이 상호 작용하는 방식에 있어 중요한 역할을 했습니다. 부분적으로 온라인 뱅킹의 증가로 인해 전자상거래는 소비자 환경에서 상당한 기반을 확보했으며 전자뱅킹과 전자상거래가 특정 지리적 위치에 국한되지 않기 때문에 많은 기업의 소비자 기반이 기하급수적으로 증가했습니다.

지리적 위치에 관계없이 거의 즉각적으로 금융 거래가 이루어집니다. 그러나 계정 정보의 온라인 보안은 온라인 뱅킹 업계와 고객 모두의 관심사입니다. 이로 인해 무단 사용, 공개, 액세스, 수정 또는 파괴로부터 정보를 보호하는 정보 보안 산업(infosec)이 등장했습니다. Infosec은 형태에 관계없이 모든 정보에 적용되며 두 가지 주요 범주로 구성됩니다. 정보 보증은 도난, 자연 재해 또는 기술적 오작동으로 인해 시스템 보안이 붕괴되어 데이터가 손실되지 않도록 보장하는 기능입니다. 정보가 상주하는 컴퓨터 네트워크에 적용되는 보안인 IT 보안입니다. 정보 기술 및 관련 보안 요소의 개선은 e뱅킹 산업에 필수적이며 독점 및 기밀 정보를 보호하기 위한 안정적이고 효과적인 보안 관행을 육성합니다. 전반적으로 소비자는 온라인 환경에서 점점 더 많은 활동을 하고 있으며 스마트폰 및 기타 장치에 대한 온라인 기능을 요구하고 있습니다. 기업과 은행은 안전한 애플리케이션과 환경을 제공함으로써 이러한 추세에 계속 적응할 것입니다.

개요 현대 금융은 더 이상 지리적 위치에 의존하지 않습니다. 대신 업계는 온라인, 가상 환경을 선호하는 소비자를 수용하게 되었습니다. 실제로 일부 은행은 온라인으로만 운영됩니다. 전자 뱅킹의 한 가지 이점은 일반적으로 고객에게 전달되는 오프라인 매장과 관련된 간접비를 줄이는 것입니다. 다른 이점으로는 고객이 금융 계좌 및 보유 자산을 관리할 수 있는 편의성과 즉각적인 액세스가 있습니다. 전자금융은 글로벌 시장에서의 전자상거래 환경의 성공에도 큰 역할을 하고 있다.

-엘. L. 런딘, 매사추세츠

110

참고문헌 Cavusgil, S. Tamer, et al. 국제 비즈니스: 새로운 현실. 프렌치 숲, 2015. 인쇄. Chau, S.C. 및 M.T.Lu. “인터넷 뱅킹 채택 및 이용 행태 이해: 홍콩의 관점.” 글로벌 정보 관리 저널 12.3 (2009): 21–43. 인쇄. 달버그(Dahlberg), T., 그 외 여러분. “모바일 결제 연구의 과거, 현재, 미래: 문헌 검토.”

프로그래밍 및 코딩의 원리

이러닝

전자상거래 연구 및 응용 7.2(2008): 165-81. 인쇄. Demirkan, H. 및 RJ Kauffman. “서비스 지향 기술과 경영: 다가오는 10년을 위한 연구와 실천에 대한 관점.” 전자상거래 연구 및 응용 7.4(2008): 356-76. 인쇄. 폭스, 수잔나. “미국 성인 은행 온라인의 51%.” 퓨 인터넷(Pew Internet): 퓨 인터넷 & 아메리칸 라이프 프로젝트(Pew Internet & American Life Project). 퓨 리서치 센터. 2013년 8월 7일. 웹. 2013년 8월 20일. Gkoutzinis, Apostolos. 인터넷 뱅킹 및 유럽의 법률: 규제, 금융 통합 및 전자 상거래. 캠브리지 UP, 2010. 인쇄.

Hoehle, Hartmut, Eusebio Scornavacca 및 Sid Huff. “소비자의 전자금융 채널 활용 및 채택에 관한 30년간의 연구: 문헌 분석.” 의사결정 지원 시스템 54.1(2012): 122-32. 인쇄. Lee, M. C. “인터넷 뱅킹 채택에 영향을 미치는 요인: 인지된 위험 및 인지된 이익과 TAM 및 TPB의 통합.” 전자상거래 연구 및 응용 8.3(2009): 130–41. 인쇄. 산토라, 마크. “도둑들은 몇 시간 만에 ATM에서 4,500만 달러를 훔쳤습니다. 계획." New York Times 2013년 5월 9일, New York 에디션: A1. 인쇄.

E-러닝 E-러닝은 통신 기술을 활용하여 학생들의 학습 환경을 확장합니다. 인터넷은 학생이 배우고 교사가 가르치는 방식에 큰 영향을 미쳤습니다. e-러닝, 즉 전자 학습은 학습 환경을 이 가상 영역으로 확장합니다. E-러닝은 온라인 컴퓨터 기반 환경에서 이루어지며 광범위한 교육 기술과 실습을 다룹니다. 여기에는 온라인 교육 프레젠테이션, 대화형 수업, 컴퓨터 지원 수업 중 프레젠테이션이 포함됩니다.

상병 아프가니스탄 해병 원정 여단의 재정 관리 자원 분석가인 채드 터커(Chad Tucker)는 2월 20일 이곳에서 하루를 마감하면서 공부하고 있습니다. 터커처럼 많은 해병대원들도 배치되는 동안 온라인 교육을 활용했습니다.

개요 온라인 학습 또는 가상 교육이라고도 하는 e-러닝은 공립 고등학교나 대학에서 일반적으로 사용됩니다. 텍스트, 스트리밍 비디오, 인스턴트 메시징, 문서 공유 소프트웨어, Blackboard 학습 환경, 웹캠, 블로그 및 스트리밍 비디오를 포함하되 이에 국한되지 않는 다양한 전자 미디어를 사용할 수 있습니다. E-러닝의 주요 이점은 다양한 학생이 교육에 더 폭넓게 접근할 수 있다는 것입니다. 학생, 동료, 교사 간의 협력적 상호 작용; 기술적 능력과 지식의 개발; 그리고 독립적인 공부. E-러닝은 원격 학습이나 모바일 학습과 동의어가 아닙니다. 대신 e-러닝은 교육 영역을 완료하기 위해 온라인 컴퓨터 기반 기술을 사용하는 것만을 의미합니다. e-러닝은 교실 안팎에서 이루어질 수 있으며 교사가 실시간으로 지도하거나 학생이 설정한 속도로 완료할 수 있습니다. 단, 많은 e-러닝 코스에는 이 두 가지 시나리오의 일부 하이브리드 버전이 포함되어 있습니다. 가상 학습 환경은 일반적으로 협업적이며 이러한 관계를 촉진하기 위해 블로그나 위키 항목을 통합하는 경우가 많습니다. 연구자들은 제시된 정보가 설계상 일관되고 관련 없는 자료나 정보를 포함하지 않을 때 e-러닝의 성공이 더욱 복잡해진다고 제안합니다. 교육자들은 학생들과 함께 e-러닝 환경을 사용할 때 111

이러닝

강사는 여전히 훌륭한 교육학적 관행과 기술을 기반으로 삼아야 합니다. 또한 많은 교육자들은 학생과 교사, 학생과 동료 간의 상호 작용이 e-코스를 성공적으로 이수하는 데 매우 중요하다고 언급합니다. 그러나 2013년 연구에서 Fain은 커뮤니티 칼리지의 97%가 온라인 과정을 제공하는 반면 해당 기관에 다니는 학생 중 단 3%만이 온라인 학위 프로그램에 등록했다고 보고했습니다. 대부분의 학생들은 대면 교육 환경, 특히 과학 및 외국어 수업에서 더 잘 배웠다고 느꼈습니다. e-러닝은 또한 대학 교육 구조의 최전선에 있으며, 상당수의 대학 커리큘럼이 온라인 e-러닝 환경에서만 진행되는 과정을 제공합니다. 대규모 공개 온라인 강좌(MOOC)라고 불리는 이러한 강좌는 전 세계 누구에게나 무료로 제공되는 경우가 많습니다. 또한 다른 대학에서는 e-러닝을 한 단계 더 발전시켜 완전히 모바일 학습 프로그램을 구축하고 학생들이 e-러닝 형식으로 학사 또는 석사 학위 프로그램을 이수할 수 있는 온라인 고등교육 프로그램을 구축했습니다. 미국 교육부는 조사에 참여한 고등 교육 기관 중 62%가 2011-12학년도에 온라인 교육 과정을 제공했다고 보고했습니다. 2012년 한 연구에서 Groux는 온라인 학생의 "소득, 인종 및 민족성"이 기존 과정의 동료와 동일하지만 온라인 과정을 수강하는 학생은 기존 학생보다 나이가 많은 경향이 있다고 보고했습니다. 30세 미만의 학생이 있고 25세 미만의 학생은 20%에 불과합니다. Kolowich는 2012년 연구에서 온라인 학생의 60%가 백인이고, 20%가 아프리카계 미국인, 8%가 히스패닉이라고 보고했습니다. 또한 E-러닝은 많은 회사와 조직에서 직원들에게 다양한 주제에 대한 최신 정보를 제공하고 조직의 정책 및 관행을 준수하도록 보장하기 위해 구현되고 있으며 완전한 온라인 환경에서 교육 세미나를 제공합니다. 이를 통해 학생의 학습 부담을 덜어줌으로써 리소스를 확보할 수 있습니다.

112

프로그래밍 및 코딩의 원리

인력 교육과 관련된 일부 감독 및 인적 자원 비용. —Laura L. Lundin, MA 참고문헌 Berge, Zane L., Lin Muilenburg. 모바일 학습 핸드북. 뉴욕: 루트리지, 2013. 인쇄. 디커스, 숀, 존 마틴, 밥 쿨터. 모바일 미디어 학습: 학습을 위한 모바일 장치의 놀라운 활용. 피츠버그: ETC P, Carnegie Mellon U, 2011. 인쇄. 페인, 폴. “가끔 온라인에서만.” 고등교육 내부. Inside Higher Ed., 2013년 4월 26일. 웹. 2014년 9월 14일. Groux, Catherine. “연구는 온라인 학습자의 특성을 분석합니다.” 배움의집. Learning House, 2012년 7월 27일. 웹. 2014년 9월 14일. Hill, Janette R., Llyan Song 및 Richard E. West. “사회 학습 이론과 웹 기반 학습 환경: 연구 및 토론 시사점 검토.” 미국 원격 교육 저널 23.2 (2009): 88–103. 인쇄. 콜로비치, 스티브. “온라인 학생.” 고등교육 내부. Inside Higher Ed., 2012년 7월 25일. 웹. 2014년 9월 14일. Mayer, Richard E. 멀티미디어 학습을 위한 캠브리지 핸드북. 뉴욕: 캠브리지 UP, 2005. 인쇄. Rosenberg, Marc J. E-Learning: 디지털 시대의 지식 전달 전략. 뉴욕: McGraw, 2001. 인쇄. 연어, 길리. E-조정: 온라인 교육 및 학습의 핵심. 런던: 코간. 2003. 인쇄. Tu, Chih-Hsiung 및 Marina McIsaac. “온라인 수업에서의 사회적 존재감과 상호작용의 관계.” 미국 원격 교육 저널 16.3 (2002): 131-50. 인쇄. Wang, C., D. M. Shannon 및 M. E. Ross. “온라인 학습의 학생 특성, 자기 조절 학습, 기술 자기 효능감 및 수업 결과.” 원격 교육 34.3(2013): 302-23. 인쇄. 우딜, 게리. 모바일 학습의 이점: 팀 개발을 위한 도구 및 기술. 뉴욕: McGraw, 2011. 인쇄.

프로그래밍 및 코딩의 원리

전자 회로

전자회로

집적 회로 전자 회로의 가장 중요한 발전은 20세기 중반의 집적 회로(IC) 개발이었습니다. IC는 단순히 여러 전자 회로를 포함하는 반도체 칩입니다. 그 발전은 1947년 트랜지스터의 발명으로 가능해졌습니다. 이전에는 진공관을 통해 전류를 전환하거나 증폭시켰습니다. 진공관은 트랜지스터보다 훨씬 느리고 부피가 크며 효율성이 떨어집니다. 최초의 디지털 컴퓨터인 ENIAC(Electronic Numerical Integrator and Computer)은 약 18,000개의 진공관을 포함하고 무게가 30톤이 넘었습니다. 트랜지스터가 진공관을 대체하면 전자 회로를 훨씬 더 작게 만들 수 있습니다. 그리고

또는

그리고 또는

그리고

그리고

그리고 아니다

+

+

그리고

2

그리고

1

전기 회로 대 전자 회로 전기 회로는 1745년 라이덴병이 발견된 이후 수년에 걸쳐 개발되었습니다. 전기 회로는 단순히 전류가 이동할 수 있는 경로입니다. 주요 구성 요소에는 저항기, 인덕터 및 커패시터가 포함됩니다. 저항은 회로를 통해 흐르는 전류의 양을 제어합니다. 전기 저항을 제공하기 때문에 그렇게 불립니다. 인덕터와 커패시터는 모두 에너지를 저장합니다. 인덕터는 자기장에 에너지를 저장하는 반면

또는 및

1

BCD-7 세그먼트 디코더/드라이버: 4비트 이진 코드 십진수(BCD) 입력을 7세그먼트 디지털 디스플레이로 출력할 수 있는 십진수로 변환하는 논리 게이트입니다. 카운터: 주어진 시간 간격 동안 특정 이벤트가 몇 번이나 발생했는지 기록하는 디지털 순차 논리 게이트입니다. 인버터: 출력이 입력의 반대인 논리 게이트; NOT 게이트라고도 합니다. 네거티브-AND(NAND) 게이트: 두 입력이 모두 참인 경우에만 잘못된 출력을 생성하는 논리 게이트 프로그래밍 가능 발진기: 사용자 수정을 통해 작동 모드를 결정할 수 있도록 두 가지 상태 사이를 오가는 전자 장치. 재트리거 가능한 단일 샷: 트리거될 때 단일 펄스를 출력하지만 출력 펄스 중에 새로운 트리거를 식별하여 펄스 시간을 다시 시작하고 출력을 확장할 수 있는 단안정 멀티바이브레이터(MMV) 전자 회로입니다.

1

주요 약관

아니다

또는

또는

그리고

그리고 그리고

5

전자 회로는 전류를 적극적으로 조작합니다. 수년 동안 이러한 회로는 컴퓨터 시스템 및 TV와 같은 중요한 가전 제품의 일부였습니다. 정보 처리에서 가장 중요한 혁신은 전력 효율적이고 작으며 강력한 기능을 갖춘 집적 회로였습니다. 집적 회로는 수많은 일상 기기의 기본 작동 장치를 형성합니다.

1

추상적인

1

컴퓨터 공학

커패시터는 이를 전기장에 저장합니다. 라이덴병은 정전기를 저장하도록 설계된 최초의 축전기였습니다. 전자회로는 전기회로의 일종이다. 그러나 한 가지 중요한 측면에서 기본 전기 회로와 다릅니다. 전기 회로는 수동적으로 전류를 전도하는 반면, 전자 회로는 전류를 능동적으로 조작합니다. 전기 회로의 수동 구성 요소 외에도 전자 회로에는 트랜지스터 및 다이오드와 같은 능동 구성 요소도 포함됩니다. 트랜지스터는 스위치처럼 작동하는 반도체이다. 전자 신호를 증폭하거나 켜거나 끌 수 있습니다. 다이오드는 한 방향에서는 전기 저항이 매우 낮고 다른 방향에서는 전기 저항이 매우 높은 도체입니다. 전류의 흐름을 지시하는 데 사용됩니다.

연구 분야

아니다

전자 회로는 일련의 논리 게이트를 사용하여 특정 방식으로 회로를 통해 전하를 보내도록 설계되었습니다. 이 논리 게이트는 충전 출력과 그에 따른 회로 출력을 제어합니다. 이 예에서 회로는 일련의 AND, OR 및 NOT 명령을 사용하여 두 개의 이진수를 더하여 충전 경로와 각 회로 구성 요소의 결과 출력을 결정하도록 설계되었습니다.

113

전자 회로

1958년까지 몇몇 과학자들은 이미 IC 구성에 대한 아이디어를 제안했습니다. 그 해에 Texas Instruments의 과학자인 Jack Kilby가 처음으로 이 아이디어를 실행에 옮겼습니다. 그는 단일 반도체 재료 블록으로 완전히 구성된 칩을 설계했습니다. 개별 구성 요소가 없었기 때문에 회로를 수동으로 조립할 만큼 클 필요가 없었습니다. 칩의 회로 수는 칩에 들어갈 수 있는 트랜지스터 수에 의해서만 제한되었습니다. 초기 IC에는 각각 몇 개의 트랜지스터만 포함되어 있었습니다. 21세기에는 IC당 가능한 최대 트랜지스터 수가 수십억 개에 이르렀습니다.

논리 게이트 전류의 활성 조작은 논리 게이트를 통해 수행됩니다. 논리 게이트는 부울 함수를 구현하는 전자 회로입니다. 광범위하게 말하면 부울 함수는 주어진 규칙에 따라 두 가지 잠재적 출력(0 또는 1) 중 하나를 생성하는 함수입니다. 트랜지스터는 두 가지 값(예: "on" 또는 "off") 중 하나를 취할 수 있는 스위치로 작동하므로 논리 게이트를 구현하는 데 이상적입니다. 대부분의 논리 게이트는 두 개의 입력을 받아 단일 출력을 생성합니다. 논리 게이트에는 AND, OR, NOT, XOR, NAND, NOR 및 XNOR의 7가지 기본 유형이 있습니다. 이러한 논리 게이트는 각각 "false"와 "true"를 나타내는 두 개의 입력 값인 0과 1만 허용합니다. 각 입력 조합에 의해 생성되는 출력에 따라 서로 구별됩니다. AND 게이트: 두 입력이 모두 참인 경우에만 출력이 참입니다(1). 그렇지 않으면 출력은 거짓(0)입니다. OR 게이트: 두 출력이 모두 거짓인 경우에만 출력이 거짓(0)입니다. 그렇지 않으면 출력은 true입니다(1). NOT 게이트: 입력이 거짓(0)이면 출력은 참(1)이고 그 반대도 마찬가지입니다. NOT 게이트는 하나의 입력만 받아 역수를 출력하므로 인버터라고도 합니다. 배타적 OR(XOR) 게이트: 출력은 참입니다(1) 입력이 다른 경우, 즉 입력 하나만 참인 경우; 두 입력이 모두 동일하면 출력은 거짓(0)입니다. 네거티브-AND(NAND) 게이트: 모든 입력이 참(1)이면 출력은 거짓(0)입니다. 그렇지 않으면 출력은 true입니다. NAND 게이트는 기본적으로 AND 게이트 뒤에 인버터 NOR 게이트가 옵니다. 두 입력이 모두 거짓(0)인 경우에만 출력이 참(1)입니다. 그렇지 않으면 출력은 false입니다. NOR 게이트는 OR 게이트 뒤에 인버터가 오는 것입니다. 114

프로그래밍 및 코딩의 원리

배타적 NOR(XNOR) 게이트: 두 입력이 모두 같으면 출력은 참(1)이고 다르면 거짓(0)입니다. XNOR 게이트는 XOR 게이트 뒤에 인버터가 오는 것입니다. 전자 회로는 전기 펄스 형태로 이진 데이터를 전송합니다. 여기서 예를 들어 0과 1은 서로 다른 전압의 펄스로 표시됩니다. 이 7개의 게이트를 다양한 방식으로 결합하여 더욱 복잡한 작업을 완료할 수 있습니다. 예를 들어, BCD-7세그먼트 디코더/드라이버는 카운터의 이진 데이터를 십진수 디스플레이로 변환하는 논리 게이트입니다. "7 세그먼트"는 디지털 시계 및 기타 장치에 흔히 사용되는 숫자 표시 시스템을 의미하며, 각 숫자는 최대 7개의 짧은 평행선 또는 수직선 세그먼트로 표시됩니다. 또 다른 복잡한 회로는 재트리거 가능한 단발입니다. 일정 길이의 출력 펄스를 발생시킨 후, 입력이 반복되면 출력을 무한정 연장할 수 있는 일종의 시간 지연 계전기 회로입니다. 이것의 목적은 프로그래밍 가능한 발진기와 같은 다른 회로의 타이밍을 변경하는 것입니다.

집적회로 없는 삶 가전제품, 컴퓨터 시스템, 모바일 장치 등 전자 회로는 현대 생활을 가능하게 합니다. 이런 첨단 전자회로가 없으면

샘플 문제 두 입력 값(0과 1)의 가능한 모든 조합에 대해 NAND 논리 게이트의 출력을 결정합니다. 답변: AND 게이트와 NOT 게이트의 조합은 NAND 논리 게이트를 형성합니다. 각 입력 조합의 출력은 AND 게이트 출력의 반대입니다. NAND 게이트는 두 입력의 네 가지 가능한 조합을 수용하고 다음과 같이 출력을 생성합니다. 0,0 = 1 0,1 = 1 1,0 = 1 1,1 = 0

프로그래밍 및 코딩의 원리

전자 통신 소프트웨어

IC, 개인용 컴퓨터 및 소형 휴대용 전자 장치는 존재할 수 없습니다. 수년에 걸친 개선에도 불구하고 IC는 실리콘 기반 설계를 유지해 왔습니다. 과학자들은 IC를 대체할 유일한 것은 생물학적 기반의 새로운 회로 기술이 될 것이라고 예측하고 있다. —Melvin O 참고문헌 Frenzel, Louis E., Jr. Electronics 설명: 전자 학습에 대한 새로운 시스템 접근 방식. 벌링턴: Elsevier, 2010. 인쇄.

해리스, 데이비드 머니, 사라 L. 해리스. 디지털 디자인 및 컴퓨터 아키텍처. 2판 월섬: 모건, 2013. 인쇄. “집적회로의 역사.” Nobelprize.org. 노벨미디어, 2014. 웹. 2016년 3월 31일. Kosky, Philip, et al. 엔지니어링 탐구: 엔지니어링 및 디자인 소개. 4판 월섬: 학술, 2016. 인쇄. 툴리, 마이크. 전자 회로: 기본 및 응용. 4판 뉴욕: 루트리지, 2015. 인쇄. 윌슨, 피터. 회로 설계자의 동반자. 3판 월섬: Newnes, 2012. 인쇄.

전자 통신 소프트웨어 연구 분야 정보 시스템; 정보 기술 개요 전자 통신 소프트웨어는 인터넷이나 기타 전송 및 수신 기술을 통해 정보를 전송하는 데 사용됩니다. 기술이 발전함에 따라 전자 통신 소프트웨어는 컴퓨터를 사용하는 텍스트 기반 인스턴트 메시징부터 지구 반대편의 휴대폰 간에 전송되는 SMS 메시지에 이르기까지 다양한 새로운 형태를 취했습니다. 전자 통신 소프트웨어를 사용하면 사람들은 오디오와 비디오를 사용하여 실시간으로 통신하고 텍스트, 사진 및 기타 데이터가 포함된 디지털 파일을 교환할 수 있습니다. 주요 조항 전자 통신 개인정보 보호법(ECPA): 미국 정부가 컴퓨터 간의 개인 통신을 침해하는 것을 제한하기 위해 1986년에 제정된 규정입니다. 멀티캐스트: 단일 수신자가 아닌 여러 수신자에게 전송이 브로드캐스트되는 네트워크 통신 프로토콜입니다. 푸시 기술: 사용자가 새 메시지를 확인할 때까지 기다리지 않고 서버가 메시지를 수신하자마자 메시징 서버가 수신자에게 알리는 통신 프로토콜입니다.

단문 메시지 서비스(SMS): 휴대폰에서 사용되는 문자 메시지 기반 기술. VoIP(Voice over Internet Protocol): 전화선을 통한 아날로그 신호가 아닌 인터넷을 통해 전화 통화가 디지털 방식으로 전송될 수 있도록 하는 매개변수 집합입니다.

비동기식 통신 많은 유형의 전자 통신 소프트웨어는 비동기식입니다. 이는 메시지를 보낸 사람과 받는 사람이 서로 다른 시간에 통신한다는 의미입니다. 이러한 유형의 전자 통신 소프트웨어의 전형적인 예는 이메일입니다. 전자 메일은 사람이 메시지를 보낼 때 먼저 서버로 이동한 다음 수신자에게 전달되기 때문에 비동기식입니다. 서버는 푸시 기술을 사용하여 메시지가 대기 중임을 수신자에게 알릴 수 있습니다. 그런 다음 서버에서 메시지를 검색하고 읽을 시기를 결정하는 것은 수신자의 몫입니다. 이메일은 비동기식 전자 통신의 초기 형태인 게시판 시스템에서 발전했습니다. 1980년대와 그 이전에는 집에서 인터넷이 널리 보급되기 전에는 대부분의 사람들이 전화 접속 모뎀을 사용하여 온라인에 접속했습니다. 전화 접속 모뎀은 컴퓨터가 전화선을 통해 다른 컴퓨터에 연결할 수 있게 해주는 장치입니다. 연결하려면 첫 번째 컴퓨터가 다른 컴퓨터의 전화선에 할당된 전화번호로 전화를 겁니다. 이런 식으로 연결하는 것은 광대역 인터넷 접속에 비해 느리고 번거로웠습니다.

전자 통신 소프트웨어

전자 통신 소프트웨어는 다양한 용도를 만족시키기 위해 다양한 형태를 가지고 있습니다. 가장 인기 있는 소셜 미디어 및 커뮤니케이션 회사는 개인 및/또는 공개 공유 및 네트워크 게시, 저장, 기여, 구독, 다양한 형식에 대한 댓글 달기 등 전자 커뮤니케이션에 중요하다고 간주되는 속성을 사용자에게 제공하는 프로그래밍을 구현합니다.

오늘은 흔한 일. 이는 부분적으로 전화선이 한 번에 한 가지 목적으로만 사용될 수 있어 사용자가 온라인 상태에서는 전화를 받을 수 없었기 때문입니다. 사용자들은 짧은 순간에만 온라인에 접속하는 경향이 있었기 때문에 온라인 게시판 시스템(BBS)에 서로 메시지를 남기곤 했습니다. 이메일과 마찬가지로 메시지는 수신자가 로그온하여 기다리고 있음을 확인할 때까지 BBS에 남아 있었습니다. 비동기 통신의 또 다른 인기 있는 방법은 문자 메시지입니다. 문자 메시지를 사용하면 한 휴대폰에서 다른 휴대폰으로 짧은 메시지를 보낼 수 있습니다. 문자 메시지 뒤에 숨겨진 통신 프로토콜 기술을 SMS(Short Message Service)라고 합니다. SMS 메시지는 160자로 제한됩니다. 어떤 종류의 휴대폰을 사용해도 주고받을 수 있기 때문에 널리 사용됩니다.

동기식 통신 다른 형태의 전자 통신 소프트웨어는 동기식 통신을 허용합니다. 이는 수신자와 발신자가 동시에 통신 매체를 통해 상호 작용한다는 것을 의미합니다. 동기식 통신의 가장 친숙한 예는 전화이며, 최근에는 휴대폰이 있습니다. 사용자는 아날로그 프로토콜이나 VoIP(Voice over Internet Protocol)를 사용하여 장치에 말합니다. 그들의 말은 장치의 통신 소프트웨어에 의해 전자 신호로 변환된 다음 수신자에게 전송됩니다. 가끔 사소한 116이 있습니다.

프로그래밍 및 코딩의 원리

네트워크 지연으로 인한 지연. 그러나 대부분의 대화는 당사자들이 직접 대면하는 경우와 동일한 방식으로 이루어집니다. 전자 동기 통신의 또 다른 형태는 인스턴트 메시징 또는 채팅입니다. 인스턴트 메시징은 여러 사용자가 컴퓨터나 모바일 장치를 사용하여 서로에게 메시지를 입력할 때 발생합니다. 사용자가 메시지를 보낼 때마다 수신자의 화면에 메시지가 팝업으로 표시됩니다. 채팅은 두 사용자 간에 이루어질 수도 있고, 한 사람이 메시지를 입력하면 여러 사람이 메시지를 받는 멀티캐스트 형식을 취할 수도 있습니다. 멀티캐스트는 비동기적으로 전달될 수도 있습니다. 이러한 전자 커뮤니케이션의 예로는 공연자가 디지털 카메라를 이용해 자신의 모습을 촬영한 후 유튜브 등 온라인 플랫폼에 게시하는 경우를 들 수 있다. 그런 다음 해당 동영상은 제작자가 동영상을 게시 중단하기로 결정할 때까지 다른 사람이 언제든지 볼 수 있도록 온라인에 유지됩니다. 이러한 유형의 전자 통신은 시청자가 과거 텔레비전 방송의 경우처럼 공연을 보기 위해 미리 정해진 시간에 온라인에 접속할 필요가 없기 때문에 매우 인기가 높습니다.

개인 정보 보호에 대한 우려 전자 통신 소프트웨어의 급속한 성장으로 인해 규제 당국은 어느 정도 방심했습니다. 정부가 전화를 사용하여 개인 통신을 도청하는 것을 방지하기 위해 많은 보호 장치가 마련되어 있었습니다. 그러나 1980년대 후반 ECPA(Electronic Communications Privacy Act)가 통과될 때까지는 전자 통신에 대한 유사한 보호가 부족했습니다. 이 법안은 기존의 많은 통신 보호를 VoIP 통화, 이메일, SMS 메시지, 채팅 및 인스턴트 메시징 로그, 기타 유형의 통신으로 확장했습니다. 최첨단 전자 통신 소프트웨어의 최신 형태 중 일부는 가능성의 경계를 넓히고 있습니다. 대표적인 것이 휴대폰을 이용한 영상통화다. 이 기술은 많은 소비자 장치에서 사용할 수 있지만 일부 위치에서 사용 가능한 대역폭의 양에 따라 유틸리티가 제한되는 경우가 많습니다. 이로 인해 비디오 품질이 저하되고 사용자 간의 응답이 눈에 띄게 지연됩니다. —스콧 짐머, JD

프로그래밍 및 코딩의 원리

암호화

참고문헌 Bucchi, Massimiano 및 Brian Trench, eds. 과학과 기술의 대중 커뮤니케이션에 관한 Routledge 핸드북. 2판 뉴욕: 루트리지, 2014. 인쇄. Cline, Hugh F. 정보통신기술과 사회변혁: 사회적, 역사적 관점. 뉴욕: 루트리지, 2014. 인쇄. 깁슨, 제리 D., 에디션. 모바일 커뮤니케이션 핸드북. 3판 보카 레이톤: CRC, 2012. 인쇄.

Gillespie, Tarleton, Pablo J. Boczkowski 및 Kirsten A. Foot, eds. 미디어 기술: 커뮤니케이션, 물질성 및 사회에 관한 에세이. 케임브리지: MIT P, 2014. 인쇄. 하트, Archibald D. 및 Sylvia Hart Frejd. 디지털 침략: 기술이 귀하와 귀하의 관계를 형성하는 방법. 그랜드래피즈: 베이커, 2013. 인쇄. Livingston, Steven, Gregor Walter-Drop, 편집. 비트와 원자: 제한된 국가 영역의 정보 및 통신 기술. 뉴욕: 옥스퍼드 UP, 2014. 인쇄.

암호화 연구 분야 보안; 은둔; 알고리즘 개요 암호화는 비밀번호나 암호화 키에 접근할 수 있는 사람만 접근할 수 있도록 정보를 인코딩하는 것입니다. 암호화는 데이터 전송에 대한 무단 가로채기나 액세스를 방지하는 대신 데이터 콘텐츠를 보호합니다. 이는 정보 및 보안 조직과 사용자 데이터를 보호하도록 설계된 개인 보안 소프트웨어에서 사용됩니다. 기본 용어 비대칭 키 암호화: 공개 암호화 키를 사용하여 데이터를 암호화하지만 다른 개인 키를 통해서만 해독할 수 있는 프로세스입니다. 인증: 암호화된 데이터를 받는 사람이 보낸 사람의 신원이나 데이터의 진위 여부를 확인할 수 있는 프로세스입니다. 해싱 알고리즘: 문자열을 다른, 일반적으로 주어진 길이의 더 작은 문자열로 변환하는 컴퓨팅 기능으로, 원본 데이터와 사용된 알고리즘을 모두 알지 못하면 이상적으로 복제가 불가능합니다. Pretty Good Privacy: 암호화와 인증을 모두 제공하는 1991년에 만들어진 데이터 암호화 프로그램입니다.

암호화 및 암호화 암호화는 올바른 암호화 키를 가진 사람만 읽을 수 있는 코드로 데이터를 변환하는 프로세스입니다. 무단 가로채기를 방지하는 것보다 데이터 콘텐츠를 보호하는 데 중점을 둡니다. 암호화는 정보 및 국가 안보에 필수적이며 상업용 애플리케이션에서도 일반적입니다. 사용자가 개인 데이터와 디지털 메시지를 암호화할 수 있는 다양한 소프트웨어 프로그램을 사용할 수 있습니다. 다양한 암호화 기술에 대한 연구를 "암호화"라고 합니다. 암호화되지 않은 원본 데이터를 "일반 텍스트"라고 합니다. 암호화는 "암호화"라는 알고리즘을 사용하여 일반 텍스트를 암호문으로 변환합니다. 그런 다음 암호문은 "암호 해독 키" 또는 "암호 키"라고 알려진 다른 알고리즘을 사용하여 해독될 수 있습니다. 암호화 유형 키는 일반 텍스트를 암호 텍스트로 변환하거나 그 반대로 변환하기 위해 일반 텍스트에 적용되는 문자열입니다. 사용된 키에 따라 암호화는 대칭 또는 비대칭이 될 수 있습니다. 대칭 키 암호화는 인코딩과 디코딩 모두에 동일한 키를 사용합니다. 데이터를 인코딩하고 디코딩하는 데 사용되는 키는 비밀로 유지되어야 합니다. 키에 액세스할 수 있는 사람은 누구나 암호문을 일반 텍스트로 변환할 수 있기 때문입니다. 가장 오래된 알려진 암호화 시스템은 대칭 암호화 유형인 영숫자 대체 알고리즘을 사용했습니다. 대칭 키 알고리즘은 생성이 간단하지만 가로채기에 취약합니다. 비대칭 키 암호화에서는 발신자와 수신자가 서로 다르지만 관련된 키를 사용합니다. 먼저, 수신기(117)

프로그래밍 및 코딩의 원리

암호화

명확한 문구

암호문 암호화

이것은 분명하다

그 어느 때보 다

해독 암호화하지 않으면 해당 언어를 아는 사람은 누구나 이 텍스트를 읽을 수 있습니다.

암호화 해독

Vozi fg tfeknhzogf, ziol ztbz eqf wt ktqr wn qfngft vig afgvl zit sqf*ckqut.

공개 키를 기반으로 개인 키를 결정하는 것은 비현실적입니다. 이러한 복잡성은 또한 비대칭 암호화가 더 느리고 더 많은 처리 능력이 필요하다는 것을 의미합니다. 1970년대에 처음 개발된 비대칭 암호화는 인터넷 데이터 전송을 보호하는 데 사용되는 암호화의 표준 형식입니다.

이 다이어그램은 암호화된 콘텐츠와 해시된 콘텐츠의 출력을 보여줍니다. 텍스트가 암호화되면 출력은 입력과 동일한 크기가 되며 암호를 해독하여 원래 입력을 표시할 수 있습니다. 텍스트가 해시되면 모든 크기의 입력이 미리 결정된 크기(일반적으로 128비트)의 출력으로 축소됩니다. 출력은 해독할 수 없으며 알려진 해시 값과 비교해야만 인증됩니다.

인증 및 보안 인증은 보낸 사람의 신원이나 보낸 데이터의 신뢰성을 확인하는 프로세스입니다. 일반적인 인증 방법은 데이터 문자열을 "해시 값"이라고 알려진 고정 길이 숫자 시퀀스로 변환하는 해싱 알고리즘입니다. 이 값은 동일한 알고리즘을 사용하여 원래 데이터로 되돌릴 수 있습니다. 해싱 알고리즘의 수학적 복잡성으로 인해 사용된 정확한 알고리즘을 알지 못하면 해시된 데이터를 해독하는 것이 매우 어렵습니다. 예를 들어, 128비트 해싱 알고리즘은 2,128개의 서로 다른 해시 값을 생성할 수 있습니다. 메시지 등 전송된 데이터를 인증하기 위해 발신자는 먼저 해당 데이터를 해시 값으로 변환할 수 있습니다. "메시지 다이제스트"라고도 하는 이 값은 보낸 사람에게 고유한 개인 키를 사용하여 암호화될 수 있습니다. 이렇게 하면 메시지의 신뢰성과 보낸 사람의 신원을 확인하는 디지털 서명이 생성됩니다. 해시되지 않은 원본 메시지는 수신자의 개인 키에 해당하는 공개 키를 사용하여 암호화됩니다. 개인적으로 암호화된 다이제스트와 공개적으로 암호화된 메시지는 모두 수신자에게 전송되며 수신자는 개인 키를 사용하여 원본 메시지를 해독하고 보낸 사람의 공개 키를 사용하여 메시지 다이제스트를 해독합니다. 그러면 수신자는 발신자와 동일한 알고리즘을 사용하여 원본 메시지를 해시합니다. 메시지가 진짜라면 해독된 다이제스트와 새 다이제스트가 일치해야 합니다.

알고리즘을 사용하여 두 개의 키를 생성합니다. 하나는 데이터를 암호화하고 다른 하나는 데이터를 해독합니다. "공개 키"라고도 하는 암호화 키는 수신자에게 메시지를 보내려는 사람이라면 누구나 사용할 수 있습니다. (이러한 이유로 비대칭 키 암호화는 "공개 키 암호화"라고도 합니다.) 해독 키, 즉 개인 키는 수신자에게만 알려집니다. 개인키를 이용해 데이터를 암호화하고, 공개키를 이용해 복호화하는 것도 가능하다. 그러나 동일한 키를 암호화와 복호화에 모두 사용할 수는 없습니다. 비대칭 키 암호화가 작동하는 이유는 공개 키와 개인 키를 생성하는 데 사용되는 수학적 알고리즘이 너무 복잡해서 계산이 불가능하기 때문입니다.

실제 암호화 시스템 가장 일반적으로 사용되는 암호화 프로그램 중 하나는 PGP(Pretty Good Privacy)입니다. 1991년에 개발되었으며 대칭 및 비대칭 키 암호화를 결합합니다. 원본 메시지는 "세션 키"라고 하는 고유한 일회성 개인 키를 사용하여 암호화됩니다. 그런 다음 세션 키는 수신자의 공개 키를 사용하여 암호화되므로 수신자의 개인 키를 통해서만 해독할 수 있습니다. 이 암호화된 키는 암호화된 메시지와 함께 수신자에게 전송됩니다. 수신자는 개인 키를 사용하여 세션 키를 해독한 다음 메시지를 해독하는 데 사용할 수 있습니다. 보안과 인증을 강화하려면

암호화 코드를 사용하면 텍스트가 암호화되어 코드를 아는 경우에만 이해할 수 있습니다. 암호문에 코드를 적용하면 이를 복호화하고 일반 텍스트를 읽을 수 있습니다. 그러나 암호문은 일반 텍스트와 동일한 양의 데이터이기 때문에 해시된 텍스트보다 해독하기가 더 쉽습니다.

입력 암호화와 동일한 크기로 출력

Wn xlofu qf tfeknhzogf egrt, zit ztbz wtegdtl eohitktr qfr eqf gfsn wt xfrtklzggr oy ngx afgv zit egrt. Oy ngx qhhsn zit egrt zg zit eohitkztbz, ngx egf rteknhz oz qfr ktqr zit estqkztbz. Wxz oz ol lzoss tqlotk zg ekqea ziqf iqlitr ztbz wteqxlt zit eohitkztbz ol zit lqdt qdgxfz gy rqzq ql zit estqkztbz.

암호 해독

명확한 문구

암호화

이것은 분명하다

해시된 imgr578m3drff09k76s3d76q1ai98ln6

해독 암호화하지 않으면 해당 언어를 아는 사람은 누구나 이 텍스트를 읽을 수 있습니다.

암호화 코드를 사용하면 텍스트가 암호화되어 코드를 아는 경우에만 이해할 수 있습니다. 암호문에 코드를 적용하면 이를 복호화하고 일반 텍스트를 읽을 수 있습니다. 그러나 암호문은 일반 텍스트와 동일한 양의 데이터이기 때문에 해시된 텍스트보다 해독하기가 더 쉽습니다.

118

pp0o87y5f433dvunt78ik3ws9i8u7n54

p00o9m7yfkr644dv87m4s9kii6g3a23g

프로그래밍 및 코딩의 원리

오류 처리

PGP는 또한 해독된 메시지를 메시지 다이제스트와 비교하는 디지털 서명 시스템을 사용합니다. PGP 시스템은 개인 및 기업 보안의 표준 중 하나이며 공격에 대한 저항력이 매우 높습니다. 데이터 보안 회사인 Symantec은 2010년에 PGP를 인수한 후 이 소프트웨어를 많은 암호화 프로그램에 통합했습니다. 암호화는 하드웨어 또는 소프트웨어를 기반으로 할 수 있습니다. 대부분의 최신 암호화 시스템은 다양한 다른 프로그램에 포함되거나 생성된 데이터를 보호하기 위해 시스템에 설치할 수 있는 소프트웨어 프로그램을 기반으로 합니다. 하드웨어 기반의 암호화는 외부 공격에 덜 취약합니다. 자체 암호화 드라이브(SED)와 같은 일부 하드웨어 장치에는 하드웨어 암호화 기능이 내장되어 있어 보안 수준이 높은 데이터에 유용합니다. 그러나 하드웨어 암호화는 유연성이 떨어지며 대규모로 구현하는 데 비용이 엄청나게 많이 들 수 있습니다. 기본적으로 소프트웨어 암호화는 더 유연하고 널리 사용되는 경향이 있는 반면, 하드웨어 암호화는 더 안전하고 보안 수준이 높은 시스템에 더 효율적일 수 있습니다.

참고문헌 브라이트, 피터. “비대칭 암호화로 악당을 차단합니다.” 아르스 테크니카. Condé Nast, 2013년 2월 12일. 웹. 2016년 2월 23일. 델프스, 한스, 헬무트 크네블. 암호화 소개: 원리 및 응용. 3판 베를린: 스프링어, 2015. 인쇄. 암호화의 역사: 암호화의 역사를 이해하기 쉽습니다. N.p.: Thawte, 2013. Thawte. 편물. 2016년 2월 4일. "공개 키 암호화 및 PGP 소개." 감시 자기 방어. 전자프론티어재단(Electronic Frontier Foundation), 2014년 11월 7일. 웹. 2016년 2월 4일. Lackey, Ella Deon 외. “공개키 암호화 소개.” Mozilla 개발자 네트워크. Mozilla, 2015년 3월 21일. 웹. 2016년 2월 4일. McDonald, Nicholas G. "암호화 및 데이터 암호화의 과거, 현재, 미래 방법." 우주 정거장. 유타대학교, 2009년. 웹. 2016년 2월 4일.

—마이카 L. 식스

오류 처리 연구 분야 소프트웨어 개발; 코딩 기술; 소프트웨어 엔지니어링 개요 오류 처리는 프로그램 실행 중에 발생하는 오류에 적절하게 대응하는 프로세스입니다. 오류는 구조화되지 않거나 구조화된 프로그래밍 기술을 사용하여 해결될 수 있습니다. 오류는 자동으로 대체 코드를 실행하여 동일한 작업을 수행하거나 사용자나 개발자에게 오류를 알리는 방식으로 처리할 수 있으며 이상적으로는 오류를 일으키는 문제를 수정할 수 있습니다. 주요 용어 디버깅: 컴퓨터 프로그램에서 결함이나 버그를 찾아 수정하는 프로세스입니다.

오류 처리기: 컴퓨터 프로그램을 실행하는 동안 발생하는 오류에 응답하는 컴퓨터 코드입니다. 예외: 컴퓨터 프로그래밍에서 프로그램 실행 중에 발생하는 예측할 수 없거나 변칙적인 상황입니다. 논리 오류: 프로그램이 프로그래머가 의도한 대로 작동하지 못하는 오류입니다. 구문 오류: 프로그래밍 언어 요소의 배열 방법을 결정하는 규칙 중 하나를 위반하여 발생하는 오류입니다.

컴퓨터 프로그램의 오류 처리 컴퓨터 프로그래머와 사용자는 인간이므로 프로그램 코드 자체에서나 잘못된 입력이나 런타임 시 시스템 요구 사항으로 인해 실수가 발생할 수 있습니다. 오류는 컴퓨터 프로그램이 컴파일되지 않거나, 응답하지 않거나, 의도한 대로 작동하지 않거나, 종료될 때 발생합니다.

오류 처리

Java 언어에서 객체가 "throwable" 오류 슈퍼클래스에 속하는 경우 오류 또는 예외가 됩니다. 오류 하위 클래스에는 연결 오류, 어설션 오류, 스레드 종료, 가상 머신 오류, IO 오류 등이 포함됩니다. 가상 머신 오류의 하위 클래스에는 메모리 부족 오류, 스택 오버플로 오류 등이 포함됩니다.

뜻밖에. 프로그램은 오류가 최소화되도록 설계되고 작성되어야 하지만 발생하는 오류를 효과적으로 처리해야 합니다. 실행 중에 발생하는 예외라고 하는 특정 유형의 오류는 프로그램이 적절하게 응답할 수 있는 방식으로 예상될 수 있습니다. 오류를 찾아 수정하는 과정을 디버깅이라고 합니다. 다양한 유형의 오류가 발견되면 이를 처리하기 위해 다양한 기술이 사용됩니다. 구문 오류는 프로그래밍 언어의 구문이나 단어, 기호 등의 요소가 배열되는 방식을 제어하는 ​​규칙을 위반하여 발생하는 오류입니다. 예를 들어, 언어에서 모든 문자열을 큰따옴표로 묶어야 한다고 지정하는 경우 다음 코드 줄은 작은따옴표 사용으로 인해 구문 오류를 생성합니다. StringVariable1 = 'Pacific Ocean' 구문 오류로 인해 프로그램이 컴파일되지 않습니다. 컴파일은 컴퓨터 코드를 실행하고 사용할 수 있는 형식으로 변환하는 프로세스입니다. 코드가 구문적으로 정확하여 프로그램이 컴파일되지만 결과 프로그램이 의도한 대로 작동하지 않을 때 논리 오류가 발생합니다. 예를 들어, 1월에 채용된 모든 직원의 이름을 표시하도록 프로그램을 설계했는데 대신 2월에 채용된 직원의 이름이 표시된다면 논리 오류가 발생한 것입니다. 교정, 테스트 및 피드백은 모두 구문 및 논리 오류를 찾아 처리하는 데 있어 중요한 단계입니다. 프로그래머는 또한 소프트웨어 디버깅 도구를 사용하여 이러한 오류를 찾아 수정합니다. 런타임 오류는 프로그램이 사용 중일 때 발생하는 오류입니다. 이는 일반적으로 120으로 인해 발생합니다.

프로그래밍 및 코딩의 원리

더 큰 컴퓨터 시스템의 잘못된 매개 변수 또는 잘못된 데이터 입력과 같은 소스 코드 외부의 문제가 발생하는 프로그램입니다. 프로그램이 컴파일될 때 런타임 오류는 감지되지 않으며 이로 인해 프로그램이 응답하지 않거나 예기치 않게 종료될 수 있습니다. 일반적인 런타임 오류에는 0으로 나누기 오류 및 삭제된 필수 파일에 대한 액세스 시도가 포함됩니다. 런타임 오류의 부정적인 영향은 오류 처리기 또는 오류를 수정하도록 설계된 코드 섹션을 사용하여 최소화할 수 있습니다. 수정에는 요청된 작업을 수행하기 위해 대체 코드를 실행하는 것이 포함될 수 있습니다. 프로그램은 사용자에게 알리고 문제를 해결하도록 허용하여 오류를 처리할 수도 있습니다.

구조적 및 비구조적 오류 처리 오류는 구조적 또는 구조화되지 않은 오류 처리를 통해 해결될 수 있습니다. 구조화되지 않은 오류 처리는 프로그램을 특정 코드 줄로 지시하거나 오류가 발생할 경우 프로그램에 다음 코드 줄로 진행하도록 지시하는 방식으로 작동합니다. 이는 구조화되지 않은 프로그래밍의 한 형태입니다. 구조화되지 않은 프로그램은 디버깅, 수정 및 유지 관리가 어렵습니다. 이러한 이유로 프로그래머는 대신 구조화된 오류 처리를 사용하는 경우가 많습니다. 많은 프로그래밍 언어의 구조적 오류 처리기는 try/catch 블록이라는 구문을 사용합니다. try/catch 블록은 다음과 같이 구성됩니다. TRY 런타임 오류를 일으킬 수 있는 코드 CATCH 런타임 오류가 발생한 경우 실행되는 코드 END TRY Try/catch 블록에는 다양한 유형의 오류를 포착하는 여러 catch 블록이 포함될 수 있습니다. try/catch는 중요한 기술이지만 다른 방법론을 사용하여 오류를 처리할 수도 있습니다. 함수는 반환 코드를 사용하여 오류 조건을 감지하고 처리할 수 있습니다. 보호 조항과 데이터 유효성 검사를 사용하면 오류 조건을 자동으로 수정하거나 오류가 발생하기 전에 사용자에게 오류를 수정할 수 있는 기회를 제공하여 오류 발생을 방지할 수 있습니다. 오류 처리는 프로그램을 보다 강력하고 반응적으로 만드는 등 많은 이점을 제공하지만 오류 처리를 설계하고 구현하는 데는 시간이 많이 걸릴 수 있습니다. 소프트웨어 일정

프로그래밍 및 코딩의 원리

개발 프로젝트에서는 오류 처리를 위한 시간을 따로 확보해야 합니다. 일부 버그는 엄격한 테스트를 거쳐도 개발 중에 감지되지 않습니다. 사용자 피드백은 오류를 유발하는 버그를 식별하는 데 도움이 되며, 이는 이후 릴리스를 통해 수정되거나 처리될 수 있습니다.

실제 오류 처리 소매업체는 컴퓨터 프로그램을 사용하여 하루에 판매된 모든 품목의 평균 가격을 계산할 수 있습니다. 프로그램은 사용자에게 판매된 품목 수와 총 판매액(달러)을 입력하라는 메시지를 표시한 다음 달러 금액을 품목 수로 나눕니다. 사용자가 판매된 총 품목 수를 0으로 입력하면 0으로 나누기 오류가 발생합니다. 다음 오류 핸들러를 사용하여 이 오류를 처리할 수 있습니다. TRY 사용자에게 판매된 품목 수를 묻습니다. 사용자에게 총 판매액(달러)을 묻습니다. 총 판매액(달러 단위)을 총 수량으로 나누어 평균 품목 가격을 계산합니다. 판매된 품목 평균 품목 가격 표시 CATCH 0으로 나누기 오류 판매된 품목 수에 대해 0이 아닌 값을 입력해야 한다고 사용자에게 알립니다. 다른 오류 CATCH 0으로 나누기 이외의 오류에 대해 실행되는 코드 END TRY 시도 블록에는 오류를 일으킬 수 있는 코드가 포함되어 있고, 첫 번째 catch 블록에는 0으로 나누기 오류가 발생할 경우 실행될 코드가 포함되어 있습니다. 두 번째 catch 블록은 다음을 수행하는 것이 좋습니다.

이벤트 중심 마케팅(EDM)

전용 오류 처리기가 없는 잠재적인 오류를 처리하는 코드를 추가하세요.

오류 처리를 통한 소프트웨어 개선 컴퓨터 프로그램이 설계된 목적을 달성하려면 오류를 감지하고 최소화하며 적절하게 처리해야 합니다. 오류를 잘 처리하지 못하는 컴퓨터 프로그램은 예상치 못한 오류가 발생하고 사용하기 답답하다. 프로그래머는 프로그램에서 발생할 수 있는 오류 유형을 예측하고 오류 처리를 염두에 두고 코드를 개발해야 합니다. 그렇게 하지 않으면 자신이 만든 소프트웨어의 안정성과 유용성이 제한됩니다. 오류가 가능한 한 오류 처리는 컴퓨터 프로그래밍의 중요한 부분으로 남아 있습니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2015. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2017. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004.

이벤트 중심 마케팅(EDM) "이벤트 기반 마케팅" 또는 "트리거 기반 마케팅"이라고도 하는 이벤트 중심 마케팅(EDM)은 판매자가 고객의 특정 상황에 맞춰 서비스를 제공하는 마케팅 관행입니다. 이 맥락에서 이벤트는 판매자가 감지하거나 정확하게 예측할 수 있는 개인 생활의 변화입니다. ~ 안에

EDM은 고객에게 다가가는 가장 좋은 방법은 특정 순간에 고객의 삶에서 일어나는 사건에 대한 맞춤형 메시지를 보내는 것입니다. 메시지가 관련성이 있으려면 이벤트가 어느 정도 중요해야 하며 이벤트가 더 이상 최신 상태가 아니기 전에 고객에게 즉시 연락해야 합니다. 121

이벤트 중심 마케팅(EDM)

다양한 CRM 기술을 활용한 판매 결과

개요 이벤트 중심 마케팅에서 판매자는 고객의 거래 내역을 조사하여 다가오는 이벤트를 결정합니다. 그러한 사건은 아기를 갖는 것과 같이 인생을 변화시킬 수 있습니다. 그런 다음 캠페인은 특정 시간에 해당 특정 고객을 대상으로 합니다. 이 마케팅 관행은 소규모 이벤트에도 사용될 수 있습니다. 예를 들어, 겨울이 예상되면 판매자는 이메일을 통해 고객에게 경고하여 장갑 판매를 홍보할 수 있습니다. 여러 종류의 이벤트가 있습니다. 새 직장에서 큰 금액의 은행 예금과 같은 중요한 사건은 고객이 그 당시 의사소통을 받아들일 가능성이 있음을 나타냅니다. 생애주기 사건에는 결혼, 자녀의 탄생, 주택 구입 및 기타 인생을 바꾸는 순간이 포함됩니다. 이와 대조적으로 EDM은 개인의 생일과 같은 이전 행동을 기반으로 단순하고 예측된 이벤트를 타겟팅할 수 있습니다. 현재 고객에게 발생하지만 그다지 중요하지 않은 트리거 이벤트도 있습니다. 여기에는 현재 구독이 만료되기 전에 잡지 갱신을 제공하는 등의 바이너리 작업이 포함됩니다. 마지막으로, 특정 시간 내 또는 특정 순서(예: 결혼, 새 집으로 이사, 출산)에 따라 일련의 이벤트가 발생하는 행동 이벤트 또는 슈퍼 이벤트는 고객에 대한 많은 정보를 드러냅니다. 판매자는 잠재 고객이 무엇을 사고 싶어할지 예측하기 위해 항상 개별 고객 선호도를 추적해 왔습니다. 그러나 이는 적절한 기술이 사용 가능해질 때까지 대규모로 달성할 수 없었습니다. 편지, 브로셔, 카탈로그 및 기타 판촉 자료를 포함하는 타겟 마케팅의 관련 형태인 다이렉트 메일(Direct Mail)이 122년에 시작되었습니다.

프로그래밍 및 코딩의 원리

19세기 후반. 1990년대 컴퓨터 데이터베이스와 고객 관계 관리(CRM) 소프트웨어의 개발로 보다 구체적인 다이렉트 메일, 이메일 및 기타 커뮤니케이션을 보낼 수 있게 되었습니다. 이벤트 중심 마케팅은 NAB의 Fernando Ricardo와 Teradata의 Ray O'Brien의 리더십 하에 1995년 NAB(National Australia Bank)에서 구체적인 마케팅 관행으로 처음 등장했습니다. EDM 이전에는 고객에 대한 최신 정보가 제한되어 있었으며 NAB는 고객 요구 사항을 더 잘 예측할 수 있는 방법을 원했습니다. Ricardo와 O'Brien은 솔루션을 위해 협력했으며 두 사람의 재능, 즉 마케팅 전문 지식과 대용량 데이터를 신속하게 로드하고 처리하는 Teradata의 능력이 결합되어 성공을 거두었습니다. 2000년 NAB가 새로운 마케팅 전략을 공개한 후 전 세계의 다른 여러 은행이 EDM 관행을 구현했습니다. 그 이후로 데이터베이스, 서버 및 CRM 기술이 계속 발전하여 더 많은 시스템, 소셜 미디어, 클라우드 컴퓨팅 및 더 많은 조직을 통해 EDM이 가능해졌습니다. 고객의 삶에 중요한 사건이 브랜드 충성도를 변화시킬 수 있다는 점을 업계에서 인식하면서 마케팅 관행은 소매업에서 상당한 성공을 거두었습니다. —줄리아 길스타인

참고문헌 Estopace, Eden. "이벤트 중심 마케팅: 소매업의 다음 큰 단계?" 기업 혁신. Questex Media, 2013년 3월 25일. 웹. 2013년 10월 7일. "이벤트 중심 마케팅에 대한 설명." 사건. Eventricity Ltd, n.d. 편물. 2013년 10월 7일. Kalyanam, Kirthi 및 Monte Zweben. “완벽한 순간에 전하는 완벽한 메시지.” 하버드 비즈니스 리뷰 83.11(2005): 112–20. 인쇄. Luckham, David C. 비즈니스를 위한 이벤트 처리. 호보켄: 와일리, 2012. 인쇄. 스콧, 데이비드 미어먼. 마케팅 및 PR의 새로운 규칙. 4판 호보켄: 와일리, 2013. 인쇄. 스턴트벡, 빈스, 트레버 존스. “B2B EventDriven 마케팅: 놓치지 말아야 할 분석을 유발합니다.” 마케팅교수 MarketingProfs, 2013년 4월 22일. 웹. 2013년 10월 7일.

프로그래밍 및 코딩의 원리

반 벨, 에그버트 J., 에드 샌더, 앨런 웨버. 그 고객을 따르세요! 이벤트 중심 마케팅 핸드북. 시카고: Racom, 2011. 인쇄.

기대 이론

“이벤트란 무엇입니까?” 사건. Eventricity Ltd, n.d. 편물. 2013년 10월 7일.

기대 이론 기대 이론은 사람들이 동기를 부여받는 방법과 이유에 초점을 맞춘 동기 부여 이론입니다. 비즈니스 전문가인 Victor Vroom은 1964년에 기대 이론의 속성을 확인했지만 일부 연구자들은 원래 이론이 1930년대 Edward Tolman의 작업으로 거슬러 올라간다고 믿습니다. 미국의 심리학자 톨먼(Tolman)은 인간의 행동은 직접적인 자극보다는 기대에 의해 더 직접적인 영향을 받는다고 제안했습니다. 그러나 Vroom의 작업은 인지 프로세스가 직원의 수행 동기에 어떤 영향을 미치는지 이해하는 데 큰 영향을 미쳤습니다.

개요 기대 이론은 세 가지 기본 구성 요소로 구성됩니다. (1) 열심히 일하면 원하는 수준의 성과를 얻을 것이라는 직원의 기대; (2) 열심히 일하면 보상이 따라올 것이라는 직원의 기대; (3) 열심히 일한 결과가 그만한 가치가 있거나 열심히 일한 것과 관련된 가치가 있다는 직원의 인식 여부. Vroom의 VIE 기대 이론은 종종 방정식 MF(동기 부여 힘) = V(유가) x I(도구성) x E(기대)를 사용하여 공식화됩니다. 직원이 쏟는 노력은 다음과 같은 기대(E)에 의해 직접적인 영향을 받습니다.

성취와 권한 부여를 위한 도구로서 의사결정 시 선택을 강조합니다.

열심히 노력하면 작업이 성공적으로 수행될 수 있습니다. 그러나 직원이 열심히 노력해도 성공적인 성과를 얻을 수 없다고 생각하는 경우(I), 기대되는 보상이 부족하여 직원의 노력이 줄어들게 됩니다(V). 이 공식을 적용하면 동기 부여 힘(MF)은 개인의 성과와 노력에 영향을 미치는 내부 및 외부 변수와 직접적으로 관련됩니다. 직원들은 열심히 일하면 내재적 또는 외재적 보상으로 이어질 것이라는 기대를 가지고 지속적으로 노력의 결과를 활용합니다. 그러면 개인의 노력을 바탕으로 잠재적인 보상을 얻을 수 있다는 인식을 가치 측면에서 측정해야 합니다. 내 노력이 기대되는 보상만큼 가치가 있나요? 따라서 기대(E)는 성공적인 성과가 보상으로 이어질 것이라는 타고난 믿음과 직접적으로 연관되어 있습니다. 조직적 맥락에서 개인은 성공적인 성과에는 보상이 따른다는 이해를 바탕으로 높은 성과 목표 달성을 통해 자신의 도구성을 극대화합니다. 직원들이 보상이 성과와 일치하지 않는다고 인식하면 열심히 일한 결과 얻은 노력이 투자한 노력만큼 가치가 없다는 인식으로 인해 노력의 가치(V)가 감소합니다. 도구성과 가치의 영향은 결과적으로 직원이 계속해서 열심히 일하는 노력에 영향을 미칩니다. 기대 이론의 이론적 의미는 복잡하며 직원 동기 부여에 영향을 미칠 수 있는 수많은 요인에 따라 달라집니다. 개별 직원이 자신의 도구에 가치를 부여하는 정도에 따라 특정 작업에 투입되는 노력의 수준이 결정됩니다. Vroom의 기대 이론에 따라 가정된 노력의 인지된 보상과 결과를 측정할 때는 다양한 요소를 고려해야 합니다. 기대 이론의 복잡성에도 불구하고 교육, 비즈니스, 사회 과학 및 정부 분야에는 수많은 응용 분야가 있습니다. —패트리샤 호프만-밀러(Patricia Hoffman-Miller), MPA, PhD 123

프로그래밍 및 코딩의 원리

실험자의 편견

참고문헌 Baker-Eveleth, L. 및 R. Stone. “기대 이론과 컴퓨터 응용 프로그램 사용에 대한 행동 의도.” 학제간 정보 저널 3(2008): 135-46. 인쇄. 카사르, G., H. 프리드먼. “자기효능감이 기업가 투자에 영향을 미치나요?” 전략적 기업가 저널 3.3(2009): 241-60. 인쇄. 에스테스, 브렌트. “복잡한 노동 시장에서 생산성 예측: 메이저 리그 야구 경기에 대한 자유 의지에 대한 세이버메트릭스 평가.” 비즈니스 연구 저널 3.1(2011): 23–58. 인쇄. 에스테스, 브렌트, 바바라 폴닉. “고등 교육에서의 동기 부여 이론 검토: 종신 교수 생산성에 대한 기대 이론 분석.” 국제 경영, 비즈니스 및 행정 저널 15.1(2012): n.p. 인쇄. Jex, Steve M., Thomas W. Britt. 조직심리학: 과학자-실무자 접근. 3판 몰든: Wiley, 2014. 인쇄. Lunenberg, Fred C. “동기 부여의 기대 이론: 기대를 변경하여 동기 부여.”

국제 경영, 경영 및 행정 저널 15.1(2011): n.p. 인쇄. 마일즈, Jeffrey A., 에디션. 경영과 조직 이론의 새로운 방향. 뉴캐슬어폰타인: 캠브리지 학자, 2014. 인쇄. 나스리, 와디, 라누아르 샤르페딘. “영업사원이 마케팅 인텔리전스 활동에 기여하도록 동기 부여: 기대 이론 접근법.” 국제 마케팅 연구 저널 4.1(2012): 168. 인쇄. 렌코, 마이자, K. 갈렌 크록, 아만다 불로우. “기대 이론과 초기 기업가 정신.” 중소기업 경제학 39.3(2012): 667-84. 인쇄. Shweiki, Ehyal 등. “레지던트 훈련에 기대 이론 적용: 레지던트 동기를 이해하고 레지던트 훈련을 강화할 수 있는 기회 제안.” 의학 교육 및 실습의 발전 6(2015): 339-46. 인쇄. 우가, 아코분두, 우체 아루아. “기대 이론, Maslow의 욕구 계층 구조 및 목록 부서.” 도서관 철학과 실천 1(2011): 51. 인쇄.

실험자의 편향 실험 결과는 편향으로 인해 결함이 있거나 왜곡될 수 있습니다. 실험을 설계, 수행 또는 분석하는 사람들은 초기 가설을 뒷받침하는 결과를 기대하는 등 실험 결과에 대한 기대를 갖는 경우가 많습니다. 이러한 기대는 실험의 구조, 수행 및/또는 해석 방식을 형성하여 결과에 영향을 미칠 수 있습니다. 이러한 일반적으로 무의식적이고 의도하지 않은 현상을 실험자의 편견이라고 합니다. 실험자 편향의 주요 유형에는 자기실현적 예언, 관찰자 ​​편향, 해석자 편향이 있습니다. 대부분의 현대 사회과학과 임상 실험은 그러한 편견이 결과를 왜곡할 가능성을 최소화하기 위해 하나 이상의 안전 장치를 마련하여 설계되었습니다.

개요 1960년대 중후반에 심리학자 로버트 로젠탈(Robert Rosenthal)은 124가지에 대한 발견과 보고를 시작했습니다.

사회과학 연구에서 실험자의 편향. 그의 가장 유명하고 논란이 많은 작품은 교사의 기대에 관한 1968년 연구였습니다. 여기에서 Rosenthal과 그의 동료들은 학생들에게 표준화된 지능 테스트를 실시한 다음 일부를 "지적 블루머"로 지정된 그룹에 무작위로 할당하고 교사에게 이 학생들이 학문적으로 매우 좋은 성적을 거둘 것으로 예상된다고 말했습니다. 8개월 후 테스트했을 때 "지적 블루머"는 실제로 동료보다 더 나은 성적을 거두었으며 이는 교사의 기대치가 교육 결과에 영향을 미쳤음을 시사합니다. 사람의 행동이 다른 사람의 기대에 따라 형성되고 이에 따르는 이 현상을 조지 버나드 쇼의 희곡에서 이름을 따온 피그말리온 효과라고 부르게 되었습니다. Rosenthal의 작업은 내부 타당성 문제를 조명하고 방법론에 대한 새로운 연구 영역을 시작했습니다. 실험자 편향의 가장 널리 알려진 형태인 자기 충족적 예언이 발생합니다.

프로그래밍 및 코딩의 원리

실험자의 기대가 연구 대상에 대한 자신의 행동을 알려 예측된 반응을 이끌어내고 이를 통해 원래의 기대를 확인하는 경우입니다. 인간 연구 참가자 사이에서 결과를 좌우할 수 있는 미묘한 요인 중에는 실험자의 단어 선택, 어조, 신체 언어, 몸짓 및 표현이 있습니다. 마찬가지로 동물 피험자는 실험자의 신호, 차등 처리, 영장류의 경우 비언어적 신체 언어에 반응할 수 있습니다. 피그말리온 효과는 자기실현적 예언의 한 유형이다. 또 다른 하나는 실험자의 기대가 피험자에 대한 자신의 행동에 영향을 미쳐 기대가 충족될 가능성을 높이는 실험자 기대 효과입니다. 다른 편견은 실험자와 피험자의 상호작용에서 발생하는 것이 아니라 피험자의 관찰과 반응에 대한 해석에서 발생합니다. 관찰자 편향은 실험자의 가정, 선입견 또는 사전 지식이 실험 결과에 대해 관찰하고 기록하는 내용에 영향을 미칠 때 발생합니다. 통역사 편향은 데이터 해석의 오류입니다. 즉, 다른 모든 해석을 배제하고 데이터의 가능한 한 가지 해석에만 초점을 맞추는 것입니다. 편견을 방지하기 위해 대부분의 사회과학과 임상 연구는 피험자가 자신이 대조군에 참여하고 있는지 연구 그룹에 참여하고 있는지 알지 못하는 단일 맹검 연구이거나 실험자와 피험자 모두가 알지 못하는 이중 맹검 연구입니다. 어떤 주제가 어떤 그룹에 있는지. 실험자의 편견을 피하는 다른 방법에는 실험자와 피험자 상호 작용의 차이를 최소화하기 위한 표준화된 방법과 절차가 포함됩니다. 눈이 먼 관찰자 또는 동맹자를 보조자로 사용하여 실험자와 피험자를 더욱 멀리합니다. 그리고 연구자와 실험자의 역할을 분리합니다. 실험자의 편견과 그 예방은 다양한 연구 분야에 영향을 미칩니다.

실험자의 편견

사회심리학, 교육, 의학, 정치 등이 그것이다. —Céleste Codington-Lacerte 참고문헌 Becker, Lee A. “VIII. 연구의 내부 타당성.” 효과 크기 계산기. 콜로라도 대학교: 콜로라도 스프링스, 1998년 3월 16일. 웹. 2015년 7월 28일. Colman, Andrew M. 심리학 사전. 4판 뉴욕: 옥스퍼드 UP, 2015. 인쇄. 핀, 패트릭. “연구 입문서: 편견과 맹목; 자기 실현적 예언과 의도적 무지.” ASHA 리더 2006년 6월: 16–22. 편물. 2013년 10월 3일. Gould, Jay E. 행동 과학 및 생물학 실험 방법에 대한 간결한 핸드북. 보카 레이톤: CRC, 2002. 인쇄. 그린버그, 제럴드, 로버트 폴저. 사회 조사 방법의 논란이 되는 문제. 뉴욕: 스프링거, 1988. 인쇄. 할페린, 산드라, 올리버 히스. 정치 연구: 방법 및 실무 기술. 뉴욕: 옥스퍼드 UP, 2012. 인쇄. 주심, 이. 사회적 인식과 사회적 현실: 정확성이 편견과 자기 실현적 예언을 지배하는 이유. 뉴욕: 옥스퍼드 UP, 2012. 인쇄. 로젠탈, 로버트, 랄프 L. 로스노우. 행동 연구의 인공물. 뉴욕: 옥스퍼드 UP, 2009. 인쇄. 슐츠, 케네스 F., 데이비드 A. 그라임스. “무작위 시험의 맹검: 누가 무엇을 얻었는지 숨기기.” Lancet 359.9307 (2002): 696–700. RHL: WHO 생식 건강 라이브러리. 편물. 2015년 6월 11일. Supino, Phyllis G. "개입의 영향 평가의 기본 문제: 편견의 소스 및 제어." 연구 방법론의 원리: 임상 조사자를 위한 안내서. 에드. 수피노(Supino)와 제프리 S. 보러(Jeffrey S. Borer). 뉴욕: 스프링거, 2012. 79–110. 인쇄.

125

프로그래밍 및 코딩의 원리

익스트림 프로그래밍

극한의 프로그래밍 연구 분야 소프트웨어 개발; 프로그래밍 방법론; 소프트웨어 엔지니어링 개요 익스트림 프로그래밍(XP)은 단순성, 의사소통, 피드백, 존중, 용기라는 다섯 가지 가치를 기반으로 한 민첩한 소프트웨어 개발 방법론의 변형입니다. 익스트림 프로그래밍은 짧은 개발 주기 동안 긴밀하게 협력하는 개발자, 관리자, 고객으로 구성된 소규모 팀을 특징으로 합니다. 단순한 디자인과 사례의 사용과 빈번한 소규모 릴리스의 사용을 장려합니다. 주요 용어 반복: 소프트웨어 개발에서 제품의 전체 개발 주기 중 독립적인 단일 단계로, 일반적으로 1~3주 동안 지속되며, 다음 개발 단계로 넘어가기 전에 제품의 한 측면이 처음부터 끝까지 다루어집니다. . 쌍 프로그래밍: 두 명의 프로그래머가 동시에 함께 작업하고 단일 워크스테이션을 공유하는 민첩한 소프트웨어 개발 방식입니다. 릴리스: 소비자에게 제공되는 소프트웨어 시스템 또는 기타 제품의 버전 또는 해당 버전을 제공하는 행위. 스토리: 소프트웨어 개발에서 프로젝트 이해관계자가 만들고 개발자가 프로젝트 기간과 일정을 결정하는 데 사용하는 요구 사항에 대한 설명입니다. 단위 테스트: 더 큰 소프트웨어 시스템의 개별 구성 요소를 테스트하는 프로세스입니다.

익스트림 프로그래밍 이해 익스트림 프로그래밍(XP)은 민첩한 소프트웨어 개발 방법론의 한 버전입니다. "익스트림 프로그래밍"이라는 이름은 XP가 입증된 소프트웨어 개발 방법론의 성공적인 요소를 극단적인 수준으로 끌어낸다는 사실에서 유래되었습니다. 예를 들어, 코드 품질을 높이기 위해 정기적인 코드 검토를 사용하는 것이 일반적인 관행입니다. XP는 두 명의 프로그래머가 지속적으로 126

실시간으로 서로의 코드를 검토합니다. XP는 단순성, 의사소통, 피드백, 용기, 존중이라는 다섯 가지 가치를 기반으로 합니다. 즉각적인 요구 사항을 충족하기 위해 단기간에 수행할 수 있는 작업에 집중하면서 단순한 설계와 수많은 반복을 통해 단순성을 촉진합니다. 향후 릴리스는 새로운 요구 사항에 대응하는 데 사용됩니다. 전통적인 소프트웨어 개발 방법론과 달리 XP는 문서화보다 커뮤니케이션을 선호합니다. 소규모 팀은 물리적으로 가까운 거리에서 작업하며 개발 프로세스의 모든 측면에서 협력합니다. 그들은 정보를 구두로 공유하고 필요한 경우에만 문서를 사용합니다. XP 개발자는 단위 테스트, 고객 승인 테스트 및 다른 팀 구성원의 코드 감독을 사용하여 지속적인 피드백 시스템을 유지합니다. 모든 팀 구성원은 변화에 긍정적으로 대응하고 필요에 따라 프로세스를 조정하도록 권장됩니다. XP에서는 팀원들이 용기 있게 일할 것을 요구합니다. 그들은 기꺼이 위험을 감수하고 변화하는 상황에 적응하며 진행 상황과 기한에 대해 정직해야 합니다. 용기 있는 행동을 장려하기 위해 팀원은 서로를 지원하고 실패에 대한 책임을 할당하거나 회피하는 데 시간을 낭비하지 않습니다. 최종 가치는 자기 존중과 타인 존중입니다. 여기에는 수행 중인 작업에 대한 존중과 고객의 요구 사항 및 이야기에 대한 존중이 포함됩니다. 모든 팀원의 기여는 소중합니다.

극한으로 나아가기 XP는 코딩, 테스트, 청취 및 설계라는 네 가지 활동에 중점을 둡니다. 코딩은 가장 중요한 활동입니다. 소프트웨어 개발의 궁극적인 목적은 코드를 생성하는 것입니다. 코드가 작성된 요구 사항을 충족하는지 확인하기 위해 코드를 테스트해야 하기 때문에 테스트는 핵심 활동입니다. XP는 단위 테스트, 승인 테스트 및 지속적인 코드 검토를 포함한 다양한 형태의 테스트를 광범위하게 사용합니다. 듣기 활동은 소통의 핵심가치를 직접적으로 뒷받침합니다. 팀 구성원은 항상 효과적인 경청 기술을 사용해야 합니다. 마지막 활동은 디자인입니다. XP는 설계와 개발의 틀을 깨려고 합니다.

프로그래밍 및 코딩의 원리

익스트림 프로그래밍 프로세스에서는 프로세스의 각 단계에서 피드백과 계획 업데이트가 빠르게 발생하므로 릴리스는 몇 달 만에, 릴리스 반복은 몇 주 만에, 승인 테스트는 며칠 만에, 단위 테스트는 몇 분 만에 이루어집니다. 이 프로세스의 시각적 표현은 Wikimedia Commons를 통해 Don Wells에서 채택되었습니다.

우수하고 최소한의 디자인을 강조하면서 유연성을 수용하는 반복적 패러다임을 선호하는 전통적인 개발 방법론에서 사용되는 패러다임입니다. XP는 다른 방법론에 비해 몇 가지 장점을 제공합니다. 빈번한 소규모 릴리스와 짧은 반복을 통해 코드를 철저히 테스트할 수 있습니다. 단위 테스트는 코드의 결함을 감지하고, 고객 승인 테스트는 시스템이 실제로 고객의 실제 요구 사항을 충족하는지 확인합니다. 프로젝트 요구 사항이 고정되었을 때 가장 잘 작동하는 기존 개발 방법과 달리 XP는 변화하는 요구 사항에 쉽게 적응합니다. 불필요한 프로세스와 문서화를 방지하여 비용 절감으로 이어질 수 있습니다. XP에는 단점이 있습니다. 이를 위해서는 개발 프로세스에 광범위한 고객 참여가 필요하며 이는 모든 상황에서 가능하지 않을 수 있습니다. 또한 문서보다 의사소통에 의존하기 때문에 팀 구성원이 조직을 떠나 교체되어야 할 경우 프로젝트가 중단될 수 있습니다. 마지막으로 XP는 페어 프로그래밍과 같이 일부 개발자에게 불편할 수 있는 흔하지 않은 방식의 사용을 장려합니다.

익스트림 프로그래밍

현실 세계의 익스트림 프로그래밍 XP는 다양한 실제 프로그래밍 시나리오에서 사용될 수 있습니다. 예를 들어, 소비자 전자 제품을 생산하는 기업이 항공 산업을 위한 전자 시스템을 생산하는 자회사를 설립하기로 결정했다고 가정해 보겠습니다. 자회사는 다른 도시에 위치하고 있으며 4개월 후에 문을 열 예정입니다. 정보 기술(IT) 부서는 새 자회사의 영업 부서에서 사용할 고객 관계 관리 애플리케이션을 개발하는 임무를 맡았습니다. 애플리케이션은 두 위치 간에 상호 운용되어야 합니다. XP는 다음과 같은 이유로 이러한 유형의 프로젝트에 적합한 선택입니다. 응용 프로그램이 새로운 비즈니스 분야에서 사용될 것이기 때문에 영업 직원이 경험을 쌓으면서 요구 사항이 자주 변경될 가능성이 높습니다. XP의 짧은 반복과 빈번한 소규모 릴리스는 요구 사항이 변화하는 프로젝트에 적합합니다. 또한, IT 직원이 두 원격 위치 간에 상호 운용되어야 하는 분산 애플리케이션 개발 경험이 거의 없고 고객이 특정 날짜까지 자신의 요구 사항을 충족하는 기능적 시스템을 보유해야 한다는 가정하에 프로젝트에는 위험 수준이 높습니다. XP의 가치와 관행은 위험을 줄이고 프로젝트 성공을 보장합니다. 마지막으로 새 사무실에 배치될 영업 직원은 프로젝트에 전념할 수 있습니다. XP에서는 최종 사용자가 전담 팀 구성원이어야 하기 때문에 이는 중요합니다. 유연한 개발 전략 XP는 고위험 환경에서 솔루션을 개발하는 데 사용될 때 효과적인 방법론입니다. 이는 요구 사항이 변화하는 프로젝트에 이상적으로 적합하며, 고객이나 다른 최종 사용자가 프로젝트 팀의 활동적인 구성원이 될 수 있을 때 가장 잘 작동합니다. XP에서는 개발자와 경영진이 새로운 사고 방식과 새로운 프로세스에 개방적이어야 합니다. 따라서 이는 정보 기술, 소셜 미디어, 모바일 애플리케이션 개발을 포함한 광범위하고 역동적인 비즈니스에 사용하기 위한 효과적인 방법론입니다. 유연성과 적응성에 중점을 둔 XP는 시간이 지남에 따라 고객의 요구 사항이 변화함에 따라 중요한 방법론으로 남을 것입니다. —마우라 발렌티노, MSLIS

127

익스트림 프로그래밍

참고문헌 벨, 마이클. 증분 소프트웨어 아키텍처: 실패한 IT 구현을 저장하는 방법. John Wiley & Sons, 2016. 프리드먼, 다니엘 P., 미첼 완드. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Jayaswal, Bijay K. 및 Peter C. Patton. 신뢰할 수 있는 소프트웨어를 위한 설계: 강력한 소프트웨어 개발을 위한 도구, 기술 및 방법론. 프렌티스 홀, 2007.

128

프로그래밍 및 코딩의 원리

MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. Wysocki, Robert K. 효과적인 프로젝트 관리: 전통적, 민첩성, 극한. 7판, John Wiley & Sons, 2014.

F 방화벽 연구 분야 정보 시스템; 은둔; 보안 개요 방화벽은 컴퓨터 네트워크나 단일 장치에 들어오고 나가는 트래픽을 모니터링하고 악성 프로그램이나 사용자가 보호된 시스템에 진입하는 것을 방지하도록 설계된 프로그램입니다. 방화벽은 서버나 개인용 컴퓨터(PC)와 같은 단일 장치는 물론 전체 컴퓨터 네트워크까지 보호할 수 있습니다. 또한 데이터를 필터링하는 방법도 다릅니다. 방화벽은 중요한 데이터를 보호하기 위해 다른 컴퓨터 보안 조치와 함께 사용됩니다. 기본 용어 응용 프로그램 수준 방화벽: 응용 프로그램과 주고받는 모든 트래픽이 통과해야 하는 프록시 서버 역할을 하는 방화벽입니다. 호스트 기반 방화벽: 네트워크 전체를 보호하는 것이 아니라 서버나 개인용 컴퓨터 등 특정 장치를 보호하는 방화벽입니다. 네트워크 방화벽: 특정 장치가 아닌 전체 네트워크를 보호하는 방화벽입니다. 패킷 필터: 데이터 패킷이 네트워크에 진입하는 것을 허용하거나 개별적으로 차단하는 필터입니다. 프록시 서버: 사용자의 컴퓨터에 도달하기 전에 모든 트래픽이 통과하는 컴퓨터입니다. 상태 저장 필터: 연결 상태를 평가하고 그에 따라 데이터 전송을 허용하거나 허용하지 않는 필터입니다.

방화벽의 역사 21세기 초, 사이버 범죄와 사이버 테러가 증가하면서 컴퓨터 보안은 정부, 기업, 조직, 일반 대중에게 심각한 관심사가 되었습니다. 거의 모든 컴퓨터

인터넷에 연결된 시스템은 악의적인 사용자에 의해 접근되거나 바이러스 등 유해한 프로그램에 감염될 수 있습니다. 대규모 네트워크와 단일 PC 모두 이러한 위험에 직면합니다. 이러한 보안 침해를 방지하기 위해 조직과 개인은 다양한 보안 기술, 특히 방화벽을 사용합니다. 방화벽은 시스템에 들어오는 데이터를 모니터링하고 원치 않는 데이터가 들어오는 것을 방지하는 프로그램 또는 전용 장치입니다. 이는 악성 프로그램과 무단 액세스로부터 컴퓨터를 보호합니다. "방화벽"이라는 용어는 건물 안전 분야에서 빌려온 것입니다. 해당 분야에서는 구조물 내에서 화재 확산을 막기 위해 특별히 건축된 벽을 말합니다. 컴퓨터 방화벽도 비슷한 역할을 수행하여 유해한 요소가 보호 영역으로 들어오는 것을 방지합니다. 컴퓨터 방화벽에 대한 아이디어는 1980년대에 시작되었습니다. 당시 네트워크 관리자는 네트워크 간에 데이터를 전송하는 장치인 라우터를 사용하여 한 네트워크를 다른 네트워크와 분리했습니다. 이를 통해 한 네트워크의 문제가 다른 네트워크로 확산되는 것을 방지했습니다. 1990년대 초 컴퓨터 바이러스의 확산과 해킹 위험의 증가로 인해 방화벽에 대한 광범위한 필요성이 분명해졌습니다. 인터넷 액세스 증가, 운영 체제 개발 등 그 시대의 일부 발전으로 인해 새로운 취약점도 등장했습니다. 초기 방화벽은 프록시 서버 사용에 크게 의존했습니다. 프록시 서버는 사용자의 컴퓨터나 네트워크에 들어가기 전에 모든 트래픽이 통과하는 서버입니다. 21세기에는 방화벽이 다양한 기준에 따라 데이터를 필터링하고 여러 지점에서 네트워크를 보호할 수 있습니다.

방화벽 유형 모든 방화벽은 원치 않는 데이터가 컴퓨터나 네트워크에 들어오는 것을 방지하기 위해 작동합니다. 그러나 그들은 다른 방식으로 그렇게 합니다. 일반적으로 사용되는 방화벽은 시스템의 나머지 부분과 관련하여 다양한 위치에 있을 수 있습니다. 개별 컴퓨터는 자신만의 개인용 129를 가질 수 있습니다.

프로그래밍 및 코딩의 원리

방화벽

라우터

라우터

인터넷

방화벽

라우터

방화벽

방화벽

스위치

서버 전환

방화벽은 해커가 컴퓨터나 네트워크에 액세스하는 것을 방지하는 데 사용되는 많은 보호 조치 중 하나입니다.

Windows 방화벽 또는 Macintosh OS X의 내장 방화벽과 같은 방화벽. 서버와 같은 다른 네트워크 장치에도 개인 방화벽이 있을 수 있습니다. 이는 전체 네트워크가 아닌 단일 호스트를 보호하기 때문에 호스트 기반 방화벽으로 알려져 있습니다. 인터넷상의 악성 프로그램이나 사용자로부터 컴퓨터 및 기타 장치를 보호할 뿐만 아니라, 자신이 속한 기업 인트라넷 등 내부 네트워크에 이미 침투한 바이러스 및 기타 위협으로부터 컴퓨터 및 기타 장치를 보호합니다. 네트워크 방화벽, 130

반면에 내부 네트워크 입구에 위치합니다. 해당 네트워크로 들어가거나 나가는 모든 트래픽은 이를 통해 필터링되어야 합니다. 네트워크 방화벽은 모든 데이터의 진입점 역할을 하는 라우터나 전용 컴퓨터와 같은 단일 장치일 수 있습니다. 그런 다음 악의적이거나 원치 않는 모든 데이터를 차단합니다. 애플리케이션과의 데이터 전송을 모니터링하고 허용하거나 허용하지 않는 애플리케이션 수준 방화벽은 호스트 기반이거나 네트워크 기반일 수 있습니다.

프로그래밍 및 코딩의 원리

펌웨어

방화벽은 데이터를 필터링하는 방법에 따라 달라집니다. 패킷 필터는 들어오는 데이터 패킷을 개별적으로 검사하고 각 패킷의 진행을 차단할지 허용할지 결정합니다. 그들은 패킷의 출발지와 목적지와 같은 요소를 기반으로 이를 결정합니다. 상태 저장 필터는 연결 상태에 따라 들어오는 데이터를 허용할지 아니면 차단할지 결정합니다. 상태 저장 필터링을 사용하는 방화벽은 컴퓨터 시스템에 들어가려는 데이터 패킷이 진행 중인 활성 연결의 일부인지 여부를 식별하고 해당 컨텍스트에 따라 이를 허용할지 여부를 결정할 수 있습니다. 이를 통해 상태 비저장 데이터보다 더 빠르게 들어오는 데이터를 검사하고 필터링할 수 있습니다.

방화벽 및 컴퓨터 보안 방화벽은 악성 프로그램이나 사용자가 시스템에 액세스하는 것을 방지함으로써 컴퓨터에 저장되거나 컴퓨터를 통해 전송되는 중요한 데이터를 보호합니다. 이는 주민등록번호와 같은 개인 식별 정보는 물론 독점 거래 또는 정부 정보를 보호하는 데 사용됩니다. 신원 도용, 사기 및 기타 사이버 범죄가 주요 문제가 되면서 기술 산업과 대중 모두 21세기 초에 이러한 보호에 대한 중요성이 커졌습니다. 이러한 위협에 비추어 볼 때, 방화벽은 컴퓨터 보안 분야에서 필수적인 역할을 합니다. 그러나 전문가들은 방화벽이

유일한 보안 수단으로 사용되어서는 안 됩니다. 오히려 방화벽은 다른 컴퓨터 보안 방식과 함께 사용해야 합니다. 이러한 관행에는 안전한 비밀번호 사용, 패치 설치 및 취약점 제거를 위한 정기적인 소프트웨어 업데이트, 손상된 웹사이트 액세스 방지, 의심스러운 소스에서 파일 다운로드 방지 등이 포함됩니다. —Joy Crelin 참고문헌 “방화벽 작동 방식.” 보스턴 대학교 정보 서비스 및 기술. 보스턴 대학교, n.d. 편물. 2016년 2월 28일. Ingham, Kenneth, Stephanie Forrest. 네트워크 방화벽의 역사 및 조사. 앨버커키: 뉴멕시코 대학교, 2002. PDF 파일. Morreale, Patricia 및 Kornel Terplan, 편집. 현대 통신의 CRC 핸드북. 2판 보카 레이톤: CRC, 2009. 인쇄. 노스럽, 토니. “방화벽.” TechNet. 마이크로소프트, n.d. 편물. 2016년 2월 28일. 스톨링스, 윌리엄, 로리 브라운. 컴퓨터 보안: 원칙 및 실습. 3판 보스턴: 피어슨, 2015. 인쇄. 바카, 존, 에디션. 네트워크 및 시스템 보안. 2판 월섬: Elsevier, 2014. 인쇄.

펌웨어 연구 분야

주요 약관

임베디드 시스템; 소프트웨어 공학; 시스템 수준 프로그래밍

임베디드 시스템: 성능을 모니터링하거나 시스템 기능을 조절하기 위해 더 큰 장치나 시스템에 통합된 컴퓨터 시스템. 플래싱: 마더보드 또는 임베디드 시스템의 플래시 메모리가 최신 버전의 소프트웨어로 업데이트되는 프로세스입니다. 자유 소프트웨어: 프로그래머가 자신의 사용 또는 공공 사용을 위해 개발하고 무료로 배포하는 소프트웨어; 일반적으로 다른 사람이 그것을 획득하고 자신의 이익을 위해 판매하는 것을 방지하는 조건이 붙어 있습니다. 홈브류: 장치 제조업체와 관련이 없는 개인이 장치 또는 플랫폼용으로 개발한 소프트웨어입니다. 비공식이거나

개요 펌웨어는 고정되어 물리적으로 변하지 않는 하드웨어와 저장된 미디어 외에는 물리적인 형태가 없는 소프트웨어 사이에 위치합니다. 펌웨어는 컴퓨터나 장치의 비휘발성 메모리에 저장되므로 장치의 전원을 켜면 항상 사용할 수 있습니다. 배터리를 제거했다가 나중에 교체하더라도 그대로 유지되는 디지털 시계의 펌웨어에서 그 예를 볼 수 있습니다.

131

펌웨어

프로그래밍 및 코딩의 원리

제조업체가 포함하지 않거나 허용하지 않는 추가 기능을 제공하기 위해 개발된 소프트웨어의 "자체" 버전입니다. 비휘발성 메모리: 시스템 종료 시 지워지는 메모리가 아니라 시스템 전원이 차단된 후에도 내용을 유지하는 컴퓨터 저장소입니다.

펌웨어 개요 많은 소비자 장치는 너무 복잡해져서 이를 작동하려면 기본 컴퓨터가 필요합니다. 그러나 운영 체제(OS)와 특별히 설계된 소프트웨어를 갖춘 모든 기능을 갖춘 컴퓨터가 필요하지는 않습니다. 이러한 요구에 대한 답은 임베디드 시스템을 사용하는 것입니다. 이러한 시스템은 어린이 장난감처럼 단순한 장치부터 디지털 온도계와 같은 의료 장치처럼 복잡한 장치 내부의 마이크로칩에 설치됩니다. 펌웨어가 포함된 칩은 일반적으로 소비자가 직접 접근할 수 없기 때문에 "임베디드"라는 용어가 사용됩니다. 이는 장치 또는 시스템 내에 설치되며 수명 내내 작동할 것으로 예상됩니다. 컴퓨터는 또한 “기본 입출력 시스템”, 즉 BIOS라고 불리는 펌웨어를 사용합니다. 컴퓨터에 자체 OS가 설치되어 있고 보다 구체적인 작업을 수행하기 위한 수많은 프로그램이 있더라도 여전히 펌웨어가 필요합니다. 이는 컴퓨터의 전원이 켜질 때 컴퓨터의 일부가 시스템 자체 설정을 위해 수행할 작업을 즉시 알려줄 수 있어야 하기 때문입니다. 시작 순서가 포함된 하드 드라이브 부분을 확인한 다음 OS를 로드하라는 등의 작업을 컴퓨터에 지시해야 합니다. 펌웨어는 시스템에 전류가 흐르자마자 컴퓨터의 비휘발성 메모리에 저장된 정보가 로드되고 해당 명령이 실행되기 때문에 이러한 목적을 수행합니다. 펌웨어는 일반적으로 다른 OS를 설치하더라도 영향을 받지 않습니다. 그러나 사용자는 BIOS를 어느 정도 구성할 수도 있고 필요할 때 컴퓨터를 BIOS로 부팅하여 변경할 수도 있습니다. 예를 들어, 먼저 CD-ROM 드라이브에서 부팅하도록 구성된 컴퓨터는 연결된 USB 드라이브에서 정보 읽기를 먼저 시도하도록 BIOS에서 이를 변경했을 수 있습니다. 펌웨어 수정 및 교체 정교한 기술 사용자는 때때로 제조업체가 설치한 펌웨어가 132

Compe에서 제조한 FES 장치의 사진입니다.

그들의 필요를 모두 충족시키지 못합니다. 이 경우 플래싱이라는 프로세스를 통해 BIOS를 업데이트할 수 있습니다. 펌웨어가 업데이트되면 일반적으로 새로운 기능을 갖춘 새 버전으로 교체됩니다. 장치 제조업체가 새 버전으로 업데이트했기 때문에 펌웨어가 플래시되는 경우도 있습니다. 펌웨어 기능은 장치 작동에 매우 기본적이어서 출시 전에 철저한 테스트를 거쳤기 때문에 이는 거의 수행되지 않습니다. 그러나 때때로 펌웨어에서 보안 취약점이나 기타 소프트웨어 버그가 발견됩니다. 고객의 문제 해결을 지원하는 제조업체에서는 이러한 결함을 배제하기 위해 최신 펌웨어를 사용할 것을 권장하는 경우가 많습니다. 일부 장치, 특히 게임 콘솔에는 자체 펌웨어 버전을 생성할 수 있는 사용자 커뮤니티가 있습니다. 이러한 사용자 개발 펌웨어 버전은 제조업체가 아닌 사용자가 생산하므로 홈브류 소프트웨어라고 합니다. Homebrew 펌웨어는 일반적으로 인터넷에 무료 소프트웨어 또는 프리웨어로 배포되므로 누구나 사용할 수 있습니다.

프로그래밍 및 코딩의 원리

그것을 다운로드하고 장치를 플래시할 수 있습니다. 게임 콘솔의 경우 이는 새로운 기능을 열어줄 수 있습니다. 제조업체는 특수 기능용 장치만 생산하는 경향이 있습니다. 다른 기능은 비용을 증가시키거나 불법적이거나 바람직하지 않은 목적으로 장치를 사용하기가 너무 쉽기 때문에 제외됩니다. 홈브류 소프트웨어로 이러한 장치를 플래싱하면 이러한 기능을 사용할 수 있습니다.

자동차 소프트웨어 펌웨어에 점점 더 의존하게 되는 시장 부문 중 하나는 자동차 제조입니다. 이제 자동차의 점점 더 많은 기능이 펌웨어로 제어됩니다. 속도계와 연료계 컴퓨터 디스플레이는 펌웨어로 구동될 뿐만 아니라 자동차에는 음악 플레이어, 실시간 내비게이션 및 지도 디스플레이, 승객 휴대폰과의 인터페이스를 위한 펌웨어 애플리케이션이 함께 제공됩니다. 취약점으로서의 펌웨어 펌웨어는 사용자에게 잘 보이지 않지만 컴퓨터 보안 전문가에게는 여전히 우려되는 주제였습니다. 인터넷을 통해 배포되는 홈브류 펌웨어의 경우 펌웨어에 "백도어"가 포함될 수 있다는 우려가 있습니다. 백도어는 사용자의 개인정보를 승인되지 않은 당사자에게 전달하는 비밀 수단입니다. 공식 소스의 펌웨어를 사용해도 일부는 가능할 것이라고 걱정합니다.

기능적 전기 자극(FES)

정부나 장치 제조업체가 고의적이든 부주의하든 보안 취약점을 포함하도록 합니다. —Scott Zimmer, JD 참고문헌 Bembenik, Robert, L⁄ukasz Skonieczny, Henryk Rybin'ski, Marzena Kryszkiewicz, Marek Niezgódka, eds. 과학 정보 플랫폼 구축을 위한 지능형 도구: 고급 아키텍처 및 솔루션. 뉴욕: 스프링어, 2013. 인쇄. 주사위, 피트. 빠른 부팅: 임베디드 펌웨어 개발자를 위한 가이드. 힐스보로: 인텔, 2012. 인쇄. 이니에프스키, 크시슈토프. 임베디드 시스템: 하드웨어, 설계 및 구현. 호보켄: 와일리, 2012. 인쇄. Khan, Gul N. 및 Krzysztof Iniewski, eds. 임베디드 및 네트워킹 시스템: 설계, 소프트웨어 및 구현. 보카 레이톤: CRC, 2014. 인쇄. 노어가드, 태미. 임베디드 시스템 아키텍처: 엔지니어와 프로그래머를 위한 종합 가이드. 2판 보스턴: Elsevier, 2013. 인쇄. 선, 지밍, 빈센트 짐머, 마크 존스, 스테판 레이나우어. 임베디드 펌웨어 솔루션: 사물 인터넷을 위한 개발 모범 사례. 버클리: ApressOpen, 2015. 인쇄.

기능적 전기 자극(FES) 기능적 신경근 자극(FNS) 또는 신경근 전기 자극(NMES)이라고도 불리는 기능적 전기 자극(FES)은 치료 목적으로 환자의 근육이나 신경을 자극하기 위해 전기를 사용하는 의료 기술입니다. 뇌졸중, 뇌성마비, 근이영양증, 척수 손상, 다발성 경화증 등 다양한 근육 또는 신경 질환을 환자가 회복하거나 관리하는 데 효과적인 것으로 입증되었습니다.

개요 신체 기능을 회복하기 위해 신경을 자극하기 위해 전기를 사용하는 것은 W. T. Liberson과 그의 동료들이 1960년대 초반으로 거슬러 올라갑니다.

신경 또는 근육 외상의 일반적인 결과인 발바닥 떨림을 치료하기 위한 전기 요법 기술을 개발했습니다. 뇌졸중이나 근위축증과 같은 퇴행성 질환으로 인해 뇌, 척수, 신경 또는 근육이 손상되면 환자가 걷는 동안 발 앞쪽을 올릴 수 없게 될 수 있습니다. 리버슨은 발이 지면에서 들어올려지는 것을 감지하는 장치를 개발했는데, 이때 발의 근육과 연결되는 비골신경에 표면 자극을 가해 발을 구부려 환자가 정상적으로 걸을 수 있게 했다. Liberson과 동료들은 원래 이 기술을 "기능적 전기치료"라고 불렀습니다. 1년 후, J. H. Moe와 H. W. Post는 1962년 논문에서 "기능적 전기 자극"이라는 용어를 만들었습니다. 133

기능적 전기 자극(FES)

그 이후로 FES는 표면 자극이나 이식 장치를 통해 근육, 신경 또는 둘 모두에 영향을 미치는 수많은 장애를 치료하는 데 사용되었습니다. FES의 혜택을 받는 신경학적 질환에는 뇌졸중, 다발성 경화증, 뇌성마비, 척수 손상으로 인한 마비 등이 있습니다. 뇌졸중 회복 중 신체 기능을 회복하기 위해 애쓰는 환자의 경우, 영향을 받은 부위에 전기 자극을 가하면 근육을 움직이게 하는 신경이 활성화되어 근력이 회복되고 뇌가 스스로 운동을 시작하는 방법을 다시 학습하는 데 도움이 됩니다. 다발성 경화증의 경우 FES는 다양한 근육 그룹을 제어하는 ​​손상된 신경의 기능을 향상시킬 수 있습니다. 뇌성마비 환자의 경우 FES는 근육 조절을 개선하고 사지의 경련을 줄일 수 있습니다. 뇌졸중 환자와 마찬가지로 다발성 경화증 및 뇌성 마비 환자도 발이 떨어지기 쉬우며 FES는 여전히 일반적인 치료법입니다. 척수 손상으로 인해 마비가 발생한 환자의 경우 FES를 사용하여 마비된 사지의 근육을 운동시켜 위축을 예방하고 전반적인 체력을 향상시킬 수 있습니다. 어떤 경우에는 어느 정도의 이동성과 신체 기능 제어를 회복하거나 마비된 사지가 도움을 받아 기능할 수 있도록 할 수도 있습니다. 주목할만한 사례 중 하나는 1978년 고등학교 졸업식 날 밤에 교통사고를 당해 흉곽 아래 마비가 발생한 젊은 여성 낸 데이비스(Nan Davis)의 사례입니다. 오하이오주 Wright State University에 다니는 동안 Davis는 학교의 생물의학 공학 교수인 Jerrold Petrofsky가 이끄는 실험 프로그램에 자원했습니다. 1983년에 FES를 사용하여 다리 근육을 자극하는 Petrofsky가 개발한 장치의 도움으로 Davis는 대학 졸업식에서 졸업장을 받기 위해 무대를 가로질러 걸어갈 수 있었습니다. FES는 또한 근육이 점진적으로 약해지는 질병군인 다양한 유형의 근이영양증과 같이 근육 자체에 영향을 미치는 장애에 대한 치료법으로도 성공을 보였습니다. 신경학적 원인으로 인한 근위축의 경우와 마찬가지로 FES를 사용하여 영향을 받은 근육을 운동시켜 악화를 멈추고 근력을 향상시킬 수 있습니다. —란다 탄타위(Randa Tantawi) 박사

134

프로그래밍 및 코딩의 원리

참고문헌 Campbell, Joyce M. “전기 자극의 임상 적용에 대한 일반적인 고려 사항.” 국제기능적전기자극학회. IFESS, n.d. 편물. 2013년 10월 7일. Chisari, Carmelo, et al. "만성 근육 자극은 근육 기능을 향상시키고 근긴장성 이영양증의 비정상적인 표면 EMG 패턴을 되돌립니다: 파일럿 연구." 신경공학 및 재활 저널 10.1(2013): 94. 인쇄. “기능적 전기 자극(FES) 자료표.” 다발성 경화증 신뢰. 다발성 경화증 신뢰, 2012년 12월. 웹. 2013년 10월 7일. Liberson, W. T., et al. "기능적 전기치료: 편마비 환자의 보행의 유각 단계와 동기화된 비골신경 자극." 물리 의학 및 재활 기록 보관소 42(1961): 101–5. 인쇄. Peng, Chih-Wei 등. "검토: 중추 신경 장애가 있는 피험자를 위한 기능적 전기 자극 사이클링 운동의 임상적 이점." 의료 및 생물 공학 저널 31.1 (2011): 1–11. 인쇄. 프레스콧, 보니. “개선된 전기 자극 방법으로 손상된 신경을 치료하는 데 도움이 될 수 있습니다.” 베스 이스라엘 집사 의료 센터. 베스 이스라엘 집사 Med. Ctr., 2011년 11월 21일. Web. 2013년 10월 7일. Ragnarsson, K. T. "척수 손상 후 기능적 전기 자극: 현재 사용, 치료 효과 및 향후 방향." 척수 46.4(2008): 255-74. 인쇄. Tansey, Keith 등. “척수 손상 후 운동 조절의 회복 신경학.” 척수 손상의 회복 신경학. 에드. Milan R. Dimitrijevicet al. 옥스퍼드: 옥스포드 UP, 2012. 43– 64. 인쇄. Vrbová, Gerta, Olga Hudlicka, Kristin Schaefer Centofanti. 건강과 질병에 근육/신경 자극의 적용. Dordrecht: Springer, 2008. 인쇄. 근육 연구의 발전 4. Wagner, Sean. "'기능적 전기 자극' 치료로 파킨슨병 환자의 보행 능력 향상" 오늘의 의료 뉴스. MediLexicon Intl., 2008년 6월 3일. 웹. 2013년 10월 7일.

G 게임 프로그래밍 연구 분야 소프트웨어 공학; 프로그래밍 언어 개요 게임 프로그래밍은 컴퓨터 및 비디오 게임을 개발하는 데 사용되는 소프트웨어 엔지니어링의 한 유형입니다. 개발 중인 게임 유형에 따라 프로그래머는 일반적으로 컴퓨터 프로그래머에게 필요하지 않은 소프트웨어 개발 분야를 전문적으로 다루어야 할 수도 있습니다. 이러한 전문 분야에는 인공 지능, 물리학, 오디오, 그래픽, 입력, 데이터베이스 관리 및 네트워크 관리가 포함됩니다. 주요 용어 게임 루프: 게임의 물리, 인공 지능 및 그래픽이 사용자 입력 여부에 관계없이 계속 실행될 수 있도록 하는 게임 프로그램의 주요 부분입니다. 홈브류: 소프트웨어 회사에 고용된 프로그래머가 아니라 여가 시간에 게임을 만드는 프로그래머가 만든 소프트웨어를 가리키는 속어입니다. 객체 지향 프로그래밍: 소스 코드가 객체로 구성되는 프로그래밍 유형입니다. 객체는 정의된 속성 및 동작 세트를 갖는 고유한 ID를 가진 요소입니다. 프로토타입: 아직 개발 중인 소프트웨어의 초기 버전으로, 완성된 제품의 모습과 포함될 기능을 보여주기 위해 사용됩니다. 의사 코드: 프로그램 코드의 개요를 설명하는 데 사용되는 프로그래밍 언어와 영어와 같은 음성 언어의 조합입니다. 소스 코드: 프로그램을 생성하기 위해 프로그래밍 언어로 작성된 명령 집합입니다.

게임 프로그래밍 작동 방식 많은 비디오 게임이 여가 시간에 일하는 개인에 의해 자체 제작 프로젝트로 개발되는 반면, 대부분의 주요 게임은 비디오 게임을 전문으로 하는 대기업의 직원이 개발합니다. 그러한 회사에서 비디오 게임을 만드는 과정은 게임 디자인에 대한 기본 아이디어부터 시작됩니다. 회사 내 충분한 사람들이 아이디어가 장점이 있다고 느끼면 회사는 컨셉을 더욱 발전시키기 위한 프로토타입을 만들 것입니다. 프로토타입은 게임의 기본 스토리 라인, 그래픽 및 프로그래밍에 형태를 제공합니다. 이는 개발자가 게임이 시장에서 성공할 수 있는지 여부와 개발에 필요한 리소스를 결정하는 데 도움이 됩니다. 프로토타입 단계를 통과하는 게임은 기존 소프트웨어 개발과 동일한 경로를 따라 진행됩니다. 그러나 비디오 게임은 사용자 입력이 없어도 게임 요소가 계속 실행되어야 한다는 점에서 대부분의 다른 소프트웨어 응용 프로그램과 다릅니다. 따라서 프로그래머는 사용자가 활동하지 않을 때 프로그램의 그래픽, 인공 지능 및 오디오를 계속 실행하는 게임 루프를 만들어야 합니다. 게임 프로그래머는 객체지향 프로그래밍(OOP)을 자주 사용합니다. 이는 프로그램의 필수 개체와 개체가 서로 상호 작용하는 방법을 정의하는 소프트웨어 개발에 대한 접근 방식입니다. 각 객체는 동일한 클래스의 다른 객체와 속성 및 동작을 공유합니다. 많은 비디오 게임이 수십만 줄의 코드를 실행하기 때문에 게임 개발에 대한 객체 지향 접근 방식을 사용하면 코드를 보다 쉽게 ​​관리할 수 있습니다. OOP를 사용하면 프로그램을 더 쉽게 수정, 유지 관리 및 확장할 수 있습니다. 이 접근 방식을 사용하면 게임 요소를 더 쉽게 계획하고 용도를 ​​변경할 수 있습니다. 와이드 135용 게임의 소스 코드를 작성하는 데 많은 사람들이 참여합니다.

프로그래밍 및 코딩의 원리

게임 프로그래밍

실물 프로토타입/보드게임 테스트 배포용 디지털 게임 제작

미적 디자인

다음에 대한 코드 작성:

플레이의 경험이나 목적을 지원하는 게임 메커니즘을 디자인합니다. 플레이어 경험의 개념을 개발합니다.

실제 프로토타입 만들기

플레이어 상호작용 디자인

게임 메커니즘

시험

디지털 프로토타입 개발

필요에 따라 코드를 다시 작성하거나 디자인을 변경하세요.

디지털 프로토타입/프로그램/앱 테스트

발전하는 기술에 맞춰 유지 관리 및 업데이트에 대한 후속 조치

고품질 게임 개발은 플레이어의 경험과 게임 메커니즘을 정의하는 것부터 시작됩니다. 게임 조각과 환경의 미학과 디지털 프로토타입은 실제로 프로세스 후반에 결정됩니다.

분포. 이들은 일반적으로 팀으로 구성되며 각 팀은 게임 메커니즘의 특정 측면이나 특정 유형의 프로그래밍을 전문으로 합니다. 협업을 촉진하기 위해 자세한 설명과 유사 코드를 사용하여 프로그램 기능을 문서화하고 코딩 전략에 대한 선택 사항을 설명합니다. 의사코드(Pseudocode)는 프로그래밍 언어와 영어 등 자연어의 조합이다. 실행 가능하지는 않지만 소스 코드보다 읽고 이해하기가 훨씬 쉽습니다.

게임 프로그래밍 도구 게임 프로그래머는 대부분의 소프트웨어 개발자와 동일한 기본 도구를 사용합니다. 이러한 도구에는 텍스트 편집기, 디버거 및 컴파일러가 포함됩니다. 사용되는 도구는 게임을 실행하려는 장치 유형에 따라 결정되는 경우가 많습니다. 게임은 Windows, Apple 또는 Linux와 같은 특정 컴퓨터 플랫폼용으로 개발될 수 있습니다. 또한 Wii, Xbox 또는 PlayStation과 같은 게임 콘솔용으로 개발될 수도 있습니다. 마지막으로 게임은 Apple의 iOS나 Google의 Android 운영 체제와 같은 모바일 플랫폼용으로 개발될 수 있습니다. 비디오 게임을 만드는 데에는 다양한 프로그래밍 언어가 사용됩니다. 게임 개발에서 가장 일반적으로 사용되는 프로그래밍 언어로는 C++, C# 및 Java가 있습니다. 많은 비디오 게임은 여러 언어의 조합으로 프로그래밍됩니다. 어셈블리 코드 또는 C를 사용하여 하위 수준 모듈을 작성할 수 있습니다. 많은 게임의 그래픽은 Cg 또는 HLSL과 같은 셰이딩 언어를 사용하여 프로그래밍됩니다. 게임 개발자는 OpenGL 및 DirectX와 같은 API(응용 프로그래밍 인터페이스)를 자주 사용합니다. 136

또한 자주 사용되는 기능의 용도를 변경하기 위해 라이브러리와 API 사용에 크게 의존합니다. 이러한 리소스 중 다수는 애니메이션, 그래픽 및 3D 요소 조작과 관련되어 있습니다. 게임 개발의 원동력 중 하나는 점점 더 정교해지는 시각적 요소를 사용하는 것입니다. 비디오 게임 산업은 복잡한 줄거리, 눈부신 특수 효과, 완벽하게 개발된 캐릭터를 사용한다는 점에서 영화와 경쟁하게 되었습니다.

인기 있지만 까다로운 직업 게임 프로그래밍은 젊은이들 사이에서 인기 있는 직업 선택이었습니다. 비디오 게임의 인기로 인해 많은 사람들이 게임 관련 일을 하면서 돈을 받을 수 있는 직업에 관심이 있다는 것은 놀라운 일이 아닙니다. 게임 프로그래머가 되려면 코딩 능력과 다양한 프로그래밍 언어에 대한 지식이 필요합니다. 게임 프로그래머는 게임 엔진, 인공 지능, 오디오, 그래픽, 사용자 인터페이스, 입력 또는 게임 플레이 개발을 전문으로 할 수 있습니다. 게임 프로그래머들은 매년 점점 더 인상적인 게임을 제작해야 한다는 압박감 때문에 높은 수준의 스트레스를 정기적으로 보고합니다. 새로운 타이틀이 출시될 때마다 더 나은 특수 효과, 더 흥미진진한 스토리, 더 현실적인 액션을 만들기 위한 치열한 경쟁이 벌어지고 있습니다. 일부 게임 회사는 게임 개발자에게 높은 요구 사항과 과도한 업무량을 부과한다는 비판을 받아 왔습니다. —Scott Zimmer, JD 참고문헌 Harbour, Jonathan S. 게임 프로그래밍 시작. 4판 보스턴: 센게이지(Cengage), 2015. 인쇄. 김창훈 외. 게임 프로그래밍을 위한 실시간 시각 효과. 싱가포르: Springer, 2015. 인쇄. 마드하브, 산자이. 게임 프로그래밍 알고리즘 및 기법: 플랫폼에 구애받지 않는 접근 방식. 어퍼 새들 리버: 애디슨, 2014. 인쇄. 마찬트, 벤. “C 및 C++의 게임 프로그래밍.” Cprogramming.com. Cprogramming.com, 2011. 웹. 2016년 3월 16일. Nystrom, Robert. 게임 프로그래밍 패턴. N.p.: 저자, 2009-14. 편물. 2016년 3월 16일. 야마모토, Jazon. 멀티플랫폼 게임 프로그래밍의 흑마법. 보스턴: 센게이지(Cengage), 2015. 인쇄.

프로그래밍 및 코딩의 원리

게임화

게임화(GAMIFICATION) 2000년대 초에 만들어진 용어인 게임화(Gamification)는 실제 환경에서 비디오 게임 논리와 심리학을 사용하는 것을 의미하며, 특히 마케팅, 교육, 기업 세계에서 가장 두드러집니다. 게임화 이론은 소비자, 동료, 학생 등 사람들이 1980년대 이후 비디오 게임을 문화적 현상으로 만든 유형의 경쟁, 보상 및 시뮬레이션된 위험에 자연스럽고 효율적으로 반응한다고 주장합니다. 이 개념은 특히 1975년 이후에 태어난 미국인 세대에 적용됩니다. 이들 중 다수는 비디오 게임을 하면서 자랐으며 21세기 초에 기업과 조직에서 두각을 나타내는 위치를 차지하기 시작했습니다. 이러한 비디오 게임 애호가들은 인센티브가 부여된 의사 결정, 신속한 문제 해결, 특정 작업과 단기 보상의 자명한 논리, 시뮬레이션된 위험에 대한 아드레날린 반응, 성취는 자기 표현의 척도로서 모든 것은 그러한 매트릭스에서 작업하는 것이 재미 있고 수익성이 있다는 가정에 따라 결정됩니다.

개요 게임화(Gamification)는 일상적인 작업에 인공적인 내러티브와 게임 느낌을 만들어 참여도를 높이고, 기술 수준을 높이며, 참여하는 사람들에게 긍정적인 영향을 미치면 생산성과 효율성이 향상될 수 있다고 가정합니다. 게이미피케이션의 패러다임은 주말 세미나, 온라인 교육, 소셜미디어 등을 통해 아주 짧은 시간에 등장했지만, 곧 널리 적용됐다. 게임화의 예로는 10회 방문 후 무료 식사를 제공하는 패스트푸드 레스토랑, 인공적인 시스템을 만들어 자원봉사자를 유치하는 지역사회 조직 등이 있습니다.

참여 수준, 현명한 예금 결정에 점수를 부여하는 ATM 게임을 만드는 은행. 게임화의 또 다른 예로는 단기 수익을 측정하고 완전히 인위적인 성공 수준을 매핑하는 방법으로 잠재 투자자에게 포인트 시스템을 제공하는 기업가가 있습니다. 피트니스 목표를 달성하기 위해 회원들이 서로 대결하는 대회를 후원하는 피트니스 클럽; 더 나은 사무실 공간이나 급여 인상과 같은 전통적인 혜택을 얻기 위해가 아니라 단순한 경쟁 정신으로 동료를 서로 경쟁시켜 생산성을 극대화하는 회사입니다. 이러한 모든 상황에서 게임 원칙은 게임이 아닌 상황에도 적용됩니다. 심리학자들은 게임화의 필수 전략은 사람을 졸개로, 감독자를 조잡한 조작자로 줄여 원하는 행동을 활용하는 구식 조작적 조건화의 새로운 버전일 뿐이라고 지적합니다. 장기적인 발전을 고려해야 하는 일부 기업과 교육 기관은 게임화가 사람들의 초점을 단기적인 이익과 제한적이고 모호한 목표에만 국한시키는 것을 두려워합니다. 특히 많은 교육자들은 외부 보상에 대한 강조가 학생들의 학습에 대한 내재적 동기를 감소시킬 수 있다는 우려를 표명했지만, 이것이 진정한 우려의 정도는 여전히 논쟁의 여지가 있습니다. 많은 사람들은 학습의 적절한 게임화에는 내재적 동기를 대체하기보다는 지원하기 위해 외재적 보상을 사용하는 것이 포함된다고 주장합니다. 일부 전통적인 개인, 특히 비디오 게임이 출현하기 전에 태어난 사람들은 게임화의 전제가 모욕적이라고 생각하며 실제 삶의 진지한 작업이 비디오 게임의 시뮬레이션된 스릴을 모방해야 한다고 믿지 않습니다. 비평가

게이미피케이션(Gamification)의 진행 상황을 보여주는 차트입니다.

137

프로그래밍 및 코딩의 원리

그래픽 사용자 인터페이스(GUI)

게임화에서는 단순히 사람들이 고객, 학생, 동료 등 특정 방식으로 행동하도록 동기를 부여하는 것은 잠재적으로 재앙을 초래할 수 있는 전략이라고 믿습니다. 왜냐하면 모션은 발전을 위한 활동, 성취를 위한 활동, 팀워크를 위한 경쟁으로 오인될 수 있기 때문입니다. —Joseph Dewey, MA, PhD 참고문헌 Burke, Brian. “비즈니스의 게임화.” 포브스. Forbes.com, 2013년 1월 21일. 웹. 2013년 8월 20일. 버크, 브라이언. Gamify: Gamification이 사람들에게 특별한 일을 하도록 동기를 부여하는 방법 브루클린: Bibliomotion, 2014. 인쇄. Kapp, Karl M. 학습 및 교육의 게임화: 훈련 및 교육을 위한 게임 기반 방법 및 전략. 샌프란시스코: 파이퍼, 2012. 인쇄.

맥코믹, 타이. “게이미피케이션: 짧은 역사.” 외교 정책. FP 그룹, 2013년 6월 24일. 웹. 2013년 8월 20일. McGonigal, Jane. 현실은 깨졌습니다: 게임이 우리를 더 좋게 만드는 이유와 세상을 어떻게 바꿀 수 있는지. 뉴욕: 펭귄, 2011. 인쇄. 워커, 팀. “교실에서의 게임화: 학생에게 동기를 부여하는 올바른 방법인가, 아니면 잘못된 방법인가?” 오늘 NEA. Natl. 교육 Assn., 2014년 6월 23일. Web. 2015년 7월 28일. Werbach, Kevin, Dan Hunter. 승리를 위해: 게임적 사고가 비즈니스를 혁신하는 방법 필라델피아: 와튼, 2012. 인쇄. Zichermann, Gabe 및 크리스토퍼 커닝햄. 디자인을 통한 게임화: 웹 및 모바일 앱에 게임 메커니즘 구현. 세바스토폴: O'Reilly, 2011. 인쇄. Zichermann, Gabe 및 Joselin Linder. 게임화 혁명: 리더가 게임 메커니즘을 활용하여 경쟁을 제압하는 방법 뉴욕: 맥그로, 2013. 인쇄.

그래픽 사용자 인터페이스(GUI) 연구 분야 컴퓨터 과학; 프로그램 작성

응용 프로그램;

시스템 수준

개요 그래픽 사용자 인터페이스(GUI)는 인간과 컴퓨터의 상호작용 시스템입니다. 이러한 시스템에서 사용자는 개체나 명령의 시각적 표현을 조작하여 컴퓨터와 상호 작용합니다. GUI는 Windows 및 Mac OS와 같은 일반적인 운영 체제의 일부입니다. 다른 응용 프로그램에도 사용됩니다. 기본 용어 응용 프로그램별 GUI: 특정 응용 프로그램에 사용하도록 설계된 그래픽 인터페이스입니다. 명령줄: 컴퓨터 시스템을 탐색하고 파일과 폴더에 액세스하기 위해 텍스트 기반 명령을 받아들이는 인터페이스입니다. 직접 조작 인터페이스: 사용자가 직접 조작할 수 있는 컴퓨터 상호 작용 형식138

자동으로 코딩으로 변환되는 후기 그래픽 객체 또는 물리적 형태. 인터페이스 비유: 컴퓨터 명령, 작업 및 프로세스를 기능적 유사성을 갖는 실제 작업, 프로세스 또는 개체와 연결합니다. 객체지향 사용자 인터페이스: 별도의 제어판 인터페이스를 통해 변경된 객체를 선택하는 것이 아니라 사용자가 실제 상황에서처럼 화면 상의 객체와 상호 작용할 수 있도록 하는 인터페이스입니다. 사용자 중심 디자인: 사용자 선호도, 요구 사항, 경향 및 기능에 대한 인식된 이해를 기반으로 하는 디자인입니다.

그래픽 및 인터페이스 기본 사용자 인터페이스는 인간과 컴퓨터의 상호 작용을 위한 시스템입니다. 인터페이스는 사용자가 컴퓨터나 컴퓨터 네트워크 내에 저장된 데이터에 액세스하고 작업할 수 있는 방법을 결정합니다. 인터페이스는 텍스트 기반이거나 그래픽 기반일 수 있습니다. 텍스트 기반 시스템에서는 사용자가 명령을 입력할 수 있습니다. 이것들

프로그래밍 및 코딩의 원리

그래픽 사용자 인터페이스(GUI)

명령은 기능을 활성화하는 텍스트 문자열이거나 특정 단어일 수 있습니다. 대조적으로, 그래픽 사용자 인터페이스(GUI)는 컴퓨터 기능이 그래픽 아이콘(예: 폴더, 파일 및 드라이브)과 연결되도록 설계되었습니다. 아이콘을 조작하면 컴퓨터가 특정 기능을 수행하게 됩니다.

인터페이스 디자인의 역사 최초의 컴퓨터는 텍스트 기반 인터페이스를 사용했습니다. 사용자는 명령줄에 텍스트 지침을 입력했습니다. 예를 들어, 명령줄에 "run"을 입력하면 컴퓨터가 프로그램이나 프로세스를 활성화하도록 지시합니다. 소비자 컴퓨터 기술을 위한 최초의 텍스트 기반 인터페이스 중 하나는 "디스크 운영 체제"(DOS)로 알려져 있습니다. DOS 기반 시스템을 사용하려면 사용자가 파일을 삭제하거나 지우는 "del" 또는 디렉토리 내용 나열을 위한 "dir"과 같은 특정 텍스트 명령을 배워야 했습니다. 최초의 GUI는 1970년대에 DOS 시스템 위에 구축된 시각적 "쉘"로 만들어졌습니다. GUI는 컴퓨터 화면을 그래픽이 기능, 프로그램, 파일 및 디렉토리를 나타내는 물리적 지도로 변환합니다. GUI에서 사용자는 일반적으로 화살표나 손 모양의 화면 포인터를 제어하여 컴퓨터 화면을 탐색합니다. 사용자는 포인터를 아이콘 위에 놓고 "클릭"하여 컴퓨팅 기능을 활성화합니다. 예를 들어, GUI 사용자는 화면에서 폴더나 디렉토리 아이콘을 클릭하여 컴퓨터가 디렉토리의 내용(DOS의 "dir" 명령)을 표시하도록 할 수 있습니다. 최신 GUI는 메뉴 표시줄 및 이동 가능한 창에 있는 것과 같은 텍스트 기반 아이콘을 프로그램 및 디렉토리에 액세스하는 데 사용할 수 있는 링크된 텍스트 아이콘과 결합합니다. GUI 및 기타 객체 인터페이스의 요소 컴퓨터 프로그램은 사용자로부터 입력이 주어졌을 때 컴퓨터가 어떻게 행동해야 하는지 알려주는 코딩된 지침을 사용하여 구축됩니다. 다양한 프로그래밍 언어를 사용하여 GUI를 만들 수 있습니다. 여기에는 C++, C#, JavaFX, XAML, XUL 등이 포함됩니다. 각 언어는 GUI를 생성하고 수정하는 데 사용될 때 서로 다른 장점과 단점을 제공합니다. 사용자 중심 디자인은 사용자 선호도, 요구 사항, 기능 및 경향을 이해하고 해결하는 데 중점을 둡니다. 이러한 디자인 원칙에 따르면 인터페이스 은유는 GUI를 사용자화하는 데 도움이 됩니다.

그래픽 사용자 인터페이스(GUI)는 1980년대 초반에 대중화되었습니다. GUI의 초기 사용에는 아날로그 시계, 간단한 아이콘, 차트 및 메뉴가 포함되었습니다.

친숙한 . 인터페이스 은유는 컴퓨터 기능에 대한 사용자의 이해를 높이기 위해 실제 개체나 개념을 나타내는 모델입니다. 예를 들어, GUI의 데스크탑 구조는 책상이라는 비유를 사용하여 설계되었습니다. 실제 데스크탑과 마찬가지로 컴퓨터 데스크탑에는 문서(창)와 다양한 기능을 수행하기 위한 개체 또는 도구가 쌓여 있을 수 있습니다. 컴퓨터 폴더, 휴지통, 휴지통은 실제 아이콘의 기능을 반영하는 아이콘입니다. OOUI(객체 지향 사용자 인터페이스)를 사용하면 사용자가 달성하려는 기능을 기반으로 직관적인 방식으로 화면의 객체를 조작할 수 있습니다. 대부분의 최신 GUI에는 객체 지향 기능이 있습니다. 드래그, 드롭, 슬라이드, 토글, 밀기, 클릭할 수 있는 아이콘을 "객체"라고 합니다. 개체에는 폴더, 프로그램 바로가기, 드라이브 아이콘, 휴지통이 포함됩니다. 아이콘을 사용하는 인터페이스는 DMI(직접 조작 인터페이스)일 수도 있습니다. 이러한 인터페이스를 통해 사용자는 화면상의 개체를 실제 개체인 것처럼 조정하여 특정 결과를 얻을 수 있습니다. 모서리를 끌어 창 크기를 조정하는 것은 많은 GUI에서 사용되는 직접 조작의 한 예입니다. 139

프로그래밍 및 코딩의 원리

그래픽 형식

인터페이스 디자인의 현재와 미래 GUI는 오랫동안 WIMP라는 모델을 기반으로 해왔습니다. WIMP는 "창, 아이콘, 메뉴 및 포인터 개체"를 의미하며 사용자가 인터페이스와 상호 작용할 수 있는 방법을 설명합니다. 최신 GUI는 그래픽 기반 기능과 텍스트 기반 기능이 혼합되어 있지만 이 시스템은 아이콘과 메뉴를 담을 공간이 부족한 최신 휴대용 컴퓨터에서는 구현하기가 더 어렵습니다. 터치스크린 인터페이스는 WIMP 이후 인터페이스 디자인 시대를 대표합니다. 터치 스크린을 사용하면 사용자는 메뉴와 텍스트 기반 지침을 사용하는 대신 화면의 개체와 직접 상호 작용하는 경우가 더 많습니다. 터치스크린 디자인은 많은 애플리케이션별 GUI에서 중요합니다. 이러한 인터페이스는 식료품점의 셀프 체크아웃 키오스크 및 POS 소매 소프트웨어와 같은 단일 프로세스 또는 애플리케이션을 처리하도록 설계되었습니다. 현재 컴퓨터 인터페이스에서는 일반적으로 사용자가 기능, 데이터 또는 프로그램을 찾기 위해 파일, 폴더 및 메뉴를 탐색해야 합니다. 그러나 이제 많은 컴퓨팅 장치에서 프로그램이나 기능의 음성 활성화를 사용할 수 있습니다. 이 기술이 더욱 보편화되고 효과적이게 되면서 언어적

명령은 포인트 앤 클릭이나 메뉴 탐색을 통해 액세스했던 많은 기능을 대체할 수 있습니다. —마이카 L. 이시트

참고문헌 “그래픽 사용자 인터페이스(GUI).” 테코피디아. Techopedia, n.d. 편물. 2016년 2월 5일. 존슨, 제프. 마음에 마음을 담아 디자인합니다. 2판 월섬: 모건, 2014. 인쇄. 로어, 스티브. “인간화 기술: 인간-컴퓨터 상호작용의 역사.” 뉴욕 타임즈: 비트. New York Times, 2015년 9월 7일. 웹. 2016년 1월 31일. 라이머, 제레미. “GUI의 역사.” 아르스 테크니카. Condé Nast, 2005년 5월 5일. 웹. 2016년 1월 31일. "사용자 인터페이스 디자인 기초." 유용성. 미국 보건복지부, 2016년 2월 2일. 웹. 2016년 2월 2일. 우드, 데이비드. 인터페이스 디자인: UI 디자인의 시각적 커뮤니케이션 소개. 뉴욕: 페어차일드, 2014. 인쇄.

그래픽 형식 연구 분야 정보 시스템; 디지털 미디어; 그래픽 디자인 개요 그래픽 형식은 디지털 이미지의 재생산을 전송, 표시, 저장 또는 인쇄하는 데 사용되는 표준화된 형태의 컴퓨터 파일입니다. 디지털 이미지 파일은 벡터 파일과 래스터 파일이라는 두 가지 주요 계열로 나뉩니다. 저장을 위해 압축하거나 압축을 풀 수 있습니다. 각 유형의 디지털 파일에는 다양한 응용 프로그램에 사용될 때 장점과 단점이 있습니다. 주요 용어 압축 데이터: 데이터를 저장하거나 전송하는 데 더 적은 비트의 정보가 필요하도록 인코딩된 데이터입니다. 무손실 압축: 원본 데이터를 정확도 손실 없이 압축하고 재구성할 수 있는 데이터 압축입니다. 140

손실 압축: 근사치를 사용하여 콘텐츠를 표현하므로 재구성된 데이터의 정확성을 감소시키는 데이터 압축입니다. LZW 압축: 테이블 기반 알고리즘을 사용하는 무손실 압축 유형입니다. RGB: 빨간색, 녹색, 파란색을 사용하여 다양한 조합을 통해 다른 색상을 형성하는 색상 모델입니다.

디지털 이미지 디지털 이미지는 컴퓨터나 기타 디지털 장치를 사용하여 표시, 조작 및 수정할 수 있는 이미지의 수학적 표현입니다. 압축할 수도 있습니다. 압축은 알고리즘을 사용하여 이미지 파일의 크기를 줄여 이미지 공유, 표시 또는 저장을 용이하게 합니다. 디지털 이미지는 래스터 또는 벡터 이미지로 저장되고 조작될 수 있습니다. "메타파일"이라고 하는 세 번째 유형의 그래픽 파일 계열은 래스터 요소와 벡터 요소를 모두 사용합니다. 이미지의 품질과 해상도(선명도)는 디지털 파일의 크기와 복잡성에 따라 달라집니다. ~ 안에

프로그래밍 및 코딩의 원리

그래픽 형식

무손실 압축 원본 파일

복원됨

LOSSY 원본 파일

압축

복원됨

이미지 형식에 따라 압축 및 복원 후 데이터가 손실될 수 있습니다. 이미지 데이터가 손실되면 이미지 품질이 저하됩니다.

래스터 그래픽의 경우 이미지는 "픽셀"이라는 사각형 집합으로 저장됩니다. 각 픽셀에는 색상 값과 색상 심도가 있습니다. 이는 각 픽셀에 할당된 "비트" 수로 정의됩니다. 픽셀의 범위는 단색(2색) 심도를 갖는 픽셀당 1비트부터 32비트 또는 "트루 컬러"까지입니다. 32비트 색상은 다양한 조합을 통해 40억 가지 이상의 색상을 표현할 수 있습니다. 래스터 그래픽은 이미지의 각 픽셀이 고유한 색상 심도를 가질 수 있으므로 색상 세부 수준이 가장 높습니다. 이러한 이유로 래스터 형식은 사진 및 Adobe Photoshop과 같은 이미지 프로그램에 사용됩니다. 그러나 래스터 이미지의 해상도는 모든 배율에서 이미지의 픽셀 수가 동일하기 때문에 크기에 따라 달라집니다. 이러한 이유로 래스터 이미지는 해상도를 잃지 않고 특정 지점 이상으로 확대할 수 없습니다. 벡터 그래픽은 이미지를 크기에 종속되지 않고 어떤 확대에서도 동일하게 보이는 다각형 세트로 저장합니다. 로고와 같은 상대적으로 단순한 그래픽의 경우 벡터 파일은 래스터 이미지보다 더 작고 더 정확합니다.

그러나 벡터 파일은 복잡한 색상이나 흐림 또는 그림자와 같은 고급 효과를 지원하지 않습니다. 다양한 색상을 디지털 방식으로 표시하기 위해 두 가지 기본 색상 모델이 사용됩니다. "추가 색상"이라고도 하는 RGB 색상 모델은 빨간색, 녹색, 파란색을 결합하여 색상을 생성합니다. "감산 색상"이라고도 하는 CMYK 모델은 감산 원색인 청록색, 자홍색, 노란색 및 검정색을 결합하여 빛의 특정 파장을 흡수하고 다른 파장은 반사합니다.

이미지 압축 이미지 압축은 이미지 크기를 줄여 저장 및 처리를 더 쉽게 해줍니다. 무손실 압축은 이미지 내에 포함된 반복적이거나 중복된 정보를 식별하는 모델링 알고리즘을 사용합니다. 이 정보는 데이터나 해상도의 손실 없이 이미지를 재구성하는 데 사용할 수 있는 일련의 지침으로 저장됩니다. 일반적으로 사용되는 무손실 압축의 한 형태는 1980년대에 개발된 LZW 압축 알고리즘입니다. LZW 141

프로그래밍 및 코딩의 원리

가드 조항

알고리즘은 압축을 위해 "코드 테이블" 또는 "사전"을 사용합니다. 데이터에서 반복되는 시퀀스를 검색한 다음 이러한 시퀀스를 압축 파일 내의 "사전"에 추가합니다. 반복되는 데이터를 사전 파일에 대한 참조로 바꾸면 공간이 절약되지만 데이터는 손실되지 않습니다. 무손실 압축은 이미지 품질이 중요한 경우에 유용하지만 이미지 크기를 줄이는 데는 효율성이 떨어집니다. 손실 압축 알고리즘은 덜 "가치 있는" 정보를 제거하여 파일 크기를 줄입니다. 그러나 손실 알고리즘으로 압축된 이미지는 이미지를 압축하고 압축을 풀 때마다 계속해서 해상도를 잃습니다. 이미지 품질의 손실에도 불구하고 손실 압축은 더 작은 파일을 생성하므로 이미지 품질이 덜 중요하거나 컴퓨팅 리소스 수요가 높을 때 유용합니다.

일반적인 그래픽 형식 JPEG는 1990년대 초반에 개발된 손실이 있는 이미지 압축 형식의 한 유형입니다. JPEG는 RGB 및 CMYK 색상을 지원하며 웹사이트에 표시하는 데 사용되는 것과 같은 작은 이미지에 가장 유용합니다. JPEG는 손실 알고리즘을 사용하여 자동으로 압축됩니다. 따라서 이미지를 편집하고 새 JPEG로 저장할 때마다 일부 이미지 품질이 손실됩니다. GIF(Graphics Interchange Format) 파일은 색상 팔레트가 제한되어 있으며 품질 저하 없이 압축할 수 있도록 LZW 압축을 사용합니다. JPEG와 달리 GIF는 표시하거나 인쇄할 때 특정 색상을 무시하여 이미지 내의 "투명성"을 지원합니다. GIF 파일은 오픈 소스이며 다양한 프로그램과 응용 프로그램에서 사용할 수 있습니다. 그러나 내장된 LZW 압축은 이미지에 제한된 색상 팔레트가 포함되어 있을 때 가장 효과적이기 때문에 대부분의 GIF 형식은 제한된 색상만 지원합니다. PNG(이동식 네트워크 그래픽)는

투명도와 24비트 색상을 지원하는 GIF의 오픈 소스 대안입니다. 이는 GIF보다 복잡한 색상을 더 잘 표현합니다. SVG(Scalable Vector Graphics)는 벡터 이미지를 저장하고 전송하는 데 사용되는 오픈 소스 형식입니다. SVG 파일에는 기본 압축 기능이 없지만 외부 프로그램을 사용하여 압축할 수 있습니다. 또한 벡터 요소와 래스터 요소를 모두 결합한 이미지를 공유하는 데 사용할 수 있는 "메타파일" 형식이 있습니다. 여기에는 문서를 저장하고 표시하는 데 사용되는 PDF(Portable Document Format) 파일과 일반적으로 프로그램 간에 이미지 파일을 전송하는 데 사용되는 EPS(Encapsulated PostScript) 형식이 포함됩니다. —마이카 L. 이시트

참고문헌 Brown, Adrian. 그래픽 파일 형식. 큐: Natl. 아카이브, 2008. PDF 파일. 디지털 보존 지침 참고 4. Celada, Laura. “가장 일반적인 그래픽 파일 형식은 무엇입니까?” FESPA. FESPA, 2015년 3월 27일. 웹. 2016년 2월 11일. Costello, Vic, Susan Youngblood, Norman E. Youngblood. 멀티미디어 기초: 디지털 디자인의 핵심 개념. 뉴욕: 포칼, 2012. 인쇄. 데일, 넬, 존 루이스. 컴퓨터 과학 조명. 6판 벌링턴: 존스, 2016. 인쇄. “이미지 파일 튜토리얼 소개.” 보스턴 대학교 정보 서비스 및 기술. 보스턴 대학교, n.d. 편물. 2016년 2월 11일. 스튜어트, 앨리슨. “설명된 파일 형식: PDF, PNG 등.” 99디자인. 99Designs, 2015년 5월 21일. 웹. 2016년 2월 11일.

보호 조항 연구 분야 코딩 기술; 소프트웨어 개발; 컴퓨터 과학 개요 보호 절은 142에 따라 코드 섹션의 실행을 허용하거나 허용하지 않는 컴퓨터 구성입니다.

전제 조건. 이는 조건식, 부울 연산자, 검사 기능 및 컴퓨터 프로그래밍 언어의 기타 요소를 통해 달성됩니다. Guard 절은 오류 발생 방지, 오류 발생에 대한 응답, 중첩된 조건문을 대체하기 위한 코드 리팩토링 등 다양한 목적으로 사용될 수 있습니다.

프로그래밍 및 코딩의 원리

주요 용어 부울 연산자: 둘 중 하나 값으로 해석되는 표현식을 결합하는 데 사용되는 미리 정의된 단어 집합(일반적으로 AND, OR, NOT 및 변형) 중 하나입니다. 검사 기능: 특정 데이터 유형을 확인하는 컴퓨터 기능. 조건식: 조건이 참인지 거짓인지에 따라 실행되는 문입니다. 전제 조건: 컴퓨터 프로그래밍에서 코드 블록을 실행하기 위해 참이어야 하는 조건.

보호 조항이란 무엇입니까? 가드 절은 조건식을 사용하여 코드 블록의 실행을 허용할지 여부를 결정하는 컴퓨터 구성입니다. 이를 통해 간단한 로컬 예외 처리 및 서브루틴 종료가 가능합니다. 보호 절의 일반적인 형태로는 부울 표현식, 부울 연산자 및 검사 함수가 결합되어 있습니다. 모두 본질적으로 전제 조건이 참인지 거짓인지를 결정하여 작동합니다. 절은 코드 블록 시작 부분에서 유효하지 않은 전제 조건을 "보호"합니다. 전제 조건이 충족되면 후속 코드를 실행할 수 있습니다. 보호 조항은 다양한 용도로 사용됩니다. 예를 들어, 함수 및 메서드와 같은 프로시저에 전달된 데이터가 올바른 데이터 유형인지 확인하거나 다른 방식으로 데이터의 유효성을 검사하는 데 자주 사용됩니다. 이렇게 하면 아무 이유 없이 코드가 실행되거나 오류나 예외를 생성하는 코드가 실행되는 것을 방지할 수 있습니다. 가드 절은 오류를 보고하거나 예외를 발생시키는 데 자주 사용되므로 일종의 오류 처리 코드 역할을 할 수도 있습니다. 많은 프로그래머들은 중첩된 조건문 대신 보호 절을 사용하는 것을 선호합니다. 이는 코드를 작성할 때나 기존 코드를 리팩터링 또는 재설계할 때 수행할 수 있습니다. 코드를 더 쉽게 읽고, 이해하고, 유지 관리할 수 있습니다. 중첩된 조건문 대체 일련의 중첩된 조건문이나 보호 절을 사용하여 동일한 기능을 제공할 수 있는 경우가 많습니다. 그러나 여러 개의 중첩된 조건문이 추가되면 읽기가 점점 더 어려워집니다. 대부분의 프로그래밍 언어 및 개발 환경에서 각 if 문은 일반적으로

가드 조항

If( If( If( If( If( 복잡한 코드에서는 개발자가 읽는 동안 앞뒤로 스크롤해야 하므로 비효율적일 수 있습니다. 또한 이는 즉시 확인하기 어렵게 만듭니다. 코드에 필요한 수정 사항을 삽입해야 하는 경우 중첩된 if 문을 대체하기 위해 가드 문을 사용하면 코드가 더 단순해지고 짧아질 수 있습니다. 그러나 이러한 접근 방식은 보편적으로 받아들여지지 않습니다. 프로시저는 수행하도록 설계된 모든 작업을 수행한 다음 호출 코드에 대한 단일 반환 지점을 제공해야 합니다. 이러한 이유로 엄격한 구조적 프로그래밍 패러다임을 따르는 사람들은 중첩된 조건문을 선호합니다. 보호 조항의 가독성 이점은 단일 반환 지점 접근 방식의 포기를 정당화합니다. 더 짧은 절차의 사용 증가로 인해 단일 반환 지점 사용이 감소했다는 보호 조항 접근 카운터 지지자들. 그들은 또한 기본 수준에서 단일 반환 지점 접근 방식이 보호 조항 접근 방식보다 우수하다는 생각에 이의를 제기합니다. 많은 프로그래머가 보호 절 접근 방식을 사용하면 프로시저의 기능을 더 쉽게 이해할 수 있습니다.

효과적인 보호 조항 만들기 컴퓨터 프로그램 오류의 일반적인 원인은 호출 시 프로시저에 null 값이 전달될 때 발생합니다. Guard 절을 사용하면 이러한 유형의 오류가 발생하는 것을 방지할 수 있습니다. 예를 들어, 주어진 일수를 기준으로 일일 총 관객 수를 결정하는 기능을 만드는 영화관 체인의 소프트웨어 개발자를 생각해 보세요. 이는 다음 형식을 취합니다. Function calcAverageAttendance(x는 정수, y는 정수) As Integer calcAverageAttendance = x / y 함수 종료 함수 143

가드 조항

여기서 x는 총 참석자 수이고 y는 주어진 일수입니다. Guard 절을 사용하면 계산을 처리하기 전에 입력 값 중 어느 것도 Null이 아닌지 확인할 수 있습니다. Function calcAverageAttendance (x As Integer, y As Integer) As Integer If (IsNull(x)) Then Exit Function If (IsNull(y) ) 그러면 함수 종료 calcAverageAttendance = x / y 함수 종료 함수 종료 IsNull 함수는 함수에 전달된 매개 변수의 값이 null인 경우 true를 반환합니다. Guard 절은 IsNull 함수를 사용하여 x 또는 y가 null인지 확인합니다. 그렇다면 즉시 함수를 종료하여 오류 발생을 방지합니다. 둘 다 null이 아닌 경우 평균이 계산되어 반환됩니다.

가드 절을 사용하여 보다 효율적인 코드 생성 가드 절은 개발자 툴킷의 유용한 부분입니다. 프로그램이 오류를 피하고 대응하는 데 도움이 되므로 다양한 목적으로 사용됩니다. 오류를 방지하기 위해 데이터의 유효성을 검사할 수 있습니다.

144

프로그래밍 및 코딩의 원리

데이터베이스 테이블을 업데이트하거나 트리 구조 및 배열과 같은 데이터 구조에 값을 저장할 때 발생하는 문제를 방지합니다. 대규모 프로그램의 긴 코드 섹션이 불필요하게 실행되어 시스템 리소스를 낭비하지 않도록 하는 데 사용할 수 있습니다. 코드를 리팩토링하여 개발 프로세스를 더욱 효율적으로 개선함으로써 개발 프로세스를 개선할 수 있습니다. 이러한 모든 이점을 제공하는 가드 절은 많은 개발 환경에서 널리 사용됩니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2014. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2016. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016. Van Roy, Peter 및 Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. 매사추세츠 공과대학, 2004.

H HTTP 쿠키 HTTP(Hypertext Transfer Protocol) 쿠키는 웹사이트에 액세스할 때 사용자의 컴퓨터에 저장되었다가 나중에 해당 사이트에서 검색되는 데이터 조각입니다. "인터넷 쿠키", "웹 쿠키" 또는 "브라우저 쿠키"라고도 하는 이 데이터는 사용자의 검색 기록, 계정 세부 정보 또는 양식 항목 등을 기록하고 추적할 수 있습니다. 웹 브라우저가 작동하려면 일부 유형의 쿠키가 필요하지만, 쿠키 사용으로 인해 개인정보 침해에 대한 우려가 제기되었습니다.

개요 HTTP 쿠키는 1994년에 출시된 Netscape Navigator 브라우저의 첫 번째 버전에서 Netscape Communications에 의해 도입되었습니다. 이 이름은 1970년대부터 프로그램 간에 교환되는 데이터 조각을 설명하기 위해 사용된 컴퓨팅 용어인 "매직 쿠키"에서 유래되었습니다. 식별 목적. 기본 HTTP 기능에서 브라우저가 특정 웹 사이트를 호스팅하는 서버와 상호 작용할 때마다 서버는 해당 연결을 이전 상호 작용에서 인식하지 않고 완전히 새로운 요청으로 처리합니다. 따라서 HTTP는 "상태 비저장" 프로토콜로 간주됩니다. 즉, 자체적으로 정보를 저장하지 않는다는 의미입니다. 웹사이트나 기타 어플리케이션이 로그인한 사용자의 신원이나 가상 장바구니에 담긴 상품 등을 기억하기 위해, 브라우저가 호스트 서버에 처음 접속할 때 서버는 쿠키를 저장합니다. 브라우저의 컴퓨터. 다음에 브라우저가 서버에 연결되면 쿠키는 저장된 정보, 즉 상태를 애플리케이션에 알려줍니다. 사용자가 가상 ​​장바구니에 추가 항목을 추가하는 등 응용 프로그램의 상태를 변경하는 작업을 수행하면 서버는 쿠키의 정보를 업데이트합니다. 다양한 유형의 쿠키가 다양한 목적으로 사용됩니다. 모든 쿠키는 다음 두 가지 범주 중 하나에 속합니다.

사용자의 검색 세션 기간 동안만 저장되고 브라우저를 닫으면 삭제되는 세션 쿠키와 미리 결정된 만료 날짜에 도달하거나 수동으로 삭제될 때까지 사용자의 컴퓨터에 저장되어 있는 영구 쿠키. 제1사 쿠키는 사용자가 방문하기로 선택한 사이트에서 생성되고 저장되는 쿠키인 반면, 제3자 쿠키는 사용자가 방문하는 사이트가 아닌 일부 엔터티(종종 해당 사이트에 광고하는 회사)에 의해 설치됩니다. 자사 쿠키에는 사용자가 특정 웹사이트의 계정에 로그인할 때 생성되고 로그아웃할 때까지 해당 사용자를 식별하는 인증 쿠키가 포함되며 세션 쿠키 또는 영구 쿠키일 수 있습니다. 제3자 쿠키는 일반적으로 영구적입니다. 일반적인 유형 중 하나는 제3자 추적 쿠키입니다. 이러한 쿠키는 사용자의 검색 기록 기록을 유지하며, 회사는 이를 사용하여 소비자 데이터를 수집하거나 보다 정확하게 광고를 타겟팅할 수 있습니다. 다른 유형의 쿠키에는 HTTP 요청이 전송될 때만 사용되므로 더욱 안전한 HTTP 전용 쿠키가 포함됩니다. Adobe Flash를 사용하는 웹사이트에 저장되어 삭제하기 어려운 플래시 쿠키 또는 로컬 공유 개체(LSO) 광고 회사가 사용자에게 타겟 광고를 표시하는 것을 방지하는 옵트아웃 쿠키. 제3자 추적 쿠키의 사용은 회사가 자신의 온라인 습관을 모니터링하는 것을 원하지 않는 사용자들 사이에서 우려를 불러일으켰습니다. 이러한 우려에 대한 대응으로는 2002년에 도입되고 2009년에 업데이트된 유럽 연합의 개인 정보 보호 및 전자 통신 지침이 있습니다. 이 지침은 기업이 사용자의 컴퓨터에 불필요한 쿠키를 설치하기 전에 동의를 얻도록 요구합니다. 또한 대부분의 브라우저에는 타사 쿠키를 차단하는 기능이 있지만 일부 회사에서는 해당 차단을 우회하는 방법을 개발했습니다. 2012년에는 145명

프로그래밍 및 코딩의 원리

HTTP 쿠키

제3자 HTTP 쿠키.

예를 들어, Google은 제3자 쿠키 설치를 금지하는 Safari 브라우저의 기본 개인 정보 보호 설정을 의도적으로 무시한 것으로 밝혀졌습니다. —Randa Tantawi, PhD 참고문헌 "쿠키: 웹에 흔적을 남기다." 온가드 온라인. 미국 연방거래위원회, 2011년 11월. Web. 2013년 9월 25일. Gourley, David, et al. “클라이언트 식별 및 쿠키.” HTTP: 최종 가이드. 세바스토폴, 캘리포니아: 오라일리 미디어, 2002. 257-76. 인쇄. 호프만, 마르쿠스, 리랜드 R. 보몬트. “콘텐츠 전송.” 콘텐츠 네트워킹: 아키텍처,

146

프로토콜 및 실습. 샌프란시스코: Elsevier, 2005. 25–52. 인쇄. Kristol, David M. “HTTP 쿠키: 표준, 개인 정보 보호 및 정치.” ArXiv.org. Cornell U Lib., 2001년 5월 9일. 웹. 2013년 9월 25일. 싱겔, 라이언. “SafariBrowser 쿠키 용기에 손을 넣은 Google이 체포되었습니다.” 열광한. Condé Nast, 2012년 2월 17일. 웹. 2013년 9월 25일. 싱겔, 라이언. “쿠키를 삭제하셨나요? 다시 생각 해봐." 열광한. Condé Nast, 2009년 8월 10일. 웹. 2013년 9월 25일. Zakas, Nicholas C. “쿠키 및 보안.” NCZ온라인. Zakas, 2009년 5월 12일. 웹. 2013년 9월 25일. Zakas, Nicholas C. “HTTP 쿠키 설명.” NCZ온라인. Zakas, 2009년 5월 5일. 웹. 2013년 9월 25일.

내가 상상한 커뮤니티 상상의 커뮤니티는 비록 그룹의 다른 구성원 대다수와 접촉할 수는 없지만 공유된 커뮤니티 정체성 하에서 모두 자기 식별을 하는 개인들로 구성된 집단입니다. 이 개념은 베네딕트 앤더슨(Benedict Anderson)의 1983년 저서 《상상의 공동체: 민족주의의 기원과 확산에 대한 성찰》에서 민족주의를 이해하기 위한 틀로 처음 제시되었습니다. 이제 이 용어는 더욱 광범위하게 적용되며, 다양한 공통 원인, 이해관계 및 특성으로 정의된 커뮤니티를 지칭하는 데 사용될 수 있습니다.

개요 상상의 공동체 개념을 형성하면서 앤더슨은 다음을 통해 민족주의를 설명하려고 했습니다.

모더니스트 렌즈는 그것을 정치적, 경제적 이익에 뿌리를 둔 사회적으로 구성된 가치로 묘사합니다. 이러한 관점은 20세기 초에 유행했지만 제2차 세계대전 이후 몇 년 동안 심한 비판에 직면했던 민족주의에 대한 원시주의적 입장에 반대됩니다. 원시주의는 국가가 공동체 지식과 결속력을 만들어내는 공유된 문화적 특성(예: 언어)으로 인해 유기적으로 진화하는 불가피한 형성체라고 주장합니다. 민족주의에 대한 앤더슨의 견해는 언어도 중요하게 생각하지만 언어 매체와 언어를 정치적 도구로 사용하는 것에 더 관심을 두고 있습니다. 앤더슨은 18세기와 초기에 인쇄 매체의 사용이 점점 더 널리 퍼졌다고 주장합니다.

민중을 이끄는 자유(Eugène Delacroix, 1830)는 민족주의 예술의 유명한 예입니다.

147

상상의 커뮤니티

프로그래밍 및 코딩의 원리

Richard March Hoe의 1864년 인쇄기. 베네딕트 앤더슨이 상상한 공동체는 산업 혁명과 인쇄 자본주의에 힘입은 민족주의에서 성장했습니다.

최초의 진정한 대중 매체가 탄생한 19세기에는 대중 문해력의 발전도 이루어졌으며, 이는 유럽 대중이 자신들의 존재 맥락을 더 잘 인식하게 만들었습니다. 이러한 인식을 통해 공동체적 정체성이 형성되었고, 왕조의 군주제와 신권통치라는 역사적 개념은 그 힘을 일부 상실하게 되었다. 이런 식으로 국민국가(유한한 경계, 주권, 국민의 자결권을 지닌 상상의 실체)라는 개념이 탄생했습니다. 이러한 생각을 확증하는 것은 프랑스와 미국의 영국 식민지에서 발생한 혁명이었습니다. 이 혁명은 표면상으로는 국민에게 책임을 져야 하는 정부를 갖춘 주권 공화국을 세웠습니다. 당시 국민은 국가 정체성 또는 상상의 공동체 의식을 갖고 있었습니다. 시간이 지나면서 “상상의 공동체”라는 용어는 그 의미가 더욱 일반화되었습니다. 이제는 학계에서 공통 관심사의 커뮤니티, 온라인 커뮤니티, 148명을 중심으로 형성된 정기적인 대면 상호 작용이 부족한 기타 그룹에 적용하기 위해 사용됩니다.

성적 취향부터 정치적 성향까지 공유된 정체성의 수. —스티븐 밀러 참고문헌 Adamczyk, 마리아. “추악한 사람들을 위한 포럼 – 상상의 공동체에 대한 연구.” 사회학 리뷰 58(2010년 12월): 97–113. 인쇄. 벡, 울리히. “글로벌 위험을 안고 있는 상상된 공동체로서의 세계주의.” 미국 행동과학자 55.10(2011년 10월): 1346–61. 인쇄. Gruzd, Anatoliy 등. “트위터를 상상의 커뮤니티로 상상해 보세요.” 미국 행동과학자 55.10(2011년 10월): 1294–318. 인쇄. 오순절, 캐서린. “사이버 공간의 상상의 커뮤니티.” 사회적 대안 30.2(2011): 44–47. 인쇄. 샤자드, 파하트. “상상의 공동체로서 국가를 건설하다.” 국가와 민족주의 18.1(2012년 1월): 21–38. 인쇄.

프로그래밍 및 코딩의 원리

테오도렐리스-리가스, 하리스. "'상상'에서 '가상 커뮤니티'까지: 사이버 공간에서 그리스-터키의 만남." 민족성과 민족주의에 관한 연구 13.1(2013년 4월): 2–19. 인쇄. 토플락(Toplak), 시릴라(Cirila), 이레나 수미(Irena Šumi). “유럽(연합): 상상 속의 공동체가 만들어지고 있다.” 저널

점진적 개발

현대 유럽 연구 20.1(2012년 3월): 7–28. 인쇄. 라이트, 매튜. “다양성과 상상의 공동체: 이민자 다양성과 국가 정체성의 개념.” 정치심리학 32.5(2011년 10월): 837-62. 인쇄.

점진적 개발 연구 분야 소프트웨어 개발; 프로그래밍 방법론; 소프트웨어 엔지니어링 개요 증분 개발은 시스템의 기능을 여러 개의 별도 모듈로 나누는 소프트웨어 개발 방법론입니다. 일반적으로 시스템의 핵심 기능을 갖춘 모듈이 가장 먼저 배포됩니다. 기능을 추가하는 이후 모듈은 필요한 모든 기능이 달성될 때까지 배포되고 시스템과 통합됩니다. 주요 용어 통합: 컴퓨터 과학에서 하드웨어든 소프트웨어든 개별 시스템 구성 요소를 단일 통합 시스템으로 결합하는 프로세스입니다. 소프트웨어 개발 수명 주기(SDLC): 소프트웨어 개발 모델의 단계와 해당 단계가 실행되는 순서입니다. 폭포수 개발: 일련의 순서화된 단계를 기반으로 하는 전통적인 선형 소프트웨어 개발 방법론입니다.

증분 개발 이해 증분 개발은 소프트웨어 개발 수명 주기(SDLC)가 반복 개발과 기존 폭포수 개발 모델의 측면을 결합하는 소프트웨어 개발 방법론입니다. 점진적 개발에서는 먼저 완성된 시스템에 필요한 기능을 처리하기 위해 상세한 사양 및 요구 사항 세트가 생성됩니다. 그런 다음 필요한 기능이 나뉩니다.

"모듈" 또는 "빌드"라고 하는 여러 부분으로 나뉩니다. 그런 다음 각 빌드가 별도로 개발됩니다. 일반적으로 개발되어 생산에 배치되는 첫 번째 모듈에는 시스템의 핵심 기능이 포함됩니다. 첫 번째 모듈이 설계, 개발, 테스트 및 배포되면 추가 모듈이 구축되어 모든 이전 빌드와 결합됩니다. 이 통합 프로세스는 필요한 모든 기능이 달성될 때까지 계속됩니다. 모듈은 폭포수 개발 방법론과 유사한 다단계 선형 설계 방법론을 사용하여 개발됩니다. 각 모듈은 일반적으로 이전 빌드에 배포되고 통합되기 전에 설계, 개발 및 테스트 단계를 거칩니다. 이러한 순서화된 단계의 폭포 패턴이 여러 번 반복되므로 증분 방법의 SDLC는 반복 프레임워크 내에서 증분 방법론으로 생각할 수 있습니다.

증분 개발의 장점과 단점 증분 개발은 폭포수 개발의 많은 이점을 제공하는 동시에 일부 단점을 해결합니다. 폭포 모델과 마찬가지로 증분 개발은 이해하고 관리하기 쉽습니다. 빌드 내의 각 단계에는 명확하고 합의된 결과물과 공식적인 검토 프로세스가 있으며 다음 단계가 시작되기 전에 완료됩니다. 폭포수 방법론을 사용하여 개발된 프로젝트와 마찬가지로 증분 방법론을 사용하는 프로젝트는 일반적으로 잘 문서화되어 있습니다. 초기 사양, 요구 사항 및 필요한 기능이 결정된 후에는 고객 및 최종 사용자의 개입이 최소화됩니다. 설계는 개발 주기 초기에 마무리되고 개발 중에 거의 변경되지 않기 때문에 증분 모델은 시스템이 다른 시스템과 통합되는 프로젝트에 적합합니다. 149

점진적 개발

프로그래밍 및 코딩의 원리

소프트웨어는 설계, 개발, 테스트, 구현의 여러 주기를 통해 구축됩니다. 각 빌드는 전체 소프트웨어 설계에 대한 요구 사항의 일부 또는 증분을 완료합니다.

증분 개발은 또한 폭포수 개발의 많은 단점을 해결하는 이점을 제공합니다. 폭포 모델과 달리 증분 모델은 SDLC 초기에 기능적 시스템을 제공합니다. 이를 통해 초기 배송 시간과 비용을 줄일 수 있습니다. 이후 빌드에서는 이해관계자 피드백을 기반으로 프로젝트 범위와 요구 사항을 재평가하고 필요한 변경 사항을 통합할 수 있는 기회를 제공합니다. 이는 변화하는 상황과 새로 발견된 요구 사항을 충족할 수 있는 더 큰 유연성을 제공합니다. 또한 여러 개의 작은 모듈을 사용하면 빌드를 더 쉽게 관리, 개발, 테스트 및 디버그할 수 있습니다. 그러나 점진적 개발은 폭포수 모델과 동일한 단점 중 일부를 공유합니다. 두 모델 모두 전체 시스템 설계에서 모든 프로젝트 사양, 요구 사항 및 필요한 기능이 처리되었는지 확인하기 위해 처음부터 세부적인 계획 및 분석이 필요합니다. 그렇게 하지 않으면 요구 사항이 재정의되고 시스템이 재설계되면서 지연 및 기타 문제가 발생할 수 있습니다. 개발 및 테스트에서 변경될 가능성이 있는 느슨하게 정의된 요구 사항이 있는 프로젝트의 경우 RAD(신속한 애플리케이션 개발) 및 나선형 개발과 같은 반복 개발 모델이 더 효과적인 선택이 될 수 있습니다. 반면, 프로젝트가 매우 안정적이고 요구 사항이 완전히 이해된 경우 점진적 개발보다 단계 수가 적고 전체 비용이 저렴하므로 폭포 모델이 더 바람직할 수 있습니다. 150

실제 증분 개발 증분 개발은 처음부터 시스템의 사양과 요구 사항이 대부분 알려져 있고 기능의 하위 집합이 사용자가 요구하는 핵심 경험을 제공할 수 있는 프로젝트에 가장 효과적입니다. 경쟁 또는 재정적 압박으로 인해 증분 모델이 효과적인 전략이 될 수도 있으며, 특히 제품을 신속하게 출시해야 하는 경우 더욱 그렇습니다. 기능 시스템은 프로젝트 수명 초기에 제공되고 나중에 SDLC에서 개선될 수 있습니다. 예를 들어, 모바일 애플리케이션 스타트업은 스마트폰과 태블릿에서 사용할 게임에 대한 아이디어를 가지고 있을 수 있습니다. 모바일 애플리케이션(앱) 산업은 경쟁이 치열하며 신생 기업과 기존 기업이 매년 수천 개의 앱을 출시합니다. 최소한의 시간에 마케팅 가능한 앱을 제작하면 경쟁자가 시장 점유율을 차지할 수 있는 유사한 앱을 출시하는 시간이 줄어들기 때문에 중요한 비즈니스 이점을 제공합니다. 따라서 기능성 제품을 신속하게 출시하면 자본 및 기타 자원이 낭비되는 것을 방지할 수 있습니다. 점진적인 개발은 최소한의 시간 내에 핵심 기능을 갖춘 시스템을 제공하기 위해 노력하므로 이러한 경우에 사용하기에 탁월한 방법입니다. 두 세계 모두의 장점 증분 개발은 폭포식 개발 방법론과 반복 개발 방법론의 일부 최고의 기능을 결합하여 유연성과 명확성 사이의 균형을 유지합니다.

프로그래밍 및 코딩의 원리

구조. 폭포식 개발보다 더 빠른 속도와 유연성을 제공하는 증분 모델은 웹 및 모바일 앱 개발과 같이 빠르게 변화하고 경쟁이 치열한 환경에 적합합니다. 다른 반복 개발 방법론에 비해 유연성은 떨어지지만, 증분 개발은 시스템을 상대적으로 관리하기 쉽고, 사용자와 이해 관계자의 참여가 덜 필요하며, 일반적으로 잘 문서화되도록 하는 간단한 구조를 제공합니다. 이러한 특성으로 인해 점진적 개발은 개발자 레퍼토리에서 강력한 도구가 됩니다. 이는 더 넓은 소프트웨어 개발 세계에 대한 통찰력을 제공하기 위해 사용하고 연구할 수 있는 인기 있는 방법론으로 남아 있습니다. —마우라 발렌티노, MSLIS

정보 기술(IT)

프리드먼, 다니엘 P., 미첼 완드. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Jayaswal, Bijay K. 및 Peter C. Patton. 신뢰할 수 있는 소프트웨어를 위한 설계: 강력한 소프트웨어 개발을 위한 도구, 기술 및 방법론. Prentice Hall, 2007. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016. Van Roy, Peter 및 Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. Wysocki, Robert K. 효과적인 프로젝트 관리: 전통적, 민첩성, 극한. 7판, John Wiley & Sons, 2014.

참고문헌 벨, 마이클. 증분 소프트웨어 아키텍처: 실패한 IT 구현을 저장하는 방법. 존 와일리 & 아들, 2016.

정보 기술(IT) 학습 분야 컴퓨터 과학; 네트워크 설계 개요 정보 기술(IT)은 컴퓨터 및 기타 유형의 장치를 사용하여 정보를 생성하고 조작하는 데 전념합니다. 또한 소프트웨어의 설치 및 사용, 컴퓨터가 작동하기 위해 따르는 일련의 지침도 포함됩니다. 한때 대부분의 컴퓨터는 단일 목적을 염두에 두고 설계되었지만 시간이 지나면서 IT는 거의 모든 상황에서 사용할 수 있는 분야로 변모했습니다. 기본 용어 장치: 스캐너, 프린터, 프로젝터 등 컴퓨터에 연결하여 특정 기능을 수행하도록 설계된 장비입니다. 하드웨어: 컴퓨터를 구성하는 물리적 부품. 여기에는 마더보드와 프로세서는 물론 모니터, 키보드, 마우스와 같은 입력 및 출력 장치도 포함됩니다.

네트워크: 두 대 이상의 컴퓨터가 정보를 주고받을 수 있는 방식으로 연결되어 있습니다. 소프트웨어: 작업을 수행하기 위해 컴퓨터가 따르는 일련의 지침입니다. 소프트웨어는 물리적 매체에 저장될 수 있지만 매체는 소프트웨어가 아닙니다. 시스템: 단일 컴퓨터 또는 더 일반적으로는 서로 연계하여 작동하는 상호 연결된 기술 요소의 모음입니다. 통신 장비: 케이블, 스위치, 라우터 등 통신에 사용하도록 고안된 하드웨어입니다.

정보 기술의 역사 정보 기술(IT)은 순수 이론부터 실무까지 다양한 활동을 포괄합니다. 스펙트럼의 한쪽 끝에는 소프트웨어를 설계하고 시스템 수준 네트워크 설계를 만드는 IT 전문가가 있습니다. 이는 조직이 데이터 처리 및 정보 처리 효율성을 극대화하는 데 도움이 됩니다. 다른 쪽 끝에는 151이 있는 위치가 있습니다.

정보 기술(IT)

통신 장비부터 라우터, 스위치 등의 장치에 이르기까지 물리적인 하드웨어가 서로 연결되어 네트워크를 형성합니다. 그런 다음 올바르게 작동하는지 확인하기 위해 테스트를 거칩니다. 이 범위에는 다양한 유형의 직원이 포함됩니다. 예를 들어, 컴퓨터 기술자, 시스템 관리자, 시스템 및 애플리케이션 수준의 프로그래머, 최고 기술 책임자, 최고 정보 책임자 등이 있습니다. IT의 역사를 연구하는 한 가지 방법은 정보가 저장되는 방식에 초점을 맞추는 것입니다. IT의 역사는 어떤 유형의 정보 저장이 가능했는지에 따라 여러 시대로 나눌 수 있습니다. 이러한 시대에는 정보가 기록되기 전인 선사시대와 돌판에 정보가 기록되기 시작한 초기 역사 시대가 포함됩니다. 역사 중기에는 정보가 종이에 기록되어 도서관과 기타 기록 보관소에 보관되었습니다. 현대에는 정보가 물리적 저장소에서 전자 저장소로 이동했습니다. 시간이 지남에 따라 정보 저장은 덜 물리적이고 더욱 추상적이 되었습니다. 이제 IT는 일반적으로 비즈니스 네트워크의 컴퓨터 하드웨어 구성을 의미합니다. 이를 통해 전자적으로 저장된 정보를 조작하고 전송할 수 있습니다.

닷컴 버블 IT(Dot-Com Bubble IT)는 1990년대 인터넷이 급속히 성장하고 과거보다 사용자 친화적으로 변하면서 두각을 나타냈습니다. 많은 기업들이 이를 통해 가능해진 새로운 비즈니스 모델을 활용하려고 노력했습니다. 컴퓨터 프로그래머와 네트워크 기술 전문가에 대한 수요가 높았습니다. 스타트업 기업은 온라인 서비스를 빠르고 효과적으로 구축하려고 노력했습니다. 기술 회사에 대한 투자는 IT 연구에 수억 달러를 투자합니다. 기존 기업도 경쟁력을 유지하려면 IT 인프라와 인력에 투자해야 한다는 사실을 깨달았습니다. 경제의 IT 부문이 급속히 성장하면서 금융 전문가들은 경제 거품이 형성되고 있다고 우려하기 시작했다. 경제 거품은 시장이 급속히 성장했다가 그 성장이 갑자기 감소할 때 발생합니다. 거품은 결국 “터지고” 투자자들은 돈을 빼냅니다. 이런 일이 실제로 발생했고 많은 인터넷 스타트업이 문을 닫았습니다. 알려진 대로 닷컴 버블은 빠르게 지나갔지만 IT는 여전히 삶의 중심 부분으로 남아 있었습니다. 152 없이 하던 간단한 작업

프로그래밍 및 코딩의 원리

은행 업무, 쇼핑, 심지어 책 읽기와 같은 정교한 기술에는 이제 컴퓨터, 휴대폰, 태블릿 또는 전자책이 포함됩니다. 이는 21세기에는 일반 사람이 이전 어느 시대보다 IT에 더 익숙해야 함을 의미합니다. 이로 인해 IT는 대중적인 관심의 대상이 되었습니다. 예를 들어, 일반 사람이 홈 시스템을 설정하려면 네트워크 구성에 대해 약간 알아야 합니다.

데이터 생산 증가 IT를 통해 새로운 정보가 끊임없이 생성됩니다. 한때 한 사람이 사회의 모든 지식을 습득하는 것이 가능했습니다. 현대 사회에서는 사람이 평생 흡수할 수 있는 것보다 더 많은 데이터가 매년 생성됩니다. 2020년에는 지구상의 모든 사람이 사용할 데이터가 5,000기가바이트(GB) 이상이 될 것으로 추산됩니다. IT의 가용성은 데이터 생산의 폭발적인 증가에 가장 큰 영향을 미치는 요소입니다. 예를 들어, 대부분의 휴대전화 요금제는 고객 데이터를 월별 GB 단위로 측정합니다. 이는 사람들이 매일 인터넷에서 만들고 공유하는 수많은 사진, 비디오, 소셜 미디어 상태 업데이트 때문입니다. 이틀마다 인간은 2003년 이전에 전 세계에 존재했던 만큼의 정보를 생성하는 것으로 추정됩니다. 이러한 데이터 폭발의 속도는 시간이 지남에 따라 증가합니다. —Scott Zimmer, JD 참고문헌 Black, Jeremy. 지식의 힘: 정보와 기술이 어떻게 현대 세계를 만들었는가. 뉴 헤이븐: 예일 UP, 2014. 인쇄. Bwalya, Kelvin J., Nathan M. Mnjama 및 Peter M. I. I. M. Sebina. 정보 지식 관리의 개념과 발전: 개발도상국과 신흥 경제의 연구. 보스턴: Elsevier, 2014. 인쇄. Campbell-Kelly, Martin, William Aspray, Nathan Ensmenger 및 Jeffrey R. Yost. 컴퓨터: 정보 기계의 역사. 볼더: 웨스트뷰, 2014. 인쇄. 폭스, 리차드. 정보 기술: 오늘날의 디지털 세계에 대한 소개. 보카 레이톤: CRC, 2013. 인쇄. 리, 로저 Y., 에디션. 응용 컴퓨팅 및 정보 기술. 뉴욕: 스프링거, 2014. 인쇄. Marchewka, Jack T. 정보 기술 프로젝트 관리. 5판 호보켄: 와일리, 2015. 인쇄.

프로그래밍 및 코딩의 원리

정보 시각화

정보 시각화 정보 시각화는 인간의 눈이 엄청난 양의 데이터를 이해할 수 있는 방식으로 인식하도록 도와줍니다. 이를 통해 연구자들은 인간이 데이터를 보다 효율적으로 식별하고, 시각화하고, 기억할 수 있는 방식으로 데이터를 시각적으로 표현하고, 초안을 작성하고, 표시할 수 있습니다. 정보 시각화 기술은 인간 눈의 넓은 대역폭 경로를 활용합니다. 정보 시각화는 응용 연구 및 문제 해결에 없어서는 안될 부분으로, 사람들이 빠르고 효율적인 분류를 용이하게 하기 위해 엄청난 양의 데이터와 정보를 그래픽으로 표시하고, 공간적으로 구성하고, 찾을 수 있도록 도와줍니다.

정보의 분류, 구성 및 체계화.

개요 양적 및 질적 연구 방법 모두 정보 시각화 기술을 광범위하게 사용합니다. 그래프, 차트, 산점도, 상자 그림, 표, 도표, 지도, 3차원 그림, 그림 문자, 구성표, 수형도 및 좌표 도표는 데이터를 설명하는 데 도움이 되는 정보 시각화 기술의 몇 가지 예에 불과합니다. 정보 시각화는 직관적으로 표현함으로써 인간의 인식을 강화합니다.

GNU/Linux에서 실행되는 QtiPlot 0.8.5의 스크린샷.

153

프로그래밍 및 코딩의 원리

인터넷 프로토콜(IP)

숫자 및 비숫자 데이터, 텍스트 정보, 지리적 위치를 포함한 추상 정보. 통계 연구는 정보 시각화를 가장 생생하게 활용합니다. 가설검증, 회귀분석, 도구변수 분석 결과는 모두 정보 시각화 기법을 통해 표시되어 데이터 해석, 분석 및 관련 의사결정에 의미 있는 수치와 수치를 제공합니다. 데이터 그룹화, 클러스터링, 분류 및 구성은 데이터 마이닝 및 시각적 표현의 다른 예입니다. 정보 시각화는 인간의 눈이 겉으로는 구조화할 수 없는 것처럼 보이는 정보를 창의적으로 구조화하고 정렬하는 데 도움이 됩니다. 방대한 데이터에 대한 예상치 못한 통찰력을 제공하고 정보를 수집하면서 인간의 눈에 숨겨진 질서와 시스템을 열어줍니다. 정보 시각화는 또한 가설 생성 계획의 형성을 촉진하며, 그 뒤에는 종종 더 복잡한 가설 테스트 방법이 뒤따릅니다. 컴퓨터 과학, 심리학, 시각 디자인, 인간-컴퓨터 상호 작용, 그래픽 및 비즈니스 방법을 포함한 다양한 분야와 학문이 정보 시각화의 형성에 기여해 왔습니다. 컴퓨터 그래픽은 정보 시각화의 출현을 가져왔고 과학적 문제 해결 및 연구에 대한 광범위한 사용을 가져왔습니다. 1987년 과학 컴퓨팅의 시각화에 관한 컴퓨터 그래픽(Computer Graphics) 특별호는 정보 시각화가 과학적인 그래픽 기술로 등장할 것을 예고했으며 연구자와 탐험가에게 엄청난 가능성을 열어주었습니다. 정보 시각화는 과학 연구, 데이터 표현, 디지털 도서관, 데이터 마이닝, 금융 데이터 분석, 소셜 데이터 분석 및 기타 여러 분야에서 사용됩니다. 클라우드 기반 시각화

서비스, ​​디지털 미디어, 컴퓨터 매개 커뮤니케이션, 동적 대화형 표현, 인지 민족지학, 다중 규모 소프트웨어 및 비디오 데이터 분석은 모두 정보 시각화를 광범위하게 사용하는 빠르게 성장하고 발전하는 분야입니다. 또한 효과적인 시스템 설계는 동적 상호작용 표현을 기반으로 하며, 과학자들은 인지적, 계산적 특성을 이해하기 위해 정보 시각화를 참조합니다. 정보 시각화는 현대 예술 작품에서도 점점 더 많이 사용되고 있으며, 그 원리는 전 세계 현대 미술관의 전시 디스플레이 및 구성에 적용됩니다. —Mariam Orkodashvili 박사

참고문헌 Freeman, Eric 및 David Gelernter. “Lifestreams: 개인 데이터를 위한 저장 모델.” SIGMOD 기록 25.1(1996): 80–86. 인쇄. 공이홍. 지능형 이미지 데이터베이스: 고급 이미지 검색을 향하여. Hingham: Kluwer, 1998. 인쇄. Hauptmann, Alexander G., Michael J. Witbrock 및 Michael G. Christel. “주문형 뉴스: 인포미디어 기술의 응용.” D-Lib 매거진. Corp. for Natl. 연구 이니셔티브, 1995년 9월. 웹. 2014년 2월 24일. 코블린, 아론. “Q&A: Aaron Koblin: 데이터 시각화 도구.” Jascha Hoffman의 인터뷰. Nature 486.7401 (2012): 33. 인쇄. 라우, 앨버트. “데이터 세트: 서술적 시각화.” 많은 눈. IBM, 2011년 5월 18일. 웹. 2014년 2월 24일. 리마, 마누엘. 시각적 복잡성: 정보 패턴 매핑. 프린스턴: 프린스턴 건축, 2013. 인쇄.

인터넷 프로토콜(IP) 인터넷 프로토콜(IP)은 인터넷을 구성하는 네트워킹 모델인 인터넷 프로토콜 슈트(일반적으로 TCP/IP라고 함)의 주요 통신 프로토콜입니다. 네트워크는 정보 교환을 가능하게 하는 반면, 프로토콜은 통신 데이터 형식을 지정하기 위한 일련의 규칙입니다. IP는 인터넷을 통해 컴퓨터 간에 데이터를 전송하는 방법입니다. 따라서 라우팅 154

시스템, 즉 지시 시스템은 인터넷을 정보 교환의 장소로 만드는 것입니다.

개요 인터넷 프로토콜의 두 가지 버전(4개(IPv4) 및 6개(IPv6))이 사용됩니다. 국가에서 IPv6 채택이 느리기 때문에 IPv4가 가장 일반적입니다. 인터넷에 연결된 각 컴퓨터에는 IP 주소 집합이 있습니다.

프로그래밍 및 코딩의 원리

컴퓨터를 고유하게 식별하는 번호입니다. IPv4 주소는 32비트의 디지털 공간으로 구성되는 반면, IPv6은 128비트 주소를 사용합니다. 주소 식별에는 특정 컴퓨터 네트워크와 해당 네트워크 내의 특정 장치라는 두 부분이 있습니다. 인터넷 자체에서는 정보 패킷을 이동하는 라우터 사이에서 네트워크 주소에만 액세스하면 됩니다. 네트워크 지점에서 컴퓨터로 직접 메시지를 보내려면 두 가지 정보가 모두 필요합니다. 웹사이트 페이지나 이메일 등의 데이터가 인터넷을 통해 전송될 때 메시지는 "데이터그램"이라는 패킷으로 나누어집니다. 각 데이터그램은 헤더와 페이로드로 구성됩니다. 헤더에는 원본(발신자) 및 대상(수신자) IP 주소가 포함되어 있으며 각 IP 주소에는 컴퓨터의 고유한 네트워크 및 장치 주소와 패킷 라우팅 및 전달에 필요한 기타 메타데이터가 포함됩니다. 페이로드는 메시지 데이터 자체입니다. 데이터그램은 먼저 게이트웨이 컴퓨터(다른 네트워크의 입구 역할을 하는 네트워크 지점)로 전송됩니다. 이 컴퓨터는 대상 주소를 읽고 메시지를 다음 게이트웨이로 전달합니다. 이 게이트웨이는 메시지가 대상에 가장 가까운 게이트웨이에 도달할 때까지 주소를 읽고 또 다른 게이트웨이로 전달하는 방식으로 계속됩니다. 마지막 게이트웨이는 데이터그램의 주소가 자신의 도메인이나 자신이 제어하는 ​​네트워크 주소 집합에 속하는 것으로 인식하고 메시지를 최종 장치 대상으로 직접 전달합니다. IP 라우팅 서비스는 인터넷의 동적 특성과 네트워크 요소도 신뢰할 수 없을 가능성 때문에 신뢰할 수 없는 것으로 간주됩니다. 따라서 인터넷 프로토콜에는 끝점 간에 지속적인 연결이 없습니다. 각 데이터 패킷은 다른 모든 데이터 패킷과 독립적으로 처리됩니다. 개별 데이터그램이 반드시 그렇지는 않을 수도 있습니다.

제어 반전(할리우드 원칙)

인터넷을 통해 동일한 경로를 여행하면 도중에 발생한 오류를 해결하려고 시도하며 전송된 순서와 다른 순서로 도착할 수 있습니다. IP는 단지 배달 서비스일 뿐이므로 또 다른 인터넷 프로토콜인 TCP(전송 제어 프로토콜)는 데이터그램을 원래 순서로 재구성합니다. —Julia Gilstein 참고문헌 Abraham, Prabhakaran, Mustafa Almahdi Algaet, Ali Ahmad Milad. “차세대 네트워크 환경에서 가상 인터넷 프로토콜 주소 지정의 성능과 효율적인 할당.” 호주 기초 및 응용 과학 저널 7.7(2013): 827–32. 인쇄. Blank, Andrew G. TCP/IP 점프스타트: 인터넷 프로토콜 기초. 2판 샌프란시스코: Sybex, 2002. 인쇄. 시라니, 시몬느, 잔루이지 페라리, 루카 벨트리. “IP 기반 사물 인터넷에서 보안 메커니즘 강화: 알고리즘 개요.” 알고리즘 6.2(2013): 197–226. 인쇄. Clark, Martin P. 데이터 네트워크, IP 및 인터넷. 호보켄: Wiley, 2003. 인쇄. 콜먼, 리브. “'우리는 거부합니다: 왕, 대통령, 투표': 인터넷 성장 관리에 있어 인터넷 커뮤니티 자율성.” 정보 기술 및 정치 저널 10.2(2013): 171–89. 인쇄. Gaffin, Julie C. 인터넷 프로토콜 6. 뉴욕: Novinka, 2007. 인쇄. 로신, 피터. IPv6: 이론, 프로토콜 및 실제. 2판 샌프란시스코: Morgan Kaufmann, 2004. 인쇄. 오키(Oki), 에이지(Eiji) 등. 고급 인터넷 프로토콜, 서비스 및 애플리케이션. 호보켄: 와일리, 2012. 인쇄. 유, 크리스토퍼 S. “프로토콜 계층화와 인터넷 정책.” 펜실베이니아 대학교 법률 검토 161.6(2013): 1707-71. 인쇄.

제어 반전(할리우드 원리) 소프트웨어 개발 연구 분야; 컴퓨터 과학

코딩

기법;

전통적인 절차적 프로그래밍 제어 역전에서 프로그램은 프로그램 흐름 자체를 제어하는 ​​대신 프레임워크의 호출에 응답합니다. 이는 객체 지향 프로그래밍에서 자주 사용됩니다.

추상적인

주요 약관

제어 역전(Inversion of Control)은 제어 흐름을 역전시키는 소프트웨어 개발 방법론입니다.

호출: 함수나 메소드와 같은 서브루틴을 호출하는 프로세스입니다. 155

제어 반전(할리우드 원칙)

프로그래밍 및 코딩의 원리

IoC 프레임워크를 사용하면 주소 개체가 클래스에 의해 생성되지 않습니다. 오히려 프레임워크에 의해 생성된 다음 해당 개체를 고객 클래스에 전달합니다.

결합: 소프트웨어 구성요소가 작동하기 위해 다른 구성요소에 의존하는 정도. 종속성: 한 구성 요소가 올바르게 작동하기 위해 다른 구성 요소에 의존하는 방식을 정의하는 소프트웨어 구성 요소 간의 관계입니다. 소프트웨어 아키텍처: 시스템을 구성하는 구성 요소, 구성 요소 간의 관계, 해당 구성 요소와 관계의 속성을 포함한 소프트웨어 시스템의 전체 구조입니다.

통제 역전이란 무엇입니까? 제어 반전은 결합이 느슨하고 종속성이 적은 소프트웨어 아키텍처를 만드는 데 사용되는 소프트웨어 설계에 대한 접근 방식입니다. 제어 반전은 보다 전통적인 방법을 사용하여 개발된 응용 프로그램에서 볼 수 있는 일반적인 제어 흐름(프로그램이 명령을 실행하는 순서)을 뒤집습니다. 예를 들어, 절차적 프로그래밍에서는 프로그램이 실행 중에 프로시저를 호출합니다. 호출되면 "함수" 또는 "서브루틴"이라고도 하는 이러한 프로시저는 미리 정의된 특정 작업을 수행한 다음 하나 이상의 값을 더 큰 프로그램에 반환하는 방식으로 응답합니다. 전체 프로그램은 프로젝트별로 설계되었으며 절차는 일반적으로 재사용 가능한 코드 라이브러리에서 호출됩니다. 제어 역전을 사용하면 이 프로세스가 역전됩니다. 즉, 프로그램은 라이브러리에서 프로시저를 호출하는 대신 일반 기능을 제공하는 소프트웨어 프레임워크에서 발행한 호출에 응답합니다. 이 시나리오에서는 호출에 응답하는 프로시저 라이브러리가 아닌 호출을 발행하는 엔터티(프레임워크)를 다른 애플리케이션에서 사용할 수 있습니다. 프로그램은 프레임워크가 시작될 때까지 기다리기 때문에 156

통화, 통제 반전은 "전화하지 마세요. 전화하겠습니다."라는 오래된 영화 산업과 관련하여 "할리우드 원칙"이라고도합니다. 제어 반전의 기본 개념은 소프트웨어 구성 요소가 런타임에 서로 바인딩된다는 것입니다. 이는 프로그램이 컴파일될 때 구성 요소가 정적으로 함께 바인딩되는 기존 프로그래밍과 다릅니다. 제어 역전에서 발견되는 런타임 바인딩은 구성 요소 간의 상호 작용이 추상화를 통해 정의되기 때문에 가능합니다. 제어 역전의 또 다른 핵심 원칙은 작업 실행이 구현과 분리되어야 한다는 것입니다. 즉, 응용 프로그램은 해당 구성 요소가 해당 기능을 수행하는 방법을 알지 못한 채 다른 소프트웨어 구성 요소의 기능을 호출하고 사용할 수 있습니다. 또한 개별 구성 요소에는 구현하도록 설계된 특정 기능을 제공하는 코드만 포함되어야 하며, 다른 구성 요소가 필요에 따라 다른 기능을 제공할 수 있도록 해야 합니다. 제어 역전은 느슨한 결합과 감소된 종속성을 통해 객체와 클래스를 더 쉽게 변경하거나 재사용할 수 있는 객체 지향 프로그래밍에 사용하기에 이상적입니다.

장점과 단점 제어 역전은 제어 흐름에 대한 전통적인 접근 방식에 비해 몇 가지 장점이 있습니다. 이는 시스템의 다양한 계층과 구성 요소의 분리를 지원합니다. 이를 통해 개발자는 프레임워크가 제공하는 기능을 어떻게 구현하는지 고려할 필요 없이 구성 요소 개발에 집중할 수 있습니다. 분리하면 시간이 지남에 따라 구성 요소가 변경될 때 오류가 발생할 가능성이 줄어듭니다.

프로그래밍 및 코딩의 원리

개별 구성 요소의 코드가 변경되더라도 해당 구성 요소가 취하는 입력과 제공하는 기능이 변경되지 않는 한 해당 구성 요소를 사용하는 프로그램에 추가 변경이 필요하거나 발생하지 않습니다. 또한 프로그램을 사용하는 구성 요소에 런타임 바인딩하면 프로그램이 종속성을 유지할 필요가 없습니다. 또한 코드 섹션을 다른 구성 요소와 별도로 테스트할 수 있으므로 코드를 테스트하기가 더 쉽습니다. 마지막으로 전체 프로그램을 다시 컴파일하지 않고도 구성 요소를 교체할 수 있습니다. 그러나 제어 반전에는 몇 가지 단점도 있습니다. 프레임워크 및 기타 구성 요소는 크고 복잡하며 이해하기 어려울 수 있습니다. 새로운 프레임워크와 구성 요소가 지속적으로 생성되고 있으며 기존 프레임워크와 구성 요소에 대한 변경 및 업데이트가 주기적으로 발생합니다. 따라서 제어 반전을 구현하는 개발자는 변경 사항을 따라잡는 데 추가 시간을 소비해야 할 수도 있습니다. 많은 프레임워크는 독점적이므로 프레임워크에 사용되는 내부 코드를 연구하거나 수정할 수 없습니다. 마지막으로, 제어 반전은 기존 개발 모델과 크게 다르기 때문에 오랫동안 전통적인 접근 방식을 사용해 온 개발자는 이 패러다임을 수용하는 것을 꺼릴 수 있습니다.

프로그래밍, 헐리우드 스타일 제어 반전은 Microsoft Windows와 같은 운영 체제에서 실행되도록 설계된 프로그램에서 일반적으로 사용됩니다. 이러한 프로그램은 마우스 버튼 클릭이나 키보드 키 누르기와 같이 사용자가 시작한 이벤트에 응답해야 합니다. 예를 들어, 프로그램은 사용자가 마우스 버튼을 누를 때 메시지 상자를 표시해야 할 수 있습니다. Visual Basic 프로그래밍 언어를 사용하면 다음과 같이 수행할 수 있습니다. 먼저, 사용자가 마우스를 클릭할 때를 감지한 다음 mouseClicked 변수를 "true"로 설정하여 마우스 클릭이 발생했음을 프로그램에 표시하는 프로시저가 생성됩니다. Private Sub Buttton1_Click(sender As System.Object, e As System. EventArgs) Button1을 처리합니다. Click mouseClicked = True End Sub 다음으로 마우스 클릭에 응답하는 서브루틴이 생성됩니다. 이 루틴은 다음을 실행하는 루프를 사용합니다.

제어 반전(할리우드 원칙)

마우스를 클릭하고 위 함수에 의해 mouseClicked 변수가 "true"로 설정될 때까지. 내부 루프에서는 코드가 마우스 클릭을 기다리는 동안 프로그램이 정지되는 것을 방지하는 Application.DoEvents()가 호출됩니다. 마우스 버튼을 클릭하고 mouseClicked가 "true"로 설정되면 루프가 종료되고 MsgBox 함수를 사용하여 사용자에게 메시지를 표시합니다. Sub responseToClick() Do Until mouseClicked = True Application.DoEvents() Loop MsgBox "Please" 파일이 업데이트되는 동안 기다려 주세요.” End Sub 이는 마우스를 클릭할 때 특정 기능(사용자에게 메시지 표시)이 호출되고 프레임워크가 마우스 클릭이 발생했음을 프로그램에 알리는 제어 반전의 전형적인 예입니다. 이 시나리오에서 프로그램은 작업 흐름 자체를 제어하는 ​​대신 프레임워크에서 생성된 이벤트(마우스 클릭)에 응답합니다.

제어권을 잃는 것은 좋은 일이 될 수 있습니다. 제어 반전은 프로그래밍에 프레임워크와 기타 구성 요소의 강력한 기능을 제공하여 프로그램이 제공하는 기능을 크게 확장할 수 있게 해줍니다. 제어 역전의 광범위한 사용으로 인해 수많은 프레임워크와 기타 구성 요소를 사용할 수 있습니다. 따라서 다양한 비즈니스 부문을 위해 개발 중인 프로그램은 제어 역전을 사용하여 이점을 얻을 수 있습니다. 새로운 프레임워크와 구성 요소가 정기적으로 개발됨에 따라 제어 반전은 앞으로 한동안 소프트웨어 시스템을 구현하는 데 관련된 방법론으로 남아 있어야 합니다. —Maura Valentino, MSLIS 참고문헌 Bell, Michael. 증분 소프트웨어 아키텍처: 실패한 IT 구현을 저장하는 방법. John Wiley & Sons, 2016. 프리드먼, 다니엘 P., 미첼 완드. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Jayaswal, Bijay K. 및 Peter C. Patton. 신뢰할 수 있는 소프트웨어를 위한 설계: 강력한 소프트웨어 개발을 위한 도구, 기술 및 방법론. 프렌티스 홀, 2007. 157

프로그래밍 및 코딩의 원리

iOS

MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Scott, Michael L. 프로그래밍 언어 화용론. 4판, 엘스비어, 2016.

반 로이, 피터, 세이프 하리디. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. Wysocki, Robert K. 효과적인 프로젝트 관리: 전통적, 민첩성, 극한. 7판, John Wiley & Sons, 2014.

IOS 연구 분야 운영 체제; 소프트웨어 공학; 모바일 플랫폼 개요 Apple의 iOS는 모바일 컴퓨팅을 위해 설계된 운영 체제입니다. 회사의 iPhone 및 iPad 제품에 사용됩니다. 2007년에 데뷔한 이 시스템은 회사의 OS X를 기반으로 합니다. iOS는 고급 터치스크린 컨트롤을 통합한 최초의 모바일 운영 체제였습니다. 주요 용어 탈옥: 장치가 특정 종류의 소프트웨어를 실행하지 못하도록 하는 iOS 내 소프트웨어 제한을 제거하는 프로세스입니다. 멀티태스킹: 컴퓨팅에서 여러 작업을 동시에 완료하는 프로세스입니다. 멀티 터치 제스처: 다양한 작업을 수행하기 위해 터치 스크린이나 기타 터치 감지 디스플레이와 상호 작용하는 데 사용되는 손가락 움직임의 조합입니다. 예를 들면 두 번 탭하기, 화면을 따라 손가락으로 스와이프하기 등이 있습니다. 플랫폼: 응용 프로그램이 실행되도록 설계된 기본 컴퓨터 시스템입니다. 3D Touch: 사용자가 Apple 터치 스크린에 가하는 압력을 감지하는 기능입니다. 위젯: 일반적인 애플리케이션처럼 활성화되지 않고 지속적으로 실행되는 작고 독립적인 애플리케이션입니다.

차세대 모바일 운영 체제 Apple의 iOS는 iPhone, iPad, Apple TV 및 iPod Touch를 포함한 Apple의 모바일 장치에서 사용하도록 설계된 운영 체제(OS)입니다. 2016년 iOS는 158세였습니다.

안드로이드 OS에 이어 세계에서 두 번째로 인기 있는 모바일 OS입니다. 2007년에 출시된 iOS는 정전식 터치스크린 시스템을 통합한 최초의 모바일 OS 중 하나였습니다. 터치스크린을 사용하면 손가락으로 화면을 터치하여 기능을 활성화할 수 있습니다. Apple iOS는 또한 사용자가 모바일 장치에 애플리케이션(앱)을 다운로드할 수 있는 기능을 제공한 최초의 모바일 OS 중 하나였습니다. 따라서 iOS는 수십만 개의 타사 앱을 위한 플랫폼입니다. 최초의 iOS 시스템과 iPhone은 2007년 Macworld 컨퍼런스에서 공개되었습니다. 원래 iOS에는 여러 가지 제한 사항이 있었습니다. 예를 들어, 타사 앱을 실행할 수 없었고 복사 및 붙여넣기 기능도 없었으며 이메일 첨부 파일을 보낼 수도 없었습니다. 또한 멀티태스킹용으로 설계되지 않았기 때문에 사용자는 각 프로세스가 완료될 때까지 기다렸다가 다른 프로세스를 시작해야 했습니다. 그러나 iOS는 정교한 정전식 터치 스크린을 도입했습니다. iOS 터치 기능을 통해 사용자는 장치에 스타일러스나 버튼이 필요 없이 손가락으로 대부분의 기능을 활성화할 수 있었습니다. 원래 iPhone에는 물리적 버튼이 5개뿐이었습니다. 키보드를 포함한 다른 모든 기능은 장치의 터치 스크린에 통합되었습니다. 또한 iOS 시스템은 멀티터치 제스처를 지원합니다. 이를 통해 사용자는 두 개 이상의 손가락(압점)을 사용하여 추가 기능을 활성화할 수 있습니다. 예로는 이미지를 축소하거나 확장하기 위한 "핀치" 및 "스트레치"가 있습니다.

탈옥 컴퓨터 애호가들은 곧 iOS에 내장된 기본 소프트웨어 제한 사항, 즉 탈옥이라는 프로세스를 수정하는 방법을 배웠습니다. 수정된 장치를 통해 사용자는 더 자유롭게 앱을 다운로드하고 설치할 수 있습니다. 또한 사용자는 Apple 기기 이외의 기기에 iOS를 설치할 수도 있습니다. Apple은 iPhone이나 기타 기기를 탈옥한 사용자에 대해 법적 조치를 취하지 않았습니다. 2010년에 미국 저작권청은 다음을 승인했습니다.

프로그래밍 및 코딩의 원리

iOS

iOS는 iPhone용 음성 인식 검색 엔진인 Siri를 통합했습니다. 여러 번의 업데이트를 통해 기능이 확장되어 모든 Apple 앱이 포함된 여러 유명 웹사이트는 물론 많은 인기 있는 타사 앱에서도 매우 잘 작동합니다.

사용자가 합법적으로 소유한 iOS 사본을 탈옥하는 것을 허용하는 예외. 그러나 iOS를 탈옥하면 Apple 보증이 무효화됩니다.

버전 업데이트 iOS의 두 번째 버전은 2008년 7월에 출시되었습니다. iOS 2와 함께 Apple은 사용자가 타사 앱과 게임을 다운로드할 수 있는 App Store를 도입했습니다. 2009년에 iOS 3에서는 복사 및 붙여넣기 기능과 멀티미디어 메시징을 지원했습니다. 2010년 iOS 4 출시와 함께 큰 발전이 이루어졌습니다. 이 업데이트에는 멀티 태스킹 기능이 도입되어 iOS가 대기열의 다음 작업을 시작하기 전에 한 작업이 완료될 때까지 기다리지 않고 여러 작업을 동시에 시작할 수 있게 되었습니다. iOS 4 릴리스에는 유사한 앱을 기기의 홈 화면("스프링보드"라고 함)에 함께 그룹화할 수 있는 폴더 시스템이 최초로 도입되었습니다. FaceTime 화상 통화도 iOS 4에서 가능해졌습니다. 2011년 iOS 5 출시에는 음성 활성화 가상 비서 Siri가 기본 앱으로 통합되었습니다. 다른 iOS 5 업데이트에는 iMessage 도입이 포함됩니다.

알림 및 뉴스스탠드. 2012년에 iOS 6은 Google 지도를 Apple 지도로 대체하고 App Store를 재설계하는 등의 업데이트를 실시했습니다. 2013년에 출시된 iOS 7은 새로운 미학을 선보였으며 제어 센터, AirDrop 및 iTunes Radio를 도입했습니다.

새로운 혁신 iOS 8 출시와 함께 Apple은 회사 역사상 처음으로 타사 위젯 지원을 포함했습니다. 위젯은 열 필요가 없으며 장치에서 지속적으로 실행되는 작은 프로그램입니다. 웹 데이터를 기반으로 현재 상태를 표시하는 주식 시세 표시기 및 날씨 위젯을 포함한 예입니다. 위젯은 수년간 Android 및 Windows 모바일 OS의 기능이었습니다. 그러나 iOS 8은 Apple용 위젯을 지원하는 최초의 iOS 버전이었습니다. 출시 이후 Apple은 사용자를 위한 위젯의 가용성을 확대했습니다. 2015년 iOS 9의 출시는 Apple에게 시각적인 변화를 가져왔습니다. 이번 업데이트에서는 San Francisco라는 새로운 iOS용 서체를 선보였습니다. 특별히 맞춤 제작된 이 글꼴은 이전의 Helvetica Neue를 대체했습니다. 159

프로그래밍 및 코딩의 원리

반복적 구성

iOS 9의 출시로 Apple 기기의 배터리 수명도 향상되었습니다. 이 업데이트에는 전화기가 완전히 충전될 때까지 고에너지 프로그램을 비활성화하는 저전력 모드가 도입되었습니다. 저전력 모드에서는 배터리 수명을 평균 1시간까지 연장할 수 있습니다. iOS 9 출시와 동시에 Apple은 3D Touch를 도입한 iPhone 6S 및 iPhone 6S Plus도 선보였습니다. 이 새로운 기능은 최신 Apple 장치의 하드웨어에 내장되어 있으며 사용자가 터치 스크린을 얼마나 깊게 누르고 있는지 감지할 수 있습니다. 3D Touch는 iOS 9에 통합되어 완전히 활성화하거나 새 앱으로 전환하지 않고도 앱 내의 다양한 기능을 미리 볼 수 있습니다. 예를 들어, 카메라 앱 내에서 사진 아이콘 위에 손가락을 살짝 대면 iPhoto 앱을 열지 않고도 확대된 미리보기가 표시됩니다. —마이카 L. 이시트

참고문헌 하이슬러, 요니. “원래 iPhone부터 iOS 9까지 iOS의 역사와 진화.” BGR. BGR 미디어, 2016년 2월 12일. 웹. 2016년 2월 26일. "iOS: 시각적 역사." 가장자리. Vox Media, 2013년 9월 16일. 웹. 2016년 2월 24일. Kelly, Gordon, "Apple iOS 9: 11가지 중요한 새로운 기능." 포브스. Forbes.com, 2015년 9월 16일. 웹. 2016년 2월 28일. Parker, Jason, “iOS의 지속적인 발전.” 씨넷. CBS Interactive, 2014년 5월 7일. 웹. 2016년 2월 26일. Williams, Rhiannon. “애플 iOS: 간략한 역사.” 전신. Telegraph Media Group, 2015년 9월 17일. 웹. 2016년 2월 25일. Williams, Rhiannon, “iOS 9: 업그레이드해야 할까요?” 전신. Telegraph Media Group, 2015년 9월 16일. 웹. 2016년 2월 25일.

반복은 알고리즘 연구 분야를 구성합니다. 코딩 기술 개요 반복 구조는 컴퓨터 프로그래밍에서 동일한 컴퓨터 코드를 여러 번 반복하는 데 사용되는 구조입니다. 루프는 가장 일반적으로 사용되는 반복 구조입니다. 루프가 끝나기 전에 루프의 코드가 실행되는 횟수를 제어하는 ​​메커니즘을 제공합니다. 주요 용어 이벤트 루프: 외부 이벤트에 응답하여 실행되는 컴퓨터 코드 세그먼트입니다. for 루프: 설정된 횟수만큼 반복적으로 실행되는 컴퓨터 코드 세그먼트입니다. while 루프: 주어진 조건이 참인 동안 반복적으로 실행되는 컴퓨터 코드 세그먼트입니다.

루프 정의 루프는 컴퓨터가 코드 0, 1 또는 여러 섹션을 실행할 수 있도록 하는 반복적 구성입니다.

조건이 참인지 거짓인지에 따라 시간이 결정됩니다. 루프는 코드 섹션을 지정된 횟수만큼 실행하거나 외부 이벤트에 응답하도록 설계할 수도 있습니다. 반복을 추적하기 위해 카운터 변수를 사용할 수 있습니다. 루프가 없으면 프로그래머는 프로그램 내에 동일한 코드 섹션을 여러 번 포함해야 합니다. 프로그램 내에서 코드를 복제하면 프로그래머에게 불필요한 작업이 발생하고 오류 가능성이 높아지며 디버깅 및 유지 관리가 더욱 어려워집니다. 프로그래밍에는 세 가지 유형의 루프가 일반적으로 사용됩니다. (다른 언어에서는 이를 약간 다른 이름으로 나타낼 수 있지만 동작은 동일합니다.) 첫 번째 유형의 루프는 while 루프입니다. while 루프의 명령문은 조건이 true인 동안 반복적으로 실행됩니다. 조건이 거짓이 되면 루프가 종료되고 프로그램 실행은 다음 문으로 계속됩니다. while 루프에는 두 가지 변형이 있습니다. 첫 번째에서는 루프의 코드가 실행되기 전에 조건을 확인합니다. 다른 유형인 do while 루프는 루프의 코드가 한 번 실행된 후 조건이 true인지 확인합니다. 표준 while 루프와 달리 do while 루프는 항상 적어도 한 번 실행됩니다.

프로그래밍 및 코딩의 원리

두 번째 유형의 루프는 for 루프입니다. for 루프는 필요한 반복 횟수가 알려진 값일 때 사용됩니다. for 루프는 시작 값, 반복 횟수 및 해당 기간 동안 발생하는 변경 사항을 간략하게 설명합니다. 여러 변수를 사용하여 복잡한 반복을 생성하기 위해 For 루프를 중첩할 수도 있습니다. 세 번째 유형의 루프는 이벤트 루프입니다. 이벤트 루프의 코드는 사용자가 키보드의 키를 누르는 것과 같은 외부 이벤트가 발생할 때까지 기다립니다. 루프가 이벤트 발생을 감지하면 감지된 이벤트를 기반으로 코드를 실행합니다. 예를 들어, 사용자가 키보드에서 B 키를 누르면 이벤트 루프가 이 동작을 감지하고 모니터에 문자 b를 표시하는 코드를 실행하도록 프로그램에 지시할 수 있습니다. 여러 이벤트 또는 작업을 등록할 수 있습니다. 이 경우 이벤트 루프는 작업이 수신된 순서에 따라 코드를 실행합니다. 이벤트 루프는 중지 명령을 받을 때까지 작업을 처리합니다. 이벤트 루프를 사용하면 다양한 프로그램이 통신하고 상호 작용할 수도 있습니다. 예를 들어, 한 프로그램은 다른 프로그램에서 이벤트 루프를 트리거하는 이벤트를 생성할 수 있습니다. 이러한 형태의 소프트웨어 구성 요소 간의 상호 작용은 소프트웨어 개발에 일반적으로 사용됩니다.

루프 고려 사항 루프는 프로그래머가 많은 일반적인 프로그래밍 작업을 수행하는 데 도움이 됩니다. 이를 통해 프로그램은 데이터베이스에 효율적으로 액세스하고, 시스템 이벤트에 응답하고, 사용자와 상호 작용하고, 서로 작동할 수 있습니다. 그러나 프로그래머는 올바른 유형의 루프를 주의해서 선택해야 합니다. 루프 내에 포함된 코드가 적어도 한 번 실행되어야 한다면 프로그래머는 do while 루프를 사용해야 합니다. 그러나 루프의 조건이 true인 경우에만 루프의 코드를 실행해야 한다면 while 루프를 사용해야 합니다. 잘못된 루프를 사용하면 프로그램이 잘못 실행될 수 있습니다. 루프는 또한 루프가 수행하도록 설계된 작업이 완료되면 루프가 제어를 다음 문으로 전달하도록 작성되어야 합니다. 그렇지 않으면 무한 루프가 발생할 수 있습니다. 무한 루프를 방지하려면 프로그래머는 모든 while 루프의 조건이 결국 false로 설정되는지, for 루프에 지정된 반복 횟수에 도달하는지 또는 루프가 존재하는 것과 같은 다른 이유로 종료되는지 확인해야 합니다. 휴식 또는 종료

반복적 구성

for 루프는 특정 기준이 충족될 때까지 프로그램 루프가 계속되도록 하는 반복 구성입니다. 이 경우 새 입력 값은 알려진 값과 비교됩니다. 알려진 값과 일치하면 프로그램은 새 값이 알려진 값과 일치하지 않을 때까지 다시 시도하라는 요청을 반복합니다. 이 시점에서 프로그램은 알려진 값에 새 값을 추가하여 계속됩니다.

명령. 그렇지 않으면 무한 루프로 인해 프로그램이 응답하지 않을 수 있습니다.

연습의 루프 루프는 다양한 실제 프로그래밍 작업을 수행하는 데 사용됩니다. 예를 들어 JavaScript를 사용하여 고객 이름 목록을 표시하는 데 루프를 사용할 수 있습니다. 루프가 시작되기 전에 getFirstCustomerName() 함수를 호출하여 고객 데이터베이스의 이름을 검색합니다. customer_name = getFirstCustomerName() 데이터베이스에 고객이 없으면 함수는 null 값을 반환합니다. 데이터베이스에 고객이 하나 이상 있는 경우 고객 이름 목록이 표시될 수 있도록 루프 내의 코드로 제어가 전달되어야 합니다. 그러나 데이터베이스에 고객이 없으면 루프의 코드가 실행되지 않아야 합니다. 이를 보장하기 위해 while 루프를 사용하여 루프 시작 부분에서 조건을 확인합니다. customer_name이 Null이 아닌 경우 161

반복적 구성

do 루프를 사용하면 데이터베이스에 고객이 없더라도 루프의 코드가 한 번 실행됩니다. 루프 내에서 다음 코드 줄은 첫 번째 고객 이름을 표시합니다. Echo customer_name 다음 줄에서는 getNextCustomerName() 함수를 사용하여 다음 고객 이름을 검색합니다. 데이터베이스에 고객이 더 이상 없으면 이 함수는 null 값을 반환합니다. customer_name = getNextCustomerName() customer_name이 null이 아닌 경우 데이터베이스에서 다른 이름이 검색되고 루프가 반복됩니다. null인 경우 루프가 종료되고 다음 코드 줄에서 실행이 계속됩니다. End While 프로그래머는 무한 루프 오류를 방지하기 위해 어느 시점에서 customer_name이 null로 설정되었는지 확인해야 합니다.

소프트웨어 개발의 루프 루프는 컴퓨터 프로그래밍에 사용되는 많은 알고리즘을 구현하는 데 사용됩니다. 루프가 없으면,

162

프로그래밍 및 코딩의 원리

코드는 동일한 프로그램 내에서 여러 번 반복되어야 하므로 성능이 저하되고 디버깅 및 유지 관리가 더 어려워집니다. While 루프와 for 루프를 사용하면 프로그래머는 반복 작업을 유연하고 효율적으로 구현할 수 있습니다. 이벤트 루프는 사용자 상호 작용을 가능하게 합니다. 따라서 이는 최신 운영 체제의 그래픽 사용자 인터페이스와 반응형 웹 브라우저에 매우 중요합니다. —마우라 발렌티노, MSLIS

참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2014. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2016. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016. Van Roy, Peter 및 Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004.

J JAVA 프로그래밍 언어 인터넷 및 마이크로컴퓨터 시스템이 내장된 장치(예: DVD 플레이어 및 휴대폰)의 기본 프로세스와 작동하도록 설계된 현대적인 프로그래밍 언어에 대한 필요성이 커질 것을 예상하여 Java 크로스 플랫폼 소프트웨어가 개발되었습니다. Sun Microsystems는 1990년대에 출시되었으며 1996년에 프로그래머에게 출시되었습니다. 2013년 현재 Java는 많은 임베디드 장치와 데스크톱 컴퓨터용 프로그램을 구동하는 기반 기술입니다. Java는 코드를 다양한 유형의 컴퓨터에서 실행할 수 있는 형식으로 "바이트 컴파일"하여 작동하는 객체 지향 프로그래밍 언어입니다.

개요 컴퓨터의 기본 언어는 바이너리 코드이지만 이런 방식으로 프로그램을 작성하는 것은 어렵고 시간이 많이 걸립니다. 이러한 이유로 프로그래밍 언어를 사용하면 프로그래머는 더 쉽게 읽고 이해할 수 있는 형식으로 작성하거나 코딩할 수 있습니다. 이 코드는 컴파일러로 알려진 다른 컴퓨터 프로그램에 의해 이진 코드로 변환되어 컴퓨터가 명령을 실행할 수 있습니다. Java는 특정 언어의 한 예이지만 더 전통적인 언어와는 상당히 다르게 컴파일됩니다. Sun Microsystems와 Green Team으로 알려진 엔지니어 팀은 1990년대에 Java를 제안했습니다. 언어는 개발 당시 시장에서 지배적인 프로그래밍 언어인 C++로부터 구문, 즉 언어 구조와 규칙을 빌려 개발되었습니다. C++와 마찬가지로 Java는 객체 지향 프로그래밍 언어입니다. 즉, 코드 구성 수준을 높이기 위해 복잡한 데이터 구조에 의존합니다. Java를 개발하는 팀은 인터넷의 성장과 함께 Java를 개발할 수 있는 필요성이 커지고 있음을 발견했습니다.

예를 들어 Intel 프로세서가 탑재된 Microsoft Windows를 실행하는 컴퓨터, PowerPC 프로세서가 탑재된 Apple의 Macintosh OS가 실행되는 컴퓨터 등 여러 유형의 컴퓨터에서 실행될 수 있는 코드를 생성합니다. Java 코드는 C++로 작성된 코드와 매우 유사해 보이지만 C++ 및 C++와는 다르게 작동합니다.

Wikibooks에 있는 Java 프로그래밍 책의 표지 그림입니다.

163

프로그래밍 및 코딩의 원리

자바스크립트

이전에 존재했던 다른 프로그래밍 언어는 해석되거나 컴파일되지 않기 때문입니다. 해석된 코드는 사용자가 프로그램을 사용할 때 이진 명령어로 변환되며, 이로 인해 종종 프로그램 속도가 느려질 수 있습니다. 컴파일된 코드는 실제로 실행되기 전에 바이너리로 변환됩니다. 이 두 가지 방법에서 완전히 벗어난 Java는 먼저 코드를 바이트코드라는 중간 형식으로 컴파일한 후 컴퓨터 자체가 아닌 JVM(Java Virtual Machine)에서 실행되도록 개발되었습니다. 이 방법을 사용하면 어떤 하드웨어에서 실행될지 모르더라도 코드를 작성할 수 있습니다. 해당 하드웨어에 대한 JVM 버전이 존재하는 한 이 바이트코드를 실행할 수 있습니다. JVM 버전은 웹에 연결된 많은 장치와 플랫폼에 빠르게 배포되었으며, 영향력 있는 Netscape Navigator 웹 브라우저에 Java 기술이 추가되어 Java 관련 기술의 채택이 가속화되었습니다. 21세기에 Java는 다양한 형식으로 사용되었습니다. 이는 Android 모바일 운영 체제용 프로그램을 작성하는 데 사용되는 기본 언어이며 디스크 플레이어와 같은 내장 장치용 언어로 원래 설계된 역할을 수행합니다. 2010년부터 JVM은 Java를 구성하는 원래 기술에 대한 권리를 소유한 Oracle에 의해 개발되었습니다. 물론 경쟁 회사와 독립적인 오픈 소스 개발자가 생산한 다른 버전의 JVM도 존재합니다. —루크 E. A. 록하트

참고문헌 Antoy, Sergio, Michael Hanus. “기능적 논리 프로그래밍.” ACM 53(2010)의 커뮤니케이션: 74–85. 인쇄. 카졸라, 월터, 에도아르도 바키. “@Java: 더욱 풍부한 주석 모델을 Java에 도입.” 컴퓨터 언어, 시스템 및 구조 40.1(2014): 2–18. 인쇄. Chrza˛szcz, Jacek, Patryk Czarnik 및 Aleksy Schubert. “12개의 명령어로 Java 바이트코드를 만듭니다.” 이론 컴퓨터 과학의 전자 노트 264.4(2011): 19–34. 인쇄. 에무리안, 헨리 H., 펭 정. “Java 교육을 위한 프로그래밍된 지침 및 상호 교육 애플리케이션: 체계적인 복제.” 인간 행동의 컴퓨터 26.5(2010): 1166-75. 인쇄. “자바 기술의 역사.” Oracle.com. 오라클, n.d. 편물. 2013년 8월 22일. Javary, Michele. “진화하는 기술과 시장 구조: 슘페터적 창조적 파괴의 돌풍과 영국 인터넷 서비스 제공업체 시장.” 경제 문제 저널 38.3(2004): 629–57. 인쇄. Reynolds, Mark C. “Java 바이트코드 검증기 모델링.” 컴퓨터 프로그래밍 과학 78.3(2013): 327–42. 인쇄. 레자, 후안 롤란도. “자바 슈퍼비니언스.” 컴퓨터 언어, 시스템 및 구조 38.1(2012): 73–97. 인쇄. 쉴트, 허버트. 자바: 완전한 참조. 8판. 뉴욕: McGraw, 2011. 인쇄.

JAVASCRIPT JavaScript는 웹 애플리케이션에 가장 널리 사용되는 프로그래밍 언어 중 하나이며 1990년대 후반부터 웹 기술의 주요 요소였습니다. JavaScript 파일은 .js 파일 확장자로 식별할 수 있습니다. 이 언어를 통해 사용자는 현재 우리가 인터넷과 동의어라고 생각하는 많은 작업을 수행할 수 있습니다. 비동기 통신 및 생산성 애플리케이션부터 사진 공유 및 소셜 게임에 이르기까지 JavaScript를 사용하면 사용자가 웹 콘텐츠와 직접 상호 작용할 수 있습니다. 로컬 호스팅을 통해 키 입력을 인식하고 응답 속도를 높이는 등의 기능은 HTML 164의 기능을 뛰어넘습니다.

(하이퍼텍스트 마크업 언어). 웹 브라우저는 JavaScript를 위한 가장 일반적인 호스팅 환경이지만 JavaScript는 로컬로 실행되는 소규모 데스크톱 응용 프로그램 및 PDF 문서와 같은 웹 페이지 외부에서도 사용됩니다.

개요 JavaScript는 1990년대 중반 Brendan Eich가 Netscape Navigator 웹 브라우저용으로 Microsoft와 경쟁할 수 있는 일종의 분산 운영 체제로 기능할 수 있다는 희망으로 개발되었습니다. Mocha라고 불렸고 나중에는 Livescript로 불렸습니다.

프로그래밍 및 코딩의 원리

자바스크립트

디자이너와 개발자. 그럼에도 불구하고 JavaScript 개발자 커뮤니티는 Ajax, jQuery, Dojo 및 Prototype과 같이 2010년대 웹 어디에나 존재하는 많은 인기 프레임워크와 기술을 만들기 위해 노력했습니다. Flash에는 웹 애플리케이션이 사용자의 요구를 충족시키지 못하는 자체 제약이 있었습니다. 예를 들어 Flash를 사용하려면 각 브라우저에 특수 확장을 추가해야 하며 확장을 자주 업데이트해야 합니다. Flash 응용 프로그램은 또한 자체 포함되어 있으며 일반적으로 웹 페이지의 다른 모든 콘텐츠와 분리되어 있으므로 해당 콘텐츠는 검색 엔진에 의해 색인화되지 않습니다. Apple iPhone의 Safari 브라우저에서 Flash 플러그인이 제외되자 웹 개발 커뮤니티에서는 JavaScript에 대한 관심이 더욱 높아졌습니다. 2010년에 JavaScript는 Oracle Corporation의 상표가 되었으며 Netscape Communications 및 Mozilla Foundation의 라이센스를 받았습니다. —Marjee Chmiel, MA, PhD

브렌든 아이크(Brendan Eich), 모질라 코퍼레이션.

초기 개발 중에. Netscape는 프로그래밍 언어인 Java를 창시한 Sun Microsystems와 최종적으로 이를 JavaScript라고 부르기로 합의했습니다. InfoWorld와의 인터뷰에서 인용된 Eich에 따르면 "Java와 함께 사용할 수 있는 보완적인 스크립팅을 만드는 것이 아이디어였습니다." 웹 프로그래밍에 익숙하지 않은 개인은 때때로 JavaScript와 Java를 혼동합니다. JavaScript는 Java의 명명 규칙 중 일부를 사용하지만 언어는 서로 거의 관련이 없습니다. 전문 컴퓨터 프로그래머를 대상으로 한 Java와 달리 JavaScript는 웹 디자이너 및 기타 비프로그래머를 대상으로 했습니다. 웹 사용자를 HTML의 제약으로부터 해방시킨 기술은 JavaScript만이 아닙니다. 원래 1990년대에 Macromedia에서 제작되었으며 나중에 Adobe에서 관리하게 된 Flash는 웹 페이지에 대화형 기능을 추가하려는 웹 디자이너와 개발자에게 널리 사용되는 솔루션이었습니다. 어떤 측면에서 Flash는 JavaScript의 초기 기능 중 많은 부분을 능가했으며 JavaScript는 많은 기능 중에서 스타일에서 벗어났습니다.

참고문헌 Goodman, Danny, Michael Morrison 및 Brendan Eich. 자바스크립트 성경. 뉴욕: Wiley, 2007. 인쇄. 크릴, 폴. “JavaScript 제작자는 과거와 미래를 고민합니다.” 인포월드. Infoworld, 2008년 6월 23일. 웹. 2013년 8월 5일. Lane, Jonathan, et al. “자바스크립트 입문서.” HTML5, CSS3, JavaScript를 이용한 기초 웹사이트 제작. 뉴욕: Apress, 2012. 인쇄. 퍼페티, 크리스틴, 자레드 M. 스풀. “Macromedia Flash: 웹 애플리케이션의 새로운 희망.” UIE. com.com. 사용자 인터페이스 공학, 2002. 웹. 2013년 8월 5일. 찰스 세브란스. “JavaScript: 10일 안에 언어 설계하기.” 컴퓨터 45.2(2012): 7–8. 인쇄. 심슨, 카일. 이제 JavaScript와 HTML5를 만나보세요. 세바스토폴: O'Reilly Media, 2012. Kindle 파일. 라이트, 팀. JavaScript 학습: 최신 JavaScript의 기초에 대한 실습 가이드. 보스턴: 애디슨, 2012. 인쇄. 율, 다니엘, 제이미 블루스테인. “호버보드와 하이퍼텍스트에 대하여.” 디자인, 사용자 경험 및 유용성. 디자인 철학, 방법 및 도구. 베를린: Springer, 2013. 인쇄.

165

K KNOWLEDGE WORKER 지식근로자는 농업에서 제조업, 서비스, 정보 또는 지식으로 발전하는 경제 발전의 다음 단계라고 여겨지는 지식 기반 경제, 즉 지식 경제에 종사하는 사람입니다. 지식 경제의 존재는 대부분의 소비재 시장에서 상품과 서비스의 공급이 현재 수요를 초과하므로 판매가 이루어지기 위해서는 관련 제품에 어떤 형태로든 고부가가치 지식이 내장되어야 한다는 사실에 근거합니다. 그것의 창조에서. 이를 통해 제품은 경쟁사와 차별화될 수 있으며, 가치 제안을 제공하기 때문에 소비자에게 더 많은 관심을 끌 수 있습니다.

개요 지식 경제에 포함되는 활동 유형은 독특한 품목의 생산에 기여한 다양한 역사적, 문화적 요인을 반영하여 국가마다 다릅니다. 서구 국가에서는 지식 경제가 미디어나 창의적 제작, 첨단 금융 상품의 정보 제공 등에 집중될 것으로 예상되는 반면, 다른 국가에서는 지식이 보석 제작이나 양탄자 제작과 관련될 수 있습니다. 지식 작업의 개념은 두 경우 모두 동일합니다. 왜냐하면 오랜 전통의 장인 정신의 유산이든 정교한 데이터베이스 준설을 통해든 비대칭적으로 이용 가능한 지식을 사용하여 고유한 항목을 생산하는 것을 특징으로 하기 때문입니다. 소비자의 마음을 사로잡는 방법. 다르게 말하면, 이는 지식 경제가 때때로 묘사되는 것처럼 그다지 현대적인 개념이 아니라는 것을 나타냅니다. 사용된 지식의 유형에 관계없이, 지식 작업에 관련된 모든 사람들을 하나로 묶는 지식 작업의 성격에는 몇 가지 특성이 있습니다. 첫째, 그 과정에는 어느 정도 자유도가 있어야 한다.

더 많은 정보 수집, 실험, 혁신을 허용하는 작업과 이로 인해 때때로 실패로 이어질 수 있다는 인식이 필요합니다. 어떤 혁신이 시장에서 성공할 것인지 정확하게 예측할 수 있는 사람은 아무도 없습니다. 이는 소비재 시장에서 최고의 자원을 보유한 회사라도 신제품 실패 횟수를 보면 분명합니다. 그러므로 지식근로자에게는 어느 정도 자유가 있어야 하며 개인적인 성공을 결정하는 데에는 다양한 기준이 있어야 합니다. 사람들은 다양한 방식으로 학습하므로 근무 시간과 직장 행동에도 어느 정도의 자유도가 있어야 합니다. 예를 들어, 이는 창의성을 자극하는 수단으로 직장에서 다양한 종류의 비표준적인 행동을 장려하는 미국의 하이테크 기업에서 잘 알려져 있습니다. 그럼에도 불구하고, 지정된 개인에게 창의적인 주문을 요구하는 회사에는 본질적인 모순이 있습니다. 특히 회사가 그러한 창의성의 모든 이점을 유지할 것으로 기대하는 경우에는 더욱 그렇습니다. 이런 종류의 배열에서는 개별적인 보상 거래와 성과 평가가 일반적이며 동료와의 결속력이 부족해질 수 있습니다. 지식 근로자 제품의 이점은 사실상 쓸모가 없다는 주장이 있습니다. 왜냐하면 고유한 특성 외에 다른 매력이 없는 고유한 아이템을 만들어 그렇지 않으면 존재하지 않는 수요를 자극하기 때문입니다. 그러한 경우, 관련된 지식 근로자는 자원을 낭비하고 프로세스는 지속 불가능합니다. —존 월시 박사

참고문헌 Drucker, Peter F. “지식 근로자 생산성: 가장 큰 과제.” 캘리포니아 경영 검토 41.2(1999): 79-94. 인쇄.

프로그래밍 및 코딩의 원리

엘리엇, 래리, 댄 앳킨슨. 환상의 섬: 블레어 총리의 놀라운 경제적, 정치적, 사회적 환상에 눈을 뜨다. 런던: 컨스터블, 2007. 인쇄. 호리베, 프란시스. 지식 근로자 관리: 조직의 지적 자본을 활용하기 위한 새로운 기술과 태도. 뉴욕: Wiley, 1999. 인쇄. Jemielniak, Dariusz. 새로운 지식 근로자. Cheltenham: Elgar, 2012. 인쇄.

지식 근로자

리우, 앨런. 쿨함의 법칙: 지식 작업과 정보 문화. 시카고: 시카고 대학교 P, 2004. 인쇄. 오브라이언, 제임스, 조지 마라카스. 경영정보시스템. 10판 뉴욕: McGrawHill, 2010. 파인트. 라인하르트, W., 그 외 여러분. “지식 근로자의 역할과 행동 - 두 가지 실증적 연구 결과.” 지식 및 프로세스 관리 18.3(2011): 150–174. 인쇄.

167

L 수준 처리 이론 처리 수준 이론은 2단계 또는 "다단계" 이론 및 "작업 기억" 모델과 대조되는 기억의 발달을 설명하는 데 사용되는 모델입니다. 처리 수준 모델은 개인이 들어오는 데이터를 처리하는 데 사용하는 "처리 수준"에 따라 정보가 메모리에 얼마나 깊이 인코딩되는지 결정한다고 주장합니다. "다단계" 이론과 비교하여, 처리 수준 모델은 단기 기억과 장기 기억 사이에 정보를 전달하는 과정 없이 단일 저장소만 존재하지만 해당 정보는 더 많은 형태로 인코딩될 수 있다고 주장합니다. 정보의 수신 및 처리 방식에 따라 세부적인 방식이 달라집니다.

개요 처리 모델 수준은 인지 심리학자 Fergus Craik과 그의 동료 Robert Lockhart에 의해 개발되었으며 1972년 Journal of Verbal Learning and Verbal Behavior에 발표된 논문에서 처음으로 탐구되었습니다. Craik과 Lockhart는 메모리를 단기 및 장기 메모리 저장을 위한 별도 시스템 간의 상호 작용으로 설명하는 "2시스템" 메모리 모델의 문제에 의해 동기를 부여받았습니다. Craik과 Lockhart는 사람이 기억을 저장하는 시간이 들어오는 데이터에 사용되는 처리 유형을 조사함으로써 더 잘 설명될 수 있다는 이론을 세웠습니다. Craik과 Lockhart는 의미 탐색을 포함하지 않는 얕은 처리와 의미 처리를 포함하여 장기적인 이해로 이어지는 깊은 처리 간의 차이점을 제안했습니다. Craik과 Tuving은 언어 도구를 사용하여 피험자에게 단어에 대한 질문을 받은 후 단어 목록을 기억하도록 요청하여 처리 수준을 측정하고 보여주었습니다. 단순한 물리적 특성에 관한 질문, 168

"단어에 문자 'a'가 포함되어 있습니까?"와 같은 질문은 처리가 얕고 기억력이 낮은 반면, "단어가 이 문장에 맞는가?"와 같은 질문은 의미론적 처리를 포함하고 기억력이 향상되었습니다. 인지에 관한 한, 처리 이론의 수준은 논리적으로 보입니다. 사람들은 기억하라고 요청받은 사실이 자신이 이미 알고 있는 것과 일치할 때 더 잘 기억하고, 이로써 자신이 습득한 새로운 지식의 추가 의미를 고려하게 됩니다. 처리 수준 접근 방식의 또 다른 핵심 개념은 "정교화"입니다. 이는 심층적인 수준에서 정보를 지속적으로 처리하여 정보를 장기 회상하는 데 도움이 되는 것으로 정의됩니다. 정교한 리허설은 새로운 자료를 심층 처리를 통해 이미 저장되어 있는 정보와 연관시키는 프로세스입니다. 정교한 리허설은 기억력을 향상시키는 효과적인 방법임이 반복적으로 입증되었습니다. 정보의 단순한 반복을 "유지보수 연습"이라고 하며, 전화번호를 학습한 후 반복하는 등 낮은 수준의 회상을 초래합니다. 이와 대조적으로 정교한 예행 연습에는 전화번호의 번호를 중요한 날짜 또는 친숙하고 이미 기억하고 있는 다른 번호와 연결하는 등 저장된 기억과의 연결을 만드는 것이 포함됩니다. 처리수준이론은 기억에 대한 포괄적인 이론을 의도한 것이 아니라, 처리와 기억 형성 사이의 관계를 살펴보기 위한 틀을 제공하기 위해 고안되었습니다. 처리 수준 모델의 강점 중 하나는 정보를 수동적으로 보유하는 이론적 저장 메커니즘 간의 상호 작용보다는 들어오는 정보를 처리하는 방법에 중점을 두어 동적이라는 점입니다. —마이카 이시트

프로그래밍 및 코딩의 원리

논리합성

참고문헌 Anzulewicz, Anna, et al. "처리 수준이 무의식에서 의식적 인식으로의 전환에 영향을 줍니까?" 의식과 인지 36(2015): 1–11. 인쇄. Craik, Fergus I. M. 및 Endel Tulving, "일화 기억의 처리 깊이 및 단어 유지", Journal of Experimental Psychology, 1975, 104(3), 268-94. 인쇄. 크레이크, 퍼거스 I.M., 로버트. S. 록하트. “처리 수준: 기억 연구를 위한 프레임워크.” 언어 학습 및 언어 행동 저널, 1972, 11, 671-84. 인쇄.

Dehn, Milton J. 작업 기억 및 학업 학습: 평가 및 중재. 호보켄: Wiley, 2011. 인쇄. Rose, Nathan S. 및 Craik, Fergus I. M. “작업 기억/장기 기억 구별에 대한 처리 접근 방식: 처리 수준 작업에서 얻은 증거.” 실험 심리학 저널: 학습, 기억 및 인지 38.4(2012): 1019–029. 인쇄. Schwartz, Bennett L. 메모리: 기초 및 응용. 천 오크스: 세이지, 2011. 인쇄. Surprenant, Aimee M., Ian Neath. 기억의 원리. 뉴욕: 심리학 P, 2009. 인쇄. 와이즈버그, 로버트 W., 로레타 M. 리브스. 인지: 기억에서 창의성까지. 호보켄: 와일리. 인쇄.

논리 합성 논리 합성은 컴퓨터가 수행할 것으로 예상되는 기능에 대한 초기 개념을 재구성하고 컴퓨터의 어휘와 언어로 번역하는 컴퓨터 프로그래밍의 한 분야입니다. 컴퓨터에는 프로그래머가 원하는 작업이 무엇인지 구체적으로 알려주어야 합니다. 다양한 컴퓨터 기능을 포괄하는 추상적인 아이디어나 개념은 실제적인 용어로 컴퓨터 자체의 매우 제한된 언어로 전달될 수 없습니다. 소프트웨어 엔지니어링 분야에서 논리 합성은 소프트웨어 엔지니어가 컴퓨터 회로가 실행할 것으로 예상되는 기능의 추상적 개념을 컴퓨터 회로가 수용할 특정 명령으로 변환하는 프로세스를 의미합니다. 점점 더 경쟁이 치열해지는 소프트웨어 엔지니어링 분야에서 많은 프로그래머는 아이디어(컴퓨터 프로그램이 실행할 내용에 대한 개념)와 실현(고도의 환경에 도입할 수 있는 실행 가능한 프로그램) 사이의 시간인 설계 주기를 최소화하는 데 중점을 둡니다. 경쟁적인 소프트웨어 시장). 소프트웨어 엔지니어는 논리 합성에 필수적인 알고리즘적 사고의 힘든 단계별 프로세스를 체계적으로 작업함으로써 추상적인 명령을 원하는 회로 동작으로 변환합니다.

개요 논리 합성의 기초는 19세기로 거슬러 올라가는 컴퓨터 프로그래밍 개념에 뿌리를 두고 있습니다.

19세기 중반—특히 영국 수학자 조지 부울(George Boole, 1815~64)이 처음으로 기술한 대수 함수에 관한 것입니다. 그는 추상적인 수학적 사고의 복잡한 구조를 둘 중 하나라는 용어로 생각했습니다. 아이디어를 실시간 컴퓨터 기능으로 구현하는 일꾼인 컴퓨터 회로는 특정 이진 명령(논리 게이트라고도 하는 매핑된 논리적 단계 시퀀스)에 따라 작동하며 각 단계는 YES/NO 또는 EITHER/OR 문으로 표시됩니다. . 이를 통해 회로는 의도된 프로세스 맵을 컴퓨터의 특정 언어를 말하는 최소화 단계로 인코딩하여 기능을 최적화하고 의도된 명령을 완료할 수 있습니다. 예를 들어, 가전제품 제조업체가 전자레인지 조리실의 온도를 지속적으로 모니터링할 수 있는 통합 회로를 개발하려고 한다고 가정해 보겠습니다. 프로젝트에 배정된 소프트웨어 엔지니어는 해당 추상 개념을 컴퓨터 회로가 이해할 수 있는 언어로 번역하고 순차적 부울 논리를 주의 깊게 적용하여 아이디어를 원하는 동작에서 특정 개념 구조로 이동한 다음 실행 가능한 물리적 레이아웃이나 애플리케이션으로 이동해야 합니다. 소프트웨어 엔지니어는 논리 합성을 사용하여 해당 고급 추상 개념을 최적화된 게이트 표현으로 변환합니다. 이는 개념을 회로가 효과적이고 효율적으로 수용하고 실행할 이진 단계로 분해하는 설계 구현입니다. 프로세스를 169로 변환

프로그래밍 및 코딩의 원리

물류 센터

다양한 논리 게이트의 시각적 다이어그램. 다이어그램의 부분은 두 개의 부울 변수가 주어지면 가능한 네 가지 순열에 해당합니다.

특정 하드웨어 및 소프트웨어 설명은 논리 합성의 핵심입니다. 이는 종종 소프트웨어 엔지니어에 의해 수행되지만, 새롭고 효율적인 프로그램 소프트웨어를 생성할 수 있는 정교한 컴퓨터 프로그램에 위임될 수도 있습니다. —조셉 듀이(Joseph Dewey) 박사

참고문헌 Ciletti, Michael D. Verilog HDL을 사용한 고급 디지털 디자인. 2판 어퍼 새들 리버: Prentice, 2010. 인쇄.

조지 부울.

드 미켈리, 조반니. 디지털 회로의 합성 및 최적화. 뉴욕: McGraw, 1994. 인쇄. Devadas, Srinivas, Abhijit Ghosh 및 Kurt Keutzer. 논리 합성. 뉴욕: McGraw, 1994. 인쇄. Hachtel, 게리 D., 파비오 Somenzi. 논리 합성 및 검증 알고리즘. 뉴욕: 스프링어, 2006. 인쇄. Hassoun, Soha 및 Tsutomu Sasao, 편집. 논리 합성 및 검증. Norwell: Kluwer, 2002. 인쇄. 러쉬턴, 앤드류. 논리 합성을 위한 VHDL. 3판 호보켄: Wiley, 2011. 인쇄. 사사오, 츠토무. 논리합성을 위한 스위칭이론. 뉴욕: 스프링거, 1999. 인쇄.

물류 물류에는 출발지와 최종 목적지 사이의 자원 이동을 관리하는 작업이 포함됩니다. 이러한 자원에는 장비, 제품, 인력과 같은 유형의 상품이나 정보, 에너지, 170과 같은 무형의 상품이 포함될 수 있습니다.

그리고 시간. 물류 관리 프로세스는 일반적으로 공급망 전체에서 자원을 이동하는 데 필요한 주요 측면의 통합 계획, 구현, 제어 및 모니터링을 통해 효율성을 최적화하도록 설계되었습니다. 여기에는 생산,

프로그래밍 및 코딩의 원리

물류 센터

ARABIAN GULF(2011년 10월 20일) 물류 전문가 Krystal K. Weed 선원이 항공모함 USS George H.W.의 창고에서 물품 재고를 관리하고 있습니다. 부시 (CVN 77).

포장, 재고, 운송, 인력 배치 및 커뮤니케이션. 기본적으로 물류는 올바른 제품을 최적의 가격으로 적시에 원하는 목적지까지 배송하는 데 사용됩니다.

개요 물류는 군수품 공급에 뿌리를 두고 있습니다. 초기 군대는 병참 원칙을 사용하여 여행하는 군대가 필요할 때 필요한 때 무기, 식량 및 기타 보급품을 사용할 수 있도록 했습니다. 현대 군대의 군수 관리에서는 다양한 변수를 사용하여 상품과 장비의 수요, 비용, 소비, 교체 요구 사항을 예측하여 강력하고 쉽게 지원 가능한 공급망 시스템을 만듭니다. 비즈니스 부문에 물류를 적용하는 것은 세계화와 밀접하게 연관되어 있습니다. 전 세계 국가에 자원과 공급품이 위치하면서 공급망이 점점 더 복잡해지면서 기업은

자원 흐름을 보다 효과적으로 관리하기 위한 방법으로 물류를 고려하기 시작했습니다. 비즈니스의 물류에는 여러 전문 분야가 포함됩니다. 예를 들어, 인바운드 물류는 회사, 공장 또는 매장으로 들어오는 자재의 이동을 구매하고 조정하는 데 중점을 둡니다. 아웃바운드 물류는 비즈니스에서 최종 사용자까지 자원을 저장하고 이동하는 프로세스와 관련됩니다. 기업 내에서 물류는 특정 프로젝트에 적용될 수도 있습니다. 범위에 관계없이 대부분의 물류 활동에는 유형 및 무형 자산 관리가 어느 정도 포함됩니다. 조달물류, 유통물류, 생산물류는 구체적인 활동을 목표로 합니다. 조달 물류에서는 시장 조사, 요구 사항 계획, 제조 대 구매 결정, 공급업체 관리 및 주문 제어를 다룹니다. 유통 물류에는 최종 171개 제품 배송과 관련된 주문 이행, 창고 보관 및 운송 작업이 포함됩니다.

프로그래밍 및 코딩의 원리

물류 센터

최종 사용자에게 제품이나 리소스를 제공합니다. 생산물류는 조달 이후 유통 이전에 발생하는 프로세스를 관리하는 것입니다. 생산 물류가 다루는 영역에는 레이아웃 및 생산 계획, 프로세스 구성 및 제어가 포함됩니다. 사업 운영에 적용되는 다른 일반적인 물류 유형으로는 폐기 물류, 역물류, 녹색 물류, 긴급 물류 등이 있습니다. 폐기 물류는 운영으로 인해 발생하는 폐기물 처리와 관련된 비용을 줄이면서 서비스를 향상시키는 것을 추구합니다. 역물류는 필요에 따라 재사용 또는 폐기를 위해 기업의 잉여 자원을 전달하는 것과 관련된 관행을 포함합니다. 그린물류는 기업의 모든 물류활동이 환경에 미치는 영향을 최소화하는 것을 목표로 합니다. 긴급 물류는 자주 사용되지는 않지만 주요 기상 이변이나 심각한 생산 지연과 같은 상황으로 인해 중단을 최소화하면서 공급망 요구 사항을 계속 수용하기 위해 표준 물류 프로세스의 변경이 필요한 경우 활성화됩니다. 기업에서는 때때로 물류 활동의 일부 또는 전부를 외부 공급업체에 아웃소싱합니다. 일반적인 예는 회사가 회사 자체에서 생산하고 관리하는 상품을 배송하기 위해 제3자 또는 비계열 운송 사업자를 고용하는 경우입니다. —샤리 파슨스 밀러(매사추세츠주)

172

참고문헌 Coyle, John J., et al. 공급망 관리: 물류 관점. 9판 메이슨: 남서부, 2013. 인쇄. 드 종, 제라드, 모셰 벤-아키바. “공급망의 운송 및 물류.” 공급망 관리, 마케팅 및 광고, 글로벌 관리. 에드. 호세인 비드골리. 호보켄: Wiley, 2010. 146–58. 인쇄. Vol. 기술경영 핸드북 2권. 3권 Farahani, Reza Zanjirani, Shabnam Rezapour 및 Laleh Kardar, eds. 물류 운영 및 관리: 개념 및 모델. 월섬: Elsevier, 2011. 인쇄. McKinnon, Alan, et al., eds. 녹색 물류: 물류의 환경 지속 가능성 개선. 3판 필라델피아: Kogan, 2015. 인쇄. 맥밀란, 찰스. “글로벌 물류 및 국제 공급망 관리.” 공급망 관리, 마케팅 및 광고, 글로벌 관리. 에드. 호세인 비드골리. 호보켄: 와일리, 2010. 68–88. 인쇄. Vol. 기술경영 핸드북 2권. 3권 새들러, 이안. 물류 및 공급망 통합. 천 오크스: 세이지, 2007. 인쇄. 쇤슬레벤, 폴. 통합 물류 관리: 포괄적인 부가가치 네트워크의 운영 및 공급망 관리. 3판 보카 레이톤: Auerbach, 2007. 인쇄.

M 기계 학습 기계 학습은 컴퓨터가 인간의 지시가 아닌 과거 경험을 통해 학습한 행동을 표시할 수 있도록 하는 컴퓨터 과학 알고리즘의 한 분야입니다. 머신러닝은 인공지능 개발에 필수적이지만, 일상적인 많은 컴퓨팅 작업에도 적용 가능합니다. 기계 학습을 사용하는 프로그램의 일반적인 예로는 이메일 스팸 필터, 광학 문자 인식, 이전 사용자 활동 및 기본 설정에 따라 디스플레이를 변경하는 소셜 네트워킹 사이트의 뉴스 피드 등이 있습니다.

개요 기계 학습을 가능하게 하기 위한 최초의 시도 중 하나는 1957년 Frank Rosenblatt가 개발한 퍼셉트론 알고리즘이었습니다. 이 알고리즘은 패턴 인식을 가르치기 위한 것이며 신경망의 구조를 기반으로 했습니다. 동물의 중추신경계. 퍼셉트론 모델은 초기 가능성을 보였지만 Marvin Minsky와 Seymour Papert는 1969년 저서 Perceptrons: An Introduction to Computational Geometry에서 모델이 학습할 수 없는 특정 종류의 문제가 있기 때문에 상당한 한계가 있음을 보여주었습니다. 결과적으로 연구자들은 한동안 이 연구 분야를 추구하지 않았습니다. 1980년대에 인공 지능을 개발하기 위한 다른 방법이 제한적인 성공을 거두자 과학자들은 퍼셉트론 모델을 다시 검토하기 시작했습니다. 다층 퍼셉트론, 즉 여러 계층의 계산 단위로 구성된 신경망은 Rosenblatt의 단일 계층 또는 선형 퍼셉트론이 표현할 수 없는 문제를 표현할 수 있는 처리 능력을 가지고 있음이 입증되었습니다. 비슷한 시기에 John Ross Quinlan은 예측 모델을 사용하여 사용 가능한 데이터를 기반으로 변수의 값을 결정하는 의사결정 트리 알고리즘을 도입했습니다.

그 이후로 수많은 기계 학습 알고리즘이 개발되었습니다. 가장 일반적으로 사용되는 것 중에는 SVM(지원 벡터 머신)과 Naive Bayes 분류자가 있습니다. 1995년 Vladimir N. Vapnik과 Corinna Cortes가 도입하고 이전에 Vapnik이 만든 알고리즘을 기반으로 한 SVM은 데이터의 패턴을 인식하고 다양한 데이터 포인트를 분류하는 데 사용됩니다. 나이브 베이즈 분류기는 조건부 확률을 다루는 18세기 수학자이자 존경하는 토마스 베이즈의 이름을 딴 베이즈 정리를 적용한 것입니다. 이 알고리즘은 1996년 Jason Rennie가 출시한 최초의 이메일 스팸 필터 중 하나인 iFile에 사용되었습니다. 많은 이메일 클라이언트는 여전히 특정 키워드가 포함된 이메일이 다음과 같은 확률을 결정하는 베이지안 스팸 필터링을 사용하고 있습니다. 스팸. 기계 학습 알고리즘은 기계를 훈련하는 방법에 따라 여러 범주로 나눌 수 있습니다. 이러한 범주에는 기계가 원하는 출력에 매핑된 입력으로부터 학습하는 지도 학습이 포함됩니다. 기계가 원하는 출력에 대한 지식 없이 입력을 분석하는 비지도 학습; 입력 중 일부가 원하는 출력과 쌍을 이루고 일부는 그렇지 않은 준지도 학습; 변환(transduction): 기계가 이전 입력 및 출력을 사용한 훈련을 기반으로 새로운 출력을 예측하려고 시도합니다. 강화 학습: 기계는 특정 행동이 환경에 어떻게 영향을 미치는지 관찰하여 행동 방법에 대한 정책을 형성해야 합니다. 이전 경험을 바탕으로 귀납적 편견을 가르치는 학습 학습입니다. SVM, 다층 퍼셉트론, 의사결정 트리 및 Naive Bayes 분류기는 모두 지도 학습 범주에 속합니다. 머신러닝과 데이터 마이닝을 구별하는 것이 중요합니다. 두 개념이 관련되어 있고 유사하고 종종 중복되는 방법을 사용하지만 데이터 마이닝은 발견하는 데 중점을 둡니다.

프로그래밍 및 코딩의 원리

악성코드

토마스 베이즈(1702-1761) 비국교도 목사이자 수학자. 대부분의 시장 조사 및 여론 조사 기법의 기초인 확률 통계 이론의 창시자입니다.

주어진 데이터에 대한 정보를 제공하는 반면, 머신러닝은 미래의 다른 데이터에 대한 예측을 위해 주어진 데이터로부터 학습하는 데 더 중점을 둡니다. 많은 사람들이 데이터 마이닝을 기계 학습의 하위 집합으로 간주합니다. —Randa Tantawi, PhD 참고문헌 Abu-Mostafa, Yaser S. "스스로 생각하는 기계." Scientific American 2012년 7월: 78-81. 인쇄. Brodley, Carla E. “응용 기계 학습의 과제와 기회.” AI 매거진 33.1(2012): 11-24. 인쇄.

도밍고, 페드로. “머신러닝에 대해 알아야 할 몇 가지 유용한 사항.” ACM 55.10(2012)의 커뮤니케이션: 78-87. 인쇄. 맙소사, 더글러스. “더 높은 정신 상태.” New Scientist 2013년 8월 10일: 32-35. 인쇄. 제임스, 마이크. “딥러닝의 승리.” 나 프로그래머 . I-programmer.info, 2012년 12월 14일. 웹. 2013년 9월 27일. 마슬랜드, 스티븐. 기계 학습: 알고리즘 관점. 보카 레이턴: 테일러, 2009. 인쇄. Mitchell, Tom M. 기계 학습 분야. 피츠버그: 카네기 멜론 대학교, 2006. PDF 파일. 미첼, 톰 M. 머신러닝. 뉴욕: McGraw, 1997. 인쇄. 피오레, 아담. “기계 속의 마음.” 디스커버 2013년 6월: 52-59. 인쇄.

악성 코드 연구 분야 소프트웨어 엔지니어링; 보안

컴퓨터 사용자의 수입니다. 악성 코드를 생성하고 배포하는 것은 사이버 범죄의 한 형태입니다. 범죄자들은 ​​디지털 강탈을 수행하기 위해 악성 코드를 자주 사용했습니다.

추상적인

주요 약관

맬웨어 또는 악성 소프트웨어는 컴퓨터를 방해하거나 이러한 이점을 이용하도록 설계된 소프트웨어 형태입니다.

애드웨어: 컴퓨터 사용자에게 표시할 광고를 생성하는 소프트웨어입니다.

174

프로그래밍 및 코딩의 원리

악성코드

악성 코드

애드웨어 루트킷

회충

크라임웨어 바이러스

트로이 목마

좀비

악성 프로그래밍 악성 소프트웨어 또는 악성 소프트웨어는 악의적, 범죄적 또는 승인되지 않은 목적으로 사용되는 모든 소프트웨어 프로그램이나 컴퓨터 코드에 부여되는 이름입니다. 다양한 유형의 맬웨어가 있지만 모든 맬웨어는 사용자의 컴퓨터를 손상시키거나 사용자로부터 지불금을 갈취하는 등 컴퓨터 사용자의 이익에 반하는 행위를 합니다. 대부분의 악성 코드는 강탈을 목적으로 만들어지고 확산됩니다. 다른 악성 프로그램은 사용자의 데이터를 파괴하거나 손상시킵니다. 어떤 경우에는 정부 국방 기관에서 악성 코드를 개발하여 사용하기도 했습니다. 한 가지 예로 2010년 스턱스넷(STUXNET) 바이러스가 있는데, 이는 적국이나 조직이 운영하는 디지털 시스템을 공격하고 물리적 장비를 손상시켰습니다.

랜섬웨어

맬웨어의 역사 맬웨어의 초기 형태는 바이러스와 웜이었습니다. 바이러스는 스팸 자체를 다른 프로그램이나 파일에 첨부하는 자가 복제 컴퓨터 프로그램입니다. 기기에 해를 끼치거나, 컴퓨터 간에 전송되는 정보를 훔치거나, 데이터를 손상시키거나, 프로세서를 압수 또는 압도하거나, 파일을 삭제하도록 설계된 모든 소프트웨어로 구성된 악성코드입니다. 감염된 파일이 다른 악성 코드로 전송되는 예로는 애드웨어, 바이러스, 웜, 트로이 목마, 스팸 및 좀비가 있습니다. 푸터. 웜은 바이러스와 유사하지만 랜섬웨어: 자신을 복제하여 특정 파일이나 프로그램에 액세스할 수 있도록 암호화하거나 차단한 다음 연결되지 않은 다른 네트워크 컴퓨터에 사용자에게 암호화 또는 기타 복구를 위해 비용을 지불하도록 요청하는 악성 코드입니다. 다른 파일 . 첫 번째 바이러스와 웜은 제한 사항이 제거되었습니다. 컴퓨터 애호가가 만든 주변 프로그램 스케어웨어: 1980년대에 사용자를 속이려고 시도하는 악성 코드. 컴퓨터가 만들어지자마자 소프트웨어를 다운로드하거나 구매하거나 응용 엔지니어는 컴퓨터 문제를 해결하기 위한 최초의 바이러스 백신 작업을 시작했습니다. 감염된 스파이웨어: 모든 컴퓨터에 설치되는 소프트웨어. 1990년대 후반과 2000년대 초반 여러 사람의 하드 드라이브로 인해 널리 퍼진 악성 코드에 대한 대중의 지식이나 1990년대 후반과 2000년대 초반의 내용에 대한 정보를 제3자에게 공개합니다. 잘 알려진 컴퓨터 바이러스. 여기에는 1999년에 스스로 복제할 수 있는 Happy99 웜과 ILOVEYOU 웜을 복제하여 다른 컴퓨터로 독립적으로 확산시킬 수 있는 맬웨어 유형인 웜이 포함됩니다. 2000년 5월 후자는 컴퓨터 바이러스와 달리 거의 50대를 감염시켰으니 열흘 안에 수백만 대의 컴퓨터를 감염시킬 필요는 없다. 특정 프로그램에 다시 연결됨에 따라 . 2015년 안티 바이러스 회사 시만텍에서 검색한 '좀비 컴퓨터: 연결된 컴퓨터' 3억 1700만 개 이상의 새로운 악성 프로그램이 인터넷이나 로컬 네트워크에 존재했으며 2014년에 생성되었습니다. 그러나 소프트웨어를 실행하는 데 사용될 수 있는 손상에 대한 대중의 인식에도 불구하고 많은 대규모 조직에서는 다른 컴퓨터에 대한 맬웨어나 바이러스 공격에 비해 덜 주의를 기울이고 있습니다. 2015년 70개 주요 기업을 대상으로 한 연구에서 동일한 네트워크가 사용되었습니다. Verizon은 전 세계적으로 거의 90개의 스파이웨어가 있다고 보고했습니다.

175

악성코드

2014년 데이터 침해의 비율은 2002년에 보고되었지만 아직 패치가 적용되지 않은 알려진 취약점을 악용했습니다.

맬웨어 유형 가장 친숙한 맬웨어 유형 중 하나는 애드웨어입니다. 이는 원치 않는 광고를 생성하여 사용자에게 팝업이나 닫을 수 없는 창에 표시하는 프로그램을 의미합니다. 애드웨어는 프로그램 사용 방법에 따라 합법일 수도 있고 불법일 수도 있습니다. 일부 인터넷 브라우저는 타겟 광고를 표시하기 위해 사용자의 쇼핑 또는 웹 검색 기록을 분석하는 애드웨어 프로그램을 사용합니다. Google과 University of California, Berkeley가 실시한 2014년 조사에 따르면 미국 내 500만 대 이상의 컴퓨터가 애드웨어에 감염된 것으로 나타났습니다. 또 다른 유형의 맬웨어는 스파이웨어로 알려져 있습니다. 이는 사용자의 활동을 추적하거나 제3자에게 컴퓨터 시스템에 대한 접근 권한을 제공하기 위해 사용자의 컴퓨터에 설치되는 프로그램입니다. 스파이웨어 프로그램도 합법적일 수 있습니다. 특정 사이트를 방문하거나 다른 파일을 다운로드하려고 시도하는 사용자가 무의식적으로 많은 파일을 다운로드할 수 있습니다. 가장 일반적인 유형의 맬웨어 중 하나는 스케어웨어(Scareware)입니다. Scareware는 컴퓨터가 바이러스에 감염되었거나 다른 기술적 문제가 발생했다고 사용자를 설득하려고 합니다. 그런 다음 문제를 해결하려면 "바이러스 백신" 또는 "컴퓨터 청소" 소프트웨어를 구입하라는 메시지가 사용자에게 표시됩니다. 랜섬웨어의 역사는 1989년으로 거슬러 올라가지만 2010년대에 새로운 인기를 얻었습니다. 랜섬웨어는 컴퓨터나 프로그램의 특정 기능에 대한 액세스를 암호화하거나 차단하는 악성 코드 유형입니다. 감염된 컴퓨터를 사용하는 사용자는 암호화를 제거하기 위해 몸값을 지불하라는 요청을 받습니다. 위협 퇴치 악성 코드를 해결하는 것은 여러 가지 이유로 어렵습니다. 국제적으로 맬웨어 공격을 실행하면 경찰이나 국가 보안 기관이 책임자를 표적으로 삼는 것이 어려워집니다. 사이버 범죄자는 좀비 컴퓨터를 사용하여 악성 코드를 배포할 수도 있습니다. 좀비 컴퓨터는 소유자도 모르게 바이러스에 감염된 컴퓨터입니다. 사이버 범죄자는 수백 대의 좀비 컴퓨터를 동시에 사용할 수 있습니다. 따라서 조사관은 컴퓨터에서 악성 코드를 추적하여 다음과 같은 사실을 발견할 수 있습니다.

프로그래밍 및 코딩의 원리

그것은 좀비 배포자이며 프로그램 작성자에 대한 링크가 없습니다. 맬웨어는 개인용 컴퓨터에서 가장 흔하게 발생하지만 태블릿과 스마트폰을 통해 배포될 수 있는 맬웨어 프로그램도 많습니다. 맬웨어 제작자는 종종 사용자를 속여 프로그램을 다운로드하도록 시도합니다. 애드웨어는 사용자 컴퓨터에서 "드라이버" 또는 기타 다운로드 가능한 "업데이트"가 필요하다는 메시지 형태로 나타날 수 있습니다. 다른 경우에는 많은 웹사이트에서 볼 수 있는 Facebook의 '좋아요' 버튼과 같은 소셜 미디어 기능에 악성 코드가 숨겨져 있을 수 있습니다. 2016년 2월 등장한 랜섬웨어 프로그램인 로키(Locky)는 마이크로소프트 워드를 이용해 사용자 컴퓨터를 공격했다. 사용자는 문서를 읽기 위해 "매크로"를 활성화하라는 문서가 포함된 전자 메일을 받게 됩니다. 사용자가 지침을 따르면 Locky 프로그램이 컴퓨터에 설치됩니다. 본질적으로 Locky에 감염된 사용자는 두 가지 실수를 저질렀습니다. 먼저 그들은 알려지지 않은 사용자로부터 Word 문서 첨부 파일을 다운로드했습니다. 그런 다음 문서 내에서 매크로를 활성화하라는 메시지를 따랐습니다. 이 기능은 모든 버전의 Microsoft Word에서 자동으로 꺼집니다. 많은 맬웨어 프로그램은 사용자가 프로그램을 다운로드하거나 설치하는 데 의존합니다. 따라서 컴퓨터 보안 전문가들은 오염을 피하는 가장 좋은 방법은 알 수 없거나 신뢰할 수 없는 출처에서 온 이메일, 메시지, 첨부 파일을 열지 않는 것이라고 경고합니다. —마이카 L. 이시트

참고문헌 브래들리, 토니. “전문가들이 선정한 2015년 5대 보안 위협.” PCWorld. IDG 소비자 및 중소기업, 2015년 1월 14일. 웹. 2016년 3월 12일. 브랜덤, 러셀. “Google 설문 조사에 따르면 500만 명 이상의 사용자가 애드웨어에 감염된 것으로 나타났습니다.” 더버지. Vox Media, 2015년 5월 6일. 웹. 2016년 3월 12일. Franceschi-Bicchierai, 로렌조. “러브버그: 5천만 명을 감염시킨 바이러스가 15주년을 맞이했습니다.” 마더보드. Vice Media, 2015년 5월 4일. 웹. 2016년 3월 16일. 갤러거, 션. "'Locky' 암호화 랜섬웨어가 악성 Word 문서 매크로를 공격합니다." 아르스 테크니카. Condé Nast, 2016년 2월 17일. 웹. 2016년 3월 16일.

프로그래밍 및 코딩의 원리

해리슨, 버지니아, 호세 Pagliery. “거의 100만 개에 달하는 새로운 악성 코드 위협이 매일 공개됩니다.” CNN머니. 케이블 뉴스 네트워크, 2015년 4월 14일. 웹. 2016년 3월 16일.

대규모 공개 온라인 강좌(MOOC)

스펜스, 이완. “새로운 Android 악성 코드가 수백만 대의 스마트폰을 공격합니다.” 포브스. Forbes.com, 2015년 2월 4일. 웹. 2016년 3월 11일. “스파이웨어.” 퍼듀를 확보하세요. 퍼듀 대학교, 2010. 웹. 2016년 3월 11일.

MOOC(대규모 개방형 온라인 강좌) MOOC(대규모 개방형 온라인 강좌)는 수십 년 동안 다양한 형태로 존재해 온 원격 및 온라인 교육의 진화된 버전입니다. 통신교육은 19세기 후반까지 거슬러 올라가며, 컴퓨터와 인터넷은 초기 단계부터 교육에 사용되어 왔다. 1972년 초, 캐나다 앨버타에 있는 Athabasca University는 인쇄, TV, 온라인 콘텐츠를 사용하여 국내 및 해외 학생들에게 과정을 가르치는 원격 교육을 제공했습니다. MOOC는 디지털로 연결된 세상에서 다양한 학습 가능성을 탐구함으로써 독립적인 학습을 촉진합니다. 이를 통해 무료 웹 기반 개방형 온라인 강좌를 통해 참여적이고 상호작용적이며 상황에 맞는 창의적인 프레임워크로 지식이 구성되는 집단 공간에 접근할 수 있습니다.

개요 MOOC라는 용어는 2008년 George Siemens와 Stephen Downes가 설계하고 강의한 과정을 위해 프린스 에드워드 아일랜드 대학의 교수인 Dave Cormier가 만들어낸 용어입니다. 연결주의 및 연결 지식 과정은 등록된 소수의 유료 학생에게 학점으로 제공되었으며 일반 대중의 약 2,300명의 온라인 학생에게는 학점 없이 무료로 제공되었습니다. 그 후, MOOC는 점점 더 인기 있는 교육 형태로 추진력을 얻었습니다. Coursera, Udacity 및 edX는 선도적인 MOOC 제공업체 중 3곳으로 떠오르며 대학과 협력 및 제휴하여 더 다양한 학생들에게 강좌 콘텐츠를 제공합니다. Coursera와 Udacity는 상용 모델을 사용했으며 edX는 여러 비영리 MOOC 제공업체 중 하나였습니다. 두 모델 모두 학생 유치 능력을 입증했으며 Coursera는 500만 명의 학생을 유치하고 edX는 1.3 이상을 기록했습니다.

New York Times에서 "MOOC의 해"라고 일컬은 2012년에 MOOC 시장은 급속히 성장했으며 이 현상은 전통적인 교육에 대한 잠재적인 파괴적 영향으로 인해 언론에서 크게 보도되었습니다. 2013년까지 Coursera는 스탠포드, 듀크, 홍콩 대학교를 포함해 전 세계 62개 대학의 교수들이 지도하는 다양한 학문 분야(예: 수학, 과학, 인문학, 기술)의 여러 언어로 300개 이상의 강좌를 제공했습니다. 과학기술부. MOOC는 일부 전통적인 학교 교육 관례를 유지하지만 상당한 방식으로 이러한 표준에서 벗어납니다. 수강기간, 특정 관심주제 등의 특성은 동일합니다. 그러나 대부분의 대학에서 제공하는 정규 과정과 달리 MOOC는 무료이며 개방적이고 공유된 콘텐츠에 대한 액세스를 제공하며 학습에 대한 관심, 인터넷 액세스 및 일부 디지털 기술 외에는 전제 조건이 필요하지 않습니다. 대부분의 MOOC는 공식 인증을 제공하지 않지만 일부는 일반적으로 유료로 과정 수료증을 제공합니다. 전통적인 제도화 교육과 가장 큰 차이점은 지식과 학습의 이론적 기반입니다. 예를 들어 지식 측면에서 MOOC는 교육 기관이나 현장 전문가로부터 미리 패키지화된 지식을 구매하는 전통적인 관행에서 어느 정도 벗어났습니다. 대신 지식은 강사에 의해 촉진되고 참가자들 사이에서 자유롭게 구성되고 협상됩니다. 지식은 대화와 토론을 통해 참가자와 진행자 간의 적극적인 참여에서 "창출"됩니다. 학습은 참가자, 텍스트, 블로그, 기사 및 웹 사이트에 분산된 온라인 네트워크에서 참여, 참여 및 탐색의 기능으로 발생합니다. 어떤 사람들은 네트워크로 연결된 기여가 177

대규모 공개 온라인 강좌(MOOC)

프로그래밍 및 코딩의 원리

해당 분야의 다양한 조직적 노력과 관련하여 mooc 개발 및 공개 교육의 타임라인을 표시합니다.

다양한 분야로 확장되어 학습자와 학문 모두에게 도움이 되는 학제간 정보 교환을 제공합니다. MOOC 개념은 기존의 교육 및 학습 관행을 강화할 수 있으며 글로벌 수준에서 교육을 보다 쉽게 ​​달성할 수 있는 잠재력을 가지고 있습니다. 또한 지식 구축 과정에 학습자를 포함시켜 평생 학습에 대한 헌신을 모델링하고 반영합니다. 그러나 모든 학습자가 동일한 혜택을 받는 것은 아닙니다. 엄청난 수의 등록된 학생으로 인해 환경은 개별화된 강사의 관심과 개별 학습자의 특정 요구 및 능력을 지원하지 않습니다. 필수 정보나 기본적인 디지털 기술이 없는 학생과 본질적인 동기가 없는 학생은 MOOC에서 어려움을 겪을 수 있으며, 다른 학생은 기술에 대한 접근이 부족하여 완전히 배제될 수 있습니다. 비평가들은 MOOC가 모든 인구, 특히 국제적으로 평등한 교육을 제공하는 것을 목표로 하고 있지만 연구에 따르면 대부분의 참가자는 선진국, 서구 국가 출신이고 이미 178

대학 학위를 가지고 있습니다. 일부 관찰자들은 또한 MOOC가 명문 대학의 강좌 내용을 확산함으로써 실제로 고등 교육의 동질성을 강화하고 문화 간 지식 전달을 제한한다고 주장합니다. MOOC는 추가적인 과제에도 직면해 있습니다. 교육자는 디지털 MOOC 형식에 맞게 기존 강의실용으로 구성된 과정을 변경할 수 있는 시간, 노력 및 유연성을 가져야 합니다. 디자이너들은 여전히 ​​높은 중퇴율, 인증, 접근성, 품질 표준, 평가, 가치 평가, 표절, 저작권 및 법적 문제에 이르는 심각한 문제를 해결하기 위해 고군분투하고 있습니다. 대학 도서관은 공개된 공공 공간에서 공유할 수 있는 대체 자료를 찾는 임무를 맡고 있습니다. 비평가들은 MOOC에 참여하는 수백만 명의 학생들을 다운로드 가능한 읽기 자료, 플래시카드, 기타 학습 보충 자료의 수익원으로 보는 교과서 출판사 및 기타 비즈니스 이해관계에 의해 MOOC의 오픈 액세스 이상이 훼손될 수 있다고 경고합니다. MOOC는 널리 연구되어 왔지만

프로그래밍 및 코딩의 원리

메타분석

그 현상에 대한 실증적 연구는 상대적으로 드물고 미래는 유망하지만 예측할 수 없습니다. —Hitaf R. Kady(MA) 및 Jennifer A. Vadeboncoeur(MA, PhD)

참고문헌 “MOOC의 공격.” 이코노미스트. 이코노미스트, 2013년 7월 20일. 웹. 2013년 7월 29일. 버틀러, 브랜든. “대규모 공개 온라인 강좌: 연구 도서관에 대한 법적 및 정책 문제.” 연구도서관협회. 협회 연구 도서관, 2012년 10월 22일. 웹. 2013년 8월 5일. Cooper, Steve, Mehran Salami. “스탠포드의 MOOC에 대한 고찰.” ACM 56.2(2013)의 커뮤니케이션: 28-30. 컴퓨팅 기계 협회. 편물. 2013년 8월 5일. 다니엘, 존. “MOOC 이해하기: 신화, 역설, 가능성의 미로에서 생각하기.” 교육의 인터랙티브 미디어 JIME 저널. JIME, 2012년 12월. 웹. 2013년 8월 5일.

Fowler, Geoffrey A. “대규모 공개 온라인 강좌에 대한 조기 성적표.” 월 스트리트 저널. Dow Jones, 2013년 10월 8일. 웹. 2015년 6월 18일. 한나 가이스. “개발도상국은 'MOOC'에 빠져 있습니까?” 알자지라 아메리카. Al Jazeera America, 2014년 7월 17일. 웹. 2015년 6월 18일. 제니퍼 하워드. “출판사에서는 온라인 메가코스를 교과서 판매 기회로 봅니다.” 고등교육 연대기. Chronicle of Higher Ed., 2010년 9월. 웹. 2013년 8월 5일. Hu, Helen. “우리가 고등교육에 대해 생각하는 방식을 바꾸는 MOOC.” 고등교육의 다양한 문제. 고등교육의 다양한 문제, 2013년 4월. Web. 2013년 7월 29일. Sharples, Mike 등, "2012년 교육학 혁신: 교육자와 정책 입안자를 안내하기 위한 새로운 형태의 교육, 학습 및 평가 탐구." 열린대학. 오픈유(Open U), 2012. 웹. 2013년 8월 5일. Zemsky, Robert. "여기에는 MOOC MOOC, 저기에는 MOOC MOOC, 여기에는 MOOC, 저기에는 MOOC, 모든 곳에는 MOOC MOOC." 주르. 일반 Ed. 63.4(2014): 237–243. 인쇄.

메타 분석 메타 분석은 다양한 연구 연구의 정보를 체계적으로 결합하여 이용 가능한 증거에서 하나 이상의 결론을 도출하는 연구 방법입니다. 메타분석은 이미 존재하는 고품질 연구의 상당 부분에 대한 질문을 해결하는 데 가장 유용합니다. 메타분석에 의해 도출된 결론의 질은 포함된 연구의 질에 크게 좌우되기 때문입니다. 메타분석은 연구 결과가 일관되지 않거나 상충되는 경우에 특히 유용할 수 있습니다. 특정 주제에 대해 출판된 연구의 수가 증가함에 따라 메타 분석은 이용 가능한 증거를 이해하는 데 도움이 되는 중요한 도구입니다.

개요 메타 분석은 이전 분석의 결과를 분석하여 결론을 도출하기 때문에 때때로 "분석 분석"이라고도 합니다. 그만큼

기존 연구 결과를 체계적으로 조사하고 그 연구에서 결론을 도출하기 위해 수학적 방법을 사용한다는 개념은 적어도 20세기 전반 영국 통계학자 Ronald A. Fisher의 작업으로 거슬러 올라갑니다. 그러나 메타 분석은 1977년 Mary Lee Smith와 Gene V. Glass가 상담과 심리 치료의 결과를 조사한 수백 건의 연구에 대한 메타 분석을 출판한 이후 1970년대 후반까지 일반적인 연구 기법이 되지 않았습니다. 메타 분석은 연구 질문에 대한 설명으로 시작됩니다. 예를 들어, 심리상담이나 심리치료는 받는 사람에게 유익한 효과가 있나요? 다음 단계는 연구를 수행하여 문제를 해결하는 연구를 찾는 것입니다. 이상적으로 메타 분석에는 출판 편향의 영향을 줄이기 위해 출판된 연구와 출판되지 않은 연구 모두가 포함됩니다.

프로그래밍 및 코딩의 원리

메타분석

질투의 성별 차이에 대한 메타 분석 결과는 적당한 성별 차이를 보여줍니다.

중요한 결과를 얻지 못한 연구보다 더 자주 출판됩니다. 일련의 연구가 선택되면 체계적인 절차에 따라 품질을 평가해야 합니다. 예를 들어, 메타 분석에 연구를 포함하려면 특정 연구 설계나 표본 크기가 필요합니까? 적용되는 포함 기준에 따라 메타분석 결과가 상당히 다를 수 있기 때문에 이 단계는 매우 중요합니다. 이러한 이유로 출판된 메타 분석에는 일반적으로 포함 기준, 제외된 연구 수 및 제외 이유와 함께 초기 검색 중에 찾은 모든 연구를 설명하는 표가 포함됩니다. 때로는 결론이 선택 기준에 의해 얼마나 영향을 받는지 확인하기 위해 서로 다른 포함 기준을 사용하여 동일한 연구 질문을 다루면서 두 개 이상의 메타 분석이 수행됩니다. 마지막으로 연구 결과를 정량적으로 종합한다. 종종 이는 효과 크기, 연구 결과를 포함하는 단일 숫자, 표본 크기 및 표본 변동성 측면에서 각 연구의 결과를 표현함으로써 수행됩니다. 그런 다음 모든 연구의 효과 크기를 분석하여 긍정적인 효과를 발견한 횟수와 해당 효과의 평균 크기를 확인할 수 있습니다. —Sarah E. Boslaugh, MPH, PhD 참고문헌 카드, Noel A. 사회 과학 연구를 위한 메타 분석 적용. 뉴욕: 길포드, 2012. 인쇄. 180

Chen, Ding-Geng, Karl E. Peace. R. Boca Raton과 함께 메타분석 적용: CRC, 2013. 인쇄. Cheung, Mike W. L. 메타 분석: 구조 방정식 모델링 접근법. 몰든: Wiley, 2015. 인쇄. 히긴스, 줄리안 P. T., 샐리 그린. 중재의 체계적인 검토를 위한 코크란 핸드북. 호보켄: Wiley, 2008. 인쇄. 헌트, 모튼. 과학이 재고를 확보하는 방법: 메타 분석 이야기. 뉴욕: Russell Sage Foundation, 1997. Koricheva, Julia, Jessica Gurevitch 및 Kerrie Mengersen, eds. 생태학과 진화의 메타 분석 핸드북. 프린스턴: 프린스턴 UP, 2013. 인쇄. Littell, Julia H., Jacqueline Corcoran 및 Vijayan Pillai. 체계적인 검토 및 메타 분석. 뉴욕: 옥스퍼드 UP, 2008. 인쇄. Pigott, Terri D. 메타 분석의 발전. 뉴욕: 스프링거, 2012. 인쇄. Ringquist, Evan J. 공공 관리 및 정책에 대한 메타 분석. 샌프란시스코: 조시(Jossey), 2013년. 인쇄. 슈미트, 프랭크 L., 존 E. 헌터. 메타분석 방법. 3판 로스앤젤레스: 세이지, 2015. 인쇄. 스미스, 메리 리, 진 V. 글래스. “심리치료 결과 연구의 메타분석.” 미국 심리학자 32(1977): 752–60. 인쇄. 조카이, 주세페 비온디. 네트워크 메타 분석: 혼합 치료 비교를 통한 증거 합성. Hauppage: Nova, 2014. 인쇄.

프로그래밍 및 코딩의 원리

메타컴퓨팅

메타컴퓨팅 연구 분야 컴퓨터 과학; 정보 시스템 개요 메타컴퓨팅은 컴퓨팅을 사용하여 복잡한 문제에 대한 솔루션을 연구하고 설계하는 것입니다. 이러한 문제는 대규모 컴퓨터 네트워킹 시스템을 가장 잘 설계하는 방법부터 매우 큰 숫자와 관련된 수학 연산을 수행하는 가장 효율적인 방법을 결정하는 방법까지 다양합니다. 본질적으로 메타컴퓨팅은 컴퓨팅에 관한 컴퓨팅입니다. 메타컴퓨팅을 사용하면 개별 컴퓨터는 물론 일부 슈퍼컴퓨터만으로는 처리할 수 없는 작업을 수행할 수 있습니다. 주요 용어 도메인 종속 복잡성: 계산 문제가 설정되는 상황에 특정한 요소로 인해 발생하는 복잡성입니다. 메타 복잡성: 문제에 대한 컴퓨터 분석이 문제 자체의 복잡한 성격으로 인해 복잡해질 때 발생하는 복잡성입니다. 중간 컴퓨팅: 애플리케이션 계층에서 발생하며 이후에 사용자나 다른 개입 애플리케이션에 제공될 데이터의 집중적인 처리를 포함하는 컴퓨팅입니다. 네트워킹: 서로 통신하고 계산 집약적인 작업을 공동으로 수행할 수 있도록 서로 다른 컴퓨터와 컴퓨터 네트워크를 함께 연결하는 물리적 또는 무선 연결을 사용합니다. 슈퍼컴퓨터: 기존 데스크톱 컴퓨터를 훨씬 능가하는 매우 강력한 컴퓨터입니다. 유비쿼터스 컴퓨팅: 컴퓨팅 활동이 데스크탑, 랩톱 또는 서버에 고립되지 않고 일상적인 장치에 내장된 마이크로프로세서를 사용하여 언제 어디서나 발생할 수 있는 컴퓨팅에 대한 접근 방식입니다.

메타컴퓨팅의 이유 메타컴퓨팅 분야는 1980년대에 탄생했습니다. 연구자들은 네트워크로 연결된 컴퓨터 시스템의 급속한 성장으로 인해 곧 상호 연결된 모든 시스템을 활용하는 것이 어려워질 것이라는 사실을 깨닫기 시작했습니다.

컴퓨팅 리소스. 추가 컴퓨팅 성능 계층이 개발되지 않으면 이는 리소스 낭비로 이어질 수 있습니다. 이 레이어는 계산 문제 자체에는 작동하지 않습니다. 대신 문제를 해결하는 가장 효율적인 방법을 결정합니다. 즉, 연구자들은 컴퓨터만이 관리할 수 있을 만큼 복잡한 방식으로 컴퓨터를 사용할 수 있는 가능성을 보았습니다. 이 새로운 메타컴퓨팅 계층은 연구 작업을 수행하는 중간 컴퓨팅 계층 위에 위치합니다. 이는 중간 계층이 리소스를 최대한 활용하고 가능한 한 효율적으로 계산에 접근하도록 보장합니다. 애플리케이션에 메타컴퓨팅 계층이 필요한 한 가지 이유는 복잡성이 존재하기 때문입니다. 복잡성은 해결을 더욱 어렵게 만드는 계산 문제의 요소입니다. 계산의 맥락으로 인해 도메인 의존적 복잡성이 발생합니다. 예를 들어, 화살이 목표물을 타격하는 데 필요한 힘과 방향을 계산할 때 풍속과 방향의 영향은 영역에 따라 복잡해집니다. 메타복잡성은 컴퓨팅 문제의 맥락보다는 컴퓨팅 문제의 성격으로 인해 발생하는 것입니다. 메타 복잡도의 예로는 둘 이상의 가능한 솔루션이 있는 함수가 있습니다.

메타컴퓨팅과 인터넷 메타컴퓨팅은 여러 컴퓨터 간의 네트워킹을 통해 복잡한 계산을 해결하는 데 자주 사용됩니다. 네트워크로 연결된 컴퓨터는 리소스를 결합하여 각 컴퓨터가 문제의 일부를 해결하도록 할 수 있습니다. 이러한 방식으로 이들은 개별 시스템보다 더 뛰어난 기능을 갖춘 가상 슈퍼컴퓨터가 됩니다. 이에 대한 한 가지 성공적인 예는 단백질이 접히고 서로 부착되는 방식을 연구하는 생화학자들이 수행한 프로젝트입니다. 이 주제는 일반적으로 단백질의 행동을 모델링하는 컴퓨터 프로그램을 사용하여 연구됩니다. 그러나 이러한 프로그램은 많은 시간과 컴퓨팅 성능을 소비합니다. 메타컴퓨팅을 통해 과학자들은 전 세계 사용자가 동시에 단백질 접힘에 대한 데이터를 생성하여 플레이할 수 있는 게임을 만들 수 있었습니다. 사용자는 재미 있고 쉬운 방법으로 프로젝트에 자신의 시간과 컴퓨팅 능력을 기여하면서 다양한 방법으로 모양을 맞추려고 노력합니다. 181

메타컴퓨팅

프로그래밍 및 코딩의 원리

두뇌 모방 메타컴퓨팅은 "학습"할 수 있는 컴퓨터 시스템이 필요할 때 자주 사용됩니다. 학습할 수 있는 시스템은 자체 성능을 분석하여 프로세스 및 아키텍처 컴퓨팅 요청을 조정할 수 있는 시스템입니다. 이러한 시스템은 인간 두뇌의 컴퓨팅 능력과 매우 유사한 배포판을 가지고 있습니다. 어떤 경우에는 클라이언트 에이전트의 뇌가 문제에 접근하고 과거 성능을 통해 학습하는 방식을 모방하도록 의도적으로 설계되었습니다. 이런 의미에서 메타컴퓨팅은 메타인지와 크게 다르지 않습니다. 메타컴퓨팅은 때때로 공상 과학 소설에서 인공 지능이 제기하는 위험에 대한 두려움을 불러일으킵니다. 실제로 메타메타컴퓨팅은 여러 컴퓨터가 컴퓨팅을 공유할 수 있도록 하는 시스템 설계 개념으로, 요청을 효율적으로 완료하기 위한 컴퓨팅의 또 다른 책임일 뿐입니다. 해결해야 할 컴퓨터 문제의 자아는 기계에 의한 세계 지배의 시작이 아니다. 유비쿼터스 메타컴퓨팅 인간은 컴퓨터 문제를 상상할 수 있으므로 컴퓨팅 없이는 문제를 해결하는 것이 거의 불가능할 만큼 메타컴플렉스에 대한 큰 잠재력을 지닌 또 다른 추세는 유비쿼터스 컴퓨팅, 즉 다른 컴퓨터의 도움을 컴퓨팅하는 것을 의미합니다. 메타컴퓨팅은 모든 곳에, 모든 것에 존재합니다. 이 딜레마에 대한 더 간단하고 간단한 해결책입니다. 커피메이커부터 자동차, 의류에 이르기까지 점점 더 일상적인 장치에는 인터넷에 연결된 마이크로프로세서가 장착되어 있으므로 이러한 컴퓨팅 성능과 데이터를 활용할 수 있는 잠재력이 있습니다. 예를 들어, 사람은 여러 장치를 사용하여 활동 수준, 물 섭취량, 칼로리 소모량 등 건강의 다양한 측면을 모니터링할 수 있습니다. 메타컴퓨팅은 독립적으로 수집된 이 모든 정보를 상호 연결하고 분석할 수 있습니다. 이 데이터는 잠재적인 질병을 진단하고 생활방식 변화를 권장하는 데 사용될 수 있습니다. 이미 존재하는 유비쿼터스 메타컴퓨팅의 한 형태는 다양한 스마트폰 애플리케이션이 위치 데이터를 사용하여 교통 패턴을 설명하고 예측하는 방식입니다. 한 사람의 데이터로는 교통에 대해 많은 것을 알 수 없습니다. 그러나 많은 사람의 위치, 속도, 방향이 동시에 보고되면 해당 데이터를 사용하여 특정 아침에 한 사람의 통근 시간이 얼마나 걸릴지 예측할 수 있습니다. 182

—Scott Zimmer, JD 참고문헌 Loo, Alfred Waising, ed . 비즈니스, 엔지니어링 및 과학을 위한 분산 컴퓨팅 혁신. 허쉬: 정보 과학 참고서, 2013년. 인쇄. Mallick, Pradeep Kumar, 에디션. 빅 데이터와 스마트 컴퓨팅의 통합에 대한 연구 발전 . 허쉬: 정보 과학 참고서, 2016년. 인쇄. 메이슨, 폴. 컴퓨터 검색 및 연구 이해. 시카고: 하이네만, 2015년. 인쇄. 나임, Sk. MD. Abu, Jyotirmoy Mukhopadhyay 및 S. 비. 라오, 편집. 수학과 컴퓨팅: 현재 연구 및 개발. 뉴델리: 나로사, 2013년. 인쇄.

프로그래밍 및 코딩의 원리

Metadata

Segall, Richard S., Jeffrey S. Cook, Qingyu Zhang, eds. 글로벌 슈퍼컴퓨팅 연구 및 응용. 허쉬: 정보 과학 참고서, 2015. 인쇄.

Tripathy, B. K. 및 D. P. Acharjya, eds. 지능형 컴퓨팅 연구 및 개발의 글로벌 동향. Hershey: 정보 과학 참고서, 2014. 인쇄.

메타데이터 메타데이터는 디지털 파일, 전자 기록 또는 기타 리소스의 일부로 포함된 설명적, 구조적 또는 관리적 정보입니다. 여기에는 파일이나 리소스의 제목, 작성자, 구조 등의 정보가 포함되는 경우가 많습니다. 메타데이터는 정보를 분류하고 보존하는 데 사용됩니다. 메타데이터 내에 키워드와 설명을 포함함으로써 작성자 또는 기록 보관자는 사용자가 특정 기록을 검색하고 유사한 기록을 찾을 수 있도록 합니다. 메타데이터는 전통적인 목록 작성 방법과 새로운 전자 파일 유형 및 배포 방법을 결합하므로 컴퓨터 과학 및 도서관 과학 분야 모두와 관련이 있습니다.

개요 종종 데이터에 관한 데이터로 설명되는 메타데이터는 디지털 파일에 포함되거나 데이터베이스 또는 유사한 디렉터리에 별도의 기록으로 저장되는 정보로 구성됩니다. 이 개념은 도서관과 기록 보관소에서 수세기 동안 사용된 목록 시스템과 밀접하게 관련되어 있습니다. 이 시스템은 일반적으로 제목, 작성자 및 각 목록에 대한 설명을 포함하는 물리적 또는 컴퓨터의 출현에 따라 디지털 목록 모음으로 구성됩니다. 다른 주요 사실 중에서 작품이나 인공물. 메타데이터는 사람들이 원하는 파일이나 정보를 검색하고 검색하는 데 도움을 주기 위한 것입니다. 마찬가지로, 이 데이터를 통해 기록보관자와 목록 작성자는 정보가 향후 참조를 위해 잘 정리되고 보존될 수 있도록 보장할 수 있습니다. 메타데이터는 진화하는 개념이며, 결과적으로 이 용어는 다양한 조직과 다양한 분야에서 다양한 방식으로 사용되었습니다. 넓게 보면 메타데이터는 보존되는 정보의 유형에 따라 세 가지 영역으로 나눌 수 있습니다. 전자책의 제목, 저자 등의 정보는 설명적 메타데이터로 분류되는 반면, 전자책의 구조(페이지와 장의 순서)에 관한 데이터는 구조적 메타데이터로 간주됩니다. 관리 메타데이터는 다소

좀 더 느슨하게 정의되지만 일반적으로 파일이 생성된 시기에 관한 정보를 포함합니다. 이 범주에는 파일 형식 및 크기와 관련된 기술 메타데이터의 하위 범주도 포함될 수 있습니다. 파일과 다른 파일의 관계에 대한 정보를 포함할 수 있는 보존 메타데이터 저작권 정보를 캡처하는 데 사용되는 지적 재산권 메타데이터. 다른 경우에는 기술, 보존, 지적 재산권 메타데이터가 별개의 카테고리로 간주됩니다. 디지털화되지 않은 물리적 유물 및 텍스트의 경우처럼 항목이 물리적 형태로만 존재하는 경우 해당 항목에 대한 메타데이터는 일반적으로 검색 가능한 데이터베이스에 저장됩니다. 그러나 전자 파일 및 기타 리소스를 다룰 때 작성자와 목록 작성자는 파일 내에 메타데이터를 삽입하는 경우가 많습니다. 웹사이트와 같은 HTML(하이퍼텍스트 마크업 언어) 파일에서 메타데이터는 일반적으로 특수한 HTML 태그를 사용하여 파일에 포함됩니다. 이미지, 오디오 및 비디오 파일에는 일반적으로 제작자가 추가하거나 상업적으로 배포되는 영화나 음악의 경우 스튜디오 또는 배포자가 추가하는 내장된 메타데이터가 포함될 수도 있습니다. 많은 스마트폰 카메라를 포함한 일부 카메라는 사진을 촬영한 날짜, 시간, 장소 등의 메타데이터를 생성된 각 파일에 자동으로 포함합니다. 이러한 기능으로 인해 민감한 개인 정보가 개인의 인지나 허가 없이 메타데이터 형태로 배포될 수 있다는 우려가 제기되었으며, 따라서 메타데이터의 사용은 개인 정보 보호에 관심이 있는 개인과 기관 사이에서 논쟁의 주제로 남아 있습니다. 2013년 NSA(National Security Agency) 계약자 Edward Snowden은 해당 기관이 USA PATRIOT Act(2001)의 후원에 따라 미국 시민 및 기타 사람들로부터 대량 전화 및 온라인 메타데이터를 수집, 분석 및 저장하고 있음을 밝혔습니다. 기관은 테러를 탐지하고 싸우기 위해 이러한 관행이 필요하다고 주장했지만, US 183

프로그래밍 및 코딩의 원리

마이크로프로세서

항소 법원은 2015년 5월 이러한 대량 데이터 수집 및 보관이 불법이라고 판결했습니다. 2015년 6월 버락 오바마 대통령은 NSA의 전화 메타데이터 감시에 새로운 제한을 두는 미국 자유법(USA Freedom Act)에 서명했습니다. —Joy Crelin 참고문헌 Baca, Murtha, ed. 메타데이터 소개. 2판 로스앤젤레스: 게티 연구소, 2008. 인쇄. 콕스, 마이크, 엘렌 멀더, 린다 타딕. 텔레비전에 대한 설명적 메타데이터. 벌링턴: 초점, 2006. 인쇄. García-Barriocanal, Elena 등, eds. 메타데이터 및 의미론적 연구. 뉴욕: 스프링어, 2011. 인쇄. 하이더, 필립. 정보 자원 설명: 메타데이터 생성 및 관리. 시카고: 아메르. 도서관. 협회, 2012. 인쇄.

힐만, 다이앤 I., 일레인 L. 웨스트브룩스. 실제로 메타데이터. 시카고: 아메르. 도서관. Assn., 2004. 인쇄. 국가정보표준기구. 메타데이터 이해. 베데스다: NISO P, 2004. 디지털 파일. 박정란. 메타데이터 모범 사례 및 지침. 런던: 루트리지(Routledge), 2011. 인쇄. 로버츠, 댄, 스펜서 애커먼. “에드워드 스노든이 폭로한 NSA의 대량 전화 감시는 불법이라고 판결했습니다.” 보호자. Guardian 뉴스 및 미디어, 2015년 5월 7일. 웹. 2015년 6월 29일. Smiraglia, Richard P., ed. 메타데이터: 카탈로그 작성자의 입문서. 런던: 루트리지(Routledge), 2012. 인쇄. 스타인하우어, 제니퍼, 조나단 와이즈먼. "우리를. 9/11 이후 실시된 감시는 크게 제한되었습니다.” 뉴욕 타임즈. New York Times, 2015년 6월 2일. 웹. 2015년 6월 29일.

마이크로프로세서 연구 분야 컴퓨터 공학; 시스템 수준 프로그래밍 개요 마이크로프로세서는 컴퓨터 하드웨어의 일부입니다. 이는 컴퓨터의 기본 작동에 대한 지침을 저장하고 응용 프로그램 및 프로그램의 데이터를 처리하는 전자 회로로 구성됩니다. 마이크로프로세서 기술은 1970년대에 등장하여 2010년대 들어 급속도로 발전했습니다. 대부분의 최신 마이크로프로세서는 다중 처리 "코어"를 사용합니다. 이러한 코어는 처리 작업을 나누어서 컴퓨터가 한 번에 여러 작업을 처리할 수 있도록 합니다. 주요 용어 중앙 처리 장치(CPU): 컴퓨터가 응용 프로그램과 프로그램의 데이터를 처리하고 관리하는 방법에 대한 지침을 제공하는 전자 회로입니다. 클럭 속도: 마이크로프로세서가 명령을 실행할 수 있는 속도. "클럭 속도"라고도 합니다. 184

데이터 폭: 컴퓨터 버스, 컴퓨터의 한 부분에서 다른 부분으로 데이터를 전달하는 특정 회로 및 전선을 통해 한 번에 전송할 수 있는 데이터 양을 측정한 것입니다. 미크론: 미터의 100만분의 1에 해당하는 측정 단위입니다. 일반적으로 광학 그림의 코어 너비나 마이크로칩의 선 너비를 측정하는 데 사용됩니다. 초당 백만 명령(MIPS): 컴퓨터 성능이나 컴퓨팅 리소스 비용을 평가하는 데 사용되는 측정 단위입니다. 트랜지스터: 전자 신호를 증폭하거나 컴퓨터 시스템 내에서 전자 신호를 전달하는 스위치 역할을 할 수 있는 일반적으로 실리콘으로 만들어진 컴퓨팅 구성 요소입니다.

마이크로프로세싱의 기본 마이크로프로세서는 컴퓨터의 모든 기본 기능에 전원을 공급하는 데 필요한 명령과 회로가 포함된 컴퓨터 칩입니다. 대부분의 최신 마이크로프로세서는 플레이트에 배열된 전도성 물질(보통 실리콘) 세트인 단일 집적 회로로 구성됩니다. 마이크로프로세서는 다음과 같이 설계되었습니다.

프로그래밍 및 코딩의 원리

마이크로프로세서

비트 수는 컴퓨터 메모리의 각 단위가 저장하는 크기를 나타냅니다. 1970년대부터 2010년대까지 마이크로프로세서는 동일한 기본 설계와 개념을 따르지만 처리 속도와 성능이 향상되었습니다. 1990년대와 2000년대 컴퓨팅의 표준은 32비트 마이크로프로세서였다. 최초의 64비트 프로세서는 1990년대에 출시되었습니다. 그러나 대부분의 기본 컴퓨팅 기능에는 64비트 처리가 필요하지 않기 때문에 확산 속도가 느렸습니다. 컴퓨터 성능은 초당 백만 명령(MIPS)으로 측정할 수 있습니다. MIPS 측정은 FLOPS(초당 부동 소수점 연산) 또는 MFLOPS(수백만 FLOPS)를 사용하는 측정으로 대체되었습니다. 부동 소수점 연산은 완전한 기본 계산 수행과 같은 특정 연산입니다. 마이크로프로세서는 단일 칩에 CPU의 모든 구성 요소를 포함합니다. 이를 통해 1기가플롭(GFLOP)의 새로운 장치를 갖춘 프로세서는 더 작은 장치에서 더 높은 컴퓨팅 성능을 가질 수 있습니다. 성능 등급은 초당 10억 FLOPS를 수행할 수 있습니다. 대부분의 최신 마이크로프로세서는 전자 신호를 수신하고 초당 10GFLOPS의 프로세스를 수행할 수 있습니다. 특수 컴퓨터는 중앙 처리 장치(CPU) 및 페타플롭스(petaFLOPS) 규모로 프로그래밍된 초당 수 천조 작업의 적절한 지침에 따라 들어오는 데이터를 처리할 수 있습니다. 컴퓨터 메모리에 들어있습니다. 그런 다음 마이크로프로세서의 다른 컴퓨팅 기능을 지시할 수 있는 출력을 생성합니다. 2010년대에는 마이크로프로세서가 표준이 되었습니다. 휴대용 장치부터 수퍼세서에 이르기까지 모든 컴퓨팅을 위한 최신 마이크로프로세서의 소형 구성 요소는 종종 미크론 또는 마이크로컴퓨터로 측정됩니다. 현대의 발전 중에는 100만분의 1미터에 해당하는 단위인 에터(eters)가 있습니다. 더 많은 마이크로프로세서를 갖춘 집적 회로의 개발은 일반적으로 하나의 "코어"가 아닌 선폭으로 측정됩니다. 코어는 개별 회로의 폭을 측정하는 회로입니다. 계산 및 데이터 이동용입니다. 2016년 기준으로 가장 초기의 마이크로프로세서인 1971년 Intel 4004에는 최대 18개의 코어를 갖춘 프로세서가 있었습니다. 최소 선폭은 10미크론입니다. 코어 추가 및 데이터 프로세서 통합을 위한 최신 마이크로 기술은 코어에 의해 공유되는 낮은 선폭 측정이 mias 0.022 미크론의 핵심 개발 영역이기 때문에 측정할 수 있습니다. 크로프로세서 엔지니어링. 모든 마이크로프로세서는 기본 명령어 세트로 생성됩니다. 이는 장치 내에서 처리할 수 있는 다양한 명령 마이크로프로세서 기록 및 용량을 정의합니다. 1970년대 이전에는 Intel 4004와 최초의 마이칩 발명이 기본 계산기, 프로세서, 컴퓨터 처리 장치에 탑재되어 기본적인 덧셈과 뺄셈을 위한 비디오 명령어로 처리되었습니다. 개별 컴퓨터 칩과 트랜지스터 세트. 최신 마이크로프로세서는 다양한 연산을 처리할 수 있는 트랜지스터입니다. 전자 신호를 증폭하거나 전달하는 데 도움을 줍니다. 가정용 컴퓨터 시장을 위한 마이크로프로세서의 첫 번째 다양한 브랜드와 모델은 대역폭이 다양했습니다. 이는 8비트 마이크로프로세서인 Intel 8080이 185개를 도입한 수를 측정합니다.

혼합 방법 연구(MMR)

프로세서가 초당 처리할 수 있는 데이터 비트 수입니다. 마이크로프로세서는 초당 2개 이상의 구성요소 간에 전송될 수 있는 데이터의 양을 측정하는 데이터 폭도 다릅니다. 컴퓨터의 버스는 프로세서를 다른 부품 및 컴퓨터의 주 메모리에 연결하는 부품을 나타냅니다. 컴퓨터 버스의 크기를 너비라고 합니다. 초당 전송할 수 있는 데이터의 양을 결정합니다. 컴퓨터 버스에는 메가헤르츠(MHz) 또는 기가헤르츠(GHz) 단위로 측정되는 클럭 속도가 있습니다. 다른 모든 요소가 동일할 때 데이터 폭이 더 크고 클럭 속도가 더 빠른 컴퓨터는 데이터를 더 빠르게 전송할 수 있으므로 기본 프로세스를 완료할 때 더 빠르게 실행됩니다.

마이크로프로세서 개발 인텔 공동 창립자인 고든 무어(Gordon Moore)는 컴퓨팅 하드웨어의 용량이 1970년대 이후 2년마다 두 배씩 증가했다고 언급했습니다. 이는 현재 무어의 법칙으로 알려진 관찰입니다. 그러나 마이크로프로세서의 발전은 여러 요인으로 인해 복잡해졌습니다. 이러한 요인에는 마이크로프로세서 생산 비용 상승과 전력 요구량을 줄이는 능력이 프로세서 용량과 같은 속도로 성장하지 않았다는 사실이 포함됩니다. 따라서 엔지니어가 전력 사용량을 줄이지 않으면 마이크로프로세서 기술의 크기와 처리 속도에 한계가 있습니다. 예를 들어, 미국의 데이터 센터는 2013년에 약 910억 킬로와트시의 전력을 사용했습니다. 이는 각 데이터 센터에서 생성된 전력량과 동일합니다.

프로그래밍 및 코딩의 원리

1년에 34개의 대형 석탄 화력 발전소가 건설됩니다. 컴퓨터 엔지니어들은 탄소 나노튜브, 생물정보학, 양자 컴퓨팅 프로세서 형태의 실리콘 대안을 포함하여 이러한 문제를 해결하는 방법을 모색하고 있습니다. —Micah L. Issitt 참고문헌 Ambinder, Marc. "컴퓨터 기술의 발전을 실제로 제한하는 것은 무엇입니까?" 주. 2014년 9월 2일 주간. 웹. 2016년 3월 4일. Borkar, Shekhar 및 Andrew A. Chien. “마이크로프로세서의 미래.” ACM의 통신. ACM, 2011년 5월. 웹. 2016년 3월 3일. 피에르 델포지. “미국의 데이터 센터는 점점 늘어나는 에너지를 소비하고 낭비하고 있습니다.” NRDC. 천연자원보호협의회, 2015년 2월 6일. 웹. 2016년 3월 17일. 로버트 맥밀런(McMillan). “IBM은 실리콘 마이크로칩이 쓸모없어지고 있다는 데 30억 달러를 걸었습니다.” 열광한. Condé Nast, 2014년 7월 9일. 웹. 2016년 3월 10일. "마이크로프로세서: 커리큘럼 살펴보기." 인텔. 인텔사, 2015. 웹. 2016년 3월 11일. “마이크로프로세서.” MIT 기술 검토. MIT 기술 리뷰, 2016. 웹. 2016년 3월 11일. Wood, Lamont. “40대의 8080 칩: 강력한 마이크로프로세서의 다음 단계는 무엇일까요?” 컴퓨터월드. Computerworld, 2015년 1월 8일. 웹. 2016년 3월 12일.

혼합 방법 연구(MMR) 다중 방법론이라고도 불리는 혼합 방법 연구(MMR)는 질적 및 정량적 연구 방법의 장점을 활용하여 개별 접근 방식이 자체적으로 제공할 수 있는 것보다 주제를 더 잘 이해하는 연구 문제에 대한 접근 방식입니다. 이는 질적 및 양적 데이터가 각각 문제 이해의 다양한 측면에 기여할 수 있다는 점을 인식하고 전체적인 방법론적 접근 방식 내에서 두 가지 접근 방식을 통합합니다. 문제를 하나의 관점에서만 보면 상황의 한 측면만 보일 것입니다.

오해의 소지가 있을 수 있습니다. MMR을 사용하면 연구 문제를 다양한 관점에서 볼 수 있어 문제에 대한 보다 명확한 그림을 제공할 수 있습니다.

개요 양적 연구와 질적 연구 사이에는 종종 구분선이 있습니다. 정량적 연구는 연구의 실증주의적 존재론을 활용하는 반면, 질적 연구는 해석적, 비판적, 구성주의적 연구 전통을 더 많이 활용한다고 가정하는 경우가 많습니다. 연구 분야 내에서는 다양한 의견이 존재합니다.

프로그래밍 및 코딩의 원리

혼합 방법 연구(MMR)

웹 기반 컴퓨터 지원 정성 데이터 분석 소프트웨어(CAQDAS)에서 정성 분석 및 혼합 방법 연구를 위한 정량 데이터 통합.

연구에 대한 이러한 접근 방식에 관한 한 토론을 진행합니다. 어떤 사람들은 이를 정반대라고 생각하는 반면, 다른 사람들은 실용적인 접근 방식을 통해 다양한 기술이 함께 작동할 수 있다고 생각합니다. 양적 연구와 질적 연구의 구분으로 인해 Charles Teddlie와 Abbas Tashakkori는 MMR을 "제3의 방법론적 운동"으로 규정했습니다. 다양한 방법론적 접근 방식의 데이터를 사용하는 것을 삼각 측량이라고 합니다. 삼각측량에는 결과를 교차 확인하기 위해 두 가지 이상의 방법을 사용하는 작업이 포함됩니다. 서로 다른 연구 방법론이 대체로 유사한 결과를 낳는다면 연구의 강점이 강화된다는 생각입니다. 서로 다른 연구 방법의 결과가 상충되는 결과를 낳는 경우, 연구자는 사용된 방법이 결과에 어떻게 영향을 미쳤는지 수정하거나 문제를 재구성해야 하는지 여부를 결정할 기회를 갖습니다. 삼각 측량에는 여러 연구자, 문제에 대한 여러 이론적 접근 방식, 동일한 문제에 대한 다양한 경험적 데이터를 사용하는 것도 포함될 수 있습니다. 삼각측량이 결과의 수렴에 초점을 맞추는 반면, 다른 방법이 적용되는 경우도 마찬가지로 흥미롭습니다.

서로 다르거나 다른 결과를 낳습니다. 이는 그 자체로 조사 중인 문제에 대한 흥미로운 통찰력을 얻을 수 있습니다. MMR은 단일 방법 사용의 약점을 보완하는 것을 목표로 하지만 이 기술에는 몇 가지 과제가 있습니다. 종종 양적, 질적 연구자들은 자신의 연구 접근 방식과 관련하여 도전적이고 반대되며 반대되는 인식론을 발전시켜 왔습니다. MMR 지지자들은 실용주의 연구 패러다임 내에서 틀을 잡은 방법론적 절충주의 개념으로 이에 맞서 왔습니다. MMR 지지자들은 고정된 존재론적 관점을 채택하기보다는 패러다임 다원주의를 주장합니다. 즉, 문제의 다양한 측면에 적합한 연구 패러다임을 선택하는 것입니다. MMR의 실질적인 과제에는 연구원이 다양한 방법을 유능하게 적용할 수 있도록 광범위한 기술 세트를 보유하거나 공통 답변을 찾기 위해 다양한 방법을 배포할 수 있는 조직화된 연구팀의 일원으로 일해야 한다는 것이 포함됩니다. . —Gavin D. J. Harper, 석사, MIET

187

프로그래밍 및 코딩의 원리

모바일 앱

참고문헌 Bergman, Manfred Max. 혼합 방법 연구의 발전: 이론 및 응용. 사우전드 오크스: 세이지, 2008, 인쇄. Cresswell, John, W. 연구 설계: 정성적, 정량적 및 혼합 방법 접근 방식. Thousand Oaks: Sage, 2013. Cresswell, John, W. 및 Vicki Lynn Plano Clark 인쇄. 혼합 방법 연구 설계 및 수행 Thousand Oaks: Sage, 2010. Print Edmonds, W. Alex 및 Thomas D. Kennedy. 연구 설계에 적용되는 참조 가이드: 정량적, 정성적 및 혼합 방법 Thousand Oaks: Sage, 2012. 인쇄. 존슨, 버크, Sharlene Nagy Hesse-Biber. 다중 방법 및 혼합 방법 연구 조사에 대한 옥스포드 핸드북. 옥스퍼드: 옥스포드 UP, 2015. eBook 컬렉션(EBSCOhost). 편물. 2015년 6월 30일. ______, Anthony Onwuegbuzie. “혼합 방법 연구: 시간이 걸리는 연구 패러다임

오다." 교육연구자 33.7(2004): 14–26. 인쇄. ______, Anthony Onwuegbuzie, Lisa A. Turner. “혼합 방법 연구의 정의를 향하여.” 혼합 방법 연구 저널 1.2 (2007): 112-33. 인쇄. 리치, 낸시 L., 앤서니 Onwuegbuzie. “혼합 방법 연구 설계의 유형.” 품질 및 수량 43.2(2009): 265–75. 인쇄. Schensul, Stephen L., Jean J. Schensul 및 Margaret D. Le Compte. 민족지학적 연구 시작: 혼합 방법 접근. 랜햄: 알타미라(AltaMira), 2012. 인쇄. 테들리, 찰스, 압바스 타샤코리. 혼합 방법 연구의 기초: 사회 및 행동 과학에 정량적 및 질적 접근 방식을 통합합니다. 사우전드 오크스: 세이지, 2008, 인쇄. ______. “혼합 방법 연구: 신흥 분야의 현대적 문제.” SAGE 질적 연구 핸드북. 4판 Eds. 노먼 K. 덴진과 이보나 S. 노먼. 천 오크스: 세이지, 2011. 285-300. 인쇄.

모바일 앱 연구 분야 응용; 모바일 플랫폼 개요 모바일 앱은 스마트폰, 태블릿 및 기타 모바일 장치에서 실행되도록 설계된 프로그램입니다. 이러한 앱은 일반적으로 일기 예보를 보고하거나 탐색을 위해 지도를 표시하는 등 특정 작업을 수행합니다. 모바일 장치는 작은 화면과 제한된 입력 옵션으로 인해 특별한 요구 사항을 갖습니다. 게다가 터치 스크린은 일반적으로 모바일 장치에 정보를 입력하는 유일한 방법입니다. 프로그래머가 앱을 만들려는 모바일 플랫폼을 이해하려면 특별한 지식이 필요합니다. 주요 용어 애플리케이션: 컴퓨터나 모바일 장치의 작동에 필수적이지 않은 특정 기능을 수행하는 프로그램. 흔히 '앱'이라고 합니다. 188

에뮬레이터: 모바일 장치의 기능을 모방하고 개발 중인 앱을 테스트하는 데 사용되는 프로그램입니다. 모바일 웹사이트: 모바일 장치에서 사용하도록 최적화된 웹사이트로, 일반적으로 터치 스크린용으로 설계된 단순화된 인터페이스를 갖추고 있습니다. 플랫폼: 앱이 실행되는 모바일 장치의 하드웨어 및 시스템 소프트웨어입니다. 시스템 소프트웨어: 모바일 장치의 프로그램이 작동할 수 있도록 하는 운영 체제입니다. 유틸리티 프로그램: 시간 표시, 사용 가능한 네트워크 연결 확인 등 컴퓨터나 모바일 장치에서 기본 기능을 수행하는 앱입니다.

모바일 소프트웨어 유형 모바일 애플리케이션 또는 앱은 스마트폰, 태블릿 및 기타 모바일 장치에서 실행되도록 특별히 설계된 컴퓨터 프로그램입니다. 앱은 특정 플랫폼에 맞게 설계되어야 합니다. 모바일 플랫폼은 모바일 장치가 기반으로 하는 하드웨어 및 시스템 소프트웨어입니다.

프로그래밍 및 코딩의 원리

모바일 앱

전체 장치 액세스(매우 빠른 처리 속도, 앱 스토어에서 사용 가능)

토종의

잡종

대규모 플랫폼 요구 사항

플랫폼 요구 사항이 거의 없음

(높은 개발 비용)

(낮은 개발 비용)

HTML5

부분적 장치 액세스(보통의 처리 속도, 앱 스토어에서는 사용할 수 없음) 기본 모바일 앱과 하이브리드 앱은 표준 웹 프로그래밍에서는 사용할 수 없는 일부 기능을 제공하며 기존 컴퓨터 소프트웨어에서 사용할 수 있는 것보다 빠른 연결을 제공합니다.

운영합니다. 가장 널리 사용되는 모바일 플랫폼으로는 Google의 Android, Apple의 iOS, Microsoft의 Windows가 있습니다. 모바일 장치는 다양한 소프트웨어를 지원합니다. 가장 기본적인 수준에서 플랫폼의 시스템 소프트웨어에는 운영 체제(OS)가 포함됩니다. OS는 앱을 포함하여 해당 장치에서 실행되는 다른 모든 프로그램을 지원합니다. OS 외에도 스마트폰과 태블릿에는 기본 기능을 관리하는 다양한 유틸리티 프로그램 또는 유틸리티가 사전 설치되어 있습니다. 유틸리티의 예로는 시계와 달력, 사진 저장 공간, 보안 프로그램, 클립보드 관리자 등이 있습니다. 유틸리티는 OS 기능에 필수적인 것은 아니지만 다른 프로그램을 지원하는 주요 작업을 수행합니다. 그러나 모바일 장치의 진정한 힘은 실행할 수 있는 다양한 모바일 앱에서 비롯됩니다. 다양한 모바일 장치용 앱 스토어

다운로드할 수 있는 수십만 개의 다양한 앱이 포함되어 있습니다. 각 앱은 다양한 사용자 요구를 염두에 두고 설계되었습니다. 대부분은 이런저런 종류의 게임입니다. 또한 화상 채팅, 내비게이션, 소셜 네트워킹, 파일 공유 및 저장, 뱅킹 등 상상할 수 있는 모든 목적을 위한 수많은 앱이 있습니다. 모바일 앱 개발자는 다양한 접근 방식을 사용하여 소프트웨어를 설계합니다. 어떤 경우에는 앱이 작은 터치 스크린에 사용하도록 최적화된 모바일 웹사이트에 불과할 수도 있습니다. 예를 들어 Facebook 앱은 기본적으로 웹사이트와 동일한 기능을 제공하지만 더 쉽게 업로드할 수 있도록 기기의 사진 저장소와 통합할 수 있습니다. 다른 모바일 앱은 해당 앱이 실행되는 모바일 장치용으로 특별히 개발되었습니다. 프로그래머는 특정 모바일 플랫폼에 맞게 앱을 프로그래밍해야 합니다. 앱 189

모바일 앱

개발자는 일반적으로 모바일 장치의 가상 버전에서 앱을 테스트하기 위해 특수 소프트웨어 개발 키트와 에뮬레이터를 사용합니다. 에뮬레이터는 모바일 앱을 쉽게 테스트하는 방법을 제공합니다. 에뮬레이터는 앱이 실행될 때 자세한 출력을 생성하므로 개발자는 이 데이터를 사용하여 앱 문제를 진단할 수 있습니다.

앱 경제 모바일 앱은 수십억 달러 규모의 비즈니스로 발전했습니다. 모바일 장치가 출현하기 전에는 개인용 컴퓨터에서 사용하기 위해 소프트웨어가 개발되었으며 소프트웨어 패키지는 종종 수백 달러에 판매되었습니다. 모바일 앱 시장은 매우 다른 모델을 채택했습니다. 많은 비용을 들여 다양한 기능을 제공하려는 앱을 만들기보다는, 한 가지만 잘하고 적은 비용을 청구하는 앱을 만드는 것이 목표입니다. 많은 앱을 무료로 다운로드할 수 있으며, 유료 앱의 가격은 일반적으로 99센트에서 몇 달러 사이입니다. 이러한 저렴한 가격에도 불구하고 성공적인 앱 개발자는 여전히 많은 돈을 벌 수 있습니다. 이는 부분적으로 스마트폰과 태블릿 사용자가 많기 때문입니다. 모바일 앱은 배포 비용도 저렴합니다. 과거에는 소프트웨어가 플로피 디스크나 CD-ROM과 같은 물리적 매체로 판매되었습니다. 이러한 소프트웨어는 소프트웨어 개발자의 비용으로 포장되어 소매업체에 배송되어야 했습니다. 모바일 앱을 사용하면 앱이 플랫폼의 앱 스토어에 온라인으로 저장되고 사용자가 다운로드하기 때문에 이러한 간접 비용이 없습니다. 앱 개발에 소요되는 시간과 노력을 제외하고 개발자가 부담해야 하는 유일한 재정적 비용은 플랫폼 앱 스토어에 대한 연간 등록비와 플랫폼에서 청구하는 수익의 일부입니다. 앱 스토어는 일반적으로 앱에 악성 코드가 포함되어 있지 않은지, 지적 재산권을 침해하는지, 허위 광고 주장이 없는지 확인하기 위해 앱을 조사합니다. 앱 개발자는 다운로드 비용, 인앱 광고, 인앱 구매 등을 통해 수익을 얻을 수 있습니다. 예상치 못한 인기를 얻은 앱을 만들어 명성과 부를 얻은 개발자가 여러 명 있었습니다. 모바일 앱과 사회 변화 모바일 앱은 오락과 주의를 분산시키는 것 이상의 역할을 할 수 있습니다. 예를 들어, Twitter는 사용자가 짧은 메시지를 게시하고 읽을 수 있는 마이크로블로깅 앱입니다.

190

프로그래밍 및 코딩의 원리

다른 사람의 업데이트. 트위터는 2011년 아랍의 봄과 같은 사회 운동에서 중요한 역할을 해왔습니다. 다른 미디어에 장애가 있어도 계속 작동하는 통신 기술에 의존하기 때문에 트위터 앱을 사용하면 대규모 재난과 정치적 상황에서도 사람들이 소통할 수 있었습니다. 격변. 다른 앱을 사용하면 사용자가 환경 피해나 움푹 들어간 곳을 보고하고 정부 기관이 수정할 수 있도록 할 수 있습니다.

플랫폼 잠금 모바일 앱은 특정 모바일 플랫폼용으로 설계되어야 합니다. 때때로 개발자는 각 주요 플랫폼에 대한 앱 버전을 만듭니다. 그러나 다른 경우에는 개발자가 단일 플랫폼에서만 실행할 앱을 만듭니다. 이로 인해 다른 모바일 플랫폼 사용자는 앱을 사용할 수 없습니다. 인기 있는 앱의 경우, 이는 자신이 선택한 플랫폼에서 원하는 앱을 모두 사용할 수 있기를 원하는 사람들 사이에서 좌절감을 유발할 수 있습니다. —Scott Zimmer, JD 참고문헌 Banga, Cameron, Josh Weinhold. 필수 모바일 상호 작용 디자인: 모바일 앱의 인터페이스 디자인 완성. 어퍼 새들 리버: Addison-Wesley, 2014. 인쇄. Glaser, J. D. 모바일 앱을 위한 보안 개발: PHP 및 JavaScript를 사용하여 보안 모바일 애플리케이션을 설계하고 코딩하는 방법. 보카 레이톤: CRC, 2015. 인쇄. Iversen, Jakob, Michael Eierman. 모바일 앱 개발 학습: iOS 및 Android를 사용하여 앱을 구축하기 위한 실습 가이드입니다. 어퍼 새들 리버: Addison-Wesley, 2014. 인쇄. 밀러, 찰스, 아론 도어링. 모바일 학습의 새로운 환경: 앱 기반 세계에서 교육 재설계. 뉴욕: 루트리지, 2014. 인쇄. 살츠, 페기 앤, 제니퍼 모란츠. 모바일 앱에 대한 모든 가이드: 귀하의 비즈니스를 위한 저렴한 모바일 앱 개발을 위한 실용 가이드. 에이번: 아담스 미디어, 2013. 인쇄. 다카하시, 딘. “앱 경제는 2020년까지 1,010억 달러로 두 배 성장할 수 있습니다.” VB. Venture Beat, 2016년 2월 10일. 웹. 2016년 3월 11일.

프로그래밍 및 코딩의 원리

모바일 기술

모바일 기술 모바일 기술은 스마트폰, 태블릿과 같은 모바일 장치를 구동하는 기술입니다. 모바일 기술의 범주에는 프로세서 및 메모리 카드와 같은 모바일 장치의 하드웨어 요소와 이러한 장치가 작동할 수 있도록 하는 운영 체제 및 기타 소프트웨어가 모두 포함됩니다. 모바일 장치에서 전화를 걸고, 문자 메시지를 보내고, 인터넷에 연결할 수 있게 해주는 다양한 네트워크도 이 기술의 일부로 간주될 수 있습니다. 모바일 기술은 수년에 걸쳐 크게 발전했으며 수많은 기업과 개인이 모바일 기술을 사용하는 새로운 방법을 모색함에 따라 계속해서 발전할 것으로 예상됩니다.

개요 모바일 기술은 수많은 기술을 투입해야 하는 지속적으로 성장하는 분야입니다.

혁신은 대중의 손에 달려있습니다. 전화를 걸거나, 인터넷을 탐색하거나, 비디오 게임을 할 때 개인은 실내에서 한 곳에 머물러야 했지만, 모바일 기술을 통해 수많은 소비자가 집 밖에서도 그러한 활동을 수행할 수 있게 되었습니다. 통신 및 미디어 소비를 촉진하는 것 외에도 모바일 기술을 통해 소비자는 무선 또는 모바일 인터넷 서비스가 제공되는 곳이라면 어디에서나 쇼핑, 은행 업무, 구직, 교통 또는 숙박 예약과 같은 일상적인 작업을 수행할 수 있습니다. 모바일 기술의 범주는 매우 광범위하며 다양한 유형의 장치는 물론 해당 장치의 하드웨어 구성 요소와 장치가 작동하는 데 필요한 소프트웨어 및 네트워크도 포함합니다. 휴대폰은 가장 일반적인 형태의 모바일 기기이며,

스마트폰은 웹 검색, 이메일 액세스, 비디오 재생, 문서 편집, 파일 전송, 이미지 편집 및 기타 여러 작업을 수행할 수 있는 모바일 컴퓨팅 도구입니다.

191

프로그래밍 및 코딩의 원리

모바일 기술

GPS 내비게이션 시스템을 갖춘 교토 택시.

여러 카테고리로 나누어집니다. 전통적인 휴대폰은 전화기 역할을 하며 문자 메시지 기능도 갖고 있는 반면, 피처폰은 게임을 하고, 음악을 듣고, 이메일을 보낼 수 있는 등 더 넓은 범위의 기능을 제공합니다. 스마트폰을 사용하면 광범위한 인터넷 사용이 가능하며 사용자에게 특정 기능에 사용되는 애플리케이션이나 앱을 다운로드할 수 있는 기능도 제공됩니다. 태블릿은 휴대성이 뛰어나고 휴대폰을 뛰어넘는 모바일 컴퓨팅 수준을 허용하므로 모바일 기술의 한 형태로 간주되는 경우가 많습니다. 사용자가 모바일 기술을 통해 디지털 텍스트를 다운로드하고 읽을 수 있는 전자책 리더는 태블릿 컴퓨터의 하위 집합입니다. 고해상도 디스플레이, 작지만 강력한 카메라, 소형 마이크 ​​및 스피커, 외부 보호 케이스 등 다양한 구성 요소가 모바일 장치의 내부 및 외부 작동을 형성합니다. 또한 모바일 장치 내부에는 프로세서, 메모리 카드, 무선 연결 장치 및 모바일 사용에 특별히 최적화된 기타 구성 요소가 있습니다. 모바일 장치에서 사용되는 운영 체제는 모바일 기술의 핵심 측면입니다. 이러한 시스템에는 Android, Windows Phone 및 iOS가 포함되며, iOS는 Apple에서 생산한 장치에서만 사용할 수 있습니다. 많은 모바일 장치를 통해 사용자는 게임, 소셜 네트워킹, 쇼핑, 엔터테인먼트 등 다양한 목적으로 앱을 다운로드할 수 있습니다. 192

모바일 장치가 전화를 걸고, 문자 메시지를 보내고, 앱을 다운로드하고, 이메일을 확인하고, 인터넷을 탐색하는 데 사용하는 네트워크는 모바일 기술의 중요한 요소입니다. 대부분의 모바일 장치는 표준 무선 인터넷 네트워크에 연결할 수 있지만 이러한 네트워크를 항상 사용할 수 있는 것은 아니며, 특히 사용자가 이동 중인 경우에는 더욱 그렇습니다. 그러나 고속 모바일 광대역 통신 네트워크는 여러 위치에서 사용할 수 있으므로 최신 통신 표준을 갖춘 모바일 장치를 가진 사람들은 위치에 관계없이 모든 기능을 사용할 수 있습니다. —조이 크렐린

참고문헌 Gleason, 앤 휘트니. 모든 도서관을 위한 모바일 기술. Lanham: Rowman, 2015. eBook 컬렉션(EBSCOhost). 편물. 2015년 7월 1일. 고긴, 제라드. 휴대폰 문화: 일상생활 속의 모바일 기술. 뉴욕: Routledge, 2006. 인쇄. Grant, August E. 및 Jennifer H. Meadows, eds. 통신 기술 업데이트 및 기본 사항. 13판 월섬: 초점, 2012. 인쇄. 페레스, 앙드레. 모바일 네트워크 아키텍처. 호보켄: 와일리, 2012. 인쇄.

프로그래밍 및 코딩의 원리

마더보드

Peters, Thomas A., Lori Bell, eds. 휴대용 도서관: 모바일 기술과 사서. 산타바바라: ABC-CLIO, 2013. 인쇄. Santos, Raul Aquino 및 Arthur Edwards Block, eds. 임베디드 시스템 및 무선 기술. 보카 레이톤: CRC, 2012. 인쇄.

소터, 마틴. GSM에서 LTE까지: 모바일 네트워크 및 모바일 광대역 소개. 호보켄: Wiley, 2011. 인쇄. Wilken, Rowan, Gerard Goggin, 편집. 모바일 기술과 장소. 뉴욕: 루트리지, 2012. 인쇄. Zelkowitz, 마빈 V., 에디션. 인터넷과 모바일 기술. 벌링턴: 학술, 2011. 인쇄.

마더보드 학습 분야 컴퓨터 공학; 정보 기술 개요 마더보드는 컴퓨터 내부의 주요 인쇄 회로 기판입니다. 여기에는 RAM(Random Access Memory), 비디오 카드, 사운드 카드 및 기타 장치와 같은 다른 컴퓨터 구성 요소를 지원하는 두 가지 주요 기능이 있습니다. 다양한 구성 요소를 고정하는 슬롯에 연결된 마더보드에 에칭된 회로를 사용하여 이러한 장치가 컴퓨터의 다른 부분과 통신할 수 있도록 합니다. 주요 용어 코어 전압: 전원 공급 장치에서 컴퓨터 처리 장치로 전달되는 전력량. 누화: 두 회로가 너무 가까워서 발생하는 한 회로의 신호와 다른 회로의 신호 간섭. 인쇄 회로 기판: 수많은 선이 에칭되고 구멍이 뚫린 유리 섬유 단열재로 보호된 평평한 구리 시트로, 노출된 구리 트레이스를 통해 다양한 전자 부품을 서로 연결하고 서로 통신할 수 있으며 외부 부품과 통신할 수 있습니다. 트레이스 임피던스: 회로 기판에 에칭된 트레이스를 통과하는 전기 신호에 대한 고유 저항의 측정값입니다. 튜닝: 성능을 향상시키기 위해 컴퓨터 설정을 세밀하게 조정하는 프로세스입니다.

마더보드의 진화 컴퓨터의 마더보드는 기능에 부수적인 컴퓨터의 다른 모든 구성 요소를 지원하는 다층 인쇄 회로 기판(PCB)입니다. 즉, 다른 작은 회로 기판의 "어머니"와 같습니다. 이는 컴퓨터의 다른 모든 부분에 직접 또는 간접적으로 연결됩니다. 컴퓨터 초기에 마더보드는 전선으로 연결되거나 백플레인(프레임에 장착된 상호 연결된 소켓 세트)에 연결되어 연결된 여러 PCB로 구성되었습니다. 중앙 처리 장치(CPU) 및 시스템 메모리와 같은 각 필수 컴퓨터 구성 요소에는 다양한 부품을 수용하기 위해 하나 이상의 PCB가 필요했습니다. 마이크로프로세서의 출현과 개선으로 컴퓨터 구성 요소의 크기가 급격히 줄어들었습니다. 1960년대 후반의 CPU는 PCB에 부착된 수많은 집적 회로(IC) 칩으로 구성되었지만, 1971년에 Intel은 단일 칩에 맞는 CPU를 생산했습니다. 기타 필수 및 주변 구성 요소도 각각 단일 칩에 수용할 수 있습니다. 결과적으로 마더보드는 크기가 줄어들었음에도 불구하고 더 많은 수의 구성 요소를 지원할 수 있었습니다. 마우스, 키보드, 오디오 지원과 같은 더 많은 주변 기능을 지원하기 위해 소켓이 추가되었습니다. 이러한 기능 통합은 비용 효율성을 높였을 뿐만 아니라 컴퓨터 실행 속도를 높이는 데도 도움이 되었습니다. 컴퓨터의 한 지점에서 다른 지점으로 정보를 보내는 데는 시간이 걸립니다. 마더보드에서 주변 장치로 직접 정보를 보내는 것이 백플레인을 통해 CPU PCB에서 메모리 PCB로, 그리고 거기에서 장치로 정보를 보내는 것보다 훨씬 빠릅니다. 193

프로그래밍 및 코딩의 원리

마더보드

마더보드는 컴퓨터의 주요 인쇄 회로 기판(PCB)입니다. 로직 보드 또는 메인보드라고도 하며 CPU를 메모리 및 주변 장치에 연결합니다. 여기에는 하드 드라이브, 사운드 카드, 네트워크 카드, 비디오 카드 및 기타 구성 요소가 포함되는 경우가 많습니다.

마더보드 디자인 마더보드를 설계하는 것은 매우 어렵습니다. 주요 문제는 상대적으로 작은 영역에 매우 작은 회로가 많이 존재하기 때문에 발생합니다. 첫 번째 고려 사항 중 하나는 마더보드의 다양한 레이어에 구성 요소를 가장 잘 배치하는 방법입니다. 일반적인 PCB는 유리섬유 시트로 분리된 구리 시트로 구성됩니다. 유리 섬유는 구리 층을 서로 절연합니다. 대부분의 마더보드는 6~12개의 레이어로 구성되지만 더 많거나 적은 레이어도 가능합니다. 특정 레이어에는 일반적으로 특정 기능이 있습니다. 바깥쪽 레이어는 신호 레이어이고 194개 레이어는

다른 레이어는 전압, 접지 반환을 전달하거나 메모리, 프로세서 및 입력/출력 데이터를 전달합니다. 각 층을 단열하는 유리섬유에 에칭된 선을 통해 친숙한 구리선 또는 흔적이 비쳐보일 수 있습니다. 이 트레이스는 전기 신호를 전달합니다. 대부분의 마더보드 설계자는 컴퓨터 시뮬레이션을 사용하여 개별 트레이스의 최적 길이, 너비 및 경로를 결정합니다. 예를 들어, 마더보드에는 일정하게 유지되어야 하는 목표 추적 임피던스 값(종종 50~60옴)이 있습니다. 트레이스를 넓히면 임피던스가 감소하고, 좁히면 임피던스가 커집니다. 또 다른 문제는 높은 수준의 회로 밀도로 인한 누화입니다. 이런 일이 발생하면 간섭이 줄어들도록 트레이스를 더 잘 절연하거나 더 멀리 이동해야 합니다. 일부 정교한 컴퓨터 사용자는 마더보드 구성 요소를 추가 또는 제거하거나, 전원 설정을 조정하거나, CPU를 "오버클러킹"하여 더 빠르게 실행하는 등 시스템 조정을 시도할 수 있습니다. 오버클러킹은 일반적으로 코어 전압을 높여야 하기 때문에 위험할 수 있습니다. 대부분의 마더보드에는 코어 전압이 CPU 및 기타 프로세서의 권장 전압을 초과하지 않도록 보장하는 전압 조정기가 내장되어 있습니다. 그러나 일부 규제 기관에서는 사용자가 설정을 조정할 수 있도록 허용합니다. 일반적으로 권장 전압과 최대 안전 전압 사이에 완충 영역이 있지만 전압을 너무 높게 설정하면 프로세서가 과열되거나 심지어 소진될 수도 있습니다.

폼 팩터 마더보드는 어느 정도 표준화되어 있지만 여전히 크기와 모양이 다양합니다. 주요 차이점은 노트북용 마더보드와 데스크탑용 마더보드입니다. 이러한 범주 중 하나에 맞게 설계된 마더보드는 일반적으로 다른 범주에 맞지 않습니다. 대부분의 대형 데스크탑 컴퓨터 케이스에는 거의 모든 데스크탑 마더보드 모델을 수용할 수 있는 충분한 공간이 있지만, 소형 마더보드는 나중에 주변 장치를 추가할 수 있도록 더 많은 공간을 남겨둡니다.

프로그래밍 및 코딩의 원리

BIOS 마더보드에는 읽기 전용 메모리(ROM) 칩에 일부 기본 소프트웨어가 내장되어 있습니다. 이 소프트웨어는 "기본 입력/출력 시스템"을 의미하는 BIOS라고 합니다. 전원 버튼을 누르면 BIOS는 운영 체제를 찾아 실행하기 위해 활성화할 장치를 컴퓨터에 알려줍니다. 컴퓨터가 오작동하는 경우 BIOS를 사용하여 시스템이 시작되는 동안 마더보드의 작동 방식을 변경해야 할 수도 있습니다. —Scott Zimmer, JD 참고문헌 Andrews, Jean. A+ 하드웨어 가이드: 관리, 유지 관리 및 문제 해결. 6판 보스턴: 코스 기술., 2014. 인쇄.

다중 처리 운영 체제(OS)

앤드류스, 진. PC 관리 및 유지 관리에 대한 A+ 가이드. 8판. 보스턴: 코스 기술., 2014. 인쇄. 쿠퍼, 스티븐. “마더보드 설계 프로세스.” MBReview.com. 저자, 2009년 9월 4일. 웹. 2016년 3월 14일. Englander, Irv. 컴퓨터 하드웨어, 시스템 소프트웨어 및 네트워킹의 아키텍처: 정보 기술 접근 ​​방식. 5판 호보켄: 와일리, 2014. 인쇄. 뮬러, 스캇. PC 업그레이드 및 수리. 22판 인디애나폴리스: Que, 2015. 인쇄. Roberts, Richard M. 컴퓨터 서비스 및 수리. 4판 Tinley Park: Goodheart, 2015. 인쇄. 화이트, 론. 컴퓨터 작동 방식: 기술의 진화. Illus. 팀 다운스. 10판 인디애나폴리스: Que, 2015. 인쇄.

멀티프로세싱 운영 체제(OS) 학습 분야 컴퓨터 공학; 운영 체제 개요 멀티프로세싱 운영 체제(OS)는 두 개 이상의 중앙 처리 장치(CPU)가 컴퓨터의 기능을 제어하는 ​​운영 체제입니다. 각 CPU에는 OS 복사본이 포함되어 있으며 이러한 복사본은 작업을 조정하기 위해 서로 통신합니다. 다중 프로세서를 사용하면 작업을 프로세서 간에 나눌 수 있으므로 컴퓨터가 계산을 더 빠르게 수행할 수 있습니다. 주요 용어 중앙 처리 장치(CPU): 때때로 컴퓨터의 "두뇌"로 설명되며, 컴퓨터의 주요 작업과 계산을 수행하는 회로 모음입니다. 통신 아키텍처: 컴퓨터의 여러 부분 간에 신호를 신속하고 효율적으로 전송하는 데 도움이 되는 컴퓨터 구성 요소 및 회로 설계. 병렬 처리: 동시에 작동하는 여러 프로세서 간에 작업을 분할하여 작업을 더 빨리 완료하는 것입니다.

프로세서 결합: 더 빠르게 계산을 수행하기 위해 함께 작동할 수 있도록 컴퓨터 내에서 여러 프로세서를 연결하는 것입니다. 이는 프로세서가 서로 의존하는 정도에 따라 느슨하거나 빡빡한 특성을 가질 수 있습니다. 프로세서 대칭: 여러 프로세서가 입력 및 출력 장치에 대한 액세스를 동등하게 공유하고 단일 운영 체제에 의해 제어됩니다.

멀티프로세싱과 단일 프로세서 운영 체제 비교 멀티프로세싱 운영 체제(OS)는 단일 프로세서 OS와 동일한 기능을 수행합니다. 사용자가 시작한 작업을 완료하기 위해 작업 및 계산을 예약하고 모니터링합니다. 차이점은 다중 처리 OS가 작업을 다양한 하위 작업으로 나눈 다음 이러한 하위 작업을 다른 중앙 처리 장치(CPU)에 할당한다는 것입니다. 멀티프로세싱은 이를 달성하기 위해 고유한 통신 아키텍처를 사용합니다. 다중 처리 OS에는 프로세서가 작업을 예약하고 완료를 조정할 때 서로 상호 작용할 수 있는 메커니즘이 필요합니다. 다중 처리 OS는 병렬 처리에 의존하기 때문에 작업에 관련된 각 프로세서는 다른 프로세서에 정보를 알릴 수 있어야 합니다.

프로그래밍 및 코딩의 원리

다중 처리 운영 체제(OS)

클러스터형 대칭 처리 통신 시설

단일 프로세서

CPU 메모리

디스크

대칭 다중 처리

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

메모리

디스크

메모리

디스크

메모리

디스크

다중 처리 운영 체제는 사용 가능한 각 CPU가 공유 메모리에 액세스하여 현재 작업을 완료할 수 있으므로 작업을 더 빠르게 처리할 수 있으므로 모든 작업을 가장 효율적으로 완료할 수 있습니다.

작업이 어떻게 진행되고 있는지. 이를 통해 계산이 완료될 때 프로세서의 작업을 통합하여 지연 및 기타 비효율성을 최소화할 수 있습니다. 예를 들어 단일 프로세서 OS가 세 가지 작업을 수행해야 하는 애플리케이션을 실행 중이라면 하나는 5밀리초, 다른 하나는 8밀리초, 마지막 작업은 7밀리초가 걸리며 프로세서는 각 작업을 순서대로 수행합니다. 따라서 전체 응용 프로그램에는 20밀리초가 필요합니다. 다중 처리 OS가 동일한 응용 프로그램을 실행하는 경우 세 가지 작업이 별도의 프로세서에 할당됩니다. 첫 번째는 5밀리초 안에 첫 번째 작업을 완료하고, 두 번째는 8밀리초 안에 두 번째 작업을 수행하며, 세 번째는 7밀리초 안에 작업을 완료합니다. 따라서 다중 처리 OS는 전체 작업을 완료합니다.

8밀리초 안에. 이 예에서 멀티프로세싱 OS가 뚜렷한 이점을 제공한다는 것이 분명해졌습니다.

Coupling Multiprocessing OS는 다양한 방식으로 설계될 수 있습니다. 설계 간의 주요 차이점 중 하나는 프로세서가 서로 통신하고 조정하는 정도입니다. 이를 프로세서 커플링이라고 합니다. 커플링은 "단단함" 또는 "느슨함"으로 분류됩니다. 느슨하게 결합된 다중 프로세서는 대부분 직접 채널이 아닌 공유 장치를 통해 서로 통신합니다. 대부분의 경우 느슨하게 결합된 CPU는 독립적으로 작동합니다. 다른 프로세서와 직접 통신하여 장치 사용을 조정하는 대신 대기열을 통해 리소스에 대한 액세스를 공유합니다. 긴밀하게 결합된 시스템에서는 각 CPU가 더 밀접하게 연결됩니다.

프로그래밍 및 코딩의 원리

시스템의 다른 항목에 바인딩됩니다. 이들은 작업을 조정하고 리소스에 대한 단일 대기열을 공유합니다. 긴밀하게 결합된 다중 처리 시스템의 한 유형에는 프로세서가 서로 메모리를 공유합니다. 이를 대칭형 다중 처리(SMP)라고 합니다. 멀티프로세싱 OS가 특정 작업에 대해 특정 프로세서의 우선순위를 지정하는 대신 모든 프로세서를 동일하게 처리할 때 프로세서 대칭이 존재합니다. 멀티프로세싱 OS는 SMP를 지원하는 특수 기능으로 설계되었습니다. OS는 둘 이상의 프로세서를 활용할 수 있어야 하기 때문입니다. OS는 특정 유형의 작업을 여러 프로세서로 나눌 수 있다는 것을 "알고" 있어야 합니다. 또한 각 작업이 완료된 후 결과를 결합할 수 있도록 각 작업의 진행 상황을 추적할 수 있어야 합니다. 이와 대조적으로 비대칭 다중 처리는 컴퓨터가 시스템 유지 관리 작업을 일부 유형의 프로세서에 할당하고 응용 프로그램 작업을 다른 프로세서에 할당할 때 발생합니다. 각 프로세서에 할당된 작업 유형이 동일하지 않기 때문에 대칭이 맞지 않습니다. SMP는 일반적으로 더 효율적이기 때문에 더 보편화되었습니다.

멀티태스킹 멀티프로세싱 OS의 출현은 사람들이 작업을 수행하는 방식에 큰 영향을 미쳤습니다. 다중 처리 OS는 한 번에 두 개 이상의 프로그램을 실행할 수 있습니다. 이를 통해 컴퓨터는 입력 및 출력의 그래픽 표현을 기반으로 보다 사용자 친화적인 인터페이스를 사용할 수 있습니다. 상대적으로 적은 교육을 받은 사용자도 컴퓨팅 작업을 수행할 수 있습니다.

다중 사용자 운영 체제(OS)

한때는 매우 복잡했습니다. 그들은 한 번에 많은 작업을 수행할 수도 있습니다. 멀티프로세싱 OS는 한때 큰 혁신이었지만 이제 예외가 아닌 표준이 되었습니다. 각 세대의 컴퓨터가 점점 더 복잡한 애플리케이션을 실행해야 함에 따라 처리 작업량도 점점 더 커지고 있습니다. 다중 프로세서와 이를 활용하도록 맞춤화된 OS가 제공하는 이점이 없다면 컴퓨터는 이를 따라잡을 수 없을 것입니다. —Scott Zimmer, JD 참고문헌 Garrido, José M., Richard Schlesinger, Kenneth E. Hoganson. 현대 운영 체제의 원리. 2판 벌링턴: 존스, 2013. 인쇄. Gonzalez, Teofilo 및 Jorge Díaz-Herrera, 에디션. 컴퓨팅 핸드북: 컴퓨터 과학 및 소프트웨어 공학. 3판 보카 레이톤: CRC, 2014. 인쇄. 샌드버그, 바비. 네트워킹: 전체 참조. 3판 뉴욕: 맥그로, 2015. 인쇄. Silberschatz, Abraham, Peter B. Galvin, Greg Gagne. 운영 체제 개념. 9판 호보켄: 와일리, 2012. 인쇄. 스톨링스, 윌리엄. 운영 체제: 내부 및 설계 원칙. 8판. 보스턴: 피어슨, 2014. 인쇄. Tanenbaum, 앤드류 S., 허버트 보스. 최신 운영 체제. 4판 보스턴: 피어슨, 2014. 인쇄.

다중 사용자 운영 체제(OS) 연구 분야 컴퓨터 과학; 운영체제

단일 사용자 운영 체제가 설치된 시스템과 직접 상호 작용합니다.

추상적인

주요 약관

다중 사용자 운영 체제(OS)는 단일 시스템에서 실행되는 동안 동시에 두 명 이상의 사람이 사용할 수 있는 운영 체제입니다. 다양한 사용자가 네트워크로 연결된 터미널을 통해 OS를 실행하는 시스템에 액세스합니다. OS는 연결된 사용자들 사이에서 교대로 사용자의 요청을 처리할 수 있습니다. 이 기능은 단일 사용자 OS에서는 사용할 수 없습니다.

다중 단말기 구성: 여러 단말기가 하나의 컴퓨터에 연결되어 여러 사람이 컴퓨터를 사용할 수 있도록 하는 컴퓨터 구성입니다. 네트워킹: 물리적 유선 또는 무선 연결을 사용하여 두 대 이상의 컴퓨터를 서로 연결합니다. 197

프로그래밍 및 코딩의 원리

다중 사용자 운영 체제(OS)

자동으로 또는 메모리 관리 및 디스크 포맷과 같이 낮은 수준에서 발생하기 때문입니다. 다중 사용자 OS는 단일 사용자 OS와 동일한 유형의 작업을 수행합니다. 그러나 reMainframe은 한 번에 한 명 이상의 사용자로부터 요청을 처리합니다. 컴퓨터가 처음 개발되었을 때 컴퓨터는 많은 물리적 공간을 차지하는 거대하고 복잡한 기계였습니다. 최초의 컴퓨터 중 일부는 방 전체를 차지했으며 여러 사람이 간단한 계산도 풀기 위해 프로그래밍하는 데 몇 시간을 소비해야 했습니다. 1 2 3 4 1 2 3 이러한 기원은 사람들이 시간이 지남에 따라 사용자에 의한 컴퓨팅이 어떻게 작동해야 하는지에 대해 생각하는 방식을 형성했습니다. 컴퓨터 다중 사용자 운영 체제는 여러 터미널(모니터, 키보드, 더욱 강력해지고 능력이 향상된 마우스 등)을 모두 단일 메인프레임(점점 더 많은 프로세서를 처리하기 위해 많은 마이크로프로세서를 갖춘 강력한 CPU)에 연결하도록 설계되었습니다. 각 사용자의 처리 요구 사항은 사용자가 모두 동시에 작업하는 것처럼 더 짧은 시간에 계산을 복잡하게 보이게 만듭니다. 미문. 그러나 컴퓨터 과학자들은 계속해서 "자원 할당"을 생각했습니다. 즉, 각 요청이 결국 충족되도록 여러 기간 퀘스트를 통해 한 번에 한 사람이 아닌 여러 사람에게 더 많은 리소스를 배치하고 경쟁함으로써 컴퓨터를 중앙 집중식 기계로 나누는 시스템입니다. 네트워킹으로 연결된 최종. 이것이 바로 UNIX와 같이 가장 초기에 개발된 OS인 컴퓨터의 하드웨어 조합인 시스템 중 일부가 다중 터미널 구성을 염두에 두고 서명하여 관리해야 하는 소프트웨어 리소스인 이유입니다. 운영 체제. 초기 컴퓨터의 특성을 고려하여 단일 컴퓨터에 대한 액세스를 공유하는 것과 같은 기본 입력 장치 집합인 '터미널'을 더 많이 만들었습니다. 나중에 기술이 발전하고 PC가 다중 사용자를 실행하는 컴퓨터에 연결되어 광범위하게 사용 가능하고 저렴한 가격으로 사용되는 키보드, 마우스 및 모니터가 집중 시스템이 될 것입니다. 단일 사용자 OS로 전환합니다. 시간 공유: OS가 여러 사용자 시간을 제공할 수 있도록 매우 짧은 간격으로 작업 간 전환을 통해 공유 컴퓨팅을 통해 여러 사용자 요청을 처리하기 위해 다중 사용자 운영 체제에서 사용하는 전략입니다. 동시에 시스템에는 다양한 사용자에게 할당될 수 있는 다중 프로세서 또는 다중 사용자 운영 체제가 필요합니다. 여러 컴퓨터의 운영 체제(OS) 간에 시간을 나누는 메커니즘이 가장 재미있는 사용자입니다. 일부 다중 사용자 OS는 소프트웨어 유형이 중요하므로 두 가지 전략을 모두 사용합니다. 컴퓨터를 관리하는 것은 비현실적인 시스템(하드웨어 및 기타 설치된 소프트웨어)이 되는 지점이 됩니다. 프로세서를 계속 추가하려면 다중 사용자 OS는 종종 컴퓨터의 "트래픽이 다양한 요청에 응답하는 것처럼 보입니다"라고 설명됩니다. 그것은 한 번 혼수 상태의 다른 부분을 조절합니다. 그러나 실제로 퓨터 내부에서 일어나는 일이 사용될 수 있으며 어떤 사용자 또는 장치가 해당 머신을 사용할 수 있는지는 컴퓨터가 매우 많은 비용을 소비하고 있다는 것입니다. 많은 OS 기능은 하나의 작업을 수행한 후 컴퓨터를 전환하는 짧은 시간 동안 사용자에게 보이지 않습니다. 이는 다른 작업으로 인해 발생하기 때문입니다. 이것을 시간 공유라고 합니다. 이 작업

2

198

프로그래밍 및 코딩의 원리

사용자가 감지하기에는 너무 빠른 속도로 전환이 계속됩니다. 따라서 별도의 작업이 동시에 수행되는 것으로 보입니다. 다중 사용자 OS는 한 번에 하나의 작업을 처리하는 경우 사용자가 요청이 채워질 때까지 줄을 서서 기다려야 하기 때문에 이러한 방식으로 작동합니다. 이는 요청이 처리될 때까지 사용자가 유휴 상태이므로 비효율적입니다. 다중 사용자 OS는 사용자를 교대로 사용함으로써 대기 시간을 줄입니다. 시분할은 자원 할당의 한 측면입니다. 이는 시스템이 수행해야 하는 다양한 작업 간에 시스템의 리소스를 나누는 방식입니다. 다중 사용자 OS의 한 가지 예는 대부분의 웹 메일 응용 프로그램을 지원하는 서버를 실행하는 데 사용되는 소프트웨어입니다. 이러한 시스템에는 메시지를 확인하기 위해 지속적으로 로그온하는 수백만 또는 수십억 명의 사용자가 있으므로 많은 수의 사용자를 동시에 처리할 수 있는 OS가 필요합니다. 일반적인 웹메일 애플리케이션에는 동시에 수천 명의 사용자를 지원할 수 있는 다중 사용자 OS를 실행하는 수백 대의 컴퓨터가 필요할 수 있습니다.

규모의 경제 많은 기업이 비용을 절감하기 위해 다중 사용자 OS를 사용하는 방향으로 전환하고 있습니다. 대규모 조직에서 각 직원을 위해 모든 기능을 갖춘 컴퓨터를 구입하고 유지 관리하려면 인력과 컴퓨터에 상당한 투자가 필요합니다.

다중 사용자 운영 체제(OS)

하드웨어. 이러한 비용을 피하려는 회사에서는 대부분의 사용자에게 최소한의 장비를 갖춘 터미널을 배포하는 것이 훨씬 더 비용 효율적일 수 있다는 사실을 알게 되었습니다. 이를 통해 다중 사용자 OS를 실행하는 서버에 연결할 수 있습니다. 백업할 모든 데이터가 동일한 시스템에 있기 때문에 다중 사용자 OS를 사용하면 사용자 데이터를 백업하는 것이 더 간단합니다. 따라서 사용자가 데이터를 잃을 가능성이 적고 조직의 시간과 비용이 절약됩니다. —Scott Zimmer, JD 참고문헌 Anderson, Thomas, Michael Dahlin. 운영 체제: 원칙 및 실습. 웨스트 레이크 힐스: 재귀, 2014. 인쇄. Garrido, José M, Richard Schlesinger 및 Kenneth E. Hoganson. 현대 운영 체제의 원리. 벌링턴: 존스, 2013. 인쇄. Holcombe, 제인, 그리고 찰스 Holcombe. 운영 체제 조사. 뉴욕: 맥그로, 2015. 인쇄. Silberschatz, Abraham, Peter B. Galvin, Greg Gagne. 운영 체제 개념 필수 사항. 2판 와일리, 2014. 인쇄. 스톨링스, 윌리엄. 운영 체제: 내부 및 설계 원칙. 보스턴: 피어슨, 2015. 인쇄. Tanenbaum, Andrew S. 최신 운영 체제. 보스턴: 피어슨, 2015. 인쇄.

199

N 명명 규칙 연구 분야 코딩 기술; 소프트웨어 개발; 컴퓨터 과학 개요 명명 규칙은 변수, 상수, 메서드 및 기타 컴퓨터 코드 구성 요소의 이름을 지정할 때 사용하는 규칙 시스템입니다. 일관되게 적용하면 명명 규칙을 통해 코드를 더 쉽게 읽고, 이해하고, 검색할 수 있습니다. 코딩하는 동안 적용하는 데 시간이 거의 걸리지 않으며 코드를 검토할 때 귀중한 개발 시간을 절약할 수 있습니다. 주요 용어 클래스: 객체 지향 프로그래밍에서 공통 변수와 메소드를 공유하는 관련 객체의 범주입니다. 상수: 컴퓨터 프로그래밍에서 변하지 않는 값 또는 그러한 값을 나타내기 위해 할당된 식별자입니다. 방법: 객체 지향 프로그래밍에서 특정 클래스의 객체에 특정한 프로시저나 함수. 패키지: 객체 지향 프로그래밍에서 관련 클래스와 인터페이스를 논리적인 방식으로 구성하는 데 사용되는 네임스페이스 또는 기호 집합입니다. 테이블: 미리 정의된 규칙에 따라 정보를 구성하는 데이터 구조로, 대부분 행과 열로 구성됩니다. 변수: 컴퓨터 프로그래밍에서 컴퓨터 메모리의 특정 위치에 저장된 데이터를 나타내는 기호 이름으로, 그 값은 변경될 수 있습니다.

명명 규칙이란 무엇입니까? 명명 규칙은 프로그래머가 식별자를 200개로 선택할 때 따라야 하는 규칙입니다.

변수 및 상수와 같은 다양한 데이터 유형 및 구조를 나타냅니다. 프로그래밍 언어마다 서로 다른 명명 규칙을 따르며, 회사에서도 자체적인 사내 규칙을 사용하는 경우가 많습니다. 이름 지정 규칙을 준수하지 않아도 이름이 사용된 언어의 구문을 위반하지 않는다고 가정하면 프로그램이 컴파일되거나 실행되는 데 방해가 되지 않습니다. 그러나 이는 사람들이 프로그램 코드를 읽고 이해하기 어렵게 만듭니다. 여러 프로그래머가 동일한 프로젝트에서 작업하거나 나중에 코드를 검토, 변경 또는 재사용할 가능성이 있는 경우 확립된 규칙을 따르는 것이 특히 중요합니다. 명명 시스템을 설계할 때는 몇 가지 요소를 고려해야 합니다. 이름은 고정된 길이로 제한됩니까, 아니면 최소 또는 최대 길이로 제한됩니까? 각 이름에는 어떤 정보가 포함되나요? 한 글자로 된 식별자와 같이 매우 짧은 이름은 충분한 정보를 제공하지 않습니다. 이름이 너무 길면 반복해서 입력하기가 번거로워 오류가 발생할 수 있습니다. 최신 코드 편집 소프트웨어는 이러한 유형의 오류를 줄이는 자동 완성 기능을 제공합니다. 이러한 도구를 사용하면 긴 이름을 사용할 때 발생하는 몇 가지 단점이 완화됩니다. 이름은 이해하고 기억하기 쉬워야 합니다. 명명 시스템은 더 쉽게 배우고, 기억하고, 사용할 수 있도록 논리적이어야 합니다. 명명 규칙에는 명확성이 필요합니다. 이름은 유사한 객체나 메소드와의 혼동을 피하기 위해 충분한 정보를 전달해야 합니다. 이 때문에 여러 단어로 된 이름이 선호되는 경우가 많습니다. 프로그래머가 프로시저의 이름을 sum()으로 지정하는 대신 일주일 동안 이루어진 모든 구매를 합산하는 프로시저를 작성하는 경우 프로그래머는 프로시저의 목적을 더 명확하고 설명하는 sumWeeklyTotal()이라는 이름을 사용할 수 있습니다. 이름의 각 단어를 대문자로 시작하는 스타일(알려진 스타일)

프로그래밍 및 코딩의 원리

명명 규칙

샘플 문제

소매업체에는 200달러 이상 구매 시 10% 할인을 적용할 수 있는 방법이 필요합니다. 소스 코드는 다음과 같습니다.

다음 규칙을 사용하여 메소드, 변수 및 상수의 이름을 바꾸십시오. 이름에 공백을 사용하지 마십시오. 메소드는 getDate()와 같은 동사-명사 쌍으로 표시되며 소문자 낙타 문자로 설정되며 첫 번째 단어를 제외한 모든 단어는 대문자로 표시됩니다. 변수는 읽고 기억하기 쉬워야 하며 한 문자보다 길어야 합니다. 또한 소문자 카멜 케이스로 설정해야 합니다. 상수는 모두 대문자로 설정해야 하며 단어는 밑줄로 구분해야 합니다. 답변: 가능한 답변 중 하나는 다음과 같습니다. determinDiscount() PERCENT_DISCOUNT = .1 IF customerTotal > 200 THEN finalCustomerTotal = customerTotal – (PERCENT_DISCOUNT * customerTotal) ELSE finalCustomerTotal = customerTotal END IF

201

명명 규칙

"camel Case"와 같은 이름을 사용하면 이러한 이름을 더 쉽게 읽을 수 있습니다. 여러 단어로 된 이름에서 단어를 구별하는 다른 방법에는 하이픈이나 밑줄로 단어를 구분하는 방법이 포함됩니다. 의미 있는 식별자가 선호되지만 클래스나 테이블과 같은 계층적 시스템 내의 중복은 피해야 합니다. 예를 들어 FootballPlayer라는 클래스에서 프로그래머는 footballPlayerRun() 메서드의 이름을 지정하지 않아야 합니다. 이 이름은 중복된 정보를 제공하기 때문입니다. 이 경우 run()이라는 이름이 더 좋습니다. 약어, 숫자 또는 코드가 포함된 명명 체계는 읽기가 혼란스럽고 기억하기 어려워 개발 시간을 낭비하고 오류가 발생할 수 있습니다. 약어를 사용하여 이름을 만들면 일관성 없는 사용법으로 인해 실수하기 쉽습니다. 이로 인해 특정 약어를 검색하면 잘못된 결과가 반환되어 코드 작성, 디버그 및 유지 관리가 더 어려워질 수 있습니다. 이름을 만들 때 사용할 코드를 결정하기 위해 키가 필요한 명명 규칙은 사용 및 구현에 시간이 많이 걸리고 번거롭기 때문에 피해야 합니다. 물건의 이름을 지을 때 속어, 속담, 유머러스한 이름을 피하세요.

명명 규칙을 사용하는 이유는 무엇입니까? 명명 규칙을 사용하면 코드를 더 명확하고 쉽게 읽고 이해할 수 있습니다. 또한 각 구성 요소의 목적을 설명하는 데 도움이 되는 설명 정보 또는 메타데이터를 추가합니다. 예를 들어, 메소드의 목적을 표현하는 동사-명사 조합을 사용하여 메소드 이름을 지정할 수 있습니다. 일관된 명명 규칙을 사용하면 보다 효율적인 검색이 가능하고 코드 항목 간의 혼동을 피할 수 있습니다. 명명 규칙이 효과적이려면 개발 팀의 모든 구성원이 일관된 방식으로 사용해야 합니다. 하나의 명명 구조가 예상되는데 다른 명명 구조가 발견되면 혼란이 발생할 수 있습니다. 명명 규칙의 일관된 사용을 장려하려면 규칙이 명확해야 하고 이름을 쉽게 만들 수 있어야 합니다. 좋은 명명 규칙은 프로그래머가 자신의 코드의 목적을 더 명확하게 정의하는 데 도움이 될 수도 있습니다. 개발자가 구성 요소의 이름을 만드는 것이 어렵다면 해당 구성 요소가 사용되는 이유를 명확히 해야 할 수도 있습니다. 이러한 방식으로 효과적인 명명 규칙은 강력하고 오류 없는 코드를 개발하는 데 도움이 될 수 있습니다. 202

프로그래밍 및 코딩의 원리

사용 중인 명명 규칙 명명 규칙은 명확하고 일관된 코드를 보장하는 데 중요합니다. 명명 규칙은 간단하고 기억하고 사용하기 쉬워야 합니다. 적절하게 설계된 명명 규칙을 사용하면 개발자에게 과도한 부담을 주지 않으면서 코드를 더 쉽게 읽을 수 있습니다. 명명 규칙은 언어와 조직마다 다르며 때로는 동일한 조직의 여러 그룹 간에도 다르지만 공통 요소가 있습니다. 그러한 요소 중 하나는 임시 변수의 경우를 제외하고 단일 문자 식별자에 대한 혐오입니다. 낙타 표기법으로 단어를 구분하는 것을 선호하는 명명 규칙의 또 다른 공통 요소는 다양한 유형의 식별자가 서로 다른 대문자 사용 규칙을 따른다는 것입니다. 예를 들어, 클래스 이름은 첫 번째 단어가 대문자인 대문자 카멜 케이스(UpperCamelCase)로 설정해야 하는 것이 Java에서 널리 사용되는 규칙입니다. 메소드 및 변수 이름은 소문자 카멜 케이스로, 첫 번째 단어는 소문자입니다(lowerCamelCase). 밑줄로 구분된 단어(ALL_CAPS)를 사용하여 모두 대문자로 된 상수 이름입니다. 패키지 이름은 모두 소문자로, 일반적으로 계층적 순서로 설정되어야 하며, 마침표로 구분된 수준과 여러 단어 수준 이름이 함께 실행됩니다(domain.product.feature 또는 companyname.productname.feature). 명명 규칙이 중요한 이유는 무엇입니까? 명명 규칙은 코드 자체의 논리에 부차적인 것처럼 보일 수 있지만 생성된 코드를 쉽게 이해할 수 없으면 생성, 디버그 및 유지 관리가 더 어렵습니다. 명명 규칙을 사용하면 프로그래머가 서로의 코드를 더 쉽게 작업할 수 있습니다. 또한 개발자가 장기간에 걸쳐 복잡한 프로그램을 작성하면서 자신의 코드를 이해하는 데 도움을 줄 수도 있습니다. 효과적인 명명 규칙은 동일한 정보를 여러 번 재해석하는 데 낭비되는 시간을 줄여줍니다. 좋은 명명 규칙을 사용하면 코드가 쉽게 이해되고 기술이 부족한 공동 작업자에게 설명될 수 있습니다. 일부 오래된 프로그래밍 언어는 이름에 엄격한 제한을 두어 이름을 이해하기 어렵게 만듭니다. 그러나 기술이 발전하고 설명적 이름의 가치가 확립됨에 따라 이러한 제한은 대부분 사라졌습니다. 관례는 기관과 프로젝트마다 다르지만,

프로그래밍 및 코딩의 원리

망 중립성

명명 규칙을 사용하는 것은 대부분의 개발 방법론에서 허용되는 측면입니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2015. “Java 프로그래밍 스타일 지침.” GeoSoft, 지질공학 소프트웨어 서비스, 2015년 4월, geosoft.no/development/javastyle.html. 2017년 2월 14일에 액세스함.

MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2017. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. 웨이, 제프리. “초보자를 위한 9가지 혼란스러운 명명 규칙.” Envato Tuts+, Envato, 2010년 10월 22일, code.tutsplus.com/articles/9-confusing-namingconventions-for-beginners--net-15584. 2017년 2월 14일에 액세스함.

망 중립성 망 중립성은 인터넷 서비스 제공업체와 정부가 웹 사이트, 플랫폼, 사용자 또는 애플리케이션에 상관없이 모든 온라인 데이터를 동일하게 취급해야 한다는 개념입니다. 망 중립성을 옹호하는 사람들은 서비스 제공업체가 파일 전송 프로토콜(FTP) 사용, 온라인 게임 플레이 또는 고품질 구축과 같은 다양한 서비스에 대해 더 많은 비용을 지불하도록 하기 위해 서비스 제공업체가 사용자에 대한 액세스를 분할할 수 없도록 법으로 보장해야 한다고 믿습니다. 피어-토피어(P2P) 통신. 그렇게 한다는 것은 망 중립성을 옹호하는 많은 사람들이 인터넷의 기반이 되는 정보 자유라는 이상을 위축시킨다고 말하는 "계층형 서비스" 구축을 의미합니다. 계층화된 서비스에서는 일반적으로 인터넷의 모든 사람이 무료로 사용할 수 있는 정보와 서비스에 대한 액세스 수준을 얻기 위해 서비스 제공업체의 고객이 다양한 패키지를 구매해야 합니다. 서비스 제공업체는 패키지 업그레이드 비용을 지불하지 않는 사람들에게 특정 콘텐츠를 차단하고 특정 유형의 서비스 속도를 늦추거나 금지할 수 있습니다.

개요 인터넷의 가장 두드러진 특징은 분산된 구조입니다. 이론적으로 네트워크의 모든 노드는 잠재적으로 권력과 영향력이 동일하지만 실제로는 이런 일이 거의 발생하지 않습니다.

기존의 사회, 경제 구조 때문이다. 인터넷에는 하드웨어, 소프트웨어, 인프라라는 세 가지 차원이 있습니다. 하드웨어는 스마트폰, 데스크톱 컴퓨터 또는 수많은 데이터가 저장되는 대규모 서버 팜 등 사람들이 인터넷에 액세스하는 데 사용하는 장치로 구성됩니다. 소프트웨어는 사람들이 온라인에 액세스하거나 상호 작용하는 데 사용하는 프로그램과 응용 프로그램으로 구성됩니다. 인프라는 하드웨어를 다른 하드웨어에 연결하는 시스템을 의미합니다. 인프라에는 유선 시스템과 무선 시스템이라는 두 가지 주요 유형이 있습니다. 유선 시스템은 전화선이나 광섬유 케이블 네트워크를 사용하는 반면, 무선 시스템은 무선 스펙트럼에 할당된 주파수를 사용하여 인터넷 액세스를 전송합니다. 매스커뮤니케이션의 도구로서 인터넷의 폭발적인 성장은 수직적 통합과 같은 사회경제적 추세를 동반했습니다. 이는 유료로 인터넷 액세스를 제공하는 회사가 인터넷에 콘텐츠를 공급하는 다른 회사도 인수했음을 의미합니다. 이로 인해 인터넷을 통해 흐르는 정보의 권력 집중과 통제에 대한 우려가 제기되었습니다. 어떤 사람들은 권력 집중이 데이터의 민주적 교환과 인터넷에서의 시민 참여의 질을 제한한다고 주장합니다. 망 중립성은 인터넷을 공공재로 유지하기 위한 투쟁을 의미합니다. 203

망 중립성

홍보 목적으로 포스터로 사용되는 네트워크 중립성의 상징입니다.

상대적으로 소수의 사람들의 개인적인 이익을 위해 사용되는 자원이 아닙니다. 망 중립성 논쟁에서 새로운 문제 중 하나는 월드와이드웹(World Wide Web)을 통해 전송되는 데이터가 풍부한 미디어 형식으로 인해 발생하는 새로운 과제입니다. 예를 들어, 비디오 전송은 피크 사용 기간에 인터넷 인프라를 정체시킬 수 있으며, 수직적으로 통합된 ISP(인터넷 서비스 제공업체)는 이 기간 동안 자체 콘텐츠를 선호할 수 있습니다. 이는 소비자의 관심을 끌기 위한 경쟁에서 불공정한 이점을 제공합니다. 인프라를 개발한 ISP는 자신의 인프라를 사용하는 경쟁 ISP의 성능을 제한할 뿐만 아니라 P2P 파일 공유 프로그램의 대역폭을 제한할 수 있습니다. 망 중립성을 반대하는 사람들은 자신의 입장에 대해 다양한 이유를 제시합니다. 가장 일반적인 주장 중 하나는 인터넷 규제가 경쟁 감소로 이어질 것이며, 이는 결국 인터넷을 성공적이고 혁명적으로 만든 급속한 혁신의 유형을 감소시킬 것이라는 것입니다. 관련된 개념은 규제로 인해 인터넷 서비스 제공자뿐만 아니라 많은 주변 산업을 지원하는 투자가 감소한다는 것입니다. 많은 사람들은 부유한 사람들의 특권적인 인터넷 접속과 다른 사람들의 열악한 서비스에 대한 두려움이 잘못된 시나리오라고 주장합니다. 다른 사람들은 규제가 204를 유발할 수 있다고 주장합니다.

프로그래밍 및 코딩의 원리

세금이 증가하거나 중립성이 인터넷 대역폭의 과도한 사용을 초래할 수 있습니다. 무선 통신의 망 중립성에 대한 논쟁에서 중요한 문제 중 하나는 무선 스펙트럼의 주파수를 공평하고 안전하게 분배하는 것입니다. 무선 스펙트럼이 천연 자원으로 간주되는 경우 한 회사가 이를 독점하고 인터넷 트래픽을 회사가 관리하는 사이트로 전환하지 않도록 하려면 어떻게 해야 합니까? 기업 간 경쟁의 공정성을 보장하는 독점 금지법은 현 시점에서 망 중립성 논쟁의 필수적인 부분입니다. 망 중립성에 대한 논쟁은 인터넷 및 데이터 서비스 산업의 강렬하고 빠른 기술 혁신의 영향을 받습니다. 예를 들어, 2013년에 컴퓨터 간 데이터 교환을 위한 표준화된 시스템을 개발한 회사는 무선 주파수, 전화선 및 휴대폰 간의 데이터 교환을 허용하는 기술을 개발했습니다. 이 새로운 기술을 IPICS(인터넷 프로토콜 상호 운용성 및 협업 시스템)라고 합니다. 이는 정보 통신 기술을 극적으로 변화시키고 공정하고 강력한 온라인 공개 영역을 보장하기 위한 정책에 영향을 미칠 가능성이 높습니다. 이처럼 빠른 기술 발전 속도로 인해 관련 법률과 정책이 뒤처지는 경우가 많습니다. 예를 들어, 망 중립성에 관한 문제는 2000년부터 논의되어 왔지만, 2010년이 되어서야 미국 연방통신위원회(FCC)가 망 중립성을 보존하기 위해 개방형 인터넷 질서를 제안했습니다. 2014년 11월, 버락 오바마 대통령은 FCC에 공공 유틸리티와 같은 인터넷 서비스 제공업체를 규제할 것을 요청하면서 FCC에 망 중립성을 강화하기 위한 엄격한 규칙을 만들 것을 요청했습니다. 이에 대응하여 FCC는 중립성을 지원하기 위해 일반 통신 사업자에 관한 1934년 통신법 제2장과 인터넷에 대한 1996년 통신법을 시행할 가능성을 조사했습니다. 2015년 2월 26일 실시된 투표에서는 망 중립성에 찬성했지만, 2018년 4월 해당 규칙이 롤백되어 "망 중립성의 종말"이 발생했습니다. —Trevor Cunnington, MA, PhD 참고문헌 Ammori, Marvin. “망 중립성의 사례.” 외교 93.4(2014): 62–73. 인쇄. 앤더슨, 스티브. “망 중립성: 캐나다의 관점.” 미디어 개발 56.1(2009): 8–11. 인쇄.

프로그래밍 및 코딩의 원리

Cook, Vickie S. “망 중립성: 그것이 무엇이며 왜 교육자가 관심을 가져야 합니까?” 델타 카파 감마 게시판 80.4(2014): 46–49. 인쇄. 다운스, 래리. "FCC의 망 중립성 명령 풀기: 개방형 인터넷 보존 — 그러나 어느 것입니까?" CommLaw Conspectus 20.1(2011): 83–128. 인쇄. 페더, 사무엘 L., 루크 C. 플래처. “FCC 개방형 인터넷 질서: 망 중립성 자체가 표현의 자유에 문제가 됩니까?” 커뮤니케이션 변호사 28.1(2011): 1–26. 인쇄. Jackson, Charles L. “무선 효율성과 망 중립성.” 연방 통신법 저널 63.2(2011): 445-80. 인쇄. 레시그, 로렌스. 리믹스: 하이브리드 경제에서 예술과 상업을 번성하게 만듭니다. 뉴욕: 펭귄, 2008. 인쇄. 렌다, 안드레아. “통신 분야의 경쟁-규제 인터페이스: 남은 것은 무엇인가?

네트워크 보안

필수 시설 교리.” 통신 정책 34.1(2010): 23–35. 인쇄. 루이즈, 레베카 R. “F.C.C. 망 중립성 규칙을 설정합니다.” 뉴욕 타임즈. New York Times, 2015년 3월 12일. 웹. 2015년 4월 2일. 신동희. “망 중립성의 비교 분석: 미국과 한국을 병치하여 얻은 통찰력.” 통신 정책 38.11(2014): 1117–133. 인쇄. 실리콘 밸리 역사 협회. “시스코 시스템즈.” 실리콘 밸리 역사 협회. Silicon Valley Historical Assoc., 2013. 웹. 2013년 7월 29일. Sommer, Jeff. “망 중립성 규칙이 말하는 것.” 뉴욕 타임즈. New York Times, 2015년 3월 12일. 웹. 2015년 4월 2일. 미국. 연방통신위원회. 열린 인터넷 보존: 보고 및 명령. 워싱턴: GPO, 2010. 인쇄.

네트워크 보안 컴퓨터 네트워크는 현대 통신의 필수적인 측면으로, 많은 컴퓨터를 함께 연결하여 신속한 통신을 촉진하고 대량의 정보를 편리하게 저장할 수 있습니다. 그러나 컴퓨터 네트워크는 때로는 악의적이거나 사기적인 목적으로, 때로는 일종의 지적 활동이나 장난으로 네트워크에 대한 무단 액세스를 얻으려는 사람들의 공격을 받기 쉬우며 이러한 공격은 계속해서 정교해지고 있습니다. 이러한 공격으로 인한 피해를 방지하거나 제한하기 위해 대부분의 네트워크는 다양한 유형의 공격을 방지하기 위해 여러 구성 요소가 독립적으로 작동하는 다층 보안 접근 방식을 사용합니다.

개요 네트워크 보안의 첫 번째 수준은 승인된 사용자 이름을 가진 승인된 개인만 시스템에 액세스할 수 있도록 허용하고 신원 확인을 위해 비밀번호를 사용하도록 요구하는 것입니다. 비밀번호는 사용자만 알 수 있는 일련의 문자이며, 비밀번호 보안을 강화하기 위해 문자, 숫자, 문자를 혼합하여 사용하는 더 긴 비밀번호를 요구하는 등 다양한 규칙을 사용할 수 있습니다.

승인되지 않은 사용자가 승인된 사용자의 비밀번호를 추측하기 어렵게 하기 위해 기호를 사용합니다. 더 높은 수준의 보안을 위해서는 사람(예: 망막 스캔) 또는 개인 소유물(예: 휴대폰)을 구체적으로 식별하는 정보가 필요할 수 있습니다. 대부분의 컴퓨터 보안 시스템에는 승인되지 않은 데이터 패킷이 내부 시스템에 유입되는 것을 방지하기 위해 내부 네트워크와 다른 네트워크 사이에 방화벽이나 장벽도 포함되어 있습니다. 침입 탐지 및 예방 시스템은 네트워크 내 활동을 모니터링하고 의심스러운 활동 패턴을 식별하는 데에도 사용될 수 있습니다. 또한, 네트워크 보안을 보호하기 위해 컴퓨터 바이러스 및 맬웨어(예: 네트워크를 손상시키거나 사용자가 모르는 사이에 정보를 수집하려는 "악성 소프트웨어")를 탐지하기 위한 보안 소프트웨어를 사용하는 것이 일반적입니다. 민간 전문 기관인 CSI(컴퓨터 보안 연구소)와 샌프란시스코 연방 수사국은 네트워크 보안 동향을 파악하기 위해 컴퓨터 보안 분야에 종사하는 사람들을 대상으로 연례 설문조사를 함께 실시했습니다. 2010~11년 설문 조사 결과에 따르면 대부분의 응답자(60.4%)가 205명의 조직에서 근무한 것으로 나타났습니다.

프로그래밍 및 코딩의 원리

네트워크 보안

LAN과 WAN 사이의 방화벽 참여 시뮬레이션.

공식적인 보안 정책을 갖고 있는 반면, 나머지 대부분은 비공식적인 정책을 갖고 있거나(14.5%) 공식적인 정책을 개발 중이라고 답했습니다(17.2%). 보고된 보안 침해 유형 중 가장 흔한 유형은 악성 코드 감염으로, 3분의 2 이상(67.1%)이 적어도 한 번 이상 이러한 사고를 보고했습니다. 보고된 다른 일반적인 보안 위반 유형에는 피싱 메시지 발신자로 위장하는 행위(사기성 이메일을 통해 신용카드 정보와 같은 개인 정보를 얻으려는 시도, 39%), 봇이나 좀비에 의한 내부 공격(자동화된 작업을 수행하는 소프트웨어 프로그램) 등이 포함되었습니다. 스팸 전송 등의 목적으로 사용자 컴퓨터를 탈취하는 경우가 29%), 서비스 거부 공격(17%)이 포함됩니다. 보안 사고를 신고한 사람 중 거의 절반(45.6%)이 적어도 한 번 이상의 표적 공격을 당했다고 답했지만, 금융 사기 사고는 상대적으로 드물었습니다(8.7%). —Sarah E. Boslaugh, PhD, MPH 206

참고문헌 Brenner, Susan W. 사이버 범죄 및 법률: 도전자, 문제 및 결과. 보스턴: 북동부 UP, 2012. 인쇄. 컴퓨터 보안 연구소. 2010/2011년 제15차 컴퓨터 범죄 및 보안 설문조사. 뉴욕: 컴퓨터 보안 연구소, n.d. PDF 파일. 다비도프, 셰리, 조나단 햄. 네트워크 포렌식: 사이버 공간을 통한 해커 추적. 어퍼 새들 리버: Prentice, 2012. 인쇄. 도나휴, 게리 A. 네트워크 워리어. 세바스토폴: O'Reilly, 2011. 인쇄. 연방수사국. “사이버 범죄.” FBI. 정부 법무부, n.d. 웹 2013년 7월 30일. Maiwald, Eric. 네트워크 보안: 초보자 가이드. 3판 뉴욕: 맥그로, 2013. 인쇄. 맥클루어, 스튜어트, 조엘 스캠브레이, 조지 커츠. 노출된 해킹: 네트워크 보안 비밀 및 솔루션. 7판. 뉴욕: 맥그로, 2012. 인쇄. 멈춰요, 윌리엄. 네트워크 보안 필수 요소: 애플리케이션 및 표준. 5판 어퍼 새들 리버: Prentice, 2014. 인쇄.

프로그래밍 및 코딩의 원리

신경언어 프로그래밍(NLP)

신경언어 프로그래밍(NLP) 신경언어 프로그래밍(NLP)은 대체 치료 방법으로 1970년대에 개발된 정신 훈련에 대한 철학이자 접근 방식입니다. NLP는 의사소통에 더 큰 성공을 거두고 다른 사람에게 영향을 미치는 "유능한" 개인이 사용하는 방법을 이해하고 복제하려고 시도합니다. NLP는 정보가 감각을 통해 수신되고, 언어 패턴으로 번역되고, 궁극적으로 목표 달성을 향한 체계화된 상호 작용 패턴으로 발전하는 방식과 관련이 있습니다. 대다수의 심리학 연구자들은 NLP를 시스템의 기본 교리에 대한 지원이 거의 없고 치료 기술에 NLP를 적용하여 측정 가능한 결과가 거의 없는 사이비과학적 철학이라고 생각합니다.

개요 신경언어 프로그래밍은 1970년대 언어학자이자 작가인 John Grinder와 심리학자 Richard Bandler에 의해 처음 개발되었습니다. Grinder와 Bandler는 형태 치료의 개념과 가족 치료사인 Virginia Satir와 Milton의 아이디어를 결합했습니다.

2007년 NLP 세미나에서 신경언어 프로그래밍의 공동 창시자인 Richard Bandler.

에릭슨. NLP를 개발하기 전에 Bandler와 Grinder는 Erickson의 최면 기술을 조사하는 자료를 작성했습니다. NLP의 기본 아이디어는 인간의 행동을 더 간단한 구성 요소로 나누어 조사한 다음 효율성을 분석하고 평가하는 것입니다. 치료기법으로서 NLP의 첫 번째 단계는 내담자와의 관계를 발전시키는 것이며, 이는 다양한 과정을 통해 완성됩니다. 기본적인 관계 형성 과정 중 하나는 치료사가 환자의 호흡, 얼굴 표정 및 기타 신체 언어를 반영하려고 시도하는 '미러링'입니다. 치료사가 환자의 목소리 높이의 상승 및 하강에 호흡을 맞추는 등 환자의 동작을 모방하기 위해 또 다른 동작을 사용하는 "크로스오버" 미러링도 있습니다. 미러링은 환자와 치료사 사이에 일종의 공감 관계를 형성하여 환자를 암시적인 상태로 만드는 것으로 생각됩니다. 재구성은 공포증 반응과 같은 특정 행동의 효과를 두 가지 방법 중 하나로 분석하는 또 다른 기술입니다. 첫째, 행동이 가져오는 이익(또는 인지된 이익)을 결정하기 위해 행동을 맥락에서 분리할 수 있습니다. 또는 동일한 맥락에서 치료사는 환자가 동일한 행동에 다른 의미를 부여하도록 안내할 수 있습니다. 아이디어는 다른 사람과 자신의 행동을 더 잘 이해하기 위해 관점을 바꾸는 것입니다. 결국 환자는 유사한 이점과 연결될 수 있는 대체 행동을 탐색하도록 배웁니다. NLP는 1980년대에 인기가 급격하게 상승했는데, 이는 대중 심리학과 대체 요법에 대한 전국적인 관심 폭발의 일부로 간주될 수 있습니다. NLP 치료의 효과를 뒷받침하는 임상 데이터는 없으며 뇌 기능에 관한 NLP 아이디어에 대한 과학적 평가를 통해 시스템의 핵심 원칙 중 많은 부분에 결함이 있음이 밝혀졌습니다. 행동 수정을 위한 기본 기술 중 일부는 형태 치료의 기술과 유사하며 이는 효과의 일부 추세를 설명할 수 있지만 고유한 시스템으로서의 NLP는 상당한 장점을 입증하지 못했습니다. 그러나 다양한 치료사와 자조 저자들은 계속해서 NLP를 치료 및 동기 부여 도구로 홍보하고 있습니다. —미가 이시트 207

프로그래밍 및 코딩의 원리

신경마케팅

NLP "눈 접근 큐 차트"입니다. 6가지 방향은 "시각 구성", "시각 회상", "청각 구성", "청각 회상", "운동 감각" 및 "청각 내부 대화"를 나타냅니다.

참고문헌 Anderson, Mike, Sergio Della Salla. 교육에서의 신경과학: 좋은 것, 나쁜 것, 추한 것. 뉴욕: 옥스퍼드 UP, 2012. 인쇄. Bandler, Richard 및 John T. Grinder, 개구리를 왕자로: 신경 언어 프로그래밍, Moab: Real People P, 1979. 인쇄. Eisner, Donald A. 심리치료의 죽음: 프로이트에서 외계인 납치까지. 웨스트포트: 그린우드, 2000. 인쇄. Gibson, Barbara P. NLP 이해 및 사용에 대한 완전한 안내서. 인쇄. Ocala: 대서양, 2011. 인쇄.

린더-펠츠, 수지. NLP 코칭: 코치, 리더 및 개인을 위한 증거 기반 접근 방식. 필라델피아: Kogan, 2010. 인쇄. 오코너, 조셉, 존 시모어. NLP 소개: 사람들을 이해하고 영향을 미치는 심리적 기술. 샌프란시스코: 코나리 P, 2011. 인쇄. 리차드, 잭 C., 테오도르 S. 로저스. 언어 교육의 접근 방식 및 방법. 뉴욕: 캠브리지 UP, 2001. 인쇄. Wake, Lisa, 애착 장애에 대한 단기 치료의 역할, 런던: Karnac, 2010. 인쇄.

신경마케팅 신경마케팅은 신경영상 기술을 사용하여 마케팅 자극에 대한 소비자의 정서적, 생리적, 신경학적 반응을 기록하는 마케팅 연구의 새로운 분야입니다. 연구자들은 기능적 자기공명영상(fMRI), 뇌파검사(EEG), 정상상태 지형도(SST), 갈바닉 피부 등의 의료 기술을 사용합니다. 208

광고, 제품 포장 및 기타 마케팅 자료에 대한 감각 운동, 인지 및 정서적 반응을 측정하기 위한 반응, 시선 추적 및 기타 기술. 그런 다음 마케팅 담당자는 소비자 행동에 더 나은 영향을 미치고 예측하는 마케팅 캠페인을 설계하기 위해 이러한 신경 기술로 수집된 데이터를 해석합니다.

프로그래밍 및 코딩의 원리

신경마케팅

시선 추적 장치

개요 2002년에 처음 만들어진 "뉴로마케팅"이라는 용어는 마케팅 자료에 대한 소비자 반응을 측정하는 데 사용되는 신경영상 기술과 이 연구를 기반으로 설계된 광고 모두에 적용될 수 있습니다. 이 분야를 뒷받침하는 기본 틀은 소비자의 의사결정 과정이 합리적이고 의식적인 인지 시스템보다 잠재의식, 정서적 인지 시스템에 의해 더 강하게 영향을 받는다는 이론입니다. 광고에 대한 이러한 잠재의식적 반응은 전통적인 포커스 그룹이나 고객 설문조사에서는 정량화할 수 없는 것으로 생각되므로 소비자의 뇌 활동과 광고에 대한 기타 생리학적 반응을 측정하기 위해 신경영상 기술을 사용해야 합니다. 신경영상 기술은 또한 자신이 원한다고 생각하는 반응을 제시하거나 제공해야 할 설득력 있는 이유가 있는 소비자로부터 보다 정직한 반응을 이끌어내는 것으로 생각됩니다.

시선 추적 장치는 광고의 어느 부분이 먼저 소비자의 관심을 끄는지, 어떤 부분이 흥미롭지 않거나 주의를 산만하게 하는지 정확하게 정량화할 수 있습니다. 예를 들어, 마케팅 담당자는 시선 추적 기술을 사용하여 소비자가 제품이나 브랜드 로고보다 광고에서 모델의 얼굴을 보는 데 더 많은 시간을 소비하는지 확인할 수 있습니다. 기능적 자기공명영상(fMRI), 뇌파검사(EEG), 정상상태 지형도(SST)도 신경마케팅 연구에 사용됩니다. 이러한 기술은 뇌 활동을 측정하여 뉴로마케터가 고객의 주의 수준, 기억 처리 및 정서적 반응을 추정할 수 있습니다. 그러나 이러한 신경 영상 기술은 특정 뇌 영역의 혈중 산소 수준과 같은 뇌 활동에 대한 대용 신호를 측정하기 때문에 결과를 해석하려면 상당한 양의 통계 분석 및 이미지 처리가 필요하며, 이로 인해 신경 마케팅 담당자는 특정 특정 영역을 과대 또는 과소 강조할 수 있습니다. 응답. 게다가 209년의 문화적 차이는

프로그래밍 및 코딩의 원리

뉴로모픽 칩

행복과 같은 감정이 어떻게 표현되는지는 마케팅 캠페인의 효과에 영향을 미칠 수 있습니다. 심지어 다양한 배경을 가진 사람들의 동일한 뇌 활동을 뒷받침하는 신경학적 데이터가 있더라도 마찬가지입니다. 뉴로마케팅 기술은 광고주에게 유용한 소비자 및 시장 통찰력을 제공했지만, 뉴로마케팅 분야는 과학적, 학술적 자격을 과장했다는 이유로 비판을 받아왔습니다. 일부 비평가들은 동료 검토 저널에 연구 결과를 발표한 뉴로마케팅 회사가 거의 없으며 많은 뉴로마케팅 주장이 뒷받침되는 증거로 뒷받침되지 않는다는 사실을 지적했습니다. 이에 대해 뉴로마케팅 회사들은 자신들의 독점 연구를 보호하기 위해 결과를 공개하지 않았다고 주장합니다. 20세기 중반에 잠재의식 메시지가 등장한 것과 마찬가지로 뉴로마케팅 분야에서도 많은 윤리적 우려가 제기되었습니다. 뉴로마케팅 통찰력은 처방약과 정크푸드에 대한 정치 캠페인과 광고에 적용되어 일부 비평가들은 그것이 침해적으로 설득력이 있고 소비자 자율성에 위협이 된다고 주장합니다. 다른 비평가들은 뉴로마케팅 연구에서 개인정보 보호 및 기밀성 문제를 강조했습니다. 일부 뉴로마케팅 주장은 과장되었으며 사용 가능한 기술은 마음을 읽거나 미래 행동을 예측하는 것과는 거리가 멀지만, 이 분야는 광고주에게 소비자 행동을 해석하는 중요한 도구를 제공했습니다. —메리 우드버리 후퍼

참고문헌 Ariely, Dan, Gregory S. Berns. “신경마케팅: 비즈니스에서 신경영상의 희망과 과대광고.” 네이처 리뷰 신경과학 11.4(2010): 284-92. 인쇄. 바킨, 에릭. “뉴로마케팅의 전망과 한계.” CRM 2013년 7월: 46–50. 인쇄. 크레인, 랜스. "뉴로마케팅 위협은 오늘날의 광고 환경에서는 이상해 보입니다." 광고 연령 2013년 7월 8일: 22세. 인쇄. 피셔, 칼 에릭, 리사 친, 로버트 클리츠먼. “뉴로마케팅 정의: 실무 및 전문적 과제.” 하버드 정신의학 리뷰 18.4(2010): 230-37. 인쇄. 모린, 크리스토프. “뉴로마케팅: 소비자 행동의 새로운 과학.” 사회 48.2(2011): 131–35. 인쇄. 노벨, 카르멘. “뉴로마케팅: 소비자의 ‘쾌락 센터’ 활용.” 포브스. 포브스. com, 2013년 2월 1일. 웹. 2015년 6월 29일. Orzan, G., I. A. Zara 및 V. L. Purcarea. “의약품 광고의 신경마케팅 기법: 향후 연구를 위한 논의 및 의제.” 의학 및 생활 저널 5.4(2012): 428–32. 인쇄. 쇼, 홀리. "광고주는 당신의 두뇌 속을 들여다보고 있습니다. 신경마케팅이 여기에 있으며 당신이 원하는 것을 알고 있습니다." 금융 포스트. Natl. 2015년 4월 17일 게시. 웹. 2015년 6월 29일. 가수 나타샤. “뇌에 속삭이는 광고 만들기.” 뉴욕 타임즈. New York Times, 2010년 11월 13일. 웹. 2013년 10월 7일.

신경형 칩 연구 분야 컴퓨터 공학; 정보 시스템

주위. 이 칩은 이미지 인식, 탐색, 문제 해결 등 복잡한 작업에 필요합니다.

개요 Neuromorphic 칩은 뇌가 작동하는 방식을 모방하도록 설계된 차세대 컴퓨터 프로세서입니다. 이진 신호의 단일 아키텍처에 갇히는 대신 뉴로모픽 칩은 환경에 따라 연결을 형성하고 해체할 수 있으며, 사실상 210에서 "학습"할 수 있습니다.

주요 용어 자율적: 외부 또는 의식적 통제 없이 독립적으로 작동할 수 있습니다. 인간 두뇌 프로젝트(Human Brain Project): 2023년까지 기능하는 두뇌를 모델링하기 위해 2013년에 시작된 프로젝트. HBP라고도 합니다.

프로그래밍 및 코딩의 원리

뉴로모픽 칩

뉴로모픽 칩은 미래의 컴퓨팅을 개선하기 위해 데이터 및 처리 경로의 패턴을 감지하고 예측하도록 설계되었습니다. 뇌의 신경가소성을 시뮬레이션하여 시각 및 청각 패턴을 효율적으로 추상화하고 분석할 수 있습니다. 이 보드의 각 칩에는 뉴런을 연결하는 시냅스를 모방한 수억 개의 연결이 있습니다.

멤리스터(memristor): 메모리 저항기, 과거에 사용했던 저항을 기반으로 자체 전기 저항을 변경할 수 있고 익숙한 현상에 일관된 방식으로 반응할 수 있는 회로. 신경계(신경) 시스템: 유기체가 자신과 환경의 변화를 감지하고 이러한 변화를 설명하는 전기화학적 신호를 뇌에 전송하여 뇌가 반응할 수 있도록 하는 신경 경로 시스템. 신경가소성: 새로운 정보를 획득하고 새로운 신경 연결을 형성하면서 변화하는 뇌의 능력.

두뇌 기반 설계 Neuromorphic 칩은 기존 마이크로프로세서 칩과 공통점이 많습니다. 두 종류의 칩 모두 컴퓨터가 입력을 수신하고 해당 정보를 처리한 다음 정보, 작업 또는 두 가지 모두의 형태로 출력을 생성하는 방법을 제어합니다. 차이점은 기존 칩이 수백만 개의 작은 집적 회로로 구성된다는 것입니다. 이러한 회로는 이진 "켜짐" 상태와 "꺼짐" 상태를 번갈아 전환하여 정보를 저장하고 처리합니다. 뉴로모픽 칩은 인체의 신경계가 정보를 처리하는 방식을 모방하도록 설계되었습니다. 그들은

정보를 처리할 뿐만 아니라 그 과정에서 학습할 수 있도록 설계되었습니다. 학습할 수 있는 시스템은 가능한 모든 상황에 대응하도록 프로그래밍해야 하는 시스템보다 더 강력할 수 있습니다. 학습할 수 있는 시스템은 자율적으로, 즉 안내 없이 스스로 작동할 수 있습니다. 이에 대한 좋은 예는 자동차 내비게이션 시스템입니다. 이러한 시스템은 현재 위치에 대한 위성 데이터뿐만 아니라 상세한 지도를 저장하거나 액세스해야 합니다. 이 데이터를 사용하여 내비게이션 시스템은 코스를 계획할 수 있습니다. 뉴로모픽 칩에는 배경 데이터가 모두 필요하지 않을 수도 있습니다. 그들은 주변 환경에 대한 정보를 더 잘 이해하고 이를 사용하여 과거 사건을 기반으로 결과를 예측할 수 있습니다. 마치 집에서 몇 블록 떨어진 곳에 내려준 사람이 지도를 참조하지 않고도 그곳에 가는 방법을 알아낼 수 있는 것처럼 작동할 것입니다. 뉴로모픽 칩을 설계하기 위해 엔지니어들은 뇌와 뇌의 기능에 대한 과학적 연구를 활용합니다. 그러한 연구를 수행하는 한 그룹은 인간 두뇌 프로젝트(HBP)입니다. HBP는 설치류 뇌의 작동 모델을 구축하려고 노력하고 있습니다. 결국 HBP는 인간 두뇌의 완벽하게 작동하는 모델을 구축하려고 노력할 것입니다. 이와 같은 모델을 가지면 과학자들은 뇌가 어떻게 작동하는지에 대한 가설을 테스트할 수 있습니다. 211

뉴로모픽 칩

그들의 연구는 그러한 작동을 모방할 수 있는 컴퓨터 칩의 개발에 도움이 될 것입니다.

실리콘의 한계 연구자들이 뉴로모픽 칩을 개발하기 시작한 이유 중 하나는 기존 칩의 설계가 계산 능력의 한계에 접근하고 있기 때문입니다. 수년 동안 인간의 두뇌가 성취할 수 있는 학습과 통찰력을 제공하는 컴퓨터를 개발하는 데 노력이 집중되었습니다. 이러한 노력은 하드웨어와 소프트웨어 측면 모두에서 이루어졌습니다. 프로그래머는 뇌의 신경망에서 발견되는 것과 같은 데이터 저장 및 액세스 알고리즘을 사용하도록 애플리케이션과 운영 체제를 설계했습니다. 칩 설계자들은 회로를 점점 더 작게 만들어 기존 칩에 더욱 촘촘하게 들어갈 수 있는 방법을 찾았습니다. 불행하게도 두 접근법 모두 뇌의 정보 처리 능력이나 신경가소성을 갖춘 기계를 생산하는 데 실패했습니다. 신경가소성은 반복을 통해 지속적으로 자신을 변화시키고 작업을 향상시키는 뇌의 능력입니다. 뉴로모픽 칩은 뇌가 작동하는 방식을 모방하려고 합니다. 뇌에는 회로 대신 약 1000억 개의 뉴런이 있습니다. 각 뉴런은 전기 자극을 전달하는 시냅스를 통해 다른 뉴런과 연결됩니다. 두뇌는 엄청난 양의 뉴런과 시냅스를 통해 병렬 처리를 활용할 수 있기 때문에 매우 강력한 컴퓨팅 장치입니다. 병렬 처리는 뇌의 여러 부분이 동시에 문제를 해결하는 것입니다. 병렬 처리를 사용하면 특정 경로가 특히 유용하다고 입증된 경우 뇌가 뉴런 사이에 새로운 연결을 형성할 수 있습니다. 이러한 새로운 신경 경로의 형성은 사람이 새로운 것을 배우거나 작업을 보다 효율적이고 효과적으로 수행하는 방법을 배울 때 발생합니다. 뉴로모픽 칩 설계자의 목표는 뇌의 계산 밀도와 신경가소성 수준에 접근하는 칩을 개발하는 것입니다. 예를 들어, 연구자들은 일종의 학습 회로인 멤리스터(memristor)의 사용을 제안했습니다. 이러한 아이디어를 구현하려면 기존 바이너리 칩과 완전히 다른 칩 아키텍처가 필요합니다. 복잡한 작업 Neuromorphic 칩은 너무 집중적인 컴퓨팅 작업에 특히 적합합니다.

212

프로그래밍 및 코딩의 원리

처리할 전통적인 칩. 이러한 작업에는 음성-텍스트 번역, 얼굴 인식 및 소위 스마트 탐색이 포함됩니다. 이러한 모든 응용 프로그램에는 처리 능력이 뛰어나고 과거 결정을 바탕으로 현재와 미래의 결정을 추측할 수 있는 컴퓨터가 필요합니다. 뉴로모픽 칩은 아직 설계 및 실험 단계에 있기 때문에 아직 더 많은 용도가 등장하지 않았습니다.

미래의 길 Neuromorphic 칩은 미래가 제기하는 컴퓨팅 문제에 대한 답을 나타냅니다. 개발 중인 대부분의 컴퓨팅 애플리케이션에는 대량의 데이터를 처리하는 능력 이상의 것이 필요합니다. 이 기능은 이미 존재합니다. 대신 환경에 대한 결론을 도출하기 위해 다양한 형태의 데이터를 사용할 수 있는 장치가 필요합니다. 미래의 컴퓨터는 인간의 두뇌와 더욱 유사하게 작동할 것으로 예상되므로 컴퓨터도 두뇌와 더욱 비슷하게 설계되고 제작되어야 합니다. —Scott Zimmer, JD 참고문헌 Burger, John R. 회로 및 시스템 관점에서 본 뇌 이론: 전기 과학이 신경 회로, 신경 시스템 및 큐비트를 설명하는 방법. 뉴욕: 스프링어, 2013. 인쇄. 인간 두뇌 프로젝트. 인간 두뇌 프로젝트, 2013. 웹. 2016년 2월 16일. Lakhtakia, A. 및 R. J. Martiñn-Palma. 공학적 생체모방. 암스테르담: Elsevier, 2013. 인쇄. Liu, Shih-Chii, Tobi Delbruck, Giacomo Indiveri, Adrian Whatley 및 Rodney Douglas. 이벤트 기반 뉴로모픽 시스템. 치체스터: Wiley, 2015. 인쇄. 프로코펜코, 미하일. 응용 자기조직화 시스템의 발전. 런던: 스프링어, 2013. 인쇄. Quian, Quiroga R. 및 Stefano Panzeri. 신경 코딩의 원리. 보카 레이톤: CRC, 2013. 인쇄. Rice, Daniel M. 생각의 미적분학: 인지 기계의 신경형 로지스틱 회귀. 월섬: 학술, 2014. 인쇄.

O 목적 연구 분야 연구 이론; 연구 설계 개요 과학에서는 객관성, 즉 개인의 관점이나 편견에 영향을 받지 않는 것이 주요 목표로 간주됩니다. 그러나 연구자는 필연적으로 개인이므로 항상 어느 정도 주관적입니다. 이러한 이유로 자연과학과 사회과학 모두 연구를 가능한 한 객관적으로 만들기 위한 조치를 취하기 위해 상당한 노력을 기울이고 있습니다. 이것의 일부는 일반적으로 과학적 방법을 따르는데 객관적이 되려고 노력하는 연구자들의 의식적인 결정입니다. 그러나 편견은 종종 무의식적으로 남아 있습니다. 편견을 최소화하고 연구 결과에 미치는 영향을 최소화하려면 내재된 편견을 인식하는 것이 중요합니다. 주요 용어 인지 편향: 주관적인 관점에 기초한 뿌리 깊은 비합리적이거나 비논리적인 판단. 문화적 편견: 해석자 자신의 문화의 관점에서 현상을 해석하는 것입니다. 이중맹검(double-blind): 연구자나 피험자 모두 어느 실험 단위가 대조군인지 시험군인지 알지 못하는 연구 조건. 정성적 데이터: 현상의 속성을 수치적으로 측정하지는 않지만 설명하는 정보입니다. 정량적 데이터: 현상의 속성을 양이나 수량 등 수치적 측정으로 표현하는 정보입니다. 주관성: 외부 기준에 따르기보다는 개별 주체의 관점에 따라서만 진실되는 품질.

객관성 이해 사실적 지식에 관계없이 모든 연구자는 인생 경험을 통해 발전해 온 독특한 관점을 가진 개인으로서 프로젝트에 접근합니다. 이러한 주관성 중 일부는 차보다 커피를 선호하는 것과 같이 사소한 것입니다. 그러한 사소한 주관성은 연구의 타당성에 영향을 미치지 않거나 연구와 관련된 경우 의식적으로 무시될 수 있습니다. 교육, 훈련, 경험 모두 연구자들이 개인의 선호도와 관점에서 최대한 벗어나도록 강요합니다. 객관성이라고 알려진 이러한 품질은 일반적으로 과학 연구에 매우 중요한 것으로 간주됩니다. 테스트와 결과 재현을 강조하는 과학적 방법은 종종 객관성을 추구하는 방법으로 간주됩니다. 그러나 객관성을 유지하는 것은 결코 간단한 일이 아닙니다. 기본적인 주관적 선호 외에도 모든 연구자와 모든 연구 대상자는 샘플링 편향, 인지 편향, 문화적 편향 등 미묘한 편향을 겪을 수 있습니다. 일반적으로 무의식적이고 인간 심리학에 깊이 뿌리박혀 있다고 생각되는 이러한 영향은 강력한 방식으로 객관성을 손상시킬 수 있습니다. 예를 들어, 백인이 대다수인 마을에 거주하는 백인 연구원은 연구를 위해 백인들만 모집할 수 있습니다. 연구가 지역적 현상에 초점을 맞춘다면 문제가 되지 않을 수도 있다. 그러나 연구자가 연구 결과를 미국 전체 인구에 일반화하려고 시도하면 샘플링과 문화적 편견이 모두 객관성과 결과의 타당성을 손상시킬 가능성이 높습니다. 체계적 편향은 실험의 개발과 구조, 측정의 정확성, 결과의 해석에 영향을 미칠 수 있습니다. 객관성은 본질적으로 정량적 데이터보다 더 주관적인 정성적 데이터로 작업할 때 특히 문제가 됩니다. 어떤 사람들은 질적 연구가 결코 진정으로 객관적일 수 없다고 주장해 왔습니다.

객관성

반드시 주관적인 데이터의 해석이 필요합니다. 다른 과학철학자들은 정량적 연구조차 편견에서 완전히 자유로울 수 없다고 주장합니다. 일부 연구 윤리학자들은 연구의 객관성에 대한 논쟁은 단순히 학자들이 자신의 학문 분야의 다양한 패러다임을 정의하려는 시도의 결과라고 제안합니다. 그럼에도 불구하고, 과학자들은 가능할 때마다 객관성을 유지해야 한다는 데 동의합니다.

객관성 유지 과학자들은 초기 개념부터 결과 평가까지 연구의 모든 단계에서 객관성을 유지하기 위해 노력합니다. 연구 진실성에 대한 전문가들은 연구자들이 자신이 무엇을 발견하게 될지 정확히 알고 있다는 생각으로 시작해서는 안 된다는 데 동의합니다. 연구의 목적은 실제 결과를 반영하는 답변에 도달하는 것입니다. 따라서 연구 결과는 초기 가설을 뒷받침할 수도 있지만 연구자를 새로운 방향으로 이끌 수도 있습니다. 연구의 초기 단계에서는 가설을 세우고 연구 질문을 기술할 때 결과가 왜곡되지 않도록 최대한 편견 없이 언어를 사용하는 것이 중요합니다. 연구에서 표본의 크기와 구성도 중요합니다. 연구 대상을 가능한 한 일반 인구를 대표하도록 무작위화 및 기타 방법을 사용합니다. 데이터 수집의 객관성을 유지하는 가장 효과적인 방법 중 하나는 블라인드 연구 프로젝트를 설정하는 것입니다. 단일 맹검 연구는 연구 대상자들이 통제 그룹의 구성원인지 테스트 그룹의 구성원인지 알지 못하도록 하여 연구 대상 간의 편견을 제거합니다. 이중 맹검 연구는 연구자들 사이의 편견도 제거하려고 시도하며 많은 연구의 표준으로 간주됩니다. 그러나 블라인드 시험은 항상 가능한 것은 아니며 상당한 시간과 투자가 필요합니다. 데이터가 수집되면 연구자들은 연구 결과를 분석하고 보고하는 데 추가적인 객관성 문제에 직면하게 됩니다. 가능한 문제로는 데이터를 올바르게 기록하지 못함, 통계 분석 오류, 해석 시 문화적 편견 등이 있습니다. 연구자가 실제로 배운 내용을 반영하지 않는 분석 방법을 선택하는 경우에도 객관성이 상실될 수 있습니다. 연구 복제와 출판을 위해 제출된 자료의 동료 검토는 가능한 최고 수준의 객관성을 장려하는 데 사용되는 두 가지 일반적인 방법입니다. 그럼에도 불구하고 객관성을 유지하기 위한 조치를 취하는 연구는 나중에 편향된 것으로 밝혀질 수 있습니다. 214

프로그래밍 및 코딩의 원리

실제 연구 지속적인 관심사는 민간 영리 기업이 수행하거나 후원하는 연구가 정부나 비영리 조직이 수행하는 연구만큼 객관적일 수 있는지 여부입니다. 학자들은 업계에서 자금을 지원받은 연구 결과가 외부 기관에서 자금을 지원받은 연구 결과보다 지속적으로 업계 제품을 더 호의적으로 제시한다는 점을 지적하면서 "자금 효과" 편향을 확인했습니다. 흡연이 건강에 미치는 영향을 경시하는 담배 산업의 자금 지원을 받는 연구와 기후 변화에 의문을 제기하는 화석 연료 회사의 자금 지원을 받는 연구가 그 예입니다. 비평가들은 이러한 객관성의 결여가 과학 연구의 완전성을 위협한다고 주장합니다. 연구에 있어 이해상충이라는 큰 문제로 인해 객관성을 높이는 데 상당한 관심이 집중되었습니다. 좋은 연구 관행을 유지하기 위해 다양한 학술, 국가 및 국제 조직이 형성되었습니다. 많은 연구 자체가 객관성, 주관성, 편견의 원인과 영향을 연구하는 데 전념하고 있습니다. 문제와 그 의미를 더 잘 이해함으로써 과학자들은 진실을 더 잘 추구할 수 있습니다. 연구 윤리 일부 연구자들이 과학의 한계에 의문을 제기하더라도 객관성은 여전히 ​​과학에 매우 중요합니다. 자연과학은 객관성을 띠는 반면 사회과학은 주관적일 가능성이 더 높다는 믿음은 두 넓은 분야 사이의 논쟁이 일어날 정도로 여전히 일반적입니다. 그러나 객관성은 과학을 넘어 과학 전반에 걸쳐 완전히 달성할 수 없는 중요한 목표임이 분명합니다. 이는 철학에서 국제관계, 심지어 일상생활에 이르기까지 다른 학문 분야에도 중요하게 적용됩니다. 개념으로서 객관성은 인간 의식의 엄청난 복잡성을 보여주는 중요한 아이디어입니다. —Elizabeth Rholetter Purdy, PhD 참고문헌 Agazzi, Evandro. 과학적 객관성과 그 맥락. 스프링어, 2014. 그리넬, 프레드릭. “연구의 진실성과 과학의 일상적 실천.” 과학 및 공학 윤리, vol. 19, 아니. 3, 2013, pp. 685–701. 학술 검색 완료, search.ebscohost.com/login.aspx?direct=

프로그래밍 및 코딩의 원리

true&db=a9h&AN=89583462&site=ehost-live. 2017년 4월 19일에 액세스함. Harding, Sandra. 객관성과 다양성: 과학 연구의 또 다른 논리. 시카고 대학교 P, 2015. Krimsky, Sheldon. “금융 이해 상충 편향 연구를 수행합니까? '자금효과' 가설에 대한 탐구.” 과학, 기술 및 인간 가치, vol. 38, 아니. 4, 2013, pp. 566–87.

객체 지향 설계(OOD)

Letherby, 게일, 등. 사회 연구의 객관성과 주관성. 세이지 출판물, 2013. Steck, Andreas J. 및 Barbara Steck. 뇌와 마음: 주관적 경험과 과학적 객관성. Springer, 2016. Yetiv, Steve A. 냉소적인 렌즈를 통한 국가 안보: 인지 편견이 미국 외교 정책에 미치는 영향. 존스 홉킨스 UP, 2013.

객체 지향 설계(OOD) 연구 분야 소프트웨어 엔지니어링; 프로그래밍 언어; 컴퓨터 과학 개요 객체 지향 설계(OOD)는 컴퓨터 프로그램을 개발하기 위해 코드를 계획할 때 객체와 객체의 상호 작용을 정의하는 프로세스를 사용하는 소프트웨어 설계에 대한 접근 방식입니다. 프로그래머는 개념 도구를 사용하여 모델을 시스템 생성에 필요한 사양으로 변환합니다. OOD를 통해 작성된 프로그램은 일반적으로 더 유연하고 작성하기 쉽습니다. 주요 용어 속성: 객체의 속성이나 특성을 정의하는 특정 기능입니다. 클래스 기반 상속: 기존 클래스에서 속성을 가져와 추가 속성이 있는 새 클래스를 만드는 코드 재사용 형식입니다. 클래스: 유사한 속성과 동작을 공유하는 독립적인 객체의 모음입니다. 방법: 개체의 동작과 다른 개체와의 상호 작용을 설명하는 절차입니다. 객체: 고유한 ID와 정의된 속성 및 동작 집합을 가진 요소입니다. 프로토타입 상속: 기존 객체를 복제하여 프로토타입으로 사용하는 코드 재사용 형태입니다.

소프트웨어 개발 향상 객체 지향 설계(OOD)는 소프트웨어를 줄이면서 코드의 정확성을 높이기 위해 개발되었습니다.

개발 시간. 객체 지향(OO) 시스템은 프로그램의 작동 방법을 알려주기 위해 서로에게 메시지를 보내 함께 작동하는 객체로 구성됩니다. 소프트웨어 디자인의 객체는 실제 객체와 관심사를 나타냅니다. 예를 들어 회사의 인사 웹사이트 코드에서 개체는 개별 직원을 나타낼 수 있습니다. 객체는 다른 모든 객체와 독립적이며 자체 상태를 갖습니다. 그러나 모든 개체는 동일한 클래스의 다른 개체와 속성이나 기능을 공유합니다. 클래스는 관련 객체 그룹의 공유 속성을 설명합니다. OOD는 일반적으로 OO 시스템 구축 시 소프트웨어 개발 프로세스의 첫 번째 단계인 객체 지향 분석(OOA)을 따릅니다. OOA에는 새로운 프로그램의 기능을 계획하는 작업이 포함됩니다. OOD에는 해당 프로그램을 구성할 특정 개체와 클래스를 정의하는 작업이 포함됩니다. 최초의 OO 언어인 Simula는 1960년대에 개발되었으며, 1972년에 Smalltalk가 개발되었습니다. 잘 알려진 OO 프로그래밍 언어로는 Ruby, C++, Java, PHP 및 Smalltalk가 있습니다. OOD는 시스템 설계와 객체 설계라는 두 가지 주요 프로세스로 구성됩니다. 먼저, 원하는 시스템의 아키텍처가 매핑됩니다. 여기에는 시스템의 클래스를 정의하는 작업이 포함됩니다. 인사 웹사이트의 예를 사용하면 클래스는 직원으로 구성될 수 있고 해당 클래스의 개체는 특정 직원이 될 수 있습니다. 프로그래머는 클래스 내의 모든 개체에서 공유되는 클래스의 필수 속성을 계획합니다. 예를 들어, 모든 직원은 이름, 직위, 급여를 갖게 됩니다. 클래스는 이러한 속성을 정의하지만 해당 값을 지정하지는 않습니다. 따라서 클래스에는 직원 이름에 대한 필드가 있고 특정 직원에 대한 개별 개체에는 Joe Smith라는 이름이 있을 수 있습니다. 클래스 내의 모든 객체도 215

객체 지향 설계(OOD)

프로그래밍 및 코딩의 원리

기존 클래스에서 그리는 대신 프로토타입이라고 하는 기존 객체를 사용합니다.

OOD 원칙 및 애플리케이션 소프트웨어 엔지니어는 약어 SOLID로 식별되는 일련의 OOD 원칙을 따르는 경우가 많습니다. 이러한 원칙은 소프트웨어 엔지니어이자 작가인 Robert Cecil Martin이 처음으로 정리했습니다. SOLID 원칙은 더 나은 소프트웨어 개발, 유지 관리 및 확장을 위한 지침을 제공합니다. 이러한 원칙은 다음과 같습니다. 단일 책임 원칙: 각 클래스에는 하나의 작업만 있어야 합니다. 개방형 폐쇄 원칙: 클래스는 확장에는 개방적이고 수정에는 폐쇄적이어야 합니다. 즉, 클래스 자체를 수정하지 않고도 새 코드로 쉽게 확장할 수 있습니다. Liskov 대체 원칙: 각 하위 클래스는 상위 클래스로 대체될 수 있습니다. 인터페이스 분리 원칙: 클라이언트가 사용하지 않는 인터페이스(메서드 목록)를 구현하도록 강요하지 마세요. 인터페이스는 가능한 한 작아야 합니다. 여러 개의 작은 인터페이스를 갖는 것이 하나의 큰 인터페이스를 갖는 것보다 낫습니다. 종속성 반전 원칙: 상위 수준 모듈은 하위 수준 모듈에 종속되어서는 안 됩니다. 개체 간의 종속성을 최소화하려고 시도합니다. 객체 지향 디자인의 이점은 객체 데이터베이스의 재사용성에 있습니다. 각 객체에는 하나의 작업만 있으므로 객체에 대한 코드는 객체가 필요한 모든 인스턴스에 적용 가능합니다.

방법이나 특정 동작을 공유합니다. 예를 들어, 직원 객체는 해고되거나, 인상되거나, 다른 직위로 승진될 수 있습니다. 객체 디자인은 시스템 디자인 단계에서 매핑된 클래스를 기반으로 합니다. 소프트웨어 엔지니어가 필요한 클래스를 식별하면 필요한 개체를 정의하는 속성과 메서드를 생성하는 코드를 작성할 수 있습니다. 개발이 진행됨에 따라 새로운 클래스나 하위 클래스를 만들어야 한다고 결정할 수도 있습니다. 새 클래스는 클래스 기반 상속을 통해 기존 클래스의 기능을 상속할 수 있습니다. 상속은 코드 재사용의 한 형태입니다. 클래스 기반 상속은 기존 클래스에서 특성을 가져와 새 클래스를 만듭니다. 그런 다음 새 속성을 새 클래스에 추가할 수 있습니다. 이는 복제를 포함하는 프로토타입 상속과는 다릅니다.

OOD는 현금 자동 입출금기(ATM)와 인터페이스할 때 사용자의 요구 사항을 해결하는 등 실제 문제를 해결하는 소프트웨어를 만드는 데 사용됩니다. 이 예에서 소프트웨어 엔지니어는 먼저 거래, 화면, 키패드, 현금 지급기 및 은행 데이터베이스와 같은 클래스를 정의합니다. 클래스나 객체는 명사로 간주될 수 있습니다. 거래와 같은 일부 클래스는 조회, 출금, 입금 또는 이체와 같은 보다 구체적인 하위 클래스로 추가로 분류될 수 있습니다. 그런 다음 클래스 간의 관계가 정의됩니다. 예를 들어, 인출은 사용자가 ATM 카드를 삽입하는 카드 리더기와 사용자가 개인 식별 번호(PIN)를 입력하는 키패드와 관련됩니다. 다음으로 클래스에는 속성이 할당됩니다. 인출의 경우 계좌번호, 잔액, 인출할 현금 금액이 될 수 있습니다. 마지막으로 OOA 단계에서 식별된 사용자 요구에 따라 메서드나 작업이 각 클래스에 할당됩니다. 메소드는 실행, 표시 또는 철회와 같은 동사로 생각할 수 있습니다. 자세한 다이어그램은 객체 내에서 발생하는 변경 사항을 설명합니다.

프로그래밍 및 코딩의 원리

그들이 수행하는 활동 및 시스템 내에서 서로 상호 작용하는 방식.

주의사항 및 단점 OOD를 통한 성공적인 개발에는 현실적인 기대가 필요합니다. 이 접근 방식에서 발생할 수 있는 문제에는 교육 부족이 포함됩니다. 이는 OOD가 모든 개발 지연을 해결하여 마감 기한을 놓칠 것이라는 믿음으로 이어질 수 있습니다. OOD의 속도 약속을 기대하여 일정이 단축되면 더 많은 문제가 발생합니다. 철저한 교육은 OOD의 한계와 미묘함을 이해하는 프로그래머에게 가장 좋은 과정입니다. OOD는 소프트웨어 프로그래밍의 주류였으며 앞으로 수년 동안 사용될 것입니다. 그러나 기술의 발전으로 인해 사용자가 점점 더 의존하고 있는 응용 프로그램에 대해 더 빠른 검색 결과, 더 정확한 계산 및 제한된 대역폭의 더 나은 사용을 제공할 수 있는 프로그래밍 언어가 필요합니다. 또한 OOD가 모든 요구 사항에 가장 적합한 선택은 아닙니다. 그래픽, 인터페이스, 데이터베이스가 많은 시스템에는 적합하지만, 단순한 시스템에는 TOD(작업 중심 설계)가 더 나은 선택일 수 있습니다. —테레사 E. 슈미트

객체 지향 프로그래밍(OOP)

참고문헌 Booch, Grady 등. 애플리케이션을 통한 객체 지향 분석 및 설계. 3판 어퍼 새들 리버: 애디슨, 2007. 인쇄. 데니스, 앨런, 바바라 헤일리 윅섬, 데이비드 테가든. 시스템 분석 및 설계: UML을 사용한 객체 지향 접근 방식. 5판 호보켄: 와일리, 2015. 인쇄. 가자, 조지. “객체 지향 프로그래밍의 단점을 다루기.” 에드. 린다 리히터. 브라이트 허브. 브라이트 허브(Bright Hub), 2011년 5월 19일. 웹. 2016년 2월 6일. 하렐, 제이콥. “SynthOS와 작업 중심 프로그래밍 ming.” 임베디드 컴퓨팅 설계. 임베디드 컴퓨팅 설계, 2016년 2월 2일. 웹. 2016년 2월 7일. 메츠, 샌디. Ruby의 실용적인 객체 지향 디자인: 민첩한 입문서. 어퍼 새들 리버: 애디슨, 2012. 인쇄. 올로룬토바, 사무엘. “SOLID: 객체 지향 설계의 첫 5가지 원칙.” 스코치 위스키. Scotch.io, 2015년 3월 18일. 웹. 2016년 2월 1일. 퍼이어, 마틴. “올해 주목해야 할 프로그래밍 트렌드.” 테크크런치. AOL, 2016년 1월 13일. 웹. 2016년 2월 7일. Weisfeld, Matt. 객체 지향 사고 과정. 4판 어퍼 새들 리버(Upper Saddle River): 애디슨, 2013년. 인쇄.

객체 지향 프로그래밍(OOP) 연구 분야 소프트웨어 개발; 프로그래밍 방법론; 컴퓨터 과학 개요 객체 지향 프로그래밍(OOP)은 최종 애플리케이션을 생성하기 위해 상호 운용되는 데이터 및 기능의 컨테이너 역할을 하는 객체를 기반으로 하는 패러다임입니다. OOPL(객체 지향 프로그래밍 언어)은 OOP 패러다임을 기반으로 합니다. 이는 전통적인 절차적 프로그래밍을 개선하도록 설계되었습니다. 주요 용어 클래스: 객체 지향 프로그래밍에서 공통 변수와 메소드를 공유하는 관련 객체의 범주입니다.

인터페이스: 객체 지향 프로그래밍에서 클래스의 객체에 필요한 동작, 메소드 및 속성을 지정하는 구조입니다. '계약'이라고도 합니다. 객체: 객체 지향 프로그래밍에서 특정 클래스에 할당된 변수와 메서드를 공유하는 특정 클래스에 속하는 자체 포함 데이터 모듈입니다. 패키지: 객체 지향 프로그래밍에서 관련 클래스와 인터페이스를 논리적인 방식으로 구성하는 데 사용되는 네임스페이스 또는 기호 집합입니다.

객체 지향 프로그래밍 이해 객체 지향 프로그래밍(OOP)은 데이터와 기능의 컨테이너인 객체를 기반으로 하는 패러다임입니다. 이 물체들은 함께 작용하여 217을 형성합니다.

객체 지향 프로그래밍(OOP)

프로그래밍 및 코딩의 원리

다른 유형과 구별되는 기능 및 속성이 추가되었습니다. 예를 들어, 헬리콥터는 이착륙은 물론 호버링도 가능합니다. 이런 식으로 헬리콥터는 특수 항공기 등급으로 간주될 수 있습니다. OOP는 "상속"이라는 기술을 사용하여 이 개념을 모델링합니다. 상속을 사용하면 이륙 및 착륙 방법을 포함하는 항공기 클래스를 만든 다음 헬리콥터 하위 클래스가 항공기 상위 클래스에서 해당 기능을 상속하고 호버링 기능을 추가할 수 있습니다. 마찬가지로 항공기용 인터페이스에서는 항공기 클래스 내의 모든 개체에 이륙 및 착륙 방법이 있어야 합니다. OOPL(객체 지향 프로그래밍 언어)은 OOP 패러다임을 기반으로 합니다. OOPL에는 다양한 유형이 있습니다. Java 및 Ruby와 같은 순수 OOPL은 전적으로 OOP를 기반으로 합니다. Python과 같은 하이브리드 언어는 주로 OOP 접근 방식을 기반으로 하지만 절차적 프로그래밍 패러다임의 요소를 지원합니다. 마지막 유형은 COBOL 및 Fortran과 같은 OOP 개념을 포함하도록 확장된 절차적 언어입니다.

객체 지향 디자인의 이점은 객체 데이터베이스의 재사용성에 있습니다. 각 객체에는 하나의 작업만 있으므로 객체에 대한 코드는 객체가 필요한 모든 인스턴스에 적용 가능합니다.

완성된 프로그램. 클래스는 객체가 갖는 속성과 객체가 제공하는 기능을 정의합니다. 속성은 필드나 변수에 저장되는 개체의 상태를 나타냅니다. 함수 또는 메소드는 객체의 동작을 정의합니다. 예를 들어 비행기 객체에는 날개 길이, 속도, 무게, 색상과 같은 속성(상태)이 있고 이동, 이륙, 상승, 하강, 회전, 착륙과 같은 메서드(동작)가 있습니다. 개체가 프로그램의 다른 구성 요소에서 사용할 수 있도록 해야 하는 메서드와 속성을 해당 개체의 인터페이스라고 합니다. 관련 클래스와 인터페이스는 패키지라는 그룹으로 구성됩니다. 현실 세계에서는 많은 객체가 동일한 속성과 기능을 공유합니다. 예를 들어, 모든 항공기는 이착륙할 수 있으며 속도와 같은 공통 속성을 공유할 수 있습니다. 그러나 특정 유형의 항공기는 218

소프트웨어 개발 개선 OOPL은 절차적 언어를 개선하도록 설계되었습니다. 절차적 언어보다 더 큰 코드 모듈성을 허용합니다. 이렇게 하면 프로그램 내에서 문제를 예방하고 수정하는 것이 더 쉬워집니다. OOPL은 개체의 메서드와 속성을 비공개로 설정하거나 숨길 수 있으므로 강력한 데이터 무결성과 데이터 보안을 제공합니다. OOPL은 문자열을 사용하도록 설계된 문자열 지향 언어와 달리 모든 유형의 데이터에서 잘 작동합니다. OOP 프로그램은 새로운 기능이 필요할 때 확장하기도 쉽습니다. OOPL은 또한 상속을 통해 코드 재사용을 촉진합니다. 확장이 쉽고 향후 변화에 적응해야 하는 애플리케이션에 적합합니다. OOPL은 매우 다른 시스템에서 독립적으로 작업하는 개발자가 서로 협력해야 하는 프로젝트에 적합합니다. 모든 개발자가 세부 정보를 공유하거나 액세스할 필요가 없기 때문입니다. 다양한 유형의 OOPL에는 서로 다른 장점과 단점이 있습니다. 순수 언어는 절차적 언어에서 발생하는 오류와 비효율성을 방지하면서 OOP의 이점을 제공합니다. 그러나 최선의 선택이 될 수 있는 절차적 접근 방식을 사용하는 능력이 부족합니다. 하이브리드 언어는 프로그래머에게 적절한 경우 특정 절차적 기술을 사용할 수 있는 유연성을 제공하는 동시에 OOP의 이점을 제공합니다.

프로그래밍 및 코딩의 원리

샘플 문제

개발자는 덧셈, 곱셈과 같은 기본 계산을 수행하는 데 사용되는 코드를 작성하고 있습니다. 다음은 숫자 두 개를 더하는 기능만 제공하는 초기 버전입니다. 공용 클래스 계산기 전용 number1 As Integer 전용 number2 As Integer 속성 input1() As Integer Get 반환 number1 End Get Set(값은 정수로) number1 = value End Set End 속성 속성 input2() As Integer Get 반환 number2 End Get Set(값 As Integer) number2 = value End Set End 속성 Public Function Add() As Integer Dim result As Integer result = number1 + number 2 반환 결과 End Function End Class Function addNumbers(x As Integer, y As Integer) As Integer Dim myCalculator As Calculator = 새로운 계산기() Dim myResult As Integer myCalculator.input1 = x myCalculator.input2 = y myResult = myCalculator.Add() Return myResult End Function

코드 내의 클래스, 인스턴스 변수 및 메서드를 식별합니다. 답변: 코드의 첫 번째 섹션에서는 두 개의 속성(input1 및 input2)과 두 개의 숫자를 더하고 결과를 반환하는 한 개의 메서드(Add)가 있는 Calculator 클래스를 정의합니다. 클래스에는 number1과 number2라는 두 개의 변수가 정의되어 있습니다.

객체 지향 프로그래밍(OOP)

addNumbers() 메서드에서 생성된 계산기 클래스의 인스턴스에는 두 개의 변수가 정의되어 있습니다. 첫 번째는 myCalculator 변수입니다. 이 변수는 메서드에서 생성된 Calculator 개체의 인스턴스를 참조하는 데 사용됩니다. 두 번째 변수는 myResult 변수로, 함수가 myCalculator.Add 메서드를 호출할 때 반환된 값을 저장하는 데 사용됩니다.

성공적인 소프트웨어 OOP는 절차적 프로그래밍과 문자열 지향 프로그래밍의 많은 단점을 해결하는 새로운 프로그래밍 패러다임을 제시했습니다. 또한 프로그래머가 두 접근 방식의 최고의 기능에 액세스할 수 있는 하이브리드 언어의 개발도 가능해졌습니다. 순수 언어와 하이브리드 언어 모두 OOPL은 가장 널리 사용되는 언어가 되었으며 소프트웨어 개발을 지배하는 언어로 성장했습니다. 다른 패러다임을 통합하는 OOPL의 능력은 새로운 프로그래밍 패러다임이 개발될 때 관련성을 유지할 수 있게 해줄 것입니다. —Maura Valentino, MSLIS 참고문헌 Belton, Padraig. “미래 코딩: 컴퓨팅의 미래는 어떤 모습일까요?” BBC 뉴스, BBC, 2015년 5월 15일, www.bbc.com/news/business-32743770. 2016년 2월 24일 액세스. Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2014. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2016. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016. Van Roy, Peter 및 Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. Weisfeld, Matt. 객체 지향 사고 과정. 4판, Addison-Wesley, 2013. Zakas, Nicholas C. 객체 지향 JavaScript의 원리. 노스타치프레스, 2014. 219

P 개인 정보 보호 권리 1960년대 이전에는 미국 법률에 개인 정보 보호 권리가 명시되어 있지 않았습니다. 일반적으로 미국 시민은 자신의 개인과 재산을 보호하는 개인 정보 보호에 대한 권리가 있다고 이해되었지만 그 권리에 무엇이 포함되어 있는지는 확실하지 않았습니다. 1965년 광범위한 문화적 변화의 결과로 대법원은 Griswold v. Connecticut 사건에서 처음으로 사생활 보호권을 인정했으며, 이는 결혼한 부부에게 산아제한에 대해 스스로 결정을 내릴 수 있는 권리를 부여했습니다. 8년 후 Roe v. Wade 사건에서 대법원은 낙태권에 대한 지지 근거를 개인정보 보호권에 근거했습니다. 이후 프라이버시권의 개념은 불법 수색으로부터의 보호부터 동성애자의 성적 권리까지 모든 것을 포괄하는 것으로 확대됐다. 9·11 테러 이후

Privacy International 2007 개인 정보 보호 순위.

220

알카에다 대원들의 미국 공격 이후, 테러와의 전쟁은 프라이버시권을 최우선으로 삼았고, 시민 자유주의자와 프라이버시가 국가 안보보다 뒷자리에 있어야 한다고 믿는 사람들 사이의 기나긴 싸움을 시작했습니다.

개요 주 법원과 연방 법원이 사생활 보호권을 인정한 후, 게이 남성이 자신의 집에서 사생활이 보장되는 곳에서 합의에 따라 성관계를 가질 권리 등 다양한 문제에 대한 사생활 보호 논쟁이 일어났습니다. 이는 많은 주의 남색법을 위반했습니다. Bowers v. Hardwick) 및 고등학생이 의심할 이유 없이 약물 검사를 받지 않을 권리(Board of Education v. Earls). 대법원은 어느 쪽에서도 개인정보 보호권을 인정하지 않았습니다.

프로그래밍 및 코딩의 원리

사례. 그러나 2003년 Lawrence v. Texas 판결에서 대법원은 Bowers v. Hardwick의 판결을 뒤집고 주의 남색법이 위헌이라고 판결했습니다. 개인의 프라이버시 권리와 의심되는 범죄자에 대해 엄격한 소송을 제기하기 위한 법 집행의 필요성은 지속적인 딜레마를 야기합니다. 새로운 기술로 인해 정보 수집이 쉬워졌지만, 개인 정보 보호 옹호자들은 무고한 개인의 권리를 침해하는 일도 더 쉬워졌다고 주장합니다. 21세기 초에 진행 중인 전투 중 하나는 범죄자 용의자뿐만 아니라 모든 차량의 데이터를 무작위로 읽고 분석하는 자동 번호판 판독기(LPR)의 사용과 관련이 있습니다. 또 다른 전투에는 체포되었지만 범죄로 유죄 판결을 받지 않은 개인의 일상적인 DNA 수집이 포함됩니다. 유명인의 사생활 보호권과 수정헌법 제1조에서 보장하는 언론의 자유에 대한 논쟁도 미국과 해외에서 열띤 논쟁을 불러일으켰습니다. 1997년 8월 프랑스에서 웨일스 왕세자비 다이애나의 죽음을 초래한 것이 파파라치라는 의심을 받았을 때, 침해적인 언론 전술에 대한 전 세계적인 반발이 일어났다. 2009년에 캘리포니아 주는 파파라치 개혁 계획을 통과시켜 도를 넘은 파파라치에게 벌금을 부과했습니다. 유럽에서는 이미 유사한 법률이 시행되고 있었습니다. 2년 후, 폭스 뉴스(Fox News), 뉴욕 포스트(New York Post), 월스트리트 저널(Wall Street Journal)을 소유한 영국 언론계의 거물 루퍼트 머독(Rupert Murdoch)이 Sun(Sun)과 뉴스 오브 더 월드(News of the World)의 기자들에게 윌리엄 왕자, 배우 휴 그랜트, 해리포터 작가 J. K. 롤링 등 유명인과 뉴스 기사에 관련된 유명인이 아닌 개인 및 가족의 전화를 도청하십시오. 그 결과 발생한 스캔들은 News of the World를 무너뜨리고 머독 제국의 최고 경영자들의 경력을 무너뜨리는 동시에 영국 및 기타 지역에서 개인 정보 보호 권리에 대한 지원을 강화했습니다. 미국에서는 1974년 개인정보 보호법이 통과되면서 정부 기관이 정보를 수집하고 배포할 권리가 제한되었습니다. 그러나 9/11 테러 공격은 많은 미국인들이 당연하게 여겼던 안전의식과 사생활 보호권을 앗아갔습니다. 9/11 이후 시대는 조지 W. 부시(George W. Bush)의 테러와의 전쟁으로 정의되었습니다. 이 전쟁에서 의회는 테러를 차단하고 방해하는 데 필요한 적절한 도구를 제공하여 미국을 통합하고 강화하는 대통령의 전례 없는 권한 요구에 응했습니다.

개인정보 보호 권리

미국 애국법(USA PATROIT Act)과 같습니다. 확립된 적법 절차 규칙을 우회했다는 비난이 있는 가운데, 이 법안에는 정부에 전화 도청, 전자 매체 감시, 도서관 활동 추적, DNA 샘플을 무차별적으로 수집할 수 있는 권리를 부여하는 1,000개 이상의 조항이 포함되어 있습니다. 현재 진행 중인 개인 정보 보호 전쟁은 2013년 여름 국가 안보국(NSA) 계약자였던 에드워드 스노든이 정부가 개인 전화 통화와 이메일을 통해 정보를 수집하는 것에 대한 기밀 정보를 유출한 후 출국하면서 더욱 뜨거워졌습니다. 스노든의 행동은 1978년에 설립되어 NSA가 다양한 활동에 대한 정보를 수집하는 데 사용되었던 비밀 해외 정보 감시 법원에 대한 전국적인 분노를 불러일으켰습니다. 교회 단체부터 인권 운동가에 이르기까지 개인 정보 보호 단체는 정당한 이유 없이 정부 스파이 활동을 중단시키기 위해 소송을 제기함으로써 이에 대응했습니다. FBI와 기술 회사인 Apple은 2016년 Apple 제품에 대한 개인 정보 보호 권리를 놓고 분쟁을 벌였습니다. 2015년 12월 2일, 시에드 리즈완 파루크(Syed Rizwan Farook)와 타쉬핀 말리크(Tashfeen Malik)는 캘리포니아주 샌버나디노에서 열린 사무실 휴일 파티에서 14명을 살해하고 22명을 부상시켰습니다. 두 명의 총격범은 나중에 경찰에 의해 사살되었습니다. FBI는 전화기의 보안 기능 때문에 Farook의 iPhone에 있는 데이터에 접근할 수 없었습니다. 연방 기관은 Apple에 전화 해킹을 도와달라고 요청했지만 회사는 고객 개인 정보 보호 및 선례 설정에 대한 우려를 이유로 거부했습니다. FBI는 결국 애플에 대한 요청을 기각하고 외부 코더를 고용해 애플을 우회해 휴대폰 해킹 프로그램을 작성했다. 2016년 4월 현재 FBI는 Apple 제품의 취약점을 수정할 수 있도록 코드를 Apple과 공유할지 여부를 결정하고 있습니다. 이 사건은 국가 안보에 대한 잠재적인 위협에 직면하여 신기술을 사용하여 시민의 개인 정보 보호 권리의 회색 영역을 계속 탐구하고 있습니다. —Elizabeth Rholetter Purdy, MA, PhD 참고문헌 Alderman, Ellen 및 Caroline Kennedy. 개인 정보 보호에 대한 권리. 뉴욕: Knopf, 1995. 인쇄. Allen, Anita L. 인기 없는 개인 정보 보호: 우리는 무엇을 해야 합니까? 뉴욕: 옥스퍼드 UP, 2011. 인쇄. 221

프로그래밍 및 코딩의 원리

프로그래밍 언어

베르날, 폴. 인터넷 개인정보 보호 권리: 자율성을 보호할 권리. 뉴욕: 캠브리지 UP, 2014. 인쇄. 브릴, 스티븐. 이후: 미국은 어떻게 9·12 시대에 직면했는가. 뉴욕: 사이먼, 2003. 인쇄. 엡스타인, 리, 토마스 G. 워커. 변화하는 미국을 위한 헌법: 단기 과정. 6판 로스앤젤레스: 세이지, 2015. 인쇄. 카이저, 개럿. 은둔. 뉴욕: Picador, 2012. 인쇄. 켐퍼, 비트시. 개인 정보 보호 권리: 헌법 해석. 뉴욕: 로젠, 2015. 인쇄. 크림스키, 쉘든, 타니아 시몬첼리. 유전적 정의: DNA 데이터 은행, 범죄 수사 및 시민의 자유. 뉴욕: 컬럼비아 UP, 2011. 인쇄.

리히트블라우, 에릭. “법원은 비밀리에 N.S.A의 권한을 대폭 확대했습니다.” New York Times 2013년 7월 7일, New York 에디션: A1. 인쇄. 스트라힐레비츠, 리오르 제이콥. “개인 정보 보호법의 실증 이론을 향하여.” 하버드 법률 리뷰 126.7(2013): 2010-42. 인쇄. 휠러, 리 앤. 섹스가 시민의 자유가 된 방법. 뉴욕: 옥스퍼드 UP, 2013. 인쇄. 라이트, 올리버. “해킹 스캔들: 이것이 영국의 워터게이트인가?” 독립 2011년 7월 9일, 독립. co.uk. 편물. 2013년 8월 1일. Zetter, Kim, Brian Barrett. “애플이 FBI에게: 샌버나디노 아이폰을 해킹하도록 강요할 수는 없습니다.” 열광한. Condé Nast, 2016년 2월 25일. 웹. 2016년 4월 15일.

프로그래밍 언어 학습 분야 컴퓨터 공학; 응용

소프트웨어

공학;

개요 프로그래밍 언어는 컴퓨터의 작동을 제어하고 컴퓨터 프로그램을 만드는 데 사용되는 코드입니다. 컴퓨터 프로그램은 계산 수행이나 데이터 처리 등 작지만 특정한 작업을 수행하는 방법을 컴퓨터에 알려주는 일련의 명령으로 만들어집니다. 주요 용어 추상화: 프로그램의 구조적 복잡성을 줄여 프로그램을 더 쉽게 만들고, 이해하고, 유지 관리하고, 사용할 수 있도록 하는 기술입니다. 선언적 언어: 원하는 결과를 지정하는 언어이지만 원하는 결과를 달성하는 데 필요한 작업 순서는 지정하지 않습니다. 명령형 언어: 컴퓨터에게 특정 작업 순서를 수행하도록 지시하는 언어. 의미론: 언어에 의미를 제공하는 규칙. 구문: 언어를 구성하는 기호를 올바르게 구성하는 방법을 설명하는 규칙입니다. 222

튜링 완전(Turing Complete): 가능한 모든 계산을 수행할 수 있는 프로그래밍 언어입니다.

프로그래밍 언어란 무엇입니까? 프로그래밍 언어는 컴퓨터 프로그램을 만드는 데 사용되는 구성 언어입니다. 컴퓨터 작동을 제어하는 ​​일련의 명령을 전달합니다. 컴퓨터의 중앙처리장치는 기계어를 통해 작동합니다. 기계어는 읽기, 쓰기, 편집이 매우 어려운 숫자 명령어를 기반으로 합니다. 따라서 컴퓨터 프로그램 작성을 단순화하기 위해 고급 프로그래밍 언어가 개발되었습니다. 프로그래밍 언어는 기계어 코드로 변환되는 코드를 작성하는 데 사용됩니다. 그런 다음 기계어 코드는 컴퓨터, 스마트폰 또는 기타 기계에 의해 실행됩니다. 프로그래밍 언어에는 다양한 종류가 있습니다. 1세대 또는 기계어 언어는 컴퓨터에서 직접 처리됩니다. 이러한 언어는 실행이 빠르고 효율적입니다. 그러나 사람이 읽기가 어렵고 사용하려면 하드웨어에 대한 고급 지식이 필요합니다. 2세대 언어, 즉 어셈블리 언어는 인간이 더 쉽게 읽을 수 있습니다. 그러나 컴퓨터에서 실행되기 전에 기계어 코드로 변환되어야 합니다. 2세대 언어는 1세대 언어보다 더 자주 사용됩니다.

프로그래밍 및 코딩의 원리

프로그래밍 언어

다양한 프로그래밍 언어에 대한 TIOBE 지수에서는 C와 Java가 가장 높은 평가를 받은 언어입니다.

하드웨어와 빠르고 효율적으로 상호 작용하면서도 사람이 사용하기가 더 쉽습니다. 1세대 언어와 2세대 언어는 모두 저수준 언어입니다. 3세대 언어는 가장 널리 사용되는 프로그래밍 언어입니다. 3세대 또는 고급 프로그래밍 언어는 저급 언어보다 사용하기가 더 쉽습니다. 그러나 속도가 빠르거나 효율적이지는 않습니다. 이러한 언어의 초기 예로는 Fortran, COBOL 및 ALGOL이 있습니다. 21세기에 가장 널리 사용되는 프로그래밍 언어 중 일부는 3세대 프로그래밍 언어입니다. 여기에는 C++, C#, Java, JavaScript 및 BASIC이 포함됩니다. 더 높은 수준의 추상화를 갖춘 프로그래밍 언어를 4세대 언어라고도 합니다. 추상화 수준이 높을수록 플랫폼 독립성이 높아집니다. 예로는 Ruby, Python, Perl 등이 있습니다. 프로그래밍 언어는 다양한 프로그래밍 패러다임이나 스타일을 기반으로 할 수 있습니다. COBOL과 같은 명령형 언어는 명령문을 사용하여 원하는 결과를 얻기 위해 특정 작업 순서를 수행하도록 컴퓨터에 지시합니다. 선언적 언어는 원하는 결과를 지정하지만 다음 작업에 사용될 특정 작업 순서는 지정하지 않습니다.

그것을 이루다. SQL(구조적 쿼리 언어)이 한 예입니다. 프로그래밍 언어는 수행할 수 있는 다양한 계산 수에 따라 분류될 수도 있습니다. 튜링 완전한 프로그래밍 언어는 가능한 모든 계산과 알고리즘을 수행할 수 있습니다. 대부분의 프로그래밍 언어는 Turing Complete입니다. 그러나 Charity 및 Epigram과 같은 일부 프로그래밍 언어는 제한된 수의 계산만 수행할 수 있으므로 Turing Complete가 아닙니다.

프로그래밍 언어의 구조 프로그래밍 언어의 기본 구조 규칙은 구문과 의미로 정의됩니다. 프로그래밍 언어의 구문은 단어, 숫자, 구두점과 같은 기호가 사용되는 방식에 대한 규칙을 정의하는 문법입니다. 프로그래밍 언어의 의미 체계는 해당 구문을 사용하여 구성된 문의 의미를 해석하는 데 사용되는 규칙을 제공합니다. 예를 들어, 1 + 피자 문은 프로그래밍 언어의 구문을 따를 수 있습니다. 그러나 숫자와 단어를 함께 추가하면(223과 같이)

프로그래밍 언어

두 개의 숫자를 추가하는 것과 반대됨)은 의미상 의미가 없을 수 있습니다. 프로그래밍 언어로 작성된 프로그램이 올바르게 실행되려면 언어의 구문 및 의미론에 의해 설정된 구조적 규칙을 준수해야 합니다. 추상화는 프로그램의 구조적 복잡성을 줄여줍니다. 추상적인 언어가 많을수록 이해하고 사용하기가 더 쉽습니다. 추상화는 프로그램이 사용하는 모든 기능이 한 번만 구현되어야 하고 중복되지 않아야 한다는 원칙에 기반합니다. 추상화는 필수적인 샘플 문제에만 초점을 맞춥니다.

아래 의사 코드는 텍스트 파일의 단어 수를 세고 단어가 발견되지 않으면 파일을 삭제하도록 설계된 알고리즘을 설명합니다. 파일 열기 파일의 각 단어에 대해 counter = counter + 1; 카운터 = 0이면 파일 삭제 파일을 닫습니다. 의사 코드를 사용하여 파일의 단어 수를 세고 단어 수가 300보다 크면 단어 수를 인쇄하는 알고리즘을 설명합니다. 답: 파일을 엽니다. 파일의 단어 단어 개수 = 단어 개수 + 1; If wordcount > 300 그러면 wordcount를 인쇄합니다. 파일을 닫습니다. 위의 의사코드는 Open the file과 같은 명령문에는 자연어를 사용하고 wordcount = wordcount + 1과 같은 명령문에는 프로그래밍 언어를 사용합니다. 의사코드는 컴퓨터에서 실행될 수 없습니다. 그러나 프로그램이나 알고리즘의 작동 원리의 개요를 보여주는 데는 도움이 됩니다. 224

프로그래밍 및 코딩의 원리

프로그램의 요구 사항. 서브루틴을 사용하여 추상화를 구현할 수 있습니다. 서브루틴은 고객의 이름이 텍스트 파일에 있는지 확인하는 것과 같은 특정 작업을 수행하는 일련의 명령문입니다. 추상화가 사용되지 않으면 고객 이름이 파일에 있는지 확인하는 데 필요한 일련의 명령문은 해당 확인이 필요한 프로그램의 모든 위치에서 반복되어야 합니다. 서브루틴을 사용하면 일련의 명령문이 서브루틴 내의 한 위치에만 존재합니다. 따라서 중복될 필요가 없습니다.

의사 코드 사용 프로그램을 구성하는 프로그래밍 언어 문을 "코드"라고 합니다. 코드는 프로그래밍 언어의 구문과 의미 규칙을 모두 준수해야 합니다. 의사코드(Pseudocode)는 프로그래밍 언어와 영어 등의 자연어를 조합하여 프로그램이나 알고리즘을 간단히 기술하는 것을 말한다. 유사 코드는 코드보다 이해하기 쉽고 교과서나 과학 출판물에서 자주 사용됩니다. 프로그래밍 언어의 미래 인터넷의 지속적인 발전과 가전제품, 무인 자동차, 원격 조종 드론 등 프로그래밍 가능한 새로운 기계의 도입으로 프로그래밍 언어의 중요성이 커지고 있습니다. 이러한 시스템은 더 크고 복잡하며 상호 연결된 프로그램을 위해 설계된 새로운 프로그래밍 언어와 패러다임에 대한 수요를 증가시킬 것입니다. —Maura Valentino, MSLIS 참고문헌 Belton, Padraig. “미래 코딩: 컴퓨팅의 미래는 어떤 모습일까요?” BBC 뉴스. BBC, 2015년 5월 15일. 웹. 2016년 2월 24일. Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 케임브리지: MIT P, 2006. 인쇄. 하퍼, 로버트. 프로그래밍 언어를 위한 실용적인 기초. 캠브리지: 캠브리지 UP, 2013. 인쇄. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 옥스퍼드: 옥스퍼드 UP, 1999. 인쇄.

프로그래밍 및 코딩의 원리

프로토타이핑

Scott, Michael L. 프로그래밍 언어 화용론. 벌링턴: Kaufmann, 2009. 인쇄. 반 로이, 피터. 컴퓨터 프로그래밍의 개념, 기술 및 모델. 케임브리지: MIT P, 2004. 인쇄.

Watt, David A. 프로그래밍 언어 설계 개념. 웨스트 서식스: Wiley, 2004. 인쇄. 우즈, 댄. “선언적 프로그램 방식을 채택하면 기술로부터의 수익이 향상되는 이유.” 포브스. Forbes.com, 2013년 4월 17일. 웹. 2016년 3월 2일.

프로토타이핑 연구 분야 소프트웨어 개발; 프로그래밍 방법론; 소프트웨어 엔지니어링 ABSTRACT 프로토타이핑은 최종 사용자의 피드백을 기반으로 반복적으로 개선되는 작업 모델의 사용에 초점을 맞춘 소프트웨어 개발 방법론입니다. 프로토타이핑은 중요한 최종 사용자 상호 작용과 복잡한 사용자 인터페이스를 포함하는 시스템을 개발하는 데 가장 자주 사용됩니다. 주요 용어 수평 프로토타입: 사용자 인터페이스에 초점을 맞추고 전체 시스템에 대한 광범위한 보기를 제공하는 작업 소프트웨어 모델입니다. 통합: 컴퓨터 과학에서 하드웨어든 소프트웨어든 개별 시스템 구성 요소를 단일 통합 시스템으로 결합하는 프로세스입니다. 요구 사항: 제공해야 하는 서비스나 작동해야 하는 제약과 같은 소프트웨어 시스템이나 기타 제품의 필수 특성입니다. 수직 프로토타입: 전체 시스템의 특정 구성 요소에 초점을 맞추고 해당 구성 요소가 어떻게 작동하는지 자세히 설명하는 작업 소프트웨어 모델입니다.

소프트웨어 프로토타이핑 이해 프로토타이핑은 개발 중인 애플리케이션의 작업 모델을 만드는 것과 관련된 소프트웨어 개발 방법론입니다. 이러한 작업 모델 또는 프로토타입은 사용자 및 기타 이해관계자의 피드백을 기반으로 반복적으로 개선되고 개선됩니다. 프로토타이핑은 반복적인 개발이다

시스템이 필요에 따라 기능할 때까지 프로토타입을 반복적으로 설계, 제작, 평가 및 개선하는 방법입니다. 프로토타입은 작동하는 모델이지만 완전하지는 않습니다. 여기에는 부분적인 기능만 포함되어 있으며 개발 프로세스의 각 주기 동안 개정, 확장 및 개선될 예정입니다. 프로토타입에는 두 가지 범주가 있습니다. 수평형 프로토타입은 개발 중인 전체 소프트웨어 시스템을 모델링합니다. 이들은 제한된 내부 기능으로 전체 시스템에 대한 광범위한 보기를 제공하는 사용자 인터페이스에 중점을 두는 경우가 많습니다. 수직형 프로토타입은 시스템의 개별 부품을 심층적으로 모델링하는 데 사용됩니다. 특정 시스템 기능이나 하위 시스템과 같은 개별 구성 요소가 어떻게 작동하는지에 대한 자세한 보기를 제공합니다. 프로토타입 제작은 일반적으로 요구 사항 식별, 프로토타입 개발, 사용자 평가, 프로토타입 개정의 네 가지 주요 단계로 구성됩니다. 첫 번째 단계에서는 소프트웨어가 충족해야 하는 기본 요구 사항이 결정됩니다. 이 단계의 초점은 폭포수 개발과 같은 전통적인 방법론의 경우처럼 포괄적이고 상세한 요구 사항을 개발하는 것이 아니라 사용자의 요구와 사용자 인터페이스 디자인에 있습니다. 두 번째 단계에서는 프로젝트의 초기 요구 사항과 이전 프로토타입 제작 주기 동안 받은 피드백을 기반으로 프로토타입이 생성됩니다. 사용자 평가 단계에서는 고객과 기타 이해관계자가 프로토타입을 테스트하고 개발팀에 피드백을 제공합니다. 네 번째 단계에는 해당 피드백을 기반으로 프로토타입을 수정하거나 개선하는 작업이 포함됩니다. 그런 다음 애플리케이션이 사용자 및 기타 이해관계자의 요구 사항을 충족할 때까지 2~4단계가 반복됩니다. 프로토타입에는 다양한 유형이 있습니다. 신속한 프로토타입 또는 폐쇄형 프로토타입 제작 225

프로토타이핑

프로그래밍 및 코딩의 원리

익스트림 프로토타이핑은 웹 개발에 일반적으로 사용되는 3단계 방법입니다. 먼저, 전체 웹 사이트 또는 애플리케이션의 정적이며 일반적으로 HTML 기반 프로토타입이 개발됩니다. 다음으로 전체 사용자 인터페이스를 시뮬레이션하는 두 번째 프로토타입이 개발됩니다. 이 프로토타입에는 애플리케이션이 작동하는 데 필요한 기본 기능이 포함되어 있지 않습니다. 실제 기능은 처음 두 단계의 프로토타입을 통합하여 마지막 단계에 추가됩니다.

프로토타입 제작에 대한 올바른 접근 방식을 선택하는 것은 시스템 요구 사항을 정의하기 위해 얼마나 많은 시간을 투자했는지, 개발 과정에서 시스템을 사용할 수 있는지 여부, 프로토타입을 사용하여 요구 사항을 검증하거나 충족하는지 여부에 따라 달라집니다. 개발 과정.

프로토타입 제작의 경우 기본 요구 사항만 결정된 후 프로세스 초기에 첫 번째 프로토타입이 생성됩니다. 이 예비 프로토타입을 생성하면 개발자와 이해관계자가 요구 사항을 더 잘 이해하고 개선할 수 있습니다. 그런 다음 프로토타입은 폐기되고 실제 시스템에서 작업이 시작됩니다. 이 방법은 대규모 소프트웨어 시스템의 작은 부분을 빠르게 테스트하는 데 자주 사용됩니다. 일회용 프로토타입을 사용하여 이 작은 부분이 올바르게 작동하는지 확인하고 나면 해당 기능이 최종 시스템에 통합됩니다. 기능을 통합하는 이러한 프로세스를 통합이라고 합니다. 또 다른 유형은 진화적 프로토타이핑(evolutionary prototyping)이라고 합니다. 진화적 프로토타입 제작에서 첫 번째 프로토타입은 처음부터 잘 정의되고 명확하게 이해되는 요구 사항에만 기반을 둡니다. 초기 프로토타입은 폐기되지 않습니다. 대신 더 많은 요구 사항이 명확해지고 이해됨에 따라 새로운 기능이 추가됩니다. 이 프로세스는 초기의 최소한의 기능을 갖춘 프로토타입이 최종의 완전한 기능을 갖춘 시스템으로 확장될 때까지 반복됩니다. 증분 프로토타입 제작에서는 다양한 시스템 구성 요소 각각에 대해 여러 프로토타입이 제작됩니다. 이러한 구성 요소는 별도로 개발된 다음 통합되어 완성된 애플리케이션을 형성합니다. 226

사용자 상호 작용에 대한 강조 프로토타이핑은 다른 방법론에 비해 몇 가지 장점을 제공합니다. 사용자가 개발 프로세스의 모든 단계에 참여하므로 프로젝트에 대한 사용자의 열정, 이해 및 헌신이 극대화됩니다. 또한 사용자 참여를 통해 개발 프로세스 초기에 설계 결함과 누락된 기능을 발견할 수 있습니다. 이렇게 하면 최종 애플리케이션이 최종 사용자의 실제 요구 사항을 충족할 가능성이 높아집니다. 프로토타입은 상당한 이점을 제공하지만 이 방법에는 단점도 있습니다. 설계 프로세스 초기에 세부 사양을 결정하지 못하면 사양이 끊임없이 변경되고 추가 기능이 포함되어 프로젝트 비용과 일정에 부정적인 영향을 미칠 수 있습니다. 개발 중인 시스템의 규모와 복잡성이 커져 이해관계자가 프로젝트의 원래 목표를 놓칠 수 있습니다. 또한, 프로토타입을 사용하여 개발된 프로젝트는 여러 프로토타입을 제작할 때 자원이 효율적으로 사용될 수 있도록 관리되어야 합니다. 프로토타입 제작은 폭포 모델과 같은 선형 개발 방법론과 크게 다릅니다. 이러한 방법론은 설계 프로세스 초기에 시스템 사양을 자세히 정의하고 개발 프로세스 중 변경을 최소화합니다. 프로토타입 제작은 다른 반복 개발 모델과 더 밀접하게 관련되어 있습니다. 프로토타입은 RAD(신속한 애플리케이션 개발) 또는 나선형 모델과 같은 반복적인 방법론과 함께 사용되는 경우가 많습니다. 실제 소프트웨어 프로토타이핑 프로토타이핑은 시스템과 광범위한 사용자 상호 작용을 특징으로 하는 웹 애플리케이션을 개발하는 데 일반적으로 사용됩니다. 예를 들어, 소매업체는 모든 제품을 포함하는 가상 매장을 개발해야 할 수 있습니다.

프로그래밍 및 코딩의 원리

매장에 소개된 제품. 이러한 애플리케이션은 다양한 배경과 기술적 능력을 지닌 다양한 사용자 집단에 초점을 맞추며, 애플리케이션의 성공은 최종 사용자가 시스템을 성공적으로 탐색하고 사용할 수 있는 용이성에 달려 있습니다. 프로토타입 개발 모델은 사용자가 프로젝트 시작부터 최종 완료까지 개발에 참여하고 영향을 미칠 수 있으므로 이러한 애플리케이션에 이상적입니다. 이는 최종 시스템이 사용자의 요구를 충족할 가능성을 크게 높입니다.

사용자 참여 프로토타이핑의 힘은 사용하기 쉽고 최종 사용자의 요구 사항을 충족하는 데 초점을 맞춘 소프트웨어 시스템 개발을 촉진합니다. 따라서 웹 애플리케이션 및 모바일 소비자 애플리케이션과 같이 광범위한 사용자 상호 작용과 사용하기 쉬운 인터페이스가 필요한 시스템을 개발하는 데 이상적인 방법론입니다. 프로토타입을 사용하면 시스템 설계의 약점을 조기에 식별할 수 있으며 프로젝트 이해관계자의 동의를 높일 수 있습니다. 소프트웨어 시스템이 일상적인 사용자의 삶에서 점점 더 중요해짐에 따라 프로토타입은 사용자에게 초점을 맞췄습니다.

프로토타이핑

참여와 만족은 중요한 소프트웨어 설계 방법론으로 남을 것입니다. —Maura Valentino, MSLIS 참고문헌 Bell, Michael. 증분 소프트웨어 아키텍처: 실패한 IT 구현을 저장하는 방법. John Wiley & Sons, 2016. 프리드먼, 다니엘 P., 미첼 완드. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Jayaswal, Bijay K. 및 Peter C. Patton. 신뢰할 수 있는 소프트웨어를 위한 설계: 강력한 소프트웨어 개발을 위한 도구, 기술 및 방법론. Prentice Hall, 2007. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. Wysocki, Robert K. 효과적인 프로젝트 관리: 전통적, 민첩성, 극한. 7판, John Wiley & Sons, 2014.

227

Q 양자 컴퓨팅 연구 분야 컴퓨터 과학; 시스템 수준 프로그래밍; 컴퓨터 공학 개요 양자 컴퓨팅은 신호를 처리하기 위해 실리콘 전기 회로 대신 하전 입자를 사용하는 컴퓨터 공학의 새로운 분야입니다. 엔지니어들은 양자 컴퓨팅이 기존 컴퓨팅 기술의 한계를 뛰어넘어 훨씬 더 발전할 수 있는 잠재력을 가지고 있다고 믿습니다. 주요 용어 얽힘: 입자가 나중에 분리되어 개별 시스템의 일부가 되더라도 두 개 이상의 입자의 양자 상태가 연결된 상태로 유지되는 현상입니다. 양자 논리 게이트: 소수의 큐비트의 동작이나 상태를 변경하는 장치입니다. 양자 비트(qubit): 동시에 여러 상태로 존재할 수 있으므로 동시에 여러 값을 가질 수 있는 양자 계산의 기본 단위입니다. 상태: 에너지, 운동량, 위치 및 회전과 같은 요소를 포함하여 특정 시점의 물리적 시스템에 대한 완전한 설명입니다. 중첩: 양자 상태를 설명하는 파동을 포함하여 둘 이상의 파동이 결합되어 고유한 특성을 가진 새로운 파동 상태를 생성할 수 있다는 원리입니다. 이를 통해 큐비트가 동시에 두 가지 상태에 있을 수 있습니다.

아원자 계산 이론 양자 컴퓨팅은 228개가 아닌 아원자 입자를 사용하는 새로운 컴퓨팅 분야입니다.

신호를 전송하고 계산을 수행하는 실리콘 회로. 양자물리학은 아원자 규모에서 입자의 거동을 연구합니다. 매우 작은 규모에서 광자(빛의 기본 단위)와 같은 아원자 입자는 입자와 파동의 특성을 모두 나타냅니다. 파동-입자 이중성이라고 불리는 이 현상은 아원자 입자에게 독특한 특성을 부여합니다. 전통적인 컴퓨터 알고리즘은 디지털 전기 신호의 물리적 특성에 의해 제한됩니다. 양자 컴퓨팅에 종사하는 엔지니어들은 양자 역학의 고유한 특성을 기반으로 하는 양자 알고리즘이 더 빠르고 효율적으로 계산을 완료할 수 있기를 바라고 있습니다.

양자 데이터의 기본 디지털 컴퓨팅은 전기 신호를 사용하여 이진 데이터를 생성합니다. 비트라고 불리는 이진수에는 0 또는 1의 두 가지 값이 있습니다. 디지털 컴퓨터도 논리 게이트를 사용합니다. 이는 신호를 증폭하거나 변경하여 데이터 비트를 처리하는 전자 회로입니다. 디지털 컴퓨터의 논리 게이트는 하나 이상의 입력을 받아들이고 하나의 출력만 생성합니다. 양자 컴퓨팅에서는 디지털 비트가 양자 비트(큐비트)로 대체됩니다. 큐비트는 아원자 입자를 조작하여 생성됩니다. 큐비트의 값은 현재 양자 상태를 나타냅니다. 양자 상태는 운동량, 물리적 위치 및 에너지 특성을 포함하여 입자에 대해 알려진 모든 데이터입니다. 큐비트로 사용하려면 입자에 이진수 0과 1을 나타내는 두 가지 고유한 상태가 있어야 합니다. 예를 들어 큐비트가 광자인 경우 두 상태는 수평 편파(0)와 수직 편파(1)입니다. 그러나 양자 시스템의 입자는 동시에 두 개 이상의 상태로 존재할 수 있습니다. 이 원리를 중첩이라고 합니다. 따라서 큐비트는 0 또는 1의 이진 값으로 제한되지 않습니다. 대신

프로그래밍 및 코딩의 원리

양자 컴퓨팅

표준 알고리즘보다 계산 속도가 두 배 빠릅니다. 연구원들은 또한 양자 알고리즘이 검색 0 또는 1 0 또는 1 또는 0 1 엔진의 속도와 정확성을 향상시킬 수 있음을 입증했습니다. 그러나 이 분야에 대한 연구는 불완전하며 reQuantum 컴퓨팅의 잠재적 이점은 양자 비트(큐비트)를 사용합니다. 클래식 비트는 주요 명확하지 않은 비트 중 하나에 속할 수 있습니다. 0 또는 1의 두 가지 상태이지만 큐비트는 상태 0, 상태 1 또는 슈퍼상태 01일 수 있습니다. 양자 컴퓨팅이 주류가 되기 전에 극복해야 할 중요한 과제가 있습니다. 양자 상태를 제어하고 동시에 조작할 때 0, 1 또는 0과 1 둘 다의 값을 중첩하는 기존 방법. 티클에는 매우 민감한 재료가 필요하며 EquiQuantum 입자도 알려진 특성을 표시합니다. 얽힘으로 양자 컴퓨터를 연구하는 과학자들. 이는 두 개 이상의 입자가 가장 큰 영향을 미칠 수 있다고 주장하는 경우 특정 수학과 물리학의 한 입자가 다른 입자의 상태를 변경하는 기술 과학의 상태를 변경하는 방식으로 연결되어 있으며 문제에도 계산이 너무 광범위해서 물리적으로 분리됩니다. 얽힘 현상은 잠재적으로 지구상의 퍼터 자원 개발을 허용할 수 있는 모든 화합물에서도 발견될 수 없습니다. 먼 거리와 물리적 위치에 걸쳐 얽힘 및 초점정보와 같은 특성을 즉시 전송할 수 있는 특수 양자 양자 컴퓨터는 큐비트가 장벽을 수행할 수 있음을 의미합니다. 전통적인 컴퓨터 기술로는 실용적이지 않거나 불가능할 병렬 컴퓨팅 프로세스. 양자 컴퓨터의 실제 설계 양자 컴퓨터의 현재 설계에서는 에너지(Micah L. Issitt)를 사용하여 전자나 광자와 같은 게틱 입자를 큐비트로 사용합니다. 이러한 입자의 상태는 디지털 논리 게이트가 전기 신호를 변경하는 것과 마찬가지로 참고문헌 양자 논리 게이트를 사용하여 변경됩니다. 양자 게이트는 Ambainis, Andris를 작동시킬 수 있습니다. “레이저, 전자기장, 양자 컴퓨터의 에너지를 사용하여 무엇을 할 수 있나요?” Institute Letter Spring에는 여러 가지 다른 방법이 있습니다. 이러한 상태 변경은 2014: 6–7 입니다. 고등연구소. 웹. 24 데이터를 계산하는 데 사용됩니다. 망치다 . 2016 . 연구의 한 가지 방법은 Bone, Simon 및 Matias Castro의 잠재적 파생물입니다. “이온 트랩의 큐비트에 대한 간략한 역사. 이온은 양자 컴퓨팅을 잃어버린 원자입니다.” 깜짝 5~6월 또는 하나 이상의 전자를 얻습니다. 이온 트랩은 elec1997:n 을 사용합니다. 페이그. 컴퓨터학과, Imperial tric 및 자기장을 통해 College London을 포착, 유지 및 정리합니다. 웹. 3월 24일 2016 . 이온. 크로더스, 브룩. “Microsoft는 여러분도 이해할 수 있도록 양자 컴퓨팅을 설명합니다.” 씨넷 . CBS 인터랙티브, 2014년 7월 25일. 웹. 24 양자컴퓨팅의 잠재력 Mar . 2016 . 2016년 현재 양자컴의 실용가치 가우딘, 샤론. "양자 컴퓨팅은 공상 과학 소설에서 벗어나는 작은 규모의 경우에만 시연될 수 있습니다." 컴퓨터월드. 잠재적인 응용 프로그램 집합입니다. 그러한 응용 프로그램 중 하나Computerworld, 12월 15일. 2015. 웹. 3월 24일 tion은 mathemati2016에서 만든 Shor의 알고리즘입니다. 수학적 "양자 인수분해 과정의 놀라운 가능성"을 포함하는 cian Peter Shor. 인수분해는 컴퓨팅에 사용됩니다.” 테크레이더. 미래, 1월 17일 2010. Web . 3월 26일 2016 . 함께 곱하면 세 번째 알려진 숫자를 제공합니다. “컴퓨팅 분야의 비약적인 도약.” 노바. WGBH/Shor의 알고리즘은 양자 PBS 온라인(2011년 7월 21일)의 속성을 사용합니다. 웹. 3월 24일 2016 . 인수분해 속도를 높이는 물리학. 수행할 수 있다

클래식 비트

퀀텀비트

229

R 랜덤 액세스 메모리(RAM) 연구 분야 컴퓨터 공학; 정보 기술 개요 RAM(Random-Access Memory)은 컴퓨터가 프로그램 및 운영 체제 데이터를 유지하고 빠르게 액세스할 수 있도록 하는 메모리 형태입니다. RAM 하드웨어는 수많은 트랜지스터가 포함된 집적 회로 칩으로 구성됩니다. 대부분의 RAM은 동적이므로 정기적으로 새로 고쳐야 하고, 휘발성이므로 RAM의 전원이 꺼지면 데이터가 유지되지 않습니다. 그러나 일부 RAM은 정적이거나 비휘발성입니다. 주요 용어 직접 액세스 스토리지: 데이터가 저장 장치에 전용 주소와 위치를 갖고 있어 순차적이 아닌 직접 액세스가 가능한 데이터 스토리지 유형입니다. 동적 랜덤 액세스 메모리(DRAM): 장치의 메모리를 정기적으로 새로 고쳐야 하는 RAM의 한 형태입니다. 그렇지 않으면 포함된 데이터가 사라집니다. 비휘발성 랜덤 액세스 메모리(NVRAM): 장치에 전원이 공급되지 않는 경우에도 데이터가 유지되는 RAM의 한 형태입니다. 읽기 전용 메모리(ROM): 컴퓨터 시스템에서 읽을 수 있지만 수정할 수 없는 비휘발성 데이터 저장소 유형입니다. 섀도우 RAM: 더 빠르게 액세스할 수 있도록 읽기 전용 메모리에 저장된 코드를 RAM에 복사하는 RAM 형식입니다. SRAM(정적 랜덤 액세스 메모리): 장치의 메모리를 정기적으로 새로 고칠 필요가 없지만 장치의 전원이 꺼지면 데이터가 여전히 손실되는 RAM의 한 형태입니다. 230

RAM의 역사 컴퓨터 프로세스의 속도와 효율성은 컴퓨터 사용자의 가장 큰 관심사 중 하나입니다. 하나 이상의 프로그램이 시작될 때 느리게 실행되거나(지연) 완전히 작동을 멈추는(중단 또는 정지) 컴퓨터는 사용하기 불편합니다. 지연이나 정지는 컴퓨터 메모리(일반적으로 RAM) 부족으로 인해 발생하는 경우가 많습니다. RAM은 작은 칩 형태를 취하는 필수 컴퓨터 구성 요소입니다. 데이터를 저장하고 처리하는 임시 공간을 제공하여 컴퓨터가 더 빠르게 작업할 수 있도록 합니다. RAM이 없으면 이 데이터를 직접 액세스 스토리지나 읽기 전용 메모리(ROM)에서 검색해야 하므로 시간이 훨씬 더 오래 걸립니다. 컴퓨터 메모리는 수십 년에 걸쳐 다양한 형태를 취해왔습니다. 초기 메모리 기술은 진공관과 자기 드럼을 기반으로 했습니다. 1950년대부터 1970년대 중반 사이에는 "자기 코어 메모리"라고 불리는 메모리 형태가 가장 일반적이었습니다. 같은 시기에 RAM 칩이 처음 개발되었지만 아직 메모리 용량이 충분하지 않아 코어 메모리를 대체할 수 없었습니다. RAM 기술의 주요 발전은 1968년 IBM 엔지니어 Robert Dennard가 최초의 DRAM(동적 랜덤 액세스 메모리) 칩에 대한 특허를 취득하면서 이루어졌습니다. Dennard의 원래 칩은 한 쌍의 트랜지스터와 커패시터로 구성된 메모리 셀을 특징으로 합니다. 커패시터는 단일 비트의 이진 데이터를 전하로 저장했고, 트랜지스터는 초당 수천 번씩 전하를 읽고 새로 고쳤습니다. 이후 몇 년 동안 Fairchild 및 Intel과 같은 반도체 회사는 칩당 메모리 셀 수가 증가하면서 다양한 용량의 DRAM 칩을 생산했습니다. Intel은 또한 셀당 3개의 트랜지스터가 있는 DRAM을 출시했지만 시간이 지남에 따라 점점 더 작은 컴퓨터 구성 요소에 대한 요구로 인해 이 디자인이 만들어졌습니다.

프로그래밍 및 코딩의 원리

랜덤 액세스 메모리(RAM)

스램

아스람

SBSRAM

음주

FPMDRAM

에드람

베도람

SDRAM

랜덤 액세스 메모리에는 정적 RAM(SRAM)과 동적 RAM(DRAM)이라는 두 가지 주요 범주가 있습니다. 정적 RAM은 비동기식 SRAM(ASRAM) 또는 버스트 기능을 갖춘 동기식 SRAM(SBSRAM)일 수 있습니다. 동적 RAM은 고속 페이지 모드 DRAM(FPMDRAM), 확장 데이터 출력 DRAM(EDODRAM), 버스트 기능이 있는 확장 데이터 출력 DRAM(BEDODRAM) 또는 동기식 DRAM(SDRAM)의 네 가지 유형 중 하나로 제공될 수 있습니다.

실용성이 떨어집니다. 2010년대에는 일반적으로 사용되는 RAM 칩에 수십억 개의 메모리 셀이 통합되었습니다.

RAM 유형 모든 RAM은 동일한 기본 용도로 사용되지만 다양한 종류가 있습니다. 각 유형에는 고유한 특성이 있습니다. 개인용 컴퓨터에 가장 많이 사용되는 RAM은 Dennard가 발명하고 Intel과 같은 회사에서 대중화한 DRAM의 직계 후손입니다. DRAM은 동적입니다. 즉, 메모리 셀의 전하와 저장된 데이터는 자주 새로 고치지 않으면 희미해집니다. DRAM의 일반적인 변형은 속도 중심의 DDR SDRAM(Double Data Rate Synchronous DRAM)으로, 4세대는 2014년에 시장에 출시되었습니다. 동적이 아닌 RAM은 SRAM(Static Random Access Memory)으로 알려져 있습니다. SRAM 칩에는 DRAM 칩보다 더 많은 트랜지스터가 포함되어 있습니다. 셀당 6개의 트랜지스터를 사용합니다. 2개는 셀에 대한 액세스를 제어하고 4개는 단일 데이터 비트를 저장합니다. 따라서 생산 비용이 훨씬 더 많이 듭니다. 소량의 SRAM은 컴퓨터의 중앙처리장치(CPU)에 자주 사용되는 반면, DRAM은 일반적인 RAM 기능을 수행합니다. 대부분의 RAM이 동적이듯이 대부분의 RAM도 휘발성입니다. 따라서 RAM에 저장된 데이터는

예를 들어 설치된 컴퓨터가 꺼진 경우와 같이 더 이상 전기가 공급되지 않으면 사라집니다. 그러나 일부 RAM은 전원이 꺼진 후에도 데이터를 유지할 수 있습니다. 이러한 RAM을 NVRAM(비휘발성 랜덤 액세스 메모리)이라고 합니다.

RAM 사용 RAM은 컴퓨터의 다른 메모리 및 저장 구성 요소와 함께 작동하여 컴퓨터가 지연되거나 정지되지 않고 더 빠르고 효율적으로 실행될 수 있도록 합니다. 컴퓨터 메모리를 저장 장치와 혼동해서는 안 됩니다. 메모리는 애플리케이션 데이터가 처리되고 저장되는 곳입니다. 스토리지에는 파일과 프로그램이 보관됩니다. 컴퓨터가 RAM에 저장된 데이터에 액세스하는 것보다 ROM이나 장기 저장소에 저장된 프로그램 데이터에 액세스하는 데 시간이 더 걸립니다. 따라서 RAM을 사용하면 컴퓨터가 데이터를 검색하고 요청된 기능을 더 빠르게 수행할 수 있습니다. 특히 리소스 집약적인 프로그램을 실행할 때 컴퓨터 성능을 향상시키기 위해 사용자는 RAM을 고용량 칩으로 교체하여 컴퓨터가 임시 메모리에 더 많은 데이터를 저장할 수 있도록 할 수 있습니다. 섀도우 RAM RAM은 일반적으로 사용 중인 애플리케이션과 관련된 데이터를 관리하는 데 사용되지만 때로는 231에 사용될 수도 있습니다.

프로그래밍 및 코딩의 원리

신속한 애플리케이션 개발(RAD)

일반적으로 RAM을 사용하지 않는 기능을 수행하는 데 도움을 줍니다. 컴퓨터의 기본 입출력 시스템(BIOS)과 같은 특정 코드는 일반적으로 컴퓨터의 ROM에 저장됩니다. 그러나 ROM에 저장된 데이터에 액세스하는 데는 시간이 많이 걸릴 수 있습니다. 일부 컴퓨터에서는 쉽게 액세스할 수 있도록 ROM에서 데이터를 복사하고 RAM에 복사본을 저장하여 이 문제를 해결할 수 있습니다. ROM에서 복사된 코드가 포함된 RAM을 섀도우 RAM이라고 합니다. —조이 크렐린

안녕, 토니, 규리 파페이. 컴퓨팅 세계: 혁명을 통한 여정. 뉴욕: 캠브리지 UP, 2015. 인쇄. ITL 교육 솔루션. 정보 기술 소개. 2판 델리: 피어슨, 2012. 인쇄. “섀도우 RAM 기본.” 마이크로소프트 지원. Microsoft, 2015년 12월 4일. 웹. 2016년 3월 10일. 존 스톡스. “RAM 가이드 1부: DRAM 및 SDRAM 기본 사항.” 아르스 테크니카. Condé Nast, 2000년 7월 18일. 웹. 2016년 3월 10일. "스토리지 대 메모리." 컴퓨터 데스크탑 백과사전. 컴퓨터 언어., 1981-2016. 편물. 2016년 3월 10일.

참고문헌 Adee, Sally. “추억을 주셔서 감사합니다.” IEEE 스펙트럼. IEEE, 2009년 5월 1일. 웹. 2016년 3월 10일.

RAD(신속 응용 프로그램 개발) 연구 분야 소프트웨어 개발; 소프트웨어 공학

소프트웨어 모듈: 최종적이고 완성된 설계를 형성하기 위해 다른 모듈과 통합되는 소프트웨어 시스템의 개별 구성 요소입니다.

개요 RAD(Rapid Application Development)는 기존 소프트웨어 개발에 사용되는 광범위한 계획 대신 신속한 프로토타입 제작에 의존하는 소프트웨어 개발 방법론입니다. RAD는 짧은 반복, 재사용 가능한 프로토타입 및 여러 소프트웨어 모듈을 사용하는 증분 방법론입니다. 이들은 통합이라는 프로세스로 결합되어 완전한 솔루션을 형성합니다. 주요 용어 통합: 컴퓨터 과학에서 하드웨어든 소프트웨어든 개별 시스템 구성 요소를 단일 통합 시스템으로 결합하는 프로세스입니다. 반복: 소프트웨어 개발에서 제품의 전체 개발 주기 중 독립적인 단일 단계로, 일반적으로 1~3주 동안 지속됩니다. 이 단계에서는 제품의 한 측면이 처음부터 끝까지 다루어지고 다음 개발 단계로 넘어갑니다. 프로토타입: 최종 디자인의 기초 역할을 하는 작업 모델. 232

신속한 애플리케이션 개발(RAD)이란 무엇입니까? RAD(Rapid Application Development)는 기존 소프트웨어 개발 방법론에서 사용되는 광범위한 계획 대신 신속한 프로토타입 제작에 의존하는 소프트웨어 개발 방법론입니다. RAD는 점진적이고 반복적인 방법론입니다. 짧은 반복, 재사용 가능한 프로토타입, 병렬로 개발된 여러 소프트웨어 모듈을 사용합니다. 그런 다음 이러한 요소는 통합이라는 프로세스에서 결합되어 완전한 시스템 또는 솔루션을 형성합니다. 개발자는 소규모 팀의 관리자, 고객 및 기타 이해관계자와 긴밀하게 협력합니다. RAD는 일반적으로 5단계 개발 주기를 사용합니다. 첫 번째 단계는 비즈니스 모델링으로 알려져 있습니다. 이 단계에서는 요구 사항이 식별되고 분석됩니다. 두 번째 단계는 데이터 모델링으로, 이전 단계에서 수집된 정보를 사용하여 필요한 데이터 개체를 정의합니다. 다음은 프로세스 모델링 단계로, 이전 단계에서 개발된 데이터 모델을 변환하여 첫 번째 단계에서 식별된 비즈니스 요구 사항을 수행합니다. 데이터 세트와 상호작용하는 프로세스

프로그래밍 및 코딩의 원리

신속한 애플리케이션 개발(RAD)

신속한 애플리케이션 개발 모델에서는 초기 요구 사항이 정의 및 분석된 후 팀이 별도로 작업할 수 있도록 모듈로 그룹화됩니다. 각 모듈은 출력이 최종 사용자의 요구 사항을 충족할 때까지 설계, 구현 및 테스트 주기를 거치며, 이 시점에서 모듈은 시스템에 통합되어 배포됩니다.

정의되어 있습니다. 네 번째 단계는 프로토타입이 생성되는 애플리케이션 생성 단계입니다. 이전 단계에서 개발된 프로세스 및 데이터 모델은 자동화 도구를 사용하여 코드로 변환됩니다. 마지막 단계는 테스트 및 회전율입니다. 새로운 구성 요소가 시스템에 통합될 때 시스템이 올바르게 작동하는지 확인하기 위해 구성 요소를 테스트합니다. RAD는 프로토타입이 독립적인 테스트를 거치기 때문에 다른 방법론보다 최종 테스트가 덜 필요합니다. 모든 반복 중에 모든 단계가 반복됩니다.

빠르고 적응 가능하며 효과적인 RAD의 반복적이고 점진적인 프로세스를 통해 개발자는 변화하는 요구 사항에 신속하게 대응하고 솔루션을 제공할 수 있습니다. 이 방법론은 재사용 가능한 구성요소의 개발을 장려합니다. 구성 요소를 자주 통합하면 새 구성 요소가 배포될 때 시스템에 발생하는 버그의 영향을 더 쉽게 최소화할 수 있습니다.

그리고 통합. 또한 고객과 기타 이해관계자가 설계 주기 전반에 걸쳐 참여하므로 솔루션이 고객의 요구 사항을 충족할 가능성이 높아집니다. 성공적인 RAD는 강력한 개발 팀에 달려 있습니다. 팀 구성원은 비즈니스 프로세스와 요구 사항을 정확하게 식별해야 하며, 특히 모델링에 대해서는 높은 수준의 전문 지식이 필요합니다. 쉽게 모듈화할 수 없는 시스템은 RAD에 적합한 후보가 아닙니다. 기능의 모듈화가 이 방법론의 핵심 개념이기 때문입니다. RAD는 중대형 솔루션을 개발할 때 가장 적합합니다. RAD 관리 및 구현과 관련된 비용은 더 작고 덜 복잡한 설계에 사용하기에는 과도할 수 있습니다.

RAD를 사용하여 솔루션 개발 RAD는 많은 상황에서 적합한 방법론입니다. 짧은 개발 시간이 233일 때 이상적입니다.

프로그래밍 및 코딩의 원리

합리적 선택 이론

필요한 경우, 비즈니스 프로세스와 데이터 사용을 분석하는 데 적절한 전문 지식을 사용할 수 있는 경우, 그리고 자동화된 개발 도구 사용과 관련된 비용이 정당화될 수 있는 경우입니다. RAD는 요구사항이 변화하는 프로젝트에도 좋은 선택입니다. 예를 들어, 대규모 다국적 기업의 정보 기술(IT) 부서는 회사의 인적 자원(HR) 관리 시스템을 최근 인수한 다른 회사의 시스템과 통합하는 애플리케이션을 개발하는 임무를 맡을 수 있습니다. 신청서는 연말까지 전달되어야 합니다. RAD는 여러 가지 이유로 이 프로젝트에 이상적입니다. 이 프로젝트는 시간에 민감하며 솔루션은 몇 달 내에 제공되어야 합니다. 초기 분석을 기반으로 필요한 설계는 모듈화에 적합합니다. 이 회사는 여러 대규모 프로젝트를 완료했으며 모델링 및 시스템 아키텍처 설계에 대한 전문 지식을 갖춘 경험이 풍부한 대규모 IT 직원을 고용하고 있습니다. 이 프로젝트는 HR 및 회계 부서의 최우선 과제이며 직원들이 프로젝트에 대한 비즈니스 전문 지식, 고객 테스트 및 피드백을 제공할 수 있도록 돕습니다. 기업의 규모를 고려하면 RAD 도구의 비용은 엄청나지 않습니다. 투자금이 향후 프로젝트에 활용될 가능성이 높습니다. 이러한 요소는 모두 RAD 방법론의 사용을 지원합니다.

미래는 RAD입니다. RAD는 효과적인 소프트웨어 솔루션을 빠르고 유연하게 제공하는 데 도움을 줍니다. 필요에 따라 기능을 개발하고 추가할 수 있으므로 프로젝트 요구 사항을 더 잘 충족할 수 있는 적응형 솔루션이 탄생합니다. 이러한 이유로 RAD는 요구 사항이 변화하는 대규모 프로젝트에 이상적으로 적합합니다. 모델링, 프로토타입 및 자동화를 광범위하게 사용하면

개발 과정. 설계 및 테스트 프로세스에 고객이 참여하면 귀중한 피드백을 얻을 수 있으며 고객의 실제 요구 사항을 보다 효과적으로 충족할 수 있는 솔루션을 얻을 수 있습니다. 모바일 애플리케이션 개발, 웹 상거래 등 빠르게 변화하고 경쟁이 치열한 비즈니스 부문의 기업은 새로운 고객 요구 사항이 발견되고 새로운 비즈니스 기회가 나타날 때 신속하게 배포하고 쉽게 변경할 수 있는 솔루션이 필요합니다. 빠르게 발전하는 소프트웨어 세계가 모든 종류의 기업에 점점 더 중요해지고 있는 가운데, RAD는 많은 개발자에게 중요한 방법론으로 남을 것입니다. —Maura Valentino, MSLIS 참고문헌 Bell, Michael. 증분 소프트웨어 아키텍처: 실패한 IT 구현을 저장하는 방법. John Wiley & Sons, 2016. 프리드먼, 다니엘 P., 미첼 완드. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Jayaswal, Bijay K. 및 Peter C. Patton. 신뢰할 수 있는 소프트웨어를 위한 설계: 강력한 소프트웨어 개발을 위한 도구, 기술 및 방법론. Prentice Hall, 2007. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. Wysocki, Robert K. 효과적인 프로젝트 관리: 전통적, 민첩성, 극한. 7판, John Wiley & Sons, 2014.

합리적 선택 이론 합리적 선택 이론은 미시경제학의 핵심이며, 학문적 연구 분야에서 실증적 지지를 거의 받지 못했다는 사실에도 불구하고 계속해서 많은 국가에서 경제학과 정치 담론을 지배하고 있습니다. 합리적 선택 이론은 인간이 세계에서 독특하다고 주장합니다.

그들은 동물처럼 본능에 전적으로 의존하기보다는 자신의 행동을 안내하기 위해 이성을 사용합니다. 수세기에 걸쳐 수많은 철학자들은 이성이 신, 인간 본성 또는 기타 근원에서 나온다고 주장해 왔으며 왜 사람들이 자기 만족과 완전히 일치하지 않는 방식으로 행동하는지 설명했습니다.

프로그래밍 및 코딩의 원리

합리적 선택 이론

1인당 GDP(표시된 데이터는 Worldbank 데이터에서 가져옴) 소득과 자원은 개인이 내릴 수 있는 선택의 종류에 직접적인 영향을 미칩니다.

개요 합리적 선택 이론은 예를 들어 부모가 자녀를 위해 자신의 시간과 노력을 희생하고, 통치자가 미래를 위해 자신의 재산을 발전시키기 위해 일부 의식을 포기하고, 자녀가 학업을 위해 놀이를 포기하는 이유를 설명합니다. 더 나은 교육과 미래 전망을 얻으십시오. 물론 낮은 수준에서는 이러한 행동이 동물의 행동과 구별되지 않습니다. 합리적 선택 이론이 다른 점은 사람들이 자신의 행동에 대한 주체성과 결정에 대한 주권을 가지고 있다고 가정한다는 것입니다. 합리적 선택 이론의 대리인 측면은 미래에 영향을 미칠 수 있는 능력과 앞으로 일어날 일을 바꿀 수 있는 능력에 대해 사람들이 갖는 자기 인식을 모두 포함합니다. 동물은 미래의 조건을 바꿀 수 있는 힘이 있다고 말할 수 있지만 동물은 이를 인식하지 못하고 자신의 행동을 계획하는 데 이를 사용하지 않습니다. 반면에 인간은 자신이 이용할 수 있는 다양한 옵션이 있다는 것을 알고 있으며 효용 개념으로 측정할 때 수익을 극대화할 것이라고 믿는 옵션을 선택할 것입니다. 효용은 관련된 개인의 성향이나 성격에 따라 다르게 구성되는 일반적인 목적의 혜택의 한 형태입니다. 어떤 사람들은 금전적 이득을 선호하고, 어떤 사람들은 육체적 쾌락을 선호하며, 어떤 사람들은 장기적인 이익을 선호합니다.

보안. 행동 방식에 대한 선택은 이러한 선호도를 반영합니다. 합리적 선택 이론의 주권 측면은 사람들이 이러한 종류의 결정을 내릴 수 있는 힘을 가지고 있음을 나타냅니다. 즉, 그들은 다양한 옵션에 대한 정보를 수집하고, 다양한 선택의 예상 결과를 합리적으로 정확하게 평가한 다음, 자신의 선호도(취향과 습관)와 신념(인식)에 따라 선택할 시간과 자원이 있습니다. 원인과 결과에 대해). 그러나 실제 생활에서 사람들은 자신의 행동으로 인해 발생할 수 있는 결과를 정확하게 평가하기에는 시간과 자원이 부족한 경우가 많습니다. 따라서 그들은 과거에 수용 가능한 결과를 제공했던 옵션을 반복적으로 선택하여 대부분의 결정을 일상화합니다. 공급자와 소비자 사이에 존재하는 정보의 비대칭성을 고려할 때 사람들이 정확하고 합리적인 선택을 거의 내릴 수 없다는 것은 놀라운 일이 아닙니다. 비록 그들이 모든 선택 사항을 자세히 계산할 수 있더라도 대부분의 사람들이 자신의 욕구와 욕구에 따라 완전히 행동하는 것을 방해하는 수많은 가족적, 사회적, 문화적, 법적 제약이 존재합니다. 이것이 적용되지 않는 사람들을 소시오패스라고 합니다. 단점에도 불구하고 합리적 선택 이론은 대부분의 사람들이 어떻게 행동할지 예측하는 데 유용한 도구로 남아 있습니다.

프로그래밍 및 코딩의 원리

합리적 선택 이론

소비자가 자신의 요구를 충족할 수 있는 다양한 옵션 중에서 선택할 수 있는 시장 상황과 특히 관련이 있습니다. 피해자의 목표와 동기를 다루는 생활 방식 및 일상 활동 이론과 함께 합리적 선택 이론은 범죄학에 정보를 제공했습니다. 여기서 처벌은 활동 비용이 범죄 행위보다 더 크기 때문에 합리적인 사람들이 범죄 활동에 가담하는 것을 선택하는 것을 억제한다고 믿어집니다. 얻다. 그러나 파트너, 가족 구성원 및 기타 중요한 사회적 상호 작용 간의 관계를 설명하기 위해 비시장 기반 의사 결정에 합리적 선택을 적용하기 위해 확장하면 이론 내의 모순이 문제가 됩니다. 이로 인해 경제학 분야 이외의 많은 인문학 학자들은 이론에 대한 경험적 근거가 거의 없다고 주장하게 되었습니다. —John Walsh, PhD 참고문헌 Ahmad, Janice, Traqina Q. Emeka. “합리적 선택 이론.” 범죄학 및 형사사법 백과사전(2014년 1월): 1–5. 편물. 2015년 7월 5일. 프리드먼, 데브라, 마이클 헥터. “합리적 선택 이론의 기여

236

거시사회학적 연구.” 사회학 이론 6.2(1988): 201-18. 인쇄. 그라스, 볼프강. “경영과 발전에 관한 아퀴나스.” 경영 개발 저널 29.7–8 (2010): 706–15. 인쇄. Hernstein, Richard J. “합리적 선택 이론: 필요하지만 충분하지는 않습니다.” 미국 심리학자 45.3(1990): 356–67. 인쇄. 포트모어, 더글러스 W. “불완전한 이유와 합리적인 선택.” Noûs 46.1 (2012): 24–60. 인쇄. 레드, 스티븐 P., 알렉스 민츠. “국가안보와 외교정책 의사결정에 대한 정책적 관점.” 정책 연구 저널 41.5 (2013): 511–37. 인쇄. 스캇, 존. “합리적 선택 이론.” 현대사회의 이해: 현재의 이론. 에드. 게리 브라우닝, 애비게일 할클리, 프랭크 웹스터. 런던: 세이지, 2000. 126–37. 인쇄. 톰슨. A. “국제법에 합리적 선택 이론 적용: 약속과 함정.” 법률 연구 저널 31.1, 2부(2002): n. 페이지. 인쇄. 윌리엄스, 크리스틴 B., 제인 페도로위츠. “국가 차원의 기관 간 협력 이니셔티브를 뒷받침하는 합리적인 선택과 제도적 요인.” 정부 혁신: 사람, 프로세스 및 정책 6.1(2012): 13–26. 인쇄.

S 검색 엔진 최적화(SEO) 검색 엔진 최적화(SEO)는 키워드 및 색인 용어를 포함하고 HTLM 또는 기타 코딩을 조작하여 웹 사이트가 높은 유기적( 무료) Google 또는 Bing과 같은 검색 엔진 내 순위. 인터넷에서 사용자의 관심을 끌기 위한 경쟁은 치열합니다. 따라서 웹사이트 디자이너는 검색 엔진 최적화를 사용하여 자신의 웹사이트가 처음 3~4개 화면에 나열되도록 합니다. 연구에 따르면 그 지점 이상으로 검색하는 사용자는 거의 없기 때문입니다. 검색 엔진 결과에서 웹사이트의 위치를 ​​최적화하는 목표는 더 많은 양의 웹 트래픽을 유치하여 결과적으로 더 높은 가시성 및/또는 더 큰 수익으로 이어지는 것입니다. SEO 이면의 기술은 가장 정교한 컴퓨터 과학 프로그래밍을 반영하지만 그 논리는

C 34.3%

ㄴ 38.4%

3.3%

F 3.9%

디 3.9%

전자 8.1% 1.6%

1.6%

1.6%

1.6% 1.6%

검색엔진최적화에 대한 인상 이미지입니다.

효과적인 제품 배치를 통해 청중이나 시장을 창출함으로써 100년 이상 광고를해온 전통적인 지혜입니다.

개요 많은 웹사이트는 검색 엔진 자체나 광고를 허용하는 소셜 미디어 네트워크를 통해 단순히 광고 비용을 지불합니다. 그러나 Google 또는 유사한 검색 엔진이 순위에 대한 대가를 수락하는 경우 해당 웹사이트는 결과에 포함되는 것이 유기적이지 않다는 것을 강조하기 위해 스폰서 링크로 나열됩니다. 인터넷 시대에 검색 엔진을 무시하면 웹 사이트 범위가 기하급수적으로 확장될 위험이 있습니다. 1990년대 중반 인터넷의 시장 잠재력에 대한 초기 경험을 통해 많은 웹마스터가 더 넓은 시장을 유치하기 위해 핵심 용어 알고리즘을 조작하고 있었으며 종종 검색 엔진이 단순히 다운로드하기 때문에 궁극적으로 사용자의 시간을 낭비하는 오해의 소지가 있는 핵심 용어 지표를 사용하고 있음이 밝혀졌습니다. 사이트의 초기 화면을 살펴보고 색인이 생성될 핵심 용어(“크롤링”이라고 함)를 수집합니다. 인터넷이 확장되고 트래픽 경쟁이 증가함에 따라 검색 엔진은 필수 용어를 수집하는 방법과 해당 주요 용어가 웹사이트 순위를 매기는 데 사용되는 방법을 웹마스터와 공유하는 데 있어 훨씬 더 보호적이고 훨씬 더 신중해졌습니다. 웹마스터의 전략은 검색엔진의 관심을 끌 수 있도록 웹사이트의 초기 페이지를 디자인하고, 이를 통해 사용자에게 화면에 표시되는 검색결과 지표에서 유기적으로 높은 순위를 생성하는 것입니다. 이를 위해 웹마스터는 검색 엔진의 색인 생성 프로세스를 조작하는 데 능숙한 전문 검색 엔진 최적화 프로그램에 의존합니다. 이는 전통적인 웹사이트들 사이에서 논쟁을 불러일으켰습니다.

프로그래밍 및 코딩의 원리

의미기억

더 나은 프로필을 유도하기 위해 주요 용어와 링크를 의도적으로 조작하기보다는 웹사이트의 콘텐츠가 청중의 관심을 끌어야 한다고 믿습니다. 실제로 검색 엔진 자체는 시스템의 남용 가능성을 인식하고 효율적이고 안정적인 사용자 검색을 제공하기 위해 이러한 조작을 사용하는 웹사이트를 선별하도록 설계된 애플리케이션을 출시했습니다. —Joseph Dewey, MA, PhD 참고문헌 Auletta, Ken. Google 검색: 우리가 알고 있는 세상의 종말. 뉴욕: 펭귄, 2010. 인쇄. 크로프트, 브루스, 트레버 스트로먼. 검색 엔진: 실제 정보 검색. 보스턴: 애디슨, 2009. 인쇄.

Fleischner, Michael H. SEO가 단순해졌습니다: 세계 최대 검색 엔진을 장악하기 위한 전략. 4판 CreateSpace, 2014. 인쇄. 그래폰, 제니퍼, 그라디바 쿠진. SEO: 하루에 한 시간. 뉴욕: Sybex, 2011. 인쇄. Jones, Kristopher B. SEO: 효과적인 인터넷 마케팅을 위한 시각적 청사진. 3판 인디애나폴리스: Wiley, 2013. 인쇄. Karthikeyan, K. 및 M. Sangeetha. “페이지 순위 기반 설계 및 검색 엔진 최적화 구현.” 국제 컴퓨터 응용 저널 40.4(2012): 13–18. 인쇄. Kerdvilbulvech, Chutisant. “검색 엔진 최적화를 이용한 새로운 웹 개발 방법.” 국제 컴퓨터 과학 및 비즈니스 정보학 저널 3.1(2013). 편물. 2013년 8월 26일. 레비, 스티븐. Plex에서: Google이 우리의 삶을 어떻게 생각하고, 작동하고, 형성하는지. 뉴욕: 사이먼, 2011.

의미기억 의미기억은 사실, 정의, 개념 및 기타 형태의 인지 지식을 인코딩, 저장 및 검색하는 것과 관련된 기억 시스템입니다. 의미기억은 종종 자신의 과거 경험에서 별개의 사건이 어디서, 무엇을, 언제 일어났는지에 대한 기억인 일화기억과 대조됩니다. 이는 또한 작업을 수행하는 방법에 대한 지식인 절차적 기억과도 구별됩니다. 과학자들은 뇌의 작동 방식과 인간과 동물이 지식을 학습하고 유지하는 방식에 대한 이해를 높이기 위해 의미 기억과 기타 유형의 기억을 연구합니다. 의미 기억이 어떻게 형성되고, 유지되고, 검색되는지에 대한 연구는 연구자들이 알츠하이머병, 치매, 기억 상실증, 외상성 뇌 손상과 같은 인지 기억 상실과 관련된 상태에 대한 치료법 및 치료법을 개발하는 데 도움이 될 수 있습니다.

개요 에스토니아계 캐나다인 심리학자이자 신경과학자인 Endel Tulving은 1972년 Wayne Donaldson과 함께 편집한 기억 조직(Organization of Memory)의 한 장인 "일화 및 의미 기억"에서 처음으로 일화 기억과 의미 기억을 구별했습니다. 238에서

당시 Tulving은 두 시스템이 구조적으로나 기능적으로 분리되어 있다고 반드시 믿었기 때문이 아니라 토론을 용이하게 하기 위해 구별을 했다고 썼습니다. Tulving에 따르면 일화 기억과 의미 기억은 저장하는 정보의 성격, 참조가 자전적인지 인지적인지, 검색의 조건과 결과, 서로 얼마나 의존하는지, 변형과 삭제에 대한 민감성 측면에서 다릅니다. 간섭으로 인해 저장된 정보가 삭제됩니다. Tulving은 의미 기억이 언어 사용에 필수적이라는 이론을 세웠고 이를 "정신 동의어 사전"에 비유했습니다. 왜냐하면 그것이 단어와 기호에 대한 개인의 조직화된 지식, 그것이 의미하는 것, 참조하는 것, 관련되고 사용되는 방식을 다루기 때문입니다. 일화 기억과 달리 의미 기억은 특정 개인 사건보다는 인지 정보를 인코딩합니다. 전화번호와 같은 사실은 언제, 어디서 배웠는지 꼭 기억하지 않고도 기억할 수 있습니다. 의미기억은 일화기억보다 인출 작업 중 정보가 비자발적으로 손실되거나 변경되는 경우에 덜 취약합니다. 인코딩 및 저장

프로그래밍 및 코딩의 원리

의미론

감각기억의 정보는 일화기억과 무관하다. Tulving은 많이 인용된 1983년 저서 Elements of Episodic Memory에서 일화 기억과 의미 기억에 대해 더 자세히 설명했습니다. 이 연구에서 그는 무엇보다도 일화 기억과 의미 기억이 기능적으로 구별된다는 당시 논란이 되었던 이론을 주장합니다. 다양한 실험이 Tulving의 이론을 뒷받침하여 의미론적 작업과 일화적 작업이 구별된다는 것을 보여주었습니다. 그 이후로 신경 영상 모델은 일화 기억 검색과 의미 기억 검색이 뇌의 서로 다른 부분과 관련되어 있음을 보여주었습니다. 그러나 연구자들은 일화 기억과 마찬가지로 의미 기억이 여전히 해마 형성의 일부에 저장되어 있는지 여부에 대해 의견이 분분합니다. 측두 신피질과 같이 완전히 다른 뇌 영역을 포함합니다. 또는 여러 지역에 분산되어 있습니다. 의미기억에 영향을 미치는 다양한 장애가 있습니다. 가장 주목할만한 것은 알츠하이머병과 의미 치매인데, 둘 다 의미 기억 과정을 더 잘 이해하기 위해 연구됩니다. 반대로, 의미 기억에 대한 연구는 이러한 장애와 기타 기억 장애를 치료하는 데 유용할 수 있습니다. —리사 U. 필립스, MFA

참고문헌 바인더, Jeffrey R., Rutvik H. Desai. “의미 기억의 신경 생물학.” 인지과학 동향 15.11(2011): 527-36. 인쇄. 피에타, 피에르루이지, 피에타 피에타. “인간 기억의 신경 생물학.” 이론생물학포럼 104.1(2011): 69-87. 인쇄. 포스터, 조나단 K. “메모리.” New Scientist 2011년 12월 3일: i–viii. 인쇄 Hart, John, Jr. 및 Michael A. Kraut, eds. 의미 기억의 신경 기초. 캠브리지: 캠브리지 UP, 2007. 인쇄. 밀러, 그렉. “추억 만들기.” 스미소니언 2010년 5월: 38–45. 인쇄. Shivde, Geeta 및 Michael C. Anderson. “의미적 작업 기억의 존재: 직접적인 의미 유지에 대한 증거.” 실험 심리학 저널: 학습, 기억 및 인지 37.6(2011): 1342-70. 인쇄. 툴빙, 엔델. 일화 기억의 요소. 1983. 옥스퍼드: 옥스퍼드 UP, 2008. 인쇄. ______. “일화 및 의미 기억.” 기억의 조직. 에드. 툴빙과 웨인 도날드슨. 뉴욕: 학술, 1972. 381-403. 인쇄. ______. “일화 기억: 마음에서 뇌까지.” 심리학 연례 검토 53(2002): 1–25. 인쇄. 와이스버그, 로버트 W., 로레타 M. 리브스. 인지: 기억에서 창의성까지. 호보켄: 와일리, 2013. 인쇄.

의미론 의미론은 자연적(예: 영어)이든 인공적(예: 컴퓨터 프로그래밍에 사용되는) 언어의 의미에 대한 연구입니다. 대략 "의미하다"로 번역되는 그리스어 semaino에서 유래한 의미론은 본질적으로 언어를 구성하는 단어와 구("기표"라고 함)를 그것이 의미하는 바의 측면에서 조사합니다. 분야가 급속히 성장했던 20세기 의미론의 주요 인물로는 Richard Montague, Noam Chomsky, Donald Davidson이 있습니다. 20세기 전반에 걸쳐 의미론은 철학과 가장 두드러지게 연관되어 있었습니다.

수학, 논리학, 컴퓨터 과학, 문학 이론까지 아우르는 학문입니다.

개요 철학계에서 일반적인 의미 외에도 의미론은 여러 가지 중복되지만 뚜렷한 의미를 갖습니다. 의미론의 동의어인 기호학은 단어와 기호(또는 "기호") 사이의 기본적인 인과 관계와 그것이 의미하는 바를 탐구합니다. 그러나 의미론은 역사적 기간에 따른 단어와 구의 의미 변화도 포함하며, 이 용어는 단어가 나타내는 것뿐만 아니라 그것이 내포하거나 암시하는 것도 설명하는 데 사용될 수 있습니다. 239

프로그래밍 및 코딩의 원리

신호 처리

또한 의미론은 광고 캠페인에 사용되는 것과 같이 의견을 좌우하는 데 사용되는 언어를 나타낼 수도 있습니다. 현대 사회에서 일반화된 정의와 용어로서의 보급에도 불구하고 의미론은 매우 기술적이며 종종 오해되는 언어 연구 분야일 수 있습니다. 학문의 중추를 형성하는 몇 가지 이론은 논리와 수학에 뿌리를 두고 있습니다. 예를 들어, Montague와 가장 자주 연관되는 형식 의미론은 수학적 틀을 사용하여 언어 표현의 구성을 분석하고 표기법을 사용하여 언어 요소를 도표화합니다. 데이비슨(Davidson)이 개척한 진리 조건 의미론은 문장이나 구의 의미가 진실성과 연결되어 있으며 실제로 동일하다고 주장하는 의미론의 또 다른 복잡한 하위 분야입니다. 이러한 이론과 어휘 의미론과 같은 기타 유사한 이론은 언어학, 논리학, 수학 분야 간의 강력한 유대 관계를 보여줍니다. 기술 세계에서 의미론은 컴퓨터 프로그래밍의 핵심 구성 요소가 되었으며, 언어 의미론과 이론적 유사성을 공유합니다. 컴퓨터 과학 의미론은 비록 프로그래밍에 초점을 맞춘 인위적이지만 언어의 속성도 다룹니다. 특히 의미론은 컴퓨터 언어가 실행되는 프로세스를 연구합니다. 따라서 이는 실행 가능한 명령과 관련이 있습니다. 명령을 처리하는 데 사용된 언어가 올바르지 않으면 명령이 특정 소프트웨어나 하드웨어에서 작동하지 않습니다. 언어학이든 컴퓨터 프로그래밍이든 의미론은 일련의 단어, 기호 또는 구문에서 의미를 파생하는 작업을 다룹니다.

매우 복잡하고 학제적인 학술 연구 분야인 의미론은 단어와 그 의미 사이의 연결에 대한 새로운 언어 이론이 등장함에 따라 지속적으로 발전하고 있습니다. —Christopher Rager, MA 참고문헌 Davis, Steven, Brendan S. Gillon. 의미론: 독자. 뉴욕: 옥스퍼드 UP, 2004. 인쇄. 컨스, 케이트. 의미론. 2판 뉴욕: Palgrave, 2011. 인쇄. 리, 후안지. 시맨틱 웹과 웹 과학. 뉴욕: Springer, 2013. 디지털 파일. 뢰브너, 세바스티안. 의미론 이해. 뉴욕: 루트리지(Routledge), 2013. 디지털 파일. 닐슨, 한 리스, 플레밍 닐슨. 애플리케이션의 의미론: 공식적인 소개. 뉴욕: Wiley, 1992. 인쇄. 포트너, 폴, 클라우스 폰 호이징거, 클라우디아 마이엔보른. 의미론: 자연어 의미에 관한 국제 수첩. 베를린: De Gruyter Mouton, 2013. 디지털 파일. Saeed, John I. 의미론. 4판 호보켄: 와일리, 2015. 인쇄. 짐머만, 토마스 에데, 볼프강 슈테르네펠트. 의미론 입문: 의미 구성에 대한 필수 가이드. 보스턴: De Gruyter Mouton, 2013. 인쇄.

신호 처리 연구 분야

주요 약관

알고리즘; 정보 기술; 디지털 미디어

아날로그 신호: 시간이 지남에 따라 값이나 양이 변하는 연속 신호. 필터: 신호 처리에서 신호를 받아 원하지 않는 특정 요소를 제거하고 처리된 신호를 출력하는 장치 또는 절차입니다. 고정 소수점: 숫자 데이터가 최소 16비트를 사용하여 소수점 뒤(때로는 앞)의 고정된 자릿수로 저장되고 표시되는 디지털 신호 처리 유형입니다.

개요 “신호 처리”는 아날로그 또는 디지털 신호를 수신, 수정 및 해석하는 다양한 기술을 의미합니다. 광범위하게 정의되는 신호는 시간이 지남에 따라 전송되는 데이터입니다. 신호는 일상생활에 스며들어 있으며, 많은 현대 기술은 이러한 신호를 획득하고 처리하여 작동합니다. 240

프로그래밍 및 코딩의 원리

원하지 않는 컨볼루션

복원된 오디오 스펙트럼

빈도

빈도

5

디콘볼루션 필터

진폭

진폭

공명 피크

빈도

신호 디콘볼루션 처리

신호 레코더

4

3 진폭

2 진폭

원본 오디오 스펙트럼

진폭

1

신호 처리

빈도

빈도

신호 처리에는 신호 입력을 수신하는 센서가 포함됩니다(1). 입력을 기록하기 위한 프로그래밍에는 고조파 공진(4)과 같은 원하지 않는 컨볼루션(2)을 제거하여 신호 출력(3)이 복원되는 디컨볼루션 필터(5)가 포함될 수 있습니다.

부동 소수점: 숫자 데이터가 저장되고 지수로 올려진 밑수(예: 밑수-2)를 곱한 숫자(가수 또는 유효 숫자라고 함)의 형태로 표시되는 디지털 신호 처리 유형, 최소 32비트를 사용합니다. 푸리에 변환: 단일 함수를 여러 정현파(파동) 함수의 합으로 분해하는 수학 연산자. 선형 예측 코딩: 과거 음성 샘플과 인간 성도의 수학적 근사치를 모두 사용하여 예측에 기여하지 않는 특정 음성 주파수를 제거하는 디지털 음성 처리에 널리 사용되는 도구입니다.

의미. 이를 통해 이해도에 큰 손실 없이 음성을 더 빠른 비트 전송률로 처리할 수 있습니다.

디지털 및 아날로그 신호 신호는 아날로그일 수도 있고 디지털일 수도 있습니다. 아날로그 신호는 연속적입니다. 즉, 수학 함수처럼 서로 다른 값으로 무한히 분할될 수 있습니다. 대조적으로 디지털 신호는 이산적입니다. 이는 일련의 값으로 구성되며 인접한 두 값 "사이"에는 정보가 없습니다. 디지털 신호는 숫자 목록과 비슷합니다. 일반적으로 컴퓨터는 신호를 디지털 방식으로 표현하는 반면, 마이크와 같은 장치는 신호를 아날로그 방식으로 표현합니다. 241에서 신호를 변환하는 것이 가능합니다

신호 처리

신호를 "샘플링"하여 아날로그에서 디지털로 변환합니다. 즉, 신호 값을 일정한 간격으로 기록합니다. 디지털 신호는 디지털 신호에 근접한 전기 신호를 생성하여 아날로그로 변환될 수 있습니다. 아날로그-디지털 신호 변환의 한 가지 예는 음악 연주를 CD에 녹음하는 데 사용되는 설정입니다. 연주자의 목소리와 악기에서 생성되는 음파는 컴퓨터에 연결된 마이크에 의해 포착됩니다. 마이크는 음파를 아날로그 전기 신호로 변환하고, 컴퓨터는 이를 디지털 신호로 변환합니다. 그런 다음 각 신호를 별도로 처리할 수 있습니다. 예를 들어, 드럼의 신호를 더 조용하게 만들거나 기타의 신호를 처리하여 디스토션이나 리버브를 추가할 수 있습니다. 개별 신호가 처리되면 단일 신호로 결합된 다음 CD 형식으로 변환됩니다.

신호 처리 신호 처리의 핵심 개념은 푸리에 변환입니다. 변환은 데이터 자체의 값을 변경하지 않고 데이터가 표현되는 방식을 변경하는 수학 연산자입니다. 신호 처리에서 변환은 신호가 표현되는 방식을 변경합니다. 푸리에 변환을 사용하면 신호를 구성 요소로 나눌 수 있습니다. 마치 음악 코드가 중첩된 음표 세트로 구성된 것처럼 단일 신호를 서로 다른 주파수의 중첩된 파동으로 변환합니다. 그런 다음 신호를 빠르고 효율적으로 분석하여 원치 않는 구성 요소("노이즈")를 억제하고, 이미지에 포함된 특징을 추출하거나, 특정 주파수를 필터링할 수 있습니다. 신호 처리에서 필터는 신호를 받아 미리 정해진 작업을 수행하고(일반적으로 원치 않는 특정 요소 제거) 처리된 신호를 출력하는 장치 또는 프로세스입니다. 예를 들어, 저역 통과 필터는 피콜로에서 생성되는 사운드와 같은 신호에서 고주파수를 제거하고 베이스 기타에서 나오는 소리와 같은 저주파만 그대로 둡니다. 고역 통과 필터는 그 반대입니다. 신호에서 낮은 주파수를 제거하고 높은 주파수만 유지합니다. 디지털 신호를 처리할 때 중요한 고려 사항 중 하나는 데이터를 저장하는 방법입니다. 디지털 신호를 구성하는 이산 값은 고정 소수점 또는 부동 소수점으로 저장될 수 있습니다. 두 형식 모두 장점과 단점이 있습니다. 디지털 신호 프로세서(DSP)는 둘 중 하나에 최적화되어 있습니다. 고정 소수점 DSP는 일반적으로 더 저렴합니다.

프로그래밍 및 코딩의 원리

처리 능력이 덜 필요하지만 훨씬 더 작은 범위의 값을 지원합니다. 부동 소수점 DSP는 더 높은 정밀도와 더 넓은 값 범위를 제공하지만 비용이 더 많이 들고 더 많은 메모리와 전력을 소비합니다. 부동 소수점 DSP는 고정 소수점 값도 처리할 수 있지만 시스템이 부동 소수점에 최적화되어 있으므로 고정 소수점의 장점이 사라집니다.

신호에서 정보 추출 때로는 신호에 추출해야 하는 인코딩된 정보가 포함되어 있는 경우도 있습니다. 예를 들어, 바코드 판독기는 획득한 이미지에서 바코드를 추출합니다. 이 경우 이미지는 신호입니다. 시간보다는 공간에 따라 다르지만 유사한 기술을 적용할 수 있습니다. 필터를 사용하면 높은 공간 주파수(예: 픽셀 값의 급격한 변화) 또는 낮은 공간 주파수(예: 픽셀 값의 매우 점진적인 변화)를 제거할 수 있습니다. 이를 통해 바코드 판독기는 바코드를 찾아 처리하고 바코드가 나타내는 숫자 값을 결정할 수 있습니다. 애플리케이션 신호 처리는 어디에나 있습니다. 모뎀은 전선에서 들어오는 아날로그 신호를 받아 한 컴퓨터가 다른 컴퓨터와 통신하는 데 사용할 수 있는 디지털 신호로 변환합니다. 휴대폰 타워는 휴대폰 통신과 유사하게 작동합니다. 컴퓨터 비전은 제조 또는 추적을 자동화하는 데 사용됩니다. 신호는 CD, DVD 및 SSD(Solid-State Drive)에 저장되어 오디오, 비디오 및 텍스트를 나타냅니다. 신호 처리의 특정 응용 분야 중 하나는 음성 합성 및 분석입니다. 음성 신호 처리는 음성 생성의 소스 필터 모델을 기반으로 하는 선형 예측 코딩에 크게 의존합니다. 이 모델은 인간이 음원(성대)과 선형 음향 필터(목과 입)의 조합을 통해 음성을 생성한다고 가정합니다. 대략적인 튜브 모양의 필터는 음원에서 생성되는 신호를 수정합니다. 이러한 변형은 "포먼트(formant)"라는 공명 주파수를 생성하는데, 이는 음성을 자연스럽게 들리게 하지만 고유한 의미는 전달하지 않습니다. 선형 예측 코딩은 인간 성도의 수학적 모델을 사용하여 이러한 포먼트를 예측합니다. 그런 다음 인간 음성을 보다 빠르게 분석하기 위해 제거하거나 합성 음성 사운드를 보다 자연스럽게 만들기 위해 생성할 수 있습니다. —Andrew Hoelscher, MEng, John Vines, Daniel Horowitz

프로그래밍 및 코딩의 원리

참고문헌 Boashash, Boualem, ed. 시간-주파수 신호 분석 및 처리: 종합 참조. 2판 샌디에고: 학술, 2016. 인쇄. Lathi, B.P. 선형 시스템 및 신호. 2차 개정 에드. 뉴욕: 옥스퍼드 UP, 2010. 인쇄. 오웬, 마크. 실용적인 신호 처리. 뉴욕: 캠브리지 UP, 2012. 인쇄. 프란도니, 파올로, 마틴 베테를리. 통신을 위한 신호 처리. 보카 레이톤: CRC, 2008. 인쇄.

소스코드 주석

프로아키스, 존 G., 디미트리스 G. 마놀라키스. 디지털 신호 처리: 원리, 알고리즘 및 응용. 4판 어퍼 새들 리버: Prentice, 2007. 인쇄. Shenoi, Belle A. 디지털 신호 처리 및 필터 설계 소개. 호보켄: Wiley, 2006. 인쇄. Vetterli, 마틴, Jelena Kovaczevic´, Vivek K. Goyal. 신호 처리의 기초. 캠브리지: 캠브리지 UP, 2014. 인쇄.

소스 코드 주석 연구 분야 코딩 기술; 소프트웨어 개발; 소프트웨어 엔지니어링 개요 소스 코드 주석은 컴퓨터 프로그램 코드의 목적과 구조를 설명하는 데 사용되는 주석입니다. 적절한 주석을 사용하면 컴퓨터 프로그램의 효율적인 생성, 디버깅 및 유지 관리가 용이해지고 프로그래머가 더욱 효과적으로 함께 작업할 수 있습니다. 주요 용어 주석: 컴퓨터 프로그래밍에서 프로그램 실행에 필수적이지는 않지만 코드를 읽는 모든 사람에게 추가 정보를 제공하는 프로그램의 소스 코드에 추가되는 주석 또는 기타 문서입니다. 소프트웨어 문서: 소프트웨어 시스템의 요구 사항, 디자인, 코드 및 기능을 설명하는 자료. 구문: 컴퓨터 프로그래밍에서 프로그래밍 언어의 요소를 배열하는 방법을 제어하는 ​​규칙입니다.

소스 코드 주석 이해하기 컴퓨터 언어 구문에 익숙한 사람이라면 누구나 컴퓨터 프로그램의 소스 코드를 읽고 명령문이나 일련의 명령문이 수행하는 작업을 기초적으로 이해할 수 있습니다. 그러나 코드 자체는 특정 명령문이 왜 사용되었는지 독자에게 밝힐 수 없습니다.

사용되었거나 전체 프로그램 또는 코드 섹션의 전반적인 목적입니다. 이로 인해 코드가 길고 복잡해지고 여러 사람이 액세스하는 경우 특히 코드를 이해하고 디버깅하고 유지 관리하기가 어려워질 수 있습니다. 이 문제를 해결하기 위해 프로그래머는 주석이라는 기술을 사용합니다. 이는 프로그램을 더 쉽게 이해하고, 수정하고, 디버그하고, 유지 관리할 수 있도록 코드에 주석을 추가하는 프로세스입니다. 컴퓨터 코드에는 여러 가지 방법으로 주석을 달 수 있습니다. 예를 들어, 특정 명령이나 변수가 사용된 이유를 설명하기 위해 주석을 사용할 수 있습니다. 주석은 함수, 서브루틴, 클래스 및 메서드를 설명하는 데에도 사용할 수 있습니다. 이러한 이유로 주석은 프로젝트 소프트웨어 문서의 중요한 구성 요소입니다. 소스 코드 자체와 함께 포함되어 있으므로 내부 문서로 간주됩니다. 이와 대조적으로 외부 문서는 디지털 파일이나 인쇄된 소책자로 별도로 보관됩니다. 댓글은 컴퓨터 언어의 구문이 아닌 일반 언어로 작성됩니다. 각 컴퓨터 언어는 프로그램과 프로그램을 읽는 사람이 주석과 실행 가능한 코드 라인을 구별할 수 있도록 하는 고유한 구문 규칙을 제공합니다. C, C++, Java 및 JavaScript를 포함한 많은 일반적인 프로그래밍 언어에서 주석은 주석 텍스트 앞에 두 개의 슬래시로 표시됩니다. // 이것은 주석입니다. 슬래시는 경계를 나타내는 하나 이상의 문자인 구분 기호 역할을 합니다.

프로그래밍 및 코딩의 원리

소스코드 주석

또는 이별 . 다른 언어에서는 아포스트로피나 ​​해시 기호와 같은 다양한 구분 기호를 사용하여 주석을 나타냅니다. 언어는 구분 기호로 시작하여 다음 줄 바꿈에서 끝나는 인라인 주석과 구분 기호로 시작하고 끝나는 블록 주석을 나타내기 위해 다양한 구분 기호를 사용할 수도 있습니다. 슬래시를 구분 기호로 인식하는 많은 언어에서는 슬래시-별표(/*) 및 별표-슬래시(*/)도 블록 주석의 시작 및 끝 구분 기호로 인식합니다. 또한 개별 프로그래머와 회사는 주석의 형식이나 사용 방법을 선호하는 경우가 많습니다. 이로 인해 동일한 프로그래밍 언어 내에서도 주석이 달라질 수 있습니다. 주석 내에 포함된 모든 텍스트는 컴파일러에서 무시됩니다. 이 때문에 주석은 코드 테스트 및 디버깅에 도움이 되는 데 사용될 수 있습니다. 예를 들어, 코드 섹션이 주석에 포함되어 있고 오류가 더 이상 발생하지 않으면 개발자는 해당 코드 섹션에 오류가 있음을 알 수 있습니다.

복잡한 프로그램을 이해하기 쉽게 만들기 효과적이고 유용한 설명을 작성하는 것은 일반적으로 복잡한 응용 프로그램을 함께 작업하는 프로그래머 팀이 포함된 실제 프로그래밍 환경에서 매우 중요합니다. 이러한 프로젝트는 일반적으로 여러 사람이 몇 주, 몇 달, 심지어 몇 년에 걸쳐 개발하므로 주석을 적절히 사용하면 프로그래머는 다른 프로그래머가 다른 시간에 작성한 코드의 목적을 빠르게 이해할 수 있습니다. 주석이 부족하면 복잡한 프로그램을 이해하기가 극도로 어려워질 수 있습니다. 적절한 주석이 제공되지 않으면 숙련된 프로그래머라도 기존 코드를 수정하기 전에 기존 코드를 이해하는 데 많은 시간과 노력을 투자해야 합니다. 좋은 댓글은 프로그램의 모든 구성 요소와 상호 작용을 쉽게 이해할 수 있는 기반을 형성하여 애플리케이션을 개발하고 업데이트할 수 있는 효율성을 크게 높입니다. 효과적인 댓글 작성 효과적이고 유용한 댓글을 작성하는 능력은 중요한 기술입니다. 주석은 단순히 코드 블록이 수행하는 작업을 다시 설명해서는 안 되며, 코드 블록이 수행하는 작업을 수행하는 이유와 프로그램의 전체 구조 및 기능과의 관계를 설명하는 데 초점을 맞춰야 합니다. 개발자는 244에 전념해야 합니다.

샘플 문제

개발자는 레스토랑의 해당 요일 특별 메뉴를 보기 위해 사용자에게 요일을 입력하라는 메시지를 표시하는 프로시저를 만들고 있습니다. 프로그램은 GetDailySpecial이라는 함수를 사용하여 데이터베이스에 연결하여 일일 특별 광고를 검색한 다음 이를 사용자에게 표시합니다. 변수는 DayOfWeek 및 DailySpecial 으로 지정됩니다. Visual Basic 프로그래밍 언어로 작성된 이 프로그램의 코드는 다음과 같습니다.

이 코드를 읽는 사람이 코드가 작성된 이유를 이해할 수 있도록 어떤 설명을 포함할 수 있습니까? Visual Basic에서는 모든 주석 줄에 대한 구분 기호로 직선 아포스트로피와 공백(또는 REM 키워드)을 사용합니다. 답변:

이러한 주석은 각 코드 행이 해당 작업을 수행하는 이유와 프로그램의 전체 구조 및 기능과의 관계를 설명합니다. 주석에는 코드 문 자체를 읽어서 확인할 수 없는 정보가 포함되어 있습니다. 예를 들어 프로시저의 변수가 문자열이라는 사실은 Dim 문을 통해 확인할 수 있습니다.

코드에 적절한 주석을 포함하고 개발 방법론은 적절한 주석을 지원해야 합니다.

프로그래밍 및 코딩의 원리

댓글을 달고 있습니다. 테스트 및 품질 보증 노력에는 유용한 의견이 사용되고 있는지 확인하는 작업이 포함되어야 합니다.

주석의 가치 일부 프로그래머는 잘 작성된 소스 코드가 그 자체를 설명한다고 믿고 있지만 대부분의 프로그래머는 주석이 거의 모든 프로젝트에 중요하다는 데 동의합니다. 프로그래머는 구문적으로 올바른 효과적이고 효율적인 코드를 작성하는 데 중점을 둡니다. 그러나 프로그래밍 언어의 본질적인 한계로 인해 특히 대규모 프로젝트에서는 주석을 사용하지 않고 코드를 완전히 설명하기가 어렵습니다. 적절한 주석을 일관되게 사용하면 프로그래머에게 상당한 이점을 제공하고 효율성을 높이고 비용을 절감하며 더욱 강력하고 효과적인 코드를 개발할 수 있습니다. 따라서 컴퓨터 프로그래밍에 관심이 있는 사람이라면 주석의 적용을 이해하고 주석 형식 지정 규칙을 숙지하는 것이 중요합니다.

나선형 개발

프로그래밍 언어나 현재 프로젝트에 따라 다릅니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2015. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, Pearson, 2017. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Elsevier, 2016. Van Roy, Peter, Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004.

나선형 개발 연구 분야 소프트웨어 개발; 소프트웨어 엔지니어링 개요 나선형 개발은 위험 관리에 초점을 맞추면서 폭포수, 반복 및 증분 개발 방법론의 요소를 결합하는 소프트웨어 개발 방법론입니다. 나선형 개발은 높은 위험에 직면한 대규모 미션 크리티컬 시스템을 개발하는 데 사용됩니다. 주요 용어 개념 증명: 프로젝트, 개념 또는 이론의 타당성을 평가하기 위해 설계된 프로토타입. 릴리스: 소비자에게 제공되는 소프트웨어 시스템 또는 기타 제품의 버전 또는 해당 버전을 제공하는 행위. 요구사항: 소프트웨어 시스템이나 서비스와 같은 기타 제품의 필수 특성

작동해야 하는 제약 조건을 제공해야 합니다. 소프트웨어 아키텍처: 시스템을 구성하는 구성 요소, 구성 요소 간의 관계, 해당 구성 요소와 관계의 속성을 포함한 소프트웨어 시스템의 전체 구조입니다.

나선형 개발 이해 나선형 개발은 여러 다른 개발 방법론의 요소를 결합한 소프트웨어 개발 방법론입니다. 이는 폭포수 개발의 선형 구조와 반복 및 증분 개발의 반복 프로세스를 통합합니다. 프로토타이핑 방법론의 요소도 사용할 수 있습니다. 나선형 개발의 주요 강조점은 소프트웨어 아키텍처의 설계 및 구현 시 위험 분석 및 관리에 있습니다. 나선형 개발 방법론의 핵심에는 4단계가 있습니다. 이러한 단계는 프로젝트의 모든 반복 또는 나선형에서 반복됩니다. 그러나 245

나선형 개발

프로그래밍 및 코딩의 원리

나선형 모델을 사용하여 소프트웨어를 개발하는 과정은 요구 사항 정의, 소프트웨어 설계, 코드 구현 및 평가용 코드 릴리스를 통해 이루어집니다. 초기 주기에서는 개념 증명을 테스트한 후 제품이 최종 사용자의 기대를 충족하고 추가 요구 사항 없이 출시될 수 있을 때까지 프로토타입 개발을 반복합니다.

각 단계의 실제 순서와 구체적인 내용은 프로젝트마다 다를 수 있으며 다양한 이름이 부여될 수 있습니다. 나선형 모델의 일반적인 형태는 계획, 위험 분석, 엔지니어링 및 평가의 4단계를 지정합니다. 계획(또는 식별) 단계에서는 요구 사항이 식별되고 구체화됩니다. 이는 시스템 개발자와 분석가가 고객 또는 기타 이해관계자와 긴밀하게 소통하는 단계입니다. 위험 분석 단계에서는 잠재적인 위험이 식별됩니다. 위험을 최소화하기 위해 고안된 대체 솔루션 및 기타 조치가 개발되었습니다. 고려되는 위험 유형에는 신기술 및 기타 기술적 측면을 사용하는 위험, 프로젝트 일정에 부정적인 영향을 미치는 위험, 재무 위험 및 246이 포함됩니다.

시장 관련 또는 기타 비즈니스 관련 위험. 이 단계에서는 각 상황에서 최대한의 위험 감소를 달성하기 위해 다양한 위험 요소의 균형을 맞춰야 하는 경우가 많습니다. 시스템 개발 및 테스트는 엔지니어링 단계에서 발생합니다. 첫 번째 나선 동안 개념 증명이 개발되었습니다. 이를 통해 시스템 설계자, 개발자, 비즈니스 분석가 및 기타 이해관계자는 제안된 설계의 타당성을 확인할 수 있습니다. 이후의 나선 과정에서 특정 시스템의 특정 요구 사항에 따라 새 릴리스가 개발됩니다. 여기에는 프로토타입, 모듈, 빌드가 포함될 수 있습니다. 네 번째 단계는 평가 단계이다. 이 단계에서 고객, 사용자 및 기타 이해관계자는

프로그래밍 및 코딩의 원리

릴리스를 평가하고 개발팀에 피드백을 제공합니다. 이 입력은 다음 나선 동안 수행되는 작업을 알리는 데 사용됩니다. 최종 릴리스가 프로젝트의 모든 요구 사항을 충족할 때까지 4단계가 추가 나선형으로 반복됩니다.

위험 관리의 이점 Spiral 개발의 가장 큰 장점은 위험 관리에 중점을 둔다는 것입니다. 다른 소프트웨어 개발 방법론과 달리 위험 관리는 모든 반복에서 수행되므로 프로젝트 성공에 대한 위협을 최소화할 수 있는 기회가 늘어납니다. 따라서 나선형 모델은 중대형 미션 크리티컬 프로젝트와 위험도가 높은 것으로 알려진 프로젝트에 적합한 선택입니다. 나선형 개발은 또한 그것이 이끌어내는 방법론과 동일한 많은 이점을 제공합니다. 폭포수 모델에 대한 강력한 승인과 문서화를 유지합니다. 프로토타입 제작 및 반복 개발과 마찬가지로 개발 프로세스 초기에 배포 가능한 시스템을 제공합니다. 또한 프로젝트 요구 사항의 변화와 최종 사용자 참여 확대에 비교적 쉽게 적응할 수 있습니다. 나선형 모델의 주요 단점은 복잡성 때문입니다. 비용과 간접비 요구 사항이 높은 경향이 있습니다. 소요되는 시간이 길어질 수 있으며 프로젝트의 끝이 즉시 명확하지 않을 수 있습니다. 이러한 이유로 소규모 프로젝트는 일반적으로 나선형 개발에 적합한 후보가 아닙니다. 프로젝트 직원이 위험 분석 및 관리 경험을 갖고 있는 것도 중요합니다. 이는 모든 조직에 해당되는 것은 아닙니다. 위험을 적절하게 식별하고 최소화하지 않으면 모델의 이점 중 많은 부분이 손실됩니다. 대규모 시스템에 Spiral 개발 사용 Spiral 개발은 업무상 중요하고 범위가 크며 상당한 위험이 있는 프로젝트에 가장 적합합니다. 예를 들어, 43개 주에 500개 지점이 있는 백화점 체인은 7,500개 이상의 금전 등록기를 제어하기 위해 새로운 POS 시스템을 개발해야 할 수도 있습니다. 이 시스템은 매일 25,000명이 넘는 판매 직원이 사용하게 됩니다. 모든 매장을 서로 연결하고 회사의 7개 지역 사무소를 연결해야 합니다. 시스템은 안전해야 하며 소비자 신용 정보 처리에 대한 모든 법적 요구 사항을 충족해야 합니다. 또한 이 프로젝트는 IT 부서에서 처음으로 사용하는 여러 기술을 사용하여 개발될 예정입니다.

나선형 개발

이 프로젝트는 나선형 개발을 위한 훌륭한 후보가 될 것입니다. 이 프로젝트는 대규모 IT 부서, 수백 개의 위치를 ​​포함하고 많은 이해관계자에게 영향을 미치는 대규모 프로젝트입니다. POS 시스템에 문제가 있으면 회사의 핵심 비즈니스 운영에 부정적인 영향을 미치기 때문에 이 시스템은 업무상 매우 중요합니다. 이 프로젝트는 또한 신기술의 사용을 포함하여 상당한 위험에 직면해 있습니다. 또한, 프로젝트의 많은 요소는 나선형 개발에 캡슐화된 방법론의 장점을 활용할 수 있습니다. 수천 명의 직원이 매일 시스템을 사용해야 하므로 개발 프로세스에 최종 사용자를 참여시키는 것이 중요합니다. 이 정도 규모와 범위의 프로젝트는 변화하는 요구 사항을 처리해야 할 가능성이 높습니다. 최종 시스템을 개발, 테스트, 평가 및 배포하려면 여러 릴리스가 필요할 가능성이 높습니다. 이러한 요구 사항은 나선형 모델의 순차 및 반복 방법 조합을 통해 충족될 수 있습니다.

위험 관리는 프로젝트 성공을 가능하게 합니다. 모든 소프트웨어 개발 시스템은 개발 프로세스가 성공적으로 완료되도록 노력합니다. 전통적인 폭포형 개발부터 RAD(Rapid Application Development) 및 XP(Extreme 프로그래밍)와 같은 최근 개발된 모델에 이르기까지 다양한 방법론이 이 문제에 다양한 방식으로 접근합니다. 나선형 개발은 위험 관리에 중점을 두고 다른 접근 방식의 요소를 통합한 하이브리드 방법론으로 주목할 만합니다. 그 강점과 유연성은 소프트웨어 개발 프로젝트 관리에 새로운 혁신이 일어나더라도 여전히 관련성을 유지할 것임을 의미합니다. —Maura Valentino, MSLIS 참고문헌 Bell, Michael. 증분 소프트웨어 아키텍처: 실패한 IT 구현을 저장하는 방법. John Wiley & Sons, 2016. 프리드먼, 다니엘 P., 미첼 완드. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Jayaswal, Bijay K. 및 Peter C. Patton. 신뢰할 수 있는 소프트웨어를 위한 설계: 강력한 소프트웨어 개발을 위한 도구, 기술 및 방법론. 프렌티스 홀, 2007. 247

프로그래밍 및 코딩의 원리

표준 편차

MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Scott, Michael L. 프로그래밍 언어 화용론. 4판, 엘스비어, 2016.

반 로이, 피터, 세이프 하리디. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004. Wysocki, Robert K. 효과적인 프로젝트 관리: 전통적, 민첩성, 극한. 7판, John Wiley & Sons, 2014.

표준 편차 표준 편차는 주어진 데이터 포인트가 해당 데이터 포인트가 속한 세트의 평균 또는 평균에서 벗어날 수 있는 정도를 표시하는 데 사용되는 수학적 값입니다. 표준 편차가 작다는 것은 데이터 포인트가 평균에 가깝게 모여 있다는 것을 의미하고, 값이 클수록 데이터 포인트가 더 많이 분산되어 있다는 것을 의미합니다. 표준 편차의 두 가지 주요 유형은 모집단 표준 편차와 표본 표준 편차입니다. 어떤 계산을 사용할지는 분석 중인 데이터 세트가 완전한지 아니면 단순히 더 큰 세트의 대표 샘플인지에 따라 달라집니다.

개요 데이터 세트의 표준 편차는 분산의 제곱근이며, 이는 데이터 포인트가 평균에서 얼마나 멀리 퍼져 있는지를 나타냅니다. 분산과 표준편차는 매우 유사한 개념이지만 표준편차는 원래 데이터 포인트와 동일한 단위로 표현되는 반면 분산은 해당 단위의 제곱으로 표현되므로 실제 상황에서 더 유용합니다. 따라서 데이터 세트의 표준편차를 결정하려면 먼저 분산을 결정해야 합니다. 분산을 계산하는 첫 번째 단계는 평균을 계산하는 것입니다. 평균은 집합의 모든 값을 더한 다음 집합의 값 개수로 나누어 수행됩니다. 그런 다음 집합의 각 개별 값에서 평균을 빼고 각 값을 제곱합니다.

248

결과적인 차이. 차이를 제곱하는 목적은 음수를 다루는 것을 피하는 것입니다. 마지막으로, 이들을 모두 더하고 다시 한 번 세트의 값 수로 나누어 차이 제곱의 평균을 계산합니다. 결과로 나타나는 숫자는 집합의 분산입니다. 표준편차를 결정하려면 단순히 분산의 제곱근을 취하면 됩니다. 위의 계산은 표준편차에 대한 두 가지 기본 공식 중 하나입니다. 표본 표준편차와 구별하기 위해 종종 “모집단 표준편차”라고 부릅니다. 모집단 표준 편차는 세트의 데이터 포인트가 분석 중인 데이터 전체를 나타낼 때 가장 정확합니다. 그러나 때때로 데이터 세트는 더 큰 인구의 표본일 뿐이며 결과는 더 큰 인구에 대해 일반화하는 데 사용됩니다. 예를 들어 국가 주민의 일부가 정치적 문제에 대해 여론 조사를 받고 그 결과를 추정하여 국민 전체의 정치적 태도. 이러한 경우 모집단 표준편차는 일반적으로 너무 낮은 값을 생성하므로 대신 표본 표준편차를 사용해야 합니다. 여전히 완전히 편견이 없는 결과를 생성하지는 않지만 훨씬 더 정확합니다. 표본 표준 편차를 계산하려면 표본 분산을 생성하기 위해 분산을 다시 계산해야 합니다. 마지막 단계를 제외하고 계산은 동일합니다. 차이 제곱의 합을 집합에 있는 값의 수로 나누는 대신 집합에 있는 값의 수에서 1을 뺀 값으로 합을 나눕니다. 이는 모집단 표준 편차가 너무 낮은 경향을 수정합니다. 그런 다음 이전과 마찬가지로 표본 분산의 제곱근을 취하여 표본 표준 편차를 생성합니다. 모집단 표준편차와 표본표준이 모두 다르다는 점에 유의하는 것이 중요합니다.

프로그래밍 및 코딩의 원리

편차는 종형 곡선으로 표시되는 데이터의 정규 분포를 가정합니다. 분포 패턴이 이 표준에서 벗어나면 표준 편차를 정확하게 계산하기 위해 추가 수정이 필요할 수 있습니다. 그러나 분포가 종형 곡선을 따르는 경우 표준 편차는 데이터 세트 내의 값에 대해 많은 정보를 전달할 수 있습니다. 예를 들어, "68-95-99.7 규칙"이라고도 알려진 경험적 규칙은 정규 분포에서 세트에 있는 데이터 요소의 68%가 평균의 1 표준 편차 내에 속하고 95%가 두 표준 편차 내에 속한다고 명시합니다. 평균의 표준편차, 99.7%는 평균의 3표준편차 내에 속합니다. 일반적으로 세트 내의 외곽 데이터 포인트는 평균에서 표준 편차가 2 이상인 경우에만 통계적으로 유의미한 것으로 간주되지만 정확한 유의성 임계값은 다양합니다. —란다 탄타위(Randa Tantawi) 박사

입장이론

참고문헌 Altman, Douglas G., J. Martin Bland. “표준편차와 표준오차.” BMJ 331.7521(2005): 903. 인쇄. Hand, David J. 통계: 매우 짧은 소개. 뉴욕: 옥스퍼드 UP, 2008. 인쇄. 칼라, 싯다르타. “표준편차를 계산하세요.” 탐색 가능. Explorable.com, 2009년 9월 27일. 웹. 2013년 10월 4일. Lane, David M. “변동성 측정.” 온라인 통계 교육: 대화형 멀티미디어 학습 과정. 레인, n.d. 편물. 2013년 10월 4일. Orris, J. B. “분산 및 표준 편차에 대한 시각적 모델.” 교육통계 33.2(2011): 43–45. 인쇄. Taylor, Jeremy J. “혼란스러운 통계 용어 설명: 표준 편차.” 통계는 나를 울게 만든다. Taylor, 2010년 8월 1일. 웹. 2013년 10월 4일. Urdan, Timothy C. 일반 영어 통계. 3판 뉴욕: 루트리지, 2010. 인쇄. Weisstein, Eric W. “표준 편차.” 볼프람 수학세계. Wolfram Research, n.d. 편물. 2013년 10월 4일.

입장이론(StANDPOINT THEORY) 입장이론은 집단적 집단담론을 이해하기 위한 수단이다. 이론의 가장 중요한 측면은 개인의 관점이 사회 집단에서의 개인적인 경험에 의해 형성된다는 것입니다. “입장”은 일반적으로 입장과 전망에 기초한 세계에 대한 각 개인의 관점을 의미합니다. 이것들

패트리샤 힐 콜린스(Patricia Hill Collins)는 아프리카계 미국인 사회의 페미니즘과 젠더에 관한 작업에서 관점 이론을 사용했습니다.

요인은 사람들이 자신을 이해하고 다른 사람과 의사소통하는 방식에 영향을 미칩니다. 입장이론은 사회계층이 대인관계에 대해 협소한 관점을 제공하고, 지배집단이 열등집단을 억압하며, 지배집단이 열등집단에 대해 불균형한 영향력을 행사한다고 가정한다. 입장 이론은 그룹(예: 여성)의 구성원이 동일한 특성을 갖거나 모두 서로 매우 유사한 것으로 분류되는 본질주의에 기반을 두고 있습니다. 이 이론을 비판하는 사람들은 주관성과 객관성 사이의 위치로 인해 이론이 도움이 되지 않는다고 말합니다.

개요 관점 이론은 처음에는 이론 기반이었지만 현재는 의사소통 기반으로 되어 있습니다. 이 이론은 독일 철학자 게오르그 빌헬름 프리드리히 헤겔(Georg Wilhelm Friedrich Hegel)의 연구에서 유래되었습니다. 헤겔은 1800년대 초 주인과 노예 사이의 입장에 관심이 있었습니다. 그는 주인과 노예의 관계가 개인의 지위와 관계가 있으며, 집단이 어떻게 행동하는 데 영향을 미치는지에 주목했습니다.

입장이론

프로그래밍 및 코딩의 원리

Donna Jeanne Haraway(2007), “사이보그 선언: 20세기 후반의 과학, 기술, 사회주의-페미니즘”(1985) 및 “상황에 따른 지식: 페미니즘의 과학 질문과 부분적 관점의 특권”을 포함한 저작으로 유명함 "(1988).

정보와 권한이 지시되었습니다. 1980년대 페미니스트 이론가 낸시 하트삭(Nancy Hartsock)은 남성과 여성의 차이를 이해하기 위해 관점 이론에 중점을 두었습니다. 그녀는 자신의 작업에 개인의 작업이 세상에 대한 이해에 영향을 미친다는 마르크스주의 가정을 기반으로 했습니다. Hartsock은 여성의 사회적 관점을 강조하는 페미니스트 관점 이론을 창안했습니다. 그러나 많은 학자들은 Hartsock이 백인이 아닌 여성의 관점을 포함하지 못했다고 지적합니다. 입장 이론은 남성과 여성이 다르다고 주장하는 것이 아니라 여성이 남성과 다른 경험을 구성하게 만드는 문화적, 사회적 요인이 있다고 주장합니다. 관점 이론에 대한 한 가지 비판은 이원론이나 이중 사고에 대한 생각입니다. 많은 페미니스트 학자들은 인간 사고의 상당 부분이 이원론이나 반대 집단을 중심으로 구성되어 있다고 믿습니다. 예를 들어, 사람들은 무엇이 공적인 것인지 사적인 것인지, 무엇이 객관적인지 주관적인 것인지 고민합니다. 그러나 이원론은 일반적으로 하나가 우월하다고 간주되는 두 반대 사이에 계층적 질서가 있다고 추론합니다. 즉, 사람들은 하나를 평가절하하고 다른 하나를 높이 평가하는 경향이 있습니다. 예를 들어, 성격과 관련된 두 가지 용어는 이성적 및 감정적입니다. 여성은 일반적으로 이성적인 남성보다 더 감정적인 것과 연관되어 있습니다.

이원론적 질서의 우월한 요소. 그러나 이는 잘못된 이분법이다. 대체로 관점 이론은 사회 집단의 의사소통, 경험, 관점을 조사하는 방법을 제공합니다. —Narissra Maria Punyanunt-Carter, MA, PhD

참고문헌 Allen, Brenda J. “페미니스트 관점 이론: 조직 사회화에 대한 흑인 여성의 (재)관.” 커뮤니케이션 연구 47.4(1996): 257-71. 인쇄. 에드워즈, 게일. “교육사회학의 입장이론, 현실주의, 객관성 추구.” 영국 교육사회학 저널(2012): 1–18. 편물. 2013년 7월 22일. Hekman, Susan. “진실과 방법: 재검토된 페미니스트 관점 이론.” 징후 22.2(1997): 341–65. 인쇄. Longino, Helen E. “페미니스트 관점 이론과 지식의 문제.” 징후 19.1(1993): 201–12. 인쇄. Mahowald, Mary B. “근시 치료: 페미니스트 관점 이론 및 생명윤리.” 페미니즘과 생명윤리: 재생산을 넘어서. 에드. 수잔 M. 워프. 뉴욕: 옥스포드 UP, 1996. 인쇄.

프로그래밍 및 코딩의 원리

포터, 마이클. “충성주의, 여성 및 입장 이론.” 아일랜드 정치 연구(2012): 1–17. 편물. 2013년 7월 22일. Stoetzler, Marcel, Nira Yuval-Davis. “입장 이론, 상황화된 지식, 상황화된 지식

통계적 추론

상상력." 페미니스트 이론 3.3(2002): 315–33. 인쇄. Swigonski, Mary E. “사회복지 연구를 위한 페미니스트 관점 이론의 논리.” 사회사업 39.4(1994): 387-93. 인쇄.

통계적 추론 통계적 추론은 조직, 프로세스 또는 정책에 대한 권장 사항을 만들기 위해 통계 분석에서 결론을 도출하는 프로세스입니다. 통계는 인과관계를 나타내거나 지시보다는 확실한 답을 제시하는 경우가 거의 없기 때문에 객관적인 판단과 주관적인 판단이 모두 필요한 과정이다. 그러한 추론이 요구하는 뉘앙스의 수준은 학문적 맥락에서 이해할 수 있지만, 정책 결정이나 대중을 위한 담론에 항상 잘 들어맞는 것은 아닙니다.

개요 통계 분석은 일반적으로 신뢰 구간, 즉 결과에 대한 신뢰 수준의 개념을 기반으로 합니다. 관찰된 결과의 분포를 조사하고 예상되는 결과와 비교합니다. 그런 다음 계산을 통해 발견된 것과 예상된 것 사이의 차이에 대한 유의성 수준을 결정합니다. 일반적인 시장 조사나 비즈니스 또는 경영 분야의 학술 연구의 경우 일반적으로 95%의 신뢰 구간이 예상됩니다. 이는 다음을 의미합니다.

표준 정규 곡선의 90% 신뢰 구간을 보여줍니다.

주어진 결과가 유의미하다고 선언되면 그 결과는 95%는 정확하고 나머지 5%는 부정확하다고 가정할 수 있습니다. 연구자들은 허위로 판명될 가능성을 줄이기 위해 서로 다르지만 관련된 여러 가지 테스트를 가장 일반적으로 수행합니다. 예를 들어, 설문지에는 단 하나의 질문이 아닌 잠재적 신제품의 다양한 측면에 대한 여러 가지 질문이 포함됩니다. 더 많은 관찰이나 응답자를 추가하면 신뢰도 수준을 높일 수 있지만, 이는 필요한 추가 비용 및 시간과 균형을 이루어야 하며 불확실성을 완전히 제거할 수는 없습니다. 95%의 신뢰 구간은 2-시그마 접근 방식입니다. 즉, 평균에서 2개의 표준 편차(시그마) 내에 있는 모든 결과를 중요하지 않은 것으로 정의합니다. 5시그마 접근 방식을 사용하는 유럽 핵 연구 기구(CERN)의 힉스 보손 검색과 같은 매우 엄격한 테스트에서도 중요한 결과가 관찰되는 350만 테스트마다 한 번씩 잘못된 결과가 선언됩니다. . 대부분의 통계 분석은 인과관계를 다루지 않습니다. 교차표 또는 상관관계 테스트는 관찰된 결과 분포가 유의미하다고 선언될 것으로 예상된 분포와 충분히 멀리 떨어져 있음을 나타내는 데 사용되지만 이러한 결과는 실제로 무슨 일이 일어나고 있는지 설명하지 않습니다. 결과에 대한 모든 합리적인 설명을 해석하고 제공하는 것은 연구자의 책임입니다. 어떤 경우에는 결과가 압도적이고 논란의 여지가 없을 수도 있습니다. 예를 들어, 소득 수준, 인종, 성별 등 특정 인구통계학적 변이와 특정 정당에 투표하려는 경향 사이의 관계는 잘 확립되어 있습니다. 다른 경우에는 상황을 설명하는 데 훨씬 덜 구체적인 관계가 포함되므로 처음에 테스트를 발생시킨 개념적 틀과 연구자에 대한 신뢰 정도에 더 많이 의존하게 됩니다. 251

문자열 지향 기호 언어(SNOBOL)

경우에 따라 통계 분석은 인과관계를 어느 정도 해결합니다. 선형 회귀를 기반으로 한 테스트는 특정 변수를 통해 측정의 전체 변화 중 일부를 설명하는 것을 목표로 합니다. 예를 들어, 노동 생산성의 변화는 한 국가의 국내총생산(GDP) 전체 변화의 일부를 설명합니다. 요인 분석의 경우에도 유사한 접근 방식이 사용됩니다. 또 다른 기술인 구조 방정식 모델링(SEM)은 환경 변수와 결합된 감정적 선행 상태가 어떻게 소비자 행동을 결정할 수 있는지 보여주는 등 변수에서 최종 결과까지 이어지는 설명적 인과 경로를 제공하기 위한 것입니다. 이러한 경우 추론은 복잡한 현상에 대한 특정 설명에 부여할 수 있는 신뢰도에 중점을 둡니다. —존 월시 박사

프로그래밍 및 코딩의 원리

참고문헌 Boos, Dennis D., Leonard A. Stefanski. 필수 통계적 추론: 이론 및 방법. 뉴욕: 스프링어, 2013. 인쇄. Frankfort-Nachmias, Chava 및 Anna LeonGuerrero. 다양한 사회를 위한 사회통계. 7판. 사우전드 오크스: 세이지, 2014. 인쇄. Garthwaite, Paul H., Ian T. Jolliffe 및 Byron Jones. 통계적 추론. 2판 옥스퍼드: 옥스포드 UP, 2002. 인쇄. Kass, Robert E. “통계적 추론: 큰 그림.” 통계과학 26.1(2011): 1–9. 인쇄. 실버, 네이트. 신호와 잡음: 많은 예측이 실패하지만 일부는 실패하는 이유 뉴욕: 펭귄, 2012. 인쇄. 워커, 헬렌 M., 조셉 레프. 통계적 추론. 뉴욕: 홀트, 1953. 인쇄.

문자열 지향 기호 언어(SNOBOL) 연구 분야 프로그래밍 언어; 코딩 프로그래밍 방법론

기법;

개요 문자열 지향 기호 언어(SNOBOL)는 1960년대 Bell 연구소에서 근무하는 컴퓨터 과학자들이 개발한 프로그래밍 언어 계열을 나타냅니다. 최종적이고 가장 일반적인 버전은 SNOBOL4였습니다. 여러 후기 언어가 후속 언어로 개발되었으며, 언어의 고유한 측면 중 일부는 여전히 영향력을 갖고 있습니다. 이름에서 알 수 있듯이 SNOBOL은 기호 문자열 데이터를 조작하기 위해 만들어졌습니다. 이를 통해 프로그래머는 단 몇 줄의 코드만으로 문자열 변수를 쉽게 검색, 변경 및 활용할 수 있습니다. SNOBOL 및 파생 언어는 패턴 일치 작업에 매우 적합합니다. 주요 용어 기능: 컴퓨터 프로그래밍에서 특정 작업을 수행하는 독립적인 코드 섹션입니다. 패턴: 컴퓨터 프로그래밍, 반복되는 시퀀스 또는 코드 디자인. 252

스택: 컴퓨터 과학에서 가장 최근에 추가된 개체에만 액세스할 수 있는 데이터 구조입니다. 문: 수행할 작업을 컴퓨터에 지시하는 명령입니다. 문자열: 컴퓨터 프로그래밍에서 특정 순서로 배열된 문자로 구성된 데이터 유형입니다. 변수: 컴퓨터 프로그래밍에서 컴퓨터 메모리의 특정 위치에 저장된 데이터를 나타내는 기호 이름으로, 그 값은 변경될 수 있습니다.

SNOBOL 프로그래밍 SNOBOL은 1962년부터 Bell Labs의 David Farber, Ralph Griswold 및 Ivan Polonsky에 의해 개발되었습니다. 그들은 다른 초기 프로그래밍 언어에 대한 불만으로 인해 새로운 언어를 만들도록 추진되었습니다. 그 결과 다양한 종류의 변수에 영향을 미치는 함수와 명령문을 사용하는 명령형 프로그래밍 언어가 탄생했습니다. 특히 개발자들은 문자열 변수 작업을 쉽게 할 수 있는 언어를 만들고 싶었습니다. 그 이름은 나중에 농담으로 선택된 약어로 StriNg-Oriented SymBOlic Language를 나타내기 위해 결정되었습니다. 특정 요구에 맞게 설계되었지만

프로그래밍 및 코딩의 원리

팀의 언어는 Bell Labs 및 더 넓은 컴퓨팅 커뮤니티의 다른 사람들에게 빠르게 인기를 얻었습니다. Bell Labs 팀은 초보 프로그래머도 이해할 수 있도록 SNOBOL의 구문과 레이블을 설계하여 음성을 모방했습니다. 언어는 논리, 연산자, 배열 및 표준 루프를 사용합니다. SNOBOL은 동적으로 유형이 지정됩니다. 즉, 프로그래머는 사용 중인 변수 유형을 선언할 필요가 없습니다. 모든 변수는 전역적이며 SNOBOL 프로그램에는 종종 오래된 언어와 기계 언어에서 흔히 사용되는 goto 문이 포함되어 있습니다. 이러한 선형 프로그래밍 방식은 "객체"라고 불리는 더 큰 코드 덩어리를 조작하는 객체 지향 언어와 대조됩니다.

SNOBOL 데이터 유형 SNOBOL은 문자열을 조작하고 패턴을 일치시키도록 설계되었습니다. 처음에는 Bell Labs에서만 사용하도록 의도되었기 때문에 개발자는 필요한 기능만 원래 SNOBOL 언어에 구축했습니다. 데이터 유형이 하나뿐이고 기능도 없었으며 오류 제어도 거의 없었습니다. 다른 프로그래머들이 문자열 지향 언어에 관심을 보이기 시작하면서 팀에서는 더 많은 기능을 추가했습니다. SNOBOL2는 널리 출시되지는 않았지만 기능을 사용할 수 있는 기능을 추가했습니다. SNOBOL3에는 사용자 정의 함수를 생성하는 기능이 추가되어 비교적 인기를 끌었습니다. 당시 SNOBOL3은 IBM 7090 컴퓨터용으로만 작성되었기 때문에 사용이 제한되었습니다. 여러 프로그래머가 다른 컴퓨터에 대해 동등한 버전을 작성하려고 시도했지만 여기에는 종종 버그가 포함되었습니다. SNOBOL4는 다양한 컴퓨터에서 사용할 수 있는 가상 머신에서 자체적으로 실행되도록 허용하여 이 호환성 문제를 해결했습니다. SNOBOL4는 배열, 테이블, 스택 및 기타 일반적인 기능과 데이터 유형을 사용할 수도 있습니다. 이러한 추가 기능에도 불구하고 SNOBOL의 주요 강점은 문자열을 강력하게 조작하는 능력입니다. 다양한 형태의 문자열 조작 중에서 SNOBOL은 "패턴 일치"라는 접근 방식을 사용합니다. 패턴 일치는 빠르고 다양하며 비교적 이해하기 쉽습니다. SNOBOL을 사용하면 문자열 작업이 매우 쉬워지기 때문에 인문학 및 기타 텍스트 중심 분야의 연구자들 사이에서 널리 사용됩니다. 그러나 언어에는 심각한 단점도 있습니다. 고유한 구문과 기타 속성으로 인해 특히 작업하기가 어려울 수 있습니다.

문자열 지향 기호 언어(SNOBOL)

프로그래머는 더 일반적인 언어에 익숙합니다. 또한 프로그래밍 언어에서 예상되는 많은 제어 구조가 부족하여 많은 작업에 적합하지 않습니다.

문자열 조작 예 "hello hello hello world, this is Bob"과 동일한 Greeting이라는 문자열을 생각해 보세요. 아마도 프로그래머는 "hello"의 각 인스턴스를 "goodbye"로 변경하고 싶을 수도 있습니다. SNOBOL에서는 다음 코드 줄을 사용하여 이 변환을 수행할 수 있습니다. Greeting "hello" = "goodbye" 문자열 Greeting은 이제 "goodbye 안녕 안녕 세계, 이 사람은 Bob입니다."와 동일합니다. 이러한 변환은 텍스트 세그먼트를 편집할 때나 프로그래머가 사용자 입력 구문에 특정 단어나 구문이 포함되는 것을 원하지 않을 때 유용합니다. SNOBOL의 다른 기본 용도로는 문자열 구문 분석, 문자열에 특정 하위 문자열이 포함되어 있는지 확인, 주변 텍스트를 기반으로 하위 문자열 찾기 등이 있습니다. SNOBOL 구문은 이후의 많은 언어와 다소 다릅니다. 예를 들어, 많은 언어의 if 문은 다음과 같이 나타납니다. IF (변수 = "hello") THEN run 문 ELSE run other 문 SNOBOL 코더는 이 코드 세그먼트를 함께 유지할 필요가 없습니다. 대신, goto 문은 컴퓨터가 다음에 어디로 갈지 지시하는 데 사용됩니다. 일반적인 SNOBOL 구문에는 레이블, 제목 및 goto 명령이 포함되며 각 명령은 선택 사항입니다. 다음은 SNOBOL의 if 문입니다. 변수 “hello” :S(conditionTrue) 변수 “hello” :F(conditionFalse) (다른 코드) ConditionTrue :(END) ConditionFalse :(END) END 첫 번째 줄의 :S 변수가 "hello"와 같은지 테스트합니다. 그렇다면 성공이고, ConditionTrue로 시작하는 라인으로 진행됩니다. 변수가 "hello"와 같지 않으면 두 번째 줄에서 253을 보냅니다.

구조 방정식 모델링(SEM)

컴퓨터를 ConditionFalse 라인에 연결합니다. 두 경우 모두 컴퓨터는 두 번째 goto 명령을 따라 END 라인으로 이동합니다. 대부분의 다른 언어의 if 문과 달리 SNOBOL 코드 세그먼트에서는 행 사이에 원하는 양의 코드를 넣을 수 있습니다.

최신 사용법 SNOBOL의 최종 공식 버전인 SNOBOL4는 1967년에 출시되었습니다. Perl과 같은 객체 지향 언어가 정규식을 사용하여 문자열을 조작하는 데 선호되던 1980년대까지 인기를 누렸습니다. 패턴 일치와 달리 정규식은 문자열 검색 알고리즘 모음을 사용하여 텍스트 내에서 패턴을 찾습니다. 객체 지향 언어에 더 많은 기능이 추가됨에 따라 몇 가지 특정 사례를 제외한 모든 경우에 문자열을 처리하는 데 선호되는 방법이 되었습니다. 수년에 걸쳐 SNOBOL을 부활시키려는 시도가 있었습니다. 원래 SNOBOL 개발자인 Ralph Griswold는 1970년대 후반에 Icon이라는 유사한 언어를 만들었습니다. 너무 전문적이어서 SNOBOL의 광범위한 사용을 결코 즐기지 못했습니다. 그러나 컴파일러, 자연어 인식 및 문법 분석 전문가들의 관심을 받았습니다. Griswold는 문자열 처리에 중점을 둔 또 다른 언어인 SL5도 개발했습니다. 수십 년 후, SNOBOL과 Icon은 Unicon이라는 객체 지향 언어에 영감을 주었습니다. SNOBOL은 문자열 조작 분야의 선구자였으며 다른 프로그래밍 언어의 템플릿 역할을 했습니다. 스노볼의 역사를 알다

프로그래밍 및 코딩의 원리

프로그래머에게 최신 프로그래밍 언어의 기능에 대한 더 넓은 관점을 제공할 수 있습니다. —Joshua Miller 및 Daniel Showalter, PhD 참고문헌 Farber, David J. 등 “SNOBOL, 문자열 조작 언어.” ACM 저널, vol. 11, 아니. 1964년 1월 1일, pp. 21–30, doi:10.1145/321203.321207. Griswold, Ralph 및 Madge T. Griswold. 아이콘 프로그래밍 언어. 셋째. ed., P2P 커뮤니케이션, 2002. Jeffery, Clinton, et al. "정규식과 SNOBOL 패턴을 문자열 검색에 통합: 통합 접근 방식." 응용 컴퓨팅에 관한 제31회 연례 ACM 심포지엄 간행물, 2016년, 페이지 1974–79, doi:10.1145/2851613.2851752. 제프리, 클린턴 등. “Unicon의 패턴 매칭.” Unicon 프로젝트, 2017년 1월 16일, unicon.org/utr/utr18. pdf. 5월 4일에 접속함. 2017. 앤드류 코닉. “Snocone 프로그래밍 언어.” Snobol4, www.snobol4.com/report. htm. 2017년 5월 4일에 액세스함. Paine, Jocelyn. “자신의 소스 코드를 변환하는 프로그램; 또는 : Snobol Foot Joke.” Dobb 박사, UBM, 2010년 1월 17일, www.drdobbs.com/architecture-and-design/programs-that-transform-theirown-source/228701469. 2017년 5월 4일에 액세스함.

구조 방정식 모델링(SEM) 구조 방정식 모델링(SEM)은 다양한 분야의 과학자들이 사용하는 고급 통계 분석 기술입니다. SEM 다이어그램은 개념 지도와 매우 유사하며 독자가 시각적 형식으로 연구의 본질을 확인할 수 있도록 해줍니다. 단일 SEM 다이어그램은 선형 회귀 연구의 여러 결과 테이블보다 더 많은 정보를 전달할 수 있는 경우가 많습니다. SEM은 연구자들이 복잡한 변수 집합이 결과에 미치는 영향을 철저하고 효율적으로 조사할 수 있도록 함으로써 이론 테스트에 획기적인 발전을 가져왔습니다. SEM에서 특히 중요한 것은 중재자라고 하는 중추 변수가 결과에 대한 더 먼 변수의 영향을 어떻게 설명하는지 테스트하는 능력입니다. 254

개요 SEM의 인기가 높아지기 전에 연구자와 통계학자는 결과를 예측하기 위해 다양한 형태의 선형 회귀에 더 많이 의존했습니다. 선형 회귀는 매우 가치 있고 여전히 인기가 있지만 변수 간의 복잡한 상호 관계를 쉽게 테스트할 수는 없습니다. 인간의 두뇌는 선형 추론과 병렬 처리가 모두 가능합니다. 둘 다 가치가 있지만 다소 복잡한 정보 세트를 분석할 때는 병렬 처리가 필요한 경우가 많습니다. 연구에서 SEM 수치는 개념 지도와 유사하며 연구의 실제 결과를 포함하는 경우가 많아 연구자의 내용을 더 쉽게 기억할 수 있습니다.

프로그래밍 및 코딩의 원리

특히 시각적 공간적 사고를 선호하는 사람을 위한 개념과 결과입니다. 잠재 변수는 SEM에서 중요합니다. SEM 다이어그램에서 원으로 표시되는 이들은 두 개 이상의 직접 측정 변수로 구성되며, 이를 관찰 변수라고 하며 다이어그램에서 사각형으로 표시됩니다. 잠재 변수는 연구자가 직접 측정하지 않습니다. 오히려 이론적으로 관련된 관찰 변수의 통계적으로 구성된 합성물입니다. 예를 들어, 연구자는 운동 수준, 녹지 공간, 긍정적인 사회적 관계, 안전 등 동네 전체에 걸쳐 평균을 낸 관측 변수 4개를 사용하여 동네의 웰빙을 나타내는 잠재 변수를 구성할 수 있습니다. 또 다른 과학자는 잠재 변수인 행복을 형성하기 위해 응답자가 삶의 다양한 측면에서 느끼는 행복도에 대한 5가지 측정 방법을 각각 관찰된 변수로 사용할 수 있습니다. SEM의 또 다른 핵심 개념은 중재자 테스트입니다. 중재자는 결과와 밀접하게 연결되지 않은 변수를 대신하여 결과에 영향력을 행사하는 변수입니다. 예를 들어, 어린 자녀가 결국 대학을 졸업하고 고급 학위를 취득할 것이라는 부모의 기대는 청소년기 학생의 성공의 다양한 측면을 촉진하지만, 이 효과는 자녀의 기대와 같은 다른 중요한 변수에 의해 매개됩니다. 부모의 기대를 선형 방식으로 연구하는 연구자는 중요한 중재자를 설명하지 못하면 그러한 기대의 효과를 과소평가할 수 있습니다. 마찬가지로 SEM은 다양한 분야의 연구자들이 보다 명확한 정보를 포착하는 데 도움이 될 수 있습니다.

구조 방정식 모델링(SEM)

특정 변수가 결과에 어떤 영향을 미치는지 보여줍니다. —John Mark Froiland, PhD 참고문헌 Davison, Mark L., Yu-Feng Chang, Ernest C. Davenport. “잠재 변수 프로필의 구성 패턴 모델링: 내생 변수와의 연관성.” 구조 방정식 모델링 21.1(2014): 81–93. 인쇄. 호일, 릭 H., 에디션. 구조 방정식 모델링 핸드북. 뉴욕: 길포드, 2012. 인쇄. Hu, Li-tze 및 Peter M. Bentler. "공분산 구조 분석의 적합도 지수에 대한 컷오프 기준: 기존 기준과 새로운 대안." 구조 방정식 모델링  6.1(1999): 1–55. 인쇄. 케니, 데이비드 A., 데보라 A. 캐시, 윌리엄 L. 쿡. Dyadic 데이터 분석. 뉴욕: Guilford, 2006. 인쇄. Kline, Rex B. 구조 방정식 모델링의 원리 및 실습. 3판 뉴욕: 길포드, 2011. 인쇄. Loehlin, John C. 잠재 변수 모델: 요인, 경로 및 구조 방정식 분석 소개. 4판 뉴욕: 루트리지, 2011. 인쇄. 신택수, 마크 L. 데이비슨, 제프리 D. 롱. “비정규 종단 데이터를 사용한 구조 방정식 모델링에서 누락 데이터 방법의 효과.” 구조 방정식 모델링 16.1(2009): 70–98. 인쇄.

255

T 교육 기술 전자 교육 및 학습 도구의 사용이 증가함에 따라 교육 기술은 모든 수준의 교육자들에게 핵심 초점이 되었습니다. 전자 및 디지털 도구를 사용하는 것은 학습을 향상하고 모든 학생에게 유익한 경험을 제공하는 방법으로 간주됩니다. 교육 프로그램 관리 역시 기술 발전의 혜택을 받아 학생의 진도를 더욱 성공적으로 추적하고 분석할 수 있게 되었습니다. 이를 통해 학습 목표와 해당 커리큘럼 단위를 미세 조정할 수 있습니다. 또한 교사는 학생의 진행 상황을 학부모와 더욱 쉽게 공유할 수 있습니다. 예를 들어 교사는 랩톱에서 다음 내용을 보여주는 차트를 생성할 수 있습니다.

대화형 화이트보드는 교실의 도구입니다.

256

특정 학생의 수학 성공과 도전, 심지어 수학 문제 유형별로 데이터를 세분화합니다. 많은 사람들이 이러한 이점을 받아들이는 반면, 비평가들은 교실에서 전자 기기를 과도하게 사용하면 일부 학생들의 학습 경험을 저하시켜 사회적 요소가 충분하지 않으면 학습 경험을 너무 비인격적으로 만들 수 있다고 주장합니다.

배경 1970년대 후반의 학생은 개인용 컴퓨터(당시에는 흔하지 않았음)부터 초기 케이블 TV에 이르기까지 주변 사회에 등장하는 새로운 발명품에 대해 알고 있었을 것입니다. 그러나 교실에서는

프로그래밍 및 코딩의 원리

교육에서의 기술

고등학교 컴퓨터실입니다.

기술은 대부분 기계적이었습니다. 예를 들어, 교사는 오버헤드 프로젝터를 사용하여 학생들에게 화면에 정보를 표시할 수 있습니다. 대안으로 교사는 교실에서 교실로 이동하는 16mm 프로젝터로 과학 또는 역사 영화를 보여줄 수도 있습니다. 1980년대 중반에는 프로젝터가 비디오테이프와 텔레비전에게 자리를 내주었고, 계속해서 방에서 방으로 옮겨 다녔습니다. 1980년대 후반에는 개인용 컴퓨터가 널리 보급되어 많은 고등학교에 학생들이 다양한 기술을 배울 수 있는 컴퓨터실이 있었습니다. 대부분의 컴퓨터는 DOS를 사용했고 나중에는 Microsoft의 Windows 운영 체제를 사용했습니다. 워드 프로세싱 및 인쇄 외에도 학생들은 스프레드시트에서 고급 계산을 수행할 수 있습니다. 1983년 MS-DOS 시스템용으로 처음 출시된 Lotus 1-2-3은 인기 있는 초기 스프레드시트 프로그램이었습니다. 이러한 소프트웨어 프로그램과 그것이 작동하는 PC는 당시 교육 기술의 최전선을 대표했습니다. 특히 비즈니스나 수학 수업에 유익했습니다. 물론 학생들은 가정 환경에서는 아직 드물었던 개인용 컴퓨터를 학교에서 사용하여 학습하는 것에 흥미를 느꼈습니다. 2000년에는 Windows 기반 PC가 일반화되었고 Apple iMac이 인기를 끌었습니다. Microsoft, Apple 및 기타 많은 회사는

평생 고객을 창출하겠다는 희망을 가지고 그들의 기술을 학교에 적용합니다. 이러한 이유로 그들은 교사와 학부모에게 컴퓨팅 장치와 소프트웨어 패키지의 이점을 전달하기 시작했습니다. 이러한 추세는 오늘날에도 계속되고 있으며 Microsoft Office와 같은 소프트웨어 패키지에는 가정 및 학생용 버전이 있고 Apple은 학생을 대상으로 공격적으로 마케팅하고 있습니다. 교육 분야의 기술은 큰 사업이기 때문에 Academic Superstore와 같은 온라인 매장에서는 현재 등록 상태를 확인할 수 있는 학생들에게 소프트웨어 할인 혜택을 제공합니다. 이는 일반적으로 학교 이메일을 확인하여 수행됩니다.

오늘날 교육에서의 기술 교육 및 학습에 사용할 수 있는 전자 장치의 범위는 21세기가 시작된 이래 극적으로 발전했습니다. 스마트폰, 태블릿 컴퓨터와 같은 터치스크린 기계는 다양한 교육 기능을 수행할 수 있습니다. 예를 들어, 과학을 전공하는 학생은 태블릿에 표시된 원자 또는 분자의 3D 모델을 일련의 동작으로 물리적으로 조작하여 각각의 구조에 대해 학습할 수 있습니다. 음악 수업을 듣는 학생은 자신의 태블릿을 완전한 피아노처럼 사용하여 시각적 및 음향에 맞춰 태블릿에서 클래식 작곡의 음을 연주할 수 있습니다. 추가적으로, 새롭게 발견된 무선 광대역 인터넷의 보급으로 인해 거의 즉각적인 전송이 가능해졌습니다.

프로그래밍 및 코딩의 원리

교육에서의 기술

교육 환경에서의 정보. 수업을 진행하는 교사는 학생들에게 강좌 자료를 사용하여 구축한 웹사이트로 안내하거나 ERIC.gov와 같은 사이트에서 조사 방법을 실시간으로 보여줄 수 있습니다. 새로운 교육 기술을 통해 원격으로 수업을 진행할 수도 있습니다. 미국 대학에서는 스코틀랜드 교수의 초청 강의를 주선할 수 있으며 프레젠테이션 전체는 Skype와 같은 서비스를 통해 전송됩니다. 이러한 프레젠테이션에는 Google Drive와 같은 무료 파일 공유 서비스를 통한 적극적인 문서 검토 및 변경도 포함될 수 있습니다. 이러한 방식으로 교육 분야의 현대 기술은 국경을 넘어 학습할 수 있는 문을 열었습니다. 여기에는 가난한 지역의 학생들이 이전에는 접근할 수 없었던 학습 자원에 접근할 수 있는 기회가 포함됩니다. 기업은 이러한 새로운 전자 경로를 이익 기회로 간주합니다. 주요 대학 교과서 시장에서는 값비싸고 무거운 책이 휴대하기 쉬울 뿐만 아니라 검색하기도 쉬운 디지털 버전으로 대체되기 시작했습니다. 적어도 학생들의 희망은 디지털 교과서의 업데이트 비용이 저렴해지고 절감된 비용이 학생들에게 전달될 것이라는 것입니다. 어떤 경우에는 다운로드한 디지털 교과서에 향후 개정판에 대한 자동 업데이트가 무료 또는 적당한 비용으로 제공됩니다. 이러한 장점은 태블릿 컴퓨터를 e-reader로 사용하는 인기와 결합되어 2020년까지 대부분의 대학에서 디지털 교과서를 기본으로 사용할 가능성이 높습니다. 동시에 디지털 교과서의 가용성으로 인해 e-러닝 프로그램 개발이 가속화되고 있습니다. 많은 대학에서 발전된 교육 기술을 활용하여 전국의 학생들에게 전체 수업과 완전한 학위 프로그램을 제공하고 있습니다. 이를 통해 다양한 지역의 학생들이 자신이 선택한 대학에 진학할 수 있는 기회가 열리고, 대학은 타주 학생들로부터 새로운 수익원을 얻을 수 있습니다. 그에 따라 배우고 가르칠 수 있는 기회는 현재의 기술 혁명이 없었다면 가능했을 것 이상으로 확장되었습니다. —Isaiah Flair, MA 참고문헌 Benson, Susan N. Kushner, Cheryl L. Ward. “기술을 이용한 교육: TPACK을 사용하여 온라인 고등 교육 전문 지식 이해 258

교육." 국제 기술 및 디자인 교육 저널 23.2 (2013): 377-90. 인쇄. 에드워즈, 앤서니 데이비드. 새로운 기술과 교육. 뉴욕: 연속체, 2012. 인쇄. 플래너건, 사라, 에밀리 C. 보크, 제니퍼 리처드슨. “중학교 특수교사의 읽기 쓰기 수업에 대한 인식과 보조공학 활용.” 보조 기술 25.1(2013): 24–30. 인쇄. 길리스피, 매튜. 메모장에서 iPad까지: 앱과 웹 도구를 사용하여 새로운 세대의 학생들을 참여시킵니다. 뉴욕: 루트리지, 2014. 인쇄. 리, 실비아 원유, 차이 친청. “중등 및 학부 생물학 교육에서 기술 지원 학습: 문헌 검토를 통한 관찰.” 과학교육기술저널 22.2 (2013): 226-33. 인쇄. 매덕스, 클레본 D., D. 라몬트 존슨. 교육에서의 기술: 20년 회고전. 호보켄: 테일러, 2013. 인쇄. 노스트롬, Per. “기술 교육에서 엔지니어의 비과학적 모델.” 국제 기술 및 디자인 교육 저널 23.2 (2013): 377–90. 인쇄. Periathiruvadi, Sita 및 Anne N. Rinn. “영재 교육의 기술: 모범 사례 및 실증적 연구 검토.” 교육 기술 연구 저널 45.2(2012-2013): 153-69. 인쇄. Semela, Tesfaye, Thorsten Bohl 및 Marc Kleinknecht. “에티오피아 학교의 시민 교육: 다문화 상황에서 채택된 패러다임, 교육 기술 및 민주 시민권.” 국제교육개발저널 33.2 (2013): 156-64. 인쇄. 스네이프, 폴, 웬디 폭스-턴불. “진정성의 관점: 기술 교육의 구현.” 국제 기술 및 디자인 교육 저널 23.1 (2013): 51–68. 인쇄. 윌리엄스, P. 존. “기술교육 연구: 앞으로 나아갈 방향을 되돌아보며.” 국제 기술 및 디자인 교육 저널 23.1 (2013): 1–9. 인쇄.

프로그래밍 및 코딩의 원리

테스트 더블

소프트웨어 개발 분야의 이중 테스트; 소프트웨어 방법론; 컴퓨터 과학 개요 테스트 더블은 다른 소프트웨어 구성 요소를 테스트하는 데 사용되는 코드 조각입니다. 다섯 가지 테스트 더블 유형 각각은 단위 테스트 중에 유용할 수 있는 다양한 기능을 테스트하기 위해 기능을 시뮬레이션합니다. 주요 용어 더미 개체: 해당 구성 요소나 시스템을 테스트하기 위해 해당 구성 요소나 시스템에 필요한 개체의 존재를 시뮬레이션하는 코드입니다. 가짜 개체: 개체의 예상 기능을 모방하지만 다른 방식으로 구현하는 코드입니다. 테스트 속도를 높이는 데 사용됩니다. '가짜'라고도 불린다. 모의 개체: 구성 요소나 시스템의 동작을 테스트하기 위해 구성 요소나 시스템에 필요한 개체의 예상 인터페이스를 구현하는 코드. "모의"라고도합니다. 테스트 스파이: 해당 구성 요소나 시스템에서 수행한 호출을 기록하기 위해 테스트 중인 구성 요소나 시스템에 필요한 구성 요소의 기능을 시뮬레이션하는 코드입니다. 테스트 스텁: 테스트 중인 구성요소나 시스템에 필요한 인터페이스를 시뮬레이션하는 대체 인터페이스. "스텁"이라고도 합니다.

테스트 더블과 테스트 더블의 역할 테스트 더블은 테스트 중인 구성 요소(CUT) 또는 테스트 중인 시스템(SUT)을 테스트하는 데 사용되는 코드 조각입니다. 테스트 더블은 테스트 중인 구성 요소에 필요한 인터페이스(객체 메서드 및 속성)를 준수하며 SUT의 올바른 기능을 확인하는 데 도움이 될 수 있습니다. 테스트 더블은 SUT를 테스트하는 데 필요한 다른 소프트웨어 구성 요소가 개발되지 않았거나 다른 방법으로 사용할 수 없는 경우 유용합니다. 일부는 실제 구성 요소를 사용할 때 코드 단위를 테스트하도록 허용하므로 효율적인 테스트를 하기에는 너무 느립니다. 각 유형은 단위 테스트 중에 유용할 수 있는 다양한 기능을 제공합니다. 더미 객체는 구성 요소를 테스트하는 데 필요한 인터페이스를 구현합니다. 객체가 있을 때 사용됩니다.

필요한 테스트 기능을 제공하기 위해 존재해야 합니다. 예를 들어 구성 요소가 개체를 생성할 수 있는지 확인하거나 데이터 구조에 개체를 추가하는 코드를 테스트하는 데 필요한 개체를 제공하기 위해 단위 테스트를 수행할 수 있습니다. 더미는 테스트 이중 유형 중 최소한의 기능을 제공합니다. 테스트 스텁은 필요한 인터페이스를 구현할 수 있을 뿐만 아니라(더미 객체와 동일한 기능을 제공할 수 있음) SUT에 필요한 입력을 제공하는 기능도 제공합니다. 예를 들어, SUT가 테스트 더블의 메소드가 호출될 때 시간을 제공하도록 요구하는 경우 스텁은 요청된 시간을 제공할 수 있습니다. 스텁은 오류 및 예외 처리를 테스트하는 데 사용할 수 있습니다. 테스트 스파이는 일반적으로 SUT가 사용하는 클래스에 대한 호출을 녹음하는 데 사용됩니다. 예를 들어, 테스트 스파이는 시간을 대신 제공하는 스텁과 달리 SUT가 시간을 제공하는 메서드를 호출한 횟수를 계산합니다. 이름에서 알 수 있듯이 가짜 객체는 SUT가 객체에 기대하는 기능을 모방하지만 실제 객체와는 다르게 구현합니다. 가짜는 일반적으로 실제 기능을 사용하는 데 시간이 너무 많이 걸릴 때 테스트 속도를 높이는 데 사용됩니다. 예를 들어, 데이터베이스 서버에 연결하지 않고도 테스트 중에 데이터베이스의 존재를 시뮬레이션하기 위해 데이터를 로컬 메모리에 저장할 수 있습니다. 테스트 더블의 마지막 유형은 모의 객체입니다. SUT의 입력을 테스트하는 다른 테스트 더블과 달리 모의 테스트는 SUT의 출력을 테스트합니다. 예를 들어, SUT가 SUT에 시간을 제공하는 메소드에 올바른 매개변수를 전달하는지 확인하기 위해 모의가 사용됩니다.

장점과 단점 테스트 더블은 성공적인 단위 테스트 프로그램의 핵심 요소입니다. 이를 통해 이미 테스트 및 배포된 구성 요소에 영향을 주거나 네트워크 대역폭 및 데이터베이스 스토리지와 같은 귀중한 리소스를 소비하지 않고 개발 주기 중 언제든지 대규모 소프트웨어 시스템의 구성 요소를 개별적으로 테스트할 수 있습니다. 다양한 유형의 테스트 더블을 사용하면 테스트 더블 개발에 소요되는 최소한의 노력으로 다양한 테스트 접근 방식을 수행할 수 있습니다. 테스트 더블은 객체 지향 259를 사용하여 개발된 애플리케이션 테스트에도 매우 적합합니다.

프로그래밍 및 코딩의 원리

테스트 더블

샘플 문제

Visual Basic 언어로 작성된 다음 코드 샘플을 고려해 보세요. getTime 프로시저가 프로시저가 실행되는 시간을 timeOfDay 변수에 저장하도록 설계되었다고 가정할 때 myModule을 테스트하는 데 사용되는 테스트 더블 유형은 무엇입니까? 확인하려는 테스트는 무엇입니까? 답변: 사용되는 테스트 더블은 스텁입니다. 이는 myModule의 getTime 함수를 오류 발생 없이 테스트할 수 있도록 필요한 입력을 제공하기 때문입니다. 테스트 더블은 오후 9시의 정적 응답을 제공합니다. getTimeOfDay 메소드의 모든 호출에 대한 실제 시간을 반환하여 getTimeOfDay 메소드의 실제 기능을 모방하는 것이 아니라 가짜 객체로 간주될 수 없습니다. 테스트 스텁은 myModule의 getTime 함수가 Clock 유형의 객체를 성공적으로 생성했고 객체의 getTimeOfDay 메소드를 호출했는지 확인하는 데 사용됩니다.

프로그래밍(OOP)은 널리 사용됩니다. 단위 테스트도 자동화되는 경우가 많으므로 코드 작성, 디버깅 및 유지 관리에 소요되는 귀중한 시간을 절약할 수 있습니다. 테스트 더블을 사용하려면 적절한 테스트 더블과 테스트 절차를 만드는 데 필요한 지식과 경험이 있는 개발자가 필요합니다. 또한 강력한 테스트 체제를 구현하는 데 필요한 재정적 및 기타 자원이 필요합니다. 따라서 예산이 제한되어 있고 IT 직원이 적은 소규모 조직에는 적절한 접근 방식이 아닐 수 있습니다.

테스트 더블의 실제 테스트 더블은 실제 테스트 상황에서 유용합니다. 이는 크고 복잡한 모듈식 시스템을 테스트할 때 특히 유용합니다. 예를 들어, 국제 보험 회사는 글로벌 영업 부서에서 사용하는 고객 관계 관리 애플리케이션을 테스트할 수 있습니다. 260명의 대규모 팀

개발자들은 OOP 언어를 사용하여 이 대규모 애플리케이션을 구축하고 있습니다. 이 애플리케이션은 신속하게 배포하고 영업 부서 요구 사항의 변화에 ​​대응해야 하기 때문에 모듈식 설계를 특징으로 합니다. 이러한 응용 프로그램은 테스트 더블을 사용하기에 이상적인 후보입니다.

단위 테스트의 성능을 두 배로 향상 테스트 이중은 잘 설계된 단위 테스트 방법론의 핵심 구성 요소입니다. 이를 통해 다양한 실제 개발 상황에서 모든 유형의 구성 요소를 유연하게 테스트할 수 있습니다. 이는 다양한 개발 방법론 및 프로그래밍 언어와 잘 작동합니다. 여기에는 증분 및 반복 개발, 민첩한 개발, 익스트림 프로그래밍 및 OOP 언어가 포함됩니다. 개발자가 이러한 유형의 방법론과 기술을 사용하는 한 테스트 더블은 널리 사용될 것입니다. —Maura Valentino, MSLIS 참고문헌 Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2014. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Meszaros, Gerard. xUnit 테스트 패턴: 테스트 코드 리팩토링. Pearson Education, 2009. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 10판, 피어슨, 2016.

프로그래밍 및 코딩의 원리

Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016.

다중 지능 이론

반 로이, 피터, 세이프 하리디. 컴퓨터 프로그래밍의 개념, 기술 및 모델. 매사추세츠 공과대학, 2004.

다중 지능 이론 원본 날짜: 2013년 7월 1일 1983년 Harvard Howard Gardner는 이전에 교육, 직업 및 군사 환경에서 성공을 예측하는 데 사용되었던 전통적인 지능 테스트에 대응하여 다중 지능(MI) 이론을 발전시켰습니다. 다중 지능 이론은 일반 지능의 지표로서 언어, 수학, 논리의 표준화된 척도에만 의존하는 대신 인간이 본질적으로 시각/공간; 언어적/언어적; 수학적/논리적; 신체/운동 감각; 뮤지컬/리듬; 개인내; 대인관계; 자연주의적; 그리고 실존적이다. Gardner는 모든 인간이 이러한 독특한 지능을 각각 소유하고 있지만 특정 지능은 각 개인의 다른 지능보다 더 두드러질 것이라고 이론화합니다.

하워드 가드너.

개요 Gardner의 다중 지능 이론은 표준화된 지능 테스트의 오랜 사용에 도전했습니다. 최초로 널리 사용되는 지능 지수(IQ) 테스트는 1908년 프랑스 심리학자 알프레드 비네(Alfred Binet)가 개발했으며 1916년 스탠포드 대학의 루이스 터먼(Lewis Terman)이 개정했습니다. 이 스탠포드-비네 테스트는 어린 아이들의 학교 성공을 예측하기 위해 개발되었습니다. IQ 테스트는 관리가 간단하고 저렴했기 때문에 학교, 고용주 및 미군은 지원자의 준비 상태와 미래 잠재력을 선별하기 위해 이를 채택했습니다. 학업 적성 테스트(SAT)는 미래의 대학 성공을 예측하는 데 사용되는 적성 테스트의 한 예입니다. Gardner는 SAT와 같은 테스트가 한 차원에서만 지능을 측정하므로 특정 유형의 지능을 다른 차원보다 우선시한다고 주장합니다. 1983년 Gardner의 저서인 Frames of Mind: The Theory of Multiple Intelligences가 출판된 직후, 그의 새로운 이론은 교육자들에 의해 빠르게 받아들여졌지만 동시에 MI 이론은 실증 과학에 기반을 두지 않는다고 주장하는 심리학자들로부터 맹렬한 비판을 받았습니다. 대신 직관과 일화를 바탕으로 합니다. Gardner의 MI 이론을 받아들인 사람들은 학문적으로 성공하지 못한 채 특정 기술에 특별한 재능을 가진 사람을 생각하기 쉽기 때문에 그렇게 했을 수도 있습니다. 예를 들어, 재능 있는 댄서는 뛰어난 신체적 재능을 보이지만 표준화된 평가에서는 좋은 성적을 거두지 못할 수도 있습니다. 자동차 정비사는 엔진 성능을 향상시키는 방법을 직관적으로 알지만 잘 읽지는 못합니다. 다중 지능은 오늘날 음악가들에게 계속 도전이 되고 있는 고도로 기술적인 피아노 음악을 연주하고 작곡하는 4세 모차르트의 능력과 같이 선천적이고 미개발된 것처럼 보이는 능력의 발생을 설명하는 데 사용되었습니다. Gardner는 교사가 때때로 다중 지능을 학습 스타일이나 학습 선호도로 착각한다고 주장하지만, 많은 교사가 261가지 지능을 탐색했습니다.

프로그래밍 및 코딩의 원리

이론 X와 이론 Y

MI의 의미. 1987년 인디애나 주 인디애나폴리스에서 핵심 학습 커뮤니티는 Gardner의 원칙과 그의 직접적인 참여를 바탕으로 설립되었습니다. 비평가들은 교사들이 교실에서 MI 개념을 다루려는 시도에서 자신의 교육 수준을 "무시"하고 학생들이 전통적인 시험 방법에 대해 제대로 준비하지 못했다고 비난했습니다. 그럼에도 불구하고 교사들은 아이들이 지능적인 방식을 인식하는 것이 의미 있는 학습을 위한 자신감과 기회를 만들어낸다고 주장합니다. 학교에서는 표준화된 시험을 통해 계속해서 학생의 학습을 측정하지만 Gardner가 교육 실무에 미치는 광범위한 영향력은 부인할 수 없습니다. 다중 지능에 대한 인식으로 인해 교육자들은 움직임, 음악, 시각적 지원 및 그래픽 구성, 문제 해결 및 사회적 참여를 포함하여 학생들이 단순히 듣기와 같은 수동적 실습에 의존하기보다는 실습 환경에서 학습을 경험할 수 있도록 돕습니다. 그리고 독서. —Susan R. Adams, MA, PhD

참고문헌 암스트롱, 토마스. 교실의 다중 지능. 3판 알렉산드리아: ASCD, 2009. 인쇄. 아놀드, 엘렌. MI 전략 은행: 초등학교 교실을 위한 800개 이상의 다중 지능 아이디어. 시카고: 시카고 리뷰 P, 2012. 인쇄. 델고샤에이, 얄다, 네다 델라바리. “다중 지능 접근법을 교육에 적용하고 그것이 미취학 아동의 인지 발달에 미치는 영향을 분석합니다.” Procedia-사회 및 행동 과학 32(2012): 361–66. 인쇄. 가드너, 하워드. 마음의 틀: 다중 지능 이론. 뉴욕: 기본, 1983. 인쇄. ———. 다중 지능: 이론과 실제의 새로운 지평. 재판. 뉴욕: 기본, 2006. 인쇄. ———. “내 작품과 내 주석가들의 작품에 대한 성찰.” MI at 25: 교육 및 학습을 위한 다중 지능의 영향과 미래 평가. 에드. 브랜튼 시어러. 뉴욕: 사범대학 P, 2009, 96-113. 인쇄. 험프리, 닐. 사회적, 정서적 학습: 비판적 평가. 사우전드 오크스: 세이지, 2013. 인쇄. Schlinger, Henry D. “지능의 신화.” 심리 기록 53.1(2012): 2. 인쇄.

X 이론과 Y 이론 X 이론과 Y 이론은 더글라스 맥그리거(Douglas McGregor)가 매사추세츠 공과대학 슬론 경영대학원 교수로 근무하면서 개발한 두 가지 인간 동기 모델입니다. McGregor는 경영학의 고전으로 간주되는 그의 1960년 저서 The Human Side of Enterprise에서 두 가지 이론을 제시하고 설명했습니다. 이론 X와 이론 Y는 인간의 작업 능력과 작업 관계에 대한 두 가지 기본 가정을 나타냅니다.

개요 이론 X는 인간이 본질적으로 일을 싫어한다는 가정에 달려 있습니다. 따라서 직장은 본질적으로 권위주의적이며 하향식 압력이 동기 부여의 주요 메커니즘으로 작용합니다. X 이론에 따르면 직원은 262가 거의 없는 것으로 가정됩니다.

야망을 갖고 책임을 회피하며 안전하고 기본적인 작업 환경을 선호합니다. 따라서 생산성을 유지하기 위해서는 지속적인 감독과 강제가 필요하다. X 이론 관리 모델을 따르는 작업장은 생산성을 원하는 수준으로 유지하기 위해 종종 지속적인 자극, 엄격한 할당량, 규율 위협, 성과에 대한 보상을 사용합니다. 그러나 Y 이론은 인간이 자존심과 성취에 대한 개인의 욕구를 충족시키기 위해 스스로 노력할 것이라고 믿는다는 점에서 참여적입니다. 이 시나리오에서는 억압적인 감독이나 다가오는 징계 위협이 필요하지 않습니다. Y 이론은 관리자에게 회사 전체의 목표를 달성하는 데 도움이 되는 방식으로 직원의 자립 동기에 집중하도록 가르칩니다. Y 이론에 따르면 이 에너지를 활용할 수 있는 방법 중 하나는 개별 직원의 헌신을 강화하는 것입니다.

프로그래밍 및 코딩의 원리

이론 X와 이론 Y

X이론과 Y이론의 비교.

X 이론과 Y 이론은 경영 리더십의 특성에 따라 달라집니다.

조직의 목표에. 사람들은 상호 목표를 향해 일할 것이라고 Y이론은 주장하는데, 그 일은 그 일이 그들의 개인적인 필요를 충족시키는 정도까지만 가능합니다. 이론 X에서는 실패를 인적 자원의 본질적인 한계로 인해 간단히 비난할 수 있습니다. Y 이론은 더 큰 규모의 직원들에게 책임을 분산시키며, 실패는 집단적 기능 장애와 장애물 극복 능력의 부족으로만 비난받을 수 있습니다. McGregor는 Y 이론이 가능한 모델이라고 믿었습니다.

직원들이 달성 가능한 최고 수준의 성취에 도달하도록 동기를 부여합니다. Y 이론은 특히 기술 산업에서 가장 인기 있는 경영 모델로 부상했습니다. Google 및 Facebook과 같은 거대 인터넷 기업은 직장에서 개인의 창의성과 자기 실현을 장려하는 직원 친화적인 무간섭 접근 방식을 취합니다. —스티븐 밀러 263

전환 우선 전제(TPP)

참고문헌 “더글러스 맥그리거: X 이론과 Y 이론.” 인력 81.1(2002년 1월): 32. 인쇄. “전문가: 더글라스 맥그리거.” 경제학자. 이코노미스트 신문, 2008년 10월 3일. 웹. 2013년 9월 18일. Haji Mohamed, Ramesh Kumar Moona, Che Supian Mohamad Nor. “McGregor의 X-Y 이론 관리 스타일과 심리적 계약 이행 간의 관계: 문헌 검토.” 국제 비즈니스 및 사회 과학 학술 연구 저널 3.5(2013년 5월): 715–20. 인쇄.

프로그래밍 및 코딩의 원리

하이하우스, 스콧. “더글라스 맥그리거의 영향.” 팁: 산업 조직 심리학자 49.2(2011년 10월): 105-7. 인쇄. 맥그리거, 더글러스. 기업의 인간적 측면. 뉴욕: McGraw-Hill, 1960. 인쇄. Neuliep, James W. “조직의 윤리적 행동 인식에 대한 이론 X 및 Y 관리 스타일의 영향.” 사회 행동 및 성격 저널 11.2(1996년 6월): 301-11. 인쇄. 스튜어트, 매튜. “이론 X와 Y, 재검토.” 옥스포드 리더십 저널 1.3(2010년 6월): 1–5. 인쇄. “이론 X와 Y.” 경제학자. 이코노미스트 신문, 2008년 10월 6일. 웹. 2013년 9월 17일.

변환 우선 전제(TPP) 연구 분야 소프트웨어 개발; 코딩 기술; 컴퓨터 과학 개요 TPP(변환 우선 전제)는 TDD(테스트 중심 개발) 방법론을 최적화하기 위해 변환을 사용하는 데 초점을 맞춘 컴퓨터 프로그래밍 접근 방식입니다. 변환은 단순히 구조화된 방식이 아니라 코드의 작동 방식을 수정하는 각 개발 주기 동안 수행되는 코드의 작은 변경입니다. TPP는 개발 주기 동안 난관이 발생할 가능성을 줄입니다. 주요 용어 재귀: 컴퓨터 프로그래밍에서 함수, 메서드 또는 알고리즘이 자신을 호출하는 프로세스입니다. 테스트 중심 개발: 빈번하고 짧은 개발 주기와 단위 테스트를 기반으로 하는 반복적인 소프트웨어 개발 방법론입니다. 종종 TDD로 축약됩니다. 무조건 명령문: 모든 조건 하에서 실행되는 컴퓨터 코드의 명령문. 단위 테스트: 더 큰 소프트웨어 시스템의 개별 구성 요소를 테스트하는 프로세스입니다.

변환 우선순위 전제 이해 변환 우선순위 전제(TPP)는 테스트 기반 264를 사용할 때 컴퓨터 코드를 최적화하는 데 사용됩니다.

개발(TDD) 방법론. TDD는 다음 단계에 따라 여러 단위 테스트를 수행하는 반복적인 소프트웨어 개발 방법론입니다. 특정 필수 기능에 대한 테스트 케이스를 만듭니다. 테스트가 실패했는지 확인합니다. 테스트를 통과시키는 코드를 만듭니다. 코드를 재구성(리팩터링)하여 중복을 제거하고 필요에 따라 다른 변경을 수행하여 생성된 코드의 구조를 개선합니다. TDD는 종종 빨간색/녹색/리팩터링 비유를 사용하여 설명됩니다. 먼저, 실패한 테스트(빨간색)가 생성됩니다. 다음으로, 테스트를 통과시키는 코드(녹색)가 생성됩니다. 마지막으로 필요에 따라 코드가 리팩토링됩니다. 그러나 개발자가 TDD를 사용할 때 직면하는 문제 중 하나는 이 주기 동안 교착 상태에 도달할 수 있다는 것입니다. 현재 테스트를 통과하기 위해 전체 알고리즘을 다시 작성해야 하면 난관이 발생합니다. 이로 인해 개발이 오랫동안 지연될 수 있습니다. 소프트웨어 엔지니어인 Robert Cecil Martin(Bob 삼촌이라는 별칭으로도 알려짐)은 TDD 중에 교착 상태가 발생할 가능성을 줄이는 방법으로 TPP를 개발했습니다. TPP 접근 방식은 각각의 새로운 테스트 사례를 통과하기 위해 변환을 사용하여 코드를 수정하는 데 중점을 둡니다. 변환은 코드의 동작 방식을 수정하는 코드의 작은 변경입니다. 이는 단순히 코드 구조를 변경하는 리팩토링과 대조됩니다. 게다가,

프로그래밍 및 코딩의 원리

전환 우선 전제(TPP)

다양한 알고리즘과 기타 소프트웨어 구성 요소를 개발할 때 효과적으로 작동하는 것으로 나타났지만 이를 얼마나 광범위하게 적용할 수 있는지에 대한 의문이 남아 있습니다. 현대 컴퓨터 프로그램의 다양한 요구 사항과 프로그래밍 언어의 차이로 인해 TPP의 보편성에 문제가 생길 수 있습니다. 모든 관련 변환이 식별되었는지, 변환의 우선순위가 올바르게 지정되었는지, 이러한 프로세스를 정량화하고 공식화할 수 있는지 확인하려면 기술에 대한 추가 연구가 필요합니다.

변환은 코드의 동작을 변경합니다. 이 변환 목록은 TDD(테스트 기반 개발)에서 코드를 작성할 때 우선순위가 높습니다. 어떤 경우에는 변환을 설명하기 위한 설명이 제공됩니다.

변환은 코드의 동작을 보다 구체적인 것에서 보다 일반적인 것으로 변경한다는 점에서 방향성이 있습니다. 예를 들면 상수를 변수로 변경, 무조건 명령문을 if 문으로 변경, 명령문을 재귀로 바꾸는 것 등이 있습니다. Martin은 복잡성을 기반으로 변환 계층 구조를 개발했습니다. 예를 들어, 상수에서 변수로의 변환은 무조건문에서 if문으로의 변환보다 덜 복잡합니다. TPP의 핵심 원칙은 코드를 변경할 때 간단한 변환이 복잡한 변환보다 우선한다는 것입니다. 현재 테스트를 통과하는 데 필요한 가장 복잡한 변환을 사용해야 합니다. 향후 단위 테스트는 가능한 가장 간단한 변환을 사용하여 코드를 통과할 수 있도록 설계해야 합니다. 이렇게 하면 코드 변경에 따른 위험이 최소화되고 난관이 발생할 가능성이 줄어듭니다.

TPP 사용 시 고려 사항 TPP는 개발자에게 TDD 중에 발생할 수 있는 문제를 해결하도록 설계된 코드 개발에 대한 접근 방식을 제공합니다. 그 과정이 진행되는 동안

TPP 실행 각 플레이어가 라운드당 3개의 다트를 던지는 다트 게임을 시뮬레이션하는 프로그램을 생각해 보십시오. 던진 각 다트는 0점(다트판을 완전히 놓침), 5, 10, 15, 20, 25 또는 50점(과녁에 맞음)을 얻을 수 있습니다. 이러한 프로그램은 한 라운드 후에 플레이어의 점수를 계산하는 함수를 사용할 수 있습니다. 이러한 기능을 개발하는 데 TPP를 적용하기 위해 개발자는 세 개의 다트가 모두 보드를 완전히 놓쳤을 때 간단한 테스트 사례에 대한 단위 테스트를 만드는 것부터 시작할 수 있습니다. 먼저, 테스트를 생성하는 데 절차가 사용됩니다. 이 프로시저는 ComputeScoreForRound 함수를 호출하여 라운드 점수를 계산하고 던진 각 다트의 값을 전달합니다. 올바른 점수가 반환되면(0) 함수는 성공을 나타내는 1을 반환합니다. 그렇지 않은 경우 실패를 나타내는 0을 반환합니다. 이 기능은 아래와 같습니다. 함수 Test1 as Integer 점수 = ComputeScoreForRound (0, 0, 0) IF 점수 = 0 THEN 1 반환 ELSE 반환 0 END IF End 함수 다음으로 0을 반환하는 함수가 생성됩니다. 이를 통해 테스트를 통과할 수 있습니다. 함수 ComputeScoreForRound(x는 정수, y는 정수, z는 정수)를 정수로 반환 0 End 함수 이로써 첫 번째 단위 테스트가 완료됩니다. 다음으로 다트 2개가 보드를 놓치고 다트 1개가 보드를 맞히는 경우가 새로 추가되어 5점을 획득합니다. 265

프로그래밍 및 코딩의 원리

트리 구조

함수 Test2 as 정수 점수 = computeScoreForRound (0, 0, 5) IF 점수 = 5 THEN 1 반환 ELSE 반환 0 END IF End 함수 이 테스트를 통과하기 위해 코드는 상수에서 변수로의 변환을 사용하여 변경됩니다. 함수 ComputeScoreForRound (x는 정수, y는 정수, z는 정수) as Integer roundScore = x + y + z Return roundScore End Function 첫 번째 단위 테스트의 상수 값(0)을 a로 변환하여 새 테스트가 어떻게 통과되는지 확인합니다. 두 번째 테스트에서는 변수 roundScore를 사용했습니다.

혁신의 힘 TPP는 난관을 피함으로써 TDD 환경에서 작업하는 개발자의 효율성을 향상시킬 것을 약속합니다. 이는 단위 테스트를 설계하고 구현하는 데 있어 장애물을 극복하는 유용한 수단을 제공합니다.

적용되는 특정 변환 목록은 개발자마다 다를 수 있지만 단순성을 우선시한다는 전제는 따르기 쉬운 시스템을 구축합니다. 이 기술은 연구되고, 개선되고, 공식화됨에 따라 중요성과 적용성이 높아질 가능성이 높습니다. —Maura Valentino, MSLIS 참고문헌 Beck, 켄트. 테스트 주도 개발: 예를 들어. 피어슨, 2014. Farcic, Viktor 및 Alex Garcia. 테스트 중심 Java 개발. Packt 출판, 2015. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2014. MacLennan, Bruce J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판, Oxford UP, 1999. Schneider, David I. Visual Basic을 사용한 프로그래밍 소개. 피어슨, 2016. Scott, Michael L. 프로그래밍 언어 화용론. 4판, Morgan Kaufmann 출판사, 2016. Van Roy, Peter 및 Seif Haridi. 컴퓨터 프로그래밍의 개념, 기술 및 모델. 매사추세츠 공과대학, 2004.

트리 구조 연구 분야 소프트웨어 개발; 컴퓨터 과학

주요 용어 코딩

기법;

개요 트리 구조는 계층 시스템이 구성되는 방식을 나타내는 방법입니다. 따라서 트리 구조는 계층적 데이터를 저장하는 데 이상적입니다. 이진 검색 트리는 각 비단말 노드가 2개 이하의 자식 노드를 갖는 트리 구조입니다. 이진 검색 트리는 컴퓨터 프로그래밍에서 데이터를 저장하고 조작하는 데 사용됩니다. 이는 빠른 데이터 검색, 삽입 및 삭제를 용이하게 합니다. 266

바이너리: 두 부분으로 구성된 것; 이진 트리 구조는 모든 상위 노드가 2개 이하의 하위 노드를 갖는 구조입니다. 자식: 트리 구조에서 계층 구조에서 한 수준 위에 있는 다른 노드와 직접적으로 관련된 노드입니다. 중앙값: 정렬된 데이터 세트의 중간 값. 균형 이진 검색 트리에서 중앙값은 루트 노드에 저장된 값입니다. 노드: 트리 구조에서 고유한 값을 저장하고 터미널(리프) 노드가 아닌 한 하나 이상의 하위 노드에 대한 참조를 포함하는 데이터 구조입니다.

프로그래밍 및 코딩의 원리

상위: 트리 구조에서 계층 구조에서 한 수준 아래에 있는 하나 이상의 노드와 직접 관련된 노드입니다. 형제: 트리 구조에서 동일한 부모를 공유하는 두 개 이상의 노드 중 하나입니다.

트리 구조란 무엇입니까? 트리 구조는 계층적 시스템이 어떻게 구성되어 있는지를 나타내는 방법이다. 뿌리가 위쪽에 있고 가지가 아래쪽으로 자라며 아래쪽에서 잎이 끝나는 거꾸로 된 나무와 비슷합니다. 트리 구조의 전형적인 예는 조직도입니다. 트리 구조의 기본 단위를 노드라고 합니다. 각 노드는 계층 시스템의 엔터티 중 하나를 나타냅니다. 계층 구조의 맨 위에 있는 노드를 루트 노드라고 합니다. 예를 들어 회사의 조직도에서 루트 노드는 회사의 사장을 나타낼 수 있습니다. 대부분의 경우

트리 구조

컴퓨터 프로그래밍에서 발생하는 시나리오에서는 트리 구조에 단일 루트 노드가 있습니다. 트리 구조의 노드 간 관계는 친족 용어를 사용하여 설명됩니다. 가계도(트리 구조의 또 다른 예)에서와 마찬가지로 노드는 한 수준 바로 위에 있는 노드의 자식이고 한 수준 바로 아래에 있는 모든 노드의 부모입니다. 같은 부모를 둔 자녀를 형제자매라고 합니다. 자식이 없는 노드를 터미널 노드 또는 리프 노드라고 합니다. 비단말 노드는 하위 노드로부터 직접적으로 내려오는 모든 노드의 상위 노드이며, 하위 노드는 상위 노드의 하위 노드입니다. 루트 노드는 계층 구조의 맨 위에 있으며 상위 노드가 없습니다. 이진 검색 트리는 컴퓨터 프로그래밍에서 데이터를 저장하기 위해 자주 사용되는 트리 구조입니다. 이진 트리는 각 노드가 왼쪽 자식과 오른쪽 자식, 두 개의 자식만 가질 수 있는 트리입니다. 왼쪽 자식의 값은 항상 자식의 값보다 낮습니다.

트리 구조는 데이터를 구성하고, 저장하고, 빠르게 탐색하는 데 자주 사용됩니다. 이진 트리는 부모 노드가 두 개의 자식만 가질 수 있는 트리 구조입니다. 노드는 여러 수준으로 구성됩니다. 이러한 데이터 구조를 탐색하는 데 사용되는 알고리즘은 연결된 노드를 통해서만 올라가거나 내려갑니다. 트리 구조의 이 예는 여러 하위 트리가 내려오는 루트 노드를 보여줍니다. 뿌리에서 이어지는 가지를 따라 여러 자손이 있습니다. 비터미널 노드는 그 노드에서 내려오는 모든 하위 수준 노드의 조상입니다. 리프라고도 하는 터미널 노드는 자식이 없는 노드입니다.

267

트리 구조

오른쪽 아이. 이진 검색 트리는 균형이 잡혀 있을 때 가장 효율적입니다. 즉, 양쪽의 높이가 같거나 기껏해야 한 수준만 다를 때 가장 효율적입니다. 데이터 세트의 중앙값은 루트 노드에 저장되며, 중앙값보다 낮은 모든 값은 루트의 왼쪽 하위 노드에서 내려오고, 더 큰 값은 모두 오른쪽 하위 노드에서 내려옵니다.

프로그래밍에서 트리 구조의 가치 많은 유형의 데이터가 계층적 방식으로 구성됩니다. 예로는 정부 기관(국가, 주 또는 지방, 카운티, 시) 및 생물학적 분류(영역, 왕국, 문, 강, 목, 과, 속, 종)가 있습니다. 이는 트리 구조가 그러한 데이터를 모델링하는 데 매우 적합하도록 만듭니다. 이진 검색 트리는 추가적인 이점을 제공합니다. 이러한 디자인은 빠르고 유연한 검색, 삽입 및 삭제를 용이하게 합니다. 그러나 배열이나 연결 목록은 데이터 양과 수행되는 작업에 따라 이진 검색 트리보다 향상된 성능을 제공할 수 있습니다. 적절하게 균형 잡힌 이진 검색 트리는 특히 데이터 요소 수가 많은 경우 배열보다 빠르게 데이터를 검색, 삽입 또는 삭제할 수 있습니다. 그러나 배열은 이진 검색 트리보다 더 빠르게 데이터에 액세스할 수 있습니다. 이진 검색 트리의 균형이 맞지 않으면 배열이 다른 작업도 더 빠르게 완료할 수 있습니다. 연결된 목록은 이진 검색 트리보다 검색하는 데 시간이 더 걸리지만 데이터를 삽입하거나 삭제하는 데는 더 빠릅니다. 트리 구조 사용 이진 검색 트리는 많은 양의 데이터를 자주 검색해야 하고 각 데이터 요소가 고유한 값 또는 키와 연결되어 있을 때 사용하기 좋은 구조입니다. 예를 들어, 대기업의 고객 서비스 담당자가 사용하는 애플리케이션을 상상해 보십시오. 담당자는 고객 정보를 검색하기 위해 수시로 검색을 수행하며, 각 고객은 고유한 고객 식별(ID) 번호로 식별될 수 있습니다. 이 번호는 열쇠이며, 이 번호에 액세스하면 프로그램이 이름, 전화번호 등 고객과 관련된 다른 모든 데이터를 검색할 수 있습니다. 이진 검색 트리 구조의 내부 설계에서는 오른쪽 자식 노드의 값이 항상 왼쪽 자식 노드의 값보다 크다고 지정합니다. 그래서 268

프로그래밍 및 코딩의 원리

트리는 다음과 같은 방식으로 효율적으로 탐색될 수 있습니다. 먼저 중앙값 고객 ID 값을 포함하는 루트 노드를 검사합니다. 루트 노드에 프로그램이 찾고 있는 고객 ID 값이 포함되어 있으면 데이터를 찾은 것입니다. 그렇지 않은 경우 루트 노드의 값을 검색 키와 비교합니다. 검색 키 값이 루트 노드 값보다 낮으면 검색 알고리즘은 왼쪽 하위 노드의 값을 확인합니다. 더 크면 알고리즘은 올바른 하위 노드를 확인합니다. 하위 노드 값이 검색 키와 일치하면 올바른 고객 ID를 찾은 것입니다. 그렇지 않은 경우 하위 노드에서 동일한 비교 절차가 수행됩니다. 이 프로세스는 올바른 고객 ID를 찾을 때까지 계속됩니다. 이 프로세스는 노드를 확인할 때마다 검색 키와 일치하지 않더라도 확인되지 않은 나머지 노드의 절반을 가능성으로 제거하므로 효율적입니다.

트리 구조가 중요한 이유는 무엇입니까? 트리 구조는 계층적 데이터 및 고유 키가 있는 데이터로 작업할 때 사용하기에 이상적인 구조입니다. 사람들이 다루는 정보의 상당 부분이 계층적으로 정렬되어 있기 때문에 많은 사람들은 트리 구조를 개념화하고 이해하기 쉽다고 생각합니다. 이는 소프트웨어 아키텍처에서 데이터 개체 및 기타 계층적 데이터 구조를 모델링하기 위한 직관적인 선택입니다. 사회 모든 영역에서 인간 활동에 계층적 데이터가 널리 사용되면서 트리 구조가 소프트웨어 개발의 핵심 구성 요소가 되었습니다. 트리 구조는 인간이 정보를 저장하고 처리하는 방식과 유사하므로 트리는 미래에도 중요한 도구로 남을 것입니다. —Maura Valentino, MSLIS 참고문헌 Friedman, Daniel P., Mitchell Wand. 프로그래밍 언어의 필수 요소. 3판, MIT P, 2008. Goodrich, Michael T., 외. Java의 데이터 구조 및 알고리즘. 6판, John Wiley & Sons, 2014. Haverbeke, Marijn. Eloquent JavaScript: 프로그래밍에 대한 현대적인 입문. 2판, No Starch Press, 2015. Lee, Kent D. 및 Steve Hubbard. Python을 사용한 데이터 구조 및 알고리즘. 스프링거, 2015.

프로그래밍 및 코딩의 원리

튜링 테스트

맥레넌, 브루스 J. 프로그래밍 언어의 원리: 설계, 평가 및 구현. 3판., 옥스포드 UP, 1999. 스캇, 마이클 L. 프로그래밍 언어 화용론. 4판., 엘스비어, 2016년.

슈나이더, 데이비드 I. Visual Basic을 사용한 프로그래밍 소개. 10판., 피어슨, 2017년. 반 로이, 피터, 세이프 하리디. 컴퓨터 프로그래밍의 개념, 기술 및 모델. MIT P, 2004 .

튜링 테스트 연구 분야

주요 약관

컴퓨터 과학; 로봇공학

인공 지능: 인간, 유기 또는 동물 지능과 달리 기계나 컴퓨터가 나타내는 지능입니다. 자동장치: 인간을 모방하지만 일반적으로 생각이 없는 것으로 간주되는 기계. chatterbot: 텍스트를 통해 사람들과 상호 작용하기 위해 인간의 대화 응답을 모방하는 컴퓨터 프로그램. 'talkbot', 'chatbot' 또는 간단히 'bot'이라고도 합니다. 모방 게임: Alan Turing이 제안한 테스트의 이름으로, 기계가 인간 판사를 속여 인간이라고 생각하도록 하는 방식으로 질문에 응답하려고 시도합니다.

개요 튜링 테스트(Turing test)는 컴퓨터 과학자이자 수학 논리학자인 앨런 튜링(Alan Turing)이 1950년에 제안한 게임으로, 기계가 관찰자를 속일 수 있을 만큼 충분히 생각하는 인간을 잘 생각하거나 시뮬레이션할 수 있는지 여부를 결정합니다. 비판에도 불구하고 이 테스트는 그 이후로 인공 지능의 개발과 연구를 형성해 왔습니다.

사람인가요, 기계인가요? 사람 A

내가 사랑하는 기계

파란색

나는 파란색을 좋아한다

사람 B

인공 지능의 튜링 테스트를 통해 사람 A는 기술을 통해 인간 또는 기계 개체와 통신하는지 여부를 확인할 수 있습니다.

269

튜링 테스트

기계는 생각할 수 있는가? 1950년 영국의 수학자 앨런 튜링(1912~54)은 '컴퓨팅 기계와 지능'이라는 제목의 논문에서 '기계가 생각할 수 있는가?'라는 질문을 던졌다. 그 질문은 직접적으로 대답하기가 너무 어려웠기 때문에 대신에 그는 기계의 대화 반응 능력과 인간의 반응 능력을 비교하는 간단한 게임을 생각해 냈습니다. 기계가 인간 참가자를 인간이라고 믿도록 속일 수 있다면 기계는 사고하는 실체(예: 사람)와 기능적으로 구별할 수 없는 것으로 간주될 수 있습니다. 이 게임은 나중에 Turing 테스트로 알려지게 되었습니다. 튜링 시대에는 디지털 컴퓨터와 오토마타가 이미 존재했습니다. 그러나 의식과 같은 것을 생성할 만큼 정교한 프로그래밍을 갖춘 기계를 개발한다는 개념은 여전히 ​​매우 새로운 것이었습니다. Turing이 구상한 것은 10년 안에 인공 지능(AI) 분야가 될 것입니다. 즉, 기계에서 인간과 유사하거나 적어도 인간과 동등한 지능을 추구하는 것입니다. 모방 게임 기계가 생각할 수 있는지에 대한 질문을 해결하기 위해 Turing은 모방 게임이라고 부르는 것을 제안했습니다. 그는 남자, 여자, 제3자(판사)가 함께 했던 당시의 파티 게임을 기반으로 했습니다. 게임에서 심사위원은 참가자와 별도의 방에 머물며 참가자에게 질문을 하고 참가자는 서면 또는 공정한 중개자를 통해 답변합니다. 판사는 답변을 바탕으로 어떤 플레이어가 어떤 플레이어인지 결정해야 합니다. 남자는 판사를 속이려고 하고, 여자는 그를 도우려고 한다. Turing의 게임에서는 플레이어가 남자와 여자가 ​​아닌 인간과 기계가 됩니다. 익명의 텍스트 기반 통신을 촉진하기 위해 컴퓨터 터미널이 사용됩니다. 기계가 충분한 시간 동안 인간 판사를 속일 수 있다면 대화 능력 측면에서 인간과 기능적으로 동일할 것이라고 Turing은 주장했습니다. 그러므로 지능적인 것으로 간주되어야합니다. 최신 버전의 게임에서는 인간이 기계와 경쟁할 필요가 없어졌습니다. 대신 판사에게 텍스트 기반 인터페이스가 제공되고 자신이 사람과 대화하고 있는지 아니면 기계와 대화하고 있는지 판단하기 위해 질문을 하라는 지시를 받습니다. 이 버전은 1995년부터 Loebner Prize Chatterbot 대회의 기반이 되었습니다.

270

프로그래밍 및 코딩의 원리

자연어 처리 Turing의 도전은 인간과 같은 음성을 이해하고 생성할 수 있는 프로그램을 만드는 데 전념하는 "자연어 처리"(NLP)로 알려진 AI의 하위 분야 개발에 박차를 가했습니다. 독일계 미국인 컴퓨터 과학자 Joseph Weizenbaum(1923~2008)이 작성한 1966년 프로그램 ELIZA는 Rogerian 심리 치료사를 모방하는 능력에 있어서 매우 설득력이 있었습니다(“그것이 당신에게 어떤 느낌을 주나요?”). ELIZA와 같은 프로그램을 "채터봇" 또는 간단히 "봇"이라고 합니다. 이러한 프로그램은 초기 텍스트 기반 인터넷 통신의 특징이 되었습니다. 스마트폰의 출현으로 Apple과 Google은 모두 Apple의 AI 비서인 Siri와 같은 자사 장치의 음성 활성화 기능을 지원하기 위해 고급 NLP를 개발했습니다. 튜링 테스트에 대한 비판 튜링 테스트는 수십 년 동안 AI 연구자들과 컴퓨터 과학자들 사이에서 논쟁거리였습니다. 반대 의견은 크게 두 가지로 나뉜다. 어떤 사람들은 튜링 테스트가 지능의 존재에 대한 합리적인 테스트라는 생각에 반대하는 반면, 다른 사람들은 기계가 전혀 지능을 가질 수 있다는 생각에 반대합니다. 전자와 관련하여 일부 비평가들은 지능이 없는 기계가 미리 작성된 답변으로 질문에 자동으로 응답할 수 있는 충분한 처리 능력과 메모리를 가지고 있다면 테스트를 통과할 수 있다고 주장해 왔습니다. 다른 사람들은 테스트가 AI 연구를 안내하는 데 도움이 되기에는 너무 어렵고 목표가 너무 좁다고 생각합니다. 튜링 테스트의 유산 반대에도 불구하고 튜링 테스트는 AI 연구와 로봇 공학의 개념으로 지속되어 왔습니다. 동일하지는 않지만 유사한 많은 테스트를 비공식적으로 Turing 테스트라고도 합니다. 튜링이 사망한 지 60년이 지난 2014년, 유진 구스트만(Eugene Goostman)이라는 프로그램이 튜링 테스트 버전을 통과한 것으로 헤드라인을 장식했습니다. 그러나 AI에 대한 Turing 테스트의 지속적인 기여는 테스트로서의 유용성이 아니라 Turing이 이를 제안한 맥락입니다. 그의 제안으로 튜링은 인간과 같은 기계 지능이 실제로 가능하다는 생각을 최초로 옹호한 사람이 되었습니다. 그는 AI가 적절한 연구 분야로 등장하기 전에 사망했지만 그의 아이디어는 그 후 수십 년 동안 AI의 발전을 형성했습니다. —켄릭 베지나(MS)

프로그래밍 및 코딩의 원리

참고문헌 공, 필립. “튜링 테스트의 진실.” 미래. BBC, 2015년 7월 24일. 웹. 2015년 12월 18일. Myers, Courtney Boyd, ed. AI 보고서. 포브스. Forbes.com, 2009년 6월 22일. 웹. 2015년 12월 18일. 올리, 앨런. “기계는 아직 생각할 수 있는가? 튜링 테스트의 간략한 역사.” 버블 챔버. 토론토 대학교 과학 정책 실무 그룹, 2014년 6월 23일. 웹. 2015년 12월 18일.

튜링 테스트

오피(Oppy), 그레이엄(Graham), 데이비드 도우(David Dowe). “튜링 테스트.” 스탠포드 철학백과사전(2011년 봄판). 에드. 에드워드 N. 잘타. 스탠포드 대학교, 2011년 1월 26일. 웹. 2015년 12월 18일. Turing, Alan M. “컴퓨팅 기계 및 지능.” Mind 59.236(1950): 433–60. 편물. 2015년 12월 23일. “튜링 테스트.” 브리태니커 백과사전. 브리태니커 백과사전, 2013년 9월 23일. 웹. 2015년 12월 18일.

271

U 불확실성 감소 이론(URT) 1975년 통신 연구자인 Charles Berger와 Richard Calebrese는 불확실성 감소 이론(URT)을 개발했습니다. 그들의 목표는 두 사람이 처음 만남 동안 어떻게 서로 의사소통하는지 이해하는 것이었습니다. 그들은 낯선 두 사람이 처음 만났을 때 상황이 불확실성과 모호함으로 가득 차 있다고 믿었습니다. 따라서 각 개인은 상대방과 대인관계에 대한 모호함을 줄이려고 노력합니다.

관계. Berger와 Calebrese는 개인이 초기 회의에서 직면하는 두 가지 유형의 불확실성, 즉 인지적 불확실성과 행동적 불확실성을 특징으로 합니다. 인지적 불확실성은 다른 사람에 대한 관찰자의 인상과 관련이 있습니다. 행동 불확실성은 개인이 취할 행동과 관련이 있습니다. 연구자들은 두 가지 유형의 불확실성이 자기 공개를 통해 줄어들 수 있다고 믿었습니다. 특히 개인 간에 더 빈번한 상호 작용이 발생하기 때문입니다.

여기에서 열린 손짓에서 볼 수 있듯이 미러링은 무의식적으로 다른 사람을 모방하는 것입니다. 이는 불확실성을 줄이고 더 큰 참여와 소속감을 만들어 낼 수 있습니다.

272

프로그래밍 및 코딩의 원리

개요 불확실성 감소 이론은 L. H. Turner와 R. West의 의사소통 이론 소개에 설명된 대로 9개의 주요 공리로 구성됩니다. 1. 사람들은 초기 대인 관계 설정에서 불확실성을 경험하며, 이는 언어 의사소통이 증가함에 따라 줄어들 수 있습니다. 2. 불확실성은 비언어적 친근감 표현과 역의 상관관계가 있습니다. 3. 불확실성은 정보 탐색 전략과 긍정적인 상관관계가 있습니다. 4. 친밀감과 불확실성은 반비례 관계에 있습니다. 5. 상호성은 불확실성과 양의 상관관계가 있습니다. 6. 개인 간의 유사성은 불확실성을 줄여줍니다. 7. 불확실성이 증가하면 호감도가 감소합니다. 8. 공유 소셜 네트워크는 불확실성을 줄이고 그 반대의 경우도 마찬가지입니다. 9. 불확실성은 의사소통 만족도와 역의 상관관계가 있습니다. URT는 낯선 사람이 친구가 될지 여부를 결정하기 위해 다양한 상황에서 강력한 예측을 제공합니다. Berger와 Calebrese는 개인이 누군가를 처음 만날 때 불확실성을 줄이는 데 도움이 되는 세 가지 선행 요인이 있다고 지적했습니다. 이러한 선행 요인은 상대방이 보상하거나 처벌할 가능성이 있는지 여부, 상대방이 정상적인 기대에 반하여 행동하는지 여부, 상대방과의 추가 만남을 기대하는지 여부입니다. 개인은 불확실성을 극복하기 위해 세 가지 전략을 사용합니다. 여기에는 수동적 전략(눈에 거슬리지 않는 관찰), 능동적 전략(직접 접촉 이외의 수단), 상호작용적 전략(대화에 참여)이 포함됩니다. Berger는 나중에 대화에서 개인이 새로운 지인으로부터 정보를 찾는 경향이 있을 뿐만 아니라 상황을 헤쳐나가기 위한 계획을 세우고 유머, 모호함, 부인 또는 무시로 메시지를 "헤지"하거나 전달하는 경향이 있음을 발견했습니다. URT는 7가지 기본 가정으로 구성됩니다. 이러한 가정은 의사소통이 인간 행동의 가장 중요한 요소라는 생각에 기초합니다. 가정은 개인이 불확실성을 느낀다는 것입니다.

불확실성 감소 이론(URT)

대인관계 설정; 불확실성은 인지적 스트레스를 유발하는 혐오적인 상태입니다. 개인이 처음으로 주요 관심사를 만날 때 불확실성을 줄이거나 예측 가능성을 높이는 것입니다. 대인 커뮤니케이션은 단계적으로 일어나는 발달 과정입니다. 대인 커뮤니케이션은 불확실성 감소의 주요 과정입니다. 개인이 공유하는 데이터의 양은 시간에 따라 변합니다. 그리고 개인의 행동을 예측하는 것이 가능하다는 것입니다. 이러한 가정은 사람들이 새로운 사람을 처음 만났을 때 경험하는 것과 앞으로 추가적인 상호 작용이 일어날 때 그러한 감정이 어떻게 변할 것인지에 대한 설명을 제공합니다. URT는 개인이 다른 사람이 새로운 상황에서 어떻게 행동할 수 있는지 이해하려고 노력함에 따라 기존 관계의 변화하는 조건에도 적용될 수 있습니다. 사회과학자들은 학교와 기업, 낭만적인 파트너십, 텔레비전 시청이나 의사소통을 위한 컴퓨터 사용을 포함한 기술 매개 상호 작용과 같은 다양한 맥락에서 새로운 관계에서 URT를 조사했습니다. 일부 이론가들은 불확실성이 상호 작용이나 관계의 참가자에게 긍정적일 수도 있고 부정적일 수도 있다고 주장합니다. 특히 불확실성을 줄이면 한 사람 또는 다른 사람에게 해를 끼칠 수 있는 경우 더욱 그렇습니다. —Narissra Maria Punyanunt-Carter, MA, PhD

참고문헌 Antheunis, Marjolijn L., Alexander P. Schouten, Patti M. Valkenburg 및 Jochen Peter. “컴퓨터 매개 의사소통의 상호작용적 불확실성 감소 전략과 언어적 애정.” 커뮤니케이션 연구 39.6(2012): 757-80. 인쇄. 버거, 찰스 R., 마이클 버군. 의사소통과 사회적 영향 과정. 이스트 랜싱: 미시간 주 UP, 1998. 인쇄. 버거, 찰스 R., 리처드 J. 칼라브레스. “초기 상호작용과 그 이후의 일부 탐구: 대인 커뮤니케이션의 발달 이론을 향하여.” 인간 커뮤니케이션 연구 1.2(1975): 99–112. 인쇄. 부스-버터필드, 멜라니, 스티븐 부스-버터필드, 조렌 코스터. “소그룹의 일차적 긴장 완화에 있어서 불확실성 감소의 기능.” 커뮤니케이션 연구 보고서 5.2(1998): 146–53. 인쇄. 디요, 제시카, 프라이스 월트, 레아 데이비스. “관계의 빠른 인식: 속도 관찰 273

프로그래밍 및 코딩의 원리

유니코드

남쪽에서 데이트하세요.” 커뮤니케이션의 질적 연구 보고서 12.1(2011): 71-78. 인쇄. 하우나니 솔로몬, 데니스. “불확실성 감소 이론.” 간결한 커뮤니케이션 백과사전. 에드. 볼프강 돈스바흐. 몰든: Wiley, 2015. 인쇄. 노블로흐, 리앤 K., 로라 E. 밀러. “불확실성과 관계 시작.” 관계 시작 핸드북. 에드. 수잔 스프레처, 에이미 웬젤, 존 하비. 뉴욕: 심리학 P, 2008. 121–34. 인쇄. 레빈, 티모시 R., 김상연, 메리사 페라라. “사회적 교류, 불확실성, 커뮤니케이션 콘텐츠가

배신의 관계적 결과.” 휴먼 커뮤니케이션 13.4(2010): 303–18. 인쇄. 메이, 에이미, 켈리 E. 텐젝. "오른쪽 여사 찾기: 온라인 대리모 광고의 불확실성 감소." 커뮤니케이션의 질적 연구 보고서 12.1(2011): 27–33. 인쇄. 라미레즈, 아르테미오. “초기 상호작용에 대한 상호작용의 영향: 컴퓨터 매개 상호작용에 대한 정보 탐색 역할의 영향.” Western Journal of Communication 73.3 (2009): 300–25. 인쇄. 터너, L.H., R. 웨스트. 의사소통 이론을 소개합니다. 4판 뉴욕: 맥그로, 2010. 147–65. 인쇄.

유니코드 연구 분야 컴퓨터 과학; 소프트웨어 공학; 정보 기술 개요 유니코드는 전세계 컴퓨터 시스템에서 사용되는 문자 인코딩 시스템입니다. 여기에는 129개 언어의 120,000자 이상의 숫자 코드가 포함되어 있습니다. 유니코드는 ASCII(American Standard Code for Information Interchange)와 같은 이전 문자 인코딩 표준과의 이전 버전과의 호환성을 위해 설계되었습니다. 대부분의 주요 웹 브라우저, 운영 체제 및 기타 소프트웨어에서 지원됩니다. 주요 용어 글리프: 특정 서체로 렌더링된 문자 A와 같은 문자소의 특정 표현입니다. 문자소: 알파벳 문자, 문장 부호, 한자 등 쓰기 체계에서 사용하는 가장 작은 단위입니다. 16진수: 숫자 0~9와 문자 A, B, C, D, E, F를 숫자를 나타내는 기호로 사용하는 16진수 체계입니다. 정규화: 텍스트를 처리할 때 동등한 문자를 나타내는 서로 다른 코드 포인트가 동일한 것으로 인식되도록 하는 프로세스입니다. 렌더링: 글리프를 선택하고 표시하는 프로세스입니다. 274

스크립트: 문자 체계에서 텍스트 정보를 나타내는 데 사용되는 라틴어 또는 한자 같은 문자 기호 그룹입니다. 특수 문자: 기호, 이모티콘, 제어 문자와 같은 문자입니다.

문자 인코딩 시스템 컴퓨터 시스템이 텍스트를 처리하려면 서면 언어에 사용되는 문자와 기타 그래픽 기호를 컴퓨터가 읽을 수 있는 숫자로 변환해야 합니다. 이러한 문자와 기호를 숫자로 변환하는 과정을 "문자 인코딩"이라고 합니다. 1940년대와 1950년대에 컴퓨터 시스템의 사용이 증가하면서 다양한 문자 인코딩이 개발되었습니다. 컴퓨터 시스템의 상호 운용 능력을 향상시키기 위해 표준 인코딩 시스템이 개발되었습니다. 1963년에 출시되고 1967년에 개정된 ASCII(미국 정보 교환 표준 코드)는 95개의 영어 문자와 33개의 제어 문자를 0에서 127 사이의 값으로 인코딩했습니다. 그러나 ASCII는 영어에 대해서만 지원을 제공했습니다. 따라서 세계의 모든 언어를 포괄할 수 있는 시스템이 필요했습니다. 유니코드는 현재 및 과거의 언어에서 사용되는 모든 스크립트를 포괄할 수 있는 문자 인코딩 시스템을 제공하기 위해 개발되었습니다. 2016년까지 유니코드는 129개의 스크립트와 120,000개 이상의 문자에 대한 문자 인코딩을 제공했습니다. 여기에는 제어 문자, 기호, 이모티콘과 같은 특수 문자가 포함됩니다.

프로그래밍 및 코딩의 원리

그래픽 문자 기호

유니코드

16진수 문자 값

0020

0030

0040

0050

0060

0070

00A0

00B0

00C0

00D0

00E0

00F0

0021

0031

0041

0051

0061

0071

00A1

00B1

00C1

00D1

00E1

00F1

0022

0032

0042

0052

0062

0072

00A2

00B2

00C2

00D2

00E2

00F2

0023

0033

0043

0053

0063

0073

00A3

00B3

00C3

00D3

00E3

00F3

0024

0034

0044

0054

0064

0074

00A4

00B4

00C4

00D4

00E4

00F4

0025

0035

0045

0055

0065

0075

00A5

00B5

00C5

00D5

00E5

00F5

0026

0036

0046

0056

0066

0076

00A6

00B6

00C6

00D6

00E6

00F6

0027

0037

0047

0057

0067

0077

00A7

00B7

00C7

00D7

00E7

00F7

0028

0038

0048

0058

0068

0078

00A8

00B8

00C8

00D8

00E8

00F8

0029

0039

0049

0059

0069

0079

00A9

00B9

00C9

00D9

00E9

00F9

002A

003A

004A

005A

006A

007A

00AA

00BA

00CA

00DA

00개

00FA

002B

003B

004B

005B

006B

007B

00AB

00BB

00CB

00DB

00EB

00FB

002C

003C

004C

005C

006C

007C

00AC

기원전 00년

00CC

00DC

00EC

00FC

002D

003D

004D

005D

006D

007D

서기 00년

00BD

00CD

00DD

00ED

00FD

003E

004E

005E

006E

007E

00AE

00BE

00CE

00DE

00EE

00FE

003F

004F

005F

006F

007F

오전 00시

00BF

00CF

00DF

00EF

00FF

002E 002F

>

유니코드 표준은 8비트(UTF-8) 또는 16비트(UTF-16) 인코딩을 사용하여 120,000개 이상의 문자에 대해 보편적으로 인식되는 코딩 시스템입니다. 이 차트는 문자 기호와 해당 16진수 UTF-8 코드를 보여줍니다. 처음 127자는 UTF-8과 ASCII가 동일합니다.

유니코드 표준 이해 유니코드 표준은 글리프가 아닌 문자소를 인코딩합니다. 자소는 알파벳이나 한자와 같은 쓰기 체계에서 사용되는 가장 작은 단위입니다. 글리프는 특정 서체 및 글꼴 크기로 렌더링된 문자 A와 같은 문자소의 특정 표현입니다. 유니코드 표준은 각 문자소를 나타내는 코드 포인트 또는 숫자를 제공합니다. 그러나 유니코드는 문자소와 일치하는 문자 모양의 렌더링을 소프트웨어 프로그램에 맡깁니다. 예를 들어 U+0041(문자 A의 자소를 나타냄)의 유니코드 값이 웹 브라우저에 제공될 수 있습니다. 그런 다음 브라우저는 Times New Roman 글꼴을 사용하여 문자 A의 글리프를 렌더링할 수 있습니다. 유니코드는 1,114,112개의 코드 포인트를 정의합니다. 각 코드 포인트에는 0부터 10FFFF까지의 16진수 숫자가 할당됩니다. 작성 시 이러한 값은 일반적으로 U+ 앞에 옵니다. 예를 들어 문자 J에는 16진수 004A가 할당되고 U+004A로 작성됩니다. 유니코드 컨소시엄은 차트를 제공합니다.

정의된 모든 문자소 및 관련 코드 포인트를 나열합니다. 조직이 할당된 유니코드 문자와 충돌하지 않고 자체 개인 문자를 정의할 수 있도록 코드 포인트 범위는 정의되지 않은 상태로 유지됩니다. 이러한 범위 중 하나에는 U+E000과 U+F8FF 사이의 모든 코드 포인트가 포함됩니다. 조직에서는 자체 비공개 문자소에 정의되지 않은 코드 포인트를 할당할 수 있습니다. 유니코드의 본질적인 문제 중 하나는 특정 문자소가 여러 코드 포인트에 할당되었다는 것입니다. 이상적인 시스템에서는 텍스트 처리를 단순화하기 위해 각 문자소가 단일 코드 포인트에 할당됩니다. 그러나 유니코드 표준의 채택을 장려하기 위해 ASCII와 같은 문자 인코딩이 유니코드에서 지원되었습니다. 이로 인해 특정 문자소가 유니코드 표준에서 둘 이상의 코드 포인트에 할당되었습니다. 유니코드는 정규화도 지원합니다. 정규화를 통해 동일한 문자를 나타내는 다양한 코드 포인트가 275로 인식됩니다.

프로그래밍 및 코딩의 원리

유닉스

유니코드를 사용하여 전 세계 시스템 연결 유니코드는 1991년 도입된 이후 널리 채택되었습니다. 유니코드는 Microsoft 및 Apple을 포함한 주요 운영 체제 및 소프트웨어 회사에서 지원됩니다. 유니코드는 UNIX 시스템에서도 구현됩니다. 유니코드는 인터넷에서 사용되는 중요한 인코딩 시스템이 되었습니다. 이는 웹 브라우저 및 기타 인터넷 관련 기술에서 널리 지원됩니다. ASCII와 같은 이전 시스템이 여전히 사용되지만 유니코드는 여러 언어를 지원하므로 사용 중인 가장 중요한 문자 인코딩 시스템이 됩니다. 새로운 언어, 그림 문자, 기호가 정기적으로 추가됩니다. 따라서 유니코드는 앞으로도 수십 년 동안 크게 성장할 준비가 되어 있습니다.

샘플 문제

16진수 문자 차트를 참조로 사용하여 다음 문자를 유니코드 코드 포인트 값으로 변환합니다.

프로그래밍 및 코딩의 원리 - PDFCOFFEE.COM (2024)
Top Articles
Latest Posts
Article information

Author: Nicola Considine CPA

Last Updated:

Views: 6679

Rating: 4.9 / 5 (69 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Nicola Considine CPA

Birthday: 1993-02-26

Address: 3809 Clinton Inlet, East Aleisha, UT 46318-2392

Phone: +2681424145499

Job: Government Technician

Hobby: Calligraphy, Lego building, Worldbuilding, Shooting, Bird watching, Shopping, Cooking

Introduction: My name is Nicola Considine CPA, I am a determined, witty, powerful, brainy, open, smiling, proud person who loves writing and wants to share my knowledge and understanding with you.