목록분류 전체보기 (72)
랄라
전달받은 데이터의 유효성을 검증하는 절차. null 값 여부 확인이나,문자의 길이 측정과 같은 다른 검증 과정도 쉽게 처리할 수 있도록 Bean Validation 기능을 제공하고 있음. Validation 적용프레임워크 추가( build.gradle에 추가)implementation 'org.springframework.boot:spring-boot-starter-validation' Bean ValidationAnnotation 형식 [괄호는 내부에 작성가능한 속성]내용@NotNull(message)해당 필드가 null이 아니어야 한다는 제약@Size(min,max,message)문자열, 배열, 컬렉션 등에 크기 제한을 설정@Min , @Max숫자에 대한 최소값과 최대값을 지정@Email(messag..
Spring Framework에서 제공하는 보안관련 라이브러리인증 및 인가처리, 패스워드 암호화 등의 기능을 제공한다.Spring Security 적용프레임워크 추가(Gradle - Groovy 기준)implementation 'org.springframework.boot:spring-boot-starter-security' Spring Security의 주요기능 인증(Authentication) - 확인사용자가 누구인지 확인하는 과정.ex) 로그인을 진행했을때아이디와비밀번호를 확인하여 맞는경우로그인기능을 수행. 인가(Authorization) - 권한사용자가 무엇을 할수있는지, 즉 어떤 권한을 가지고있는지를 결정하는 과정.ex) 인증된 사용자가관리자일 경우,회원 정보를 조회하거나관리자 기능을 사용할 수..
웹 애플리케이션에서 사용자의 인증 정보를 안전하게 저장하고 전달하는 데 사용되는 Web TokenJSON 포맷을 이용하여 사용자에 대한 속성을 저장하고, 클라이언트(브라우저)에서 인증정보를 관리*ex) 회원이 로그인을 진행한경우 서버에서 JWT 생성 -> 클라이언트에 JWT 전달JWT의 구조헤더.페이로드.서명 형식 (*Base64로 인코딩되어있으며, 서명의 경우 비밀키로 생성되어있음.) Header(헤더) : 토큰의 타입과 알고리즘 정보를 담고있음 (ex. HS256) Payload(페이로드) : 실제 데이터를 담고있는 부분 이메일이나 사용자의 id를 담는다.(*보안이 필요한 데이터는 담기지않음) Signature(서명) : 헤더와 페이로드를 비밀키로 서명해둔값, 토큰을 조작했는지에 대한 여부를 확인가능..
쿠키 (Cookie)웹 서버가 클라이언트(사용자의 웹 브라우저)에 저장하는 작은 데이터 파일클라이언트의 정보를 저장하거나, 세션 상태를 유지하는 데 사용 *쿠키의 특징더보기정보가 클라이언트 pc에 저장되기때문에 보안에 취약하다저장정보, 용량이 제한되어있다.(4kb)클라이언트 브라우저에서 사용유무를 설정할 수 있다도메인당 쿠키가 만들어진다 쿠키의 종류*보통 쿠키 = persistance쿠키 Persistance 쿠키Session 쿠키생성위치파일로 생성브라우저 메모리에 생성종료시기쿠키삭제, 설정한 만료시간이후브라우저를 종료하면 쿠키도 종료됨전송여부최초 접속 시 서버로 전송최초 접속시 서버로 전송안됨용도로그인 유무,팝업창 제한사이트 접속시 session정보유지 보안취약 (클라이언트에서 쿠키 정보를 쉽게 변경,..
Spring Boot JPAspringBoot 어플리케이션 내에서 JPA 를 사용할 수 있도록 자동설정된 기능application.properties내에 DB연결정보를 작성해두면 자동으로 설정이 완료된다. @TransactionalDB의 트랜젝션 개념을 손쉽게 적용할 수 있도록 SpringBoot JPA에서 제공하는 기능트랜젝션이 종료되는 즉시 변경된 Entity가 자동으로 DB에 반영됨. (Commit 시점)@Transactional //변경 감지(Dirty Checking)를 위해 필수 public Long updateData(Long id, DataDTO dataDto) { // repository에서 조회된 값은 영속성 컨텍스트에 의해 관리되며, 해당 객체는 영속 상태로 관리됨 ..
EntityJPA 에서 관리되는 클래스(객체)DB의 테이블과 연결되어 JPA에 의해 관리된다.@Entity //JPA가 인식할 수 있도록 Entity 어노테이션 지정@Table(name="테이블명") // 테이블명 지정public class SampleEntity{ //기본키(PK) @Id @GeneratedValue(strategy = GenerationType.IDENTITY) //auto_increament 설정 private 속성 이름; //하위 컬럼 //nullabel(null허용여부), unique(중복허용여부) 등의 추가기능이 존재 @Column(name = "컬럼이름") private 속성 이름;} Persistence Context (영속성 컨텍스트)E..