문제점 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 어노테이션이다. 직렬화 시 해당 필드를 포함시키고 싶지 않을 때 선언하는 어노테이션이다. 해당 어노테이션을 사용하..
Spring Security + JWT를 이용해서 로그인 구현을 하고 기능이 잘 동작되는지 테스트하기 위해 Postman을 켰으나, 한 가지 불편한 점이 있었다. 내가 만든 API들은 토큰이 없으면 접근을 못하도록 만들어 놓았는데, 위와 같이 발급된 Bearer 긴 토큰값을 일일이 Request를 만들 때마다 넣어주어야 했기 때문이다. 이러한 불편점을 해소할 방법이 없을까 하고 구글링을 한 결과, 해결책을 발견했다. 해결방안 Postman 내에 Tests라는 란에 위와 같은 코드를 입력한 후 Authorization에서 Token의 Type과 변수명을 입력해 주고, Send를 할 경우 Token을 발급하는 동시에 자동으로 Authorization의 token 값을 변경해 준다. 위와 같이 세팅을 해놓으면..
코드 Merge를 한 후 내 저장소로 Pull을 하려는데 갑자기 there is no matching branch 라는 경고문이 떴다. 검색해 본 결과, 원격 저장소 upstream을 설정하지 않았던 것이다. 1. 원격 저장소 확인 우선 아래 명령어를 통해서 나의 원격 저장소를 확인한다. git remote -v 해당 명령어를 실행 후 upstream이라는 내용이 없으면 2-1, 있으면 2-2를 실행한다. 2-1. upstream이 존재하지 않는 경우 git remote add upstream [URL] 2-2. upstream이 존재하는 경우 git remote set-url upstream [URL]
문제점 AWS에서 새로운 인스턴스를 생성하고 부여받은 SSH로 Terminal에 접속한 후 jar 파일을 실행했는데 아래와 같이 -bash: java: command not found라는 문구가 떴다. 검색해 본 결과, EC2 내에서도 별도로 java를 설치해 줘야 된다는 것을 알게 되었다. 해결방안 1. 먼저 AWS Coreetto를 다운로드한다. (저는 jdk 11 버전을 다운로드하였습니다.) sudo curl -L https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm -o jdk11.rpm 2. 그다음, 다운로드한 jdk를 설치한다. sudo yum localinstall jdk11.rpm 3. jdk 버전을 선택한다...
문제점 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가 문제없이 작동할 것이다.
MySQL을 사용하다가 기본 문법에 대한 지식이 스스로 부족하다고 생각해서 정리하게 된 글 1. CREATE DATABASE 새로운 데이터베이스 생성 CREATE DATABASE "DB name"; Ex) CREATE DATABASE User; 2. USE DATABASE 사용하고자 하는 데이터베이스 선택 USE "DB name"; Ex) Use User; 3. CREATE TABLE 새로운 테이블 생성 CREATE TABLE "table name"; Ex) CREATE TABLE Department; 4. DROP TABLE 테이블 삭제 DROP TABLE "table name"; Ex) DROP TABLE Department; 5. INSERT INTO 테이블에 데이터 삽입 삽입 시, Column명 ..
문제점 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)란? JPA를 사용해서 테이블과 매핑할 클래스는 @Entity를 꼭 붙여야 한다. 이는 JPA가 관리하는 클래스이고, 데이터의 집합을 의미한다. @Entity 사용 시 주의사항 기본 생성자는 필수(파라미터가 없는 public or protected 생성자) public Member() final, enum, interface, inner 클래스는 사용 불가 저장할 필드에 final 사용 불가 @Entity 속성 name JPA에서 사용할 엔티티 이름을 지정해준다. 기본값 : 클래스 이름을 그대로 사용(ex) Member) @Table 엔티티와 매핑할 테이블을 지정해주는 어노테이션 생략 시, 매핑한 엔티티 이름을 테이블 이름으로 사용한다. @Table 속성 name 매핑할 테이블 이..