분류 전체보기 65

OSI 7계층의 네트워킹 장비 및 주요 프로토콜

다음은 OSI 7계층과 각 계층에 대응되는 네트워킹 장비 및 주요 프로토콜에 대한 간략한 설명입니다. OSI 모델은 네트워크 통신을 계층별로 분리하여 설명하며, 각 계층은 특정 기능을 수행하고 그에 맞는 장비와 프로토콜이 사용됩니다.1. 물리 계층 (Physical Layer)역할: 비트(0과 1)로 데이터를 전송하며, 전기적 신호, 광 신호, 무선 신호 등을 통한 물리적 매체로 데이터가 전달됩니다.네트워킹 장비:허브 (Hub): 들어온 신호를 단순히 여러 포트로 재전송하는 장치.리피터 (Repeater): 약해진 신호를 재생성하여 전송 거리 연장.케이블 (동축 케이블, 광섬유 등): 데이터를 전송하는 물리적 매체.프로토콜:Ethernet (IEEE 802.3): 물리 계층과 데이터 링크 계층에서 사용되..

정보처리기사 2024.09.26

보안 공격 기법

보안 공격 방법은 다양한 방식으로 이루어질 수 있으며, 이를 카테고리별로 나누면 더 이해하기 쉽습니다. 주요 공격 방법을 크게 네트워크 기반, 소프트웨어 기반, 사회 공학, 암호화 공격 등으로 분류할 수 있습니다.1. 네트워크 기반 공격네트워크를 통해 이루어지는 공격입니다.DoS/DDoS (서비스 거부 공격): 대량의 트래픽을 보내 서버나 네트워크를 과부하시키는 공격입니다. DDoS는 여러 시스템이 동시에 공격을 수행합니다.목적: 서비스를 마비시키거나 느리게 만듭니다.MITM (중간자 공격, Man-in-the-Middle Attack): 두 통신 주체 사이에 공격자가 중간에 끼어들어 데이터를 훔치거나 변조하는 공격입니다.목적: 통신 내용 가로채기, 데이터 변조.스니핑 (Sniffing): 네트워크를 통..

정보처리기사 2024.09.24

병행 수행 및 병행 제어

병행 수행 (Concurrency Control) 병행 수행은 데이터베이스 관리 시스템(DBMS)에서 여러 사용자가 동시에 데이터에 접근하고 작업을 처리할 수 있도록 하는 기술입니다. 데이터베이스는 여러 사용자가 동시에 데이터를 삽입, 수정, 삭제 등의 작업을 할 때 그 결과가 정확하고 일관성을 유지하도록 보장해야 합니다. 병행 수행은 이러한 동시에 발생하는 작업을 효율적으로 관리하여 데이터 무결성 및 일관성을 유지하는 것을 목표로 합니다.병행 수행의 필요성성능 향상: 여러 트랜잭션을 동시에 처리하면 시스템 자원을 효율적으로 사용하고 응답 시간을 줄일 수 있습니다.공유 자원의 활용: 다수의 사용자가 동일한 데이터에 접근할 수 있도록 하여 자원을 최대한 활용합니다.데이터 일관성 유지: 동시에 여러 트랜잭션..

정보처리기사 2024.09.24

해시충돌 해결법과 예제

충돌 해결 방법은 해시 테이블의 중요한 부분이며, 성능과 저장 공간 효율성에 영향을 미칩니다.아래에서 자주 사용되는 충돌 해결 방법과 그 차이를 설명하겠습니다.1. 선형 조사법 (Linear Probing)방법: 충돌이 발생하면 해시 테이블의 다음 빈 슬롯을 순차적으로 탐색하여 데이터를 저장.예시: 만약 h(k)=kmod  11h(k) = k \mod 11h(k)=kmod11에서 충돌이 발생하면, 그 다음 슬롯을 확인하는 방식으로 충돌을 해결합니다.장점:간단한 구현.데이터가 해시 테이블 내에 하나의 연속된 메모리 공간에 저장되므로 메모리 캐시 효율이 좋음.단점:클러스터링(한 곳에 연속적인 데이터가 몰리는 현상)이 발생할 수 있어, 테이블의 로딩이 높아질수록 성능이 급격히 저하됨.데이터가 연속된 공간에 저..

정보처리기사 2024.09.24

[MySQL] 비율별로 등급나누기 NTILE, PERCENT_RANK

프로그래머스 대장균의 크기에 따라 분류하기2https://school.programmers.co.kr/learn/courses/30/lessons/301649 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  # NTILE 풀이WITH COLONYGROUPS AS (SELECT ID, NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) AS GROUPRANKFROM ECOLI_DATA)SELECT ID, CASE WHEN GROUPRANK = 1 THEN 'CRITICAL' ..

SQL 2024.08.23

[MYSQL] 프로그래머스: 재귀문 (recursive) 사용하기 + 예제

