[Spring] Spring Security 개념 및 동작 흐름
·
🔻Back-End/Spring
❗Spring Security란?스프링 시큐리티란 스프링 애플리케이션에서 보안을 관리하는 프레임워크로 사용자 인증, 접근 제어를 통해 보안을 강화할 수 있다. 다양한 인증 및 권한 부여 방법을 제공해서 커스텀이 용이하게 하고, 개발자의 편의성을 확대시킨다. ❗Spring Security 구성 요소Authentication(인증)사용자가 본인이 맞는지 확인주로 아이디, 비밀번호 방식을 사용Principal: 접근 주체(아이디) / Credential: 비밀번호Authorization(권한 부여)인증된 사용자가 어떤 자원에 접근할 수 있는지 결정스프링 시큐리티는 선언적 방식을 통해 URL 접근 제어, 메소드 접근 제어 등을 제공Security Filter Chainhttp 요청을 처리하기 전 거쳐가는 필터의..
[Spring] JPA Native Query + Projection
·
🔻Back-End/Spring
❗Native Query + ProjectionJPA를 통해 Repository를 만들 땐 한 엔티티 당 하나의 리포지토리를 만들었어야 한다.하지만 이 방법은 여러 테이블을 조인하여 결과를 가질 때 불편하기 때문에 native query와 projection을 사용하여 이 문제를 해결할 수 있다.Native Query는 실제 사용할 쿼리를 @Query를 통해 명시해 줄 수 있고, 파라미터를 주입 받아서 동적으로 쿼리를 실행할 수 있다.projection은 인터페이스 기반으로 쿼리 실행 시 반환되는 객체의 형태를 인터페이스로 선언하여 이와 매핑시켜 서비스단에서 사용할 수 있게 해 준다.  ❗구현유저가 좋아요를 누른 책의 정보를 담아둔 liked_book 테이블엔 user_idx와 book_idx가 있고,해..
[Spring error] Error running . Command line is too long
·
🔻Back-End/Spring
❗해결 과정 왼쪽 하단에 오류 메시지가 떴었다  Run > Edit Configurations 클릭  Shorten commend line에서 JAR manifest 클릭  설정을 바꾼 후 다시 서버를 실행하면 잘 실행되는 것을 볼 수 있다
[Spring error] Cannot call sendError() after the response has been committed
·
🔻Back-End/Spring
JPA의 일대다, 다대일 양방향 관계를 사용하던 중에 요류가 발생했다 ❗초기 상태public class Team implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "team", fetch = FetchType.EAGER) private List members = new ArrayList();}public class Member implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDEN..
[Spring] MySQL, MariaDB, H2 DB 연결하는 application.yml 설정
·
🔻Back-End/Spring
프로젝트와 DB를 연결할 때 yml에서 어떤 DB를 쓸 것인지 명시해주어야 한다각 DB에 따라서 드라이버 이름과 url이 다르기 때문에 나누어 작성해두었다! ❗MySQLspring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/[스키마이름] username: root password: 12341234 ❗MariaDBspring: datasource: driver-class-name: org.mariadb.jdbc.Driver url: jdbc:mariadb://localhost:3307/[스키마이름] username: root password: ..
[Spring] JPA ddl-auto 옵션 정리
·
🔻Back-End/Spring
프로젝트에서 JPA를 사용할 때 application.yml파일에 이에 대한 설정을 해줄 수 있다 spring: jpa: hibernate: ddl-auto: [옵션] show-sql: true properties: hibernate: format_sql: true ❗ddl-auto create: 서버 시작 후에 기존테이블 삭제하고 다시 생성 create-drop: 서버 시작 후에 테이블을 생성하고 서버 종료 시 테이블 삭제 update: 변경 부분만 추가 validate: 엔티티와 테이블이 정상 매핑되었는지만 확인 none: 사용하지 않음
[Spring] 인텔리제이에서 Spring 프로젝트 빌드하기
·
🔻Back-End/Spring
❗ 프로젝트 빌드 파일 생성빌드하고자 하는 브랜치로 이동한다. 여기선 main(master) 브랜치로 이동했다. build > build 더블 클릭 빌드가 진행 중이다. 빌드 완료 시 SUCCESS 문구가 나온다. 빌드된 파일은 좌측 프로젝트 구조에서 build > libs > ~~.jar 파일이 생성된 것을 확인할 수 있다.
[Spring error] Column '' cannot be null
·
🔻Back-End/Spring
데이터의 상태를 알 수 있는 status 컬럼을 선언하고 not null과 default 값까지 설정을 해주었었다 `status` VARCHAR(1) NOT NULL DEFAULT 'A' COMMENT 'A: Active(활성상태), D: Delete(삭제, 탈퇴한 상태), B: Black(블랙 유저)', 하지만 Column 'status' cannot be null 오류가 간간히 계속 나타났고 이를 해결하는 방법을 적으려 한다! 1. not null, default 이 상태였을 때 오류가 발생했었다 2. null로 변경 not null을 지운 후 다시 테이블을 만든 다음 데이터를 넣으면 default값이 들어갈 것이라고 생각하면서 작업을 했더니 A가 아니라 이라고 표시되었다 3. not null, de..
[Spring error] @Value Cannot find method 'value'
·
🔻Back-End/Spring
❗문제 상황@Value를 통해 yml파일에 있는 값을 불러오려 했는데 Cannot find method 'value'오류가 났다.  ❗문제 해결 롬복의 Value를 import했는데 이것이 잘못된 것이었다..  아래의 것으로 import해주어야 제대로 실행될 수 있다!import org.springframework.beans.factory.annotation.Value;
[Spring error] Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
·
🔻Back-End/Spring
❗문제 상황swagger를 사용하기 위해서 설정을 추가하고 서버를 실행하니 발생한 오류이다!  ❗해결 방법Spring boot 2.6버전 이후에 spring.mvc.pathmatch.matching-strategy 값이 ant_apth_matcher에서 path_pattern_parser로 변경되면서 몇몇 라이브러리에서 오류가 발생한다고 한다.application.yml에 아래의 설정을 추가해주면 해결된다!spring: mvc: pathmatch: matching-strategy: ant_path_matcher
_니지
'🔻Back-End/Spring' 카테고리의 글 목록