@Transactional 어노테이션을 추가해서 save 메서드를 직접 호출하지 않고 변경감지로 update해주는 api를 만들었는데 update쿼리가 날아가지 않는 이슈가 발생했다.문제 코드 )문제의 원인은 service클래스의 어노테이션에 있었다. DB에 직접 접근
생각 없이 기존의 구조를 따라서 코딩을 하다보니 각 어노테이션이 어떤 의미를 가지고 있고 어떤 차이점이 있는지 전혀 모르고 사용하고 있었다. 단순하게 api를 하나 더 추가했는데 아예 해당 api의 컨트롤러로 요청이 들어오지 않는 상황이 발생했다.문제 코드 )문제의 원
엔티티에서 @NoArgsConstructor 어노테이션을 사용해서 생성자를 만들었는데 코드를 실행해보니 mapper 인터페이스에서 기본 생성자에 접근을 못해서 에러가 나는 이슈가 있었다.문제 코드 )생성자에 접근할 때 주로 사용되는 패턴 중 하나는 생성자 주입. 이는
스프링의 의존성 주입은 말로만 들어봤지 정확히 어떤 의미인지 아직도 헷갈리는 개념이라 오늘 한번 정리해보기로 했다.스프링(Spring)에서 의존성 주입(Dependency Injection, DI)은 객체 지향 프로그래밍에서 중요한 원칙 중 하나인 "의존성 역전 원칙(
프론트에서 next.js를 활용해서 example.com/object/{objectType}/{objectId} 구조로 url을 만들었는데 objectType과 objectId가 일치하지 않아도 접근이 가능하다는 이슈가 생겼다. 따라서 objectType에 아무 글자나
컨트롤러에서 api 요청 및 응답 형태에 따른 어노테이션을 혼동하여 사용하고 있었다. 특히 이미지나 영상을 전달하기 위한 경우 정상적으로 api는 작동을 했지만 권장되지 않는 방법을 사용하고 있었다.문제 코드 )@RequestParam은 주로 HTTP GET 요청에 사
컨트롤러에서 post api 요청시 request body에 파라미터를 담아서 보냈는데 null값이 db에 저장되는 이슈가 발생했다.문제 코드 )post 요청의 경우 request body에 주로 데이터를 담아서 보내므로 @RequestBody를 사용했다. 그런데 @M
@Transactional 어노테이션을 추가해서 save 메서드를 직접 호출하지 않고 변경감지로 update해주는 api를 만들었는데 update쿼리가 날아가지 않는 이슈가 발생했다.문제 코드 )문제의 원인은 service클래스의 어노테이션에 있었다. DB에 직접 접근
Spring과 Spring Boot는 무엇이고 어떤 차이점이 있는가? Spring과 Spring Boot은 Java 기반의 웹 애플리케이션 개발을 위한 프레임워크로 널리 사용되고 있다. 두 프레임워크는 공통적으로 Java 기반으로 개발되었지만 몇 가지 중요한 차이점이
A. Inversion of Control(IoC)이란 제어의 역전으로 프로그램의 제어 흐름을 프레임워크나 컨테이너에게 위임하는 개념. 일반적으로 객체의 생성과 생명주기를 개발자가 관리하는 것이 아니라 프레임워크가 관리하며, 프레임워크가 애플리케이션의 흐름을 제어.A.
A. 스프링에서의 데이터 액세스는 주로 JDBC, JPA, 그리고 MyBatis를 사용하여 이루어진다.A. JDBC는 자바에서 데이터베이스와의 연결과 쿼리 실행을 위한 API이다. 이를 사용하면 데이터베이스와 직접적인 연결을 설정하고 SQL 쿼리를 실행할 수 있다. J