프로그래밍 작성
프로그램을 작성할 때에는
선언 → 입력 → 처리 → 출력 순으로 진행된다.
프로그램 컴파일 과정
- 전처리(Preprocessor) 과정 - #include<stdio.h>,#매크로
- 컴파일(Compile) 과정
- 어셈블러(Assembler) 과정 - 어셈블리어(거의 기계어)를 기계어로 변환해준다.
- 링커(Linker)- 목적파일(Object File)을 실행파일(.exe)로 변환해준다.
컴파일러와 인터프리터
컴파일러 :
- 번역 속도는 느리지만 실행 속도가 빠르다.
- 고급 언어로 작성된 프로그램 전체를 목적프로그램으로 번역한다.
인터프리터 :
- 줄 단위로 번역 및 실행되기 때문에 원시 프로그램의 변화에 대한 반응이 비교적 빠른편이다.
- 목적프로그램을 만들지 않는다.
※ 목적프로그램(Object File)이란 번역서 같은 것이다.
소프트웨어
하드웨어에 대응하는 개념으로 우리가 원하는대로 컴퓨터를 작동하게 만드는 논리적인 바탕을 제공한다.
소프트웨어 종류
- 시스템 소프트웨어 : 기계를 다루는 소프트웨어 ex) 컴퓨터를 사용
- 응용 소프트웨어 : 필요에 의해 설치하는 소프트웨어 ex) 엑셀, PPT 등
프로그래밍 언어
- 기계어는 0과 1의 2진수 형태로 표현되고, 수행 시간이 빠르다.
- 어셈블리 언어는 기계어와 1:1로 대응되는 기호로 이루어져있다.
- 기계어는 기계 마다 기계어가 상이하다. 이에 이식성을 좋게 만든 것이 C언어이다.
스크립트 언어
- 서버사이드 스크립트 언어(서버에서 움직임) - ASP, JSP, PHP, Perl
- 클라이언트 스크립트 언어(내 컴퓨터 브라우저에서 움직임) - JS, VB Script
※ 브라우저 : 사용자의 요구를 서버에 요청하고 새 정보를 받아 보여줌
서버 : 사이트의 컴퓨터로써(ex:네이버, 다음) Html, css, js를 받아옴
개발 언어별 특징
- C#은 마이크로소프트 닷넷 프레임워크를 지원하는 객체지향 언어이다.
- Python은 인터프리터 방식의 객체지향 언어이고 실행시점에 데이터 타입을 결정하는 동적타이핑 기능을 갖는다.
※ 동적타이핑(Dynamically typed) : 변수를 선언하면 메모리 공간을 알아서 확보
- Java는 컴파일 된 프로그램이 JVM상에서 인터프리터 방식으로 실행되는 플랫폼 독립적 프로그래밍 언어이다.
- COBOL은 금융, 사무용 처리 언어로 개발된 언어이고, 기계 독립적인 부분과 기계 종속적인 부분을 분리하는데 성공한 언어이다.
- PASCAL은 Basic, GWBASIC과 함께 대표적인 교육용 언어이다.
- FORTRAN은 과학 계산용 언어이다.
- C는 컴파일 언어이다.
C언어
- 구조적으로 함축된 프로그램을 쉽게 작성할 수 있는 언어이다.
- 하드웨어 제어는 쉬우나 프로그램의 이식성이 높은 언어이다. - 이식성이 높기 때문에 운영체제에 들어간다.
- 저급언어 특성의 논리적 구조를 갖는 고급 언어이다.
- 시스템 프로그램을 작성하기에 적합한 언어이다.
- 컴파일언어이다.
JavaScript
- HTML이 구조를 CSS가 디자인을, JS는 활동을 지원해주는 기능을 한다.
- Html, 상호작용성과 동석 시각효과를 나타내기 위해 필요한 객체 기반의 스크립트 언어이며 웹사이트에서 주로 사용된다.
- 인터프리터 언어이며 객체기반(상속은 지원하지 않는다.) 언어이다.
- 클라이언트 스크립트 언어이다.
- 프로토타입(Ptorotype)의 개념이 존재한다. 프로토타입이기 때문에 상속을 지원하지 않는다.
- Prototype Link와 Prototype Object를 활용할 수 있다.
- 플랫폼(=브라우저)에 독립적이다.(의존적이면 브라우저별로 다 만들어야한다.)
- 폼의 유효성을 검증한다(ex. ID, PW가 입력되었는지 검증)
※ 폼(form) : 서버로 입력된 것을 전송하는 것
Ajax
- Ajax는 대화식 웹 응용 프로그램을 제작하는데 조합을 이용하는 웹 개발 기법이다.
- 비동기 자바스크립트와 XML을 의미한다.(Ajax는 데이터를 받아올 때 XML, JSON, HTML을 받을 수도 있다.)
※ 동기식 : 그때그때 화면 전체를 연결한다(화면전체가 깜빡임)
비동기식 : 부분만 받아와 변경한다. Ex) 투표 방송에서 득표율 부분반 바뀜
- DHTML, CSS, XML, 마이크로소프트 객체인 XMLHttpRequest 등 다양한 기술을 활용할 수 있다.
라이브러리, 프레임워크, API
라이브러리 : 누군가 만들어 놓은 것으로 내부 라이브러리와 외부 라이브러리가 있다.
라이브러리 종류
- 내부 라이브러리 : 프로그램에서 기본으로 제공
- 외부 라이브러리 : 다른 사람들이 만들어 놓은 것
프레임워크(framework) : 전체적인 개발 틀(프로그래밍 언어가 동일해야 함)
API : 라이브러리와 프레임워크로 만든 완제품(프로그래밍 언어가 달라도 됨)