문제점 Junit5를 사용하여 테스트 코드를 작성하던 도중 assertThat과 equalTo를 사용하기 위해 선언을 했으나 아래와 같이 선언할 수 없다는 에러가 발생했다. 이는 적절한 import 문을 선언하지 않았기에 발생하는 에러이다. 그렇다면 어떻게 해야 이러한 에러를 해결할 수 있을까? 해결방안 아래와 같이 해당 import 문을 직접 작성해 주면 쉽게 해결이 된다. import static org.hamcrest.CoreMatchers.equalTo import static org.hamcrest.MatcherAssert.assertThat;
문제점 IntelliJ 내에서 프로젝트를 실행하려는 데 갑자기 아래와 같은 에러가 떴다. 심지어 MySQLWorkbench를 실행하니 아래와 같은 에러창이 떴다. 해당 에러 때문에 프로젝트가 실행조차 되지 않아서 매우 곤란한 상황에 처했다. 그래서 오랜 시간 동안 구글링을 해본 결과, 현재 나의 MySQL 버전과 맥 최신 OS와의 충돌로 인해 발생하는 문제인 것 같았다. 생각해 보니 최근에 맥 OS를 최신 버전으로 업그레이드를 했던 기억이 났다. 해결방안 해결 방법은 MySQL 버전을 다운그레이드를 하는 것이라고 한다. 하지만, 다운그레이드를 해도 같은 에러는 계속해서 반복되었다. 결국 IntelliJ 내에서 build.gradle에 아래와 같이 현재 나의 MySQL 버전에 맞는 의존성을 주입시켜 주었더..
문제의 시작 이번에 진행하게 된 프로젝트 내에서도 회원가입 및 로그인 기능 구현이 있어, 저번에 진행했던 방식대로 Spring Security와 JWT를 사용하여 구현을 시작하려는데 위와 같이 WebSecurityConfigurerAdapter가 적용이 안 되는 현상이 발생했다. 제대로 된 코드를 작성하려면 이러한 상황이 발생하면 안 되기에 열심히 알아본 결과! 공식 문서로 이동하기 Spring | Home Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform. spring.io 공식 문서에 따른 결과로는, Spring Security 5.7.0-M2부터는 내가 사용했던..
문제점 Spring을 실행하던 도중 [JPA] No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer와 같은 에러문이 발생했다. 이러한 에러문이 발생하는 이유는 @ManyToOne의 Fetch 타입을 Lazy로 사용했을 때 나타나는 문제점이라고 한다. 여기서 비어있는 객체를 Serialize 하려다 에러가 발생하는 것이다. 해결방안 위와 같은 에러를 해결하는 방법 중 하나가 바로 @JsonIgnore 어노테이션이다. 직렬화 시 해당 필드를 포함시키고 싶지 않을 때 선언하는 어노테이션이다. 해당 어노테이션을 사용하..
문제점 H2에서 table을 생성하기 위해 create 문을 작성하고 실행을 했더니 Sorry, remote connections ('webAllowOthers') are disabled on this server. 와 같은 에러가 발생했다. 해결방안 terminal에서 H2를 실행할 때, h2 -webAllowOthers을 입력하고 실행해 줘야 위와 같은 에러가 뜨지 않는다. 또한, 내 mac은 가끔 brew 명령어가 먹지 않는데 이 때는, eval $(/opt/homebrew/bin/brew shellenv)를 입력해주면 된다. 이렇게 하면 H2가 문제없이 작동할 것이다.
문제점 JSP 파일을 작성하는 도중 Cannot resolve taglib with uri http://java.sun.com/jsp/jstl/core라는 에러가 발생했다. 구글링을 통해 무엇이 문제인지 검색해 본 결과, 앞서 작성한 문제와 같이 build.gradle에 dependency를 추가하지 않은 탓이었다. 해결방안 build.grade의 dependencies에 아래 속성을 추가해 준다. compile 'javax.servlet:jstl:1.2' 추가를 해주고 나면 에러 구문이 사라질 것이다.
문제점 Spring boot에서 Spring Security를 통해 로그인을 구현하려고 하는 도중 Cannot resolve symbol 'EnableWebSecurity라는 에러가 발생하였다. 구글링을 통해 무엇이 문제인지 검색해 본 결과, build.gradle 에 dependency를 추가하지 않은 탓이었다. 해결방안 build.grade의 dependencies에 아래 속성을 추가해 준다. implementation 'org.springframework.boot:spring-boot-starter-security 추가를 해주고 나면 @EnableWebSequrity 가 문제없이 작동할 것이다.
🔎 영속성 컨텍스트란? 엔티티를 영구 저장하는 환경을 뜻한다. 엔티티 매니저(Entity Manager)를 통해서 접근 가능하다. 🔹 활용 예시 em.persist(member); -> persist() 메소드를 통해 em(Entity Manager)을 사용해서 회원 엔티티를 영속성 컨텍스트에 저장함. 엔티티의 생명주기 엔티티의 생명주기에는 총 4가지 상태가 있다. 1. 비영속(new/transient) 영속성 컨텍스트와 전혀 관련이 없는 상태, 순수한 객체 상태 🔹 예시 Member meber = new Member(); member.setId("member1"); member.setUsername("회원1"); 2. 영속(managed) 영속성 컨텍스트에 저장된 상태 영속성 컨텍스트에 의해 관리되는..
🔎 H2 Database란? 자바로 작성된 관계형 데이터베이스 관리 시스템이다. 자바 애플리케이션에 임베드하거나 클라이언트-서버 모드에서 구동할 수 있다. H2 실행 및 연결 방법 (Windows 기준) 이전까지는 학교에서 배운 강의 토대로 MySQL을 통해 DB 연동을 하다가 본격적으로 개인 공부를 하게 되면서 H2 Database라는 것을 알게 됐습니다. 처음에 H2 Database를 시작하는 분들은 조금 헷갈리실 수 있기 때문에 도움이 되길 바라며 :) 먼저 내 PC에 설치된 프로그램 중에서 아래 보이는 사진과 똑같이 생긴 h2 console 프로그램을 찾아서 실행합니다. 보통 제가 듣는 강의 혹은 구글링을 해보면 명령 프롬프트로 H2를 실행하시던데, 저는 이 방법이 훨씬 편하더라고요! 그러면 웹 ..