전체 글

전체 글

    [Network] Application Layer

    1. Application architecture 1.1. Client-server 1.2. Peer-to-Peer 2. Web, HTTP 2.1. HTTP의 특징 2.2. HTTP 버전 3. TLS 4. Cookies 5. Web caches (proxy server) 6. Video Streaming 6.1. Prograssive download 6.2. DASH (Dynamic, Adaptive Streaming over HTTP) 7. CDNs (content distribution networks) Application architectures 어플리케이션 계층에서의 통신 구조 client-server peer-to-peer(P2P) network apps e-mail web text messa..

    [Network] TCP

    1. TCP 2. TCP Segment 2.1. Segment 구조 3. TCP 연결 : 3-way-handshaking 4. 오류 제어 Error Control 4.1. checksum 4.2. 재전송 시나리오 4.1. TCP의 RTT 설정 방법 5. 흐름 제어 Flow Control 6. 혼잡 제어 Congestion Control 6.1. 혼잡 제어와 흐름 제어의 차이 6.2. CWND 6.3. 혼잡 제어의 동작 TCP Transport Layer에 위치하고 있는 프로토콜입니다. 크게 다음과 같은 기능을 제공하고 있습니다. 전이중 서비스 흐름 제어 오류 제어 혼잡 제어 연결 지향 서비스 신뢰성 서비스 세그먼트 TCP의 신뢰성 있는 전송을 위한 5가지 기법입니다. Checksum 검사합 Ack, nA..

    [Security] Cryptograpic Hash Function

    1. Hash Function 1.1. Cryptograpic Hash Function 2. Birthday Attack 3. 일반적인 동작 방식 4. 실제 Hash Function 기술들 4.1. MD5 4.2. SHA Hash Function 입력 값은 다양한데 출력값은 한정적인 유한한 값으로 나오는 함수입니다. Cryptograpic Hash Function 암호학에서의 Hash 함수는 안전도에 관한 성질들이 필요합니다. pre-image resistance h = H(m), h를 가르쳐주더라도 m을 찾을 수 없습니다. second pre-image resistance h, m1를 알아도 m2를 찾기가 매우 힘듭니다. collision resistance h값을 알려주지 않고 m1, m2 -> H(..

    연속 배열

    1. 문제유형 - 연속 배열 유형 2. 푸는 방식 - count, sum 매커니즘 3. 정리 4. 출처 문제 유형 주어진 배열에 1이 연속으로 있으면 1씩 추가되는 배열이며, 합계를 구해야 되는 문제입니다. 이런식의 문제유형을 연속 배열 유형이라고 제 마음대로 정했습니다.. 사실 배열 탐색 유형의 일종이라 봐도 됩니다. 푸는 방식 이것을 풀 때 보통 맨 왼쪽 index를 기준으로 한칸씩 비교하면서 차례로 옮기는데 배열이라서 점수 배열로 또다시 만들어서 풀 필요가 없습니다. 변수로만 해결할 수 있는 문제는 최대한 변수로 해결하는 것이 좋습니다! 이와같이 cnt, sum 단 두개의 변수로 해당 문제를 해결하였습니다. int cnt = 0; int answer = 0; for (int i = 0; i < ar..

    [Java] File

    1. 개요 2. File 클래스 생성자 3. File 클래스의 다양한 메서드 3.1. 파일의 디렉토리 목록을 보여주는 예제 3.2. 파일이름, 파일 크기, 파일의 읽기쓰기 가능 여부, 숨김파일인지 등 상세정보를 출력해주는 예제 4. File 조작 메서드 5. File I/O 5.1. FileInputStream 5.2. File, FileOutputStream, java.nio.file.Files 6. 참조 개요 Java에서는 File 클래스를 통해 파일과 디렉토리를 다룰 수 있도록 지원합니다. 또한 FileInputStream, FileOutputStream을 통해(혹은 File 클래스 자체에서도 지원) 파일입출력을 할 수 있습니다. 모든 파일은 0,1의 Byte로 이루어져 있기 때문에 Java에서 이..

    [Android] Activity 생명 주기

    앱을 탐색하고, 앱에서 나가고 다시 돌아오는 과정에서 Activity 인스턴스는 수명 주기 안에서 서로 다른 상태를 통해 전환됩니다. Activity 클래스는 상태 변화를 알아차릴 수 있는 여러 콜백 메서드를 제공합니다. onCreate() onStart() onResume() onPause() onStop() onRestart() onDestory() 수명 주기 콜백을 잘 구현한다면 앱에서 다음과 같은 문제가 발생하지 않도록 예방하는 데 도움이 됩니다. 앱을 사용하는 도중에 전화 걸림 등 다른 앱으로 전환될 때 비정상적으로 종료되는 문제 앱을 활발하게 사용하지 않는 경우 시스템 자원이 낭비되는 문제 앱에서 나갔다가 돌아왔을 때 진행 상태가 저장되지 않는 문제 화면이 가로 방향과 세로 방향 간에 회전할 ..

    [MySQL] 한글 설정

    SQL Error: 1366, SQLState: HY000 : incorrect string value MYSQL에서 charset이 달라서 생기는 오류입니다. Windows OS 에서는 자동으로 유니코드 utf-8로 설정되지만, Linux OS에서는 다른 언어로 지정되어 있어서 발생하는 문제입니다. 이를 해결하기 위해선 다음과 같은 설정 방법이 있습니다. 테이블 만들 때 CREATE TABLE table1 ( id bigint not null auto_increment, ... ) engine=InnoDB DEFAULT CHARSET=uft8; 테이블을 생성할 때 DEFAULT CHARSET을 uft8로 맞추면 됩니다. 이미 만들어진 테이블에 적용 mysql> ALTER TABLE table1 CONV..

    [Security] SSL/TLS

    1. SSL/TLS 현재 네트워크 상에서 대표적인 보안 프로토콜인 SSL과 TLS에 관해 간단하게 다룰려고 합니다. 많은 네트워크 보안 프로토콜이 존재합니다. IPSec, SSL TLS, Kerberos(UDP상에서), S/MIME(SMTP를 위한) 등등 각 네트워크 Layer 마다 그에 맞는 보안 프로토콜이 있습니다. 하지만 보안 기능 자체만을 본다면 Encryption, 서명, MAP 등을 이용하여 사용하여 서로 비슷하다는 것을 알 수 있습니다. SSL TLS Secure Sockets Layer, Transport LAyer Security 사실 SSL과 TLS 둘 다 같은 의미로 쓰이고 있습니다. SSL이 먼저 나올 뿐 은행 사이트에 접속하려 할 때 HTTPS로 들어가게 되는데 이 때 사용하는 것..

    [MYSQL] 완전 삭제 후 재설치

    5.7과 8.0 두 버전을 고르게 쓰기 위해 mysql 삭제 후 재설치를 하는 과정을 정리했습니다. 제거 시작 -> 실행 -> 서비스 검색 클릭 -> mysql 속성 -> 시작 유형 -> 사용 안함 체크 시작 -> 실행 -> regedit 검색 클릭 -> 편집 -> 찾기 mysql 검색 -> 찾은 레지스트리 전부 제거 C:\ProgramData 에서 MySql 폴더 제거 제어판에서 mysql 관련 응용프로그램 전부 제거 설치 MySQL :: Download MySQL Installer (Archived Versions) Please note that these are old versions. New releases will have recent bug fixes and features! To downlo..

    [Network] RDT protocol와 Pipelined Protocol(Go-Back-N, Selective Repeat)

    1. RDT Protocol 2. Stop-and-Wait 3. RDT3.0의 동작 시나리오 3.1 RTT란? 3.2 RDT에서의 RTT값 설정 방법 4. Pipelined Protocol 4.1 Go-back-N 4.2 Selective Repeat 5. 햇갈리는 것 - RDT와 3 way handshake는 다른 개념!! 6. 출처 RDT Reliable Data Transfer 신뢰성 있는 데이터 교환 입니다. 즉, 송/수신하는 데이터가 오류 없이 온전히 전송되는 것을 보장하기 위한 프로토콜 입니다. 송신 측에서 ACK 신호를 reasonable(합리적인) 시간 동안 기다리고(RTT), 만약 ACK 신호가 이 시간 동안 도착하지 않으면 패킷을 재전송합니다. TCP에서 흐름제어에서 해당 방식을 사용합..