전체 글 385

LLM의 기초 뼈대 세우기

최근 몇 년간 대형 언어 모델(LLM, Large Language Model)의 발전은 인공지능(AI) 분야에서 가장 뜨거운 이슈 중 하나입니다. 챗GPT와 같은 AI 챗봇부터 코드를 작성하는 AI까지, LLM이 우리의 삶과 업무에 미치는 영향은 점점 커지고 있습니다. 이번 글에서는 LLM의 기초 개념부터 현재의 발전 과정, 그리고 미래의 전망까지 깊이 있게 살펴보겠습니다.    1. 딥러닝과 언어 모델 LLM을 이해하려면 먼저 딥러닝과 언어 모델의 기본 개념을 알아야 합니다.  딥러닝(Deep Learning)이란? 딥러닝은 다층 신경망(Deep Neural Network)을 활용하여 데이터를 학습하는 기계 학습 기법입니다. 특히 자연어 처리(NLP, Natural Language Processing)..

LLM(Open AI) 2025.04.01

웹 애플리케이션에서 특수문자와 유니코드 문자 처리 시 발생하는 XSS 이슈

웹 애플리케이션을 개발하다 보면 사용자 입력값에 특수문자나 유니코드 문자가 포함될 때 예상치 못한 문제가 발생하곤 합니다. 특히 보안과 관련하여 크로스 사이트 스크립팅(XSS) 공격을 방지하면서도 특수문자를 올바르게 처리해야 하는 상황에서는 더욱 주의가 필요합니다.이번 글에서는 제가 최근 경험한 문제와 그 해결 과정을 공유하고자 합니다.      문제 상황 20년이 넘은 웹이 있는데 그곳에서 회사 스팸 필터링 시스템을 운영하고 있습니다. 이 시스템에서 스팸 단어를 등록하고 검색하는 과정에서 다음과 같은 문제가 발생했습니다그리스 문자와 같은 유니코드 문자(예: "νιΡ")가 HTML 엔티티(예: "νιΡ")로 변환되어 저장되는 문제특수문자가 포함된 스팸 단어(예: "[비+&씨]")가 검색되지 않는 문제특수..

업무 기록/ETC 2025.03.31

25년 1분기 회고(1월 ~ 3월)

작성 이유벌써 서른, 하지만 혼자 아직 만 28이라고 생각하며...2025년 벌써 1/4 가 정신없이 흘러갔다. 새해 집안에 상을 치르면서 서른이 되었다는 사실조차 실감할 틈 없이 한 달이 지나가 버렸다. 그래서인지 특별히 기억에 남는 순간도 많지 않았다.어느덧 서울에 올라온 지도 3년. 하지만 그동안 기억에 남을 만한 문화생활을 한 적이 거의 없었다.설령 무언가를 했더라도 인상적인 기억으로 남아 있지 않았다. 돌이켜보면 친구들과 술을 마시며 시간을 보낸 것이 대부분이었고, 그렇게 나이만 먹어가고 있다는 생각이 들었다. 이대로 시간이 흘러가는 것이 아쉽다는 생각이 들었다.그래서 이제부터는 좀 더 다양한 활동을 경험하고, 의미 있는 추억을 많이 쌓아가고 싶다.   1월 기억에 남는 활동   고마운 사람들 ..

일기(잡) 2025.03.30

Elasticsearch & Kibana 다운로드 설치 및 설정

1. Elasticsearch 설치 방법(1) Elasticsearch 설치 전 필수 사항Java 설치 불필요 (Elasticsearch 7.x 이상은 내장 JDK 포함)최소 RAM 2GB 이상 권장지원 운영체제: Windows, macOS, Linux  (2) Elasticsearch 설치 방법 (OS별 가이드) 1) Linux/macOS (Tar 패키지 설치)wget tar -xzf elasticsearch-8.10.2-linux-x86_64.tar.gzcd elasticsearch-8.10.2최신 버전 다운로드 후 압축 해제 2) Windows (ZIP 패키지 설치)공식 다운로드 페이지에서 ZIP 파일 다운로드압축 해제 후 bin/elasticsearch.bat 실행 3) Docker 설치 방법do..

DevOps 2025.03.15

