전체 글 88

[SQLD] sqld 56회 간단 후기

56회 시험에 합격했다.시험 치고 나왔을 때는 80점대는 기본으로 나오고, 운 좋으면 90점 대도 나오지 않을까 기대했지만.. 90점은 무슨 ㅋㅋ 78점    일단 다른 기출은 안 풀어봤지만, 56회 차가 좀 쉽게 나온 게 아닌가 라는 생각을 해본다. 난 노랭이 책으로 공부했는데, 한 달 동안 1회독은 다 못하고, 개념정리 + 1과목 전체 + 2과목 70번대까지 풀었던 것 같다. (이렇게 보니까 진짜 가성비 좋게 땄네)  계획은 [노랭이책 1회독 하면서 모르는 개념 정리 -> 헷갈리거나 틀린 문제 2회독 -> 기출] 순서로 공부하려 했는데, 그 시기에 회사 일이 바쁜 데다 생각보다 모르는 개념도 많고 노랭이 문제도 어려워서 계획대로 하지 못했다. 근데 시험 쳐보니까 노랭이 책에 비해 시험이 너~~~~무 ..

회고록 2025.04.05

[Task Scheduler] 불규칙적인 task 처리 (동적 스케줄링) + 영속성 처리

불규칙적 상황? 동적 스케줄링?    개발을 진행하다 보면 특정 시점에 기능이 동작해야 하는 경우가 존재한다.trigger가 존재한다면 단순하게 trigger 메서드에서 target 메서드를 실행하면 되지만, trigger가 시간인 경우 어떻게 처리할 수 있을까?  예를 들어 '예약 서비스'에서 사용자가 특정 시간에 예약을 했을 때, 예약 시간 10분 전에 알림을 보내는 기능을 생각해 보자.사용자의 예약 시간은 정기적인 것이 아니라 랜덤 하기 때문에 'cron 식'을 사용한 단순 scheduler'를 사용한다면 상당히 비효율적일 것이다.  사용자 예약 시간을 다음처럼 가정해 보자예약 시간-> 10:30, 12:00, 17:00  이 경우 cron 식을 사용해서 처리하려면 30분 단위로 계속해서 예약이 존..

[SQLD] JOIN

