본문 바로가기

스프링6

[Spring] 테스트 클래스는 빈으로 등록이 될까? [ 그러면 nested-class 들은?] 스프링은 테스트 클래스를 빈으로 등록을 할까..? 스프링에서 unit test, integration test를 진행하고자 할 때, test 폴더 계층에서 테스트를 보통 진행한다. 그러다 보면 자연스럽게 application context 등록 과정에 대해서 고찰을 하게 되고, component scan, 공식문서등 여러 정보와 설명들을 찾아보게 된다. 그러나 항상 보는 글 그리고 공식문서 까지도, 스프링에 비교적 익숙하지 않은 사용자들은 이해하기 어려운 부분이 다소 포함이 되어 있고, 이 빈 등록 과정에 대해서 추상적으로 설명되어 있는 글들을 마주하곤 해서, 이번 주제는 스프링에서 테스트할 때 '테스트 클래스'를 빈으로 등록할까를 시작으로 끝에는 중첩클래스(inner class, static class.. 2024. 5. 2.
[Spring] ResultSet next()를 왜 사용할까? ResultSet 순수 JDBC를 활용하여 쿼리문을 정의한 다음, 지정된 쿼리문을 실행하게 된다면 자연스럽게 쿼리문 조건에 맞는 값이 반환될 것이라는 것은 코드를 짜보지 않아도 대략적인 그림은 머릿속에서 그려질 수 있다. 하지만 어떻게 데이터를 받는지에 대해서 명확하게 알지 못한다면, 데이터를 어떤 방식으로 처리해야 하는지에 대한 문제도 해결하기 어려울 수 있다. 그래서 순수 JDBC를 사용할 때 ResultSet을 어떻게 활용하길래 데이터를 받아올 수 있는지 그리고 next()를 사용해서 데이터 체크를 왜 하는지, 어떻게 동작하는지에 대해서 알아보려고 한다. ResultSet이란? public interface ResultSet extends Wrapper, AutoCloseable ResultSet은.. 2023. 9. 7.
[Spring] Hikari pool - 1 [오류에 대해서 어떤 생각을 가지고 해결을 해볼 수 있었을까?] Hikari pool - 1 time out 게시판 프로젝트를 진행하면서 발생된 문제점이다. 해당 문제점에 대해서 깊게 고민을 하지 않고 단순 개발에 우선순위를 두다 보니 거슬리는 데도 잠깐 동안은 무시했었다. 하지만 코드를 정상적으로 작성했음에도 불구하고 이 에러는 사라지지 않았다. 따라서 나는 앞서 가정을 했었다. 1. 코드가 비정상적으로 동작하기 때문에 해당 오류가 뜰 수 있을 것 같다. 2. 타임 아웃이 발생되니 SQL 쿼리문에서 문제가 발생할 수 있을 것 같다. 하지만 1번을 해결하고 난 뒤에도 여전히 오류는 지속적으로 찍히고 있었으며, 2번을 면밀히 바라보려고 노력했다. 2번을 해결하기 위해서 비즈니스 로직을 두 번 실행하게 되는 것을 redirect로 변경하여 해당 포스트를 다시 가지고 오지.. 2023. 9. 2.
[Spring] JDBC가 무엇이고, 어떻게 활용될까? 장점과 단점은? JDBC JDBC는 Java DataBase Connectivity의 약자다. JDBC는 자바에서 데이터베이스와의 연결을 도와주는 브릿지 역할을 하게 되는데 JDBC Driver를 통해서 구현되어 JDBC API를 개발자에게 제공해 주는 형태라고 할 수 있다. JDBC Driver라 함은 JDBC API를 구현하기 위해 여러 메서드들과 정보들을 담고 있는데 각각의 DB회사에서 제공해 주는 DB들과 연동하기 위해 그에 맞는 Driver를 가지고 있어 이러한 드라이버를 통해서 DB와 연결하고 SQL쿼리문을 보낼 수 있게 되는 것이다. 따라서 자바와 DB와의 연결을 가운데에서 Controller처럼 도와주는 역할을 하게 되는 것이다. DataSource 이렇게 DB와 연결을 하기 위해서는 어떻게 해볼 수 있을.. 2023. 8. 24.