skill 105

ChatGPT 등장 배경 및 LLM 이해 정리

📑 목차ChatGPT 등장 배경 (AI 발전 흐름)1-1. 규칙 기반 인공지능 (1950년대)1-2. 머신러닝의 등장 (1980년대)1-3. 딥러닝의 발전 (2010년대)1-4. 트랜스포머 모델 등장 (2017년)1-5. ChatGPT의 등장 (2022년)LLM의 이해2-1. 머신러닝 (Machine Learning)2-2. 딥러닝 (Deep Learning)2-3. 언어 모델 (Language Model)2-4. LLM의 정의와 구조 (Large Language Model)2-5. LLM의 언어 이해 방식2-6. LLM의 텍스트 생성 방식2-7. LLM의 한계: 텍스트 길이 제한LLM의 학습 원리3-1. 모델을 업데이트하는 방법3-2. 모델 업데이트 없이 LLM을 활용하는 방법3-3. 학습되지 않은 ..

skill/Etc 2026.01.20

쿠버네틱스 멀티 파드 로그 보는 법

쿠버네틱스에서 파드(Pod)가 여러 개일 때 각 파드 로그를 보는 방법은 상황에 따라 여러 가지가 있어. 가장 많이 쓰는 방법들을 정리해줄게.---✅ 1. 특정 파드 하나의 로그 보기kubectl logs -n ---✅ 2. 여러 개 파드가 있을 때 로그 보기 (Deployment/ReplicaSet)예를 들어 app=my-api 라벨을 가진 파드가 3개 있다면:라벨로 로그 조회kubectl logs -l app=my-api -n ---✅ 3. 여러 파드의 로그를 한 번에 스트리밍(watch) 하기kubectl logs -l app=my-api -n -f-f = 실시간---✅ 4. 파드 이름이 비슷할 때 (예: my-api-xxxxxx)kubectl get pods -n | grep my-apiku..

skill/Linux 2025.11.27

path value에 /가 들어갈때

지금 상황 요약하면 이거예요 👇> React 프런트엔드에서 백엔드(Spring Boot)로 통신할 때,요청 path 파라미터에 /가 들어간 데이터를 보내고 싶다.(예: /api/files/folder/a/b/info 형태)그런데 /가 들어가면 경로 분리자로 인식되어 서버에서 400 또는 404가 난다.---💡 해결책: Base64URL 인코딩 (추천)React에서 보낼 때 경로에 들어가는 값을 Base64URL로 인코딩하면 /가 완전히 사라져서 안전하게 path로 전달할 수 있습니다.✅ React (프론트)// utils/base64url.jsexport function toBase64Url(str) { return btoa(unescape(encodeURIComponent(str))) // Ba..

skill/Java.Kotlin 2025.11.05

카프카 고도화 신청서

기존 프로젝트(A) 와 신규 고도화 프로젝트(B) 는 완전히 별개의 시스템이고,Kafka를 사용하는 비동기 파일 다운로드 프로세스 구조(토픽, 프로듀서-컨슈머 플로우) 만 동일하게 가져가는 거죠.따라서 신규 프로젝트에서는 Kafka 리소스(토픽, 그룹, ACL 등) 자체를 별도 신규로 신청해야 합니다.단, 메시지 포맷/로직은 동일하므로 “기존 구조와 동일, 단지 신규 시스템용으로 분리된 구성”으로 작성하면 됩니다.---토픽명 그대로 사용시,기존, 고도화 프로젝트 둘 다 호출---토픽명, 그룹명만 변경 (서버, 브로커 그대로 사용)비교적 쉽게 생성 가능---📝 Kafka 신규 신청서 (신규 고도화 프로젝트용 — 별도 시스템)항목 내용구분 신규 Kafka Topic 및 Consumer Group 생성요청자..

skill/Etc 2025.10.20

Junit 기반 백엔드 테스트 스위트

