본문 바로가기

전체 글124

[데이터베이스] 데이터베이스 정규화 (1NF ~ BCNF) 데이터베이스 설계의 핵심! 테이블의 중복을 제거하고, 무결성을 보장하기 위한 과정이 바로 정규화(Normalization)입니다.정규화 1단계부터 5단계까지, 그리고 실무에서 어떻게 쓰이는지 한눈에 정리해보겠습니다.🔧 1. 제1정규형 (1NF): 원자값으로 분해하라!정의: 테이블의 모든 컬럼이 원자값(Atomic Value)을 가져야 한다.즉, 하나의 셀에 여러 개의 값이 들어가면 안 됨!예시 (정규화 전):학번이름수강과목1001홍길동DB, 알고리즘 → 정규화 후:학번이름수강과목1001홍길동DB1001홍길동알고리즘 ✅ 포인트: 반복 컬럼이 있으면 안 됩니다.🔧 2. 제2정규형 (2NF): 부분함수 종속 제거조건:1NF 만족기본키가 복합키일 경우, 일부 키에만 종속된 속성 제거예시 (정규화 전): 학번.. 2025. 5. 24.
[데이터베이스] 키, 슈퍼키, 후보키, 기본키 1️⃣ 슈퍼키(Super Key) – "일단 유일하면 다 슈퍼키"슈퍼키는 테이블의 튜플(레코드)을 유일하게 식별할 수 있는 컬럼(또는 컬럼들의 집합)을 말합니다.즉, 겹치지만 않으면 다 슈퍼키입니다.예를 들어 학생 테이블이 있다고 가정합시다:학번이름생년월일2023001홍길동2000-01-012023002김철수1999-12-31 여기서 유일하게 식별 가능한 조합들:학번학번 + 이름학번 + 생년월일학번 + 이름 + 생년월일이 전부 슈퍼키입니다.즉, 유일성만 만족하면 다 슈퍼키입니다.2️⃣ 후보키(Candidate Key) – "진짜 꼭 필요한 것만 남기자"슈퍼키 중에서 더 이상 뺄 수 없는 최소한의 컬럼 조합, 그게 바로 후보키입니다.즉, 유일성 + 최소성을 만족하는 키죠.위 예시에서:학번 → ✅ 유일 + .. 2025. 5. 24.
2024년 정보통신기사 필기 후기 2024년 정보통신기사 필기 후기   2024년 10월 15일, 가락시장역 IT벤처타워에서 정보통신기사를 보고 왔습니다.CBT 시험 마지막에 제출을 누르면 각 과목 점수와 평균이 나와, 합불합을 알 수 있습니다.시험 직후 나온 결과는 55점 55점 70점 60점 80점으로 합격이었습니다.  필기 시험 난이도 체감 1과목부터 풀이를 시작하면서, CBT 문제와는 전혀 다른 생소한 문제들이 많다는 것을 느꼈습니다. 체감상 CBT와의 연계성은 약 15~20% 정도로 매우 낮았습니다. 물론 CBT 문제를 푸는 것도 중요하지만, 문제와 답을 외우는 방식보다는 이론 학습이 더 중요하다고 느꼈습니다. 다행히 저는 CBT 문제 풀이에만 의존하지 않고, 이론 학습도 함께 병행했기 때문에 합격할 수 있었습니다.   필기 시.. 2024. 10. 20.
IPSec(Internet Protocol Security) IPSec(Internet Protocol Security)은 인터넷 프로토콜(IP)에서 데이터를 보호하기 위한 보안 프레임워크입니다.Layer 3에서 암호화를 제공하며, 인증을 통해 데이터의 기밀성, 무결성, 그리고 송신자의 신원을 보장합니다. 🔹 1단계: IKE Phase 1 – 보안 협상 채널 만들기 (ISAKMP SA)목적: 양 끝단 장비 간 신뢰를 확보하고, 암호화된 터널을 만드는 것📦 과정단계설명1. Initiator가 협상 시작서로의 정책(ISAKMP policy: 암호화, 해시, 인증, DH 그룹 등) 비교2. DH(Diffie-Hellman) 키 교환공유 비밀 키를 계산할 재료 준비3. 인증 방식 처리Pre-shared Key, RSA, X.509 등으로 상대 인증4. ISAKMP.. 2024. 9. 20.
[MongoDB] Chat MongoDB는 mysql과는 다르게 Database를 만들고, User를 생성한다. DB생성 use chat user생성 db.createUser({ user: "root", pwd: "root", roles: [ "readWrite", "dbAdmin" ] }) - 유저와 채팅하기 (view - 도서 donation) "채팅하기 버튼"을 눌렀을 시 1. [be] 채팅방 생성 2. [be] 웹소켓 연결 3. [be] 채팅방 구독 4. [fe] 채팅방으로 이동 - 하단 "Chat" 누르면 1. [be] 웹소켓 연결 2. [fe] 채팅방 리스트 이동 3. [be] 채팅방 리스트 조회 내려주기 - "유저와 채팅"을 눌렀을 시 1. [be] 채팅방 구독 2. [be] 채팅 기록 가져오기 - 채팅방 나갔을 시 .. 2023. 11. 9.
채팅 프로젝트 현재 중고책 기부 프로젝트를 진행하고 있습니다. 유저들끼리 중고책 기부를 하기 위해 채팅이 필요하며, 다수가 참여하는 유저 채팅보다는 일대일 채팅만 필요한 상황입니다. 일대일 채팅만 구현해야 한다고 가정 user1이 user2 에게 채팅 신청을 한다. user2는 user1이 채팅 신청한 것을 알아야 한다. user1 user2의 채팅방이 데이터 베이스에 저장된다. user1, user2는 각각 해당 채팅방을 검색할 수 있어야 한다. 어떻게 저장을 하는 것이 효율적일까? 해당 채팅방에 채팅을 하면, 채팅을 한 사람이 누군지만 기록하면 된다. 채팅 기록은 채팅방 id 와 연관관계를 형성하고 있기 때문이다. 기본적인 스키마 디자인 ChatRoom: chatRoomId (PK) participant1 (use.. 2023. 10. 29.