프로그래밍
- 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션 도구
- 프로그래밍을 진해하기 전에 현실세게의 '요구사항'이 무엇인지 정확히 판단
- 즉 요구사항을 판단하고 명확히 이해한 후 적절한 문제해결방의 정의가 필요
- 이 상황에 요구되는 것은 '문제 해결 능력'
- 요구 사항이라는 것은 때때로는 간단할 수도 복잡할 수도 명확하지 않을수도 있다.
- 요구 사항이 복잡하자면 복잡함을 단순하게 분해하고 정리하고 구분하여야 하며 순서에 맞게 나열할 수 있어야 한다.
- 컴퓨터는 (기계는) 0 혹은 1밖에 알지 못하기 때문에 기계가 이해할 수 있을 정도로 정확하고 상세하게 요구 사항을 설명할 수 있는 것이 프로그래밍
--> 기계가 이해할 수 있도록 요구 사항을 설명한 결과물을 코드라 할 수 있다.
--> 문제 해결을 진행하려면 컴퓨터의 입장에서 문제를 바라봐야 한다.
문제 해결 능력
- 직감과 직관의 영역 (문제를 바라보는 사람의 사고와 경험의 영향)
- 듣다 = 사람의 당연한 기능 -> 컴퓨터에게는 ???? 일 뿐
- 컴퓨터는 관념적인 개념은 매우 난해한 개념
- 667^54 이 계산 작업은 사람에게는 매우 난해하지만 컴퓨터에게는 간단한 편
- 즉 컴퓨터와 사람은 사고, 이지 방식 자체가 다르며 컴퓨터의 관점을 이해하고 코딩을 진행해야 한다. -> 논리적 수학적 사고
--> 문제를 작은 단위로 분해하고 패턴을 파악하여 결과를 추출
자바스크립트
- JS 라고도 불리며 1995년 탄생
- 모든 브라우저의 표준 프로그래밍 언어
- 넷스케이프 -> ECMA 인터네셔널 -> 자바스크립트의 표준화 요청 -> 표준화된 자바스크립트를 ECMAScript 라고 부름 -> ES5는 거의 완성된 표준안 -> ES6 이후의 버전업은 작은 기능의 추가들이 대부분
자바스크립트 특징
- 웹을 구성하는 요소 중 하나 (HTML, CSS)-> 브라우저에서 동작하는 유일한 프로그래밍 언어
- 기존 프로그래밍 언어의 영향을 많이 받은 편이다.
- 언어 번역 기반은 인터프리터를 채용
- 최근 브라우저들은 인터프리터 엔진을 개량하여 처리속도가 컴파일러에 근접하게 빨라짐
(일반적으로 컴파일러가 인터프리터보다 번역에 빠르다)
- 멀티 패러다임 프로그래밍 언어라 불린다.
-> 명령, 함수형(기반)의 프로그래밍과 객체지향 프로그래밍을 모두 지원한다.
-> 프로토타입 기반의 객체지향 프로그래밍이라고 부른다.
자바스크립트 요약
- HTML 파일 내부에 숨어서 HTML의 조작과 변경을 담당하는 언어
-> JS를 통해서 HTML/CSS를 원하는 대로 조작할 수 있다.
- JS를 통해서 HTML을 제어하고 조작해야 하는 이유
-> 유저가 입력한 데이터를 검사할 수 있다.
-> 유저의 요청에 따라 서버로 데이터를 요청 또는 전송할 수 있다.
자바스크립트를 사용하는 방법
- script 태그 이용
- head안에 쓰거나 body안에 사용
- script 태그의 위치에 따라 js의 코드가 동작하지 않는 경우도 있다.
- 외부 JS파일과 HTML의 연결
내부 스크립트 VS 외부 스크립트
- 내부 스크립트는 간단한 JS제어 시 사용
- 외부 스크립트는 복잡하고 디테일한 JS제어 시 사용
자바스크립트 예시
<h1 id="jshi">나는 자바스크립트!</h1>
<script>
document.getElementById('jshi').innerHTML = '뭐가 나올까'
document.getElementById('jshi').style.color = 'red';
alert("도대체 이것은 무엇인감");
</script>