Kibana와 Grafana: 차이점, 역사, 사용 사례와 시계열 데이터 처리

키바나와 가장 자주 비교되는 시각화 도구로 키바나를 포크해서 만든 그라파나에 대해서 정리하게 되었습니다. 간단하게 키바나는 엘라스틱에서 실행되는 로그메세지 분석에 사용되고 그라파나는 시스템 관점 CPU, IO 등 사용율과 같은 메트릭 시각화하는데 특화된걸로 인지하고 있지만 좀 더 자세하게 정리하기 위해 글을 남기게 되었습니다.  1. Grafana와 Kibana 개요Grafana와 Kibana는 데이터 시각화 도구이지만, 처리하는 데이터 유형과 목적이 다릅니다. 기능  Grafana 🟠 Kibana 🔵 주요 역할메트릭 데이터 모니터링로그 및 이벤트 분석데이터 소스Prometheus, InfluxDB, MySQL 등 다양한 지원Elasticsearch 전용시각화 유형시계열 그래프, 게이지, 테이블 ..

DevOps 2025.03.12

메시지 큐(Message Queue)와 Kafka

대규모 시스템에서는 데이터 처리를 효율적으로 관리하기 위해 메시지 큐(Message Queue, MQ)를 사용합니다. 메시지 큐는 다양한 구현체가 있으며, 그중에서도 Apache Kafka는 가장 널리 사용되는 분산 메시징 시스템 중 하나입니다. 이 글에서는 메시지 큐의 개념과 Kafka의 내부 구조 및 동작 방식을 깊이 있게 살펴보겠습니다.  1. 메시지 큐(Message Queue)란?메시지 큐는 생산자(Producer)가 보낸 메시지를 소비자(Consumer)가 받아 처리하는 비동기 방식의 통신 시스템입니다.이 방식은 여러 시스템이 독립적으로 동작할 수 있도록 하며, 부하 분산(Load Balancing)과 비동기 처리(Asynchronous Processing)를 가능하게 합니다.  메시지 큐의 ..

DevOps 2025.02.26

대용량 데이터 처리 방식 과 흐름

1. 코드 실행 순서 및 구조대용량 데이터를 처리하는 방식은 일반적으로 다음과 같은 단계를 거칩니다.데이터 로드 (Load Data)데이터베이스, 파일, API, 메시지 큐(Kafka 등)에서 데이터를 읽어옵니다.데이터 분할 (Partitioning)전체 데이터를 한 번에 처리하면 성능이 저하되므로, 여러 개의 작은 청크(batch)로 나눕니다.병렬 처리 (Parallel Processing)각 청크를 개별 스레드에서 병렬로 처리합니다.스레드 풀(Thread Pool)을 활용하여 일정 개수의 스레드만 실행되도록 제어합니다.비동기 실행 (Asynchronous Execution)비동기 방식으로 데이터를 처리하여 블로킹(blocking)을 최소화합니다.데이터 저장 (Save Data)처리된 데이터를 데이터베..

업무 기록/ETC 2025.02.23

스레드 개수 설정 및 성능 최적화와 방법들

1. 스레드란? 스레드는 프로그램에서 실행되는 가장 작은 단위의 작업 흐름입니다. 여러 개의 스레드를 사용하면 병렬 처리를 통해 성능을 향상시킬 수 있습니다. CPU가 여러 개의 스레드를 동시에 실행할 수 있기 때문에, 적절한 개수의 스레드를 사용하면 응답 속도를 개선하고 자원을 효율적으로 활용할 수 있습니다.  스레드 개수 설정 방법 및 적정 개수 판단 방법비동기 작업에서 스레드 풀(ThreadPool) 크기를 설정할 때,*"최적의 스레드 개수"**를 결정하는 것은 매우 중요한데, 이를 판단하는 방법을 설명할게요. 1. 스레드 개수 설정 기준 (CPU vs. I/O 작업에 따라 다름)스레드 개수를 설정할 때는 어떤 종류의 작업을 처리하는지에 따라 다르게 결정해야 함.작업 유형 설명 스레드 개수 설정 방..

업무 기록/ETC 2025.02.20

Spring Boot 비동기 처리(@Async)로 성능 향상 원리와 동기/비동기

