JAVA
- 컴파일링 언어로 한번에 컴파일링 된다.
- 정적인 데이터 타입 명시가 필요하다.
- JVM으로 실행되서 OS에 관계없이 동작한다.(운영체제 독립성)
JAVA 장단점
- 장점
- 운영체제의 독립적
- JVM에서 동작하기 때문에 플랫폼에 종속적이지 않다.
- 객체지향 언어
- 캡슐화,상속, 추상화,다형성 등을 지원하여 객체 지향 프로그래밍이가능핟,
- 동적로딩을 지원
- 애플리케이션을 실행될 때 모든 객체악 생성되지 않고, 각 객체가 필요한 시점에 클래스를 동적 로딩해서 생성된다. 또한 유지보수 시 해당 클래스만 수정하면 되기 때문에 전체 애플리케이션을 다시 컴파일할 필요 없다, 따라서 유지보수가 쉽고 빠르다.
- 운영체제의 독립적
- 단점
- 비교적느림
- 한번의 컴파일링으로 실행 가능한 기계어가 만들어지지 않고 JVM에 의해 기계어로 번역되고 실행되는 과정을 거치기 때문에 조금 느리다.
- 비교적느림
OOP(객체 지향 프로그래밍) 특징
객체 지향 프로그래밍이란 프로그램 구현에 필요한 객체를 파악하고 객체들 간의 상호작용을 통해 프로그램을 만드는 것 을 말한다.
- 캡슐화
- 정보 은닉 : 필요 없는 정보는 외부에서 접근하지 못하도록 제한
- 높은 응집도, 낮은 결합도로 유연함과 유지보수성 증가
- 추상화
- 사물들의 공통적인 특징을 파악해서 하나의 개념(집합)으로 다루는 것
- 목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념
- 상속
- 기존 상위클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념
- 다형성
- 형태가 같은데 다른 기능을 하는 것을 의미
- 오버라이딩, 오버로딩
OOP(객체 지향 프로그래밍) SOLID 원칙
- S : 단일 책임 원칙(Single Responsible Principle)
- 객체는 단 하나의 책임만을 가져야한다.
- 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.
- O : 개방 폐쇄 원칙(Open Closed Principle)
- 기존 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계되어야 한다.
- L : 리스코프 치환 원칙
- 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야한다.
- I : 인터페이스 분리 원칙
- 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
- 인터페이스가 명확해지고, 대체 가능성이 높아진다.
- D : 의존관계 역전 원칙 (Dependency Inversion Principle)
- 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 것이다.
- 쉽게 이야기하면, 구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻
'Back-end' 카테고리의 다른 글
Back-end 로드맵 (0) | 2022.12.15 |
---|---|
백엔드 공부 로드맵(22.12) (0) | 2022.12.13 |
Back-End 개발자란 (0) | 2022.12.13 |