| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 메모리구조
- 이스케이프 문자
- C programming
- s
- C 언어 코딩 도장
- 윤성우 열혈자료구조
- Algorithm
- R
- buffer
- Stack
- 알기쉬운 알고리즘
- list 컬렉션
- stream
- JSON
- 윤성우의 열혈 자료구조
- coding test
- Graph
- insertion sort
- datastructure
- Serialization
- 이것이 자바다
- 혼자 공부하는 C언어
- Selection Sorting
- Today
- Total
목록Computer Science (90)
Engineering Note
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. 수정에 대해 닫혀 있다.- 어떤 모듈의 행위를 확장하는 것이 그 모듈의 소스 코드나 바이너리 코드의 변경을 초래하지 않는다.
CSRF(Cross-Site Request Forgery)- 인증된 사용자의 의지와 무관하게 악의적인 요청이 서버에 전달되는 공격- 세션 인증 방식을 사용하는 서버에서 발생 공격 시나리오- 사용자가 로그인 된 세션을 유지하는 상태- 사용자가 같은 브라우저로 악성 코드가 심어진 사이트 방문 - 악성사이트에서 자동으로 POST요청을 보냄. 서버는 기존의 세션 쿠키로 인증된 요청이라고 믿고 실행Cross-Site-Request-Forgery가 필요한 이유- 세션 기반 로그인 인증 방식(Session + Cookie)에서는 브라우저가 자동으로 쿠키를 보내기 때문에 CSRF 위험이 있음.API서버 CSRF 비활성 이유API 서버에서는 서버는 세션 상태를 저장하지 않고 Stateless하게 동작하여, 컨테이너 기반..
양방향 암호화에는 두 가지 방식이 있다. 대칭키 암호화, 비대칭키 암호화대칭키 암호화는 암호화와 복호화할 때 같은 키를 사용하고 비대칭키 암호화에서는 일반적으로 공개키로 암호화하고 개인키로 복호화하지만, 디지털 서명에서는 **개인키로 서명(암호화)하고 공개키로 검증(복호화 유사)**하는 방식도 있다.그래서 대칭키 암호화 방식은 키 관리가 중요하다. 키 하나로 암호화 복호화가 가능하기 때문이다. (양방향)대표적인 양방향 암호화 방식은 AES128(Advanced Encryption Standard)이 있다.AES는 양방향, 대칭키 암호화 방식으로, 암호화와 복호화에 동일한 키를 사용한다. 복호화가 가능한 구조이기 때문에 키 관리가 매우 중요하다. AES 뒤의 128, 192, 256은 암호화에 사용하는 키..
IP(Internet Protocol)는 프로토콜 중 하나로 인터넷에서 데이터를 주고 받을 때 사용하는 통신 규약이다. 이때 전달하는 데이터를 특별히 패킷이라고 부르고, 패킷을 이용해 정보를 교환하는 방식을 패킷교환 방식이라고 부른다. IP 의 주된 역할- 패킷을 정해진 목적지까지 전달IP의 특징- 비신뢰성(unreliable) : 내용물의 상태를 보장하지 않음- 비연결성(connectionless) : 수신자 여부를 고려하지 않음.가장 많이 사용하는 IP- IPv4 IP 구성- 8비트.8비트.8비트.8비트- IP 각 자리는 0부터 255까지 숫자를 가질 수 있음. (8비트는 0부터 255(00000000 ~ 11111111)- 앞 24비트 : 네트워크 주소, 마지막 8비트 : 호스트 주소. 단 마지막 ..
OSI(Open Systems Interconnection) 7계층이 생긴 배경- 초창기 컴퓨터 네트워크는 학교, 군대 등 각 기관별로, 소수의 사람만이 사용하는 네트워크 였음.- 개인용 컴퓨터가 보급 후 다른 기종의 컴퓨터끼리도 네트워크를 형성할 수 있는 표준화 움직임이 생겨남- 1984년 국제 표준화 기구에서 표준이 정의됨. OSI 7 Layer- 국제표준화기구(ISO)에서 1984년에 개발한 모델- 통신이 일어나는 과정을 7단계로 분류(OSI 7계층으로 네트워크 구성요소 계층화, 표준화)- 7단계로 분류해서 각 단계가 어떤 역할을 수행해야하는지, 수행하는지 등 큰 뼈대, 규칙을 정해 놓은 일종의 메뉴얼- 서로 다른 시스템끼리도 연결(호환)이 될 수 있게 하는 표준안- 각 계층 별로 역할과 통일된 ..
URL(Uniform Resource Locator): 일반적으로 웹 사이트 주소: 좀 더 정확하게 웹사이트뿐 아니라 HTML문서, 이미지, 동영상 등 인터넷에 존재하는 모든 자원을 나타내는 경로: 프로토콜, 도메인 등 여러 요소를 합친 결과물로 구조를 이해해야 함.URL 구조URL도 일반 현실에서 사용하는 집주소, 건물 주소 표시 방법처럼 규칙이 있음.=> 프로토콜://호스트주소:포트번호/경로?파라미터 'http://www.example.com:80/path/to'URL 맨 앞부분 : 해당 자원을 얻기위한 통신규약, 프로토콜을 나타냄.프로토콜 종류웹:HTTP, HTTPS이메일:malito파일전송: FTP URL은 웹뿐 아니라 다른 인터넷상의 자원에도 접근가능하므로, http, https를 제외한 다른..
객체지향프로그래밍 에서 역할, 책임, 협력 그리고 캡슐화, 상속, 추상화의 관계 객체지향 프로그래밍은 길을 찾는 방법을 통해서 설명할 수 있다. 길을 찾을 때 길을 아는 사람에게 물어보는 방법이 있고, 지도를 보고 찾아가는 방법이 있다. 길을 아는 사람에게 물어보는 방법은 길찾기라는 기능 그 자체에 초점을 맞춘 해결책이라고 볼 수 있다. 그런데 지도는 현실 세계를 추상화한 모델로, 구조적으로 길을 찾는 방법을 알려준다. 그리고 원래 목적지와 다른 길을 찾는 범용적인 도구다. 객체지향 프로그래밍은 길을 찾는 방법에서 지도를 보고 길을 찾는 방법과 유사하다. 기능에 구조를 맞추는게 아니라, 구조에 기능을 종속시킨다. 이를 통해 얻을 수 있는 장점은 재사용가능하고, 변경에 용이한 코드를 작성할 수 있게 해준다..