Model
DB
jdbc
MyBatis
JPA
Controller
Spring Framework- java + sql
정부 3.0/ boot2 - 정부 4.0, 4.1
Xml - 비동기 방식, json
View
view templete : php, asp, jsp
web (html, css, javaScript, jQuery)
boot3 - Rest API
- Spring Framework
Spring 프레임워크는 자바 기반의 애플리케이션 개발을 위한 오픈 소스 프레임워크입니다. 2003년에 처음 발표되었으며, 오늘날에는 자바 생태계에서 매우 중요한 역할을 하고 있습니다. Spring의 주요 특징과 구성 요소는 다음과 같습니다:
- 의존성 주입 (Dependency Injection, DI):
- Spring은 의존성 주입을 통해 객체 간의 의존성을 관리합니다. 이를 통해 애플리케이션의 결합도를 낮추고, 테스트와 유지 보수를 쉽게 할 수 있습니다.
- 제어의 역전 (Inversion of Control, IoC):
- Spring 컨테이너가 객체의 생성과 관리, 의존성 주입을 담당합니다. 개발자는 객체의 생성과 관리에 대한 걱정 없이 비즈니스 로직에 집중할 수 있습니다.
- 모듈화:
- Spring은 다양한 모듈로 구성되어 있어, 필요에 따라 특정 기능만 선택적으로 사용할 수 있습니다. 주요 모듈로는 Spring Core, Spring AOP, Spring Data Access, Spring Web, Spring Security, Spring Boot 등이 있습니다.
- 트랜잭션 관리:
- Spring은 선언적 트랜잭션 관리를 지원하여 데이터베이스 트랜잭션을 간편하게 처리할 수 있습니다.
- Spring Boot:
- Spring Boot는 Spring 애플리케이션의 설정과 배포를 간소화해주는 도구입니다. 내장 서버를 사용하여 빠르게 애플리케이션을 개발하고 배포할 수 있으며, 많은 기본 설정을 자동으로 해줍니다.
- Spring MVC:
- 웹 애플리케이션을 위한 모델-뷰-컨트롤러(MVC) 프레임워크를 제공합니다. RESTful 웹 서비스와 웹 애플리케이션의 개발을 지원합니다.
- Spring Data:
- 데이터 접근을 더 쉽게 할 수 있도록 지원하는 모듈입니다. JPA, MongoDB, Redis 등 다양한 데이터베이스와 데이터 저장소에 대한 추상화와 통합을 제공합니다.
- Spring Security:
- 애플리케이션의 보안을 강화하기 위한 모듈입니다. 인증과 권한 부여, 보안 설정을 지원합니다.
Spring 프레임워크는 유연성과 확장성이 뛰어나며, 대규모 엔터프라이즈 애플리케이션부터 소규모 프로젝트까지 폭넓게 사용될 수 있습니다.
-JSP
JSP (JavaServer Pages)는 Java 기반의 웹 페이지 기술로, 동적인 웹 페이지를 생성하는 데 사용됩니다. JSP는 HTML과 Java 코드를 혼합하여 웹 페이지를 생성하며, 서버 측에서 실행됩니다. 다음은 JSP의 주요 개념과 특징입니다:
1. JSP의 기본 개념
- HTML과 Java의 혼합: JSP 페이지는 HTML과 Java 코드를 함께 사용할 수 있습니다. Java 코드는 JSP 페이지 내에서 <% %> 태그를 사용하여 삽입합니다.
- 서블릿의 단순화: JSP는 서블릿의 복잡함을 추상화하여 더 쉽게 동적 웹 페이지를 작성할 수 있게 해줍니다. JSP 페이지는 내부적으로 서블릿으로 변환됩니다.
- 태그 라이브러리: JSP는 JSTL (JavaServer Pages Standard Tag Library)과 같은 태그 라이브러리를 통해 반복문, 조건문, 국제화 등을 지원합니다. 이로 인해 Java 코드의 사용을 최소화하고, HTML과 비즈니스 로직을 명확하게 분리할 수 있습니다.
2. JSP의 주요 구성 요소
- 디렉티브: 페이지의 전체적인 설정을 정의합니다. 예를 들어, <%@ page language="java" contentType="text/html; charset=UTF-8" %>와 같은 방식으로 설정할 수 있습니다.
- 선언: JSP 페이지에서 사용할 변수를 정의하거나 메서드를 작성하는 부분입니다. <%! int myVar = 0; %>와 같이 선언할 수 있습니다.
- 스크립틀릿: JSP 페이지 내에서 Java 코드를 실행할 수 있는 부분입니다. <% %> 태그를 사용하여 코드를 삽입합니다.
- 표현식: JSP 페이지에서 값을 출력할 때 사용합니다. <%= myVar %>와 같은 방식으로 값을 출력할 수 있습니다.
- 액션 태그: JSP 내에서 특정 작업을 수행하는 데 사용됩니다. <jsp:include page="header.jsp" />와 같은 형식으로 다른 JSP 파일을 포함할 수 있습니다.
3. JSP 페이지의 생명주기
- 번역: JSP 페이지는 처음 요청 시 서블릿으로 변환됩니다.
- 컴파일: 변환된 서블릿 코드는 컴파일되어 실행 가능한 서블릿 클래스 파일이 됩니다.
- 로드: 서블릿 컨테이너가 서블릿 클래스를 로드합니다.
- 인스턴스화: 서블릿 인스턴스가 생성됩니다.
- 요청 처리: 서블릿의 service 메서드가 호출되어 요청을 처리하고 응답을 생성합니다.
- 제거: 서블릿 인스턴스가 제거됩니다 (옵션).
4. JSP의 장점
- 간단한 문법: HTML과 Java를 혼합하여 사용할 수 있어, 웹 페이지와 비즈니스 로직을 쉽게 작성할 수 있습니다.
- 태그 라이브러리: JSTL과 같은 태그 라이브러리를 사용하면 Java 코드의 양을 줄이고, 페이지의 가독성을 높일 수 있습니다.
- 서블릿과의 통합: JSP는 서블릿과 긴밀하게 통합되어 있어, Java 기반 웹 애플리케이션에서 잘 작동합니다.
5. JSP와 다른 기술
- Servlet: JSP는 서블릿의 보다 높은 수준의 추상화입니다. 서블릿과 함께 사용되며, 서블릿과 JSP 간의 역할 분담이 중요합니다.
- JSF (JavaServer Faces): JSF는 JSP보다 더 높은 수준의 웹 프레임워크로, UI 구성 요소와 이벤트 처리에 중점을 둡니다.
- Spring MVC: Spring MVC는 Spring 프레임워크의 일부로, JSP를 뷰 기술로 사용할 수 있으며, 더 강력한 구조적 접근을 제공합니다.
JSP는 현재 웹 애플리케이션 개발에서 많이 사용되지만, 최신 웹 개발에서는 Thymeleaf, React, Angular 등 다른 기술들도 많이 사용되고 있습니다. JSP에 대한 기본적인 이해는 여전히 중요하지만, 최신 기술 동향도 함께 고려하는 것이 좋습니다.
-MyBatis
MyBatis는 자바 애플리케이션에서 SQL을 효율적으로 실행하고 매핑하는 데 사용되는 데이터 접근 프레임워크입니다. MyBatis는 SQL을 XML 파일이나 애너테이션에 정의하고, 자바 객체와 SQL 쿼리 결과를 매핑하여 데이터베이스 작업을 간편하게 처리할 수 있도록 도와줍니다.
MyBatis의 주요 개념
- SQL 매핑:
- MyBatis는 SQL 쿼리를 XML 파일이나 애너테이션으로 정의하고, 이 SQL을 실행하여 결과를 자바 객체에 매핑합니다. 이렇게 하면 SQL 쿼리와 자바 객체 간의 매핑을 명확하게 정의할 수 있습니다.
- XML 매핑 파일:
- SQL 쿼리와 자바 객체의 매핑을 정의하는 XML 파일을 사용합니다. 보통 Mapper.xml 파일에 SQL 쿼리와 매핑 정보를 정의합니다.
- 애너테이션 기반 매핑:
- XML 대신 자바 애너테이션을 사용하여 SQL 쿼리를 정의하고 매핑할 수도 있습니다. 이 방법은 코드가 XML 파일 없이 자바 클래스에 직접 정의됩니다.
- 다양한 쿼리 유형 지원:
- MyBatis는 select, insert, update, delete 쿼리를 모두 지원합니다. 복잡한 쿼리도 효율적으로 처리할 수 있습니다.
- 자동 매핑:
- MyBatis는 SQL 쿼리 결과를 자바 객체의 필드에 자동으로 매핑할 수 있습니다. 매핑 규칙은 XML 매핑 파일에서 정의할 수 있습니다.
MyBatis의 주요 구성 요소
- SQL 매퍼:
- SQL 쿼리와 매핑 정보를 정의하는 XML 파일입니다. 매퍼 파일은 SQL 쿼리와 이를 실행할 자바 메서드를 연결합니다.
- SQL 세션:
- MyBatis의 핵심 인터페이스로, 데이터베이스와의 상호작용을 담당합니다. SQL 세션을 통해 SQL 쿼리를 실행하고 결과를 얻습니다.
- Mapper 인터페이스:
- XML 매퍼 파일에 정의된 SQL 쿼리를 호출하기 위한 자바 인터페이스입니다. MyBatis는 이 인터페이스를 구현하여 SQL 쿼리를 실행합니다.
- MyBatis 설정 파일:
- MyBatis의 설정 정보를 정의하는 XML 파일입니다. 데이터베이스 연결 정보, 트랜잭션 설정, 매퍼 파일의 위치 등을 설정합니다.
- MyBatis 사용 방법
- 의존성 추가:
- Maven 또는 Gradle을 사용하여 MyBatis 라이브러리를 프로젝트에 추가합니다. 예를 들어, Maven에서는 pom.xml 파일에 다음과 같은 의존성을 추가할 수 있습니다.
- 의존성 추가:
XML
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
2. 설정 파일 작성:
- mybatis-config.xml 파일을 작성하여 MyBatis의 설정을 정의합니다. 이 파일에는 데이터베이스 연결 정보, 트랜잭션 관리 설정, 매퍼 파일의 위치 등이 포함됩니다.
3. 매퍼 파일 작성:
- SQL 쿼리와 매핑 정보를 정의하는 XML 매퍼 파일을 작성합니다. 예를 들어, UserMapper.xml 파일에 다음과 같은 SQL 쿼리를 정의할 수 있습니다.
XML
<mapper namespace="com.example.UserMapper">
<select id="findUserById" parameterType="int" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id}
</select>
</mapper>
4. 매퍼 인터페이스 작성:
- 매퍼 XML 파일에서 정의한 SQL 쿼리를 호출할 자바 인터페이스를 작성합니다. 예를 들어, UserMapper 인터페이스를 다음과 같이 작성할 수 있습니다.
public interface UserMapper {
User findUserById(int id);
}
5. SQL 세션 생성 및 사용:
- SqlSessionFactory를 생성하고, SqlSession을 통해 데이터베이스 작업을 수행합니다. 예를 들어:
SqlSessionFactory sqlSessionFactory = ...; // SqlSessionFactory 초기화
try (SqlSession session = sqlSessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.findUserById(1);
}
MyBatis의 장점
- SQL 제어: SQL 쿼리를 직접 작성할 수 있어 데이터베이스 작업에 대한 세밀한 제어가 가능합니다.
- 자동 매핑: SQL 쿼리 결과를 자바 객체에 자동으로 매핑하여 개발을 간편하게 만듭니다.
- 유연성: XML 또는 애너테이션을 통해 SQL 쿼리를 정의할 수 있어 유연한 개발이 가능합니다.
- 성능: SQL 쿼리를 직접 작성하기 때문에 ORM 프레임워크에 비해 성능 최적화가 용이합니다.
MyBatis는 복잡한 SQL 쿼리를 처리해야 하는 경우, SQL을 직접 제어하고자 하는 경우에 유용하며, 대규모 데이터베이스 애플리케이션에서 특히 효과적입니다.
'BackEnd > Backend 공부 정리' 카테고리의 다른 글
| Java-5.3 (0) | 2024.08.08 |
|---|---|
| Java-5.2 (0) | 2024.08.08 |
| sqldeveloper-4 (0) | 2024.08.02 |
| Java-3 (0) | 2024.08.02 |
| sqldeveloper-3 (0) | 2024.08.01 |