BackEnd(Java)/Spring Boot(19)
-
JWT & OAuth 정리
✅ 아래 내용들에 대해서 알아보자 - JWT - AccessToken/Refresh Token - OAuth JWT Json Web Token(JWT)는 웹 표준 방식으로 JSON 객체를 사용해서 인증/인가 처리를 진행할 때 사용된다. 보통 회원 인증처리에 사용되며 프로세스에 대해서 알아보자 1. 회원 인증 처리할 때 유저가 로그인 시 토큰을 발급하여 유저에게 전달하고 유저가 서버에 요청할 때마다 토큰을 HTTP Header에 포함하여 전달한다. 2. 서버 측에서는 Header에 있는 토큰을 통해 검증/권한 확인 후 작업을 처리하게 된다. 3. JWT을 통해서 처리하기 때문에 서버 측에서는 세션을 관리할 필요가 없게 되므로 자원을 아끼게 되고 세션을 관리하게 되면 중앙집중형 방식으로 진행하게 돼서 서버 ..
2023.06.01 -
@Meta Annotation에 대해서 알아보자
✅ 아래 내용들에 대해서 알아보자 - 메타 어노테이션이란 - 메타 어노테이션 종류 - 예시 코드 메타 어노테이션 메타 어노테이션이란 java 코드에 메타 정보를 추가할 수 있는 구문의 한 형태. 클래스, 메서드, 변수, 매개변수 및 java 패키지에 어노테이션을 달 수 있다. 해당 어노테이션을 jvm 런타임 및 리플렉션을 통해 읽게 된다. 메타 어노테이션 종류 1. @Target 어노테이션을 어떤 요소에 적용할지 지정 @Target(ElementType.TYPE) 클래스의 어떤 요소에나 적용 가능, 기본값 @Target(ElementType.FIELD) 클래스의 특정 필드 @Target(ElementType.METHOD) 클래스의 메서드 @Target(ElementType.PARAMETER) 메서드의 파..
2023.02.24 -
스프링 IoC/DI 찍먹
✅ 아래 내용들에 대해서 알아보자 - IoC - IoC 컨테이너 - DI, DI 방식 IoC IoC(Inversion of Control, 제어의 역전)란 프로그램의 일부에 대한 제어를 프레임워크로 이전하는 소프트웨어 엔지니어링 원칙이다. 스프링에서는 IOC는 클래스 간의 느슨한 결합을 하기 위해 객체의 생성과 관리를 컨테이너를 통해 프레임워크가 제어하는 것을 의미한다. 스프링 컨테이너가 제어권을 가지고 있다고 해서 스프링 컨테이너를 IoC 컨테이너라고 부른다. 이전 개발방식에서는 개발자가 직접 객체를 생성하고 의존성을 관리해야 했으나, 스프링에서는 객체의 생성과 의존성 관리를 IoC 컨테이너가 담당함으로써 객체 간의 결합도를 낮추고, 유연하고 확장성 높은 애플리케이션을 개발할 수 있다. IoC 컨테이너..
2023.02.24 -
스프링 이벤트 처리
✅ 아래 내용들에 대해서 알아보자 - 이벤트란 무엇일까? - 스프링 이벤트 처리 방법 - 예제 코드 & 실습 - 이벤트 발송 프로세스 이벤트란? 컴퓨팅에서 이벤트(event)란 프로그램에 의해 감지되고 처리될 수 있는 동작이나 사건을 의미합니다. 예를 들어 사용자가 키보드의 키를 누르는 행위, 사용자가 화면의 버튼을 누르는 것 등의 행위들을 의미한다. 분산 시스템 간에 이벤트를 생성, 발행(publish)하고 발행된 이벤트를 필요로하는 수신자에게 전달하여 수신자가 이벤트를 처리하는 형태의 시스템 아키텍처를 Event-driven-architecture(EDA)라고 한다. 스프링 이벤트 처리 방법 스프링의 Application context는 BeanFactory 기능 말고 여러가지 기능들을 제공하는데 그..
2023.01.20 -
Doesn't say anything about org.gradle.plugin.api-version (required '7.6')
현상 인텔리제이에서 빌드 시 아래 오류가 발생 하였음 - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.6') - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-..
2023.01.03 -
@Async에 대한 이해
✅ 아래 내용들에 대해서 알아보자 - 비동기/동기, 블로킹/논블로킹 이해 - @Async 개념 및 사용법 - ThreadPoolExecutor 빈 등록 및 옵션 값 설정 @Aysnc를 이해하기 전에 먼저 비동기/동기, 블로킹/논블로킹 개념부터 이해를 해야한다.. 혹시 헷갈리거나 잘 모르시는 분들은 아래 블로그 참고해주시면 됩니다. https://inpa.tistory.com/entry/👩💻-동기비동기-블로킹논블로킹-개념-정리 👩💻 동기 & 비동기 / 블로킹 & 논블로킹 💯 완벽 이해하기 동기 & 비동기 vs 블로킹 & 논블록킹 개념 이 개념들을 처음 접하거나 컴퓨터 공학에 대해 잘 모르는 사람은 이 개념들이 서로 뭔가 연관이 있는 것으로 오해하기 쉽다. 아무래도 동기와 블록킹, inpa.tistory..
2022.11.21