본문 바로가기
EWHA_2nd grade/Java프로그래밍과실습1

Chap1 - 컴퓨터와 프로그래밍

by 대학기록 2025. 3. 30.

컴퓨터와 프로그래머, 소프트웨어의 관계 : 만능 요리 기계, 요리설계사와 요리순서와 같다고 볼 수 있다. 
 

  • 컴퓨터는 혼자서 아무 것도 할 수 없고, 반드시 프로그래머가 설계한 소프트웨어가 있어야 움직인다는 점입니다.
  • 좋은 프로그래머는 좋은 설계사처럼, 효율적이고 정확한 소프트웨어(레시피)를 만들어 더 나은 결과물을 얻게 합니다.

 
 
 
 
프로그래밍 언어

  • 프로그래밍 언어 : 컴퓨터가 실행한 프로그램을 작성하기 위한 언어
  • 기계어(machine language) : 0,1의 이진수로 구성된 언어
  • 어셈블리어 : 자주 사용하는 명령어들을 쉬운 단어로 미리 만들로 대응시킨 언어 (기계어에 가까움)
  • 고급언어 : 사람이 이해하기 쉽고, 복잡한 작엄, 자료 구조, 알고리즘을 표현하기 위해 고안된 언어/ 크게 절차 지향 언어와 객체 지향 언어로 나눌 수 있다.

(여기서 고급 : 인간에 가깝다는 뜻! , 저급 : 컴퓨터에 더 가깝다는 뜻!)
 
 
 
 
컴파일

  • 소스 : 프로그래밍 언어로 작성된 텍스트 파일 
  • 컴파일 : 소스파일을 컴퓨터가 이해할 수 있는 기계어로 만드는 과정! 
  • 컴파일러 : 중간역할(번역가!!)
  • ex) java : .java -> .class / C : .obj -> .exe / C++ : .obj -> .exe

 
 
 
 
자바 플랫폼 독립성, WORA(Write Once Run Anywhere)

  • 한번 작성된 코드는 모든 플래폼에서 바로 실행되는 자바의 특징 
  • C/C++ 등 기존 언어가 가진 플랫폼 종속성 극복 (OS, 하드웨어에 상관없이 자바 프로그램이 동일하게 실행)
  • 네트웨크에 연결된 어느 클라이언트에서나 실행 (웹 브라우저, 분산 환경 지원)

 
WORA를 가능하게 하는 자바의 특징

  • 바이트 코드(byte code) : 자바 소스를 컴파일한 목적 코드 / CPU에 종속적이지 않은 중립적인 코드 / JVM에 의해 해석되고 실행됨 
  • JVM(JAVA Virtual Machine) : 자바 바이트 코드를 실행하는 자바 가상 기계(소프트웨어) / 자바 가상 기계 자체는 플랫폼에 종속적임. (ex. 자바 가상 기계는 플랫폼마다 각각 작성됨.) / 적은 메모리로 실행 가능. 

 
 
 
 
JDK(Java Denvelopment Kit)

  • 자바 응용 개발 환경, 개발에 필요한 도구 포함
  • 컴파일러, 컴파일된 자바 API 클래스들이 들어 있는 모듈 파일들, 샘플 등 포함.

 
 
*모듈 : 패키지의 상위 묶음
 
 
자바 API(Application Progrmming Interface)

  • JDK에 포함된 클래스 라이브러리 : 주요한 기능들을 미리 구현한 클래스 라이브러리의 집합
  • 개발자는 API를 이용하여 쉽고 빠르게, 자바 프로그램 개발 

 
 
 
 
 
자바의 특성

  • 플랫폼의 독립성 : h/w, os에 종속되지 않는 바이트 코드로 플랫폼 독립성
  • 객체지향 : 캡슐화, 상속, 다형성 지원
  • 클래스로 캡슐화 : 자바의 모든 변수나 함수는 클래스 내에 선언, 클래스 안에서 클래스(내부 클래스) 작성 가능
  • 소스(.java)와 클래스(.class) 파일 : 하나의 소스파일에 여러개 클래스 작성 가능! / 소스파일(.java)의 이름과 public으로 선언된 클래스 이름은 같아야함! / 클래스 파일에는 하나의 클래스만 존재! 

 
 

4개의 클래스를 작성한 예시

 
 
 

  • 가비지 컬렉션 : 사용하지 않는 메모리는 자바 가상 기계에 의해 자동 반환됨.
  • 실시간 응용프로그램에 부적합 : 실행 도중 예측할 수 없는 시점에 가비지 컬렉션 실행 때문 - 일시적 중단 발생

'EWHA_2nd grade > Java프로그래밍과실습1' 카테고리의 다른 글

Chap3 - 배열과 예외처리  (1) 2025.04.10
Chap3 - 반복문  (0) 2025.04.06
Chap2 - 자바 프로그래밍  (0) 2025.04.05