스프링 부트를 사용하여 게시판 API 서버를 제작해보려고 합니다. 처음부터 끝까지 모두 혼자 개발하면 좋겠지만, 아직 스프링 프레임워크를 공부중인 상태인지라 인프런 강의와 여러 블로그를 참조하여 제작을 진행할 예정입니다. 스프링 공부 목적이 웹보다는 api 개발에 가깝기 때문에 api개발로 진행하겠습니다. (강의 몇개만 들으면 금방 제작 가능할 줄 알았는데 공부해야 할 양이 생각보다 많습니다.) 구현할 기능은 다음과 같습니다. 로그인 계층형 카테고리 게시판 계층형 대댓글 사용자 간에 쪽지 송수신 페이지 번호를 이용한 페이징 처리 동적 검색 조건 배포 그리고 제가 참고하는 블로그입니다. https://kukekyakya.tistory.com/category/Spring/%EA%B2%8C%EC%8B%9C%E..
Spring Security는 Spring Framework에서 인증과 권한 부여를 수행하는 데 사용되는 강력한 보안 프레임워크입니다. Spring Security는 Spring Framework에서 자체적으로 보안 구성을 제공하며, 다양한 보안 기능을 제공하는 다양한 확장 모듈을 제공합니다. 이번 글에서는 Spring Security를 사용하여 웹 보안을 구성할 때 사용하는 @EnableWebSecurity 어노테이션에 대해 알아보겠습니다. 1. @EnableWebSecurity 어노테이션 @EnableWebSecurity 어노테이션은 Spring Security를 사용하여 웹 보안을 구성할 때 사용하는 어노테이션입니다. 이 어노테이션을 사용하면 Spring Security와 관련된 구성을 할 수 있습..
@OnDelete 어노테이션은 JPA에서 제공하는 어노테이션 중 하나로, 연관된 엔티티를 삭제할 때 어떻게 처리할 것인지를 지정할 때 사용됩니다. 이번 글에서는 @OnDelete 어노테이션에 대해 자세히 알아보겠습니다. @OnDelete 어노테이션 @OnDelete 어노테이션은 연관된 엔티티가 삭제될 때 어떻게 처리할 것인지를 지정할 때 사용됩니다. 이 어노테이션을 사용하면 다른 엔티티와의 관계를 가진 엔티티가 삭제될 때, 그 관계가 끊어진 후 어떤 동작을 수행할지 지정할 수 있습니다. @Entity public class Order { @ManyToOne @OnDelete(action = OnDeleteAction.CASCADE) private Customer customer; // ... } 위의 예..
Spring Framework은 개발자들이 데이터베이스와 상호작용하기 위해 사용되는 다양한 기능을 제공합니다. 그 중에 @Query 어노테이션은 JPA(Java Persistence API)를 사용할 때 유용하게 쓰이며, 데이터베이스 쿼리를 정의하고 실행할 때 사용됩니다. 이번 글에서는 @Query 어노테이션에 대해 자세히 알아보겠습니다. @Query란? @Query 어노테이션은 JPA에서 제공하는 어노테이션 중 하나로, 데이터베이스 쿼리를 직접 작성하고 실행할 때 사용됩니다. 이 어노테이션을 사용하면 Spring Framework에서 제공하는 Repository 인터페이스를 구현할 때 쿼리를 간편하게 작성하고 사용할 수 있습니다. @Query 어노테이션 사용하기 @Query 어노테이션은 다음과 같이 사..
Spring Framework는 자바 기반의 오픈 소스 애플리케이션 프레임워크로, 의존성 주입(Dependency Injection) 기능을 제공하여 객체 간의 결합도를 낮추고, 유연하고 확장 가능한 애플리케이션을 만들 수 있도록 도와줍니다. Spring Framework에서 @Autowired 어노테이션은 이러한 의존성 주입 기능을 간단하게 사용할 수 있도록 지원해줍니다. @Autowired 어노테이션이란? @Autowired 어노테이션은 스프링에서 제공하는 어노테이션 중 하나로, 스프링 컨테이너에 등록된 빈(bean) 중에서 자동으로 의존성을 주입해주는 역할을 합니다. @Autowired 어노테이션을 사용하면, 의존성을 주입하려는 대상이 스프링 컨테이너에서 관리하는 빈이라면, 해당 빈을 자동으로 주입..
Spring Framework의 @Transaction 소개 @Transactional 주석과 응용프로그램에서 트랜잭션을 관리하는 데 도움이 되는 방법에 대해 살펴보자. transation이란? 트랜잭션(transaction)은 컴퓨터 과학에서 하나의 작업 단위로 실행되는 연산의 집합이다. 트랜잭션은 데이터 일관성과 무결성을 보장하기 때문에 일반적으로 데이터베이스 작업 시 사용ㄷ뇌다.. 트랜잭션을 통해 작업 그룹을 단일 엔터티로 성공 또는 실패하도록 만들 수 있다. 트랜잭션은 일반적으로 ACID(원자성, 일관성, 격리 및 내구성)라는 네 가지 속성으로 구성되는데, 이러한 속성은 트랜잭션이 올바르게 완료되고 데이터가 일관되도록 하는 데 사용된다. @Transactional이란? @Transactional ..
문제 처음 JPA 학습을 시작할 때 Entity 작성 -> Repository 작성 -> test 작성 순으로 코드를 작성하다보면 test 작성에서 다음과 같은 에러를 마주칠 때가 있다. org.springframework.dao.InvalidDataAccessApiUsageException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available fo..