본문 바로가기

개발 일지

[TIL]이노베이션 캠프 23일차

 

Spring 입문 주차 8.19(금) ~ 8.25(목)

1. 개인 과제: 회원가입, 로그인, 댓글 작성/수정/삭제 기능이 추가된 백엔드 서버 만들기 - 로그인 JWT 활용
2. 팀 과제: Spring 핵심 키워드 정리

 

진행 계획

- 19일(금) Spring 핵심 키워드 정리

- 20일(토) Spring 핵심 키워드 정리

- 21일(일) 개인과제에 필요한 강의 수강 및 공부

- 22일(월) API 명세서 작성, ERD 만들기

- 23일(화) 회원가입 기능 코드 작성

- 24일(수) 로그인 기능 코드 작성

- 25일(목) 댓글 작성/수정/삭제 기능 코드 작성 및 AWS 배포

 

 

1. 개발 진행 상황

 

 

 

2. 개발 중 발생한 이슈와 해결

1) h2 예약어 사용 에러

WARN 1946 --- [           main] o.h.t.s.i.ExceptionHandlerLoggedImpl     : GenerationTarget encountered exception accepting command : Error executing DDL "drop table if exists user CASCADE " via JDBC Statement

 

원인: H2 데이터베이스 2.1.214 버전을 사용하는데, user 키워드가 예약어라서 발생한 에러

해결방법은 아래 3가지 중 하나를 선택하면 된다.

 

방법 1. h2 데이터베이스 버전 1.4.200으로 변경, 하이버네이트 5.4.13.Final 버전 이상하기

 

방법 2. application.properties 설정 추가

spring.datasource.url=jdbc:h2:mem:testdb;NON_KEYWORDS=USER

 

방법 3. 테이블명 user를 다른 이름으로 변경하기(테이블 명을 users로 변경)

@Getter // get 함수를 일괄적으로 만들어줍니다.
@NoArgsConstructor // 기본 생성자를 만들어줍니다.
@Entity // DB 테이블 역할을 합니다.
@Table(name = "users")
public class User {
...
}

 

 

2) spring security 적용 후 h2-콘솔 에러

"localhost에서 연결을 거부했습니다."

해결방법: WebSecurityConfig 수정

스프링 시큐리티 적용 후 각 페이지에 권한 설정이 필요하다. 설정은 SecurityConfig파일

@Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/h2-console/**"); // h2-console 사용을 위해 추가
    }
        
@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        	.antMatchers("/", "/h2-console/**", "/events", "/events/*").permitAll(); // h2-console 사용을 위해 추가
    }

 

해결 후 보이는 h2 콘솔

 

3. TO-DO LIST

- 로그인 기능 구현