전체 글 23

Argc 및 Argv에 대한 어셈블리어

일반적으로 프로그램이 argv 배열로 받은 인자는 스택에 저장됨 main() 함수의 인자로 받은 argc와 argv는 스택에 저장되며, 이들은 다음과 같은 방식으로 스택에 위치할 수 있음 (x86 아키텍처를 가정) push ebp ; 이전의 베이스 포인터를 스택에 저장 mov ebp, esp ; 새로운 베이스 포인터 설정 mov eax, [ebp+8] ; argc를 레지스터로 로드 mov edx, [ebp+12]; argv를 레지스터로 로드 ; 이후 eax와 edx 레지스터에는 각각 argc와 argv의 값이 들어있음 여기서 [ebp+8]은 argc가 위치한 주소이며, [ebp+12]는 argv가 위치한 주소임 argv 배열은 문자열 포인터 배열이므로, 해당 포인터들이 가리키는 실제 문자열은 별도의 메모..

Elastic Search의 이중화 방식(HA)

Primary-Replica 방식 일반적인 Elastic Search 이중화 방식 Primary Shard에 데이터를 저장하고, Replica Shard에는 복제함 Primary Shard의 데이터 변경은 Replica Shard에도 동기적으로 반영됨 주로 읽기 성능과 장애 대비를 위해 사용되며, 복제본이므로 데이터 손실 시에도 복구 가능 Async Replication 방식 Primary shard에 저장된 데이터 변경이 이루어지면, 이를 신속하게 Replica shard에 복제하지 않고 일정 시간 간격으로 비동기적으로 복제 읽기 성능에 영향을 주지 않으며, 복제 지연 시간 동안 데이터 손실 가능성이 존재 Sync Replication 방식 Primary shard에 저장된 데이터 변경이 이루어지면, ..

Elastic Search의 샤딩(Sharding)에 대해

샤딩(Sharding)이란? 샤딩은 대량의 데이터를 더 작은 조각으로 분할하여 여러 개의 서버에 저장하는 개념을 의미함 단일 서버에서 처리하는 어려운 대용량 데이터를 여러 서버에 분산하여 처리하도록 할 수 있게함 샤딩의 필요성 데이터 베이스내 데이터 양이 증가하게 되면서 단일 서버에서 처리하기 어려움, 그렇기에 이를 해결 하기 위해 분산 처리하게 끔하는 개념인 샤딩이 필요함 ElasticSearch에서의 샤딩 Elasticsearch에서 Document의 집한인 Index는 기본적으로 "샤드(Shard)"라는 단위로 분리되고 각 노드에 분산되어 저장됨 Elasticsearch에서의 Shard는 "Primary Shard"와 "Replica Shard"가 있는데, "Replica shard"는 "Prima..

AutoGPT란?

AUTO GPT란? ‘시그니피컨트 그래비타스’(Significant Gravitas)라는 개발자가 오픈AI의 언어 모델 GPT-4를 기반으로 만든 오픈 소스 프로그램 오픈AI의 대규모언어모델(LLM)인 GPT-4를 사용하는 파이썬 애플리케이션 최종 목표를 설정하면 사람의 개입없이 AI 모델 스스로 목표 달성을 위한 작업을 수행 기본적인 작업 성과는 오픈AI 챗GPT와 비슷 AutoGPT 특징 챗GPT로 수행할 수 있는 대부분의 작업을 수행할 수 있는데, 프롬프트를 자율적으로 생성하는게 가장 큰 차이 애플리케이션이 작업 완료에 필요한 프롬프트를 스스로 만들고, 그를 수행하는 것 오토GPT는 챗GPT보다 더 적은 프롬프트로 훨씬 더 높은 수준의 작업을 완료하도록 요청할 수 있음 오토GPT는 '연속모드'를 제..

[파이썬] SyntaxError : invalid syntax 오류 원인 및 해결 방법

■ 오류 원인 - 파이썬 문법을 지키지 않았을 때 발생하는 에러가 발생함 ■ 잘못된 예시 및 해결 방법 - 1. 괄호가 닫히지 않은 경우 ( 발생되는 에러 : SyntaxError: EOL while scanning string literal ) # 예시 1 - 괄호가 닫히지 않은 경우 print("Hello, World!) - 2. 콜론이 잘못 사용된 경우 ( 발생되는 에러 : SyntaxError: invalid syntax ) # 예시 2 - 콜론이 잘못 사용된 경우 if x = 10: print(x) - 3. 들여쓰기가 잘못된 경우 ( 발생되는 에러 : IndentationError: expected an indented block ) # 예시 3 - 들여쓰기가 잘못된 경우 for i in ran..

WSL(Windows Subsystem for Linux)이란?

■ WSL이란? - WSL (Windows Subsystem for Linux)은 마이크로소프트에서 제공하는 Windows 운영 체제에서 Linux 운영 체제를 실행할 수 있는 기술임. - WSL은 Windows 10에서 제공되고 있으며, Windows 사용자들이 Linux 환경에서 제공되는 명령줄 도구, 스크립트, 언어 등을 사용할 수 있는 기회를 제공함 - 가상 머신이나 부팅 가상 머신을 사용하는 것과 달리, WSL은 Windows 운영 체제의 커널에서 동작함 - WSL을 사용하면 Windows 운영 체제에서 Linux 패키지를 설치하고 실행할 수 있으며, Windows 파일 시스템에 접근할 수 있어 편의성이 높음 ■ WSL 사용방법 설치 wsl --install 특정 Linux 배포판 설치 wsl ..

■ IT/- Windows 2023.02.12

Semgrep에 대해 알아보자(개념, 설치방법)

■ Semgrep에 대한 개념 Semgrep은 소스 코드 분석 도구로, 패턴 매칭 기술을 이용하여 보안 취약점, 버그 등의 코드 문제를 찾아내는데 도움을 주는 도구임 Semgrep은 Abstract Syntax Tree(AST) 기술을 기반으로 한 소스 코드 분석 도구임 ( AST는 프로그래밍 언어의 코드를 구조화된 형태로 나타낸 것임 ) 즉, semgrep은 오픈소스 정적도구임 ■ Semgrep의 장점 쉬운 설정 : Semgrep은 단일 YAML 파일로 구성하여 단순하고 쉽게 사용할 수 있음 작업 효율성 : Semgrep은 기존 코드에서 이전에 발견되지 않은 문제를 빠르게 식별할 수 있음 다양한 언어 지원 : Semgrep은 다양한 프로그래밍 언어를 지원함 자동화 : Semgrep을 이용하면, 코드 검..

■ Security 2023.02.10