공부 자료/Spring (64) 썸네일형 리스트형 [Springboot 오류] 자바 파일 인식이 되지 않는 경우 * 내가 Spring initaializr에서 직접 Spring 파일을 설정 및 다운받지 않고 팀원이 올린 파일을 pull 하여 받아온 경우, 파일들을 자바 파일로 인식하지 않는 경우가 발생하였음. 해결방법) build.gradle 우클릭 >> link gradle project로 링크 >> Import gradle project 실행 gradle 파일이 정상적으로 작동하면서 자바 파일 인식 및 Gradle 메뉴가 생성되면서 프로젝트 Import를 확인할 수 있었음 [Spring Security] Hashing & Salt [Hashing] : Key 값을 해시 함수라는 수식에 대입시켜 계산한 후 나온 결과를 주소로 사용하여 Value에 접근하게 할 수 있는 방법 if) 이메일과 관련된 정보를 얻을 때 인증 과정을 거치지 않는다면? : 서버는 클라이언트에서 보내온 요청에 따라 이메일과 관련된 정보를 DB에서 가져와 클라이언트에 전달 >> 이메일 정보만 있다면 모든 정보에 접근이 가능함 if) 비밀번호를 이용한 인증 흐름을 설계한다면? : 서버는 이메일과 비밀번호 정보를 받아 DB에서 비교 후 정보가 일치할 경우 클라이언트가 요청하는 데이터를 DB에서 찾아 클라이언트에 전달 >> 해커가 DB에서 비밀번호를 탈취할 경우 피해가 커짐 * 따라서 비밀번호를 DB에 저장할 때 암호화 하여 저장하는 것이 필요함 [암호화] 암호화(En.. [Spring Security] Session [Session] : 서버와 클라이언트 간의 연결이 활성화 된 상태 (ex. 사용자가 인증에 성공한 상태) - 서버가 클라이언트에 유일하고 암호화된 ID를 부여 (쿠키에 제공) - 중요 데이터는 서버에 관리 (서버에 데이터를 저장) 세션기반 인증 [예시] 세션으로 유저를 저장하는 쇼핑몰에서 김코딩이 장바구니에 물건을 담으려는 경우 1) 사용자가 로그인 후 요청(장바구니에 청바지를 넣어줘) 2) DB에 정보를 저장 3) session_id를 반환 4) Set-Cookie에 session_id를 암호화 하여 저장 5) 사용자는 session_id를 가지고 장바구니 요청을 함 6) session_id를 확인 후 장바구니에 요청을 넣음 7) session_id가 유효하면 장바구니에 업데이트를 함 8) 업데이트 .. [Spring Security] Cookie [Cookie] : 서버에서 클라이언트에 데이터를 저장하는 방법의 하나 - 서버 -> 클라이언트 / 클라이언트 -> 서버 로 쿠키 전송이 가능함 [특징] : 서버가 클라이언트에 데이터를 저장할 수 있으나, 저장된 이후에는 특정 조건을 만족할 경우 데이터를 가져올 수 있음 1. Domain : www.google.com과 과 같은 서버에 접속할 수 있는 이름 : 쿠키 옵션에서 도메인은 포트 및 서브 도메인 정보, 세부 경로를 포함하지 않음 - 쿠키 옵션에서 도메인 정보가 존재한다면 클라이언트에서는 쿠키의 도메인 옵션과 서버의 도메인이 일치해야만 쿠키를 전송할 수 있음 2. Path : (세부 경로는) 서버가 라우팅 할 때 사용하는 경로 : 명시하지 않을 경우 기본으로 / 으로 설정 - path를 전부 만족.. [Spring Security] HTTPS (HTTP+Secure) HTTPS (HTTP + Secure) : HTTP 프로토콜 내용을 암호화 하며, key가 없다면 내용을 알 수 없음 * HTTP : 인터넷에서 데이터를 주고 받을 수 있는 통신 프로토콜로 요청을 보내면 내용을 들여다 볼 수 있음 [특징] 1. 인증서 (Certificate) : 데이터를 제공하는 서버가 정말로 데이터를 보내주는 서버인지 확인하는 용도 : 내용에 서버 도메인 관련 정보가 있어 데이터 제공자의 인증이 용이함 - 데이터 제공자 신원 보장 - 도메인 종속 흐름 : 클라이언트의 요청을 받은 서버는 인증서와 응답을 전송 >> 클라이언트는 인증서에 작성된 도메인과 응답 객체 도메인을 비교하여 서버가 확실한지를 확인 2. CA : 인증서를 발급하는 공인된 기관으로, 각 브라우저는 각자 신뢰하는 CA .. [Spring] 애너테이션 Annotation 정리 (계속 추가중) @SpringBootApplication : 자동 구성 활성화 : 애플리케이션 패키지 내에서 @Component가 붙은 클래스를 검색한 후, Spring Bean으로 등록하는 기능 활성화 : @Configuration이 붙은 클래스를 자동으로 찾아주고, 추가적으로 Spring Bean을 등록하는 기능 활성화 : Spring Boot 애플리케이션으로 동작하기 위한 엔트리포인트에 추가 @SpringApplication.run(클래스명.class, args) : Spring 애플리케이션을 부트스트랩하고, 실행하는 역할 : main() 메서드 내에서 호출 시 Spring Boot 기반의 애플리케이션으로 동작 * 부트스트랩(Bootstrap) : 애플리케이션 실행 전 여러가지 설정 작업을 수행하여 실행 가능한 애.. [Spring MVC] 트랜잭션 전파/격리 레벨 [트랜잭션 전파(Transaction Propagation)] : 트랜잭션의 경계에서 진행 중인 트랜잭션이 존재할 때 또는 존재하지 않을 때, 어떻게 동작할 것인지 결정하는 방식을 의미 : 트랜잭션의 동작을 설정하는데 사용 1. Propagtion.REQUIRED : propagtion 유형의 디폴트 값 : 진행 중인 트랜잭션이 없으면 새로 시작하고, 진행 중인 트랜잭션이 있으면 해당 트랜잭션에 참여함 2. Propagation.REQUIRES_NEW : 이미 진행중인 트랜잭션과 무관하게 새로운 트랜잭션이 시작되며, 기존에 진행중이던 트랜잭션은 새로 시작된 트랜잭션이 종료할 때까지 중지 3. Propagation.MANDATORY : 진행중인 트랜잭션이 없으면 예외를 발생시킴 4. Propagation... [Spring MVC] 트랜잭션 기본 및 적용 * 트랜잭션 및 ACID 관련 기본 설명은 아래 블로그 참고 https://kcode-recording.tistory.com/29 [데이터베이스] 트랜잭션, ACID [트랜잭션] 트랜잭션(transaction) : 여러 개의 작업을 하나로 묶는 실행 유닛 : 하나의 특정 작업으로 시작을 해 묶여 있는 모든 작업을 다 완료해야 정상적으로 종료하며 단 하나라도 실패했을 경 kcode-recording.tistory.com [커밋(commit)] : 모든 작업을 최종적으로 DB에 반영하는 명령어로써, commit 명령을 수행하면 변경된 내용이 DB에 영구적으로 저장 : commit을 수행하지 않을 경우 작업 결과가 DB에 반영되지 않음 : commit 수행을 기점으로 하나의 트랜잭션 과정이 종료됨 >> 내부적.. 이전 1 2 3 4 5 6 7 8 다음