728x90

전체 글 168

[CS] 데이터 무결성과 정합성

- 데이터 무결성(Data Integrity) 개념 데이터 무결성이란 데이터 값이 정확한 상태를 의미한다.무결성을 지키는 것이 데이터 모델링의 최고 목표이다.Data Integrity가 주로 데이터 무결성으로 번역되나, 정확하다는 의미에서 데이터 완전성이나 정확성이라는 표현이 올바르다는 의견이 있다. - 데이터 정합성(Data Consistency)어떤 데이터들이 값이 서로 일치하는 상태를 의미한다.비정규형을 사용해 아노말리 (anomaly : 이상현상)가 발생하면 정합성이 지켜지지 않는다. - 무결성과 정합성의 예시 정합성은 지켜지지만 무결성이 지켜지지 않는 경우가 있다.ex) 무결성 훼손 예시 주문정보 테이블에서 고객번호가 모두 -1으로 입력되어 있고, 고객정보 테이블에도 -1의 값을 갖는 고객이 존..

DB 2025.03.15

DB Encryption

암호화 키 관리 법 - 컬럼 레벨 암호화 컬럼 레벨 암호화(Column-Level Encryption)는 데이터베이스에서 민감한 데이터를 특정 컬럼 단위로 암호화하여 저장하는 방법입니다.  이는 전체 데이터베이스나 테이블을 암호화하는 방법인 **TDE(Transparent Data Encryption)**와 달리,  지정된 컬럼의 데이터만 암호화하므로, 필요하지 않은 다른 데이터는 암호화하지 않아 성능을 최적화할 수 있습니다. 컬럼 레벨 암호화는 개인정보 보호법이나 보안 정책을 준수해야 하는 경우 유용하게 사용될 수 있습니다.  예를 들어, 고객의 신용카드 번호나 주민등록번호 등 민감한 정보를 암호화하여 저장하고,  그 외의 데이터는 암호화하지 않고 빠르게 접근할 수 있게 할 수 있습니다. 1. 암호화 ..

DB 2025.02.25

스위치

- 백본스위치(Backbone switch) 개념 - 네트워크의 중심. 방화벽, 워크그룹 스위치, 각종 서버가 접속하는 핵심영역으로,   많은 트래픽을 처리해야 해서 고가용성, 고성능, 고확장성이 확보되는 기가급 장비를 많이 사용한다.   이 장비의 성능이 안 좋으면 이곳에서 병목(bottleneck)이 걸릴 가능성이 많다. - 주로 L3스위치가 백본스위치 역할을 한다.   스위치를 그리지 않고 선으로만 표시하기도 한다.   (L3스위치는 처리속도가 빠르고, 데이터변환(LAN->WAN)을 할 필요가 없다.)   - Layer 스위치    L2 스위치 - L2 주소는 MAC 주소를 뜻합니다.    L2 스위치의 역할은 MAC주소를 보고 어떤 포트로 보낼것인지 컨트롤(스위칭)하는 장비를 말합니다.  스위치는..

Network 2025.01.10

Static/Dynamic Library

