프로그램 작성 언어
기계어(machine language)
• 0, 1의 이진수로 구성된 언어
• 컴퓨터의 CPU는 기계어만 이해하고 처리 가능하다.
어셈블리어
• 기계어 명령을 표현하기 쉬운 단어인 니모닉 기호(mnemonic symbol)로
일대일 대응 시킨 언어
고급언어
• 사람이 이해하기 쉽고, 복잡한 작업, 자료 구조, 알고리즘을 표현하기 위해 고안된 언어
• 절차 지향 언어와 객체 지향 언어로 나눌 수 있다.
• Java, C#, C/C++, Basic 등
• Object-Oriented Programming, OPP
• 컴퓨터 프로그래밍의 패러다임 중 하나이다.
• 컴퓨터 프로그램을 객체들의 모임으로 파악하고자 하는 것이다.
• 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.
• 프로그램을 유연하고, 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.
• 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점
• 소스(Source) : 프로그래밍 언어로 작성된 텍스트 파일
• 컴파일(Complie) : 소스 파일을 컴퓨터가 이해할 수 있는 기계어로 만드는 과정
자바 : .Java > .class
C : .c > .obj > .exe
C++ : .cpp > .obj > .exe
자바 가상 기계에서 실행 가능한 바이너리 코드
• 바이트 코드는 컴퓨터 CPU에 의해 직접 실행되지 않는다.
• 자바 가상 기계가 작동 중인 플랫폼에서 실행한다.
• 자바 가상 기계가 인터프리터 방식으로 바이트 코드를 해석한다.
클래스 파일(.class)에 저장한다.
• 각기 다른 플랫폼에 설치한다.
• 동일한 자바 실행 환경을 제공한다.
• 자바 가상 기계 자체는 플랫폼에 종속적이다.
• 자바 가상 기계(JVM)이 클래스 파일(.class)의 바이트 코드를 실행한다.
• 링크 과정 없이 컴파일러가 바로 바이트 코드를 생성한다.
• 바이트 코드는 JVM에서만 실행 가능하다.
• 자바는 필요한 클래스들을 프로그램 실행 중에 동적으로 로딩한다.
오픈 소스란?
• 소프트웨어 제작자의 권리를 보존
• 누구나 액세스 할 수 있도록 소스 코드를 무상으로 공개한 소프트웨어
오픈 소스의 장점
• 공개된 소스 코드를 참조함으로써 개발 시간 및 비용을 단축할 수 있다.
• 공개된 소프트웨어를 다수의 인원이 참여 개량, 우수한 품질의 소프트웨어를 개발 할 수 있다.
오픈 소스의 단점
• 무단으로 사용 소프트웨어에 사용할 경우 저작권 침해가 발생
• 다양한 개량 버전의 소프트웨어로 인한 호환성 문제
• 자바 응용 개발 환경
• 개발에 필요한 도구를 포함한다.
• 컴파일러, JRE, 클래스 라이브러리, 샘플 등을 포함
• 자바 실행 환경
• JVM을 포함한다.
• 자바 실행 환경만 필요한 경우에는 JRE만 따른 다운 가능하다.
• JDK에 포함된 클래스 라이브러리
• 개발자는 API를 이용하여 쉽고 빠르게 자바 프로그램을 개발할 수 있다.
자바 패키지 (package)
• 서로 관련된 클래스들을 분류하여 묶어 놓은 것
• 계층구조로 형성
• 자바 API는 JDK에 패키지 형태로 제공된다.
• 개발자는 자신의 패키지를 생성 할 수 있다.