본문 바로가기

CS지식

(51)
[CS 지식 - 네트워크] TCP/IP 흐름제어, 혼잡제어 TCP통신 - 네트워크 통신에서 신뢰적인 연결방식 - 기능 : 흐름제어, 혼잡제어 - TCP는 기본적으로 unreliable network에서 reliable network를 보장 할 수 있도록 하는 프로토콜 - TCP는 network congesion avoidance algorithm을 사용 reliable network보장의 문제점 - 손실 : packet이 손실 될 수 있는 문제 - 순서 바뀜 : packet의 순서가 바뀌는 문제 - Congestion : 네트워크 혼잡 문제 - Overload : reciver가 overload되는 문제 흐름제어 - 송신측과 수신측의 데이터 속도 차이를 해결하기 위한 기법 - Flow Control은 receiver가 packet을 지나치게 많이 받지 않도록 조..
[CS지식 - 네트워크] OSI 7계층 1. OSI 7계층 네트워크에서 통신이 일어나는 과정을 7단계로 나눈것 개방형 시스템 상호 연결 모델의 표준 실제 인터넷에서 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화한 것 탄생 배경 - 초기 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결이 되어 호환성x - 모든 시스템들의 상호 연결에 있어 문제가 없도록 표준을 정한것이 OSI 7계층 계층을 나눈 이유 - 통신이 일어나는 과정을 단계별로 파악 할 수 있기 때문 ▶ 흐름을 한눈에 알아보기 쉽고, 이해하기 쉬움 ▶ 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고 이상이 생긴 단계만 고칠 수 있기 때문 2. OSI 7계층 단계 OSI 7계층은 응용, 표현, 세션,..
[CS지식 - 알고리즘]퀵정렬 1. 퀵정렬 불안정 정렬, 비교 정렬 2. 정렬방법 분할(Divide) : 입력 배열을 피벗을 기준으로 비균등하게 2개의 부분배열로 분할 (피벗을 중심으로 왼쪽 : 피벗보다 작은 요소들, 피벗을 중심으로 오른쪽 : 피벗보다 큰 요소들) 정복(Conquer) : 부분 배열을 정렬, 부분 배열의 크기가 충분히 작지 않으면 순환 호출을 이용하여 다시 분할 정복 방법을 적용 결합(Combine) : 정렬된 부분 배열들을 하나의 배열에 합병 ▶순환 호출이 한번 진행 될떄 마다 최소한 하나의 원소(피벗)는 최종적으로 위치가 정해지므로, 이 알고리즘은 반드시 끝난다는것을 보장 할 수 있음 3. 특징 장점 - 속도가 빠름 - 정렬하고자 하는 배열 안에서 교환하는 방식이므로, 다른 메모리 공간을 필요로 하지 않음 단점 ..
[CS 지식 - 데이터베이스] SQL과 NoSQL의 차이 1. SQL(Structured Query Language) 구조화된 쿼리 언어 SQL을 사용하면 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 저장, 수정 삭제 및 검색 가능 ▶관계형 데이터 베이스의 데이터는 정해진 데이터 스키마에 따라 데이터 베이스 테이블에 저장 특징 1. 데이터는 정해진(엄격한) 데이터 스키마(=structure)를 따라 데이터베이스 테이블에 저장 2. 데이터는 관계를 통해서 연결된 여러개의 테이블에 분산 장점 - 1개 테이블에서 중복없이 1개 데이터만 관리하기 때문에, 다른 테이블에서 부정확한 데이터를 다룰 위험x -데이터 무결성 보장 단점 - 상대적으로 덜 유연 ▶데이터 스키마는 사전에 계획되야함 - JOIN문이 많은 복잡한 쿼리가 만들어 질 수 있음 - 수평적 확장..
[CS지식 - 개발상식]devops란? 1. devops devops = Development + Operation 개발(development)담당자와 운영(operation)담당자가 연계하여 협력하는 개발 방법론 시스템 개발자와 운영을 담당하는 정보기술 전문가 사이의 소통, 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 방법론 등장배경 이전 : 개발자가 개발을 완료하면 운영자에게 전달해야하는 루트가 있었음 개발을 완료하더라도 운영자를 통해 배포되어야 하고, 운영자는 개발자가 만든 프로그램을 이해하는 시간 필요 ▶ 이러한 상황을 타개하고자 나오 새로운 문화(환경) 데브옵스 적용이 가능한 툴을 묶어 하나의 체인 형식으로 모든 과정인 기획- 개발 -빌드 - 테스트- 배포 - 모니터링 - 산출물 - KnowledgeBase을 묶으 사용할 수 있..
[CS지식 - 알고리즘]삽입정렬 1. 삽입정렬 필요할때만 각 데이터를 적절한 위치에 삽입하는 정렬(앞에 있는 원소들이 이미 정렬되어있다고 가정) 두번째 원소부터 시작하여 그 앞의 원소들과 비교해 삽입할 위치를 지정한 후 원소를 뒤로 옮기로 지정된 자리에 자료를 삽입하는 정렬하는 알고리즘 2. 정렬방법 현재 타겟이 되는 숫자와 이전 위치에 있는 원소들을 비교.(첫번째 타켓은 두 번쨰 원소부터 시작) 타겟이 되는 숫자가 이전 위치에 있던 원소보다 작다면 위치를 서로 교환 그 다음 타겟을 찾아 위와 같은 방법으로 반복 3. 특징 장점 안정적 정렬방법 레코드 수가 적을 경우, 알고리즘 자체가 매우 간단해 다른 정렬보다 유리 대부분 레코드가 이미 정렬되어 있는 경우 효율적 버블 정렬이나 선택정렬에 비해 상대적으로 빠름 단점 비교적 많은 레코드들..
[CS지식 - 네트워크] UDP와 TCP 차이 OSI 계층 중 Layer 4의 전송계층에서 사용되는 프로토콜 전송계층 : 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층 ▶ IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당 ▶이러한 전송계층에서 사용되는 프로토콜이 바로 TCP와 UDP임 1.TCP(Transmission Control Protocol) 신뢰성 있는 데이터 전송을 지원하는 연결 지향적 프로토콜 ▶ 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜 인터넷상에서 데이트를 메세지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 IP가 데이터 전송을 처리, TCP는 패킷 추적 및 관리 3-Way handshaking과정을 통해 연결 후 통신을 시작하는데, 흐름제어와 혼잡제어를 지원..
[CS지식 - 개발상식] HTTP 메소드 1. HTTP 메소드 HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냄 각각의 메서드는 서로 다른 의미를 구현하지만, 일부 기능은 메서드 집합간에 서로 공유하기도 함 1-1. REST(Representational State Transfer) REST의 탄생 2000년도에 로이 필딩(Roy Fielding)의 박사학위 논문에서 최초로 소개됨 로이 필딩은 그 당시 웹(HTTP)설꼐의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표함 지원(Resource) : URI 행위(Verb) : HTTP Method 표현(Representations) ▶HTTP Method : REST를 지키면서 행위를 전달..