1. 코드 작동 방식 이 코드는 이미지 다운로드 및 변환 작업을 비동기적으로 실행하는 역할을 합니다. 실행 흐름1. 클라이언트가 processImage(imageUrl)을 호출2. @Async가 적용된 메서드이므로 새로운 스레드에서 실행3.  메서드 실행 후 즉시 CompletableFuture 객체를 반환 (메인 스레드 블로킹 없음)4.  백그라운드에서 downloadAndProcessImage(imageUrl) 실행5.  작업 완료 후 processedImageUrl을 반환2. 비동기 성능 향상 원리 (동기 vs. 비동기)구분 동기 처리 (Synchronous) 비동기 처리 (Asynchronous)실행 방식하나의 작업이 끝날 때까지 대기여러 작업을 동시에 실행스레드단일 스레드에서 순차 실행별도의 스..

Spring 2025.02.19

프로젝트 : CDN과 24년 선거 대비 자체 이미지 서버 개발 및 최적화

CDN(Content Delivery Network) 적용 및 운영 경험CDN은 전 세계 여러 지역에 분산된 엣지 서버(Edge Server)를 통해 사용자에게 정적 및 동적 컨텐츠를 빠르고 안정적으로 전달하는 기술입니다. 대규모 트래픽을 효율적으로 분산하고, 웹사이트의 로딩 속도를 단축하며, 서버 부하를 줄이는 데 중요한 역할을 합니다. 프로젝트 배경24년 선거 기간 중 Kakao, RCS, MMS 메시지 대량 발송 시 서버 다운 및 전송 속도 저하 문제 발생 가능성기존 메시지 서버에서 이미지 트래픽이 혼합되어 처리되면서 부하 급증트래픽 폭증에도 안정적으로 이미지 전송을 처리할 수 있는 독립적인 이미지 서버 필요 주요 개발 내용자체 이미지 서버 설계 및 구축메시지 본문과 이미지 트래픽을 분리하여 전용 ..

구글 애널리틱스 활용 웹 개발 적용

구글 애널리틱스란?구글 애널리틱스는 웹사이트의 트래픽과 사용자 행동을 분석할 수 있는 무료 웹 분석 도구입니다. 웹사이트에 방문하는 사용자들의 행동, 유입 경로, 체류 시간 등 다양한 데이터를 수집하고 분석할 수 있습니다. 주요 기능과 특징1. 실시간 모니터링현재 웹사이트를 방문 중인 사용자 수사용자들이 보고 있는 페이지사용자의 지리적 위치     2. 사용자 행동 분석페이지별 방문 시간이탈률과 전환율사용자의 이동 경로 3. 트래픽 소스 분석유입 경로(검색엔진, 소셜미디어, 직접 방문 등)검색어 분석캠페인 효과 측정 왜 구글 애널리틱스인가?개발한 프로젝트는 다양한 메시징 서비스를 제공하는 플랫폼입니다. 이런 복잡한 서비스에서는 사용자들이 어떤 기능을 주로 사용하는지, 어떤 부분에서 어려움을 겪는지 파악하..

DevOps 2025.02.12

프로그래머스 코딩 기초 트레이닝 Python Day16 ~ Day25

DAY16 문자열 대문자로 바꾸기def solution(myString): return myString.upper()테스트:print(solution("aBcDeFg"))# "ABCDEFG"print(solution("AAA"))# "AAA"설명:upper() 메서드는 문자열의 모든 알파벳을 대문자로 변환이미 대문자인 경우는 그대로 유지됨 소문자로 바꾸기def solution(myString): return myString.lower()테스트:print(solution("aBcDeFg"))# "abcdefg"print(solution("aaa"))# "aaa"설명:lower() 메서드는 문자열의 모든 알파벳을 소문자로 변환이미 소문자인 경우는 그대로 유지됨 배열에서 문자열 대소문자 변환하기def ..

프로그래머스 코딩 기초 트레이닝 Python Day6 ~ Day15출처

