목록CS지식 (62)
변수의 기록
데이터베이스 트랜잭션과 ACID 완전 정리 (Oracle 중심 + Java 예제 포함)트랜잭션(Transaction)이란?트랜잭션은 하나의 논리적 작업 단위 (logical unit of work) 를 의미합니다.일반적으로 여러 SQL 문장을 하나의 트랜잭션으로 묶어, 전부 성공하거나 전부 실패하게 만들어야 합니다.예를 들어, 계좌이체는 출금과 입금이 동시에 성공하거나 동시에 실패해야 합니다.핵심 특징트랜잭션에 포함된 SQL 일부만 실행되어 반영되는 일은 절대 없어야 합니다.데이터 정합성과 일관성을 유지하기 위해 필수적인 개념입니다.Oracle의 트랜잭션 처리 방식트랜잭션의 시작과 종료Oracle에서는 INSERT, UPDATE, DELETE 같은 DML 문이 실행되면 트랜잭션이 자동으로 시작됩니다.트랜..
트리거(Trigger)란? — Oracle 기준으로 정리하는 SQL 트리거의 개념과 실무 주의사항1. 트리거(Trigger)의 사전적 의미와 개념Trigger는 사전적으로는 아래와 같은 의미를 가집니다:총기의 방아쇠사건을 유발하는 계기어떤 반응을 촉발시키는 요소 (to set off)자동 작동시키는 장치 (to set on)이를 데이터베이스 관점에서 해석하면 다음과 같습니다:트리거는 특정 이벤트(INSERT, UPDATE, DELETE)가 발생했을 때 자동으로 실행되는 절차형 객체로, 명시적으로 호출하지 않아도 자동으로 작동하는 DB 내부 로직입니다.Oracle DB에서 트리거는 테이블 또는 뷰에 부착되며, 다음과 같은 구조로 동작합니다:BEFORE 또는 AFTER 특정 DML(INSERT, UPDATE..
Stored Procedure의 장단점과 일반 백엔드에서의 활용 시 주의점1. Stored Procedure란?Stored Procedure(저장 프로시저)는 SQL 구문을 미리 데이터베이스에 저장해두고, 이를 이름을 통해 실행할 수 있는 일종의 서버 측 함수입니다. 반복되는 DB 연산이나 특정 트랜잭션을 캡슐화하여 효율적으로 관리할 수 있도록 도와주는 도구입니다.2. Three-tier Architecture와 Stored Procedure현대적인 웹 시스템은 대개 다음의 세 계층으로 구성된 Three-tier Architecture를 따릅니다:Presentation Layer: 사용자 인터페이스 (예: React, Vue 등)Application Layer: 비즈니스 로직 처리 (예: Spring, ..

Stored Procedure와 Stored Function의 차이 DBMS에서 자주 쓰이는 저장 객체인 **Stored Procedure(저장 프로시저)**와 **Stored Function(저장 함수)**는 언뜻 비슷해 보이지만, 용도와 실행 방식에 있어 중요한 차이가 존재합니다. 각자의 역할과 제약을 이해하고 적절하게 사용하는 것이 중요합니다.1. 생성 문법항목Stored ProcedureStored Function생성 문법CREATE PROCEDURECREATE FUNCTION값 반환RETURN 키워드 사용 불가 (SQL Server에서는 상태 코드용으로 사용 가능)RETURN 키워드로 반드시 반환값 존재 2. 파라미터와 값 반환항목Stored ProcedureStored Function파라미터로..

Three-tier Architecture와 Stored Function 활용법Three-tier Architecture란?Three-tier architecture는 현대적인 애플리케이션 개발에서 많이 채택하는 3계층 구조 아키텍처로, 시스템을 기능적으로 분리하여 확장성과 유지보수성을 높이는 구조입니다.1. Presentation Tier (프론트엔드)사용자에게 보이는 UI를 담당하는 계층브라우저, 앱, HTML, JavaScript, CSS 등예시: React, Vue, Angular, Native App2. Logic Tier (애플리케이션 로직)비즈니스 로직을 담당하는 계층서비스의 정책, 기능 등이 이곳에서 동작예시: Java(Spring), Python(Django), Node.js, .NET3..
✅ 백트래킹 (Backtracking) 정의백트래킹은 해를 찾는 도중에이 경로로는 정답이 나올 수 없다는 판단이 들면,되돌아가서 다른 경로를 시도하는 방식의 탐색 알고리즘입니다. 즉, 가능성이 없는 분기(branch)는 더 이상 탐색하지 않고 "되돌아가서(back)" 다른 선택지를 탐색한다는 의미입니다.📦 쉽게 말하면완전탐색을 하긴 하지만,쓸데없는 탐색을 줄이기 위해조건에 맞지 않으면 재귀를 끝내고 뒤로 돌아감🔁 백트래킹의 핵심 요소요소설명재귀(DFS)모든 선택지를 탐색함조건 체크현재 경로가 유망하지 않으면 중단원상복구재귀 호출 후에는 상태를 되돌림 (백트래킹)가지치기더 이상 유효하지 않으면 탐색 종료 (Pruning) 🎯 언제 쓰는가?상황설명모든 경우를 탐색하되, 조건이 있음예: 합이 특정 값..
SQL 조인의 의미와 종류: 깊이 있는 정리1. 조인의 본질: 왜 필요한가?SQL에서 조인(JOIN)은 둘 이상의 테이블을 논리적으로 연결하여 하나의 결과 집합을 만드는 연산입니다.이는 정규화된 데이터 모델에서 분리된 정보를 결합할 때 필수적이며, 관계형 데이터베이스의 핵심 개념 중 하나입니다.2. 조인 문법: Implicit vs Explicit2.1 Implicit Join (암시적 조인, 구식 문법)SELECT * FROM employees e, departments dWHERE e.dept_id = d.id AND e.salary > 5000;FROM 절에 테이블 나열만 하고, WHERE 절에서 조인 조건을 명시선택 조건과 조인 조건이 혼재되어 가독성이 떨어짐조인 조건 빠뜨리는 실수가 잦아, 실..

SQL에서의 NULL과 Three-Valued Logic: 반드시 알아야 할 핵심 개념 정리1. 들어가며SQL을 다룰 때 NULL은 종종 혼란을 불러일으키는 요소입니다. 단순히 "값이 없다"는 개념으로 이해하기 쉽지만, 실제로는 다양한 의미를 내포하고 있고, WHERE 절이나 JOIN, GROUP BY, NOT IN 등과 결합될 때 예상치 못한 결과를 만들어냅니다. 이 글에서는 SQL에서의 NULL의 개념과 Three-Valued Logic(3VL)의 동작 방식, 그리고 실무에서 주의할 점을 정리합니다. *강의 참고 - 유튜브 쉬운코드2. NULL의 의미SQL에서 NULL은 단순한 공백값이나 0이 아니라, 값이 존재하지 않음 또는 알 수 없음을 나타냅니다. 주요 의미는 다음과 같습니다:UNKNOWN: 해..