Framework/Spring Boot(11)
-
QueryDSL 바로 알기
0. 목차 왜 ORM인가? Spring ORM 기술QueryDsl 잘. 쓰기정리 1. 왜 ORM인가? ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스 간의 설정을 의미합니다. ORM은 서버에서 반드시 필요한 데이터베이스 작업 요청의 인터페이스 역할을 담당합니다. 예를 들어 사용자(User)를 조회하는 DB작업이 필요하다면 네이티브 쿼리를 사용하는 경우는 다음 코드를 작성할 것이라고 예상할 수 있습니다. SELECT * FROM users WHERE username = [username] ORM이 등장하기 이전에는 코드에 DB 종속적인 sql 쿼리가 작성되는 것이 일반적이었고 Spring의 경우도 Mybatis를 써서 코드를 설계하는 경우가 많았습니다. 그럼 만약 ..
2024.03.31 -
[Spring] spring에 mybatis 적용하기
이번 글은 spring에 mybatis를 적용하는 방법에 대해 정리해보려고 합니다. 먼저 mybatis는 무엇이고 어떤 역할을 하는지 알아보겠습니다. Mybatis란?Mybatis는 자바에서 JDBC를 통해 DB에 접근하여 SQL 쿼리를 수행할 수 있도록 지원하는 개발 프레임워크입니다. 제가 JDBC를 위해 자바에서 사용할 수 있는 JPA보다 Mybatis를 좋아하는 이유는 Mybatis장점 때문입니다. Mybatis의 장점복잡한 SQL 쿼리를 수행하는데 유리하다.자바와 SQL 쿼리를 분리할 수 있다. 제가 강조하고 싶은 장점은 첫 번째 복잡한 SQL 쿼리를 수행하는데 장점이 있다는 점입니다. 이렇게 복잡한 쿼리가 있다고 했을 때 JPA로 작성하는 것은 힘든 작업 일 수 있습니다. (왜 힘든지에 대해서..
2022.11.26 -
[Spring] PSA(Portable Service Abstraction)
이번 글에서는 스프링의 핵심 기술 IoC/DI, AOP와 더불어 PSA에 대해 정리해보려고 합니다. (본 글은 토비의 스프링 3.1의 내용을 제가 이해한 방식으로 정리한 글입니다.)PSA란 Portable Service Abstraction의 약자로 서비스 추상화라고 부릅니다. 추상화라는 단어에 대해 좀 더 깊이 들어가 보겠습니다. 자바에서는 표준 스펙, 사용 제품, 오픈 소스를 통틀어서 사용 방법과 형식은 다르지만 기능과 목적이 유사한 기술이 존재합니다. 예를 들어 DB에 접근하기 위해 Jdbc, Hibernate, Mybatis, JPA 등 DB Connection을 생성하고 SQL문을 실행하고 결괏값을 받는 등 DB와 관련된 로직을 처리한다는 점에서 기능과 목적은 동일하지만 사용하기 위한 방법은 다..
2022.11.05 -
[Spring] 예외를 처리하는 방법
이번 글에서는 예외를 처리하는 방법에 대해 정리해 보려고 합니다. (본 글은 "토비의 스프링 3.1" 책을 읽고 책의 내용과 제 생각을 더해서 쓴 글입니다) 예외를 처리할 때 반드시 지켜야 할 핵심 원칙은 모든 예외는 적절하게 복구되든지 아니면 작업을 중단시키고 운영자 또는 개발자에게 분명하게 통보해야 합니다. 앞으로는 이 두 가지의 핵심 원칙을 지켜 자바에서 예외처리를 하기 위한 효과적인 방법에 대해 정리해보려고 합니다. 1. 자바에서 throw를 통해 발생시킬 수 있는 예외2. 예외를 처리하는 일반적인 방법과 효과적인 방법3. 일괄된 예외처리 전략 1. 자바에서 throw를 통해 발생시킬 수 있는 예외 자바에서 throw 키워드는 만약 어떤 연산을 하다가 예상치 못한 일이 발생했을 때 Excepti..
2022.11.01 -
[Spring] JdbcTemplate
이번글은 Spring 프레임워크의 JdbcTemplate에 대해 알아 보려고 합니다. JdbcTemplate를 사용하는 목적과 사용방법에 대해 자세히 알아보겠습니다. 1. 변하는 것과 변하지 않는것이전에 다뤘던 IoC/DI는 모듈간의 의존관계가 있을 때 스프링 컨테이너가 의존관계를 주입하는 방식이었습니다. 모듈간의 응집도는 높이고 다른 모듈간의 결합도는 낮추면서, 변화가 발생했을 때 하나의 모듈 내에서 집중되도록 하는 것이 중요한 목적이었습니다. 아래의 글은 IoC/DI에 대해 정리한 글이니 참고부탁드립니다! [Spring] IoC/DI 컨테이너이번 글은 스프링의 IoC/DI 개념에 대해 학습하고 정리하는 글을 적어보려고 합니다. 글의 전개 방향은 간단한 예제를 반복적인 리팩터링을 거치면서 IoC/D..
2022.10.22 -
[Spring] TDD란?
이번 글에서는 TDD에 대해 정리해보려고 합니다. 그리고 TDD의 매력에 눈을 뜬 저처럼 이 글을 읽는 모든 분들이 TDD 매력에 대해 느낄 수 있도록 노력해 보겠습니다! 제가 TDD에 매력을 느낀 이유는 실수의 빈도를 줄이고 빠르게 버그를 수정할 수 있다는 점이었습니다. 또한 테스트의 편의성을 높일 수 있다는 점도 TDD의 매력이었습니다. 저는 TDD 방식을 알기 전에 여러 웹 사이트를 개발하면서 사용자의 정보를 DB에 저장하는 간단한 테스트를 하기 위해서는 다음의 과정을 거쳐야 했습니다. 1. DAO를 만든 뒤 바로 테스트하지 않고 서비스 계층, MVC, 프레젠테이션 계층까지 포함한 모든 입출력 기능을 대충이라도 코드로 다 만든다. 2. 테스트용 웹 애플리케이션을 서버에 배치한다. 3. 웹 화면..
2022.10.14