목록Spring DB (9)
solyrion
프로젝트를 진행하는 도중에 로그인 부분에서 문제가 발생했습니다.현재 스프링 시큐리티를 통해 Jwt 방식으로 구현되어 있습니다.로그인 요청 경로인 /user/login를 시큐리티 config에서 .permitAll()로 설정하여 인증/인가를 생략할 수 있도록 설정했습니다. .authorizeHttpRequests(auth -> auth .requestMatchers("/user/login", "/user/register").permitAll() // 인증 로직이 필요 없는 url 설정login을 시도해보니 다음과 같은 오류가 발생했습니다.{ "status": 500, "message": "Index 0 out of bounds for length 0", "ti..
스프링으로 서비스 클래스를 구현하다보면 트랜잭션을 적용하기 위해서 @Transactional을 클래스 단위로 선언하는 경우가 있습니다.클래스 단위로 선언을 하게 되면 클래스 내부에 존재하는 모든 메서드에 대해 @Transactional이 적용됩니다.@Service@Transactionalpublic class MyService { public void performAllActions() { stepOne(); stepTwo(); } private void stepOne() { } private void stepTwo() { }}@Service@Transactional@RequiredArgsConstructorpublic class MySer..
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/dashboard 스프링 DB 1편 - 데이터 접근 핵심 원리 강의 - 인프런 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 백엔 www.inflearn.com 해당 강의를 듣고 작성한 내용입니다. 체크 예외와 인터페이스 서비스계층은 최대한 비즈니스 로직만 있는게 좋습니다. 그러기 위해서는 마지막으로 예외에 의존하는 문제를 해결해야 합니다. 예를 들면 이전 서비스 코드들은 SQLException에 계속 의존하고 있습니다. 이전에 배운 예외를 생각해보..
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/dashboard 스프링 DB 1편 - 데이터 접근 핵심 원리 강의 - 인프런 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 백엔 www.inflearn.com 해당 강의를 듣고 작성한 내용입니다. 서비스 계층에서 예외처리 부분은 (throws SQLException) 아직 그대로 남아있습니다. 스프링이 제공하는 예외 추상화를 사용하기 전에 자바의 기본 예외에 대해 알아보겠습니다. 예외 계층 자바의 예외계층 그림입니다. Object : 예외도 객채이..
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/dashboard 스프링 DB 1편 - 데이터 접근 핵심 원리 강의 - 인프런 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 백엔 www.inflearn.com 해당 강의를 듣고 작성한 내용입니다. 이제 서비스 코드는 JDBC 기술에 의존하지 않습니다. 그러나 트랜잭션을 사용하는 로직을 살펴보면 다음과 같은 패턴이 반복됩니다. //트랜잭션 시작 TransactionStatus status = transactionManager.getTransactio..
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/dashboard 스프링 DB 1편 - 데이터 접근 핵심 원리 강의 - 인프런 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 백엔 www.inflearn.com 해당 강의를 듣고 작성한 내용입니다. 이전 강의에서 언급한 문제점으로 트랜잭션을 적용하기 위해서는 서비스 계층에 복잡한 코드가 많아 지저분해지고 유지보수에 어려움이 있습니다. 이번 강의에서는 스프링을 활용해서 이런 불편한 점을 해소하는 방법을 알아보겠습니다. 문제점들 애플리케이션 구조를 단순..
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/dashboard 스프링 DB 1편 - 데이터 접근 핵심 원리 강의 - 인프런 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 백엔 www.inflearn.com 해당 강의를 듣고 작성한 내용입니다. 이전 JDBC의 이해 마지막 부분에서 얘기한 트랜잭션에 대해 알아보겠습니다. 예를 들어 A -> B의 계좌이체가 발생한다고 가정해보겠습니다. 그러면 1. A -5000, 2. B +5000이 발생해야 합니다. 그런데 과정 1은 정상수행이 되고 과정 2가 ..
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/dashboard 스프링 DB 1편 - 데이터 접근 핵심 원리 강의 - 인프런 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 백엔 www.inflearn.com 해당 강의를 듣고 작성한 내용입니다. 커넥션 풀 이해 데이터베이스 커넥션을 얻기 위해서는 다음과 같은 복잡한 과정이 필요합니다. 이러한 과정을 커넥션을 얻을 때마다 매번 실행한다면, 애플리케이션 서버 입장에서도 TCP/IP 커넥션을 새로 생성하기 위한 리소스를 사용해야 하고 DB도 마찬가지입..