목록Computer Science (63)
가자미의 개발이야기
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 내 풀이 한 배열 안에서 두 개의 정수의 합을 구하는 과정을 두 반복문으로 구현 결과 값에 중복이 존재할 수 있으므로, contains 메소드로 검사. 결과 배열의 원소 갯수가 가변적이므로 배열 대신 arraylist를 사용 후 배열로 다시 만듬. 정렬은 Collections 클래스의 sort메소드 활용..
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 주요 아이디어 반복문 두 개를 사용해 두 배열의 원소를 비교. 모르는 숫자가 다맞은 경우와 다 틀린 경우를 각 변수에 저장 class Solution { public int[] solution(int[] lottos, int[] win_nums) { int bestRate = 7; int worstRate..
a. 링크 a-1. 링크 계층 소개 링크 계층(2계층) 프로토콜을 실행하는 장치를 노드라 함. 통신 경로상의 인접한 노드들을 연결하는 통신 채널은 링크 한 링크에서 전송 노드는 데이터그램을 링크 계층 프레임으로 캡슐화해서 링크로 전송한다. a-2. 링크 계층의 서비스 프레임화 : 네트워크 계층 데이터그램을 링크상으로 전송하기 전에 링크 계층 프래임에 캡슐화. header payload trailer 형식으로 캡슐화 링크 접속 : 매체 접속 제어(MAC) 프로토콜은 링크상으로 프레임을 전송하는 규칙에 대해서 명시함 신뢰적 전달(RDT) : 링크 계층의 신뢰적 전달 서비스도 확인 응답과 재전송 방식으로 가능 트랜스포트 계층이나 애플리케이션 계층과 달리 데이터를 재전송하는 방식과 달리 링크 계층 프로토콜은 오..
a. 인터넷 제어 메시지 프로토콜(ICMP) 호스트와 라웉터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용된다. 대표적으로 인터넷 문제 식별을 할 수 있다. ICMP는 구조적으로 IP 바로 위에 있고 IP 페이로드에 담겨 전송된다. TYPE과 CODE값으로 상태를 구분해 인식한다. a-1. ICMP 메시지 타입 b. 네트워크 관리와 SNMP 적절한 비용으로 요규사항을 만족시키기 위해, 네트워크와 구성요소 자원들을 감시, 테스트, 폴링, 설정, 분석, 평가, 제어하는 하드웨어, 소프트웨어, 인간요소 등을 배치하고 통합, 조정하는 것. 관리 서버는 네트워크 관리 활동이 일어나는 장소. 네트워크 관리 정보의 수집, 처리, 분석, 게시를 제어. 피관리 장치는 관리 대상 네트워크에 존재하는 네트워크 장치들..
a. SDN a-1. SDN 구조의 특징 플로우 기반 포워딩 : 스위치들에서 패킷 포워딩은 전송 계층, 네트워크 계층, 링크 계층 헤더의 어떤 값을 기반으로도 가능하다. IP 데이터그램의 포워딩이 온전히 목적지 주소만으로 이뤄지는 전통적 라우터 기반과는 매우 대조적. 데이터 평면과 제어 평면의 분리 : 데이터 평면은 네트워크 스위치로 구성. 이들은 자신의 플로우 테이블의 내용을 기반으로 비교와 실행을 수행. 제어 평면은 서버와 스위치의 플로우 테이블을 결정, 관리하는 소프트웨어로 이뤄진다. SDN의 제어 평면은 SDN 컨트롤러와 네트워크 제어 응용들의 집합으로 이뤄짐 데이터 평면 스위치, 컨트롤러, 네트워크 제어 응용들이 서로 다른 제조사나 기관에서 제공하는 분리된 개체이다. a-2. SDN 컨트롤러와 ..
a. OSPF a-1. 자율 시스템 (AS) 확장 문제 : 수억개의 라우터가 있는데, 각 라우터의 목적지 라우팅 정볼르 저장하려면 어마어마한 메모리가 필요하다 관리 자치 문제 : ISP는 자신의 네트워크를 원하는대로 운용하거나, 네트워크 내부 구성을 외부에 감추길 원한다. 이를 자율 시스템 (AS)로 해결한다. AS는 동일한 괄리 제어하에 있는 라우터의 그룹으로 구성된다. 이 AS들은 고유한 AS넘버로 구별된다.(ASN) 한 AS안에는 동일한 라우팅 알고리즘을 사용하게 되고, 이를 AS 내부 라우팅 프로토콜이라고 부른다. Intra-AS : AS 내부 프로토콜 Inter-AS : AS 외부 프로토콜 gateway router : 다른 AS와 연결되는 라우터 Inter-AS는 어떤 AS에 갔을 경우 도달할..
parser and translator 작성된 쿼리에 문제가 없는지 검사하고 파싱 relational-algebra expression 파싱된 쿼리를 관계대수 표현으로 변환 #이때 쿼리는 진행순서가 있지만 관계대수는 진행순서를 고려한다. #이런 차이 때문에 변환과정에서 다르지만 같은 결과가 나오는 여러 관계대수로 변환될 수 있다. #이렇게 드러난 여러 관계대수 중 cost가 가장 적게 드는 플랜을 선택해 실행한다. 데이터베이스의 비용. 응답시간을 cost로 하면 이상적이지만, 쿼리말고 다양한 요인에 의해 달라질 수 있으므로 측정이 힘들다. cpu cost는 데이터베이스에는 많은 영향을 주지 않는 편이다. (병렬쿼리는 제외) disk access가 데이터베이스에 많은 영향을 미친다. disk cost를 하..
정규화 데이터의 중복 제거, 데이터 무결성을 지키기 위해. 무결성 -엔티티 무결성 : 기본키는 튜플들을 식별할 수 있게 해야하고(unique), null이 되어서는 안된다. -참조 무결성 : 참조한 게 실제로 있어야 한다. (참조 값이 null이 가능해야 한다.) 참조 무결성은 두 가지 중 하나를 준수하면 만족한다. (1) 외래 키의 값은 참조 릴레이션의 어떤 투플의 기본 값과 같다. (2) 외래 키가 자신을 포함하고 있는 릴레이션의 기본 키를 구성하고 있지 않으면 널값을 가진다. -도매인 무결성 : 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다 decomposition(분해) 큰 테이블을 두개로 쪼개는 것 하지만 lossy decomposition을 주의해야 한다.(나눈 걸 다시 합쳤..
1. many to one(혹은 one to many)일 때 many side에 중복 속성(one side에도 있는 속성)이 있을 경우 잘못된 설계이다. 2. multivalued 속성의 가능성을 고려하지 않은 경우 다음과 같은 관계에서 만약 한 학생이 과제가 여러개를 가지고 있으면 어떻게 저장 가능하겠는가?(당연히 오류다) 다음과 같이 고쳐서 사용해야 한다. 3. 엔티티냐 속성이냐 3-1 엔티티 집합을 만들까 vs 기존의 엔티티 세트에 속성을 추가할까 3-2 관계집합을 별도의 엔티티 집합으로 만들까? 해당 관계가 many to many면 만들자. 관계에 속성이 많이 필요하면 엔티티 집합을 고려한다.(관계 집합에 속성 추가하는 방식도 괜찮다.) 양 쪽과 total 연결이 되어야 한다.(이 연결은 many..
전문화 엔티티 집합을 잘 이해하기 위해 하위 계층으로 상속하여 구체화. 즉 Top-Down design. 하위 계층의 엔티티 집합은 자신이 상속받은 엔티티 집합의 속성을 모두 상속받음 disjoint 전문화를 하나의 엔티티 세트로 함. (instructor와 secretary. 한 entity가 여러 entity집합에 속할 수 없다. 교수이면서 비서인 경우는 없다는 의미) overlapping 전문화를 여러개의 엔티티 세트로 함 (employee, student. 한 entity가 여러 entity집합에 속할 수 있다. 학생이면서 직원일 수 있다.) 스키마로 전문화를 표현 1번째 방법 : 최상위 계층은 모든 속성 표현하고, 하위는 꼭 필요한 것(최상위의 기본키, 자신의 로컬키)만 표현하기 1번째 방법은 ..