Back-end

백엔드 공부 로드맵2(22.12)

가끔개발 2022. 12. 15. 11:03

JAVA

  • 컴파일링 언어로 한번에 컴파일링 된다.
  • 정적인 데이터 타입 명시가 필요하다.
  • JVM으로 실행되서 OS에 관계없이 동작한다.(운영체제 독립성)

JAVA 장단점

  • 장점
    • 운영체제의 독립적
      1. JVM에서 동작하기 때문에 플랫폼에 종속적이지 않다.
    • 객체지향 언어
      1. 캡슐화,상속, 추상화,다형성 등을 지원하여 객체 지향 프로그래밍이가능핟,
    • 동적로딩을 지원
      • 애플리케이션을 실행될 때 모든 객체악 생성되지 않고, 각 객체가 필요한 시점에 클래스를 동적 로딩해서 생성된다. 또한 유지보수 시 해당 클래스만 수정하면 되기 때문에 전체 애플리케이션을 다시 컴파일할 필요 없다, 따라서 유지보수가 쉽고 빠르다.
  • 단점
    • 비교적느림
      • 한번의 컴파일링으로 실행 가능한 기계어가 만들어지지 않고 JVM에 의해 기계어로 번역되고 실행되는 과정을 거치기 때문에 조금 느리다.

OOP(객체 지향 프로그래밍) 특징

 

객체 지향 프로그래밍이란 프로그램 구현에 필요한 객체를 파악하고 객체들 간의 상호작용을 통해 프로그램을 만드는 것 을 말한다.

  • 캡슐화
    • 정보 은닉 : 필요 없는 정보는 외부에서 접근하지 못하도록 제한
    • 높은 응집도, 낮은 결합도로 유연함과 유지보수성 증가
  • 추상화
    • 사물들의 공통적인 특징을 파악해서 하나의 개념(집합)으로 다루는 것
    • 목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념
  • 상속
    • 기존 상위클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념
  • 다형성
    • 형태가 같은데 다른 기능을 하는 것을 의미
    • 오버라이딩, 오버로딩

OOP(객체 지향 프로그래밍) SOLID 원칙

  • S : 단일 책임 원칙(Single Responsible Principle)
    • 객체는 단 하나의 책임만을 가져야한다.
    • 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.
  • O : 개방 폐쇄 원칙(Open Closed Principle)
    • 기존 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계되어야 한다.
  • L : 리스코프 치환 원칙
    • 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야한다.
  • I : 인터페이스 분리 원칙
    • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
    • 인터페이스가 명확해지고, 대체 가능성이 높아진다.
  • D : 의존관계 역전 원칙 (Dependency Inversion Principle)
    • 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 것이다.
    • 쉽게 이야기하면, 구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