일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발/Electron
- 개발/CS/알고리즘
- 개발/CS/OS
- 개발/프레임워크&라이브러리
- 개발/Java
- 알고리즘
- 카카오 테크 캠퍼스
- 개발/OOP
- 개발/환경
- 대외활동/카카오테크캠퍼스
- ai
- ⌨️Developer/보안
- AI/GPT
- 개발/네트워크
- 개발/webrtc
- 개발/언어론
- 개발/Tools/프레임워크/Spring
- AI/ML
- 개발/에러
- electron
- 카테캠
- 개발/보안
- ⌨️Developer
- 개발/Java/Spring
- 개발
- 개발/언어/Java
- 취업
- 개발/컴퓨터네트워크
- 개발/MySQL
- 카카오테크캠퍼스
- Today
- Total
목록Computer Science (173)
봄수의 연구실
HTTPS(HTTP Over TLS) HTTPS는 SSL을 통한 HTTP로, 웹 브라우저와 웹 서버 간의 보안 통신을 제공합니다. 모든 웹 브라우저에 내장 되어 있습니다. HTTPS URL 주소는 "https://"로 시작하며, HTTPS는 보안 통신을 위해 SSL을 활용하여 포트 443에서 작동합니다. 암호화 요소 요청 문서 URL 문서 내용 (브라우저 사용자가 입력한) 브라우저 양식 내용 브라우저가 서버에게 보낸 쿠키와 서버가 브라우저로 보낸 쿠키 HTTP 헤더 내용 연결 개시 HTTP 클라이언트(TLS 클라이언트)는 적절한 포트를 통해 서버에 연결을 시작하고, TLS 핸드쉐이크를 시작하기 위해 TLS ClientHello를 전송한다 TLS 핸드쉐이크가 마무리되면, 첫 번재 HTTP 요청을 전송한다...
단일 책임 원칙(Single Responsibility Principle, SRP) - SOLID 원칙 중 하나로, 클래스는 오직 하나의 책임만 가져야 한다 단일 책임 원칙은 객체 지향 프로그래밍에서 SOLID 원칙 중 하나입니다. 이 원칙에 따르면, "클래스는 오직 하나의 책임만 가져야 한다"는 것입니다. 가장 쉽게 볼 수 있는 예시로 백엔드 개발을 할 때 Service와 Repository를 구분해서 개발을 하는 것입니다 Service는 비즈니스 로직, Repository는 데이터베이스 접근에 대한 책임을 가집니다. 그 결과, 계층 간 데이터 변경과 유지 보수의 용이함을 가지죠 단일 책임 원칙의 이해 만약 클래스나 메소드가 너무 많은 일을 담당하고 있다면, 그 기능을 수정하거나 변경하는 데 필요한 노..
프로그래밍 언어론 - 선언 블록 영역 선언은 변수에 이름과 데이터 타입 등의 속성을 부여하는 문장이다 선언의 종류 명시적 선언 : 선언문을 사용하여 변수 이름을 나열하고, 이들 속성에 부여하는 방법 예약어 int를 사용하여 변수 x의 데이터 유형을 명시적으로 지정합니다. 예: int x; 묵시적 선언 : 실행 시간 중에 일어나거나 프로그램 실행 과정에서 변경 되는 바인딩 FORTRAN은 변수 이름이 선언문 없이 사용되면 선언된 것으로 간주합니다. 일반적으로 변수 이름이 ‘I’, ‘J’, ‘K’, ‘L’, ‘M’ 또는 'N’으로 시작하면 정수 유형으로 간주됩니다. 그렇지 않으면 실제 유형으로 간주됩니다. 블록 일련의 문장 집합으로 자체적인 선언을 가질 수 있는 프로그램 단편 영역 이름의 사용이 허락되고 있..
프로그래밍 언어론 - 바인딩 바인딩: 속성을 이름과 연결하는 프로세스 결속시간에 따른 결속분류 int x; // Statically bind the type 'integer' to the name x int* ptr = new int; // Dynamically bind the allocated storage to y 세분화 된 바인딩 시간 언어 정의 시 바인딩(defining-time): 언어 키워드 및 구문 규칙을 정의합니다. 변환기를 구현할 때 만든 바인딩(구현 시간): 언어 구성을 기계 명령어 또는 이에 상응하는 저수준 표현과 연결합니다. 메모리 레이아웃 및 데이터 구조를 정의합니다. 소스 프로그램을 번역할 때 만들어진 바인딩(번역 시간): 외부 기호 및 함수에 대한 참조를 해결합니다. 변수 및 ..
프로그래밍 언어론 - 변수 변수는 이름, 주소, 값, 타입, 영역, 속성들이 모여서 변수의 개념이 형성된다. 이름(식별자, identifier) : 프로그램에서 어떤 개체를 식별하기 위해서 사용되는 문자 스트링 예약어(reserved word)는 이름으로 사용될 수 없음 미리 정의된 이름(predefined name)은 미리 정의된 의미를 갖고 있음 사용자에 의해 다시 정의되어 사용될 수 있음 주소 : 변수의 값이 저장될 메모리 주소 값 : 변수의 주소에 저장된 내용 변수의 값은 배정문에 의해 부여 int x = 5; // 'x' is an l-value, as it can be assigned a value int y = x + 2; // 'x + 2' is an r-value, as it is a t..
TLS(전송 계층 보안) TLS(전송 계층 보안) 프로토콜은 컴퓨터 네트워크를 통해 통신 보안을 제공합니다. 둘 이상의 통신 응용 프로그램 간에 개인 정보 보호 및 데이터 무결성을 제공하도록 설계되었습니다. TLS는 웹 브라우저와 웹 서버, 이메일 및 기타 데이터 전송을 보호하는 데 널리 사용됩니다. TLS 핵심 개념 TLS 연결 연결은 적절한 서비스를 제공하는 전송(OSI 계층 모델 정의)를 말한다 TLS에 있어서 이러한 연결은 대등-대-대등 관계이다. 연결은 일시적이며, 모든 연결은 한 개의 세션에 연관 되어 있다. TLS 세션 한 클라이언트와 한 서버 사이의 연관을 말한다 세션 시작은 핸드쉐이크 프로토콜을 이용한다 세션 시 암호적 보안 매개변수를 정의한다 매 연결시 보안 매개변수 협상을 새로 하지 ..
핸드 쉐이크 프로토콜 서버와 클라이언트가 상호 인증 암호, MAC 알고리즘, SSL 레코드 안 데이터를 보호하는 데 사용할 암호키 협상 핸드 쉐이크 프로토콜은 클라이언트와 서버가 교환한 ;연속 된 여러 메시지로 구성 된다 각 메시지는 아래 3개의 필드로 구성 길이(Length)(3바이트) 내용(Content)(≥0바이트) 유형(Type)(1바이트) 단계 1. 보안 기능 설정 이 단계는 논리적 연결을 시작하고 이 연결과 연관될 보안 기능을 설정합니다 클라이언트는 아래 매개 변수를 갖는 client_hello_message를 보내는 것으로 교환을 시작한다 버전 : 클라이언트가 수용할 수 있는 가장 높은 SSL 버전 랜덤 클라이언트가 생성한 랜덤값 32-비트 타임스탬프와 안전한 난수 생성기로 생성한 28바이트..
TLS 세션 하나의 TLS 세션은 한 클라이언트와 한 서버 사이의 연관을 말한다. 세션을 시작하려면 핸드쉐이프 프토토콜을 이용해야 한다. 세션은 다수의 연결이 공유하는 암호적 보안 매개 변수를 정의한다. 각 연결마다 해야 하는 새 보안 매개 변수 협상을 피하기 위해 세션을 사용한다 세션의 상태 사실 각 세션에는 연관된 여러 상태가 있다. 일단 한 세션이 설정되면 각각 읽기와 쓰기(전송과 수신)에 대한 현재 동작 상태가 있다. 추가로 핸드쉐이크 프로토콜 도중 읽기 계류 상태와 쓰기 계류 상태가 생성된다. 핸드쉐이크 프로토콜이 성공적으로 결정되면 계류 상태는 현재 상태로 바뀐다 세션과 연관된 상태 현재 동작 상태 읽기 계류 상태 쓰기 계류 상태 세션 상태 매개 변수 세션 식별자(Session identifi..
HTTP - 웹 상에서 데이터를 교환하기 위해 사용되는 프로토콜 HTTP(HyperText Transfer Protocol)는 웹 애플리케이션에 사용되는 애플리케이션 계층 프로토콜입니다. 클라이언트(브라우저)가 요청을 보내고 서버(웹 서버)가응답을 보내는 클라이언트/서버 모델에서 작동합니다. HTTP의 배경 HTTP는 HTML 파일, JPEG와 같은 형식의 이미지 또는 웹 페이지의 일부인 기타 파일 유형이 될 수 있는 웹 개체의 전송을 용이하게 하기 위해 World Wide Web용으로 설계되었습니다. 이러한 각 웹 개체는 URL(Uniform Resource Locator)로 식별됩니다. HTTP Request and Response HTTP는 데이터 전송에 TCP(전송 제어 프로토콜)를 사용합니다. ..
MIME(Multipurpose Internet Mail Extensions) MIME는 RFC 5322 프레임워크의 확장으로서, SMTP나 다른 메일 전송 프로토콜과 이메일 RFC 5322가 가진 문제점과 제약 사항을 해결하였다 또한, MIME은 이메일을 통해 비 ASCII 문자, 비디오, 오디오, 이미지 같은 이진 파일을 전송하기 위해 설계된 인터넷 표준이다 특징 MIME는 이메일을 통해 다양한 형식의 데이터를 안전하게 전송할 수 있게 해줍니다. MIME 타입은 보통 "타입/하위 타입"으로 구성되어 있습니다. 예를 들어, "text/html"은 HTML 문서를 나타내는 MIME 타입입니다. MIME는 헤더 필드를 통해 메시지의 본문과 첨부파일에 대한 정보를 제공합니다. 등장 배경 MIME는 원래 SM..