Spring Boot 기준으로 JUnit 5(Jupiter) 를 사용하는 백엔드 테스트 스위트 구성을 “바로 복붙 가능한” 예제로 정리했습니다. (Java 예제지만, Kotlin도 동일한 구조·어노테이션으로 동작합니다.)---1) 기본 의존성 & 디렉터리Maven (pom.xml) org.junit.jupiter junit-jupiter 5.10.2 test org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.mockito mockito..

skill/check 2025.10.15

테스트 스위트(Test Suite)

“테스트 스위트(Test Suite)”는 여러 개의 테스트 케이스(Test Case)를 묶어둔 집합을 의미합니다.소프트웨어 테스트에서 테스트 시나리오를 체계적으로 관리하고 실행하기 위한 단위로 사용됩니다.---💡 기본 개념용어 설명테스트 케이스 (Test Case) 하나의 특정 기능 또는 조건을 검증하기 위한 단위 테스트 항목 (예: 로그인 성공 테스트)테스트 스위트 (Test Suite) 여러 개의 테스트 케이스를 논리적으로 묶은 집합 (예: 로그인 기능 전체 테스트 모음)테스트 시나리오 (Test Scenario) 실제 사용자의 행위 흐름 기반 테스트 설계 (예: “사용자가 로그인하고 마이페이지를 확인한다”)테스트 실행 (Test Execution) 테스트 스위트 또는 개별 케이스를 실제 실행하는 ..

skill/check 2025.10.14

셀레니움(Selenium) 단점

React 같은 SPA(Single Page Application) 페이지를 Selenium으로 제어해서 데이터 수집하는 방식은 분명 강력하지만 단점도 많습니다.아래에서 왜 이렇게 처리해야 하는지, 그리고 어떤 점이 문제인지 정리해드릴게요.---🔹 1. 이렇게 처리하는 이유 (왜 Selenium을 써야 하나?)React, Vue, Angular 같은 프론트엔드 프레임워크는HTML을 서버에서 직접 보내지 않고,JavaScript가 실행된 후 동적으로 화면을 그립니다.즉,requests.get(url) 같은 단순 요청으로는 데이터가 비어 있음HTML 파서(BeautifulSoup)는 렌더링 후 데이터를 읽지 못함👉 그래서 실제 브라우저를 띄워서 JavaScript를 실행시키는 도구,즉 Selenium이 ..

skill/check 2025.10.14

셀레니움(Selenium) React 페이지 데이터 수집 예제 (Headless 모드)

React로 만들어진 웹페이지는 데이터를 서버에서 바로 가져오는 게 아니라,브라우저에서 JavaScript로 렌더링되는 경우가 많습니다.이럴 때 BeautifulSoup처럼 단순 HTML 파싱으로는 안 되고,Selenium으로 실제 브라우저를 띄워 렌더링된 데이터를 읽어야 합니다.---🔹 예제 시나리오React 기반 페이지(예: 상품 목록 페이지)가 있다고 할 때,다음 데이터를 자동으로 수집합니다.> 예: https://example-react-shop.com/products상품 이름가격상세 링크---🔹 Python + Selenium 예제 코드from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.w..

skill/check 2025.10.14

셀레니움(Selenium)

셀레니움(Selenium)은 웹 브라우저를 자동으로 제어하는 오픈소스 도구입니다.사람이 직접 마우스 클릭하고 입력하는 일을 프로그램 코드로 대신 수행할 수 있게 해줍니다.---🔹 주요 용도1. 웹 자동화 (Web Automation)반복적인 웹 작업(로그인, 버튼 클릭, 데이터 입력, 다운로드 등)을 자동화할 수 있습니다.→ 예: 매일 같은 사이트에 로그인해 보고서를 다운로드.2. 웹 크롤링 / 데이터 수집일반적인 HTML 파싱(BeautifulSoup 등)으로 접근이 어려운 JavaScript 기반 웹페이지에서 데이터를 가져올 때 사용합니다.→ 페이지가 동적으로 렌더링되는 사이트도 처리 가능.3. 테스트 자동화 (QA/Test Automation)웹 애플리케이션의 기능 테스트를 자동으로 수행할 수 있..

skill/check 2025.10.14