티스토리 뷰

5주차도 끝!! 다시 한 번 배운 내용을 정리하고 남겨두도록 해야겠다.

/////////////////////

먼저 SQL이 무엇일까? 차근차근 생각해 보자!

 

먼저 데이터베이스를 관리하는 시스템을 DBMS라고 한다.

 

그리고 이 DBMS를 크게 나눠서 보면 관계형 데이터베이스와 나머지로 볼 수 있는데,

여기에서 관계형 데이터베이스는 SQL DB, 나머지는 NoSQL DB라고 부른다.

 

여기에서 SQL이란 관계형 데이터베이스와 상호작용하기 위한 언어로,

정리하자면 관계형 데이터베이스에서 데이터를 관리하고 처리하기 위해 설계된 언어라고 할 수 있다.

 

/////////////////////

그리고 더 나아가 ORM을 설명하기 전에 ORM이 어떻게 등장하였는지를 살펴보자.

객체를 DB에 저장하는 방식은 JDBC, SQL Mapper, ORM으로 변화해 왔다.

 

JDBC는 자바에서 DB와 연결되어 데이터를 주고받을 수 있는 인터페이스로, 우리가 만든 객체가 DB에 등록되거나 조회할 때 중간다리가 되어주는 역할이다.

 

하지만 객체를 등록하거나 조회할때, 복잡한 JDBC api와 sql을 직접 작성했어야 해서 너무나 번거롭고 불편한 작업을 수행했어야 했다.

 

이러한 불편함을 해결하기 위해 SQL Mapper가 등장하였다. (Jdbc Template, Mybatis 같은!)

다만 이것도 개발 코드는 많이 줄었지만, 개발자가 sql을 직접 작성해야하는 것은 같았다.

 

그리고 그 다음, ORM이 등장한다.

객체와 관계형 데이터베이스를 매핑하는 것으로, crud용 sql을 개발자가 작성하지 않아도 되고 

필드를 추가하거나 삭제될때에도 쿼리를 수정할 필요가 없다! (entity를 수정하면 되니까)

 

그리고 이 ORM의 대표적인 예가 바로 JPA이다.

 

/////////////////////

 

MVC를 보기 전에 먼저 서블릿과 jsp에 대해 알아보자.

 

서블릿이란,

클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술이라고 한다.

요약해서 이해하기 쉽게 생각하면 자바를 써서 웹을 만들기 위한 기술으로 클라이언트의 요청에 대한 결과를 전송해주는 역할을 하는 것이라고 생각하였다.

 

그리고 jsp란 html코드에 java 코드를 넣어서 동적 페이지를 생성하는 것이다.

(아직 이 두가지에 대해선 이해가 부족해 서로의 관계를 제대로 이해하지는 못한 상태이다..)

 

과거에 서블릿으로 개발할 때에는 HTML이 자바 코드에 섞여있어 어려움이 있었고,

이후 JSP를 사용하면서 HTML을 보다 깔끔하게 작성하고 중간중간 동적으로 변경이 필요한 부분이 있을때, 자바코드를 작성하게 되었다.

 

다만 이렇게 될 경우 JSP가 비즈니스 로직까지 너무 많은 역할을 하면서 유지보수가 지옥이 되었고,

(이 부분은 나중에 직접 체험해 볼 예정)

 

이러한 어려움을 극복하기 위해 MVC 패턴이 등장하였다고 한다.

 

MVC패턴은 하나의 서블릿이나 JSP로 처리하던 것을 컨트롤러와 뷰라는 영역으로 서로 역할을 나눈 것을 말하며,

 

컨트롤러는 HTTP 요청을 받아서 비즈니스 로직을 실행, 그리고 뷰에 전달할 결과를 조회해서 모델에 담고,

모델은 뷰에 출력할 데이터를 담아두고 뷰는 모델에 담겨있는 데이터를 사용해서 HTML을 생성하는 것과 같이 화면을 그리는 일을 하는 것이다.

댓글