반응형

전체 글 1097

[Security] JWT 구현

🔐 JWT(Json Web Token)- JWT란?   JWT는 하나의 인터넷 표준 인증 방식으로 인증에 필요한 정보들을 암호화시킨 JSON 형태의 토큰을 말한다.- JWT를 사용한 인증방식    이전 포스팅에서 JWT의 개념에 대해서 알아보았다. 이번 포스팅에서는 스프링부트를 사용한 실제 적용방법을 알아보자. [Security] JWT 소개🔐 HTTP의 특징 및 쿠키(Cookie)와 세션(Session)의 등장 JWT를 소개하기 전에 HTTP의 특징과 쿠키와 세션의 등장 배경에 대하여 알아보자. 기본적으로 HTTP 프로토콜 환경은 'Connectionless', 'Stateless'한 특caffeineoverflow.tistory.com   🔐 프로젝트 구조전체 프로젝트 구성은 아래와 같으며, 각..

IT 2025.01.18

[Security] JWT 소개

🔐 HTTP의 특징 및 쿠키(Cookie)와 세션(Session)의 등장JWT를 소개하기 전에 HTTP의 특징과 쿠키와 세션의 등장 배경에 대하여 알아보자.기본적으로 HTTP 프로토콜 환경은 'Connectionless', 'Stateless'한 특성을 가지고 있다.Connectionless(비연결성)- 클라이언트가 서버에 요청 후, 요청에 대한 응답을 받으면 바로 TCP/IP 연결을 끊는다.(연결을 유지하지 않는다.)Stateless(무상태)- 서버가 클라이언트의 이전 상태를 보존하지 않는다.이러한 특성으로 인하여 서버는 클라이언트가 누구인지 매번 확인을 해야하는 번거로움이 있었다.이를 보완하기 위해서 쿠키와 세션 개념이 도입된 것이다.🔐 쿠키(Cookie)와 세션(Session)- 쿠키란?쿠키는 ..

IT 2025.01.18

[Spring] 스프링 AOP

🌱 스프링 삼각형 이전 포스팅 중 '스프링 개요'에서 스프링을 구성하는 핵심 요소에 대하여 알아봤었다.오늘은 그중에서 AOP에 대하여 조금 더 상세하게 포스팅하려고 한다.   🌱 AOP(Aspect Oriented Programming)AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 흩어진 관심사(Crosscutting Concerns)를 모듈화하여 제공하는 프로그래밍 기법이다.아래의 그림을 통해서 자세하게 살펴보자.  Class A, Class B, Class C의 주황, 파랑, 빨강 부분은 각 클래스에서 동일한 코드라고 가정해보자. 만약 주황색 블록에 해당하는 코드를 수정해야 한다면 Class A, Class B, Class C의 주황색 부분..

IT 2025.01.18

[Java] 자바 개발환경 준비 - JDK 설치 및 환경변수 설정

