-
JAVA 스프링 개요와 추상화, 상속 그외 짜잘이공부/Java와 Spring 2021. 12. 2. 00:02
일단 자세히 공부한 것은 아니니 그냥 뼈대를 나열한다는 느낌으로
스프링이란
OOP 프레임워크이다.
스프림 삼각형
요소
1. IoC/DI
- Inversion of Control / Dependency Injection
- 제어권의 역전 / 의존성 주입
2. AOP
- Aspect Oriented Programming
- 관점 지향 프로그래밍
3. PSA
- Portable Service Abstraction
- 일관성 있는 추상화
POJO
POJO(Plain Old Java Object)에 세 가지 유형의 진동을 줌으로 거대한 프레임 워크를 만든다.
필요 서비스 지원
ORM(Object–relational mapping), OXM(Object XML Mapping), JMS(Java Message Service), AOP, CoC등 엔터프라이즈 애플리케이션을 구현하는 데 필요한 모든 서비스를 지원한다.
기본 자바
Write Once Run Anywhere
자바는 JDK를 이용해서 JRE에 의해 JVM 상에서 구동된다.
JVM
- 자바 버츄얼 머신
- 가상의 컴퓨터
JDK
- JVM용 SW 개발 도구
- 자바 소스 컴파일러인 javac.exe를 포함한다.
JRE
- JVM용 OS
- 자바 실행 환경,
- 자바 실행도구인 java.exe를 포함한다.
- main 함수가 있는지 먼저 확인한다.
이러한 특성으로 인해 자바는 write once run anywhere 특성을 가짐!
객체지향의 특징(캡슐화, 상속, 추상화, 다형성)
상속
- 상위 클래스의 특성을 하위 클래스에서 상속하고 거기에 특성을 추가(확장)하여 쓸 수 있는 특성(그래서 extends 라는 예약어로 상속을 한다.)
- 상위 클래스일수록 추상화, 일반화 되어있다.
- 하위 클래스일수록 구체화, 특수화 되어있다.
- '하위 클래스 is a kind of 상위 클래스' 라는 말이 성립되어야 한다.
- 인터페이스는 'be able to'라는 의미로 사용된다.
추상화
- 추상화의 사전적 정의 중 '여러가지 사물이나 개념에 공통되는 특성이나 속성 따위를 추출하고 파악하는 것'이라는 정의가 있음
- 객체들을 모았더니, 공통점이 보였고, 이런 객체들을 통칭할 수 있는 집합적 개념인 '클래스'가 등장
- 추상화는 '모델링'이다.
스레드와 프로세스
멀티 스레드
- 스택 영역을 스레드 수만큼 분리한다.
멀티 프로세스
- 스택, 스태틱, 힙 메모리 영역이 프로세스의 수 만큼 분리된다.
짜잘이
자바 서블릿
웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다.
CBD
Component Based Development
SOA
Service Oriented Architecture
LSP(리스코프 치환 원칙)
컴퓨터 프로그램에서 자료형 S가 자료형 T의 하위형이라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 T의 객체를 자료형 S의 객체로 교체(치환)할 수 있어야 한다는 원칙이다. - 위키 -
예를들어
동물, 포유류라는 클래스가 있다고 가정하면, 동물은 상위 클래스이고, 포유류는 하위 클래스이다.
만약 어떤 함수에서 동물을 인자로 받아서 '나는 숨을 쉰다'라는 텍스트를 출력하는 메서드를 정의했다고 하자.
이때 동물의 하위 클래스인 포유류를 인자로 넣어도 이 함수는 정상적으로 동작해야 한다.
'공부 > Java와 Spring' 카테고리의 다른 글
TIL 3일 - 인텔리J로 자바 스프링 시작 (0) 2021.12.30 TIL 2일 - Java 공부(자잘자잘, SOLID 원칙) (0) 2021.12.30 What is Spring (0) 2021.11.25 9월 23일 - 자바 짜짤이 (0) 2020.09.23 9월 22일 - JAVA 짜잘한 개념 (0) 2020.09.22