JPA (Java Persistence API)는 자바 객체와 관계형 데이터베이스를 매핑하는 API
목적: 자바 객체와 DB 간의 매핑 관리, 데이터베이스 작업을 객체 지향적으로 처리한다.
기술 유형: ORM(Object-Relational Mapping) 기술로, 자바 객체와 데이터베이스의 테이블을 자동으로 매핑한다.
사용 위치: Service계층에서 DB와 상호작용할 때 사용된다.
주요 기능: CRUD 작업을 처리하고, SQL 없이 객체 지향적으로 데이터베이스 작업을 할 수 있다.
ex. @Entity, @Id 어노테이션을 사용하여 자바 객체를 DB 테이블과 연결한다.
JSP (JavaServer Pages)는 웹 서버에서 동적으로 HTML 페이지를 생성하는 기술
목적: 서버 측에서 동적으로 HTML을 생성하여 클라이언트에게 전달한다.
기술 유형: 서버 측 웹 템플릿 기술로, HTML에 자바 코드를 삽입해 동적 콘텐츠를 만든다.
사용 위치: 주로 웹 애플리케이션의 뷰 레이어에서 사용된다.
주요 기능: HTML, CSS, JavaScript와의 통합을 통해 동적 페이지를 생성한다.
ex. <p>이름: <%= ((User)request.getAttribute("user")).getName() %></p>
물론입니다! 예시 대신 다른 개념을 채운 표로 수정해 보겠습니다.
| 구분 | JPA (Java Persistence API) | JSP (JavaServer Pages) |
|---|---|---|
| 목적 | DB와 자바 객체 간의 매핑 관리 | 서버에서 동적으로 HTML 페이지 생성 |
| 기술 유형 | ORM 기술 | 서버 측 웹 템플릿 기술 |
| 사용 위치 | 데이터베이스와의 상호작용을 처리하는 비즈니스 로직 계층 | 웹 애플리케이션의 뷰(View) 계층 |
| 주요 기능 | 객체를 DB 테이블과 매핑하고 CRUD 작업을 자동화 | HTML 내에 자바 코드를 삽입하여 동적인 콘텐츠 생성 |
| 장점 | SQL 없이 객체 지향적인 데이터베이스 작업 가능 | 자바와 HTML을 결합하여 효율적인 웹 페이지 생성 |
| 단점 | DB 관련 작업만 처리하므로 UI 생성은 불가 | 서버에 부담을 주고, 복잡한 로직 처리가 어려움 |
JSP (JavaServer Pages)와 Thymeleaf는 둘 다 웹 애플리케이션에서 동적 웹 페이지를 생성하는 템플릿 엔진임.
| 구분 | JSP (JavaServer Pages) | Thymeleaf |
|---|---|---|
| 목적 | HTML 페이지 내에 자바 코드를 삽입하여 동적 콘텐츠 생성 | HTML 파일을 서버에서 동적으로 처리하여 출력 |
| 기술 유형 | 서버 측 템플릿 엔진 | 서버 측 템플릿 엔진, 주로 Spring과 함께 사용 |
| 문법 | <%= ... %>와 같은 자바 코드를 HTML 내에 삽입 | th:* 속성 등을 사용하여 HTML을 처리 |
| 사용 위치 | JSP 페이지에서 자바 코드와 HTML을 결합 | HTML 파일 내에서 서버 로직과 데이터를 처리 |
| 장점 | 자바 코드와 HTML을 직관적으로 결합 가능 | HTML 파일을 그대로 열어서 작업할 수 있어 가독성이 좋고 유지보수가 용이 |
| 단점 | 자바 코드와 HTML이 섞여 있어 코드 유지보수가 어렵다 | 일부 복잡한 기능에서는 자바 코드와의 분리가 어려울 수 있다 |
| 주요 사용처 | 주로 오래된 시스템이나 JSP 기반 애플리케이션 | Spring Boot 및 현대적인 웹 애플리케이션에서 주로 사용 |
JSP와 Thymeleaf는 동적인 웹 페이지를 생성하는 목적이 같지만, Thymeleaf는 HTML 파일을 더 깔끔하게 처리할 수 있으며, Spring과 잘 통합되어 현재 웹 개발에 선호되고 있다.