본문 바로가기

분류 전체보기3260

728x90
리눅스 서버 세마포어(Semaphore) 프로세스 동기화 문제 해결 Semaphore는 컴퓨터 과학에서 동시성 제어를 위해 널리 사용되는 개념으로, 운영체제나 프로그래밍에서 다중 프로세스나 스레드가 자원을 공유할 때 발생할 수 있는 문제들을 방지하기 위해 사용됩니다. Semaphore는 기본적으로 카운터로서 작동하며, 특정 자원에 대한 접근을 제한하는 데 사용됩니다. Semaphore의 작동 방식 초기화: Semaphore는 정수 값으로 초기화됩니다. 이 값은 동시에 접근할 수 있는 스레드 또는 프로세스의 최대 수를 나타냅니다. 대기(Wait): 프로세스/스레드가 자원에 접근하려고 할 때, Semaphore의 값을 감소시킵니다. 만약 Semaphore 값이 0이면, 이는 모든 자원이 사용 중임을 의미하고, 추가적인 프로세스/스레드는 대기 상태가 됩니다. 신호(Signal.. 2024. 2. 20.
JSON 데이터를 각각의 객체로 분할하여 형식을 변환하는 jq 명령어 { "BEGIN": { "type": "text", "fields": { "float": { "type": "float", "ignore_malformed": true }, "keyword": { "type": "keyword", "ignore_above": 128 } } }, "END": { "type": "text", "fields": { "float": { "type": "float", "ignore_malformed": true }, "keyword": { "type": "keyword", "ignore_above": 128 } } }, ... } 위 형태의 JSON 데이터 객체를 분리하여 아래처럼 바꾸기 위한 jq 명령어에 대한 예시입니다. { "BEGIN" : ... } { "END": ..... 2024. 2. 19.
OAuth 2.0 워크플로우 이해 및 구글 서비스 인증 토큰 OAuth 플로우는 인터넷 사용자가 하나의 서비스(예: 웹사이트나 앱)가 다른 서비스의 정보에 접근할 수 있도록 허용하는 표준화된 프로세스입니다. OAuth를 사용하면 사용자가 자신의 자격 증명(예: 아이디와 비밀번호)을 제3의 서비스에 제공하지 않고도 두 서비스 간의 안전한 데이터 공유를 허용할 수 있습니다. 이 과정에서 주로 두 가지 유형의 토큰(액세스 토큰과 리프레시 토큰)이 사용됩니다. 액세스 토큰 (Access Token) 목적: 액세스 토큰은 사용자가 서비스에 로그인한 후, 이 서비스가 다른 서비스에 접근할 수 있도록 하는 짧은 기간의 토큰입니다. 유효 기간: 일반적으로 짧은 기간(예: 몇 시간) 동안만 유효합니다. 사용 방식: 사용자가 로그인을 완료하면, 서비스는 액세스 토큰을 받고, 이 토.. 2024. 2. 18.
API 서비스 보안 체크 포인트 정리 API 서비스를 대외적으로 공개하기 전에 보안 관점에서 준수해야 할 기준을 설정하는 것은 매우 중요합니다. 여기 몇 가지 주요 보안 기준을 소개합니다. 인증 및 권한 부여: 사용자가 API에 액세스하고 상호 작용할 수 있는 방식을 관리하기 위해 강력한 인증 및 권한 부여 메커니즘을 구현해야 합니다. OAuth, JWT (JSON Web Tokens) 같은 표준을 사용하는 것이 좋습니다. 암호화: 데이터 전송은 SSL/TLS와 같은 안전한 프로토콜을 사용하여 암호화되어야 합니다. 이는 데이터가 인터넷을 통해 전송될 때 도청되거나 변경되는 것을 방지합니다. 접근 제한 및 속도 제한: 악의적인 사용자가 시스템을 과부하시키거나 데이터를 손상시키는 것을 방지하기 위해 IP 주소 또는 토큰 기반의 접근 제한 및 요.. 2024. 2. 17.
MySQL 5.7에서 8.0으로 업그레이드 과정 및 준비사항 MySQL 5.7에서 8.0으로의 업그레이드는 주요한 데이터베이스 시스템 변경을 수반하며, 이 과정은 몇 가지 핵심 단계와 고려해야 할 중요한 포인트로 구성됩니다. 아래에서는 이 업그레이드 과정의 기본 배경, 주요 단계, 예상되는 도전 과제 및 이를 해결하기 위한 방안에 대해 상세하게 설명합니다. 배경 MySQL 8.0은 여러 새로운 기능과 개선사항을 제공합니다. 이는 보안 강화, 쿼리 실행 최적화, 새로운 데이터 타입의 지원, JSON 확장 및 성능 개선을 포함합니다. 또한, MySQL 8.0은 새로운 기본 문자 세트인 utf8mb4로의 전환을 포함하여, 국제화 및 다양한 언어 지원 면에서도 개선을 제공합니다. 업그레이드 준비 단계 업그레이드 필요성 인식: MySQL 5.7의 공식 지원 종료와 보안, .. 2024. 2. 16.
728x90
728x90