전체 글 222

#9 SQL

목차데이터베이스우리가 살아가는 세상에는 상상할 수 없을 만큼 방대한 양의 데이터가 존재하며, 지금 이 순간에도 끊임없이 새로운 데이터가 생겨나고 있다.예를들어, 아침마다 타는 지하철이 몇 시 몇 분에 어느역으로 도착하는지, 오늘 학교 식당의 메뉴는 무엇인지 같은 정보들도 모두 데이터다.이처럼 일상 속에서 생성되는 수많은 정보들을 효율적으로 저장하고 관리하는 공간이 바로 데이터베이스이다. 관계형 데이터베이스 (RDB: Relational Database)모든 데이터를 행(Row)과 열(Column)로 이루어진 테이블(Table) 형태로 저장하는 방식을 말한다.서로 다른 테이블끼리도 관계(Relation)를 맺어 데이터를 조합해서 활용이 가능하다. 이러한 RDB를 관리, 감독하기 위한 시스템을 RDBMS(R..

SQL/SQLD 2025.04.07

#8 트랜잭션과 NULL

목차트랜잭션(Transaction)트랜잭션은 데이터베이스에서 하나의 작업 단위를 말한다.여러 개의 데이터 처리 작업들을 하나로 묶어서, 전부 성공하거나 실패하도록 만드는 것이다. 왜 트랜잭션이 필요할까?데이터베이스는 정합성과 일관성을 지켜야 한다.하지만 여러 작업을 하다가 중간에 실패하면 데이터가 꼬일 수 있다. 예를 들어:은행계좌 이체 로직- "A 계좌에서 10만 원 출금"-"B 계좌에 10만원 입금" 이 둘은 항상 함께 이루어져야 한다. 하지만 출금은 됐는데 입금이 실패한다면?...-> 돈이 사라진다이는 정합성 붕괴를 말하며, 이를 방지하기 위해 트랜잭션이 필요하다. 트랜잭션의 특징A- 원자성 (Atomicity) : 트랜잭션은 전부 실행되거나 전혀 실행되지 않아야 한다.C- 일관성 (Consiste..

SQL/SQLD 2025.04.07

#7 반정규화(De-Normalization)

목차  반정규화데이터의 조회 성능을 향상시키기 위해 데이터의 중복을 허용하거나 데이터를 그룹핑하는 과정이다.반정규화 과정은 거치면 조회 성능은 향상될 수 있으나 입력, 수정, 삭제 성능은 저하될 수 있으며 데이터 정합성 이슈가 발생할 수 있다는 점이다. 정합성(整合性, Data Integrity)데이터가 일관성 있고, 정확하며 신뢰할 수 있는 상태를 유지하는 것을 말한다.즉, 데이터베이스에 저장된 데이터들이 논리적으로 모순 없이 서로 잘 들어맞고, 데이터의 상태가 시스템이 기대하는 규칙과 조건들을 잘 만족하고 있다는 뜻이다.만약 정합성이 무너진다면???- 고객의 계좌 잔액이 실제보다 더 많거나 적게 표시됨.- 주문 내역은 있는데 사용자 정보가 없음.- 중복 데이터, 누락된 데이터 발생.- 잘못된 통계를 ..

SQL/SQLD 2025.04.06

깃 허브 설명 및 명령어 정리

✅ Git 개념 정리1. 커밋(Commit)내 로컬 저장소에 변경사항을 기록하는 것하나의 스냅샷을 저장하는 것과 같음반드시 git add로 스테이지에 올린 후 git commit -m "메시지" 수행2. 풀(Pull)원격 저장소의 최신 변경사항을 가져오고 내 브랜치에 병합까지 하는 작업내부적으로 git fetch + git merge를 한 번에 수행명령어: git pull origin 브랜치명3. 푸시(Push)내 로컬 커밋들을 원격 저장소로 업로드하는 것명령어: git push origin 브랜치명4. 패치(Fetch)원격 저장소의 최신 커밋 정보를 가져오기만 하고 적용하지는 않음로컬 origin/브랜치명에만 반영되고 내 로컬 브랜치는 변하지 않음명령어: git fetch5. 브랜치(Branch)독립된..

카테고리 없음 2025.03.19

#6-2 리눅스 파일 시스템

파일 시스템(File System)리눅스의 ext2 파일 시스템 구조 설명 (Block Group 기반)리눅스에서 사용되는 ext 파일 시스템(ext2, ext3, ext4)은 디스크를 효율적으로 관리하기 위해 Block Group이라는 구조를 도입했다. 디스크를 여러 Block Group으로 나누어 관리함으로써 대규모 파일 시스템에서도 성능과 안정성을 유지할 수 있다. 이를 단계적으로 설명하면 다음과 같다: Disk DriveMBRReservedPartition 1Partition 2Partition N디스크 드라이브와 파티션Disk Drive: 데이터를 저장할 물리적 장치.MBR (Master Boot Record): 디스크의 첫 번째 섹터에 위치하며, 부팅 관련 정보와 파티션 정보를 포함.Reser..

리눅스 2025.01.09

#6-1 리눅스 파일 시스템

목차파일 시스템(File System)파일 시스템은 운영체제가 파티션이나 디스크에 데이터를 저장하고, 읽고 쓰고 찾기 위해 구성하는 일련의 체계를 말한다.그리고 이러한 파일 시스템은 운영체제가 사용자에게 제공하는 가장 기본적인 데이터 관리 인터페이스이다.사용자는 파일 시스템을 통해 데이터를 파일과 디렉토리 형태로 저장하고 접근하며, 파일의 이름, 크기, 경로, 권한 등의 메타데이터를 확인할 수 있다.파일 시스템은 사용자의 명령을 받아 디스크의 물리적 저장 위치와 데이터를 매핑하여 효율적으로 관리한다.예를 들어, 파일 생성, 삭제, 복사, 이동, 읽기, 쓰기 등의 작업은 파일 시스템을 통해 처리된다. 파일 시스템의 기능1. 데이터 저장 및 관리파일과 디렉토리 관리: 파일과 디렉토리를 생성, 수정, 삭제하며..

리눅스 2025.01.09

#5-2 리눅스 부팅과 셧다운

목차리눅스 부팅systemd타겟(target)타깃은 부팅 레벨, 특정 동기화 지점과 같이 유닛을 그룹화할 때 사용한다.'man systemd.target' 명령어를 입력해보면 타깃에 대한 설명을 볼 수 있다.주요 타겟 종류default.target:부팅 후 진입할 기본 타겟. 보통 multi-user.target 또는 graphical.target으로 설정됨.multi-user.target:그래픽 인터페이스 없이 멀티유저 텍스트 모드로 부팅.graphical.target:GUI 환경을 포함한 그래픽 모드로 부팅.rescue.target:최소한의 서비스만 실행된 복구 모드.기존의 init에서는 런레벨(SysVinit) 방식으로 정수(숫자)로 표현했다. 예를들어.. 0: 시스템 종료1: 단일 사용자 모드 (..

리눅스 2025.01.09

[프로그래머스, SQL, Oracle] 평균 일일 대여 요금 구하기

목차 문제 설명다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다. Column nameTypeNullableCAR_IDINTEGERFALSECAR_TYPEVARCHAR(255)FALSEDAILY_FEEINTEGERFALSEOPTIONSVARCHAR(255)FALSE 자동차 종류는 '세단', 'SUV', '승합차', '트럭', '리무진' 이 있습니다. 자동차 옵션 리스트는 콤마(',')로 구분된 키..

[프로그래머스, JAVA, LV.0] 옹알이 (1)

목차문제 설명머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항1 ≤ babbling의 길이 ≤ 1001 ≤ babbling[i]의 길이 ≤ 15babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.문자열은 알파벳 소문자로만 이루..

[프로그래머스 , JAVA, LV.0] 평행

목차문제 설명점 네 개의 좌표를 담은 이차원 배열  dots가 다음과 같이 매개변수로 주어집니다.[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요. 제한사항dots의 길이 = 4dots의 원소는 [x, y] 형태이며 x, y는 정수입니다.0 ≤ x, y ≤ 100서로 다른 두개 이상의 점이 겹치는 경우는 없습니다.두 직선이 겹치는 경우(일치하는 경우)에도 1을 return 해주세요.임의의 두 점을 이은 직선이 x축 또는 y축과 평행한 경우는 주어지지 않습니다.  dotsresult[[1, 4], [9, 2], [3, 8], [11,..