💻 JDK 설치하기1. JDK 다운로드    - 오라클 홈페이지에서 원하는 버전을 선택 후 다운로드한다.   2. 압축풀기    - 다운로드한 ZIP 파일을 압축 해제한다.3. 설치경로 확인    - 압축해제한 폴더로 이동한 후 경로를 확인한다.  💻 환경변수 설정1. 시스템 변수 등록    - '내 PC'를 우클릭하여 [속성]을 클릭한다.    - 설정 > 시스템 내의 [고급 시스템 설정]을 클릭한다.    - 시스템 속성 화면에서 [환경 변수] 버튼을 클릭한다.    -  시스템 변수 영역의 [새로 만들기] 버튼을 클릭하고, 변수 이름과 변수 값에 각 각 'JAVA_HOME'과 JDK를 설치한 디렉토리 경로를 입력한다. 2. 환경 변수 편집    - 시스템 변수 항목 중 'Path'를 선택하고 [..

IT 2025.01.18

[Spring] 스프링 IoC

🌱 스프링 삼각형 이전 포스팅 중 '스프링 개요'에서 스프링을 구성하는 핵심 요소에 대하여 알아봤었다.오늘은 그중에서 IoC에 대하여 조금 더 상세하게 포스팅하려고 한다.   🌱 IoC (Inversion of Control)IoC(Inversion of Control, 제어의 역전)란,Bean의 생성과 의존 관계 설정, 사용, 제거 등의 작업을 애플리케이션 코드 대신 스프링 컨테이너가 담당한 관리하는 것을 뜻한다.즉, 객체를 제어하고 관리하는 역할이 개발자로부터 스프링 컨테이너로 역전된다는 뜻이다.무엇인가 주최가 바뀐다는 것 같긴하나 Bean과 스프링 컨테이너는 무엇인지, 또한 왜 IoC를 사용해야하는지 아직 감이 잡하지 않을 것이다.차근차근 알아가 보도록 하자.   🌱 Bean과 스프링 컨테이너..

IT 2025.01.18

[Spring] 스프링 DI

🌱 스프링 삼각형 이전 포스팅 중 '스프링 개요'에서 스프링을 구성하는 핵심 요소에 대하여 알아봤었다.오늘은 그중에서 DI에 대하여 조금 더 상세하게 포스팅하려고 한다.   🌱 DI (Dependency Injection)의존성 주입(DI)이란, 객체를 직접 생성하는 것이 아니라 외부에서 객체를 생성한 후 주입 시켜주는 방식을 뜻한다.일반적인 스프링 프로젝트 코드를 살펴보면, Controller에서 Service나 Repository 객체를 사용할 때, new 키워드를 통해 객체를 직접 생성하는 것이 아니라 스프링 컨테이너에 생성된 객체를 받아오는 방식으로 사용하는 것을 볼 수 있었을 것이다.이를 통해 결합도를 낮추고 유연성을 높일 수 있기 때문이다.결합도를 낮추고 유연성을 높인다는게 정확하게 와닿지..

IT 2025.01.18

[IntelliJ] 인텔리제이 단축키 모음

전체 검색- macOS : ⇧ + ⇧- Windows : Shift + Shift키워드가 포함된 파일 검색- macOS : ⌘ + ⇧ + F- Windows : Ctrl + Shift + F최근 실행한 파일 확인- macOS : ⌘ + E- Windows : Ctrl + E최근 수정한 파일 확인- macOS : ⌘ + ⇧ +E- Windows : Ctrl + Shift + E페이지 내 오류를 발행하는 코드로 이동- macOS : f2- Windows : f2리팩토링 관련 전체 항목 조회- macOS : ^ + ^- Windows : Ctrl + Alt + Shift + T 코드 정렬- macOS : ⌥ + ⌘ + L- Windows : Ctrl + Alt + LImport 정리- macOS : ^ + ⌥..

IT 2025.01.18

[Spring] 스프링 MVC

🌱 스프링 MVC란?지난 포스팅에서 스프링의 개요 및 구조에 대하여 간략하게 알아보았다.오늘은 스프링의 구조 중에서도 Spring Web MVC에 대하여 조금 더 상세하게 포스팅하려고 한다.Spring Web MVC는 Spring MVC라는 용어로도 쓰이며, MVC 패턴에 기반을 둔 웹 프레임워크이다.그렇다면 MVC 패턴이란 무엇일까?MVC 패턴을 간략하게 설명하자면 다음과 같이 정리할 수 있다.MVC는 Mode, View, Controller의 약자이며,클라이언트와 상호작용하는 소프트웨어를 설계함에 있어서 세 가지 요소로 나누어 설계하는 것을 뜻한다.- Model   Model은 애플리케이션의 정보, 데이터의 가공을 책임지며 데이터베이스와 상호작용하여 비즈니스 로직을 처리하는 모듈.   즉, 컴포넌트..

IT 2025.01.18

[Spring] 스프링 개요

🌱 스프링 프레임워크란?스프링은 2002년에 세상에 처음 나왔다.Rod Johnson이 자신의 저서에서 MVC 모델을 설명하면서 스프링의 이름을 최초로 언급하였다.'스프링'이라는 이름의 유래는 이전에 Java EE(엔터프라이즈 에디션)의 스펙을 구현한 EJB가 기술의 복잡도가 증가해서 성능이 느렸던 것을 탈피하여, EJB 시절을 “겨울”에 빗대어 겨울 후의 “봄”으로 새로운 시작한다는 것을 의미하는 스프링(봄)이 되었다.이런 스프링에 대하여 가장 잘 알려진 정의는 아래와 같다.자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크스프링은 다른 프레임워크에 비해 다음과 같은 특징을 가진다.경량 컨테이너로서 자바 객체를 직접 관리한다.각각의 객체 생성, 소멸과 같은 라이프 사이클을 ..

IT 2025.01.18

[IntelliJ] Find in Files 검색 결과 늘리기

이슈개발을 하다보면 특정 단어로 코드를 검색하는 경우가 많다.하지만 흔한 단어(?)를 검색하다보면 아래와 같이 모든 코드를 탐색할 수 없을 때가 종종 발생한다.    해결방안이러한 경우에는 아래의 순서대로 설정값을 변경하여 탐색 결과를 늘릴 수 있다.메뉴 > Settings... 클릭Preferences 창 > Advanced Settings에서 'Maximum number of results ...' 항목의 갯수를 조정한다.Ex) 기존 100개에서 500개로 변경한 경우, 조회 결과는 아래와 같이 바뀐 것을 확인할 수 있다.

IT 2025.01.18
반응형