728x90
안정된 동기화 매커니즘의 필요성컴퓨터는 프로세서, 즉 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..
1. MariaDB 데이터베이스 덤프를 생성mysqldump 명령어를 통해 데이터베이스 백업을 생선한다# 단일 데이터베이스 백업mysqldump -u root -p [데이터베이스이름] > [파일이름].sql# 전체 백업mariadb-dump -u [아이디] -p[패스워드] --all-databases > [백업파일명].sql 그 뒤 MariaDB 환경변수도 확인하여 향후 설정을 대비한다. 2. 도커 이미지 생성하기MariaDB 데이터를 포함한 Docker 이미지를 생성한다FROM mariadb:10.11 # MariaDB 버전 명시ENV MYSQL_ROOT_PASSWORD {비밀번호} # 루트 비밀번호 설정ENV MYSQL_DATABASE {DB명} # 생성할 DB 이름COPY ./{DB명}_a..
인프콘에 나오더라인프콘 2024의 이동욱 개발자님은 인프런 레거시 작업을 하며 여러 개선 사례를 공유했다.초반에 인프런의 국제화를 목표로 함을 언급하는데, 이때 트래픽은 동일한데 계속해서 상승하는 환율로 인한 서버 문제를 언급한다.이어서 따라서 비용을 줄이고자 트래픽을 가만히 둘 수 없어 시도한 작업 중 하나가 이미지 트래픽을 줄이는 방식이었고 이를 통해 avif 확장자를 언급한다. AVIF 확장자란AV1 비디오 코텍을 기반으로 한 차세대 이미지 포맷이다. 압축 방식이 효율적인지라, 높은 품질을 유지하면서도 상대적으로 작은 파일 크기를 저장할 수 있게 한다. 얼만큼 효율적이고 얼만큼 높은 품질을 유지해주냐면 - JPEG 대비 최대 50% 까지의 파일 크기 감소와 더불어 동일 화질 유지- PNG에서만 가..