전체 글 98

DB 트랜잭션, ACID, 격리 수준, MVCC

https://www.inflearn.com/course/cs-interview-prepara-1/dashboard?cid=341793 채널톡 면접관이 직접 알려주는 CS 면접 대비 - 데이터베이스 편| JSCODE 제이온 - 인프런 강의현재 평점 4.9점 수강생 252명인 강의를 만나보세요. 채널톡 면접관이 같은 질문에 대한 불합격 답변과 합격 답변의 차이를 직접 분석하고, 실전 꼬리 질문까지 대비시켜 드립니다. 면접관이 평가www.inflearn.com위 강의를 들으며 공부한 내용에 여러 예제를 추가하여 정리한 내용이다. 트랜잭션이란?트랜잭션은 데이터베이스에서 하나의 논리적인 작업 단위이다.예를 들어 계좌 이체를 생각해보자.UPDATE accounts SET balance = balance - 300..

CS 지식 2026.07.08

Claude Code로 우리 프로젝트에 맞는 자동화 기반 만들기

개발을 하다 보면 반복적으로 신경 써야 하는 일이 많다.커밋 메시지를 컨벤션에 맞게 작성하는 일, PR 본문을 채우는 일, 코드 리뷰 전에 위험한 변경사항을 한 번 더 점검하는 일, 프로젝트 규칙을 매번 기억하고 지키는 일 등이 그렇다.처음에는 이런 작업들을 사람이 직접 확인했다. 하지만 프로젝트가 커지고 협업 인원이 늘어날수록 단순 반복 작업에 쓰는 시간이 많아졌고, 작은 실수도 쉽게 발생할 수 있었다. 특히 백엔드 프로젝트에서는 Flyway 마이그레이션 파일, 환경변수, Security 설정, JWT 로직처럼 한 번 잘못 건드리면 운영 환경에 큰 영향을 줄 수 있는 영역들이 있었다.그래서 Claude Code를 활용해 단순히 코드를 작성하는 수준을 넘어, 우리 프로젝트의 컨벤션을 이해하고 반복 작업을..

카테고리 없음 2026.05.12

Gmini CLI와 Notion MCP를 활용하여 API명세 작성 자동화하기

기존 코드베이스를 이어받고 마주한 문제다른 사람들이 약 1년 정도 개발해온 레포를 이어받게 되었다.노션에 API 명세 문서는 존재했지만 최신화가 되어있지않은 상태였다. 여건 상 설명을 따로 자세히 들을 시간이 없었고 코드 + 노션만 보고 바로 개발해야 하는 상황이었다.직접 코드 구조를 파악하고 API 명세 최신화하는 작업이 필요했다.왜 자동화를 시도했는가API 명세를 직접 업데이트하는 방식은 다음 문제가 있다.반복 작업 (노가다)코드와 어긋날 가능성 높음실수 발생→ MCP를 이용해서 자동화하자코드 기준으로 API 추출Notion DB 자동 반영Request / Response까지 자동 작성API명세 작성 자동화하기전체 구조 이해Gemini CLI와 Notion MCP를 사용하는 구조는 다음과 같다.Gem..

카테고리 없음 2026.04.07

[BOJ][Python] 7569: 토마토

https://www.acmicpc.net/problem/7569 문제 정의이 문제는 결국 "최소 일수"를 구하는 것이다.BFS의 특성: 시작점에서 가까운 곳부터 차례대로 탐색하는 알고리즘적용: 익은 토마토들이 '동시에' 주변으로 퍼져나가는 모습은 BFS의 탐색과 일치한다. 가장 멀리 있는 토마토에 도달하는 시간이 곧 전체가 익는 최소 시간이 된다.알고리즘 설계3차원 공간 구현2차원 격자(N,M)에 높이(H)가 추가된 3중 리스트 구조를 이해해야한다. 인덱스 순서: graph[h][n][m] (높이, 세로, 가로) 순서로 접근하는 것이 실수를 줄이는 표준적인 방법이다.탐색 시작점 창고를 전체 탐색하여 익은 토마토(1)을 찾는다.발견된 모든 익은 토마토의 좌표를 동시에 큐에 넣는다 -> 처음부터 모든 시작..

[온디바이스 AI] 1편. sLM 모델 선정

