본문 바로가기

배운 거/JAVA spring

ORM-SQL-MVC?

ORM이란?

ORM (Object-Relational Mapper)

객체 - 관계 맵퍼 

 

객체가 테이블이 되도록 맵핑 시켜주는 프레임워크.

Spring에서는 JPA-Hibernate가 하는 역할이라고 생각하면 될 꺼 같다.

 

JAVA의 언어를 그대로 쓰면서 객체와 RDBMS 데이터를 맵핑이 가능핟.

 

JPA?

JAVA persistence API

현재 자바 진영의 ORM 기술표준으로 

SQL을 직접 작성하지 않아 된다는 점에서 생산성을 높인다.

 

JPA는 Interface 의 모음이므로 실제로 직접 동작하는 기능이 아니며

대표적인 JPA의 Interface 중 하나가 Hibernate다

 

Hibernate?

앞서 설명한 ORM 프레임워크로 객체지향 도메인 모델을 관계형 DB로 mapping 하기 위한 프레임워크

JAVA pakage를 통해 제공된다.

 

SQL?

 

DB 시스템에서 자료를 처리용도로 사용되는 언어

NoSQL처럼 관계형 모델을 사용하지 않는 경우가 있지만

관계형 DB에서는 SQL을 따르는 데 

DBMS Vendor (ex. ORACLE, MySQL)마다 조금씩 차이가 있다.

즉 표준 SQL문법이 잘 지켜지지 않으므로 사용하는 RDBMS에 따른 문법을 배우던지

기술문서를 찾든지 해야하는데 JPA가 이걸 해결해주므로 항상 감사합시다..땡큐

 

 

MVC패턴?

디자인 패턴 중의 하나인데

싱글톤 패턴과 비교해보면서 설명하면 장단점을 쉽게 알 수있다.

개발자 면접에서도 자주 나오는 내용이니 좀 정리가 필요한 내용이다.

 

우선 싱글톤 패턴에서는 

 

하나의 클래스에서 하나의 인스턴스만을 생성할 수 있는데

Application이 시작될 때 클래스마다 최초 한번의 메모를 할당하고

메모리의 인스턴스를 생성하여 사용하는 패턴이다.

 

클래스가 여러번 호출 되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에

호출 되면 이미 생성되어 메모리에 저장된 객체만을 반환하게 된다.

 

생성자의 접근제어자는 Private으로 선언하여 객체 생성을 제한하며

메서드를 통해서만 객체를 가져올 수 있다.

 

이러한 특성 때문에 인스턴스간의 결합도가 높아서 수정이 어렵고 테스트하기에

어려움이 있다.

 

이를 해결하길 위해 나온 개선된 디자인 패턴이 바로 MVC인데

보통은 api의 설계가 Controller를 통해 권한을 얻는 구조이므로 위와 같은 도식으로

이해하면 편하다.

서로 간에 정보를 가져와서 가공하여 제공하는 식의 구조로 이해하면 편하다.

 

MVC 패턴에서의 각자의 역할 살펴보면

 

1. Model(모델)

Application의 데이터를 관리하고 가공하는 컴포넌트를 의미하는 데

직접적으로 View에 관여하는 값을 가지고 있지 않고

다른 인터페이스에서도 재사용이 가능해야한다.

 

2.View(뷰)

그냥 모델의 가공한 데이터를 화면에 표시해주는 역할을 한다.

따로 데이터를 지녀서는 안된다.

 

3.Controller

Model과 View는 어떠한 연결을 지니지 않았기 때문에

Controller가 Interface간의 연결을 하는 역할을 하는데

 

View에서 들어온 요청을 모델에서 필요한 정보들로 가공을 하거나

Model에서 View로 응답을 보내는 역할을 한다.

 

서로 분리된 역할을 하게 되므로 인스턴스간의 낮은 결합도를 갖는데

각자의 기능의 역할만 개발하는 데있어 유지보수성과 개발의 확장성 동시에 유연성을 가질 수 있다

 

역할분담에 관한 하나의 가이드라인으로 보면 되겠다.

 

https://m.blog.naver.com/jhc9639/220967034588

 

[개발자 면접준비]#1. MVC패턴이란

오늘은 개발자면접에 많이 나오기도 하는 MVC패턴에 대해서 알아보고자 합니다. 과연 MVC패턴이 무엇...

blog.naver.com