CS, OS, Network8 서로 다른 데이터 전송 방식, TCP와 UDP 신뢰성이 중요한 TCP, 속도가 중요한 UDP. 어디에 쓰는 개념이며, 무엇이 서로 다를까? TCP와 UDP는 네트워크에서 사용하는 개념이다. 네트워크는 광의의 개념으로 보면 네트워크란 두 개 이상의 컴퓨터 간의 데이터 통신에 대한 이야기로, TCP와 UDP는 데이터를 주고 받을 때 어떤 규약 및 절차를 사용하느냐에 대한 내용이다. TCP(Transmission Control Protocal) 속도 대신 연결성과 신뢰성이 중요한 상황(애플리케이션)에서 사용하는 통신 규약이다. 예시를 들어보자. 핀란드로 유학을 떠난 민수(수신자)는 한국 음식이 그리워졌다. 핀란드 친구들과 한국 음식 파티를 하기로 한다. 한인마트에서 잘 팔지 않는 식료품(데이터)은 한국에 있는 친동생 경수(송신자)에게 부탁한다(SYN). .. CS, OS, Network 2023. 7. 2. 멀티스레딩 (Multithreading)과 멀티프로세싱 (Multiprocessing)의 차이점 멀티쓰레드와 멀티프로세스는 모두 여러 작업을 동시에 처리할 수 있는 기술이다. 이들은 프로그램이 여러 작업을 동시에 처리하도록 지원함으로써, 높은 성능과 효율성을 달성할 수 있게 한다. 차이점 자원 공유: 멀티쓰레드는 하나의 프로세스 내에서 여러 쓰레드가 자원을 공유하여 사용합니다. 반면 멀티프로세스는 서로 다른 프로세스끼리 자원을 공유할 수 없습니다. 컨텍스트 스위칭(Context Switching): 멀티쓰레드는 쓰레드 간의 전환 시에 컨텍스트 스위칭(Context Switching)이 일어나며, 이는 비교적 빠른 속도로 일어납니다. 반면 멀티프로세스는 프로세스 간의 전환 시에도 컨텍스트 스위칭이 일어나며, 이는 상대적으로 느린 속도로 일어납니다. 메모리 사용: 멀티쓰레드는 하나의 프로세스 내에서 여.. CS, OS, Network 2023. 4. 24. 보안(Security)과 관련된 문제들은 무엇이 있을까? SQL 인젝션, 예방 Q. SQL 인젝션은 무엇이며, 어떻게 예방할 수 있습니까? 답변: SQL 인젝션은 악의적인 SQL 코드가 데이터베이스 시스템에 주입되어 실행되는 보안 취약점입니다. 이를 방지하기 위해 사용자 입력에 대한 검증, Prepared Statements 또는 파라미터화된 쿼리 사용, 필요한 권한만 부여하고 최소한의 권한 원칙을 따르는 것이 중요합니다. 크로스 사이트 스크립팅(XSS), 예방 Q. 크로스 사이트 스크립팅(XSS)이란 무엇이며, 어떻게 예방할 수 있습니까? 답변: 게시글과 같은 페이지에, 공격자가 악성 스크립트를 삽입하여, 사용자의 정보를 탈취, 악성코드등을 유입시키는 공격을 말합니다. 크로스 사이트 스크립팅(XSS)은 악의적인 스크립트가 사용자의 웹 브라우저에서 실행되어 개.. CS, OS, Network 2023. 4. 19. 자료구조와 알고리즘 중에서 자주 사용되는 것들 자료구조와 알고리즘은 컴퓨터 과학에서 가장 기초적이고 중요한 개념 중 하나이다. 자료구조와 알고리즘은 메모리를 효율적으로 사용하면서 데이터를 빠르고 안정적으로 처리하는 것을 목표로 한다. 자료구조 자료구조(Data Structure)는 컴퓨터가 데이터를 효율적으로 조작할 수 있도록 돕는 데이터 저장 및 연산의 총체를 의미한다. 다시 말해, 자료구조는 데이터를 구성하고 저장하는 방법을 다룬다. 데이터를 보다 쉽게 추가, 검색, 수정, 삭제할 수 있는 구조를 제공하고자 한다. 다음의 자료구조 형태를 이용하여 프로그래밍을 할 때 데이터를 보다 효율적으로 다룰 수 있다. 배열(Array): 인덱스로 값을 저장하고 접근하는 가장 기본적인 자료구조로, 일련의 항목을 순서대로 저장한다. 연결 리스트(Linked Li.. CS, OS, Network 2023. 4. 18. REST API, RESTful API에 대해서 API는 프로그램과 프로그램 사이에서 정보를 주고 받는 일종의 방식이다. REST API는 HTTP를 이용해서 기계들이 통신을 할 때 HTTP가 가지고 있는 기능을 최대한 활용해서 명확하면서 단순하게 통신할 수 없을까?하는 고민에서 출발한 모범사례라고 할 수 있다. - REST API는 HTTP 통신을 제어하는 과정에서 어떻게 하면 시행착오를 줄이고, 더 좋은 API를 만들 수 있는 가에 대한 고민의 결과물이 REST API라고 할 수 있다. (- 생활코딩) REST REST(Representational State Transfer)는 '자원'을 이름(표현)으로 구분하여 해당 정보(자원의 상태)를 주고 받는 모든 것을 의미한다. REST API는 웹 서비스와 클라이언트 애플리케이션 간의 상호작용을 위한 .. CS, OS, Network 2023. 4. 17. [자바스크립트] HTTP와 HTTPS, 둘의 차이점 HTTP HTTP(HyperText Transfer Protocol)와 HTTPS(HyperText Transfer Protocol Secure)는 인터넷에서 데이터를 주고받는 프로토콜이다. 클라이언트와 서버 간의 통신을 위해 디자인되었다. 주로 웹 브라우저와 웹 서버 간의 통신에 사용된다. 80번 포트를 사용한다. HTTP는 요청(Request)과 응답(Response)으로 이루어져 있다. 클라이언트는 HTTP 요청 메시지를 서버에 보내고, 서버는 요청에 대한 응답으로 HTTP 응답 메시지를 클라이언트에게 반환한다. 요청 메시지와 응답 메시지는 HTTP 헤더header와 본문body로 이루어져 있다. HTTP는 상태가 없는, Stateless한 프로토콜이기 때문에, 각각의 요청은 서버에 의해 독립적으로.. CS, OS, Network 2023. 4. 17. [운영체제] 프로세스와 스레드란? 그리고 차이점 프로세스와 스레드는 프로그램에서 실행되는 어떤 실행 단위를 의미한다. 프로그램(Program) 프로그램은 어떤 작업을 하기 위한 명령어 목록과 그에 필요한 데이터를 묶어 놓은 실행파일로, 보조기억장치에 정적인 상태로 저장되어있다. 프로그램의 실행과정은 다음과 같다. 1) 사용자가 컴퓨터에게 프로그램을 실행할 것을 요청하면 2) 컴퓨터가 프로그램의 정보를 읽고 프로그램이 메모리를 사용할 수 있게 할당한다. 3) 그리고 프로그램의 정보들이 메모리에 로드되며 프로그램이 실행된다. 정리하자면, 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 프로그램은 프로세스가 되는 것이다. 이 과정을 프로세스를 생성한다고 표현한다. 프로세스(Process) 프로세스(Process)는 '실행 중인 프로그램'으로.. CS, OS, Network 2023. 4. 14. CPU(중앙 처리 장치)와 캐시(cache) 간단히 알아보자 컴퓨터에는 네 가지 핵심 부품이 있다. CPU와 메모리, 보조기억장치, 입력 및 출력장치이다. 1) CPU의 뜻과 역할 CPU(Central Processing Unit)는 중앙 처리 장치라고 부른다. 컴퓨터가 이해하는 두 가지 정보는 데이터와 명령어로 이루어져있다. 이 두 정보는 메모리에 저장되어있고, CPU는 메모리에 저장된 명령어와 데이터를 가져와서 읽고, 해석하고, 실행하는 부품이다. 컴퓨터의 구조에서 CPU는 인간에게 있어서 뇌와 같다. 입력장치로부터 자료를 받아 연산하고 그 결과를 출력장치로 보내는 일련의 과정을 제어하는 핵심장치인 것이다. 2) CPU는 무엇으로 구성되어있나? ALU(산술/논리 연산 유닛), CU(제어 장치), 여러 레지스터, 캐시로 구성되어있다. - ALU는 산술 및 논리 .. CS, OS, Network 2022. 11. 13. 이전 1 다음