일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 이스케이프 문자
- Algorithm
- 윤성우 열혈자료구조
- Selection Sorting
- C 언어 코딩 도장
- datastructure
- coding test
- 윤성우의 열혈 자료구조
- 이것이 자바다
- 혼자 공부하는 C언어
- JSON
- Stack
- buffer
- 알기쉬운 알고리즘
- s
- list 컬렉션
- stream
- Graph
- C programming
- insertion sort
- R
- 메모리구조
- Serialization
- Today
- Total
목록Computer Science (80)
Engineering Note

[1단계] TCP Server/Client 기본 연결(완료)ServerSocket, Socket 사용클라이언트가 서버에 접속하면 “연결됨” 메시지 출력[2단계] 텍스트 1:1 송수신(완료)서버: 클라이언트가 보낸 메시지 읽고 콘솔에 출력클라이언트: 키보드 입력을 서버에 전송, 서버 응답 받음[3단계] 서버에서 여러 클라이언트 관리서버에서 연결되는 클라이언트마다 Thread로 관리서버가 모든 연결된 클라이언트에 메시지 브로드캐스팅[4단계] 클라이언트-클라이언트 채팅한 클라이언트가 메시지 보내면, 서버가 전체 클라이언트에게 메시지 전달콘솔에 “닉네임: 메시지” 형태로 출력Socker 통신 흐름클라이언트에서 Socket("127.0.0.1", 12345) 생성↓TCP 연결 시도 (3-way handshake ..
요청메세지 구성 요소- 요청 라인(Request Line) - 헤더(Header)- 빈줄- 본문(Body) 요청라인- HTTP 메서드, path(URL), HTTP 버전 요청 헤더- HTTP메시지에 대한 추가 정보 제공.- Host 정보, User-Agent(접속하고 있는 사용자의 정보) 등이 있다. 빈 라인- 헤더와 본문을 구별하기 위해 사용 본문- 메세지의 가장 마지막에 들어가는 요소, 회원 가입 등 내 정보를 서버에 보내고 싶을 때 사용. 참고 자료 : 그림으로 쉽게 이해하는 웹/HTTP/네트워크(위키북스 임지영)
HTTP 메세지에는 요청 라인에는 요청 메서드가 들어간다. 요청 메서드는 서버에게 무엇을 '어떻게'라는 요청에서 '어떻게'에 해당하는 역할을 한다. 데이터를 수정할 때 사용하는 POST, PUT, PATCH 차이를 정리하려고 한다. POST는 기본적으로 클라이언트에서 데이터를 서버에 전송해서 추가하고 싶을 때 사용한다. 가령, 게시판에 글을 올리거나 하는 등 작성한 내용을 서버에 전송해서 추가할 때 주로 사용하지만, 수정이나, 삭제할 때도 사용할 수 있다.POST가 데이터를 추가하는데 사용하는 게 기본이라면, PUT과 PATCH는 기본적으로 수정을 하는 메서드이다. 하지만 차이가 있다. PUT은 데이터 전체를 수정하고 싶을때, PATCH는 일부만 수정하고 싶을 때 사용할 수 있다. 예를 들어서, PUT으..
HTTP가 흔히들 TCP/IT 위에서 동작한다고 한다. 단순히 암기한 내용을 심층적으로 이해하고 싶어서 관련 내용을 정리하고 테스트해보았다.HTTP의 대표적 특징이 이전상태를 저장하지 않는 무상태 프로토콜이고 TCP는 대표적인 신뢰성있는 상태 프로토콜인데 모순이 있다고 생각해서 스스로 그 이유를 추론해봤는데 HTTP요청을 보내면(application layer) 클라이언트와 서버가 OS단에서 TCP 커넥션을 맺고(Transport layer) 여기서 많은 패킷을 보내는 동안 패킷 단위에서는 상태를 유지하고 연결을 유지해서 데이터의 신뢰성을 높이고(여기서는 상태를 TCP에서 유지) 하나의 요청에 대한 응답에 해당하는 모든 데이터를 다 보내면, 그 다음 요청에 대해서는 상태를 유지하지 않는다. 연결을 끊..
1.대칭키 기법- 하나의 키로 암호화와 복호화를 둘 다 할 수 있는 암호화 기법.- 데이터를 전송 할 때 암호화한 키와 데이터를 수신한 후 복호화 하는 키가 같음. 대칭키 기법 장점- 암호화나 복호화 속도가 빠르다. 대칭키 기법 단점- 키를 안전하게 교환하기 어려운 단점이 있음. 클라이언트와 서버가 같은 키를 갖고 있어야 하므로 서로 키를 주고받아야 하는데, 중간에 누군가가 키를 가로챌 위험이 있다. 2.공개키 기법(비대칭키)- 서로 다른 두 개의 키(공개키, 개인키)로 암호화와 복호화를 함.- 대칭키 기법의 문제를 해결하기 위해 탄생- 공개키로 암호화한 데이터는 개인키로만 복호화할 수 있고, 반대로 개인키로 암호화한 데이터는 공개키로만 복호화할 수 있다.(정확히 개인키로는 서명을하고 공개키고 검증을하..
Strategy Pattern- 특정 정책에 대한 책임을 가지고 있는 클래스를 컨텍스트 라고 부르는데, 이러한 특정 컨텍스트에서 알고리즘(전략)을 분리하는 설계 방법. 상황- 상황에 따라 다른 가격할인 정책을 적용하는 과일매장이 있다. '첫 손님 할인' 정책, '저녁 시간 신선한 과일 할인 정책' 이럴 때 전략패턴을 적용하지 않으면 가격 계산 모듈에 if-else같은 분기문으로 할인 정책을 구현해서 메서드를 개발할 수 있다.

1. SSH 인증의 흐름공개키를 서버(또는 깃허브)에 등록클라이언트가 서버 접속 시, 서버는 랜덤 메시지를 내 컴퓨터에 보냄내 컴퓨터는 이 메시지를 개인키로 서명서버는 등록된 공개키로 검증일치하면 접속 허용 (즉, 개인키 가진 너만 접속 가능) 2. SSH 키 생성 방법 2-1 SSH 키 생성 명령어ssh-keygen -t ed25519 -C "your_email@example.com" Ed25519 알고리즘을 지원하지 않는 레거시 시스템을 사용하는 경우 다음을 사용합니다.ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 2-2 SSH 키 생성 단계 이렇게 입력하면 처음에 다음과 같이 공개키 저장경로를 확인하라는 메세지가 나온다. 그리고 다음은 SSH ..
프로젝트를 하면서 처음에 작성한 코드가 나중에 객체지향의 5대 원칙 중 2번 째 원칙 OCP개방 폐쇄 원칙- 소프트웨어 객체(클래스, 모듈, 함수 등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. OCP의 효과- OCP가 잘 적용된다면, 이미 제대로 동작하고 있던 원래 코드를 변경하는 것이 아니라 새로운 코드를 덧붙임으로써 나중에 그런 변경을 할 수 있게 된다. 개방 폐쇄 원칙의 속성1. 확장에 대해 열려 있다.- 애플리케이션의 요구사항이 변경될 때, 이 변경에 맞게 새로운 행위를 추가해 모듈을 확장할 수 있다. 2. 수정에 대해 닫혀 있다.- 어떤 모듈의 행위를 확장하는 것이 그 모듈의 소스 코드나 바이너리 코드의 변경을 초래하지 않는다.