728x90
운영체제의 SystemCallOS가 Application에게 자원을 이용할 수 있도록 제공하는 인터페이스다.이 인터페이스는 시스템 상의 치명적인 영향을 줄 수 있는 명령어에 대해서 불법 사용자로부터 실행되는 것을 막고자하는데, 이에 대해 내부적으로 DualMode(이중 동작모드)를 갖추고 있다. 운영체제의 Dual ModeDual Mode란 커널에서 중요한 자원을 관리하고 있는데, 사용자가 그 중요자원에 접근하지 못하도록 모드를 2가지로 분류한 것이다. 그게 바로 UserMode와 KernelMode. User Mode유저가 접근할 수 있는 영역을 제한적으로 둠 → 프로그램 자원에 함부로 침범하지 못하게 함User Mode에서 코드를 작성하거나 프로세스를 실행하는 등의 행동 가능‘User Applic..
ChatGPT를 한 15개월을 넘게 써본 것 같은데, 더 잘 쓸 방법을 찾아보고 싶다.그렇다면 OpanAI Playground를 살펴봄으로써 GPT를 어떤 방식으로 조절할 지에 대한 지표를 얻을 수 있다. ChatGPT와 OpenAI Playground OpenAI는 두 가지 종류의 생성형 AI를 제공한다.ChatGPT는 알다시피 일반 사용자를 위한 대화형 AI 챗봇으로, 자연어 기반으로 질문하고 답변을 받을 수 있다. 그 반면에 OpenAI Playground는 개발자/연구자를 위한 실험 플랫폼으로, 다양한 AI 모델을 지정한 뒤 응답 길이, 온도(일관성, 창의력 관련) 등을 조정함으로써 AI 모델 동작을 세밀하게 제어해볼 수 있다. 이 두 플랫폼은 가격 책정 방식도 다른데, ChatGPT는 월정액 구..
안정된 동기화 매커니즘의 필요성컴퓨터는 프로세서, 즉 CPU의 성능을 극대화하기 위해 동시에 여러 작업을 수행하려고 한다. 이를 위해 멀티스레딩과 동시성 프로그래밍 기법이 발전해왔다. 그런데 여러 스레드가 동시에 실행된다는 것은 자원 공유에 대한 문제를 고려해야하는 일이다. 가령 두 사람이 같은 은행 계좌에서 동시에 출금을 시도했는데 결과 잔액이 음수가 되는 사항을 막기 위해서가 대표적인 예다. 따라서 안정된 동기화 매커니즘을 맞추기 위해 뮤텍스와 세마포어가 등장했으며, 스레드 간 경쟁을 방지하고 공유 자원의 무결성을 보장하는 것이 그 목적이다. 그리고 각각은 다음과 같은 방법을 취한다. 😡 뮤텍스: 한 번에 한 명만 들어오라구.🤢 세마포어: 한 번에 이만큼만 들어오라구. 뮤텍스(Mutex)뮤텍스..
ExceptionException은 프로그램 실행 중에 발생하는 오류상황이다. 가령 없는 파일을 읽거나 잘못된 인덱스를 참조하는 등 많은 예외가 발생한다. 그리고 이들은 Checked Exception과 Unchecked Exception으로 분류를 할 수 있다. Checked ExceptionChecked Exception은 '컴파일 시점'에 처리 여부를 확인해야 하는 예외다. 즉, 코드 작성 때 반드시 처리해야한다. 처리하지 않으면 컴파일러가 오류를 발생시킬 것이므로, try-catch 블록으로 처리하거나 throws 키워드를 선언해주는 것이 예방책이다.import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException..
도커 네트워크도커 네트워크란, Docker 컨테이너 간의 통신을 관리하고 격리하기 위한 기능이다예를 들어, A컨테이너와 B 컨테이너에서 MariaDB가 띄워져 있고 이 두개가 master/slave 관계를 맺고 싶다. 그 경우에 서로가 통신 가능하게끔 추가 설정을 해줘야할텐데 이를 도커 네트워크 기능으로 할 수 있는 것이다. 도커 네트워크의 구조기존 컴퓨터는 서버와 통신 시 네트워크를 통해 이루어진다. 이에 따라 도커 네트워크도 컨테이너들이 서로 통신을 하기 위해 필요한 규칙과 구조를 만들어 준다.그 전에 용어를 몇 개 알고가야 한다 사전용어eth0 (Ethernet network card)이더넷 네트워크 카드, 네트워크 인터페이스, 랜카드 등등으로 불리는데 쉽게 말하면 컴퓨터가 네트워크에 연결되려면..
관찰가능성이란시스템의 내부 상태를 외부에서 이해하고 추론할 수 있는 척도를 얘기한다. 예를 들어 대표적으로 Log를 통해 텍스트를 통한 에러나 상태 변경을 기록할 수도 있고, Metrics로 시스템의 성능을 측정하는 방식도 있다.시스템은 본래 관찰 가능하게 설계됨으로써 시스템에서 발생하는 문제의 근본 원인을 파악할 수 있고 이를 통해 예상치 못한 문제를 사전에 탐지하고자 한다. 관찰가능성의 구성요소로그로그는 시스템 내에서 발생한 이벤트의 상세 기록이다. 사용차 요청이라든지, 에러 메시지라든지. 보통 아래와 같이 시간대 별로 Error가 났니, Debug 메시지니 하는 것들을 다 포함한다.[2024-11-20 10:23:45] ERROR - OrderService - Order ID: 12345 fail..