본문 바로가기

분류 전체보기54

[패스트캠퍼스] 황금같은 추석 연휴에도 학습한 ChatGPT 강의 후기! 최근 국비지원 교육을 통해 ChatGPT 활용 강의를 들었습니다.강사님이 바로 유튜브에서도 유명한 커리어해커 알렉스 님이라고 해서 처음부터 기대가 컸는데,실제 강의에서도 유튜브에서 보던 그대로의 에너지와 실전 중심의 노하우를 느낄 수 있었습니다. 강의를 전부 듣고 난 지금의 한마디 평은 “알차다”입니다.커리큘럼 자체를 간략하게 말하자면 AI 기술의 역사프롬프트 엔지니어링업무자동화(텍스트, 이미지, 데이터분석, 코딩)GPTsAI 기술의 역사솔직히, 처음엔 ChatGPT의 역사나 배경 설명 부분에서 ‘이걸 왜 배우는 걸까?’라는 생각이 잠깐 들었습니다.그러나, 마지막 한마디로 정리됐습니다.이 한 문장으로 AI를 대하는 태도가 바뀌었습니다. 한두 번 해보다가 에이 안되네.. 하고 마는 게 아니라 될 때까지 해.. 2025. 10. 8.
[바이브 코딩] Docker MCP Toolkit 아세요? 스프링 부트 버전이 올라가면서 도커 컴포즈를 지원해주고 있다.그 때문에 개발에 사용하기 위해 도커 데스크톱을 깔아 뒀는데, 우연히 MCP Toolkit (Beta) 항목을 발견했다. (뭐 눈에는 뭐만 보인다고.. 관심 없을 때는 쳐다도 안 보던...) 뭔가 느낌적으로 카탈로그에 있는 MCP 들을 사용할 수 있을 것 같다는 본능적인 느낌이 든다.클라이언트 탭을 확인해 보면, 도커 툴킷에서 여러 가지 클라이언트를 연결해서 사용할 수 있는 듯하다.내 생각이 맞다면, 터미널로 LLM을 사용하면서 IDE랑 상관없이 AI를 사용할 수 있게 된 것처럼,MCP도 한 번만 설치하면 어디든 쓸 수 있겠다는 생각이다. 클로드 코드도 깔아보고, 제미나이도 깔아봤는데, 설치하는 건 그렇다 치고,MCP 연동을 매번 해줘야 하는 .. 2025. 9. 4.
[바이브 코딩] Claude Code 결제? 이 방법이면 0원으로 끝! 지난번에는 클로드 코드로 IDE 구독 없이 "바이브 하게" 코딩하자고 했었는데..2025.08.13 - [AI] - 바이브 코딩 끝판왕: Claude Code MCP 연동으로 IDE 구독 없이 즐기는 법 바이브 코딩 끝판왕: Claude Code MCP 연동으로 IDE 구독 없이 즐기는 법요즘 ‘바이브 코딩’이 대세다.IDE에 MCP들을 연결해 두면, AI가 실시간으로 코드를 생성해 준다.정말 기가 막힌다. 하지만 직접 써보니 문제도 있다.첫 번째는 사용량 문제Cursor같은 AI IDE는 무료lazymolt.tistory.com사실 지속적으로 하기에는 Claude Code도 돈이 많이 든다.. 그래서! GEMINI CLI에 MCP를 연동하는 방법으로 결제 없이 AI를 사용하면서 코딩할 수 있는 환경을 .. 2025. 9. 3.
[독학! SQLP] SQLP 낙방 후기 지난 토요일(8월 23일) SQLP 시험에 응시했다.결론부터 말하자면, 망했다. 아직 최종 결과는 나오지 않았지만, 실기 문제 2문제에서 거의 손도 못 댔기 때문에 합격은 물 건너갔다...이번 경험을 통해 SQLP 공부방법과 특히 SQLP 실행계획 공부법의 중요성을 뼈저리게 느꼈다.원인 분석SQLP는 SQLD보다 한 과목이 더 있다. 바로 SQL 고급 활용 및 튜닝.문제는 이 과목이 앞선 두 과목을 합친 것보다 훨씬 방대하고 어렵다는 것. 이번 시험 준비의 중점은 개념 학습. “일단 이론부터 잡아야지”라는 생각이었다.그런데 결과적으로는 실전 훈련이 부족했고, 망해버렸다..SQLP 합격 커트라인과 배점 구조SQLP 시험은 총 72문항(총 100점).객관식 70문항 (각 1점)서술형 2문항 (각 15점, 부.. 2025. 8. 25.
[독학! SQLP] 데이터베이스 구조 테이블 스페이스세그먼트를 저장하는 논리적 공간하나 이상의 데이터 파일(Datafile)로 구성데이터 파일실제 OS 레벨 물리 파일세그먼트특정 DB 객체(테이블, 인덱스, 파티션, LOB)에 할당된 익스텐트들의 집합객체 1개 = 세그먼트 1개 원칙테이블 생성시 테이블 세그먼트는 항상 생성인덱스 세그먼트는 PK/UNIQUE 제약조건, 명시적 인덱스 생성이 있을때 생성파티션 세그먼트는 파티션 정의 시 생성테이블 또는 인덱스가 파티션 구조라면 각 파티션이 하나의 세그먼트가 된다.LOB 세그먼트는 LOB 컬럼 존재 시 생성세그먼트 공간이 부족해지면, 테이블 스페이스로부터 익스텐트를 추가로 할당.세그먼트에 할당된 모든 익스텐트가 같은 데이터 파일에 위치하지 않을수 있음. 하나의 테이블 스페이스를 여러 데이터 파일로.. 2025. 8. 21.
[독학! SQLP] 계층 쿼리 계층형 쿼리?정의: 트리(tree) 구조처럼 상위-하위 관계(부모-자식)를 가지는 데이터를 조회하는 SQL 기법대표 문법 (Oracle)SELECT ...FROM tableSTART WITH 조건 -- 루트(최상위) 지정CONNECT BY [NOCYCLE] PRIOR 부모 = 자식 -- 상위-하위 관계ORDER SIBLINGS BY 컬럼 -- 형제 노드 간 정렬예제 데이터 셋-- EMP(사번, 이름, 상사사번, 부서)CREATE TABLE EMP ( EMPNO NUMBER PRIMARY KEY, ENAME VARCHAR2(20), MGR NUMBER NULL, DEPT VARCHAR2(10));INSERT INTO EMP VALUES (100, 'KING' , NULL, 'HQ.. 2025. 8. 20.
[독학! SQLP] 서브쿼리 서브쿼리?정의: 하나의 SQL문 안에 포함된 또 다른 SQL문. SELECT, INSERT, UPDATE, DELETE 등에서 사용 가능.형태: 보통 괄호 ( ) 안에 작성됨.용도: 비교 값 제공, 조건절로 사용, 집계된 값 반환 등.서브쿼리의 종류단일행 서브쿼리결과가 1행 1열WHERE 절에서 사용연산자 : =, , =예시-- 평균 급여보다 큰 사원SELECT ename , sal FROM emp WHERE sal > (SELECT AVG(sal) FROM emp);다중행 서브쿼리결과가 여러행WHERE 절에서 사용연산자 : IN, ANY, ALL, EXISTS예시-- 댈러스 부서 직원SELECT ename , deptno FROM emp WHERE deptno IN (S.. 2025. 8. 20.
[독학! SQLP] 트랜잭션 1. 개념 요약트랜잭션(Transaction):→ ALL or NOTHING (원자성)DB에서 논리적으로 하나의 작업 단위를 구성하는 연산 집합예시은행 이체 (A 계좌 출금 + B 계좌 입금 → 둘 다 성공해야 함)2. 트랜잭션의 4대 성질 (ACID)성질설명포인트A (Atomicity, 원자성)모두 수행되거나 전혀 수행되지 않아야 함“원자 → 쪼갤 수 없다”C (Consistency, 일관성)트랜잭션 전후 DB의 무결성이 유지제약조건, 규칙 만족I (Isolation, 독립성)동시에 수행돼도 각 트랜잭션은 독립적“격리”D (Durability, 영속성)커밋된 데이터는 영구적으로 보존장애 발생해도 유지 3. 트랜잭션 제어 명령어명령어설명COMMIT트랜잭션 확정, 영구 저장ROLLBACK트랜잭션 취소, 원.. 2025. 8. 20.
[독학! SQLP] SQL 조인! 1. EQUI JOIN (= 내부 조인, 등가 조인)정의: 두 테이블의 조인 조건이 = 비교로 이루어진 조인. 가장 기본적인 형식: INNER JOIN … ON A.col = B.col예시SELECT e.empno, e.ename, d.dnameFROM emp eJOIN dept d ON e.deptno = d.deptno;포인트: 시험에서는 “EQUI JOIN = INNER JOIN”을 묻는 경우 多.2. NON-EQUI JOIN정의: 조인 조건이 = 이외(>, 예시 (급여 등급 매칭)SELECT e.ename, e.sal, s.gradeFROM emp eJOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal;포인트: 급여 등급, 성적 등 범위 매칭 문제로 출.. 2025. 8. 20.
[독학! SQLP] 그룹핑 쿼리 개념 요약구분설명결과 집합 특징GROUPING SETS여러 GROUP BY 집합을 한 쿼리에서 동시에 수행결과가 UNION ALL과 유사 (각 grouping 별 결과 따로)ROLLUP계층적(위계적) 합계 생성 (→ 부분합 + 총합)n개의 컬럼이면 n+1 단계의 집계CUBE가능한 모든 컬럼 조합의 합계 생성 (→ 다차원 집계)n개의 컬럼이면 2^n 조합 결과예시 SQL & 결과CREATE TABLE Sales ( region VARCHAR(10), product VARCHAR(10), amount NUMBER);INSERT INTO Sales VALUES ('서울', 'A', 100);INSERT INTO Sales VALUES ('서울', 'B', 200);INSERT INTO.. 2025. 8. 20.
[독학! SQLP] 함수 정리! 집계 함수COUNT(*) : NULL 포함 전체 행 수, DISTINCT 키워드 사용 불가.COUNT(expr) : NULL 제외한 행 수SUM([DISTINCT | ALL] expr) : NULL 제외한 합계AVG([DISTINCT | ALL] expr) : NULL 제외한 평균MAX/MIN([DISTINCT | ALL] expr) : NULL 제외한 최대값 / 최소값. 숫자·문자·날짜 모두 가능.STDDEV(expr) : NULL 제외한 표준편차VARIANCE(expr) : NULL 제외한 분산단일행 문자형 함수LOWER(str) / UPPER(str) / INITCAP(str)소문자 / 대문자 / 단어의 첫글자만 대문자SELECT LOWER('SQLP') -- sqlp : 소문자로 .. 2025. 8. 20.
[독학! SQLP] NULL에 관하여! NULL의 기본 개념NULL ≠ 공백, NULL ≠ 0집계 함수에서는 NULL 값이 연산 대상에서 제외됨 (SUM, AVG 등).사칙연산에 NULL이 포함되면 결과는 항상 NULL.예: 10 + NULL → NULL비교 연산(=, >, =, 부정 비교 연산(!=, , NOT 칼럼명 =...) 역시 조건 만족하지 않음.조건절에서 NULL 비교 시 반드시 IS NULL 또는 IS NOT NULL 사용.NULL 관련 단일행 함수NVL(표현식 1, 표현식 2) (Oracle) / ISNULL(표현식 1, 표현식 2) (SQL Server) → 표현식1이 NULL이면 표현식 2 반환.NULLIF(표현식 1, 표현식 2)→ 두 값이 같으면 NULL, 다르면 표현식 1 반환.예: NULLIF(10, 10) → NUL.. 2025. 8. 19.
[독학! SQLP] DCL? DDL? DML? TCL? DCL (데이터 제어어, Data Control Language)권한 제어 (사용자 접근 권한, 보안 관련)자동 COMMIT (취소 불가)주요 명령어GRANT : 권한 부여WITH GRANT OPTION : 권한을 받은 사용자가 다른 사용자에게 권한을 다시 부여할 수 있음.REVOKE : 권한 취소CASACASE : 권한을 회수하면, 그 권한을 통해 다른 사용자에게 전파된 권한도 같이 회수RESTRICT : 권한을 회수할 때, 그 권한을 기반으로 다른 사용자에게 부여된 권한이 있으면 REVOKE 불가DDL (데이터 정의어, Data Definition Language)데이터 구조 정의/변경/삭제 언어실행 즉시 자동 COMMIT → 취소 불가주요 명령어CREATE, ALERT, DROP, RENAME, T.. 2025. 8. 19.
[독학! SQLP] 정규형? 정규화? 반정규화? 정규화 (Normalization)정의 : 데이터의 중복을 제거하고, 이상현상을 방지하며, 데이터 일관성을 유지하기 위해 릴레이션을 분해하는 과정목적 : 데이터 중복 제거, 이상현상 방지, 일관성 확보장점 : 삽입 / 삭제 / 갱신 이상 제거 → 데이터 무결성 보장단점 : 테이블 / 조인 수 증가 → 성능 저하 가능키워드 : 무손실 분해, 종속 보존참고무손실 분해(조인): 나눴다가 조인하면 빠짐/중복 없이 원래 그대로. (외래키로 자연조인되게 설계)종속 보존: 원래 규칙(FD)을 분해된 테이블들에서도 그대로 검사 가능.정규형 (Normal Form)1) 1차 정규형 (1NF)모든 칼럼이 한 칸에 하나의 값(원자값)을 가져야 함.반복 칼럼(phone1, phone2 …)이나 콤마로 여러 값을 넣거나 JSO.. 2025. 8. 19.
[독학! SQLP] 학습용 Oracle 설치 가이드 일할 때는 주로 마리아 디비를 쓴다. 그래서 학습용 도로 오라클을 따로 설치했다. 1. 설치Oracle Database 21c XE (Express Edition)으로 설치하기로 결정했다. 가볍고 간단한 버전이지만, 학습에는 무리가 없다고 판단했다.1) 도커 설치docker run -d \ --name oracle-xe \ -p 1521:1521 -p 5500:5500 \ -e ORACLE_PASSWORD=oracle \ gvenzl/oracle-xe:21-slim 2) 설치 확인docker ps | grep oracle-xedocker logs -f oracle-xe 2. 접속 확인호스트 / 포트 : localhost:1521SID : XE계정 : system암호 : oracle → 위에서 -e.. 2025. 8. 19.
[독학! SQLP] 엔터티? 식별자? 속성? 속성값? 도메인? 인스턴스? 관계? 1) 엔터티 (Entity, Table)정의 : 관리할 가치가 있는 실세계의 객체 또는 개념 (사람, 사물, 사건, 장소 등)특징반드시 식별자를 가진다 (유일성)속성(Attribute)들로 구성된다두 개 이상 인스턴스의 집합다른 엔터티와 관계(Relationship)로 연결된다통계/코드성 엔터티는 관계 생략 가능발생 시점 분류기본(키) 엔터티 : 최초 발생, 독립적 존재, 부모 역할 가능 (예: 고객, 상품)중심 엔터티 : 반복되는 행위/상태 관리, 트랜잭션 중심 (예: 주문, 계약)행위 엔터티 : 이벤트/행위를 기록, 로그성 (예: 주문상세, 결제내역, 배송기록)예시 : 고객, 주문, 상품2) 식별자 (Identifier, Key)정의 : 엔터티 내 인스턴스를 유일하게 구분할 수 있는 속성(들)식별자의.. 2025. 8. 18.
[독학! SQLP] 데이터 모델? 데이터 모델링? 데이터 독립성? 1. 데이터 모델링정의: 현실 세계를 데이터베이스에 옮기기 위해 추상화·단순화·정확화 하는 과정목적: 통합적 관점에서 개념(논리) 스키마 설계특징 (3가지)추상화: 현실을 일정 수준으로 단순하게 표현단순화: 누구나 쉽게 이해할 수 있도록 구조화정확화: 데이터 간 의미와 제약조건을 정확히 표현유의사항중복 : 동일 데이터 반복 저장 → 불필요한 저장공간 낭비비유연성 : 변경·확장 어려운 설계비일관성 : 같은 데이터가 서로 다르게 관리2. 데이터 모델정의: 데이터 모델링의 결과물 (= 개념 스키마) 구성요소:엔터티(Entity, 테이블)속성(Attribute, 칼럼)관계(Relationship, PK/FK)제약조건(Constraint, 무결성 제약)3. 스키마 구조 (ANSI 3단계 스키마 구조)(1) 외부 .. 2025. 8. 18.
바이브 코딩 끝판왕: Claude Code MCP 연동으로 IDE 구독 없이 즐기는 법 요즘 ‘바이브 코딩’이 대세다.IDE에 MCP들을 연결해 두면, AI가 실시간으로 코드를 생성해 준다.정말 기가 막힌다. 하지만 직접 써보니 문제도 있다.첫 번째는 사용량 문제Cursor같은 AI IDE는 무료 플랜에서 토큰(사용량) 제한이 금방 찹니다.조금만 집중해서 코딩하면 하루나 이틀 만에 제한에 걸리고,그 순간부터 AI 기능은 사실상 잠깐 쓰다 꺼야 하는 맛보기 수준으로 변한다.두 번째는 아무래도.. 금전적인 문제바이브 코딩에 사용하는 MCP중에서 Task Master 라는 툴이 있다. 이 툴을 사용하려면, Claude 구독이나 API 키를 꼭 생성해야 한다. ChatGPT에 Claude 구독료만 해도 월 5 ~ 6만 원인데, 여기에 IDE 구독료까지 얹으면 유부남 지갑에 큰 타격이다.마지막 세 .. 2025. 8. 13.
[개발자의 Gradle] Configurations? 누구냐 너! -1 혹시 아래와 같은 구문을 본 적이 있을까?// groovy DSLconfigurations { compileOnly { extendsFrom annotationProcessor }}// kotlin DSLval compileOnly by configurationsval annotationProcessor by configurationscompileOnly.extendsFrom(annotationProcessor)둘 중에 뭘로 쓰든 그 의미는 compileOnly라는 configurations 객체가 annotationProcessor라는 configurations 객체를 상속하게 만든다. 즉, annotationProcessor에 적용된 의존성이 전부 compileOnly에도 적용.. 2025. 8. 1.
[개발자의 Gradle] 변수를 사용하는 여러가지 방법 Gradle에 변수를 선언하는 방법이 여러 가지 있다.gradle.properties - 전역 변수 설정settings.gradle.kts - 빌드 구성용 변수 설정build.gradle.kts (root) - 하위 모듈에 전달할 변수 설정build.gradle.kts (sub) - 로컬 변수 설정1) 전역변수 설정 (gradle.properties)javaVersion=21jacksonVersion=2.19.0junitVersion=5.13.3위처럼 써두면 전체 빌드과정에서 가져다 쓸 수 있다.그리고 이 변수는 Gradle Project Property(-P)로 덮어쓸 수 있다.ex>./gradlew build -PjavaVersion=17 settings.gradle.ktsval springBootV.. 2025. 7. 30.