분류 전체보기
-
X-Aiz-Signature-V1란? X-Aiz-Signature-V1 를 이용한 API 통신 보안기능 개발Spring/Spring 개발 예제 2024. 5. 23. 15:59
Contents --> X-Aiz-Signature-V1 HTTP 요청 헤더로, 주로 API 통신에서 사용되는 보안 기능을 담당합니다. 이러한 서명 헤더는 데이터의 무결성과 출처의 신뢰성을 확인하기 위해 디지털 서명을 포함하는 경우가 많습니다. 주요 용도인증 및 인가:요청을 보낸 사람의 신원을 인증합니다.전송 중에 요청이 변경되지 않았음을 확인합니다.데이터 무결성:전송된 데이터가 중간에 변경되지 않고, 원본 그대로 도착했음을 보장합니다.재전송 방지:서명에 타임스탬프나 고유 식별자를 포함하여 동일한 요청이 여러 번 전송되는 재전송 공격을 방지합니다.일반적인 구현 방식서명 생성:요청을 보내는 쪽에서 비밀 키를 사용해 서명을 생성하고, 이를 X-Aiz-Signature-V1 헤더에 포함합니다.주로 HMAC..
-
JSON 마셜링/언마셜링이란?컴퓨터과학 2024. 5. 23. 15:41
Contents --> JSON 마셜링/언마셜링이란?**JSON 마셜링(Marshalling)**과 **언마셜링(Unmarshalling)**은 데이터를 객체와 JSON 포맷 사이에서 변환하는 과정입니다.마셜링(Marshalling): 자바 객체를 JSON 문자열로 변환하는 과정.언마셜링(Unmarshalling): JSON 문자열을 자바 객체로 변환하는 과정.이러한 변환을 통해 자바 객체를 JSON 형식으로 외부 시스템에 전달하거나, JSON 형식의 데이터를 자바 객체로 변환하여 사용하게 됩니다. 주요 라이브러리자바에서 JSON 마셜링/언마셜링을 수행하는 대표적인 라이브러리로는 다음과 같은 것들이 있습니다:Jackson: 가장 널리 사용되는 JSON 처리 라이브러리 중 하나.Gson: Googl..
-
컨슈머 스레드(Consumer Thread)와 프로듀서 스레드(Producer Thread)컴퓨터과학 2024. 5. 23. 11:09
Contents --> 컨슈머 스레드(Consumer Thread)와 프로듀서 스레드(Producer Thread)란 멀티스레딩 환경에서 자주 사용되는 개념입니다. 이 개념들은 주로 생산자-소비자 문제(Producer-Consumer Problem)라는 고전적인 동시성 문제를 해결하는 데 사용됩니다.이유와 필요성자원 효율적인 사용:프로듀서 스레드와 컨슈머 스레드를 통해 작업을 분리함으로써 자원을 보다 효율적으로 사용할 수 있습니다. 예를 들어, 데이터 생성과 데이터 처리를 동시에 수행함으로써 시스템의 자원 활용도를 높일 수 있습니다.병렬 처리:멀티스레딩을 통해 여러 작업을 동시에 수행할 수 있습니다. 프로듀서 스레드가 데이터를 생성하는 동안 컨슈머 스레드는 데이터를 처리할 수 있어 전체 시스템의 처..
-
cpu바운드 프로그램 멀티쓰레딩에 최적의 스레드 개수 결정 방법 및 멀티쓰레딩 개발에 주의할점컴퓨터과학 2024. 5. 22. 14:01
Contents --> 기본 원칙최적의 스레드 수 = CPU 코어 수: 일반적으로, CPU 바운드 작업에서는 CPU 코어 수만큼의 스레드를 사용하는 것이 가장 효율적입니다. 이는 각 스레드가 동시에 실행될 수 있어 최대의 병렬성을 달성할 수 있기 때문입니다.과도한 스레드 사용 피하기: 스레드 수가 CPU 코어 수를 초과하면, 스레드 간의 문맥 전환 오버헤드가 발생하여 성능 저하를 초래할 수 있습니다.쓰레드 갯수 선택 이유병렬 처리 최적화: 각 스레드가 하나의 CPU 코어에서 실행될 수 있어 최대한의 병렬 처리가 가능해집니다.컨텍스트 스위칭 감소: 불필요한 스레드 간의 컨텍스트 스위칭을 최소화하여 CPU 오버헤드를 줄입니다.예제 코드아래 예제는 CPU 바운드 작업을 수행하는 파이썬 프로그램입니다. 이 ..
-
프로세스 컨텍스트 스위칭과 스레드 컨텍스트 스위칭 정의 및 차이 with 예제 python컴퓨터과학 2024. 5. 22. 11:58
Contents --> 프로세스 컨텍스트 스위칭 (Process Context Switching)정의프로세스 컨텍스트 스위칭은 CPU가 현재 실행 중인 프로세스의 상태를 저장하고 다른 프로세스의 상태를 복원하여 실행하는 것을 말합니다. 여기서 프로세스는 운영 체제에서 독립된 실행 환경을 가진 프로그램을 의미합니다.필요성다중 작업을 지원하기 위해 CPU는 여러 프로세스를 빠르게 전환하며 실행합니다.각 프로세스는 자신의 메모리 공간과 리소스를 가지고 있어야 하므로, 프로세스 스위칭 시 많은 정보를 저장하고 복원해야 합니다.컨텍스트 저장 내용CPU 레지스터 (프로그램 카운터, 스택 포인터 등)프로세스 상태 (레디, 실행 중, 대기 등)메모리 관리 정보 (페이지 테이블 등)기타 프로세스 관련 리소스예제프로세스..
-
단일프로세스,멀티프로그래밍,멀티태스킹,멀티프로세싱,컨텍스트 스위칭,스레드,멀티쓰레드란 무엇인가?컴퓨터과학 2024. 5. 17. 11:40
Contents --> 초기 컴퓨터와 프로세스초기의 컴퓨터는 한 번에 하나의 작업만 수행할 수 있었습니다. 이러한 시스템은 배치 처리(batch processing) 시스템으로, 하나의 작업이 끝나야 다음 작업을 시작할 수 있었습니다. 이때, 하나의 작업 단위는 프로세스(process)로, 독립적인 주소 공간과 자원을 가지는 프로그램 실행 단위를 의미합니다. 프로세스간에는 메모리가 공유되지 않는다. 단일프로세스cpu는 메모리에서 프로세스를 실행한다.단하나의 메모리에 있는 프로세스을 실행하는것을 단일프로세스라고한다. 단일프로세스의 단점은 cpu 1개의 하나의 프로세스을 실행시키므로 cpu낭비가 심하다. 멀티프로그래밍단일프로세스의 단점을 보완하기 위해 생긴 개념 cpu가 2개이상의 프로세스를 실행시키는 ..
-
postgresql 실행계획 - recheck cond - 수정중데이터베이스/postgresql 2024. 5. 16. 11:51
Contents --> recheck condPostgreSQL 실행 계획에서 "recheck condition"은 조인 또는 필터 조건을 다시 확인해야 하는 경우를 가리킵니다. 이는 PostgreSQL이 레코드를 검색하거나 조인할 때 초기에는 조건을 충족하는 것처럼 보이지만, 후속 단계에서 다시 확인해야 하는 상황을 의미합니다.예를 들어, 인덱스 스캔을 사용하여 조인 또는 필터링을 수행할 때, PostgreSQL은 인덱스를 사용하여 먼저 레코드를 필터링합니다. 그러나 인덱스만으로는 완전한 결과를 보장할 수 없는 경우가 있습니다. 따라서 PostgreSQL은 해당 레코드를 다시 확인하여 추가적인 조건을 충족하는지 확인합니다.이러한 "recheck condition" 단계는 성능에 영향을 줄 수 있으므로..
-
short query , long query 란 무엇인가? sql최적화 팁 - 수정중데이터베이스/postgresql 2024. 5. 13. 13:49
첫 번째 단계는 쿼리가 짧은 쿼리인지 긴 쿼리인지 식별하는 것입니다. 이 장에서는 짧은 쿼리를 최적화하는 데 중점을 둡니다. 짧은 쿼리를 식별하는 방법, 짧은 쿼리에 사용할 최적화 기술, 이 쿼리 유형에 인덱스가 매우 중요한 이유를 배우게 됩니다. 또한 PostgreSQL에서 사용할 수 있는 다양한 유형의 인덱스와 각 인덱스 유형을 사용할 수 있는 경우에 대해서도 설명합니다. 이 챕터를 진행하기 전에 몇 가지 추가 인덱스를 만들어 보겠습니다 SELECT d.airport_code AS departure_airport, a.airport_code AS arrival_airportFROM airport a, airport dLong query 1-1SELECT f.flight_no, f.scheduled..