내가 설계 중인 워크플로우 엔진은 사용자의 비정형 쿼리(예: "지난달 정산 내역 엑셀 읽어서 담당자들한테 메일 보내줘")를 분석하여, 시스템이 즉시 실행할 수 있는 액티비티 설계도(JSON)로 변환하는 것이다.문제 정의기존 시스템은 LLM API를 활용 중이었다. 여기에선 크게 3가지 문제점이 발생한다.비용의 휘발성보안 및 온디바이스 제약응답 속도(Latency)sLM(특정 도메인에 특화된 7B급 이하의 경량 모델)을 직접 파인튜닝하여 독립적인 엔진을 구축하려 한다.기존 플로우를 전부 온디바이스로 바꾸려면 여러 과정이 필요하지만 우선 자연어 쿼리 -> 워크플로우로 변환하는 sLM 모델부터 선정하려 한다.모델 선정 기준모델을 선정할 때 단순히 유명한, 최신의 모델이 아닌 워크플로우 분해 능력에 초점을 맞춘..

카테고리 없음 2026.01.14

책 리뷰: 객체지향의 사실과 오해

1장: 협력하는 객체들의 공동체객체란?몸체도 객체 바퀴도 객체 핸들도 객체.. 객체가 모여서 객체를 만들고~..❌ 흔한 오해: 객체지향은 현실 세계의 모방이다객체지향의 핵심: 현실과 전혀 다른 새로운 세계를 창조하는 것잘못된 접근: 현실 세계의 사물이나 개념을 그대로 소프트웨어로 옮기려고 시도하는 것. 예를 들어, '실제 사람'의 모든 특징을 '사람 클래스'에 담으려고 하는 접근 방식이다.문제점: 현실은 매우 복잡하고 불필요한 속성들로 가득 차 있습니다. 소프트웨어는 특정 목적을 위해 필요한 특징만을 추출하고 단순화하여 새롭게 설계해야 한다. 클래스 하나 당 50라인을 넘기지 말라는 규칙이 있을 정도..!역할, 책임, 협력협력 (Collaboration)협력은 어떤 목표를 달성하기 위해 여러 객체들이 함..

[BOJ][Java] 11724: 연결 요소의 개수

문제방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오.입력첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다.출력첫째 줄에 연결 요소의 개수를 출력한다. 풀이 과정방향 없는 그래프가 주어졌을 때, 분리된 그래프 덩어리 (연결 요소)가 총 몇 개인지 세는, 전형적인 그래프 탐색 문제이다.재귀 DFS를 통해 처음 문제를 접근했다.static void DFS(int v){ if (visited[v]) return; visited[v..

Try Everything2025 서포터즈 활동

9월 11일-12일에 DDP에서 열린 Try Everything2025 행사에 서포터즈로 다녀왔다.Try Everything2025 Try Everything은 전 세계의 유망 스타트업과투자자, 액셀러레이터 등 창업 생태계의 핵심 주체들이 한자리에 모이는 대표적인 글로벌 스타트업 축제이다. 2025년 행사는 9월 11일부터 12일까지 이틀간 DDP에서 개최되었다. 슬로건 Dive Deep, Fly High는 급변하는 글로벌 정세 속에서 신기술, 트렌드 등 시장 상황을 깊이 있게 분석하고, 목표와 비전을 향해 비상하자는 의미를 담고 있다. 주요 프로그램으로는 국내외 유망 스타트업들의 기술과 서비스를 선보이는 전시 부스, 투자 유치를 위한 IR 피칭, 대기업·중견기업과의 협력을 모색하는 오픈 이노베이션, ..

[BOJ][Java] 16120: PPAP

알고리즘 정리이 문제는 문자열 내 "PPAP" 패턴을 만나면 "P" 하나로 줄일 수 있다는 규칙에 따라,입력 문자열이 "PPAP문자열" 인지 판단하는 문제이다. 문제 접근 방식처음부터 문자열을 직접 PPAP → P 로 바꿔가는 건 문자열이 겹치거나 중첩되는 경우 복잡해진다.따라서 문자열을 왼쪽부터 순차적으로 스택에 쌓으면서 스택의 마지막 4글자가 PPAP 이면 그것을 "P"로 축약하는 방식을 선택했다. 주요 단계: 문자열 입력 받기한 글자씩 스택에 push스택 마지막 4글자가 "PPAP"이면 → pop 4번 → push 'P'반복마지막에 스택이 'P' 하나라면 → "PPAP" 문자열, 아니라면 "NP" import java.util.*;public class Main { public static..