JOIN   JOIN여러 테이블의 데이터를 동시에 출력하거나 참조할 때 사용하는 방법으로, 여러 테이블의 데이터를 결합하여 하나의 조합 결과로 만드는 기능이다일반적으로 'PK'나 'FK'의 연관에 의해 JOIN이 성립된다단, 'PK'나 'FK' 관계가 없더라도 '논리적인 값들의 연관'만으로도 JOIN이 성립되기도 한다JOIN 할 테이블이 여러 개더라도, 데이터 처리 과정에서는 한 번에 최대 2개만 JOIN 된다ex) FROM A, B, C -> A JOIN B가 먼저 실행되고, 그 결과에 C가 JOIN 됨N개의 테이블 조인 시, 최소 N-1개의 조인 조건이 필요하다Standard Join은 [INNER, CROSS, NATURAL, OUTER] 이다순수 관계 연산자는 [SELECT, PROJECT, JO..

DataBase 2025.03.02

[SQLD] SQL절 (SELECT, FROM, WHERE, GRUOP BY, HAVING, ORDER BY)

SELECT  SELECT 문의 구조총 6개의 절로 구성되어있고, 각 절의 순서대로 작성해야 한다SELECT (DISTINC) * / 컬럼명 / 표현식FROM 테이블명/뷰명WHERE 조건GROUP BY 그룹화 기준 컬럼명HAVING 그룹핑 필터링 조건ORDER BY 정렬기준 컬럼명별칭을 만들기 위해 AS를 사용할 수 있다생략 가능하다별칭은 결과에만 적용되며, 실제 DB 테이블에는 영향이 없다HAVING이나 WHERE 절에서는 사용할 수 없다예약어를 사용할 수 없다'오라클'에서 테이블 별칭을 명시할 때 AS를 사용할 수 없다DISTINCT는 중복된 데이터가 있는 경우, 1건으로 처리해서 출력한다  SELECT 문의 내부 실행 순서SELECT 문의 내부 쿼리 실행 순서는 작성 순서와 다르다FROM      ..

DataBase 2025.02.25

[SQLD] 관계형 데이터베이스 개요, SQL, 데이터 무결성, 제약 조건

관계형 데이터베이스(Relational Database, RDB)   RDB 구성요소계정: 데이터의 접근 제한을 위해 업무별/시스템별로 존재테이블: DBMS의 데이터베이스 안에 데이터가 저장되는 형식스키마: 테이블이 어떠한 구성으로 이루어져 있는지를 말함. 즉, 테이블의 기본적인 구조 정의  RDB 특징데이터의 분류, 정렬, 탐색 속도가 빠르다신뢰성이 높고 데이터의 무결성이 보장된다기존의 작성된 스키마를 수정하기 '어렵다'DB의 부하를 분석하는 것이 '어렵다'   테이블(Table)테이블행/열의 2차원 구조랄 가진 데이터 저장 객체RDB의 기본 단위릴레이션이 곧 테이블이다컬럼/열(Column)필드(Field)라고도 한다테이블에서 세로 방향으로 이루어진 개별 속성더 이상 나눌 수 없다로우/행(Row)레코드..

DataBase 2025.02.24

[SQLD] 트랜잭션

트랜잭션   트랜잭션데이터베이스에서 하나의 논리적 작업 단위를 의미여러 개의 작업이 하나의 트랜잭션으로 묶여, 모두 성공하거나 모두 실패하도록 보장함이를 통해 데이터의 무결성과 일관성을 유지할 수 있다  트랜잭션의 4가지 특성(ACID)Atomicity(원자성)트랜잭션 내의 모든 작업이 '완전히 수행'되거나, '전혀 수행되지 않아야' 한다Consistency(일관성)트랜잭션이 완료된 후, 데이터베이스는 항상 일관된 상태를 유지해야한다즉, 트랜잭션 실행 전 데이터베이스에 문제가 없었다면, 실행 후에도 문제가 없어야 한다Isolation(격리성)트랜잭션은 독립적으로 수행되어야 한다따라서 동시에 실행되는 트랜잭션들은 서로의 작업에 영향을 주지 않아야 한다Durability(지속성)트랜잭션이 성공적으로 완료되면..

DataBase 2025.02.23

[SQLD] 식별자

식별자  식별자엔터티 내의 각 인스턴스를 고유하게 구분하기 위한 속성, 혹은 속성들의 집합을 의미식별자를 통해 데이터의 무결성과 효율적인 관리를 보장할 수 있다비식별자인스턴스를 식별하는데 사용되지 않는 속성으로, 인스턴스를 유일하게 식별하는데 영향을 미치지 않는다예를들어 '이름', '닉네임', '성별' 처럼 중복될 수 있는 속성은 인스턴스를 식별할 수 없기에 비식별자이다  주식별자의 주요 특징유일성주식별자에 의해 엔터티 내 모든 인스턴스가 유일하게 구분되어야 한다최소성주식별자를 구성하는 속성의 수는, 유일성을 만족하는 최소한의 수로 구성되어야 한다불변성주식별자가 한번 특정 엔터티에 지정되면, 그 식별자의 값은 변하지 않아야 한다존재성주식별자의 값은 반드시 존재해야 하며, NULL 값을 가질 수 없다  식..

DataBase 2025.02.13

[SQLD] 데이터모델링의 관계

관계   관계두 엔터티 간의 논리적인 연관성을 의미엔터티의 인스턴스들이 서로 어떻게 연관되어 있는지를 나타낸다  관계의 개념적 분류존재에 의한 관계한 엔터티가 다른 엔터티에 속하거나 포함되는 등, 존재 자체로 형성되는 관계ex) 학생 - 학과: '소속된다'라는 관계는 학생이 학과에 속하는 존재적 관계임행위에 의한 관계엔터티 간의 상호작용이나 행위를 통해 형성되는 관계ex) 고객 - 상품: '주문한다'라는 관계는 고객이 상품을 주문하는 행위에 의해 형성되는 관계임  ERD에서의 관계ERD에서는 '존재에 의한 관계'와 '행위에 의한 관계'를 구분짓지 않고 동일한 표기법을 사용한다(단일화된 방식) ERD에서 관계 표기법관계명두 엔터티 간의 관계를 나타내는 '동사(Verb)' 형태의 이름관계 차수1:1, 1:N..

DataBase 2025.02.11

[SQLD] 함수 종속성, 정규화, 반정규화

함수 종속성 (Functional Dependency)   함수 종속성(Functional Dependency)특정 속성이 다른 속성을 결정하는 관계를 의미X -> Y == X가 Y를 함수적으로 결정 == X의 값이 정해지면 Y의 값이 항상 고유하게 결정된다잘못 설계된 함수 종속성을 정규화를 통해 제거하면 데이터 무결성 보장, 중복 제거, 저장 공간 절약, 성능 개선 등의 이점이 있다ex) '사원' 테이블 == '사원번호' -> '이름' 의 함수 종속성이 존재: '사원번호'가 정해지면 그에 해당하는 고유한 '이름'이 정해지지만, '이름'은 여러 개가 존재할 수 있으므로 이에 대응하는 '사원번호'가 유일하지 않을 수 있기 때문  함수 종속성의 유형완전 함수 종속 (Full Functional Depende..

DataBase 2025.02.11

[SQLD] 엔터티, 속성, NULL 속성 및 관련 함수

Entity(엔터티)   엔터티업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로, 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합1976년 '피터 첸'에 의해 Entity-Relationship Model이라는 표기법이 만들어짐  엔터티 조건반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다유일한 식별자와 유일한 이름을 가져야 한다두 개 이상의 영속성 인스턴스의 집합이어야 한다(싱글톤 제외)두 개 이상의 속성(attribute)을 가져야 한다다른 엔터티와 최소 한 개 이상의 관계를 가져야 한다엔터티는 업무 프로세스에 의해 이용되어야 한다  엔터티의 발생 시점에 따른 분류기본 엔터티(Fundamental..

DataBase 2025.02.05