목록CS (6)
Coding Planet
| 운영체제란(OS)란 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨와와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제(커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분 광의의 운영체제 : 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념(ex. 파일 시스템) | 운영체제의 목표 컴퓨터 시스템의 자원을 효율적으로 관리해준다. -> 자원관리자 프로세서, 기억장치, 입출력 장치 등을 효율적으로 관리해준다. 사용자간의 형평성 있는 자원을 분배하는데 주어진 자원으로 최대한의 성능을 내도록 한다. 사용자 및 운영체제 자신을 보호하고 프로세스, 파일 메시지 등을 관리한다. 여러 프로그램을 동시에 쓰기 위해서는 메모리를 쪼개서 할당해야하는데 어떤 프로그램이 어느정도 써야하는지..
JWT(Jason Web Token)을 이용한 로그인 방식을 공부하던 도 중 stateless 통신의 장점에 대한 포스트를 읽게되었다. Stateful과 Stateless에 대한 개괄적인 이해만 있는 상태여서 이번 기회에 명확하게 이해하고 싶어졌다. Stateless와 Stateful은 주로 웹 서버의 세션 관리 방식을 설명하는 데 사용되는 두 가지 개념이다. 이들은 서버가 클라이언트의 상태(예: 사용자의 인증 상태, 이전의 상호작용)를 어떻게 추적하고 관리하는지에 대한 차이를 나타낸다. | Stateful(유상태) 상태 유지라함은 클라이언트와 서버 관계에서 서버가 클라이언트이 상태를 보존함을 의미한다. 클라이언트와 서버 사이에서 송수신이 일어날 때 서버에서 클라이언트가 이전 단계에서 제공한 값을 저장하..
HTTP(하이퍼텍스트 전송 프로토콜) 요청은 클라이언트에서 웹 서버로 보내는 메시지로, 웹 리소스를 요청하거나 서버에 동작을 요청하는 데 사용된다. HTTP 요청은 일반적으로 다음과 같은 구조를 가지고 있다. 1. Start Line(Status Line) Start Line은 HTTP method, Request target, HTTP vesion으로 구성되어 있다. HTTP method: HTTP 요청에만 존재한다(응답에는 없음!) 요청하는 동작 또는 메서드를 나타내는데 클라이언트가 서버에게 어떤 동작을 수행해야하는지를 지정한다. 주요 HTTP 메서드로는 GET, POST, PUT, DELETE 등이 있으며, 각각의 메서드는 다른 동작을 수행한다. 예를 들어, GET 메서드는 리소스를 조회하는 데 사..
Spring의 의존성과 Maven을 공부하면서 플러그인이라는 단어가 자주 등장했다. Plugin이라는 단어에서 전기 플러그를 연결하듯 무엇인가를 더한다는 의미인것은 유추할 수 있었다. 심지어 내가 지금 블로그를 작성하는 티스토리에서 플러그인이 아래 이미지와 같이 등장한 이상 더 이상 이에 대한 공부를 미룰 수가 없기에 공부를 했다. 1. 플러그인(Plugin) 프로그램이나 소프트웨어에 추가 기능을 제공하기 위해 확장 모듈로서 동작하는 소프트웨어 구성 요소 플러그인은 원래의 소프트웨어에 연결되어 특정 작업을 수행하거나 기능을 확장하도록 설계되어 있다. 즉, 내가 사용하고 있는 프로그램에 어떠한 기능을 더하는 기능을 의미한다. 예를 들어, 자바 프로젝트의 빌드와 종속성 관리, 프로젝트 관리를 해주는 Mave..
1. Thread(스레드)란? 프로그램이란 일종의 명령어 집합으로, 우리가 컴퓨터에 명령을 내리면 그 명령을 수행하는 것이다. 이 명령어를 수행하는 동안에는 일종의 실행 흐름이 존재하는데, 이 실행 흐름을 스레드(Thread)라고 한다. 스레드는 독립적인 실행 흐름이며, 하나의 프로그램 내에서 여러 개의 스레드가 동시에 실행될 수 있다. 이러한 스레드는 프로세스(Process)의 일부로 실행되며, 해당 프로세스의 자원을 공유한다. 이렇게 스레드를 사용하면 여러 작업을 동시에 수행할 수 있어서 시스템의 성능을 향상시키는 등 여러 가지 이점을 얻을 수 있다. 다만 스레드를 사용하는 경우에는 하나의 스레드가 다른 스레드에 영향을 끼치지 않도록 동기화(Synchronization)를 해야 한다. 이러한 동기화는..
동기화는 멀티스레드 환경에서 공유 데이터에 접근할 때 발생하는 문제를 해결하기 위한 메커니즘 멀티스레드 환경에서 하나의 자원에 여러 스레드가 동시에 접근하면 데이터의 불일치성, 일관성이 깨지거나 충돌이 발생할 수 있다. 이러한 문제를 방지하기 위해 스레드 간의 작업을 조율하는 것이 동기화 동기화는 하나의 스레드가 작업을 수행하고 있는 동안 다른 스레드가 해당 작업에 접근하지 못하도록 막아준다. 이를 통해 공유 데이터의 일관성을 유지하고 데이터의 무결성을 보장 따라서 어떠한 메서드나 자료형을 쓸 때 해당 자료형이 동기화를 지원하는지를 고려해야한다. 예를들어 HashSet은 동기화되어있지 않아 멀티스레드 환경에서 안전하게 사용하기 위해서는 동기화 처리를 해주어야한다.