객체지향 프로그래밍(OOP)란?
- 문제 혹은 로직을 객체 단위로 나눠서 작성하는 방법을 말한다.
- 객체들이 서로 유기적으로 상호작용하는 프로그래밍 이론이다. (eg. Java, C# 등)
- 코드의 재사용성이 증가되고 생산성이 향상되며 유지보수가 쉽다는 장점이 있다.
- 개발 속도가 느리며, 객체 단위로 실행하므로 실행 속도가 느리고 코드의 난이도가 상승된다는 단점이 있다.
객체지향 프로그래밍의 특징
캡슐화
- 데이터의 구조와 기능을 하나의 캡슐형태로 만들어 외부에서는 형태를 알 수 없도록 하는 방법을 말한다.
추상화
- 객체의 공통적인 필드와 기능을 하나의 형태로 정의하는 설계 방법을 말한다.
상속
- 하위 클래에서는 상속 받은 상위 클래스의 기능을 사용할 수도 있고, 하위 클래스 자체에 새로운 기능을 추가할 수 있는 것을 의미한다.
다형성
- 객체가 상속을 통해 기능을 확장하거나 변경하여 다른 형태로 재구성되는 것을 말한다.
자바란?
- 1995년, 제임스 고슬링에 의해 창안되었다.
- 가전제품에 내장될 소프트웨어를 위한 플랫폼 독립적인 언어였으며, 각각의 특수한 운영체제에 맞게 동작하게 된다.
- 특정 운영체제에 제약을 받지 않고 일정하게 동작하도록 발전하여 현재에 이르고 있다.
자바의 특징
고급 프로그래밍 언어
- 사람이 사용하는 언어를 기반으로 컴퓨터에게 지시할 명령어를 작성한다.
객체 지향 언어
- 객체 지향 개념을 추가하여 개발자가 좀 더 쉽고 효율적으로 프로그래밍을 할 수 있다.
- 자바 언어 이전의 고급 프로그래밍 언어였던 C 언어의 경우, 절차 지향 개념의 언어이다.
모든 운영체제 지원
- JVM(Java Virtual Machine) 기반에서의 프로그램이 실행된다.
- JVM 기반으로 프로그램이 실행되므로, 운영체제에 제약을 받지 않고 동일하게 실행이 된다.
자동 메모리 관리
- 메모리 할당과 반환의 일련의 과정을 일컫는 메모리 관리를 자동으로 해준다.
( ↔ C 언어의 경우, 메모리에 대한 관리를 직접 개발자가 할당과 반환을 수행하는 코드를 작성하여야 한다. )
- GC(Garbage Collection)를 활용하여 동적으로 할당된 메모리의 대해 사용되지 않을 경우, 반환하는 작업을 수행 한다.
멀티 스레드 기능
- 여러 개의 작업을 동시에 수행할 수 있게 해 준다.
자바 기술의 종류
Java SE(Java Staandard Edition)
- 데스크톱 컴퓨터의 응용 프로그램 개발용 자바 기술이다.
Java EE(Java Enterprise Edition)
- 서버용 응용 프로그램 개발용 자바 기술이다.
- servlet, jsp, spring framework 등에 주로 쓰인다.
Java ME(Java Micro Edition)
- 소규모 장치에서 실행되는 응용 프로그램 개발용 자바 기술이다.
- 안드로이드 등장 이후 많이 사용되지 않고 있는 자바 기술이기도 하다.
- 휴대폰, 셋톱박스 등에 주로 쓰인다.
⊙ 참고 문헌
- 이병승, 「초보 개발자를 위한 자바:한 권으로 배우는 자바 마스터 가이드 북」, 영진닷컴, 2024, p13 - 16
- 마종현, 「제로베이스 백엔드 취업 파트타임 스쿨 5기:Part 01. Java 기초-Chapter 01. Java 프로그래밍-01.Java - 소개」, 제로베이스, 2024, https://zero-base.co.kr/
- 정영진, 「제로베이스 백엔드 취업 파트타임 스쿨 5기:Part 01-2. 쉽게 배우는 자바-Chapter 06. 클래스와 객체」, 제로베이스, 2024, https://zero-base.co.kr/