본문 바로가기

컴퓨터공학

(44)
[1일1cs] 네트워크 토폴로지 네트워크 토폴로지는 앞서 말한 네트워크 즉 노드와 링크가 어떻게 연결되어 있는 지에 대한 방식이다. 1. 트리 토폴로지는 말그대로 트리 모양을 한 계층형 구조이다. 트리 토폴로지는 노드 추가 및 삭제가 쉽지만 특정 노드에 트래픽이 집중 된다면 하위 노드에 영향을 끼칠 수 있다. 병목 현상 역시 발생할 수 있다. 2. 버스형 토폴로지 중앙 회선 하나에 여러 클라이언트가 연결된다. 이는 근거리 통신망 (LAN)에서 사용한다. 이는 중앙 회선 하나에 연결 하면 되므로 설치 비용이 적고 신뢰성이 우수하며 노드를 추가 삭제하기가 쉽다. 허나, 스푸핑이 가능하다는 단점이 있다. * 여기서 스푸핑이란, 근거리 통신망 상에서 패킷송신을 관리하는 스위칭 기능을 마비시키거나 속여서 정해진 호스트가 아닌 다른 호스트에게 패..
[1일1cs] 처리량과 지연시간 네트워크는 ‘좋은’ 네트워크로 만드는 것이 중요하다. 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크를 말합니다. 먼저 네트워크란 무엇일까? 기본적인 질문이긴 하지만, 다시 되짚을 겸, 네트워크란 분산되어있는 노드들을 링크하는 것, 즉 분산되어 있는 서버, 라우터, 스위치, 컴퓨터등을 무선방식이든 유선방식이든 연결 하는 것이다. 그렇다면 처리량이란, 링크를 통해 전달되는 단위시간당 데이터양을 말한다. 단위로는 bps이다. 처리량은 트래픽(사용자들의 접속량) , 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙 에 영향을 받는다. 그리고 여기서 대역폭이란, 주어진 시간 동안 네트워크 연결로 흐를 수 있는 최대 ..
[1일1cs] 커널 기초 커널은 프로세스와 하드웨어를 잇는 중요 인터페이스로, 이중 실행 모드를 제공함으로써 시스템 호출 및 보안의 핵심이고, 메모리 관리 프로세스 관리 그리고 프로세스와 하드웨어 사이의 중재자 역할을 한다. 여기서 이중 실행 모드란 커널모드와 유저모드가 있는데 커널모드에선 일반모드에서 갖지못하는 특권, 즉 모든 CPU 제어권을 갖을 수 있다. (이때 사용하는 것이 fork() 등의 system call) 그러므로 어떠한 명령도 실행할 수 있다. 일반 모드에선 일반 권리 즉 데이터 입출력 저장 계산등의 명령만 실행 가능하다. +a 커널은 스스로 실행되는 프로세스가 아닌 시스템 호출을 통해 호출된다. 커널은 실행중인 대상이 아니다. 커널은 stack 과 heap을 갖지 않는다.
[1일1cs] 패킷교환방식 vs 회선교환방식 회선교환 방식이란, 회선독점을 통한 데이터 전송방식이다. 다음 그림과 같이 정해진 데이터 경로가 있고, 그 경로를 독점해서 사용한다. 그러다보니, 항상 동일한 경로로 전송되기에, 안정적인 통신이 가능하다. 하지만 대역폭들을 낭비하기에 회선 이용 효율이 떨어지고, 통신과정에서 회선문제시 회선할당부터 다시 해야한다. 패킷교환방식은 회선교환방식과 다르게 전용선 이라는 것이 없기에 정해진 경로가 없다. 전송하려는 데이터를 패킷단위로 나누어, 네트워크망에 뿌려주게 된다. 해당 패킷에는 어떤 데이터의 몇번째 데이터인지, 최종목적지가 어디인지 정보만이 들어있다. 이 정보를 라우터가 보고 최종목적지를 향해 잘 분산해서 전달한다. 최적경로는 망의 혼잡도, 연결상태 등에 따라 수시로 변경된다. 즉, 패킷은 최적경로를 여러..
[1일1cs] 프록시 서버란? 프록시 서버란 서버 앞단에 둬서 캐싱, 로깅, 데이터 분석등을 서버보다 먼저 하는 서버를 말합니다. 즉 직접 통신할 수 없는 클라이언트와 서버 사이에서 대리로 통신을 수행하는 기능을 프록시, 그 중간에서 중계 기능을 하는 서버를 프록시 서버라고 합니다. (포트 번호를 달리하여 구분) 이를 통해 사용자가 실제 서버의 포트에 접근하지 못하게 할 수 있으며 공격자의 DDOS 공격을 차단하거나 프록시 서버에 요청된 내용들의 캐싱 처리를 용이하게 할 수 있습니다. 사례 : nginx로 Node.js로 이루어진 서버의 앞단에 둬서 버퍼 오버플로우를 해결 CloudFlare를 둬서 캐싱, 로그 분석
[1일1cs] INNER JOIN과 OUTER JOIN INNER JOIN과 OUTER JOIN의 차이. 먼저 중복이 없다고 가정했을 때, A와 B의 INNER JOIN은 교집합, 그리고, OUTER JOIN은 합집합 이다. A에 1, 2, 3, 4 B에 3, 4, 5, 6 이 있다면, INNER JOIN 시에, 3과 4가 나올 것이며 OUTER JOIN 시에, LEFT OUTER JOIN 이라면, A가 왼쪽에 기재한다면 A는 그대로 남고 B의 5와 6은 NULL이되고, RIGHT OUTER JOIN이라면, B가 오른쪽에 기재한다면, B는 그대로 남게 작성하고 A의 1과 2는 NULL이된다. 즉 LEFT면 왼쪽에 있는 것이 기준, RIGHT면 오른쪽에 있는 것이 기준으로 작성하고 그 외는 싹 다 쳐낸다 (NULL화). FULL OUTER JOIN이라면 원소를..
DNS서버 구성방식 중 DNS Round Robin Round Robin은 CPU가상화에서 사용했던 스케쥴링 방식이어서 익숙할 것이다. 시분할 시스템을 위해 설계된 선점형 스케줄링의 하나로서, 프로세스들 사이에 우선순위없이, 순서대로 시간단위로 CPU를 할당하는 방식의 CPU 스케줄링 알고리즘이다. 즉 각 프로세스에 일정시간을 할당하고, 할당된 시간이 지나면 다른 프로세스에게 기회를 주고, 또 그 다음 프로세스에게 하는 식으로, 돌아가며 기회를 부여하는 스케쥴링 방식이다. 이를 DNS서버에 적용한다. DNS 라운드 로빈 방식은 복수의 IP를 모두 순서를 정해 클라이언트에게 제공하고 클라이언트로 하여금 선택하도록 한다. 결과적으로 웹 사이트에 접속하는 다수의 사용자는 복수의 웹 서버에 나눠 접속하게 되고 서버 부하가 분산된다. (로드 밸런서 역할과 같음.)..
[1일1cs]데이터베이스 무결성 제약조건 먼저 무결성이란, 일관성과 정확성을 지키기 위한 규칙이다. 여기서 일관성이란 트랜잭션이 정의된 모든 조건에 맞게 데이터값이 변경되는 것. 또한 트랜잭션 전 후 같은 상태로 유지되어야한다 정확성이란 데이터의 중복 또는 누락없이 정확한 상태를 말한다. 이들을 유지하는 상태를 무결성 상태라고 한다 무결성이 지켜지지 않는다면 논리적 오류 중복 재설계등 여러 곳에서 문제가 발생하기에 꼭 필요하다. 조건 1. 개체 무결성 이는 기본 키 제약이라고도 한다. 말그대로 기본 키에 집중한 제약. 기본 키에는 NULL이 올 수없다. (기본 키가 고유값을 갖어야 하기에 당연하다 생각들긴한다.) 또한 기본 키는 (고유성을 갖어야하에) 테이블 내에 하나만 존재해야한다. 2. 참조 무결성 이는 외래 키 제약이다. 여기서 외래 키는..