no image
LLM
1-1. LLM 은 무엇인가?LLM(Large Language Model)언어 모델(Language Model) : 어린 아이에게 글을 가르치듯이 컴퓨터에게 어떻게 말을 하고 글을 쓰는 지 가르치는 것과 같음🌟 언어 모델의 발전과 관련하여 몇 가지 변곡점 존재 1-1-1. 언어 모델통계적 언어 모델초기 모델 : 통계적 방법에 기반컴퓨터가 문장이나 단어를 얼마나 자연스럽게 표현하는가언어 모델에서의 확률/통계적 방법n-gram: 일련의 단어나 문자가 얼마나 자주 함께 나타나는가.💡 이때, n은 연속적으로 고려되는 단어의 수를 말한다. 1-gram(유니그램) : 전체 문장을 각각의 단어로 나눔e.g. The / cat/ sat/on/the/mat2-gram(바이그램) : 전체 문장을 두 단어씩 나눔e.g...
2024.05.27
no image
알쓸 정규표현식
웹 프로그래밍을 위한 정규표현식 | 모두의 코딩:두딩 - 인프런 웹 프로그래밍을 위한 정규표현식 | 모두의 코딩:두딩 - 인프런모두의 코딩:두딩 | 웹 프로그래밍에서 사용자의 입력값을 검증하기 위해 정규표현식이 필요하신가요?, 정규표현식(regular-expressions)은 선택이 아닌 필수우리는 프로그래밍 과정에서 정말 다양한www.inflearn.com 강의 수강 배경때는 지난해 말로 거슬러 올라가는데. .당시 맡았던 업무가 중고거래 서비스에서 FDS(이상 거래 탐지 시스템)을 개발하는 팀에서 유저들의 채팅 분석을 통한 사기 채팅 감지였다.계좌 번호를 이상하게 보내서 사기 의심 API를 교묘하게 피해가는 선례가 있었고, 이러한 사용자들을 가려내기 위해 채팅 내역에서 계좌 번호를 추출해야했다.→ 이때..
2024.05.07
no image
KMP 문자열 탐색
KMP : 크누스 - 모리스 - 프랫 어쩌구. 이전 단계에서 검사했던 결과를 버리지 않고 효율적으로 활용하는 알고리즘 검사했던 결과를 버리지 않고 효율적으로 활용하는 알고리즘 불일치가 발생하기 직전까지 같았던 부분은 다시 비교하지 않고 패턴 매칭을 진행 비교 횟수를 줄여, 검색 알고리즘의 효율성을 높임 검사 부분 내에 패턴의 일부와 동일한 부분이 있는지 판단 그 위치만큼 밀기 텍스트와 패턴 안에서 겹치는 문자열을 찾아내 검사를 다시 시작할 위치를 구해, 패턴의 이동을 최대한 크게 한다. KMP 테이블 생성 패턴과 패턴을 서로 겹치도록 맞추고 검사를 시작할 곳을 테이블에 작성한다. 미리 나온 패턴에 대해 겹치는 부분이 있는 지 검사한다. KMP 법에서 사용하는 패턴 문자열 만들기 접두사 배열과 접미사 배열..
2024.04.04
no image
[AWS/DynamoDB] Backup / Modeling & Migration
PITR 특정 시점 복구 실수로 인한 쓰기 또는 삭제 작업으로 부터의 테이블 보호 디폴트 값은 false로 유지 최근 35일에 대한 백업본 저장 동일한 리전 또는 백업본을 위한 다른 리전으로 복원도 가능 On - Demand Backup DynamoDB 백업 삭제 지시까지 영원히 유지 특정 시점에 대한 직접적인 백업본 생성 가능 Schedule Backup AWS Bakcup 에서 Backup vault 생성 필요 생성한 Backup vault에 따라 dbBackupPlan 세우기 DynamoDB에는 현재 Cold Storage 지원 ❌ 예약된 작업에 대한 확인 Amazon DynamoDB Workshop & Labs 백업 제한에 대한 IAM 권한 설정 가능 { "Version": "2012-10-17"..
2024.02.01
no image
[모던 자바 인 액션] 2. 동작 파라미터화 코드 전달하기
우리가 어떤 상황에서 일을 하든 소비자 요구사항은 항상 바뀐다. ⇒ 변화하는 요구사항은 불가피한 문제 ❓변화하는 요구사항의 대처 엔지니어링적인 비용 최소화 새로 추가한 기능 → 쉽게 구현 장기적인 관점 → 유지보수 용이 동작 파라미터화(behavior parameterization) 자주 바뀌는 요구사항에 효과적으로 대응 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록⇒ 코드 블록의 실행은 나중으로 미뤄진다. ⇒ 나중에 프로그램에서 호출 e.g. 나중에 실행될 메서드의 인수로 “코드 블록”을 전달 ⭐ 메서드의 동작이 파라미터화된다. - 리스트의 모든 요소에 대해서 ‘어떤 동작’을 수행 - 리스트의 관련 작업을 끝낸 다음에 ‘어떤 다른 동작’을 수행할 수 있음 - 에러가 발생하면 ‘정해진 어떤 다른 ..
2024.01.29
no image
[AWS/EFS, API Gateway, Lambda] 비디오 서버 서버리스로 마이그레이션 하기
- 2023년 8월 인턴 업무를 진행하며 IaaS 아키텍처를 FaaS 아키텍처로 바꾸면서 개발팀 내부에 공유했었던 문서를 각색하여 작성하였습니다. - Fast API 프로젝트에서 서버리스로 마이그레이션하기 위한 방식을 적은 포스팅으로, 본 포스팅은 FastAPI + AWS 환경에서 배포를 진행하는 프로젝트에 최적화되어 있습니다. 🧍🏻Intro 현재 상황 서버 측에 비디오 처리 요청 시, 한번에 하나의 작업만을 처리하여 워크로드가 많이 듦 문제 상황 재현 클라이언트가 Merge 작업을 요청하고 해당 작업을 취소 coroutine_tasks 를 통한 Moviepy 작업 수행 🚨 문제 상황 발생 코루틴의 작업 처리 대기 중 연결 취소 → 큐에 쌓인 채 작업 처리 대기 이미 취소된 작업임에도 큐에 남아있어서 다..
2024.01.28
no image
[모던 자바 인 액션] 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가?
자바 역사를 통틀어 가장 큰 변화가 자바 8에서 일어났다. 1.1 역사의 흐름은 무엇인가? 자바 8을 이용하면 자연어에 더 가깝게 간단한 방식으로 코드를 구현할 수 있다. 지금까지의 대부분의 자바 프로그램은 코어 중 하나만을 사용했다. 나머지 코어는 유휴 idle 상태로 두거나, 운영체제나 바이러스 검사 프로그램과 프로세스 파워를 나눠서 사용 자바 8 등장 이전 : 나머지 코어 활용 → 스레드 스레드 사용은 관리가 어렵고 많은 문제가 발생할 수 있음 자바 1.0 : 스레드, 락, 메모리 모델 지원 자바 5 : 스레드 풀(thread pool), 병렬 실행 컬렉션(concurrent collection) 자바 7 : 포크/조인 프레임워크 자바 8 : 스트림 API, 동작 파라미터화, 인터페이스의 디폴트 메..
2024.01.25
no image
[AWS/DynamoDB] Explore DynamoDB with the CLI
READ Sample DATA Scan API 전체 테이블 스캔 1MB 청크로 항목 리턴 DynamoDB JSON 형식 사용 aws dynamodb scan --table-name ProductCatalog GetItem API 단일 항목만 읽기 전체 기본키를 지정해야함 Dynamo DB의 읽기 : 최종 일관성 사용 💡 Read Consistency - 읽기 일관성(읽기 정합성) 읽기를 진행하는 데이터 : 테이블 / LSI / GSI / 스트림 데이터 테이블, LSI 모두 eventual consistency(최종 일관성), strongly consistent(강한 일관성) 지원 다양한 옵션 -consistent-read : Specifying that you want a strongly consiste..
2024.01.21
[AWS/DynamoDB] Overview
완전관리형 NoSQL DB서비스 하드웨어 프로비저닝, 구성 및 설정, 복제, 패치, 클러스터 스케일링 등을 신경쓸 필요가 없다. KMS를 이용한 Key관리 지원을 통한 보안 강화도 도모함 DB 테이블 DynamoDB 자동으로 AWS 리전별로 데이터를 AZ 3곳에 복제하여 저장 하나 장애가 발생하여 정지해도 DB 정상 사용 가능 → ⭐ 고가용성 높은 가용성 및 지속성 제공 따로 데이터 백업 필요 ❌ AWS S3와 같이 저장 용량은 무제한 데이터 형식 Scalar Data types : Number, String, Binary Multi-valued types : Number Set, String Set, Binary Set Primary Key 해시키 : 고유값 해키키 + 범위키 :정렬 / 범위 값 / 모..
2024.01.17