Computer Science

Computer Science/OperatingSystem

[OS] 프로세스와 스레드는 어떤 차이점이 있나요?

이전에 프로세스와 스레드에 대하여 정리를 한 적이 있지만, 공부하기 위해서 다시 정리를 하기로 하였다. 단순 프로세스와 스레드에 대한 설명은 생략하고, 차이점에 대해서만 집중적으로 정리를 해보자면 실행 단위 프로세스는 운영체제로부터 자원을 할당받아 독립적으로 실행되는 프로그램 단위이다. 각각의 프로세스는 독립된 주소 공간, 파일, 메모리등을 가지며, 각각이 별도의 작업을 수행한다. 스레드는 프로세스 내에서 실행되는 작업단위로, 프로세스의 자원을 공유하면서 실행됩니다. 스레드는 동일한 프로세스 내에서 여러 개가 동시에 실행 될 수 있으며, 주소 공간과 자원을 공유하면서 작업을 수행합니다. 자원 공유 각각의 프로세스는 독립된 주소 공간을 가지고 있기 때문에 자원 공유가 어렵다. 프로세스 간에 자원을 공유하기..

Computer Science/Linux

[Linux] Linux(리눅스) 란?

리눅스란? 리눅스(Linux)는 오픈 소스 운영 체제(OS) 중 하나로, 컴퓨터 하드웨어와 소프트웨어 리소스를 관리하고 사용자와 프로그램 간의 인터페이스를 제공합니다. 리눅스는 프로그램 개발, 웹 서버, 데이터베이스 서버 등의 다양한 용도로 사용되며, 안정성, 보안성, 유연성 등의 장점을 가지고 있습니다. 리눅스는 UNIX 운영 체제에서 영향을 받아 개발된 운영 체제입니다. 리눅스는 UNIX와 유사한 명령어와 파일 시스템을 사용하며, 다중 사용자 및 다중 작업 환경을 지원합니다. 또한, 소스 코드 공개 및 수정이 자유롭기 때문에 개발자들에게 인기가 높습니다. 리눅스는 다양한 배포판(Distribution)으로 제공되며, 대표적으로 Ubuntu, CentOS, Debian, Fedora 등이 있습니다. 각..

Computer Science/Network

[Network] TCP와 UDP

TCP(Transmission Control Protocol) TCP(Transmission Control Protocol)는 인터넷 프로토콜 스택에서 가장 많이 사용되는 전송 계층 프로토콜 중 하나입니다. TCP는 연결 지향적인 프로토콜로, 전송할 데이터를 패킷 단위로 나누어 순서에 맞게 전송합니다. TCP는 전송할 데이터를 여러 개의 패킷으로 분할하고, 각 패킷에 일련번호(sequence number)를 부여하여 전송합니다. 수신자는 이 일련번호를 기반으로 패킷을 받은 순서대로 재조립합니다. 이때, 송신자는 각 패킷 전송 후, 수신자로부터 확인 응답(ACK) 메시지를 받으면 다음 패킷을 전송합니다. 만약 일정 시간 동안 수신자로부터 ACK 메시지가 도착하지 않으면 해당 패킷을 재전송합니다. 이러한 절..

Computer Science/Algorithm

[Algorithm] 내가 지금 현재 풀고 있는 알고리즘 사이트

지금 현 상황 2023년 5월 4일(목) 내가 풀고 있는 알고리즘 사이트에 대해서 정리를 하여보자. 백준알고리즘 백준알고리즘 사이트이다. 내가 지금 현재 가장 주력으로 풀고있다. 앞으로 졸업까지 목표는 1000문제를 푸는 것이다.(할 수 있을까...) 내가 가장 좋아하는 사이트이다. 프로그래머스 프로그래머스이다. 최근에 네이버, 삼성 코테를 보면서 프로그래머스 또한 풀어야겠구나를 느꼈다. 특히나 네이버 코테때는 프로그래머스 환경에 익숙해져야함을 느꼈다. 목표는 lv3까지는 다 푸는 것이다. 삼성 SwExpertAcademy 최근에 다시 풀기 시작한 사이트이다. 삼성의 출제방식이랑 최대한 비슷해서 풀고있다. 삼성을 갈 수 있으나 모르겠다....

Computer Science/Algorithm

[Algorithm] DFS와 BFS

