1. LLM이란 무엇인가? 정의 Large Language Model = 대규모 언어 모델 엄청난 양의 텍스트로 학습한 파라미터가 수백억~조 개인 언어를 이해하고 생성하는 AI 모델 본질 “다음 단어 예측"을 극한까지 잘하는 모델 입력: "오늘 날씨가 정말" LLM: "좋네요" (가장 자연스러운 다음 단어 선택) → 이 단순한 원리로 대화, 요약, 번역, 코딩까지 가능 2. LLM = 딥러닝의 한 종류 AI 기술 계층도 AI └─ 머신러닝 ├─ 전통 머신러닝 └─ 딥러닝 └─ Transformer └─ LLM ← 여기 LLM의 위치 AI의 일부 딥러닝의 일부 Transformer 기반 현재 가장 주목받는 분야 Multimodal 확장 최근 트렌드: ...
머신러닝 개념 정리
1. 머신러닝 전체 프로세스 단계 전통 머신러닝 딥러닝 1. 원본 데이터 텍스트, 이미지, 표 등 텍스트, 이미지, 표 등 2. 분할 텍스트→토큰, 이미지→픽셀, 음성→프레임 텍스트→토큰, 이미지→픽셀, 음성→프레임 3. 벡터화 숫자로 변환 (ID, RGB, 정규화) 숫자로 변환 (ID, RGB, 정규화) 4. Feature 추출 사람이 설계 (고정)- 긍정단어 개수- 부정단어 개수- 느낌표 개수 - 5. 학습 초기화 랜덤 Parameter 랜덤 Parameter 6. 순전파 Feature × Parameter = 예측 벡터화된 입력 × Parameter→ Layer별 Feature 자동 생성→ 예측 7. 손실 계산 정답과 비교 정답과 비교 8. 역전파 Parameter 조정 Parameter 조정→ Feature 표현도 변화 9. 반복 68 반복 (수백만수억 회) 68 반복 (수백만수억 회) 10. 학습된 모델 고정 Feature + 학습된 Parameter 학습된 Parameter(Feature 표현 내장) 11. 추론: 전처리 분할 + 벡터화 분할 + 벡터화 12. 추론: Feature 같은 방식으로 Feature 추출 학습된 모델로 자동 생성 13. 추론: 예측 학습된 Parameter로 계산 학습된 Parameter로 계산 14. 예측 결과 출력 출력 2. 핵심 용어 완전 정리 데이터 (Data) 원본 정보 ...
AI 개념 정리
1. AI 영역 구분 1번: AI 모델 개발 직접 머신러닝으로 모델 학습 추천, 예측 등 자체 모델 제작 시간/비용 많이 들고, 전문 인력 필요 2번: AI 기능 통합 외부 LLM API 활용 (GPT, Claude) 서비스에 챗봇, 요약, 검색 등 추가 빠르고, 기존 개발자가 가능 3번: AI 도구 사용 Claude Code, Copilot으로 개발 효율화 AI는 보조 도구 2. 데이터 마이닝 ↔ AI 관계 데이터 마이닝 AI (패턴/인사이트 발견) (지능적 판단·행동) ╲ ╱ ╲ ╱ ╲ ╱ ╲ ╱ 머신러닝 설명 데이터 마이닝: “왜 이런 일이 일어나는가?” (패턴 발견) AI: “이 상황에서 뭘 해야 하는가?” (문제 해결) 머신러닝: AI의 한 분야이자, 데이터 마이닝에서 활용되는 핵심 도구 예시 데이터 마이닝: 고객 데이터 분석 → “금요일 저녁 맥주+치킨 많이 팔림” 발견 AI: 고객 접속 시 → “이 사람에게 맥주 추천” 자동 판단 3. AI의 기술 체계 AI의 목적 지능적 판단·계획·행동으로 문제 해결 예측은 그 중 한 수단일 뿐 AI (지능적으로 판단·계획·행동하여 문제 해결) ├─ 규칙 기반 AI (if-then 로직) ├─ 탐색/최적화 알고리즘 └─ 머신러닝 ← 요즘 AI의 핵심 (특히 딥러닝) ├─ 전통 머신러닝 (SVM, 랜덤포레스트 등) └─ 딥러닝 ├─ CNN (이미지 인식) ├─ RNN (시계열 처리) └─ Transformer (2017~) ├─ BERT (양방향 이해) └─ LLM (대규모 언어모델) ← 요즘 가장 주목받는 분야 └─ GPT, Claude, Gemini 4. 머신러닝의 학습 방식 머신러닝 (데이터로 모델 학습) ├─ 지도 학습 (정답 있는 데이터로 학습) ├─ 비지도 학습 (정답 없이 패턴 찾기) └─ 강화 학습 (시행착오로 학습) 5. 핵심 프로세스 학습 데이터 → [학습/Training] → 모델 입력 데이터 → [추론/Inference] → 결과 6. 시대별 “AI"의 의미 1980년대: AI = 규칙 기반 한계에 부딪힘 (AI의 겨울) 2000년대: AI = 머신러닝 데이터 → 특징 → 학습 → 모델 → 추론 딥러닝 이론 존재, 컴퓨팅 파워 부족 2010년대: AI = 딥러닝 GPU 발달 2012 ImageNet: CNN으로 이미지 인식 돌파 2017 Transformer 등장 2020년대: AI ≈ LLM (대중 인식) ChatGPT, Claude 등의 폭발적 성장 7. 핵심 용어 정리 AI (인공지능) 지능적으로 판단·계획·행동하여 문제 해결 요즘은 사실상 머신러닝 의미로 많이 씀 머신러닝 (기계학습) 데이터로 기계를 학습시킴 AI 구현에 성공한 방법 데이터 마이닝과 AI가 공유하는 핵심 도구 딥러닝 신경망을 깊게 쌓은 것 특징을 자동으로 학습 (사람이 특징 정의 불필요) GPU 발달로 2010년대 실용화 Transformer 2017년 등장한 딥러닝 아키텍처 병렬 처리가 가능해서 대규모 학습에 유리 LLM (Large Language Model) Transformer 기반 대규모 언어 모델 ChatGPT, Claude 등 AI 중 일부지만 최근 2-3년 폭발적 유행 데이터 마이닝 데이터에서 패턴/인사이트 찾기 머신러닝을 도구로 활용
MySQL vs Oracle: 커서(Cursor) 동작 방식 비교
TL;DR MySQL과 Oracle은 서버 커서 구현 방식이 근본적으로 다름 MySQL: 임시 테이블 생성하여 전체 결과 저장 Oracle: PGA 메모리에서 커서 상태만 유지하고 필요한 만큼 페치 “클라이언트 사이드 커서"는 MySQL에서 공식 용어가 아님 MySQL: 클라이언트 버퍼링, 스트리밍, 서버 커서 3가지 방식 제공 1. 커서란 무엇인가 데이터베이스 커서는 쿼리 결과를 순차적으로 처리하기 위한 메커니즘입니다. 대용량 결과를 한 번에 메모리로 로드하지 않고, 필요한 만큼만 가져와서 처리할 수 있게 해줍니다. 데이터베이스에서는 결과를 처리하는 위치에 따라 서버 커서와 클라이언트 커서으로 구분할 수 있습니다. ...
바이브 코딩을 넘어서 - 기획 영역에서의 AI 활용
코딩 영역에서 시작된 자연어 기반 AI 협업이 기획 영역에도 적용되고 있습니다. 바이브 코딩이 자연어로 코드를 작성하는 방식이라면, 기획에서는 자연어로 사용자 스토리, 제품 요구사항, 기능 명세서를 생성하는 방식입니다. AI가 효과적인 기획 작업 1. 사용자 스토리 작성 표준 형식의 사용자 스토리를 빠르게 생성할 수 있습니다. "로그인 기능에 대한 사용자 스토리를 작성해줘. 이메일/비밀번호 방식과 소셜 로그인 지원" 2. 제품 요구사항 문서(PRD) 초안 제품 아이디어를 구조화된 문서로 변환하는 데 유용합니다. "온라인 서점 장바구니 기능 PRD 작성. 목표, 기능 요구사항, 제외 범위 포함" 3. 기능 명세서 작성 복잡한 기능을 단계별로 분해하고 명세화하는 작업에서 효율적입니다. ...
바이브 코딩 심화편 - 실무 적용과 한계
바이브 코딩은 개념적으로는 혁신적이지만, 단순한 작업에서의 높은 효율성과 달리 복잡한 비즈니스 요구사항이나 팀 협업 환경에서는 여러 제약과 한계가 드러납니다. 바이브 코딩이 효과적인 영역 1. 프로토타이핑과 초기 개발 기본적인 CRUD 애플리케이션이나 간단한 웹 서비스 프로토타입 개발에서 높은 효율성을 보입니다. "React로 사용자 관리 시스템을 만들어줘. 추가, 수정, 삭제 기능과 로컬 스토리지 연동 포함" 2. 데이터 처리 및 변환 CSV 파싱, JSON 변환, 데이터 정제 등 명확한 입출력 구조를 가진 작업에서 높은 정확도를 보입니다. ...
바이브 코딩이란 무엇인가? - AI 시대의 새로운 프로그래밍 패러다임
바이브 코딩이란? 바이브 코딩(Vibe Coding) 이란 직관적이고 자연어에 가까운 방식으로 코드를 작성하는 접근법입니다. 개발자가 원하는 기능이나 로직을 마치 동료에게 설명하듯 자연스럽게 표현하면, AI가 이를 해석해서 실제 작동하는 코드로 변환해주는 방식입니다. 기존의 프로그래밍이 정확한 문법과 구조를 요구했다면, 바이브 코딩은 의도와 맥락을 중시합니다. 어떻게 구현할 것인가보다 무엇을 하고 싶은가에 초점을 맞춘 개발 방식이라고 할 수 있습니다. 바이브 코딩의 핵심 특징 1. 자연어 기반 접근 기존의 정확한 문법보다는 의도와 맥락을 중시합니다. AI가 개발자의 의도를 파악해서 적절한 코드로 변환해주는 방식입니다. ...
springdoc-openapi @ApiResponse 어노테이션의 useReturnTypeSchema 속성
@ApiResponse 어노테이션의 useReturnTypeSchema 속성 컨트롤러 메서드의 반환 타입을 자동으로 추론하여 OpenAPI 스펙의 response schema 로 사용 @Operation(summary = "사용자 조회", responses = { @ApiResponse(responseCode = "200", description = "조회 성공", useReturnTypeSchema = true) })
Mac zsh 설정
zsh 설치 $ brew install zsh oh-my-zsh 설치 $ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" $ vi .zshrc source $ZSH/oh-my-zsh.sh 플러그인 설치 zsh-autosuggestions 설치 $ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions $ vi .zshrc plugins=(... zsh-autosuggestions ...) zsh-syntax-highlighting 설치 $ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting $ vi .zshrc plugins=(... zsh-syntax-highlighting ...) 테마 설치 Powerlevel10k 설치 $ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k" $ vi .zshrc [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh powerlevel10k 설정 후, 커스텀하기 위해 설정파일을 복사하여 수정함. 원본 파일이 어떤건지 까먹었음. 원본파일이 어떤건지 찾아야 함. 최신버전 반영해야 함 ...
ImageMagick crop
ImageMagick 설치하기 $ brew install imagemagick Shell Script 로 이미지 자르기 $ magick 원본이미지.jpg -crop {가로}x{세로}+{x좌표}+{y좌표} 잘린이미지.jpg ex) $ magick a.jpg -crop 1179x1040+0+420 1.jpg (Old ver) Shell Script 로 이미지 자르기 $ convert 원본이미지.jpg -crop {가로}x{세로}+{x좌표}+{y좌표} 잘린이미지.jpg ex) $ convert a.jpg -crop 1179x1040+0+420 1.jpg