ggoggo

1. JAVA 개요 (1) 본문

3-2/JAVA

1. JAVA 개요 (1)

chchae01 2022. 9. 7. 23:56

프로그래밍 언어란?

 

  • 컴퓨터 언어

1) 기계어

- 0과 1로 이루어진 이진법 숫자로 구성된 것

- 번역의 과정을 거치지 않고 계산기가 직접 알아들을 수 있음

 

2) 어셈블리 언어(저급언어)

- 기계어를 기억하기 쉬운 기호어로 표시한 것 => 기계어에 가까움

- 이 언어는 일단 번역(assembling)을 거쳐 기계어로 전환된 뒤 사용

 

3) 컴파일러 언어(고급언어)

- 컴퓨터가 바로 이해할 수 없기 때문에 번역의 과정(compiling)을 거쳐서 기계어로 전환되어 사용

ex. C, C++, Java

 

  • 프로그래밍

- 수식이나 작업을 컴퓨터에 알맞도록 정리해서 순서를 정하고 컴퓨터 특유의 명령코드로 고쳐 쓰는 작업

- 컴퓨터의 명령 코드를 쓰는 작업을 특히 coding이라 함

- 프로그래밍 언어로 작성된 내용을 source라 함

 

- 구조적 프로그래밍

: 컴퓨터의 프로그램을 만들 때 쉽게 이해할 수 있고, 수정하기 위우며, 정확성을 검증하기 쉬운 프로그램이 되도록 문제를 단계적으로 상세히 풀어나가서, 최종적으로는 제어구조가 명확한 프로그램을 만드는 방법론

: 함수로 구성

: 프로그램을 기능 단위로 만듦

ex. COBOL, C, Basic

 

- 객체지향 프로그래밍

: 객체라는 작은 단위로 모든 처리를 기술하는 프로그래밍 방법으로, 처리 요구를 받은 객체가 자기 자신의 안에 있는 내용을 가지고 처리하는 방식

: 클래스로 구성

: 프로그램을 객체 단위로 만듦

ex. C++, Java

자바란?

  • 1991년 선마이크로시스템스(Sun Microsystems)에서 제임스 고슬링이 주도하여 냉장고, TV 등의 가전제품에서 사용될 운영체제를 개발하는 것을 목표로 시작
  • 처음에는 오크(Oak) 또는 그린(Green)이라는 이름으로 불리다 나중에 JAVA로 바뀜
  • C,C++등 다양한 언어가 존재했으나 아래의 목적을 위해 JAVA 개발

- 가전 제품의 종류 및 제조사가 다양 => 각 플랫폼에 독립적이어야함

- 가전제품은 재부팅 어려우므로 안정적이어야함, 특히 동적 메모리 할당과 수거가 자동으로 수행되어야함

- 네트워크에서 자동으로 내려 받는 과정이 필요하며, 이때 악성 코드가 침투할 수 없도록 포인터의 개념을 없애야 함.

  ==> 개발자가 handling할 수 없음(외부 개입 막음)

 

  • C++의 프로그래밍 방식

C,C++등의 기존 언어는 각 운영체제별로 서로 다른 코드를 만들고 별도로 컴파일해야 실행 가능

 

  • Java의 프로그래밍 방식

JAVA는 하나의 JAVA코드 만들면 모든 운영체제에서 동일하게 실행 가능 => 경제적, 효율적

"Write Once, Run Anywhere"(근디 jvm이 있어야 가넝ㅋㅋㅋ)

 

  • Java의 특징

C++의 객테지향적인 장점을 그대로 가져오면서 동시에 C++의 여러 가지 문제점 보완

 

1. 간결한 프로그래밍 문법 제공

- 문법 쉬움

- C,C++의 장점이자 문제점인 포인터 삭제

- 메모리 관리를 가비지 컬렉터(garbage collector)가 전담하여 프로그래머가 메모리에 대해 고민하지 않고 프로그래밍 로직에 집중

 

2. 이식성 높음

- WORA(Write Once Run Anuwhere)

