스프링 키워드 스터디 - 2

딩딩당당·2022년 11월 29일
0

객체지향의 3요소

객체지향의 3요소에는 캡슐화, 상속, 다형성이 있다.

1. 캡슐화 ( 은닉성 )

  • 객체의 속성을 보호하기 위해 사용
    자바에서 캡슐화란 값의 보호를 위해 필드, 메소드를 감추거나 들어내는 것을 말한다.

  • 접근 제한자
    필드와 메소드의 접근을 접근 제한자를 통해 제한한다.
    Private - 자기 클래스 내에서만 접근 가능
    Protected - 다른 패키지여도 상속관계라면 접근 가능
    Public - 어디서든 접근 가능

  • 캡슐화 특징

  1. 데이터(필드)는 가린다
  2. 데이터 접근은 getter/setter 메소드를 통해 접근

2. 상속

  • 상속이란?
    기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해 클래스를 작성하면 적은 양의 코드로 새로운 클래스를 작성할 수 있고 공통적으로 관리할 수 있기 때문에 생산성과 유지보수에 크게 기여한다.

  • 상속을 구현하는 방법
    새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 extends와 함께 작성하면 된다.

  • 주의점

  1. 상속한 클래스의 모든 데이터와 메소드를 사용할 수 있는 것은 아니며 이는 접근제한자에 의해 결정된다.
  2. 자바의 상속은 하나의 부모클래스만 가질 수 있는 단일 상속만 지원한다.(interface를 통해 다중 상속을 구현할 수 있긴 하다)

3. 다형성

  • 다형성이란?
    다형성은 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것중 하나이며 프로그램 언어의 각 요소들이 다양한 자료형(type)에 속하는 것이 허가되는 성질이다. 쉽게 말해 하나의 객체에 여러 가지 타입을 대입할 수 있는 것을 의미한다.

예시로 Override를 들 수 있는데 부모클래스에서 정의된 메소드를 자식 클래스에서 재정의하여 Override하는 것 또한 다형성이라고 볼 수 있다.

Controller,Service,Repository

1. Controller

  • Controller란?
    서버에서 기능별 URL이라는 API를 개설해 놓았고, 클라이언트는 필요한 데이터를 얻기 위해 적절한 API에 요청을 하게 되는데 Controller는 이런 창구 역할을 하는 API들을 모아놓은 클래스이다

  • Controller가 하는 역할

  1. MVC에서 웹상으로 들어오는 여러 요청들을 처리하는 역할이며 Front-end에서 들어오는 클라이언트 측의 요청이 가장 먼저 서버 측과 맞닿는 부분이다.

  2. 뷰를 연결하여 웹에 띄우고 뷰에서 가져오는 데이터들을 어떻게 처리하는지 결정한다

2. Service

  • Service란?
    controller에서 전달받은 유저의 요청사항에 맞게 데이터를 가공해서 DB로 전달하거나 반대로 DB에서 데이터를 전달받아 가공하여 view의 유저에게 전달하는 클래스이다.
  • Service가 하는 역할
  1. Model이 DB에서 받아온 데이터를 전달받아 가공하는 역할

  2. 비즈니스 로직 처리
    프레젠테이션 계층과 데이터 엑세스 계층 사이를 연결하는 역할 두 계층이 직접적으로 통신하지 않게 한다.

3. Repository

  • Repository란?
    간단하게 데이터를 검색하거나, 삽입하고 삭제 및 수정을 할 수 있는 인터페이스이다.

  • Repository의 역할

  1. JPA에서 Repository 인터페이스를 생성 후 JpaRepository<Entity, 기본키 타입>을 상속받으면 기본적인 Create, Read, Update, Delete를 자동으로 생성

  2. 데이터베이스에 CRUD의 명령을 실행하게 만드는 인터페이스 복잡한 쿼리 없이 CRUD 명령을 DB에 전달하여 원하는 쿼리를 실행할 수 있다.

profile
자바공부해요흑흑

0개의 댓글

관련 채용 정보