Sprnig : 스프링은 자바 기반의 웹 어플리케이션을 만들 수 있는 프레임워크이다.Spring Boot : 스프링(Spring)을 더 쉽게 이용하기 위한 도구스프링 부트 스타터 사이트에서 스프링 프로젝트 생성https://start.spring.io정상적으로
출처 : 점프 투 스프링부트 : 자바 파일을 작성하는 디렉토리 : 애플리케이션의 시작을 담당하는 파일 : @SpringBootApplication : 스프링 부트 애플리케이션을 시작할 때 사용되는 메타 어노테이션 : 자바 파일을 제외한 HTML, CSS, Javas
출처 : 점프 투 스프링부트@GetMapping(url) : 요청된 url과의 매핑을 담당한다.이 어노테이션이 붙은 메서드가url로 들어온 HTTP GET 요청을 처리하는 메서드임을 나타낸다.@Controller : 스프링부트 컨트롤러임을 나타내는 어노테이션스프링이 컴
출처 : 점프 투 스프링부트(https://wikidocs.net/161164우선 데이터베이스를 설치해야한다.소규모 프로젝트의 경우 H2 데이터베이스를 사용한다.build.gradle 파일에 아래의 코드를 추가한다.application.properties에 아
출처 : 점프 투 스프링데이터베이스 테이블과 매핑되는 자바 클래스질문과 답변을 할 수 있는 게시판을 만들기 위해 질문 엔티티와 답변 엔티티가 필요하다.질문 엔티티답변 엔티티@Entity : JPA가 엔티티로 인식한다.@Id : 기본 키(primary key)로 지정하여
출처: 점프 투 스프링부트데이터 처리를 위해서는 실제 데이터베이스와 연동하는 JPA 리포지토리가 필요하다.Entity에 의해 생성된 데이터베이스 테이블에 접근하는 메서드들 (예 : findById, save 등)을 사용하기 위한 인터페이스이다.Spring Data JP
데이터가 많아지면 모든 데이터가 한 페이지에 보여지는 문제가 있다. 이러한 이유로 페이징은 반드시 필요하다. 대량의 테스트 데이터 만들기 테스트를 위해 대량의 테스트 데이터를 만든다. SbbApplicationTest.java 페이징 구현 Jpa 관련 라이브러리
출처 : 점프 투 스프링부트현재 게시판을 0페이지를 들어가도 게시물이 1번부터 시작하고 1번페이지를 들어가도 1번부터 시작한다. 어떤 페이지로 이동해도 게시물 번호가 1번부터 시작하는 문제를 해결해야한다.총 15개의 게시물이 있다고 가정하면 마지막 페이지의 마지막 게시
출처 : 점프 투 스프링부트질문 리스트를 표시할 때 제목 옆에 답변의 개수를 표시해보자.제목 옆에 나란히 출력되도록 하기 위해 <span> 태그를 사용했다.\`답변을 1개 등록하니까 답변의 개수가 표시됐다.
출처 : 점프 투 스프링부트스프링 시큐리티는 스프링 기반 애플리케이션의 인증과 권한을 담당하는 스프링의 하위 프레임워크이다.build.gradle 파일 수정이제 서버를 재시작 하고 list 화면에 접속하면 로그인 화면이 나타난다.업로드중..스프링 시큐리티는 기본적으로
출처 : 점프 투 스프링부트 회원 정보 엔티티 |속성|설명| |--|--| |username|사용자 이름| |password|비밀번호| |email|이메일| User 도메인 >스프링 시큐리티에 이미 User 클래스가 있기 때문에 SiteUser 엔티티를 만든다.
출처 : 점프 투 스프링부트스프링 시큐리티를 사용하여 로그인 기능을 구현한다.스프링 시큐리티 설정 클래스인 SecurityConfig에 다음의 코드를 추가한다. .formLogin() : 사용자가 웹페이지에서 로그인할 때 사용되는 폼 로그인을 활성화한다.loginPag
스프링 시큐리티에서 현재 인증된 사용자를 나타내는 객체이다.💡 principal.getName()을 호출하면 현재 로그인한 사용자의 사용자명(ID)를 알 수 있다.하지만 Principle 객체는 로그인을 해야만 생성되는 객체이기 때문에 로그인하지 않은 상태에서 사용하
보통의 게시판은 게시글을 등록하고 수정할 때 작성 폼이 동일하다.이를 가능하게 하기 위해 기존 등록 템플릿에서 th:action 속성을 삭제해야한다.이 속성을 삭제하면 CSRF 값이 자동으로 생성되지 않기 때문에 CSRF 값을 설정하기 위한 hidden 형태의 inpu
프로그램의 흐름을 개발자가 아닌 프레임워크가 주도한다.객체의 생성부터 생명주기 관리를 컨테이너가 도맡아서 한다.즉, 제어권이 컨테이너에게 넘어간다고 해서 제어의 역전이라고 한다.객체를 직접 생성하는 것이 아니라 외부에서 생성한 후 주입(의존성 주입) 시키는 방식이다.이
스프링 빈 컨테이너에서 생성되는 객체빈 컨테이너가 의존성 주입을 통해 Bean 객체를 사용할 수 있도록 해준다.컴포넌트 스캔(Component Scan) : Spring 프레임워크에서 컴포넌트를 자동으로 찾아서 빈으로 등록하는 기능. @Component 어노테이션으로
Spring MVC에서 컨트롤러로 요청이 들어가기 전에 해당 요청을 가로채고 처리할 수 있는 기능을 제공하는 클래스admin권한이 필요한 모든 컨트롤러에서 다음과 같은 코드를 반복해야한다.NeedToAdminInterceptor.javaNeedToAdminInterce
MemberController.javaRq.java
스프링에서는 환경별로 설정 파일을 따로 사용할 수 있다.일반적으로 application.yml 파일이 기본 설정 파일이다.여기에는 모든 환경에서 공통적으로 사용되는 설정이 들어간다.{profile}.yml 형식이어야 한다.@Profile 어노테이션을 사용하여 특정 프로
SecurityFilterChain : Spring Security 필터 체인을 정의한다.authorizeHttpRequests : 요청에 대항 인가 규칙을 정의한다.PathRequest.toStaticResources().atCommonLocations().permi
엔티티의 생성 날짜인 createDate와 수정 날짜인 modifyDate를 매번 LocalDateTime.now()로 set 해주는 대신 자동으로 설정해주는 방법이 있다.엔티티가 처음으로 생성될 때 자동으로 생성일을 설정한다.데이터베이스에 새로운 레코드가 삽입될 때
JPA에서 관계 매핑에서 사용되는 속성 중 하나로, 이 속성을 사용하면 부모 엔티티에서 자식 엔티티를 제거할 때 해당 자식 엔티티를 데이터베이스에서도 자동으로 제거할 수 있다.orphanRemoval = true로 설정하면, 부모 엔티티의 컬렉션에서 제거된 자식 엔티티
JPA에서 사용되는 개념으로, 엔티티 객체의 상태를 관리하는 환경을 말한다.엔티티 매니저를 통해 제공되며, 트랜잭션 당 하나의 영속성 컨텍스트가 관리된다.애플리케이션과 데이터베이스 사이에 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다.영속성 컨텍스트는 엔티티의
먼저, 아래와 같이 application.yml 파일을 설정한다.배치 작업을 위한 <span style="background-color:이 때, 'spring.jpa.hibernate.ddl-auto'를 'create'로 설정해도 <span style="ba
스프링 배치는 대규모 데이터 처리를 위한 오픈 소스 프레임워크이다.반복적이고 일관된 작업과 대용량의 데이터를 효율적으로 처리하고 관리할 수 있는 기능을 제공한다.예를 들어, 대용량 엑셀 파일을 읽어와서 데이터를 가공하는 작업 등을 손쉽게 처리할 수 있다.배치 처리의 기
Spring Batch는 대용량 데이터를 효율적으로 처리하기 위한 프레임워크이다.Chunk란 여러 개의 아이템을 묶은 하나의 덩어리, 블록을 의미한다.한 번에 모든 행을 읽고 처리하고 쓰는 것이 아니라, 한 번에 고정 된 양의 레코드를 읽고 처리하는 방식이다.청크 방식
출처 : https://substantial-park-a17.notion.site/JWT-7a5cd1cf278a407fae9f35166da5ab03 1. JWT 인증 방식 시큐리티 동작 원리 회원가입 회원가입 정보를 DTO에 담아서 컨트롤러로 보낸다. 컨트롤러에서