DFS와 BFS 란 DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색)는 그래프 탐색 알고리즘입니다. 이 두 알고리즘은 그래프의 노드를 탐색하는 방식에서 차이가 있습니다. DFS는 한 노드에서 시작하여 깊이를 우선으로 탐색하며, 해당 경로가 더 이상 진행할 수 없을 때 되돌아가서 다른 경로를 탐색합니다. 스택이나 재귀 함수를 사용하여 구현할 수 있습니다. DFS는 그래프의 깊은 부분을 우선적으로 탐색하므로, 해답이 깊은 단계에 위치한 경우 효율적일 수 있습니다. 하지만 무한 루프에 빠질 수 있으며, 최단 경로를 찾는 문제에서는 최적의 해를 보장하지 않을 수 있습니다. BFS는 한 노드에서 시작하여 인접한 모든 노드를 먼저 탐색한 후, 그 다음 레벨의 인접한 노드를 탐색합니다. 큐를 사용하여 구현할 수 있..

Computer Science/Network

[Network] HTTP 란

오늘은 HTTP에 대해서 알아보자 HTTP 란? HTTP (Hypertext Transfer Protocol)는 인터넷에서 데이터를 주고받는 프로토콜 중 하나로, 웹 서버와 클라이언트 간의 통신을 위해 사용됩니다. HTTP는 클라이언트(웹 브라우저)와 서버 간에 요청(request)과 응답(response)을 주고받는 방식으로 동작합니다. 클라이언트는 웹 서버에게 요청을 보내고, 서버는 요청에 대한 응답을 반환합니다. 요청과 응답은 일반적으로 텍스트 형식으로 이루어져 있으며, 이를 HTTP 메시지라고 합니다. HTTP는 주로 웹 페이지를 전송하는 데 사용되지만, 다양한 종류의 데이터를 전송할 수 있습니다. HTTP는 기본적으로 TCP/IP 프로토콜 위에서 동작하며, 80번 포트를 사용합니다. HTTPS는..

Computer Science/Algorithm

[Algorithm] 유니온 파인드(Union-Find) 알고리즘

유니온 파인드(Union-Find) 알고리즘이란 유니온 파인드 알고리즘은 대표적인 그래프 알고리즘 중 하나로, 주어진 그래프의 노드들을 서로 다른 집합으로 분리하거나, 두 개의 노드가 같은 집합에 속하는지 여부를 판단하는 데 사용됩니다. 이 알고리즘은 일반적으로 노드들이 상호 연결된 그래프에서 사용됩니다. 초기에는 모든 노드들이 각각 서로 다른 집합에 속해 있습니다. 유니온 파인드 알고리즘은 두 개의 노드가 같은 집합에 속하도록 하거나, 두개의 집합을 하나로 합치는 연산을 수행합니다. 이 알고리즘의 핵심은 각각의 집합을 하나의 트리로 나타내는 것 입니다. 각 노드는 해당 집합의 루트 노드를 가리키는 포인터를 가지고 있습니다. 노드들이 합쳐지면, 두 트리의 루트 노드를 연결하고, 이전에 각 트리의 루트 노..

Computer Science/Computer Security

[Security] 컴퓨터 보안(Computer Security)의 개요(간단 정리)

컴퓨터 보안이란 컴퓨터 보안(Computer Security)은 컴퓨터 시스템과 네트워크 시스템의 보호를 위한 전문 분야입니다. 컴퓨터 보안은 컴퓨터 시스템의 보안 위협으로부터 데이터를 보호하고, 시스템의 안정성과 기밀성을 유지하기 위해 일련의 절차와 기술을 적용합니다. 컴퓨터 보안은 컴퓨터 시스템과 네트워크 시스템에 대한 공격을 방어하고, 보안 위협으로부터 시스템을 보호하는데 중점을 둡니다. 이러한 보안 위협은 컴퓨터 바이러스, 악성 소프트웨어, 침입자, 악의적인 해커 등으로부터 발생할 수 있습니다. 컴퓨터 보안은 컴퓨터 시스템의 안정성, 가용성, 무결성, 기밀성을 유지하는 것을 목표로 합니다. 이를 위해 다양한 보안 기술과 방법을 사용합니다. 이러한 기술과 방법으로는 암호화, 인증, 권한 부여, 네트..