[CS] HTTP와 HTTPS | 대칭키, 비대칭키
·
🐣 Computer Science
❏ HTTP(80)HyperText Transfer Protocol의 약자로, HTTP는 서로 다른 시스템 간 효과적인 통신을 할 수 있도록 하는 프로토콜입니다. 웹 브라우저와 웹 서버 간의 기본적인 통신을 담당합니다. ❍ Client - ServerHTTP는 웹에서 이루어지는 대부분의 기초 프로토콜이며, 클라이언트에서 URL을 통해 서버에 요청(Request)을하면, 서버에서는 해당 요청에 대한 결과를 응답(Response)하는 형태로 동작합니다. ❍ 무상태 프로토콜(Stateless)HTTP는 Stateless한 특성을 가지고 있기 때문에, 서버는 클라이언트의 상태를 보관하지 않습니다. 즉, 서버와의 요청 간에 유지되는 데이터가 존재하지 않기 때문에, 서버는 클라이언트를 식별할 수 있는 능력이 없습니..
[CS/OS] PCB, Interrupt, Context Switching
·
🐣 Computer Science
❏ PCB프로세스 제어 블록(Process Control Block, PCB)는 운영체제가 프로세스를 관리하는 것에 있어서 아주 중요한 자료구조입니다. 프로세스에 대해 중요한 정보를 저장하고 있기 때문입니다. ❍ Process MetaData여러 가지의 프로세스를 수행 및 관리하기 위해선 각각의 프로세스에 대한 정보를 알고 있어야 하기 때문에, 다음과 같은 정보들이 PCB에 저장됩니다.이러한 정보를 Process MetaData라고 합니다. 1. 프로세스 ID각 프로세스에 부여된 고유한 식별자, 이를 통해 프로세스를 식별하고 구분합니다. 2. 프로세스 상태New : 프로세스가 생성된 상태Ready : CPU를 할당 받기 위해 대기하는 상태Running : CPU를 할당 받아 명령어를 실행 중인 상태Wai..
[CS / OS] 프로세스 VS. 스레드
·
🐣 Computer Science
들어가며“프로세스와 스레드의 차이점”은 면접을 위해 준비해야 할 중요한 주제이기도 합니다. 프로세스와 스레드에 대해 소개하고, 둘의 차이점에 대해 소개합니다. 먼저, 프로세스를 소개하기 전, 프로그램에 대해 알아봅시다. ❏ 프로그램(Program)프로그램(Program)이란, 어떠한 작업을 위해 실행할 수 있는 파일입니다. 흔히 어떠한 프로그램을 설치하고자, 다운로드를 받은 파일을 살펴보면 확장자가 “.exe”라고 되어있는 것을 볼 수 있습니다. 이를 프로그램이라고 합니다.아직 프로그램을 실행하지 않았기에 운영체제로부터 자원을 할당 받지 않은 상태로, 메모리에 올라가 있지 않은 상태입니다.  자, 이제 코드 덩어리 상태일 뿐인 멈춰있는 프로그램을 실행시켜 보도록 합시다. 프로그램을 실행을 하게 된다면, ..
[Git] GitHub author 변경하기
·
🐣 Computer Science
들어가며팀원이 제 노트북을 이용하게 되면서, Github의 작성자(Author)를 팀원 계정으로 설정 해준 적이 있습니다.추후에 알고리즘 문제를 풀고 열심히 Commit & Push를 하다가 나중에서야 이 사실을 깨닫게 되어 수정해주었는데요. 따라서, Github Commit의 Author를 변경하는 방법과, Git Rebase 명령어를 이용한 커밋 이력 변경 방법을 정리하여 소개합니다. ❏ GitHub Author 변경하기❍ Git Log 확인하기시작하기 전에 먼저 Git Log를 확인하여 변경하고자 하는 커밋을 확인해봐야 합니다.git log 해당 명령어를 통해, 우리는 커밋의 해시값, Author, Date, Commit Message과 같은 커밋 기록을 확인해볼 수 있습니다. 해시값을 기억해두고,..
[Web] DNS란 무엇인가?
·
🐣 Computer Science
❏ DNS 원하는 서비스를 제공받기 위해 서버에 요청을 할 때, 서버의 IP 주소를 알아야 한다. 하지만, IP 주소처럼 복잡한 숫자들을 기억할 필요 없이, 전화번호부처럼 도메인을 정의해 편리하게 접속한다. DNS(Domain Name System)이란, 바로 이 전화번호부가 저장되는 곳이다. 네트워크를 통해서 도메인 정보를 저장하고 조회한다. ❍ DNS Spoofing DNS로 보내는 요청을 가로채서 그에 대한 응답으로 변조된 IP를 전송한다. ❍ A Record vs. CNAME A Record는 도메인을 서버의 IP와 직접 연결되어 속도가 빠르다. CNAME은 서버의 IP가 유동적으로 변하는 경우, 그 IP에 일정하게 연결되는 다른 도메인(Canocical NAME)을 연결하는 것이다. ex. AWS
[OS] 운영체제(Operating System)이란? || 추상화, 필요성, 기능, Kernel
·
🐣 Computer Science
들어가며본 포스팅에서는 운영체제의 개념과 필요성, 운영체제의 기능, Kernel에 대해 소개합니다.📌 운영체제(OS)운영체제란 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서, 사용자가 하드웨어를 쉽고 효율적으로 사용할 수 있는 프로그램의 모임이자, 시스템 소프트웨어이다. 추상화(abstraction)을 제공하는 프로그램이라고도 정리해볼 수 있다. 어떻게 하드웨어를 쉽고 효율적으로 사용할 수 있도록 하는가에 대해 이야기 해보자면, 추상화라는 개념을 알아야 한다.❔ 추상화추상화(Abstraction)란, 복잡한 시스템 및 개념을 단순화하는 것이다. 소프트웨어를 설계할 때에도 추상화하여 미리 포괄적인 개념을 설계한 후에 구체화하여 진행한다. 따라서, 복잡한 시스템이더라도 사용자가 보다 쉽고 직관적인 방식..
인증 방식 (Cookie & Session & Token) + JWT
·
🐣 Computer Science
JWT 인증 방식에 대해 공부해보다가, 다른 인증 방식과의 차이를 정리해두어야겠다는 생각이 들었다. 클라이언트의 인증을 위한 대표적인 방식 Cookie, Session, Token을 다뤄보자 📌 Cookie 인증쿠키(Cookie)는 사용자의 브라우저에 저장되어 통신할 때 포함되어 전달한다. 사용자의 브라우저에 저장되는 데이터들이므로, 고유 정보 식별이 가능하다. 1. 클라이언트가 서버에 요청(Request)를 보낸다. 2. 서버는 클라이언트의 요청에 대한 응답(Response)을 작성하고, 응답 헤더의 Set-Cookie에 사용자의 브라우저에 저장될 데이터를 담아 보낸다. 3. 이후 해당 클라이언트는 요청을 보낼 때마다, 저장된 쿠키를 요청 헤더의 Cookie에 담아 보내게 된다. 4. 따라서, 서버는 ..
XML Web Services (+ HTTP, SOAP, WSDL, UDDI), 시나리오
·
🐣 Computer Science
XML Web Services 관련 기술로는 HTTP, SOAP, WSDL, UDDI가 있다. 📌 HTTPHyperText Transper Protocol의 약자로, 서로 다른 시스템을 통신할 수 있는 프로토콜이다. HyperText라는 것은, 컴퓨터 화면 및 전자 기기에서 볼 수 있는 텍스트 데이터를 의미하는데, 이것을 빠르게 네트워크 상에서 교환하기 위한 프로토콜인 것이다. Client - Server 웹에서 이루어지는 대표적인 인터넷 프로토콜이며, 클라이언트에서 URL을 통해서 서버에 요청(Request)을 하면, 서버에서는 해당 요청에 대한 응답(Response)을 하는 형태로 동작한다. Stateless 서버에서는 클라이언트에 대한 상태를 전혀 보관하지 않는다. Connectionless 또한,..
SOA(Service Oriented Architecture)란?
·
🐣 Computer Science
📌 ServiceSOA를 알기 전, 서비스란 무엇인지 간단하게 설명해보자면, 우리가 컴퓨터에서 실행하는 프로그램, 애플리케이션을 소프트웨어라 한다. 이러한 소프트웨어를 다운로드하여 컴퓨터, 모바일에서 사용을 하곤 하는데, 서비스라는 것은 인터넷, 네트워크를 통해 제공되는 정보 및 기술을 의미한다. 소프트웨어와 함께 제공되어 설치하지 않고도 인터넷을 통해 서비스에 접속하여 이용할 수 있다. ✅ 구조Service Interface : 서비스 인터페이스는 서비스를 호출하기 위한 통신 방법이 정의된다. 이용자는 이를 제공받아 서비스를 이용한다. Service Implementation : 실질적으로 서비스가 구현되어 있는 곳이다. 서비스 이용자들은 서비스 구현이 어떻게 이루어져있는 지에 대해서는 몰라도 인터페이..
분산 컴퓨팅, RPC vs. XML Web Service 비교
·
🐣 Computer Science
📌 분산 컴퓨팅(Distributed Computing)이란?분산 컴퓨팅(Distributed Computing)이란, 말 그대로 여러 대의 컴퓨터가 분산되어 하나의 일을 해결하는 개념이다. 대량의 데이터 및 연산을 처리해야 하는 거대한 문제를 해결하고자, 원격지에 존재하는 여러 대의 컴퓨터들을 이용하여 협업하는 것으로, 대규모의 데이터베이스와 빅데이터를 분산하여 일을 처리하거나, 여러 프로그램들을 분산시켜 원격으로 실행하는 경우이다. 마치 하나의 컴퓨터인 것처럼 동작하며, 자원의 공유와 협업이 가능하기 때문에 효율적으로 활용이 가능하고, 확장성이 우수하다. ✅ 장점자원의 활용이 효율적자원의 공유와 협업이 가능 확장성이 좋다.빠른 성능을 제공 원격 컴퓨터를 이용하여 협업한다고 하는데,, 원격 컴퓨터를 어..