WITH와 함께 recursive를 쓰면 재귀 서브쿼리를 만들 수 있다.구조는 do while문과 비슷한데, anchor member 부분에 초기 세팅 쿼리를 작성하고아래의 recursive member에 반복할 쿼리를 작성한 뒤union all로 두 쿼리를 이어주면 된다.가장 아래에는 재귀쿼리릐 중단조건을 작성해줘야 한다. 1. 프로그래머스 : 입양 시각 구하기(2)WITH RECURSIVE hours AS ( SELECT 0 AS hour UNION ALL SELECT hour + 1 FROM hours WHERE hour 0시부터 23시까지 각 시간대별로 발생한 입양 건수를 구하는 문제입니다.입양이 없었던 시간도 표시해야 하므로 0부터 23까지 틀을 만들어주기 위해 재귀쿼리가 필요합..

SQL 2024.08.06

[udemy] 데이터 베이스 엔지니어링 - 데이터베이스 내부 이해

1. 테이블과 인덱스가 디스크에 어떻게 저장되는지테이블은 행기반 / 열기반에 따라 저장 형태가 달라짐(행기반일 경우) 각 행별로 저장되며 페이지 단위로 저장됨-> 읽어올 때 한 행만 읽어오는 것이 아닌, 페이지 단위로 읽어온다페이지들은 '힙'이라는 자료구조에 저장되는데, 여기에 접근해서 데이터를 읽어오는 것은 큰 비용이 드는 일임-> 인덱스를 사용하면 비용을 줄일 수 있음- 인덱스 : 힙을 가리키는 포인터를 모아둔 자료구조 2. 행 기반 vs 열 기반 데이터베이스행 기반 데이터베이스열 기반 데이터 베이스읽기/쓰기에 최적화쓰기가 느림OLTP ( '운영'계 데이터 처리)OLAP ( '분석'계 데이터 처리)압축에 유용하지 않음압축에 좋음집계에 유용하지 않음집계에 좋음다중 컬럼에 유용한 쿼리다중 컬럼에 비효율적..

온라인강의 2024.07.03

[udemy] 데이터 베이스 엔지니어링 - Durabiltity

Durabiltity지속성은 고객이 데이터베이스에 만든 권한을 비휘발성 시스템 저장소에 지속시키는 과정입니다. 하지만 지속성을 위해서는 디스크에 저장해야 하므로 '느리다'고 말하곤 합니다.그래서 Postgre 데이터베이스는 메모리에 저장한 후 스냅샷을 찍어 디스크에 백업하므로 '빠르다'라는 점을 강조하기도 합니다. 다시 돌아와, 커밋된 트랜잭션에 의해 변경된 것들은 SSD, 하드드라이브같은 비휘발성 저장소에 저장되어야 합니다.지속성을 보장하기 위해서는 어떤 과정을 거칠까요? 디스크에 실제로 기록하고 지속성을 갖기 위해서는 시간이 걸리기 때문에 사용되는 몇가지 기술이 있습니다. 1. WAL그래서 데이터베이스에서는 변경 사항의 버전인 '델타'만 적용합니다.그리고 쓰기 전용 로그인 write ahead log..

온라인강의 2024.07.01

[udemy] 데이터 베이스 엔지니어링 - Consistency

Consistency일관성이란, 실제로 디스크에 있는 것과 데이터 모델이 일치해야한다는 원칙입니다.데이터가 디스크에서 일관성을 유지할 수 있지만, 데이터의 읽기는 여러 인스턴스가 동기화되지 않아 일관성이 없어질 수 있습니다. 참조무결성에 의한 불일치가 발생할 수 있습니다.예를 들어, 다음과 같은 데이터베이스가 있습니다.PICTURE_ID  (PK)BLOBLIKES1xx52xx1USER (PK)PICTURE_ID (PK) (FK)Jon1Edmond1Jon2Edmond4 1번 사진에 대한 좋아요는 5개이지만, 실제 2명의 유저만 좋아요를 누른 상태입니다.이는 좋아요를 눌렀다 취소하는 이벤트를 LIKES에 반영하지 않아 일관성이 깨진 경우입니다. 또한, Edmond는 4번 사진에 좋아요를 누른 기록이 있지만,..

온라인강의 2024.07.01

[udemy] 데이터 베이스 엔지니어링 - Atomicity

Atomicity원자성이란, 한 트랜잭션의 모든 쿼리는 성공해야 한다는 원칙입니다.즉 한 트랜잭션이 데이터베이스의 작업 단위이며, 분할될 수 없습니다.모종의 원인으로 실패한 쿼리가 있을 경우 해당 트랜잭션은 롤백되어야 합니다.만약 데이터 베이스가 다운되어 롤백할 수 없다면,데이터베이스가 다시 실행된 후 쿼리들이 성공했더라도 실패했다고 인지해야 합니다.해당 트랜잭션이 최종적으로 커밋되지 않았기 때문입니다.하지만 이러한 처리 방식은 데이터베이스의 종류에 따라 다릅니다. 예를들어, 다음과 같은 장부가 있습니다. ACCOUNT_IDBALANCE1$10002$500 Account 1에서 Account 2로 100$를 보낸다면 1. Account 1에서 -$1002. Account 2에서 +$100두 개의 쿼리가 ..

온라인강의 2024.07.01