자바란?

배지원·2022년 8월 25일
0

JAVA

목록 보기
1/32
post-thumbnail

JAVA는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어로 현재 웹 애플리케이션 분야에 가장 많이 사용하는 언어 중 하나이고, 안드로이드를 비롯한 모바일 기기용 소프트웨어 개발에도 널리 사용되고 있다.

1. 철학

  • 객체 지향 방법론을 사용해야한다
  • 같은 프로그램이 여러 운여체제에서 실행될 수 있어야 한다
  • 컴퓨터 네트워크 접근 기능이 기본으로 탑재되어 있어야 한다
  • 원격 코드를 안전하게 실행할 수 있어야 한다
  • 다른 객체 지향 언어들의 좋은 부분만 가지고 와서 사용하기 편해야 한다


    자바는 초기 설계부터 객체 지향 언어로 설계가 되었고 같은 코드로 어떤 마이크로프로세서에서나 실행되기를 원했다. 따라서 자바만의 실행 코드인 바이트코드라는 중간 코드를 컴파일러에 의해 생성하고 자바 가상 머신(JVM)에 의해 해석되어 실행된다. 즉, 같은 코드로 다양한 플랫폼이나 운영 체제에서 실행될 수 있다는 점이다.

2. 특징

1. 객체지향 프로그래밍(OPP)

  • 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결하여 전체 프로그램을 완성하는 것

    객체지향 vs 함수형

    객체지향 프로그래밍함수형 프로그래밍
    장점1. 코드 재사용이 가능(확장, 유지보수에 용이)
    2. 분석, 설계의 전환이 쉬움
    1. 동작부가 간결해 가독성이 높음
    2. 테스트가 쉬움
    단점1. 동작부가 간결해 가독성이 높음
    2. 테스트가 쉬움
    외부 데이터, 내부데이터 상태를 조작할 수 없음
    언어 비교자바, C++, 스위프트 등Haskell, OCaml 등

2. SOLID 법칙

(1) 단일 책임 원칙(Single Responsibility Principle)

  • 하나의 클래스는 단 하나의 책임을 가져야 한다.
  • 하나의 클래스가 여러 기능을 수행한하면 유지보수가 힘들어진다.

(2) 개방 폐쇄 원칙(Open-Closed Principle)

  • 확장에는 열려있고 수정에는 닫혀있다는 의미이다.
  • 확장에 열려있다는 것은 요구사항이 변경되면 새로운 동작을 추가하여 이를 해결할 수 있다는 의미이다.
  • 수정에 닫혀있다는 것은 기존의 코드를 수정하지 않고도 기능을 추가하거나 변경할 수 있다는 의미이다.

(3) 리스코프 치환 원칙(Liskov Substitution Principle)

  • 하위 타입은 상위 타입을 대체할 수 있어야 한다.

(4) 인터페이스 분리 원칙(Interface Segregation)

  • 클라이언트는 자신이 이용하는 메소드에만 의존해야 한다.
  • 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다.

(5) 의존 역전 원칙(Dependency Inversion)

  • 구체화된 클래스보다 추상클래스/인터페이스에 의존해야한다.
  • 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다.

3. DI(Dependency Injection) - 의존성

  • 객체가 의존하는 또 다른 객체를 외부에서 선언하고 이를 주입받아 사용하는 것
  • ”DI한다 → constructor를 이용해 interface 구현체를 넘겨서 초기화 시킨다”
  • 의존성의 이유
    • 객체 상호 간 의존성 관계를 줄여줌
    • 코드의 재사용과 조합이 용이함
    • 변화에 구조가 민감하지 않음
    • 코드들이 분리되어 가독성이 좋아짐

참고 문헌 : 위키백과

profile
Web Developer

0개의 댓글