본문 바로가기

728x90

분류 전체보기

(430)
C++ STL Algorithm 1. Algorithm - sequence container에서 동작 가능한 알고리즘들이 들어있다. - find(), sort(), min(), binary_search()등등이 있다. 2. sort (built in) - sort는 vector와 deque에서 사용가능하다. - List에서는 사용이 불가한데 이는 sort가 general하게 O(nlogn)으로 동작하도록 하기 위해서는 random access가 필요하기 때문이다. - 따라서 random access가 가능한 vector나 deque같은 random access sequence container에서만 동작한다. 3. sort (user defined class) - 위의 예시는 built in type의 sort를 수행하였는데 만약 내가..
C++ STL iterator 1. Iterators - STL container의 원소들을 traverse할 때 사용한다. - 포인터와 유사하게 컨테이너의 특정 위치를 가리킨다. - ++ -- * 등의 연산도 가능하다. - algorithms들이 container의 element들을 접근하는데 interator를 사용한다. - 이터레이터는 타입이 존재한다. - 타입에 따라 선언을 하면 아래와 같은 연산이 가능하다. 포인터와 유사하지만 분명한건 포인터가 아니라 class이다. - 참고로 container class에서 제공하는 member function begin(), end()는 iterator를 반환한다. 2. Source Code 3. Why are iterators so great? - iterator를 활용하면 genera..
DB - 17. Boyce Codd Normal Form 1. BCNF - BCNF의 정의를 살펴보자. - BCNF인가를 따지려면 일단 모든 함수 종속관계를 알고 있어야 한다. - 그 종속관계중에서 trivial 한것은 당연히 아래 첫번째 조건을 만족하고 non trivial 한 관계는 아래 제시된 조건을 만족해야 한다. 그럼 BCNF가 된다. - non trivial 한 종속관계에서 결정자가 superkey이면 된다. - 이 예시를 보면 dept_name -> building, budget 이라는 non trivial 함수 종속관계가 성립은 하지만 a부분인 dept_name은 슈퍼키가 아니다. 따라서 이 테이블은 BCNF의 조건에 위배된다. - 실제로 테이블을 보면 동일한 dept_name이 여러번 나오기 때문에 고유식별성이 없다. 따라서 함수종속이 성립하더..
DB - 16. Normalization 1. Normalization - db를 구축하기 위해 거치는 단계를 정리하면 요건 분석 -> ERD -> Table 스키마 였다. - 하지만 요건분석 -> ERD는 특정한 규칙에의해 이루어진다기 보다는 설계자의 의도에 의해 정해지기 때문에 오류가 생길 가능성이 항상 있다. - 그래서 변환규칙으로 만들어진 table 스키마가 항상 good design이라고 장담할 수 없기 때문에 이를 정제하는 과정이 필요하다. 2. Good design? Bad design? - good design, bad design이 무엇인지 살펴보자. - 이 테이블은 department와 instructor가 함께 하나의 테이블로 구성되어있다. - 이 디자인이 bad design인 이유로 들 수 있는 것은 학과 데이터의 중복이다..
DB - 15. University Enterprise ER -> RDB 1. ER Model -> RDB - 이제까지 배운 내용을 가지고 ER 모델을 RDB로 바꿔보자. 2. 다:다 변환 3. Entity set 변환 4. 1대다 변환 - advisor의 경우는 null이 들어가는 것을 방지하기 위해 독립된 테이블로 변환하였다. - 겹선 다이아몬드는 변환하지 않는다. 5. 1차 변환 결과 - 밑줄은 pk, 색상은 fk를 나타낸다. 6. 정규화 - 1차로 변환한 db 스키마에 대해서 정말 절절한지 정제하는 작업을 말한다. - 문제가 없다면 넘어가고 필요하면 수정이 될 수 있다. - time_slot_id를 굳이 두 테이블로 관리할 필요가 없어보인다. - 하나로 흡수했더니 section의 time_slot_id로 Time_slot에서 고유식별이 어렵게 되었다. 따라서 time_..
컴퓨터통신 - 19. 브리지 1. 브리지(bridge), LAN 스위칭 - LAN이 물리적 거리의 한계가 있고 노드가 많이 추가될수록 성능이 떨어지는 단점이 있었다. - 그래서 두개 또는 그 이상의 LAN들을 repeater나 bridge를 이용해서 연결했다고 했다. - 브리지로 연결된 LAN 집합을 extended LAN이라고 한다. - 리피터는 신호에서 데이터를 뽑아서 다시 신호로 만들어 보내는 1계층 동작이라고 했다. - 만약 station 1에서 station 10으로 패킷을 보낸다고 하면 bridge를 탈 필요가 없으니 LAN B에서 11~20끼리는 자유롭게 패킷을 주고 받을 수 있도록 repeater기능을 끄고 두 링크를 분리해도 된다. - 이 동작을 filtering이라고 한다. - filtering을 하려면 주소를 확..
컴퓨터통신 - 18. 패킷 스위칭 1. 패킷스위칭(Packet Switching) - 3계층에서 수행된다. - 왜 네트워크 계층이 반드시 필요한지 먼저 짚고가자. - 거리 제한이 있는 무선랜으로는 지리적으로 광범위한 네트워크를 구성하기 어렵다. 랜에는 연결할 수 있는 노드의 수가 제한되어 있다. - 따라서 이런 직접 연결의 한계가 있기 때문에 광범위한, 많은 수의 호스트를 지원할 수 있는 scalable한 네트워크를 구성하기 위해서는 간접연결을 할 수 있는 방법이 필요하다. - 직접연결은 노드가 공유 매체에 접근하게 되면 다른 호스트들의 성능에 영향을 주지만 간접연결은 이 영향이 적다. - 노드들을 연결하는 switch의 모습이다 (인터넷에서는 router) - 연결되는 링크들 중에 들어오는 링크를 input port, 나가는 링크를 o..
컴퓨터통신 - 18. 무선랜 이동성 지원 1. 이동성(Mobility) 지원 - 무선랜에서 이동하면서 계속 통신을 네트워크가 지원하는가를 말한다. - AP-1과 통신하던 C가 D로 이동하게되면 AP-2라는 새로운 기지국에 가입해서 통신을 이어간다. - 여기서 중요한건 C는 이동 전에 AP-1과 통신을 했었는데 C가 D로 이동하면 AP-1으로 들어오던 데이터를 AP-2를 거쳐서 받게 된다는 것이다.(data forward) 그 역할을 수행하는 것이 Distribution system이다. - distribution system이 있으면 당연히 좋지만 없더라도 인터넷은 나름의 이동성을 수행하기는 한다. 뒤에 무선랜 스위치에서 공부한다. 이미 2, 3 계층에서 이동성을 지원하기 때문이다. 2. 이동감지(BSS접속/가입) - 통신 노드가 이동할때 움직..

728x90