□ 정적라이브러리(Static Library) : 정적 라이브러리는 프로그램이 "컴파일할 때 링크"되어 실행 파일에 포함됩니다. 링크 방식은 실행 파일을 생성할 때 이 라이브러리의 모든 코드가 포함됩니다. 따라서 프로그램이 실행될 때 외부 라이브러리 파일이 필요하지 않습니다. 장점 :  1. 외부 의존성 적음 (모든소스 컴파일 타임에 링크되어, 실행 시 추가적인 라이브러리 로드 불필요, 라이브러리 자체만 있으면 실행가능) 2. 초기 로드 속도에서 유리 (정적 라이브러리는 실행 파일에 포함되어 있기 때문 별도로 로드할 필요가 없어 초기 로드 시간이 빠름) 3. 실행 속도에서 유리 (프로그램 실행시 정적라이브러리함수는 직접참조되기 때문에 호출 오버헤드가 적음) 단점 :  1. 더 큰 실행 파일 크기 (각 프..

CS 2025.01.10

고유 ID 생성 알고리즘 (SNOWFLAKE)

Snowflake 알고리즘은 분산 시스템에서 고유한 ID를 생성하기 위해 설계된 방법입니다. 이 알고리즘은 Twitter에서 개발되었으며, 여러 서버에서 동시에 ID를 생성할 때 발생할 수 있는 충돌을 방지하면서도 시간에 따라 정렬 가능한 ID를 생성합니다.Snowflake ID의 구조:Timestamp (41 bits): 밀리초 단위의 타임스탬프Datacenter ID (5 bits): 데이터 센터 식별자Worker ID (5 bits): 워커(서버) 식별자Sequence number (12 bits): 같은 밀리초 내에서 생성된 ID를 구분하기 위한 시퀀스 번호주요 특징:유일성: 분산 환경에서도 중복 없는 ID 생성정렬 가능: 시간 순서대로 정렬 가능높은 성능: 초당 수백만 개의 ID 생성 가능64비..

Algorithm 2024.07.22

컴파일, 링크, 빌드 [CS]

목표컴파일, 링크, 빌드 전체 과정을 이해한다.컴파일, 컴파일러 개념링크, 링커 개념빌드, 빌드툴 개념    빌드 과정1-1 빌드과정 1-1그림 1번은 컴파일(compile)에 해당한다. 1-1그림 2번은 링크(Link)에 해당한다. 1번과 2번 두과정을 합쳐서 빌드(Build)라고 한다.* 소스코드(원시코드) : 컴퓨터 프로그램을 (사람이 읽을 수 있는) 프로그래밍 언어로 기술한 글을 말한다.* 목적코드(목적파일) : 컴파일러나 어셈블러가 소스코드 파일을 컴파일 또는 어셈블해서 생성하는 파일이다.     컴파일, 컴파일러란?컴파일(Complile) : 원시 코드에서 목적 코드로 옮기는 과정을 말한다.그림 1-1 1번을 뜻한다.다시말해서 고급 언어(java, c언어, python 등)에서 저급 언어(기계..

CS 2024.07.03

네트워크 진단 #1

- tracert는 네트워크 연결 상태를 구체적으로 파악하는 데 사용되는 진단 도구이다. ping이 단순히 목적지 IP 주소의 통신 가능 여부를 확인하는 수준이라면, tracert는 패킷이 출발지에서 목적지까지 이동하는 길목 하나하나를 확인할 수 있다. - tracert와 traceroute는 같은 기능을 한다. 윈도우에서는 CMD를 통해 tracert로, 리눅스와 맥에서는 터미널을 통해 traceroute로 사용한다. - traceroute는 ping과 마찬가지로 목적지에 ICMP(Internet Control Message Protocol) 패킷을 보내는 방식으로 작동한다. 패킷은 출발지에서 목적지로 한 번에 이동하지 않고, 복수의 경로를 거치게 된다. 이때 각 구간을 홉(hop)이라고 부릅니다. 네..

Network 2024.07.03

Linux shell 조작법

- Linux bash shell 컨트롤 팁- bash 쉘에서만 사용할 수 있으므로, 사용중인 쉘 확인echo $SHELL- 만약 명령어가 작동하지 않을 경우 stty 설정 확인stty -a- Ctrl + w : 현재 위치로 부터 한 word 까지 잘라내어 클립보드에 저장- Ctrl + u : 커서 위치부터 커맨드라인의 맨 앞까지 잘라내어 클립보드에 저장- Ctrl + y :  클립보드에 있는 텍스트 붙여넣기- Esc + 0 (숫자0) : 커서를 커맨드라인의 맨 앞으로 이동- Ctrl + K : 커서 위치부터 커맨드라인의 맨 끝가지 잘라내어 클립보드에 저장cf) Ctrl + Insert(Shift) 와 Ctrl + U(Y)의 차이작동 환경: Ctrl + Insert는 주로 GUI 환경에서, Ctrl + ..

Linux 2024.07.03