1. 컴포넌트와 모듈의 차이
- 컴포넌트 :
기능의 최소 단위고 프로그래밍에 있어 재사용이 가능한 각각의 독립된 모듈입니다.
컴포넌트 기반 프로그래밍을 하면 레고처럼 조합하여 화면을 구성할 수 있습니다.
- 모듈
자바에서 제공하는 기능은 자바 1.9부터 사용 가능합니다.
외부에서 재사용할 수 있는 패키지들을 묶은 것을 만합니다.
서로 다른 프로젝트가 impoer와 export를 이용하여 패키지를 주고받는 패키지의 상위 개념입니다.
- 차이점
둘 다 하나의 기능을 가지고 소프트웨어의 재사용하기 위해 사용됩니다.
의미는 비슷하지만 모듈은 구조의 최소 단위, 정적인 구조를 가지고 컴포넌트는 런타임에 독립적으로
배포되고 실행되는 단위입니다.
※ 런타임 : 컴파일이 완료된 이후 사용자에 의해 응용프로그램이 동작되는 때
2. 자바란 무엇인가
웹 애플리케이션 코딩에 널리 사용되는 프로그래밍 언어입니다.
- 고품질 학습 리소스
개발자를 학습 과정 내내 활용 가능하고 초보자는 Advancde Java로 넘어가기 전에 Core Java에서
코드 작성을 시작할 수 있습니다.
- 기본 제공 함수 및 라이브러리
다양한 애플리케이션을 개발하기 위해 기본 제공 기능과 라이브러리로 구성된 풍부한 에코시스템을
제공합니다.
- 고품질 개발 도구
자동화 편집, 디버깅, 테스트, 배포 및 변경 관리를 지원하는 다양한 도구를 제공합니다.
이러한 도구는 프로그램을 시간과 비용이 효율적으로 줄어듭니다.
- 플랫폼 독립적
Windows, Linux, iOS 또는 Android와 같은 기본 플랫폼에서 실행 가능합니다.
여러 디바이스에서 애플리케이션을 실행하려는 환경에서 유용합니다.
3. 자바의 구동원리
1) 소스코드(. java) 확장자를 작성합니다.
2) 컴파일러(Javac.exe)가 자바 소스 코드(. java)를 바이트 코드(. class)로 변환합니다.
3) 런처(java.exe)로 자바 가상 머신을 구동시킵니다.
4) 자바 가상 머신(JVM)이 바이트 코드를 해석하여 자바 프로그램을 실행합니다.
4. JVM의 특징
- 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스, 스토리지를 갖추고 작동하는
가상 컴퓨터 시스템입니다.
- Java, OS 사이에 중재자 역할을 수행하며 CPU나 운영체제의 종류와 무관하고 동일하게
동작할 것을 보장합니다.
- 프로그램 메모리를 관리하고 최적화합니다.
5. 객체 지향과 절차 지향의 차이점
- 절차 지향
말 그대로 순서에 따라 프로그래밍하는 방식입니다. 절차는 ProCedure 영단어를 그대로 해석한 것이고
의미적으로는 절차 지향보다 프로시저 지향이라고 부르는 것이 더 의미가 맞습니다.
데이터를 중심으로 한 프로시저로 구성됩니다.
- 객체 지향
데이터 및 데이터와 관련된 프로시저를 객체라고 불리는 단위의 묶습니다.
객체는 프로시저를 실행하는데 필요한 만큼의 데이터를 가지며 객체들이 모여 프로그램을 구성합니다.
- 차이점
프로그램 규모 작은 경우 절차 지향이 적합하지만 요구 사항의 변화가 생겼을 경우 국제 지향이 전합니다.
즉 절차 지향은 유지보수의 어려움이 생기고 객체 지향은 유지보수의 유연하기 가능합니다.
6. 객체지향 언어의 특징
- 자신만의 '속성', '기능'을 가지고 상호 작용한다고 보고 이러한 개념을 프로그램에 적용하여
독립적인 단위인 객체를 생성하고 조작하여 객체 낄; 상호작용을 할 수 있게 하는 프로그래밍 언어입니다.
- 프로그램상에서 구현할 대상을 객체라고 하며 객체의 '속성', '기능'을 정의한 설계도와 같은 것이
클래스입니다.
▷ 객체 : 프로그램상에서 구현할 대상
▷ 클래스 : 객체의 '속성', '기능'을 정의한 설계도와 같은 것
▷ 인스턴스 : 클래스의 내용대로 메모리상에 구현될 실체
- 캡슐화
객체의 내부 구조 및 정보를 캡슐처럼 하나로 감싸 외부에서 볼 수 없게 은닉하여 보호하는 것을 말합니다.
객체는 외부에서 직접적으로 접근하는 것을 막고 외부 접근이 허락된 멤버 변수와 멤버 함수를 통해서 다른 객체와
상호 작용할 수 있도록 합니다
- 상속
부모 클래스로부터 자식 클래스가 부모 클래스의 속성을 물려받는 것을 말합니다.
자식 클래스는 부모 클래스가 가지고 있는 속성을 확장시켜 사용 가능합니다.
- 다향성
하나의 객체나 메 서도가 여러 가지 다른 형태를 가질 수 있는 것을 말합니다.
대표적으로 오버 라이딩, 오버 로딩, 상속받은 객체의 참조 변수 변화 등이 있습니다.