ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS 100문 100답 Q.001~003(JPA, Spring Framework, Spring Boot)
    카테고리 없음 2022. 7. 11. 08:58

     

     

     

    키워드 풀이

     

    001. JPA(JAVA Persistent API) 란 무엇인가?

    영속성 관리 도구로써 Java ORM 기술에 대한 API 표준이다. RDB를 사용함에 있어 SQL문 작성없이 데이터를 생성, 조회, 수정, 삭제를 가능하게 한다.

    ORM(Object Relational Mapping)?

    객체와 테이블을 매핑해서 패러다임의 불일치를 개

     

    JPA(ORM)는 왜 사용 하는가?

    개발의 패러다임이 객체지향 중심으로 변하는 중이나 여전히 데이터 관리를 관계형 DB에서 하다 보니 객체 지향의 특징을 살리지 못하거나, 특징을 살리기 위해 SQL Mapping에 너무 많은 시간을 투자하게 되어 ROI(Return On Investment)가 굉장히 떨어지게 된다.

    • 구체적인 문제점
      • 무한반복의 CRUD 코드 반복, 자바 객체 → SQL, SQL → 자바 객체
      • 객체 그래프 탐색의 문제. 자유로운 탐색이 어려움
      • 작업이 일정부분 진행된 상태에서의 유지보수가 어려움
      • 데이터 식별 방법 문제

    JPA를 통해 SQL 중심적인 개발에서 객체 중심으로 개발하게되면 생산성, 유지보수, 패러다임의 불일치 해결, 성능 ,데이터 접근 추상화와 벤더 독립성 향상을 가져오게 된다

    영속성?

    • 데이터를 생성한 프로그램의 실행이 종료 되더라도 사라지지 않는 데이터의 특성
    • JPA는 자바의 데이터를 DBMS 에 영구히 보관할수 있게 해주는 API
    • 하드디스크의 특정 영역에 DBMS 시스템으로 관리함
    • 즉 자바 프로그래밍 할때 영구적으로 데이터를 저장하기 위해 필요한 인터페이스

    002. Spring Framwork 란 무엇인가?

     자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 엔터프라이즈급 개발을 위한 모든 기능을 종합적으로 제공

    • 자바 언어 기반의 프레임워크
    • 자바 언어의 가장 큰 특징 - 객체 지향 언어
    • 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크
    • 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임 워크
    • *DI컨테이너, IOC컨테이너는 객체지향 개발을 잘 할 수 있게 도와주는 것

    Spring Framwork 와 객체 지향?

    • 다형성이 가장 중요
    • 스프링은 다형성을 극대화해서 이용할 수 있게 도와줌
    • 스프링에서 이야기하는 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원
    • 스프링을 사용하면 마치 레고 블럭 조립하듯이, 공연 무대의 배우를 선택하듯, 구현을 편리하게 변경

    003. Spring boot 란 무엇인가?

        스프링은 다양한 기능을 제공하고 있지만, 그 기능을 사용하기 위한 설정에 많은 시간이 걸린다. 스프링 부트는 이런 단점을 보완하여 스프링 프레임 워크를 편리하게 사용할 수 있도록 지원한다. 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성하고, Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 된다.

    1. 어플리케이션 개발에 필요한 모든 디펜던시(Dependency)를 프레임워크에서 관리
    2. jar파일이 클래스 패읏에 있는 경우 스프링 부트는 Dispatcher Servlet으로 자동 구성됨
    3. 스프링 부트는 미리 설정되어 있는 Starter 프로젝트를 제공
      1. Spring boot starter dependency를 통해 다양한 패키지를 수용하고 있다
      2. 이를 통해 개발자는 dependency 관리(호환성 체크 등)에 대해 고려할 필요가 없다
    4. xml 설정 없이 자바 코드를 통해 설정할 수 있음
    5. 모니터링 관리를 위한 스프링 액추에이터(Spring Actuator) 제공

     

    참고자료

     

    스스로 생각해보기!

     

    JPA

    • JPA는 java의 객체지향 특성을 최대한 발휘 하기 위해 단순 반복 적인 SQL문 작업을 대신해서 해주는 프레임워크라는 것이며, JPA가 없다면 java 개발자는 중간중간 SQL 작업을 병행하여야 하지만, JPA로 인해 java작업만 할 수 있어 작업 효율성이 좋아지고, SQL 작업을 고려해서 사용을 지양했던 상속관계등 객체지향적인 코딩이 가능하여 java사용의 장점을 더욱더 끌어낼 수 있는 장점이 있다고 생각한다.

    Spring Framework 와 Spring boot

    • 스프링 프레임워크는 자바에서 가장 많이 사용되는 프레임워크로 의존성 주입, 제어의역전을 통한 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다. 스프링 프레이워크가 다양하고 강력한 기능을 제공하고 있지만 그 기능을 사용하기 위해서는 설정에 많은 시간이 걸리는데 이를 간편하게 사용할 수 있도록 해주는 것이 Spring boot 이다.

    댓글

Designed by Tistory.