Mapper 인터페이스 Mapper는 쉽게 말해서 SQL과 그에 대한 처리를 지정하는 역할을 합니다. MyBatis-Spring을 이용하는 경우에는 Mapper를 XML과 인터페이스 + 어노테이션의 형태로 작성할 수 있습니다. Mappper를 작성하는 작업은 XML을 이용할 수도 있지만, 이번 예제에서는 최소한의 코드를 작성하는 Mapper 인터페이스를 사용해 보겠습니다. TimeMapper 인터페이스에는 MyBatis의 어노테이션을 이용해서 SQL을 메서드에 추가합니다. ▶ TimeMapper 인터페이스 package org.noel.mapper; import org.apache.ibatis.annotations.Select; // org.noel.mapper.TimeMapper.getTime2 -> ..
Back-end/Spring Web Project
MyBatis MyBatis는 흔히 'SQL 매핑(mapping) 프레임워크'로 분류되는데, 개발자들은 JDBC 코드의 복잡하고 지루한 작업을 피하는 용도로 많이 사용합니다. https://mybatis.org/mybatis-3/ mybatis – MyBatis 3 | Introduction What is MyBatis? MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of res..
커넥션 풀 설정 일반적으로 여러 명의 사용자를 동시에 처리해아하는 웹 애플리케이션의 경우 데이터베이스 연결을 이용할 때는 '커넥션 풀(Connection Pool)'을 이용하므로, 아예 스프링에 커넥션 풀을 등록해서 사용하는 것이 좋다. Java에서는 DataSource라는 인터페이스를 통해서 커넥션 풀을 사용한다. DataSource를 통해 매번 데이터베이스와 연결하는 방식이 아닌, 미리 연결을 맺어주고 반환하는 구조를 이용하여 성능 향상을 한다. 커넥션 풀은 여러 종류가 있고, spring-jdbc 라이브러리를 이용하는 방식도 있지만, 나는 최근 유행하는 HikariCP를 이용할 것이다. GitHub - brettwooldridge/HikariCP: 光 HikariCP・A solid, high-per..
프로젝트의 JDBC 연결 본격적인 예제를 구성하기 위해서는 반드시 JDBC 연결에 문제가 없는지 확인해야 한다. 우선 JDBC 연결을 하려면 JDBC Driver가 필요하다. 하지만 Oracle 데이터베이스의 JDBC Driver는 11g까지 공식적으로 Maven으로는 지원되지 않기 때문에 직접 jar 파일을 프로젝트에 추가하는 방법이 안전하지만 JDBC 연결이 되는지 확인만 할 것이기 때문에 Maven을 이용할 것이다. Maven Repository (https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6/11.2.0.4)에 접속해서 Ojdbc의 Maven 코드를 복사해서 pon.xml 에 내용 추가하기 com.oracle.database..
오라클 설치 Oracle Database는 'Express Edition(이하 XE)'이라고 하는 단일 데이터베이스 구성용 프로그램을 설치해서 사용한다. (2023년 10월 현재 21 버전만 다운로드가 가능한 상황) 이 책('코드로 배우는 스프링 웹프로젝트')의 예제는 11g XE를 이용하기 때문에 나 역시 11g XE를 사용할 것이다. 2021년 중반부터 11g XE는 오라클 사이트에서 다운로드가 불가능하므로 따로 책에서 준 링크를 이용해서 다운로드 받을 것이다. 혹시나 11g XE를 다운받고 싶다면 아래 링크 들어가서 다운받기 XE Prior Release Archive Getting Started: Support Oracle Database Express Edition (XE) is a commun..
스프링의 주요 특징 POJO 기반의 구성 의존성 주입(DI)을 통한 객체 간의 관계 구성 AOP(Aspect-Oriented-Programming) 지원 편리한 MVC 구조 WAS의 종속적이지 않은 개발 환경 의존성 주입 테스트 마틴 파울러가 제시 https://www.martinfowler.com/articles/injection.html#FormsOfDependencyInjection 코드의 내부에서 객체간의 연결을이루지 않고, 외부에서 설정을 통해서 객체간을 연결하는 패턴 컴파일시가 아닌 실행시에 의존 관계가 완성되는 방식 스프링의 경우 의존성주입을 쉽게 적용할 수 있는 프레임워크 의존성 주입 테스트 스프링에서는 생성자를 이용한 주입과 setter 메서드를 이용한 주입으로 의존성 주입을 구현합니다...
Lombok Lombok(롬복)이란 Java 라이브러리로 반복되는 getter,setter,toString등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리입니다. Lombok 라이브러리 설치 Lombok의 다운로드 https://projectlombok.org 에서 jar 파일 형태로 받을 수 있습니다. Project Lombok projectlombok.org 2023년 10월 현재 Lombok 버전은 1.18.30 버전을 다운로드 할 수 있습니다. 다운로드한 lombok.jar 파일은 운영체제에서 바로 실행해 보거나, 다운로드된 경로에서 명령 프롬포트창에서 'java -jar lombok.jar'와 같은 명령어를 통해서 실행할 수 있습니다. 실행되는 화면에는 필요한 IDE를 선택할 수 있습니..
Eclispe 혹은 STS3 설치 스프링 프레임워크의 개발에는 다음과 같은 방법들을 사용할 수 있습니다. Eclipse + STS3 플러그인 STS(Spring Tool Suite)3 통합 개발 도구 IntelliJ 등 최근 Eclipse의 경우 버전에 따라서 플러그인 설치 시 여러 종류의 문제가 발생하기 때문에 가장 안전한 방법은 STS3를다운로드 받아서 설치하는 방법입니다. STS 4버전부터는 스프링 프레임워크 대신에 스프링 부트만을 지원하기 때문에 반드시 3버전을 찾아서 설치해야 합니다. Spring Tool Suite 3 the distribution build for the Spring Tool Suite and the Groovy/Grails Tool Suite - spring-attic/to..