반응형
목차
1. Java란?
- 객체 지향 프로그래밍 언어 및 소프트웨어 플랫폼.
- 규칙 및 구문은 C 및 C++ 언어를 기반으로 함.
※ Java와 Javascript의 차이
Java | Javascript |
컴파일 필요 | 컴파일 불필요 |
어디서나 실행됨 | 웹 브라우저에서만 실행됨. |
※ Java의 작동방식
- Java로 개발하려면 JDK(Java 개발 키트)를 다운로드 해야함.
- Java 언어로 프로그램 작성 → 컴파일러가 프로그램을 Java 바이트 코드로 변환
* Java 바이트 코드 : Java 런타임 환경(JRE)의 일부인 Java 가상 머신(JVM)을 위한 명령어 집합.
* JVM(Java 가상 머신) : Java 바이트 코드를 구문 분석하고, 실행하거나 해석함.
※ Java가 중요한 이유
- 전 세계 스마트폰 중 가장 많은 점유율을 차지하고 있는 Android 운영 체제의 핵심을 형성.
- 모든 산업 분야에서 웹 애플리케이션을 개발하기 위한 이상적인 프레임워크.
- 안정적인 배포 환경 형성.
※ 기술적 이점
- 상호 운용성 : Java의 객체 지향 아키텍처를 사용하면 재사용 가능한 코드를 만들 수 있어 개발 주기를 단축하고, 애플리케이션의 수명을 연장할 수 있음.
- 플랫폼 확장성 : Java의 핵심 속성으로, 애플리케이션을 모바일에서 데스크톱으로 마이그레이션 하거나, 앱을 데스크톱 소프트웨어에 통합하는 등 개발 주기를 생략할 수 있음.
- 적응성 : 적응성이 좋아 새로운 기술에 사용하는 언어로 많이 쓰임. 새로운 라이브러리를 지속적으로 개발하고 공유함.
2. 객체 지향 언어란?
- '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물 간의 상호작용이다.' 가 기본 개념.
- 현실 세계를 객체 단위로 프로그래밍.
- 객체는 field(데이터)와 method(코드)를 하나로 묶어 표현하는 구성 요소.
3. 객체 지향 프로그래밍 특징
- 캡슐화 : 데이터와 코드의 형태를 외부로부터 알 수 없게 데이터의 구조와 역할, 기능을 하나의 캡슐 형태로 만드는 방법. (= 정보은닉)
- 상속 : 부모 클래스에 정의된 변수 및 메서드를 자식 클래스에서 상속 받아 사용하는 것.
- 추상화 : 클래스들의 공통적인 특성(변수, 메소드) 들을 묶어 표현하는 것.(= 코드의 유지보수, 재사용성이 높아짐.)
- 다형성 : 하나의 객체나 메소드가 여러가지 다른 형태를 가질 수 있는 것(오버로딩, 오버라이딩)
- 오버로딩(Overloading) : 클래스 안에서 동일한 이름의 메서드를 서로 다른 파라미터와 리턴 타입으로 여러 개 정의 하는 것.(= 동적 다형성)
- 오버라이딩(Overriding) : 부모 클래스에 정의된 메서드를 자식 클래스에서 새롭게 정의하는 것. 매개변수와 리턴 타입이 같아야 함.(= 정적 다형성)
4. Spring이란?
- POJO(Plain Old Java Object) 기반의 경량화된 개발 환경을 제공하는 오픈소스 프레임워크.
5. Spring의 특징
- POJO 기반의 경량화된 개발 환경을 제공함.
- IoC(Inversion of Control) 컨테이너 : 제어의 역전으로, 프로그램 제어 흐름을 개발자가 직접 제어하는 것이 아니라 프레임워크나 라이브러리가 흐름을 제어하는 것. 개발자는 비즈니스 로직에 집중할 수 있게 됨.
- AOP 지원 : 공통으로 사용하는 기능들을 외부의 독립된 클래스로 분리하고, 해당 기능을 프로그램 코드에 직접 명시하지 않고 선언적으로 처리하여 적용하는 것. 즉, 공통된 기능을 재사용하는 기법.
- DI(Dependency Injection) 지원 : 의존관계 주입으로, 의존관계를 외부에서 결정하고 주입하는 것. 의존 관계 주입 방법에는 생성자 주입 방법, 수정자 주입 방법이 있음.
의존 관계 주입 이용 시,
- 의존성이 줄어듦.
- 재사용성이 높은 코드가 됨.
- 테스트하기 좋은 코드가 됨.
- 가독성이 높아짐.
라는 장점이 있음.
6. Spring의 장단점
- 장점
- 애플리케이션, 웹사이트 등 다양한 개발에 적합함.
- 사용자가 많아 다양한 라이브러리 등을 활용할 수 있음.
- 단점
- 버전 관리가 어려움.
- Spring의 학습에 상당한 시간과 노력을 투자해야함.
- 많은 기능을 탑재하고 있어 무거움.
7. Spring과 Spring Boot의 차이점
- Spring Boot는 Spring과 달리 내장서버를 가지고 있어 별도의 설정 없이 사용 가능.
- Spring Boot는 사용하고 싶은 모듈을 의존성으로 추가하면 자동으로 라이브러리를 다운로드 하고, 라이브러리 간의 의존성 문제를 해결함.
반응형
'스파르타 내일배움캠프 > TIL(Today I learned)' 카테고리의 다른 글
25.02.06 사전캠프 TIL - 스파르타 자판기 (1) | 2025.02.06 |
---|---|
25.02.05 사전캠프 TIL - 반복문 연습하기, 랜덤 닉네임 생성기 (1) | 2025.02.05 |
25.02.03 사전캠프 TIL - Github로 배포하기, python 스크래핑 (1) | 2025.02.03 |
25.01.31 사전캠프 TIL - Database, Firebase 연동하기 (0) | 2025.01.31 |
25.01.28 사전캠프 TIL (0) | 2025.01.28 |