반응형

2025/05 8

데이터 접근 기술 - 스프링 JdbcTemplate

JdbcTemplate 소개와 설정SQL을 직접 사용하는 경우에 스프링이 제공하는 JdbcTemplate은 아주 좋은 선택지이다. JdbcTemplate은 JDBC를 매우 편리하게 사용할 수 있게 도와준다. 장점- 설정의 편리함 - JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있는데, 이 라이브러리는 스프링으로 JDBC를 사용할 때 기본으로 사용되는 라이브러리이다. 그리고 별도의 복잡한 설정 없이 바로 사용할 수 있다.- 반복 문제 해결 - JdbcTemplate은 템플릿 콜백 패턴을 사용해서, JDBC를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해준다. - 개발자는 SQL을 작성하고, 전달할 파라미터를 정의하고, 응답 값을 매핑하기만 하면 된다. ..

공부/Spring 2025.05.30

데이터 접근 기술

데이터 접근 기술 진행 방식 소개앞으로 실무에서 주로 사용하는 다음과 같은 다양한 데이터 접근 기술들을 학습한다. 적용 데이터 접근 기술- JdbcTemplate- MyBatis- JPA, Hibernate- 스프링 데이터 JPA- Querydsl 여기에는 크게 2가지 분류가 있다. SQLMapper- JdbcTemplate- MyBatis ORM 관련 기술- JPA, Hibernate- 스프링 데이터 JPA- Querydsl SQL Mapper 주요 기능- 개발자는 SQL만 작성하면 해당 SQL의 결과를 객체로 편리하게 매핑해준다.- JDBC를 직접 사용할 때 발생하는 여러가지 중복을 제거해주고, 기타 개발자에게 여러가지 편리한 기능을 제공한다. ORM 주요 기능- JdbcTemplate이나 MyBa..

공부/Spring 2025.05.27

스프링과 문제 해결 - 예외 처리, 반복

체크 예외와 인터페이스서비스 계층은 가급적 특정 구현 기술에 의존하지 않고, 순수하게 유지하는 것이 좋다. 이렇게 하려면 예외에 대한 의존도 함께 해결해야 한다.예를 들어서 서비스가 처리할 수 없는 SQLException에 대한 의존을 제거하려면 어떻게 해야할까? 서비스가 처리할 수 없으므로 리포지토리가 던지는 SQLException 체크 예외를 런타임 예외로 전환해서 서비스 계층에 던지자. 이렇게 하면 서비스 계층이 해당 예외를 무시할 수 있기 때문에, 특정 구현 기술에 의존하는 부분을 제거하고 서비스 계층을 순수하게 유지할 수 있다. 지금부터 코드로 이 방법을 적용해보자. 인터페이스 도입먼저 MemberRepository 인터페이스도 도입해서 구현 기술을 쉽게 변경할 수 있게 해보자.- 이렇게 인터페..

공부/Spring 2025.05.26

자바 예외 이해

예외 계층스프링이 제공하는 예외 추상화를 이해하기 위해서는 먼저 자바 기본 예외에 대한 이해가 필요하다.예외는 자바 언어의 기본 문법에 들어가기 때문에 대부분 아는 내용이다. 자세한 자바 예외는 다음 포스팅을 참고하자.https://surrealcode.tistory.com/65 자바 예외처리 1예외처리는 정상 흐름과 예외 흐름을 명확하게 분리하여 가독성을 높이는 데 있다. 우선 다음의 예제를 살펴보자. 이 예제는 서버와 통신(을 한다고 가정한다)하여 메세지를 보내는 예제이다.surrealcode.tistory.com 예외의 기본 내용을 간단히 복습하고, 실무에 필요한 체크 예외와 언체크 예외의 차이와 활용 방안에 대해서도 알아보자. 예외 계층 그림- Object : 예외도 객체이다. 모든 객체의 최상..

공부/Java 2025.05.22

스프링과 문제 해결 - 트랜잭션

스프링으로 트랜잭션 문제 해결을 하기 전 이전 포스팅을 참고하자https://surrealcode.tistory.com/145 트랜잭션 이해트랜잭션 - 개념 이해데이터를 저장할 때 단순히 파일에 저장해도 되는데, 데이터베이스에 저장하는 이유는 무엇일까?여러가지 이유가 있지만, 가장 대표적인 이유는 바로 데이터베이스는 트랜surrealcode.tistory.com 문제점 애플리케이션 구조여러가지 애플리케이션 구조가 있지만, 가장 단순하면서 많이 사용하는 방법은 역할에 따라 3가지 계층으로 나누는 것이다.- 프레젠테이션 계층 - UI와 관련된 처리 담당 - 웹 요청과 응답 - 사용자 요청을 검증 - 주 사용 기술 : 서블릿과 HTTP 같은 웹 기술, 스프링 MVC- 서비스 계층 -..

공부/Spring 2025.05.20

트랜잭션 이해

트랜잭션 - 개념 이해데이터를 저장할 때 단순히 파일에 저장해도 되는데, 데이터베이스에 저장하는 이유는 무엇일까?여러가지 이유가 있지만, 가장 대표적인 이유는 바로 데이터베이스는 트랜잭션이라는 개념을 지원하기 때문이다. 트랜잭션을 이름 그대로 번역하면 거래라는 뜻이다. 이것을 쉽게 풀어서 이야기하면, 데이터베이스에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 것을 뜻한다. 그런데 하나의 거래를 안전하게 처리하려면 생각보다 고려해야 할 점이 많다.예를 들어 A의 5000원을 B에게 계좌이체 한다고 생각해보자. A의 잔고를 5000원 감소하고, B의 잔고를 5000원 증가해야 한다. 5000원 계좌이체1. A의 잔고를 5000원 감소2. B의 잔고를 5000원 증가 계좌이체라는 거래는 이렇게 2..

공부/Spring 2025.05.15

커넥션풀과 데이터소스 이해

커넥션 풀 이해데이터베이스 커넥션을 획득할 때는 다음과 같은 복잡한 과정을 거친다.1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회한다.2. DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 물론 이 과정에서 3way handshake와 같은 TCP/IP연결을 위한 네트워크 동작이 발생한다.3. DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달한다.4. DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성한다.5. DB는 커넥션 생성이 완료되었다는 응답을 보낸다.6. DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환한다. 이렇게 커넥션을 새로 만드는 것은 과정도 복잡하고, 시간도 많이 소모되는 일이다.DB는 물론이고, 애..

공부/Spring 2025.05.08

JDBC의 이해

우선 https://start.spring.io/에서 프로젝트를 다음과 같이 생성한다. 또한 h2 DB를 사용할 것이기 때문에 h2 DB를 설치해주도록 하자.h2 DB는 다음의 포스팅을 참고하여 설치한다.https://surrealcode.tistory.com/87 스프링 회원 관리 예제 2https://surrealcode.tistory.com/86 스프링 회원 관리 예제이번엔 회원 관리 예제를 만들어보려 한다.기본 환경설정에 관한 내용은 아래를 참고하자.https://surrealcode.tistory.com/85 스프링 입문 - 프로젝트surrealcode.tistory.com h2 DB에 연결을 시도해보고 연결이 된다면 다음과 같은 쿼리를 실행하여 확인해보자. drop table member if..

공부/Spring 2025.05.06
반응형