Spring

· Spring
💋 SimpleJdbcInsert이란? 스프링 프레임워크에서 제공하는 JDBC 확장 클래스 중 하나 JDBC로 SQL 쿼리를 실행하는 것보다 더 쉽고 간편하게 DB에 데이터를 '추가'하도록 도와준다. 💋 SimpleJdbcInsert를 사용해보자! 객체를 생성하고, 기능을 사용해서 DB에 데이터를 추가해보자! ✔ SimpleJdbcInsert 객체 생성해보자! 기본 생성자를 사용 SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource); JdbcTemplate 객체를 생성할 때 함께 생성 JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); SimpleJdbcInsert simpleJdbc..
· Spring
💋 레이어드 아키텍처란? 소프트웨어를 여러 개의 계층으로 분리해서 설계하는 방법 각각 계층이 서로 독립적으로 구성되어 있어서 한 계층의 변경이 다른 계층에 영향을 주지 않게 설계할 수 있다. 외부의 요구사항이나 세부적인 구현이 변화하더라도 도메인의 로직을 변경하지 않도록 보호하기 위해서 계층화를 하게 된다. 💋 레이어드 아키텍처의 구성 레이어드 아키텍처에 대해 대해 공부하면서 가장 혼란스러웠던 것은, 설명하는 사람마다 조금씩 다른 구성을 가지고 있었다는 것이다. 먼저, 레이어드 아키텍처의 구성은 딱 하나로 정해져 있지 않고, 애플리케이션의 크기, 복잡도, 요구사항 등에 따라 달라질 수 있다. 어떤 계층으로 정확히 나눴느냐보다도, 계층을 분리해 각 계층 사이의 의존성을 줄여서 외부 변화로부터 비즈니스 로직..
· Spring
💋 NamedParameterJdbcTemplate이란? 스프링 프레임워크에서 JDBC 작업을 보다 편리하게 할 수 있는 클래스이다. 어떻게 편리하게...? NamedParameterJdbcTemplate 클래스는 미완성의 JDBC Statement에 이제까지 쓰던 `?`(place holder) 대신에, 이름을 지어준 파라미터로 대체할 수 있게 된다. JdbcTemplate 클래스를 래핑하며, JdbcTemplate 클래스의 대부분의 기능을 사용할 수 있다. 사용 방법 위주로 공부해보자! 💋 언제 사용하면 좋을까? Named Parameter를 사용하면 파라미터의 순서를 기억할 필요 없이, 파라미터에 이름을 지어서 쿼리를 실행할 수 있다. 파라미터 이름을 사용해 SQL 쿼리를 작성하고 실행하고 싶을 때..
· Spring
지난 포스팅에서 Spring JDBC가 무엇인지, 그리고 어떤 도구들을 사용해 DB에 접근할 수 있는지에 대해서 알아보았다. 이번 포스팅에서는 JdbcTemplate을 사용해서 DB에 접근하고, Querying과 Updating을 하는 방법에 대해 공부해볼 것이다! 💋 JdbcTemplate Spring에서 제공하는 JDBC Core 패키지에서 가장 핵심이 되는 클래스 리소스의 생성과 해제를 처리해서 연결을 닫는 것을 까먹고 못하게 되는 등의 일반적인 오류를 방지한다. SQL 쿼리를 실행한다. SQL문을 실행하여 DB에서 데이터를 변경한다. 예를 들어 DB에 새로운 데이터를 추가하거나, 기존 데이터를 업데이트하거나 삭제하는 작업을 한다. SQL 쿼리의 실행 결과로 ResultSet을 생성한다. JDBC ..
· Spring
💋 Spring을 사용해 DB에 접근하자! Spring을 사용한 애플리케이션에서 DAO(Data Access Object) 또는 레포지토리를 만들었다면, 추가적으로 예외 처리에 대한 기능을 할 수 있도록 만들어야 한다. 아래와 같이 @Repository 어노테이션을 붙여 주는 것이 가장 좋은 방법이다. @Repository public class SomeMovieFinder implements MovieFinder { // ... } @Repository 어노테이션을 사용하면 컴포넌트 스캔을 통해 자동으로 빈으로 등록된다. 기존에 하던 수동 작업이던 XML 설정 파일에 DAO나 Repository 빈으로 등록하는 것을 더이상 하지 않아도 된다! DAO나 Repository 클래스에서는 애플리케이션이 종료..
· Spring
💋 인트로 이전 포스팅에서 Spring의 @Controller에서 예외 처리를 하는 방법에 대해서 공부했다. 지정한 예외를 잡아서 처리할 수 있는 기능을 얻었지만, 우리가 만드는 애플리케이션은 여러 개의 컨트롤러를 가질 때가 많다. 컨트롤러가 여러 개인 경우, 어떻게 될까? @ExceptionHandler는 코드가 작성된 @Controller 내에서만 작동한다. 다른 컨트롤러에서 동일한 예외가 발생했더라도 잡을 수가 없다. IllegalArgumentException에 대해 동일한 처리를 해주고 싶더라도, 그 예외가 다른 컨트롤러에서 발생한다면 같은 작업을 중복해서 넣어 주어야 하기 때문에 상당히 번거롭다. 이것을 해결하기 위해 등장한 것이 @ControllerAdvice이다! 💋 @ControllerA..
· Spring
💋 문제 상황 코드를 작성하던 도중 예상치 못한 에외를 만났다. 에러가 발생한 코드는 아래와 같다. @Repository public final class DbGameDao implements GameDao { public DbGameDao(DataSource dataSource) { ... } public Number insertGame(TryCount tryCount) { ... } public List selectGameIds() { ... } } org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webController’ 예외 메세지가 상당히 길고 복잡한데, 중요한 말들을 뽑..
· Spring
💋 인트로 스프링의 DI 프레임워크에 대해서 공부를 하다 보니, 기존 자바 코드에서 하던 의존성 주입에 비해 어떤 점이 더 좋은 지에 대한 궁금증이 생겼다. 자바 코드를 사용해서도 의존성 주입을 받을 수 있다. Spring이 없이도, 우리는 순수 자바 코드만으로도 이제까지 확장 가능성을 고려하면서 전략패턴 등을 사용해 효과적으로 의존성을 주입해 왔다. 그렇다면 Spring의 DI 프레임워크를 사용하는 것이 순수 자바 코드의 의존성 주입과 비교해서 더 좋은 이유는 무엇일까? 객체에 대해서 존재하는 모든 책임을 분리해서 생각하자면, 객체의 생성에 대한 책임과 객체의 사용에 대한 책임이 있다. 우리가 기존에 순수 자바 코드에서 의존성을 주입하는 방식을 사용한다고 했을 경우를 예를 들어 생각해 보자. publi..
· Spring
*공식문서를 바탕으로 공부하고 작성한 글입니다! 💋 스프링의 예외 처리 Spring에서 에외를 처리하는 방법은 많다. (출처: 지피티쌤) 이번 포스팅에서는 @ExceptionHandler 어노테이션을 사용하는 방법에 대해서 공부해보자! 💋 @ExceptionHandler 컨트롤러에서 예외가 발생했을 때, 예외를 처리하는 메서드를 지정하는 어노테이션이다. 일반적으로 예외 처리는 try-catch 블록 안에서 하게 되지만, 컨트롤러에서 예외가 발생한 경우에 별도로 @ExceptionHandler를 사용해 예외 처리 메서드를 정의해야 한다. 예를 들어서, 사용자가 로그인을 시도할 때 인증 오류가 발생했다고 생각해보자. 서버는 인증 오류에 대한 예외를 반환할 거고, @ExceptionHandler를 사용해서 예..
· Spring
지난 포스팅에서는 클라이언트의 요청을 메서드에 매핑하는 방법에 대해 학습했다. @RequestMapping 어노테이션을 통해서 메서드에 요청을 매핑할 것이라고 표현했고, 속성으로 URL, HTTP Method(GET, POST 등등), Request 파라미터, Header, Media Type과 같이 다양한 정보를 담아서 요청을 특정할 수 있었다. (지난 포스팅 참고!) 이번 포스팅에는 각 메서드에 매핑된 요청을 처리하는 방법에 대해서 공부할 것이다! 스프링 프레임워크에서는 @RequestMapping 어노테이션을 사용하여 작성된 핸들러 메서드가 파라미터와 반환값을 구성하는 방법을 다양하게 제공한다. 크게 두 가지에 처리를 할 수 있다. 메서드로 들어오는 파라미터 메서드로부터 나가는 반환값 이 두 가지에..
깃짱
'Spring' 카테고리의 글 목록 (3 Page)