목록Spring Boot (20)
임도현의 성장

👀Exception(예외) 란?Exception 는 프로그램 실행 중에 발생할 수 있는 예상치 못한 상황이나 문제를 의미합니다. 자바에서는 예외가 발생하면 프로그램의 정상적인 흐름을 방해할 수 있기 때문에 예외를 적절히 처리하여 프로그램이 중단되지 않고 계속 실행될 수 있도록 하는 것을 말합니다. 자바에서 Throwable 클래스를 기준으로 Error, Exception 클래스로 나뉘어집니다. 실행시 발생할 수 있는 프로그램 오류를 에러와 예외 두가지로 구분할 수 있습니다. 🧐Error(오류)와 Exception(예외)의 차이오류 : 시스템 레벨에서 발생하며 복구가 거의 불가능한 문제 ex) 메모리 부족예외 : 프로그램에서 발생할 수 있는 문제로 적절히 처리하면 복구가 가능한 문제 ex) 파일을 ..

🥕 Redis 란?Redis는 Remote Dictionary Server의 약자로 빠른 오픈 소스 인메모리(Key-Value) 데이터 저장소입니다. Redis는 Key - value 구조를 기반으로 비정형 데이터를 저장하고 관리하는 시스템으로 비관계형 데이터 베이스(NoSQL)의 일종입니다. Redis는 주로 메모리 내 In- memory에서 데이터를 저장하고 관리하지만 데이터를 디스크에 지속적으로 저장 할 수 있는 영속성 기능도 지원합니다. 이를 통해 빠른 읽기 쓰기를 제공하며 복잡한 데이터 구조를 지원합니다.Redis 주요 타입String: 가장 기본적인 데이터 타입으로, 텍스트나 숫자 등의 데이터를 저장합니다.List: 리스트 형태로 순차적인 데이터를 저장합니다.Set: 고유한 값을 저장하는 ..

🥵 CORS란?도메인이 다른 서버끼리 리소스를 주고 받을 때 브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한합니다. 그래서 cross-origin 요청을 하려면 서버의 동의가 필요합니다. 만약 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절합니다. 이 정책은 악의적인 사이트가 사용자의 데이터를 탈취하지 못하도록, 다른 출처(origin)에서 리소스를 요청할 때 제한을 두는 역할을 합니다. 🎅 CORS 경험 이 전까지는 하나의 어플리케이션으로 계속 JSP만 하다가 API서버를 만들어 서로 다른 도메인으로 요청하는 작업이 처음이였다. 백앤드 개발자 입장에서는 서버 코드 오류 없이 테스트 까지 했는데 프론트쪽에서 CORS에러가 났다고 해줬..

JWT (Json Web Token) 란?JWT는 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하느 토큰이다. 웹 상에서 정보를 Json형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰으로 복잡하고 읽을 수 없는 String 형태로 저장되어있다. 😎 JWT 구성요소헤더(Header), 페이로드(Payload), 서명(Signature)세 파트로 나눠져 있다. 헤더(Header)어떠한 알고리즘으로 암호화 할 것인지 어떠한 토큰을 사용할 것 인지에 대한 정보가 들어있다. 페이로드(Payload) 전달하려는 정보(사용자의 ID나 데이터들, 이것들을 클레임이라고 부름)가 들어있다. Payload에 있는 내용은 수정이 가능하며 더 많은 정보를 추가할 수 있다. 하지만 노출과 수정..

Spring Security 란?Spring Security는 인증, 인가 그리고 데이터 보호 기능을 포함하여 웹 개발 과정에서 필수적인 사용자 관리 기능을 구현하는데 도움을 주는 스프링 하위 프레임워크입니다. 스프링 시큐리티는 필터 기반으로 동작한다. 🤗 인증과 인가인증(Authentication)은 사용자의 신원을 입증하는 과정입니다. 예를 들어 사용자가 사이트에 로그인을 할 때 누구인지 확인하는 과정을 인증이라고 합니다.인가(Authorization)는 인증과는 다릅니다. 인가는 사이트의 특정 부분에 접근할 수 있는지 권한을 확인하는 작업입니다. ⭐ build.gradle 추가https://mvnrepository.com/ // Securityimplementation 'org.sprin..

AOP란?Aspect-Oriented Programming의 줄임말이다.AOP는 애플리케이션의 핵심 비즈니스 로직과 관련 없는 부가적인 기능들을 모듈화하여 코드의 증복성을 줄이고 유지보수성을 향상시키는 데에 주로 활용한다. AOP에서는 다양한 관점(Aspect)을 정의하고 이러한 관점들을 핵심 로직에 적용하는 방식으로 동작한다. 👿 Advisor 구성포인트컷(PointCut) : 어디에 부가 기능을 적용할지, 클래스와 매서드 이름으로 필터링 하는데 쉽게 말하면 어디 기능에 적용하지 정하는 곳 (필터 역할)어드바이스(Advice) : 프록시가 호출하는 부가 기능이다. 단순하게 프록시 로직이라 생각하면 된다. (부가 기능 로직 담당)어드바이저(Advisor) : 하나의 포인트컷과 하나의 어드바이스를 가지..

🙀 트랜잭션 예시 회원이 쇼핑물에서 상품을 구매하고 결제를 할때 회원의 금액이 감소하지 않을 수 있고 회원이 금액이 감소는 하였는데 쇼핑물 측에서는 입금 처리가 되지 않는 문제 발생시 데이터를 전부 롤백 시켜 회원의 차감된 금액을 다시 돌려주게 한다.회원이 결제 버튼을 누름 => 트랜잭션 시작회원의 계좌에서 금액이 차감쇼핑물에서 해당 금액을 수신 및 주문 완료 처리 => 트랜잭션 종료🙉 Transaction 기본 방법Transaction은 2개 이상의 쿼리를 하나의 커넥션으로 묶어 DB에 전송하고, 이 과정에서 에러가 발생할 경우 자동으로 모든 과정을 원래대로 되돌려 놓습니다. 이러한 과정을 구현하기 위해 Transaction은 하나 이상의 쿼리를 처리할 때 동일한 Connection 객체를 공유하도..

🤔 H2 데이터베이스 란?H2 데이터베이스는 "Java"로 작성된 경량형 오픈소스 관계형 데이터베이스(RDMS) 관리 시스템입니다.서버(Server) 모드와 임베디드(Embedded) 모드의 인메모리 DB 기능을 지원하며 브라우저 기반의 콘솔모드를 이용할 수 있으며, 메모리 내에서 실행할 수 있어 빠르고 간편하게 사용할 수 있습니다.RDBMS는 DBMS에 Relational이 추가된 것으로 쉽게 말하자면 테이블 기반의 DBMS이다.DBMS는DataBase Management System으로 데이터베이스 관리 시스템이다.📌 H2 데이터베이스 다운로드H2 데이터베이스 공식 사이트에 접속 후 All Platforms 다운로드📌 파일 실행다운로드 파일을 압축을 풀고 cmd로 h2\bin 경로로 이동한 후 ..