DAY6 조건문 반복문 마지막 두 원소def solution(num_list):# 마지막 원소와 그 전 원소 비교 if num_list[-1] > num_list[-2]:# 마지막 원소가 더 크면 그 차이를 추가 num_list.append(num_list[-1] - num_list[-2]) else:# 마지막 원소가 더 크지 않으면 마지막 원소의 두 배를 추가 num_list.append(num_list[-1] * 2) return num_list설명:리스트의 마지막 원소와 그 전 원소 비교:num_list[-1]은 마지막 원소num_list[-2]는 마지막에서 두 번째 원소조건에 따른 값 추가:마지막 원소가 더 크면: 두 원소의 차이를 추가마지막 원소가 더 크..

레거시 프로젝트 장애 처리 ORA-00001

[장애발생]기존 회사에는 20년이 넘은 메세지 관리자 레거시 프로젝트가 남아있다. 최근 해당 코드는 아에 업데이트를 하지않고 일부 계정만 사용을 하는데 관리자가 계정등록이 안된다는 메일을 확인하였다. 해당 계정이 등록되지 않은 이유는 0.1초 사이에 클릭이 2번 연속 되어 해당 DB에 값을 넣는 중 2번 넣어서 발생하는 문제였다. TBL_STAT_CONFIG -> TBL_ROUTING -> TBL_CPINFO -> TBL_DETAIL_CPINFO                                                 TBL_STAT_CONFIG -> TBL_ROUTING -> TBL_CPINFO -> TBL_DETAIL_CPINFO 이런식으로 디비에 값이 들어가는 중 중복으로 값이 들어가는..

Error 2025.02.06

프로그래머스 코딩 기초 트레이닝 Python Day1 ~ Day5

DAY 1문자열 출력str = input()print(str) a, b 출력a, b = map(int, input().strip().split(' '))print("a =", a)print("b =", b)a, b = map(int, input().strip().split(' '))input(): 사용자로부터 문자열을 입력받습니다.strip(): 입력된 문자열의 앞뒤 공백을 제거합니다.split(' '): 문자열을 공백을 기준으로 나누어 리스트로 만듭니다map(int, ...): 리스트의 각 문자열을 정수로 변환합니다a, b = ...: 변환된 두 정수를 변수 a와 b에 각각 할당합니다예시: 입력이 "4 5"인 경우"4 5" (입력) → "4 5" (strip) → ["4", "5"] (split) → ..

데이터베이스 종류 와 선택(PostgreSQL,MySQL,MongoDB,Redis,Elasticsearch,Cassandra,Neo4j)

왜 데이터베이스 선택이 중요할까요?데이터베이스는 애플리케이션의 근간을 이루는 핵심 요소입니다. 잘못된 선택은 나중에 돌이키기 어려운 문제를 초래할 수 있습니다. 예를 들어, SNS 서비스를 만든다고 가정해보겠습니다. 관계형 데이터베이스만을 고집하다가 나중에 대용량 트래픽을 감당하지 못하는 상황이 발생할 수 있습니다. 반대로, NoSQL을 선택했는데 데이터의 일관성이 중요해지는 경우도 있을 수 있죠.  데이터베이스의 종류와 특징관계형 데이터베이스 (RDBMS)PostgreSQL과 MySQL은 가장 널리 사용되는 관계형 데이터베이스입니다. 이들은 데이터의 일관성과 무결성이 중요한 상황에서 탁월한 선택이 됩니다.PostgreSQL기업용 데이터베이스의 강자입니다. 복잡한 쿼리 처리, 트랜잭션 관리가 필요한 금융..

DB 2024.11.27

코틀린 디자인 패턴과 아키텍처

1. 디자인 패턴이란? 🤔1.1 쉬운 비유로 이해하기디자인 패턴은 집을 지을 때 사용하는 설계도와 같습니다:검증된 방법으로 문제 해결유지보수가 쉬워짐다른 개발자들과 소통이 쉬워짐예를 들어, 아파트를 지을 때 주방, 화장실, 거실의 위치를 계획하는 것처럼, 앱을 만들 때도 각 부분의 역할과 위치를 계획합니다.2. MVVM 패턴 🏗️2.1 MVVM이란?쉽게 설명하면, 앱을 세 부분으로 나누는 방법입니다:Model: 데이터View: 화면ViewModel: 데이터를 화면에 맞게 가공2.2 실생활 비유레스토랑으로 비유하면:Model: 주방에서 요리하는 셰프 (데이터 처리)View: 손님이 보는 메뉴판과 음식 (화면)ViewModel: 주문을 받고 전달하는 웨이터 (중간 역할)2.3 간단한 예제// Model:..

