분류 전체보기 41

[SQLD] 데이터 모델과 SQL

성능 데이터 모델링데이터베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 성능 데이터 모델링 특징데이터가 빠르게 증가할 수록 성능 저하가 발생하기 쉬우며, 이를 개선하기 위한 비용도 증가한다.데이터 모델은 성능 튜닝 과정에서 변경될 수 있다.이는 성능을 최적화하기 위해 모델 구조가 조정될 수 있음을 의미한다.분석 및 설계 단계에서 성능을 고려하여 데이터 모델링을 수행하면, 성능 저하로 인한 Rework 비용을 최소화할 수 있는 기회를 가지게 된다. 성능 데이터 모델링 수행 절차정규화 수행 : 데이터의 중복을 줄이고 무결성을 유지하기 위해 데이터 모델링 시 정확하게 정규화를 수행한다.데이터베이스 용량 산정 : 데이터베이스가 처리할..

certification/SQLD 2024.11.11

[SQLD] 데이터 모델링의 이해

데이터 모델링데이터를 체계적으로 구조화하여 데이터베이스에 효과적으로 저장하고 관리할 수 있도록 설계하는 과정정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법이다.현실 세계의 데이터(what)에 대해 약속된 표기법으로 표현하는 과정이다.데이터베이스를 구축하기 위한 분석/설계의 과정이다. 데이터 모델링의 3요소개체(Entity)속성(Attribute)관계(Relationship) 데이터 모델링의 특징추상화(Abstraction)현실 세계의 데이터를 일정한 형식에 맞추어 표현한다. 즉, 아이디어나 개념을 간략하게 표현하는 과정이다.단순화(Simplification)복잡한 현실 세계의 데이터를 제한된 언어나 정해진 표기법으로 단순하고 쉽게 표현한다.명확화(Clarity)불분명함을 제거하고 누구나 이해..

certification/SQLD 2024.10.28

[DB] 트랜잭션의 4가지 특성(ACID)

트랜잭션(Transaction)💡 데이터베이스 관리 시스템(DBMS)에서 데이터의 상태를 변환시키는 하나의 작업 단위사용자가 수행하는 일련의 작업들을 하나의 논리적 단위로 묶은 것으로, 주로 데이터베이스의 일관성을 유지하기 위해 사용된다. 트랜잭션의 특성(ACID)원자성(Atomicity)트랜잭션 내의 작업이 모두 완벽하게 실행되거나, 전혀 실행되지 않아야 함을 의미한다. 트랜잭션의 수행 중 일부만 완료되는 상황은 발생할 수 없고, 성공하면 모든 작업이 완료되고, 실패하면 모든 작업이 취소되어야 한다. 이로 인해 트랜잭션 내의 작업들이 하나의 단일 작업처럼 취급된다. 예시은행에서 계좌 이체를 할 때, 송금 계좌에서 출금과 수신 계좌에 입금이 하나의 트랜잭션이다. 이 두 작업 중 하나라도 실패하면, 전체 ..

[Network] ARQ

ARQ(Automatic Repeat Request)자동 재전송 요청을 의미하며, 데이터 통신에서 오류가 발생했을 때 데이터의 신뢰성을 보장하기 위한 메커니즘 송신된 데이터에서 오류가 감지되거나, 송신자가 ACK를 받지 못했을 때 자동으로 재전송을 요청하는 방식이다.이를 통해 네트워크 상에서 데이터 무결성을 보장하고, 오류가 있는 데이터를 수신자에게 올바르게 전달할 수 있게 해준다.용어 정리ACK(Acknowledge) : 수신 측에서 이상 없이 프레임을 받았을 경우에 보내는 확인 응답NAK(Negative Acknowledge) : 프레임을 제대로 전송받지 못한 경우 송신 측에서 보내는 신호ARQ의 종류Stop-and-Wait ARQ 방식수신 측으로부터 ACK를 받을 때까지 대기하는 방식한 번에 하나..

[Network] 네트워크 프로토콜의 기본 요소, 특징, 예시

프로토콜(Protocol)💡 컴퓨터 네트워크에서의 프로토콜은 서로 다른 시스템이나 기기들 간의 데이터 교환을 원할히 하기 위해 표준화된 통신 규약 프로토콜의 기본 요소기본 요소설명구문(Syntax)시스템 간의 정보 전송을 위한 데이터 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정의미(Semantic)시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 규정타이밍(Timing)시스템 간의 정보 전송을 위한 속도 조절과 순서 관리를 규정 프로토콜의 특징단편화(Fragmentation)전송이 가능한 작은 블록으로 나누어지는 기법 네트워크를 통해 전송되는 데이터는 여러 이유로 작게 분할될 필요가 있다.예를 들어, 각 네트워크는 최대 전송 단위(MTU)가 다..

[SW] V-모델과 테스트 레벨

