본문 바로가기

2024/05

(51)
[Spring Boot] Spring Boot에서 JWT 토큰 발급 및 인증 해보기!! Spring Boot에서 JWT 토큰을 발급하고 검증하는 방법을 설명드리겠습니다. JWT를 사용한 인증을 구현하기 위해 Spring Security와 함께 JWT 라이브러리를 사용합니다. 여기서는 기본적인 설정과 함께 JWT 토큰을 발급하고 검증하는 예제를 소개 하겠습니다.  프로젝트 설정먼저, 필요한 의존성을 build.gradle (또는 pom.xml에 추가해야 합니다.)Gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'io.j..
[API Auth] JWT란 무엇인가?! (구성 요소 및 예시) JWT (JSON Web Token)는 주로 인증 및 권한 부여를 위해 사용되는 압축된 JSON 객체입니다. JWT는 세 가지 주요 부분으로 구성되어 있으며, 각 부분은 점(.)으로 구분됩니다. 이 세 부분은 헤더(Header), 페이로드(Payload), 서명(Signature)입니다. 이제 각 부분을 자세히 살펴보겠습니다.JWT의 구성 요소헤더 (Header) 헤더는 두 가지 정보를 포함합니다:알고리즘(alg): 서명을 생성하는 데 사용된 해싱 알고리즘 (예: HS256, RS256).타입(typ): 토큰의 타입, JWT로 설정합니다.{ "alg": "HS256", "typ": "JWT"}페이로드 (Payload) 페이로드는 JWT의 본문 부분으로, 클레임(Claim)이라고 불리는 일련의 정보가 ..
[금융 상식] 투자와 투기, 그 한 끗 차이! 투자와 투기는 모두 돈을 불리기 위한 활동이지만, 접근 방식과 목적에 차이가 있습니다.1. 투자 (Investment)투자는 자산의 장기적인 성장을 목표로 하는 활동입니다. 투자자는 자산의 기본적인 가치를 분석하고, 시간이 지남에 따라 자산의 가치가 상승할 것이라고 믿기 때문에 투자합니다.목적: 장기적인 성장과 안정적인 수익분석: 철저한 분석과 연구를 기반으로 함 (재무제표, 시장 동향 등)기간: 중장기 (몇 년에서 몇 십 년)리스크 관리: 분산 투자 등을 통해 리스크를 최소화하려 함예를 들어, 우량한 기업의 주식을 사서 오랫동안 보유하며, 회사의 성장과 함께 주가가 오르기를 기대하는 것이 투자입니다.투자의 예시 구분 내용 예시 1: 주식 투자 투자자: 존 투자 시나리오: 존은 기업 A를 조사한 후 그 ..
[Spring Boot] AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)란 무엇인가? Spring Boot에서 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 코드의 중복을 줄이고, 모듈성을 향상시키기 위한 강력한 도구입니다. AOP는 주로 애플리케이션의 로깅, 트랜잭션 관리, 보안, 예외 처리 등 횡단 관심사(Cross-Cutting Concerns)를 처리하는 데 사용됩니다.AOP의 기본 개념Aspect(애스펙트): 횡단 관심사를 모듈화한 것입니다. 예를 들어, 로깅이나 트랜잭션 관리 기능이 하나의 Aspect가 될 수 있습니다.Join Point(조인 포인트): 애플리케이션 실행 중 특정 지점입니다. 메서드 호출이나 예외 처리 등 여러 종류의 Join Point가 있습니다.Advice(어드바이스): 특정 Join Point에서 실행될 코드를 정의합..
[소프트웨어 공학] 영향도 분석과 연관도 분석의 차이 알아보기! 영향도 분석(Impact Analysis)과 연관도 분석(Relationship Analysis)은 소프트웨어 공학에서 중요한 역할을 하는 두 가지 분석 방법입니다. 이 둘은 서로 다른 목적과 방법을 가지고 있습니다.영향도 분석 (Impact Analysis)구분내용목적영향도 분석은 소프트웨어 시스템에서 특정 변경 사항이 다른 부분에 미치는 영향을 평가하는 것을 목적으로 합니다. 주로 소프트웨어 변경 관리와 관련이 있으며, 변경이 시스템의 다른 구성 요소에 어떤 영향을 미칠지 예측하고 이해하는 데 사용됩니다.방법변경 식별: 변경될 요소를 식별합니다. 이는 코드, 요구 사항, 설계 문서 등일 수 있습니다.영향 범위 파악: 변경 사항이 다른 구성 요소에 미치는 영향을 분석합니다. 직접적으로 영향을 받는 모듈..
[프롬프트 엔지니어링] Chain-of-Thought (CoT) Prompting란 무엇인가? Chain-of-Thought (CoT) prompting은 언어 모델이 복잡한 추론 작업을 수행할 때 중간 단계의 추론 과정을 명시적으로 보여주는 기술입니다. 이는 모델이 단계를 밟아가며 문제를 해결하도록 유도하여 정확성을 높이는 방법입니다. 전문가의 관점에서 Chain-of-Thought prompting의 주요 요소와 장점을 다음과 같이 정리할 수 있습니다: 개념과 원리추론 과정의 시각화: CoT는 모델이 문제를 해결하는 데 필요한 중간 추론 단계를 명시적으로 작성하도록 유도합니다. 이는 사람의 사고 과정과 유사하며, 단계별로 문제를 해결하는 방식입니다.복잡한 문제 해결: 특히 복잡한 수학 문제, 논리 퍼즐, 다단계 추론이 필요한 질문 등에 유용합니다. 단계별 접근은 모델이 각 단계에서 필요한 정보..
[분당 맛집] 분당 & 정자 하루가 기분 좋아지는 커피 맛집! 두개의 날개를 잃은 천사가 선물한 카페! Cafe 1002 !! 조용한 하루에 충전이 필요한 날이 있습니다.저는 그런 날일수록 아무런 일정도 잡지 않습니다.이미 사전에 잡아둔 약속이 있어도 꼭 지켜야 할 약속이 아니라면정중히 양해를 구하고 온전한 저만의 시간을 준비합니다.'다소 이기적일 수 있지만, 저에게 정말 필요한 시간이거든요'조용한 하루가 다가오면, 평소 읽지 못하고 쌓아뒀던 책 한 권을 들고 혼자만의 시간과 공간으로 도피합니다.지친 현실로부터 도망가는 그 길은 평소 가지 않았던 길이고 목적지는 명확하지 않지만 그리 멀지 않은 카페 일 것입니다.익숙하지 않은 길을 걷는 이유는 오늘 하루만큼은 현실과의 연결 고리를 철저히 끊겠다는 강한 의지이며, 그리 멀지 않은 목적지는 쌓인 피로로부터 저를 보호하기 위한 저만의 비법이죠.도심 속에서 조용한 카페를 찾는 것은 그리..
RAG(Retrieval-Augmented Generation)란 무엇인가? 심층 개념 분석 RAG (Retrieval-Augmented Generation)는 자연어 처리(NLP) 분야에서 텍스트 생성의 성능을 향상시키기 위해 고안된 방법입니다. RAG는 검색(Retrieval)과 생성(Generation) 모델을 결합하여, 방대한 데이터베이스에서 관련 정보를 검색하고, 이를 기반으로 자연스럽고 정확한 텍스트를 생성합니다. 이는 전통적인 언어 모델이 가진 한계를 극복하고, 보다 사실적이고 정보에 기반한 응답을 생성하는 데 유리합니다.RAG의 작동 방식은 다음과 같습니다:검색 단계:쿼리(질문이나 문장)를 받아서, 사전 준비된 문서 데이터베이스에서 가장 관련성이 높은 문서들을 검색합니다.이 단계에서 주로 사용하는 기술은 BM25, TF-IDF, Dense Retrieval(BERT 기반) 등이 있..