Kotlin 2024.11.26

코틀린(Kotlin)데이터 클래스와 sealed 클래스

1. 데이터 클래스 (Data Class) 📦1.1 데이터 클래스란?데이터 클래스는 데이터를 보관하고 전달하는 것이 주 목적인 클래스입니다. 일반적으로 다음과 같은 상황에서 사용됩니다:API 응답 데이터 모델링// API 응답을 표현하는 데이터 클래스data class UserResponse( val id: Int, val name: String, val email: String, val age: Int)UI 상태 표현// 화면에 표시할 사용자 정보를 담는 데이터 클래스data class UserUiState( val userName: String, val userImage: String, val followersCount: Int, val isFollowin..

Kotlin 2024.11.25

React와 Next.js 란?

# 실생활 비유로 이해하기Next.js를 레스토랑에 비유하면:React는 요리사: UI 컴포넌트를 만듦Next.js는 레스토랑 전체 시스템:주문 접수 (라우팅)주방 관리 (서버 사이드 렌더링)서빙 (페이지 전달)매장 관리 (최적화) 등을 모두 관리 1. React란? 🎯1.1 React 소개React는 Facebook(현 Meta)에서 만든 JavaScript 라이브러리로, 사용자 인터페이스(UI)를 만들기 위한 도구입니다.1.2 React의 특징1) 컴포넌트 기반웹사이트를 레고 블록처럼 작은 조각(컴포넌트)으로 나누어 개발합니다.// 버튼 컴포넌트 예시function Button({ text, onClick }) { return ( {text} );}// 사용 예시funct..

Next.js 2024.11.24

Hibernate 란?? (주요특징, 아키텍쳐, 장단점 등)

1. Hibernate의 기본 개념 🌟 실생활 비유:통역사가 두 나라 사람의 대화를 돕는 것처럼Hibernate는 Java/Kotlin 객체와 데이터베이스 사이의 '통역사' 역할1.1 ORM이란?정의: Object-Relational Mapping의 약자역할: 객체 지향 프로그래밍과 관계형 데이터베이스 사이의 다리 역할작동 방식: 자바/코틀린 객체를 데이터베이스 테이블로 자동 매핑1.2 실생활 비유레스토랑 시스템으로 비유하면:테이블(Table) = 메뉴 카테고리로우(Row) = 개별 메뉴 항목컬럼(Column) = 메뉴의 속성(이름, 가격, 설명 등)Hibernate = 주방과 홀을 연결하는 서빙 직원 2. Hibernate 아키텍처 🏗️2.1 주요 컴포넌트 Session Factory ..

DB 2024.11.23

개발자와 비개발자와의 효과적인 협업 가이드: 소통의 벽을 허물다

1. 서론: 왜 협업이 어려운가? 🤔개발자와 비개발자 사이에는 종종 '소통의 벽'이 존재합니다. 이는 단순히 기술적 지식의 차이가 아닌, 서로 다른 관점과 용어, 우선순위에서 비롯됩니다.흔한 오해와 어려움개발자: "요구사항이 자주 변경되고 모호해요."비개발자: "왜 이렇게 개발이 오래 걸리나요?"개발자: "기술적 제약을 이해하지 못하시네요."비개발자: "개발자가 비즈니스를 이해하지 못해요." 2. 효과적인 소통 전략 💬2.1 전문 용어 사용 줄이기❌ 나쁜 예:"REST API 엔드포인트를 구현하고 JWT 인증을 추가했습니다."✅ 좋은 예:"로그인 기능을 만들고 보안 기능을 추가했습니다."2.2 시각적 자료 활용와이어프레임플로우차트프로토타입간단한 데모2.3 단계적 설명1단계: 큰 그림 설명2단계: 주요..

업무 기록/ETC 2024.11.22

Kotlin(코틀린) FLow 란?

