Java

Java 그게 뭔데, 어떻게 하는 건데?

다애루 2021. 4. 18. 16:55

 

 

 

Java는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 연구원들이 개발한

객체 지향 프로그래밍 언어이다. 

자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트코드라는 특수한 바이너리 형태로 변환한다. 

바이트코드를 실행하기 위해서는 JVM(Java Virtual Machine)이라는 특수한 가상 머신이 필요한데,

이 가상 머신은 자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다.

자바로 개발된 프로그램은 CPU나 운영 체제의 종류에 관계없이

JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며,

이 점이 웹 애플리케이션의 특성과 맞아떨어져 인기를 끌게 되었다.


 

Java 프로그래밍을 하면서 계속 등장하므로

프로그래밍을 본격적으로 시작하기 전 객체체지향의 의미를 꼭 숙지해야 한다.

그럼 객체지향 프로그래밍에 대해 자세히 알아보자!

 

 

O O P  ?

'Object Oriented Programming'의 약어로서, 객체지향 프로그래밍을 말한다.

java, c#, python 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고

그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.


O O P 의 장점

 

  • 코드 재사용이 용이 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있음.
  • 유지보수가 쉬움 절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래 밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 메소드로 있기 때문에 해당 부분만 수정하 면 됨.
  • 대형 프로젝트에 적합 클래스단위로 모듈화 시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러명, 여러 회사에서 개발이 필요할 시 업무 분담하기 쉽다.

 

O O P 의 단점

 

  • 처리속도가 상대적으로 느림
  • 객체가 많으면 용량이 커질 수 있음
  • 설계 시 많은 시간과 노력이 필요

 


+ 클래스 / 인스턴스 & 객체 클래스

집단에 속하는 속성(attribute, 변수)과 행위(behavior, 메소드)를 변수와 메서드로 정의한 것을 말한다.

설계도와 설계도면 같은 것으로 객체를 생성하기 위한 틀으로서,

인스턴스 (객체) : 클래스에서 정의한 것을 토대로

실제 메모리상에 할당된 것으로 실제 프로그램에서 사용되는 데이터이다.