- 자바 소스코드는 한번만 작성해놓으면 JRE(Java Runtime Enviroment)가 설치된 다양한 운영체제에서 실행 가능

 

**이식성 : 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말함

 

3. 객체 지향 언어

- OOP(Object Oriented Programming)

- 부품 객체를 먼저 만들고, 이걸들을 조합해 전체 프로그램을 완성하는 기법

- 자바는 처음부터 OOP 개발용 언어로 설계

- 캡슐화, 상속, 다형성 기능 지원

 

4. 멀티 스레드(Multi-Thread) 구현

- 하나의 프로세스 안에서 여러 개의 스레드(thread)가 동시에 작동되도록 프로그래밍 가능

- 동시에 작동되는 스레드를 작성하면 병렬 처리가 가능해져 복잡한 대용량 작업을 빠른 시간 내에 처리 가능

- 자체 API에서 멀티스레드 프로그래밍(multi thread programming) 지원하여 쉽게 병렬 프로그래밍

 

** 스레드 : 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위

 

5, 다양한 응용 프로그램 작성 가능

- 현재 사용되는 대부분의 IT 환경에서 작동하는 응용 프로그램 작성 가능

- HWP, 알집, 엑셀 등과 같이 일반 컴퓨터에서 작동하는 '데스크톱 응용 프로그램', 웹 브라우저에서 다운로드된 후 작동하는 '애플릿', 웹 서버에서 작동하는 'JSP(Java Server Pages)' 또는 '서블릿(survlet)', TV나 냉장고 등의 가전제품에서 작동하는 '임베디드 프로그램', 안드로이드 스마트폰이나 테블릿에서 작동하는 '모바일 앱'을 JAVA로 작성 가능

 

6. 오픈 소스 라이브러리 풍부

- 외부의 다양한 오픈 소스 라이브러리(open source library) 사용 가능

- 수많은 프로젝트에서 이러한 라이브러리를 오픈 소스로 제공하기 때문에 구현하고자 하는 고급 기능을 누구나 가져와서 사용할 수 있다.

- 다양한 오픈 소스 프로젝트는 일회성 제공에 그치는 것이 아니라 커뮤니티를 통해 체계적인 소스 관리와 업그레이드가 이뤄지고 있다.

- 실무에서 JAVA 언어를 많이 사용하는 가장 큰 이유 중 하나는 이러한 오픈 소스 라이브러리를 사용하여 자신의 고급 기능을 빠른 기간 내에 안정적으로 구현할 수 있다는 것이다.

- 대표적인 오픈 소스 라이브러리로는 Spring, Apache Commons, Google Guava ...

 

  • Java 가상 머신(JVM)

- 실 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할

- JVM에서 '가상 머신'은 실제로는 소프트웨어로 설치되고 작동

- 운영체제에 맞게 설치되어야 한다.

- JVM 역할을 하는 소프트웨어를 JAVA 소프트웨어 또는 JRE(Java runtime environment)라 한다.

- JVM은 JDK 또는 JRE를 설치하면 자동으로 설치된다.

자바 개발 환경 구축

  • JRE(java runtime environment) = JVM + 표준 클래스 라이브러리(JAVA API)

      자바 프로그램을 실행만 할 경우 설치

  •  JDK(Java Development Kit) = JRE + 개발도구(Java 컴파일러 + Java 툴)

      자바 프로그램 개발하고 실행하기 위해 반드시 설치

자바 프로그램 개발 순서

Java 프로그램 구성

  1. 클래스와 메소드
  2. 주석
  3. 실행문과 세미콜론

'3-2 > JAVA' 카테고리의 다른 글

length, length(), size()의 차이  (0) 2022.10.07
2. 출력과 변수(3)  (0) 2022.09.16
2. Java 프로그래밍 기초 (2)  (0) 2022.09.15
2. 통합 개발환경 eclipse 설치 (1)  (0) 2022.09.14
1. JAVA 개발환경 구축 (2)  (0) 2022.09.14