1. Flow란? 🌊Flow는 시간이 지남에 따라 여러 값을 발행할 수 있는 데이터 스트림입니다.Flow는 코틀린에서 제공하는 비동기 스트림 처리를 위한 API입니다. RxJava의 Observable이나 LiveData와 유사하지만, 코루틴을 기반으로 하며 더 간단하고 효율적인 API를 제공합니다.쉽게 설명하면:실시간으로 업데이트되는 주식 가격 알림타이핑할 때마다 바뀌는 검색 결과SNS의 실시간 피드 업데이트 같은 것들을 처리할 때 사용합니다.1.1 Flow의 특징비동기적으로 데이터 스트림 처리Cold Stream 특성 (구독할 때만 데이터 발행)코루틴 기반의 백프레셔(Backpressure) 지원구조화된 동시성 제공1.2 기본 사용 예제fun simple(): Flow = flow { for ..

Kotlin 2024.11.21

Kotlin(코틀린) 코루틴으로 비동기 프로그래밍

Kotlin의 강력한 기능 중 하나인 코루틴(Coroutines)에 대해 자세히 알아보도록 하겠습니다. 비동기 프로그래밍을 쉽고 효율적으로 구현할 수 있는 코루틴의 기본 개념부터 실전 활용법까지 살펴보겠습니다.1. 코루틴이 뭔가요? 🤔코루틴은 비동기 프로그래밍을 위한 코틀린의 솔루션입니다. 기존의 콜백이나 Future/Promise 패턴의 복잡성을 줄이고, 동시성 프로그래밍을 더욱 직관적으로 작성할 수 있게 해줍니다.실생활 비유로 이해하기식당에서 일하는 웨이터를 생각해봅시다. 웨이터가 한 테이블의 주문을 받고 주방에 전달한 후, 음식이 나올 때까지 그 자리에서 기다린다면 어떨까요? 매우 비효율적이겠죠! 실제로는 주문을 전달한 후 다른 테이블의 손님도 응대합니다.코루틴도 이와 같습니다! 시간이 오래 걸리..

업무 기록/ETC 2024.11.20

코틀린이란? (Kotlin)

1. 코틀린이란? 🎯코틀린(Kotlin)은 JetBrains사가 2011년에 공개한 현대적인 프로그래밍 언어입니다. Java 플랫폼에서 완벽하게 동작하면서도, 더 간결하고 안전한 코드 작성을 가능하게 하는 실용적인 언어입니다.1.1 코틀린의 탄생 배경JetBrains의 필요성: 자사 제품 개발에서 Java의 한계를 느낌현대적 기능 요구: 함수형 프로그래밍, Null 안전성 등 필요생산성 향상: 보일러플레이트 코드 감소 목적Java와의 호환성: 기존 Java 자산 활용 필요 Java vs Kotlin 코드 비교Java 코드:public class Person { private String name; private int age; public Person(String name, int ag..

Kotlin 2024.11.19

ELK 란? (Elasticsearch , Logstash , Kibana, Beats ) 스택

회사에서 메세지 발송 간 ELK를 활용한 메세지 발송 처리량, 성공, 지연, 문제 등을 실시간으로 시각화하면서 배운 내용을 정리해보기로 하였다. ELK란?ELK는 세 가지 오픈소스 도구의 조합입니다:Elasticsearch (E): 검색 및 분석 엔진Logstash (L): 데이터 수집 및 처리 도구Kibana (K): 데이터 시각화 도구쉽게 비유하면:Logstash는 정보를 수집하는 '청소부'Elasticsearch는 수집된 정보를 저장하고 검색하는 '창고'Kibana는 저장된 정보를 보기 좋게 보여주는 '전시장' # Beats란?Beats는 서버에 설치하여 다양한 유형의 데이터를 Elasticsearch나 Logstash로 전송하는 경량 데이터 수집기입니다. 각각의 Beat는 특정 유형의 데이터 수집..

DevOps 2024.11.18

[Python/AI] Hugging Face 감정 분석 웹 애플리케이션 코드 분석 - 2편

0.전체 코드https://hunseop2772.tistory.com/373 [Python/AI] Hugging Face와 Streamlit으로 구현하는 감정 분석 웹 애플리케이션 -1편 코드개요이번 포스팅에서는 Hugging Face의 Transformers 라이브러리와 Streamlit을 활용하여 감정 분석 웹 애플리케이션을 구현하는 방법을 다룹니다. 프로덕션 레벨의 코드 구조와 실제 구현 방법에 중점을hunseop2772.tistory.com 1. 프로젝트 아키텍처 분석1.1 전체 구조sentiment_analysis/├── src/│ ├── analyzer.py # 핵심 감정 분석 로직│ ├── utils.py # 유틸리티 함수│ └── app.py # ..

LLM(Open AI) 2024.11.17

[Python/AI] Hugging Face와 Streamlit으로 구현하는 감정 분석 웹 애플리케이션 -1편 코드

개요이번 포스팅에서는 Hugging Face의 Transformers 라이브러리와 Streamlit을 활용하여 감정 분석 웹 애플리케이션을 구현하는 방법을 다룹니다. 프로덕션 레벨의 코드 구조와 실제 구현 방법에 중점을 두어 설명하겠습니다.기술 스택Python 3.8+Hugging Face TransformersStreamlitPyTorchVS Code프로젝트 구조sentiment_analysis/├── .vscode/ # VSCode 설정│ └── settings.json├── src/ # 소스 코드│ ├── __init__.py│ ├── analyzer.py # 감정 분석 핵심 로직│ ├── utils.py ..

LLM(Open AI) 2024.11.16

Hugging Face 회원가입, 토큰 발급, APIKEY 발급 방법, 개발 환경 설정

허깅페이스란? 어원? https://hunseop2772.tistory.com/371 NLP와 Hugging Face 란 어원 등 사용법🌟 AI가 언어를 이해한다는 것상상해보세요. 여러분의 스마트폰이 "배고파"라는 메시지를 받았을 때, 가까운 맛집을 추천해주거나, 긴 문서를 몇 줄로 요약해주거나, 외국어를 실시간으로 번역hunseop2772.tistory.com  1️⃣ Hugging Face 계정 만들기 Step 1: 회원가입웹사이트 접속huggingface.co 방문우측 상단 'Sign Up' 클릭 필수 정보 입력Username: 영문/숫자 조합 (예: john_doe123)Email: 실제 사용하는 이메일Password: 8자 이상, 특수문자 포함이메일 인증인증 메일 확인링크 클릭하여 인증 완료 ..

LLM(Open AI) 2024.11.15

NLP와 Hugging Face 란 어원 등 사용법

🌟 AI가 언어를 이해한다는 것상상해보세요. 여러분의 스마트폰이 "배고파"라는 메시지를 받았을 때, 가까운 맛집을 추천해주거나, 긴 문서를 몇 줄로 요약해주거나, 외국어를 실시간으로 번역해주는 상황을... 이것이 바로 자연어 처리(NLP)의 마법입니다. NLP란 무엇일까요?자연어 처리(Natural Language Processing, NLP)는 컴퓨터가 인간의 언어를 이해하고 처리하는 기술입니다. 쉽게 말해서:카카오톡 자동 답장 추천네이버 검색어 자동 완성유튜브 자막 자동 생성 이 모든 것이 NLP 기술입니다. 🤗 Hugging Face의 이름과 역사이름의 유래Hugging Face라는 이름은 아이폰의 이모지 '🤗' (hugging face 이모지)에서 왔습니다. 이 이모지는 포옹하는 얼굴을 나타..

LLM(Open AI) 2024.11.14

React 애플리케이션의 고급 권한 관리 시스템 구현하기: 실제 코드와 주석으로 이해하기

0. React 애플리케이션의 권한 관리 시스템 흐름도초기 접근 프로세스사용자 접근토큰 확인토큰 유효성 검사권한 검증기능별 권한 검증 프로세스CRUD 작업별 권한 확인권한에 따른 UI 요소 표시/숨김기능 실행 전 권한 재확인에러 처리 프로세스권한 없음 처리토큰 만료 처리리프레시 실패 처리1. 소개안녕하세요! 오늘은 프로덕션 레벨의 React 애플리케이션에서 권한 관리 시스템을 어떻게 구현하는지, 상세한 코드와 주석을 통해 알아보겠습니다.2. 권한 관리의 핵심 구조2.1 withAuth HOC (Higher-Order Component)/** * 권한 검증을 위한 Higher-Order Component *@paramgssp - getServerSideProps 함수 *@paramrequiredPermis..

Next.js 2024.11.13