반응형

전체 글 126

[프로그래머스/Java] 입국심사(이분탐색 문제)

프로그래머스 알고리즘 고득점 Kit의 이분탐색 문제에 해당하는 '입국심사'를 자바로 풀어보았습니다. https://school.programmers.co.kr/learn/courses/30/lessons/43238# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근 처음 이 문제를 접하고 들었던 생각은 어떻게 이 문제를 이분탐색으로 풀지?라는 것이었다. 내가 배워왔던 이분탐색과는 다른 느낌이었다. 하지만 '매개변수 탐색'이라는 개념을 접하고 나니 어떻게 이 문제를 풀어야 할지 알 수 있었다. 매개변수 탐색이란, 이분탐색을 이용해 최종답안에 가까워져 가는 탐색 방식을 말한다. 결국 '답이 될 결과..

[python / colab] 증권사 리포트 pdf 파일 크롤링하기

대표적으로 증권사 리포트를 확인할 수 있는 사이트인 한경컨센서스와 네이버금융리서치를 크롤링하여 리포트 pdf를 구글 드라이브에 저장하는 작업을 코랩에서 수행해 봤다. 공통 단계 사전 준비# 구글 드라이브 마운트 (구글 드라이브와 코드 연결)from google.colab import drivedrive.mount('/content/drive')# selenium 설치!pip install selenium!apt-get update# 구글 드라이브에 choremdriver 설치 (최초 1회)!apt install chromium-chromedriver!cp /usr/bin/chromedriver "/" #chorme driver 설치할 dir!pip install chromedriver-autoinsta..

[SpringBoot/JWT] 로그인/회원가입에 Refresh Token 도입하기

0. JWT 기반 로그인/회원가입 구현 기존에 구현되어 있던 JWT 기반 로그인/회원가입에서 보안과 안정성 향상을 위해 refresh token을 추가해 줬다. 이미 구현된 JWT 기반 로그인/회원가입과 왜 refresh token이 필요한지에 대한 내용은 아래 글에서 확인할 수 있다. https://programming-diary-ina.tistory.com/126 [Spring Boot/JWT] JWT로 로그인/로그아웃 구현하기토큰 기반 인증 1. 토큰 기반 인증이란 토큰을 사용하여 인증하는 방식이다. 서버가 토큰을 생성해서 클라이언트에게 제공하면, 클라이언트는 이 토큰을 가지고 있다가 여러 요청을 토큰과 함programming-diary-ina.tistory.com refresh token의 추가..

[Spring Boot/JWT] JWT로 로그인/로그아웃 구현하기

토큰 기반 인증 1. 토큰 기반 인증이란 토큰을 사용하여 인증하는 방식이다. 서버가 토큰을 생성해서 클라이언트에게 제공하면, 클라이언트는 이 토큰을 가지고 있다가 여러 요청을 토큰과 함께 신청한다. 서버는 토큰을 보고 유효한 사용자인지 검증하여 요청을 수행해준다. 2. 세션 기반 인증과 토큰 기반 인증 세션 기반 인증은 사용자마다 사용자의 정보를 담은 세션을 생성하고 저장해서 인증하는 방식이다. 세션 기반 인증과 토큰 기반 인증의 가장 큰 차이는 요청과 함께 전달하는 정보의 양 차이이다. 토큰 기반 인증의 경우, 검증에 필요한 정보를 모두 담은 토큰을 요청과 함께 전달한다. 즉, 토큰에 회원정보와 유효기간 같은 검증에 필요한 정보도 담겨있어, 토큰만 확인하면 회원의 유효성을 입증할 수 있다. 하지만 세..

[논문 Review] Development of an Automated ESG Document Review System using Ensemble-Based OCR and RAG Technologies

ESG 관련 내용은 제하고, 졸업 프로젝트에 필요한 RAG 기술 관련 내용을 중심으로 정리했다.Technology Overview (only about RAG)1. RAG 작동 과정Data Gathering(데이터 수집): 다양한 원천 데이터(PDF, TXT, CSV, 웹 URL 등)를 사용해 LLM에 최신 지식이나 심층 지식 전달Data Loading: 수집한 데이터를 시스템으로 불러오는 단계 (데이터 구조 파악, 불필요한 텍스트 제거 등)Data Splitting: 데이터를 Chunk 단위의 작은 조각으로 나누는 단계. LLM에 불필요한 정보가 제공되는 것을 최소화. (다만 청크 사이즈가 너무 작으면 핵심 정보 누락, 텍스트 맥락의 모호성 발생)Data Embedding: 청크 단위로 분할된 텍스트를..

[논문 Review] 복지 정책 정보 제공을 위한 RAG 기반 대화형 시스템 개발

연구 목적1. LLM의 한계사용자가 정확한 용어를 알고 있어야 함검색 결과 중 원하는 정보를 직접 찾아야 함2. RAG 도입의 기대효과정책 정보에 대한 접근성 향상자연어 기반 질의응답 시스템을 통해 정확하고 관련성 높은 정보 제공복잡한 정책 내용을 이해하기 쉬운 형태로 제공최신 정보를 실시간으로 반영할 수 있는 시스템 구축연구 내용1. 사용 기술(1) RAG(Retriever-Augmented Generation)대형 언어 모델의 생성 능력과 외부 지식베이스를 결합하는 기술사용자 쿼리와 관련된 문서나 정보를 외부 지식베이스에서 검색하는 Retriever, 검색된 정보와 쿼리를 바탕으로 응답을 생성하는 Generator로 나뉜다장점 : 외부 지식 베이스를 활용한다최신 정보를 반영할 때, 모델을 재학습할 필..

[운영체제 실습] Scheduling Practice

운영체제 project를 시작하기 전, 교안에 있는 실습 자료로 sceduling 내용에 관한 practice를 진행했다. practice 01 In xv6, yield is implemented but it is not the system call.First, implement yield system call so that user can call yield. (yield gives up its CPU)Make a user program in xv6 that created child process with fork(), and show that parent and child process print "Parent" and "Child" respectively in loop.  문제에서 언급된 대로, y..

[SpringBoot/Java] JavaMailSender로 인증 메일 전송하기

회원가입 및 로그인 기능을 구현하면서, 인증코드를 담은 메일을 보내는 기능을 구현해야 했다. JavaMailSender를 이용하면 어렵지 않게 구현할 수 있다. 크게 아래 두 가지 기능을 구현해 보았다.1. 사용자의 이메일로 6자리의 인증코드를 담은 메일 전송  - 인증 코드 생성  - 인증 코드 저장  - 메일 전송2. 사용자가 입력한 코드가 저장된 인증코드와 일치하는지 확인  구현은 아래와 같이 했다. 우선 build.gradle 파일에 JavaMailSener를 사용하기 위한 의존성을 추가해 준다. /** build.gradle */dependencies { // java mail sender 의존성 추가 implementation 'org.springframework.boot:sprin..

[SpringBoot/오류 해결] Maria DB에 table이 추가되지 않는 문제

Maria DB를 활용하여 User 관련 기능들을 개발하던 중, user table이 DB에 추가되지 않는 문제가 발생했다. 이상한 점은 refresh token table은 잘 추가가 되었는데, User table만 추가되지 않았다는 점이다. 아래 코드는 각각 refresh token과 user에 관한 코드이다. /** RefreshToken.java **/@NoArgsConstructor@Getter@Entitypublic class RefreshToken { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="id", updatable=false) private Long id; @Column(name..

728x90
반응형