V-모델(V-Model)소프트웨어 개발 생명 주기(SDLC) 모델 중 하나로,각 단계별로 개발자 관점에서의 공정 과정상 검증과 사용자 관점에서의 최종 산출물에 대한 확인을 지원하기 위한 테스트 모델V-모델은 폭포수 모델(Waterfall Model)의 발전된 형태로, 단계별 테스트를 강조하는 것이 특징이다.테스트 레벨(Test Level)소프트웨어 개발 과정에서 각 단계에 맞게 수행되는 테스트의 수준함께 편성되고 관리되는 테스트 활동의 그룹이다.프로젝트에서 책임과 연관되어 있다.각각의 테스트 레벨은 서로 독립적이다.V-모델과 테스트 레벨 단위 테스트(Unit Test)소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춘 테스트사용자의 요구사항을 기반으로 한 기능성 위주의 테스트를 수행한다.명세..

[SW] 테스트 시각에 따른 분류(검증, 확인)

검증(Verification)💡 소프트웨어가 명세서나 요구사항에 맞게 제대로 구현되고 있는지 확인하는 과정우리가 올바르게 소프트웨어를 만들고 있는가?소프트웨어 개발 과정을 테스트한다.올바른 제품을 생산하고 있는지 검증한다.이전 단계에서 설정된 개발 규격과 요구를 충족시키는지 판단한다.개발자 혹은 시험자의 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정이다. 확인(Validation)💡 소프트웨어가 사용자의 요구사항을 제대로 충족하는지를 실제 환경에서 테스트하는 과정우리가 올바른 소프트웨어를 만들었는가?소프트웨어 결과를 테스트한다.만들어진 제품이 제대로 동작하는지 확인한다.최종 사용자 요구 또는 소프트웨어 요구에 적합한지 판단한다.사용자의 시각으로 올바른 소프트웨어가 개발되었는지 ..

[SW] 테스트 기법에 따른 분류(화이트박스 테스트, 블랙박스 테스트)

화이트박스 테스트(White-Box Test)💡 소프트웨어의 내부 구조와 코드 로직을 이해하고, 내부에서 코드가 올바르게 동작하는지를 테스트하는 방법설계된 절차에 초점을 둔 구조적 테스트이며, 테스트 과정의 초기에 적용된다.내부 소스 코드의 동작을 개발자가 추적할 수 있기 때문에, 동작의 유효성 뿐만 아니라 실행되는 과정도 확인할 수 있다.소스 코드의 모든 문장을 한 번 이상 수행함으로써 진행된다.산출물의 기능별로 적절한 프로그램의 제어 구조에 따라 선택이나 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.구조 기반 테스트, 코드 기반 테스트, 로직 기반 테스트, 글래스(Glass) 박스 테스트라고도 부른다. 화이트박스 테스트의 유형  블랙박스 테스트(Black-Box Test)💡 소프트웨어의..

[Network] TCP 연결 해제 과정(4-way 핸드셰이크)

TCP 연결 해제 과정(4-way 핸드셰이크)TCP 연결을 설정할 땐 3-way 핸드셰이크가 사용되지만, 연결을 해제할 때는 양방향에서 안전하게 데이터 전송이 종료되었음을 확인하기 위해 4-way 핸드셰이크가 사용된다. 1. FIN 전송(송신자 → 수신자)데이터 전송이 끝난 송신자가 더 이상 데이터를 전송할 필요가 없으면, FIN 플래그가 설정된 패킷을 수신자에게 보낸다.이 FIN 패킷은 "더 이상 데이터를 보내지 않겠다"는 신호이다. 2. ACK 전송(수신자 → 송신자)수신자는 FIN 패킷을 받으면 ACK 패킷을 송신자에게 보낸다이 ACK 패킷은 "FIN 패킷을 잘 받았다"는 응답이다.이 시점에서 수신자는 송신자가 더 이상 데이터를 보내지 않는다는 것을 알게된다.그러나, 수신자는 여전히 데이터를 보낼 ..

[DB] 정규화, 이상 현상, 함수 종속, 반 정규화

정규화(Normalization)관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 테이블을 여러 단계로 나누는 과정(무손실 분해하는 과정) 정규화 단계(원부이 결다조)단계조건제1정규형(1NF)원자값으로 구성제2정규형(2NF)부분 함수 종속 제거(완전 함수적 종속 관계)제3정규형(3NF)이행 함수 종속 제거보이스-코드 정규형(BCNF)결정자 후보 키가 아닌 함수 종속 제거제4정규형(4NF)다치(다중 값) 종속 제거제5정규형(5NF)조인 종속 제거 1. 제1정규형(1NF; First Normal Form)모든 속성이 원자값을 가져야 한다. 즉, 각 칸에 하나의 값만 저장되어야 한다.테이블 내의 속성값은 원자값을 가지고 있어야 한다.원자값 : 쪼..