본문 바로가기

전체 글459

Electron의 주요 API Electron 창(Window) 관련 APIElectron에서 창을 관리할 때 BrowserWindow API를 사용합니다.창을 생성하고 크기 조정, 숨기기, 닫기 등의 동작을 수행할 수 있습니다.창 생성 및 설정 (BrowserWindow)창 크기 및 옵션 설정 (width, height, resizable 등)창 이벤트 (ready-to-show, closed 등)창 조작 (show(), hide(), maximize(), minimize(), close() 등)즉, Electron의 BrowserWindow를 사용하면 네이티브 데스크톱 애플리케이션처럼 창을 제어할 수 있습니다!1. BrowserWindow 생성 및 설정BrowserWindow 기본 생성const { app, BrowserWindo.. 2025. 3. 18.
Electron 핵심 프로세스 - 프로세스 간 통신 IPC (Inter-Process Communication) 개념IPC란?**IPC (Inter-Process Communication, 프로세스 간 통신)**은 여러 프로세스가 서로 데이터를 주고받는 기술입니다.Electron에서는 메인 프로세스(Main Process)와 렌더러 프로세스(Renderer Process)가 분리되어 있기 때문에,두 프로세스가 서로 통신하려면 IPC를 활용해야 합니다.IPC는 메인 프로세스 ↔ 렌더러 프로세스 간 데이터를 주고받는 방법Electron에서는 ipcMain(메인)과 ipcRenderer(렌더러) 모듈을 사용하여 IPC 구현contextBridge를 활용하면 보안을 유지하면서 IPC 사용 가능즉, Electron에서 IPC는 "메인 프로세스와 렌더러 프로세스를 .. 2025. 3. 18.
Electron 핵심 프로세스 - 렌더러 프로세스 렌더러 프로세스(Renderer Process)의 역할렌더러 프로세스란?렌더러 프로세스(Renderer Process)는 Electron에서 UI를 담당하는 프로세스입니다.즉, 웹 기술(HTML, CSS, JavaScript)을 사용하여 화면을 렌더링하고 사용자 입력을 처리하는 역할을 합니다.HTML, CSS, JavaScript를 사용하여 UI 구성사용자 입력(클릭, 키보드 입력 등) 처리렌더링된 웹페이지를 표시하고 이벤트 핸들링 수행메인 프로세스와 IPC를 통해 통신 (데이터 요청, UI 업데이트 등)React, Vue, Svelte 같은 프레임워크를 활용하여 UI 개발 가능즉, 렌더러 프로세스는 Electron의 "웹 브라우저" 역할을 합니다!1. 렌더러 프로세스의 주요 역할1️⃣ UI 렌더링HTM.. 2025. 3. 17.
Electron 핵심 프로세스 - 메인 프로세스 메인 프로세스(Main Process)의 역할Electron에서 메인 프로세스는 애플리케이션의 핵심 로직을 담당하는 프로세스입니다.즉, 앱의 생명 주기를 관리하고, 창을 생성하며, 시스템 API와 상호 작용하는 역할을 합니다.1. 메인 프로세스의 핵심 역할1️⃣ 애플리케이션 생명 주기 관리앱 실행, 종료, 백그라운드 실행 등2️⃣ 창(BrowserWindow) 생성 및 관리여러 개의 창 생성, 크기 조절, 닫기, 숨기기 등3️⃣ 시스템 API 사용 (파일, OS, 클립보드 등)파일 읽기/쓰기, OS 정보 가져오기, 전역 단축키 설정4️⃣ 메뉴 및 트레이 아이콘 관리상단 메뉴 추가, 우클릭 메뉴, 트레이 아이콘 생성5️⃣ 프로세스 간 통신(IPC) 처리렌더러 프로세스와 메시지 주고받기6️⃣ 자동 업데이트 .. 2025. 3. 17.
Electron의 기본 개념 Electron이란? Build cross-platform desktop apps with JavaScript, HTML, and CSS | ElectronBuild cross-platform desktop apps with JavaScript, HTML, and CSSwww.electronjs.org(https://www.electronjs.org/)Electron은 웹 기술(HTML, CSS, JavaScript)로 데스크톱 애플리케이션을 만들 수 있는 프레임워크입니다.Electron을 사용하면 Windows, macOS, Linux에서 실행되는 네이티브 데스크톱 애플리케이션을 만들 수 있습니다.웹 개발자도 추가 학습 없이 데스크톱 애플리케이션을 개발할 수 있습니다.Chrome(V8 엔진) + Nod.. 2025. 3. 17.
인증 1. 인증의 개념어떤 실체가 정말 그 실체가 맞는지 확인하는 과정실체는 다음과 같은 것들이 될 수 있음:메시지 인증: 메시지가 변조되지 않았음을 검증사용자 인증: 사용자가 본인이 맞는지 검증출처 인증: 데이터가 신뢰할 수 있는 출처에서 왔는지 검증장치 인증: 특정 장치가 허가된 장치인지 검증2. 메시지 인증메시지의 무결성(Integrity) 보장 → 전송 중 변조되지 않았음을 확인2.1 메시지 인증 코드 (MAC, Message Authentication Code)MAC은 메시지의 변조 여부를 확인하는 데 사용되는 코드로, 비밀키를 기반으로 생성됨.(단, MAC은 메시지를 보호하지만 기밀성은 제공하지 않음)송신 과정메시지 → MAC 알고리즘(비밀키 K) → MAC 생성메시지 + MAC을 함께 전송수신 과.. 2025. 3. 17.
암호의 개념 암호는 안전하지 않은 채널을 통해 정보를 주고받더라도 제3자가 내용을 알 수 없도록 보호하는 기술이다.기본 개념평문 (Plaintext): 원래의 메시지암호문 (Ciphertext): 코드화된 메시지암호화 (Encryption): 평문 → 암호문복호화 (Decryption): 암호문 → 평문키 (Key): 암호화 및 복호화를 위한 중요한 값Kerckhoff의 원리: 암호 알고리즘이 알려져도 키를 모르면 해독할 수 없도록 설계해야 한다.암호의 역사고대 암호스테가노그래피 (Steganography): 메시지 자체를 숨기는 기법 (ex. 나무판에 조각 후 밀랍으로 덮어 전달)전치법 (Transposition Cipher): 문자의 순서를 바꿔 암호화 (ex. 애너그램)치환법 (Substitution Ciphe.. 2025. 3. 17.
[Python] 데이터 시각화 Matplotlibimport seaborn as snsimport matplotlib.pyplot as pltdf = sns.load_dataset('penguins')## 산점도# scatter(): 산점도를 나타내냄. x축과 y축 정보를 입력# plt.show()를 통해 그래프를 출력한다.plt.scatter(df['flipper_length_mm'], df['body_mass_g'])plt.show()## 바 그래프df_group = df.groupby('species')['body_mass_g'].mean().reset_index()# bar(): 바 그래프. x축과 높이 정보(height)를 입력plt.bar(x=df_group['species'], height=df_group['body_ma.. 2025. 3. 16.
[Nest] 데코레이터 데코레이터Nest는 데코레이터를 자주 사용한다.타입스크립트의 데코레이터는 파이썬의 데코레이터나 자바의 어노테이션과 유사한 기능을 한다. 클래스, 메서드, 접근자, 프로퍼티, 매개변수에 적용 가능하다.class CreateUserDto { @IsEmail() @MaxLength(60) readonly email: string; @IsString() @Matches(/^[A-Za-z\d!@#$%^&*()]{8,30}$/) readonly password: string;}위 코드는 허용값을 제대로 요청했는 지 검사하고 있다. @IsEmail(): 이메일 형식을 가진 문자열@MaxLength(60): 길이는 최대 60자 @IsString(): password는 문자열 @Matches(...): 주어진.. 2025. 3. 16.
[Nest] 설치 및 프로젝트 만들기 Nest.js 설치 및 프로젝트 만들기nest js 설치(node.js가 없다면: https://nodejs.org/ko 여기서 다운로드 받은 뒤 터미널에서 'node -v'으로 확인)npm i -g @nestjs/clinest도 'nest -v'로 버전 확인nest project 생성 (project-name에 원하는 이름을 적으면 된다. 적지 않고 'nest new'만 입력하면 이후에 물어본다.)nest new project-nametree로 확인해보니 약 6000개의 디렉토리와 18000개의 파일이 설치 되었다.cd project-name/project로 이동 후,nest startnpm run start로 로컬에서 확인 할 수 있다. localhost:3000에 hello world가 나오면 정상.. 2025. 3. 16.
증명 증명(Proof)이란 공리(axiom)와 정의(definition)를 기반으로 명제가 참임을 논리적으로 입증하는 과정1. 기본 개념공리 (Axiom)증명 없이 참이라고 가정하는 명제평행선 공리: 한 직선 밖의 한 점을 지나면서 그 직선과 평행한 직선은 단 하나 존재한다.정리 (Theorem)공리를 바탕으로 증명된 명제피타고라스 정리: 직각삼각형에서 a² + b² = c²보조정리 (Lemma)정리를 증명하는 과정에서 사용되는 명제어떤 수가 소수라면 그 수는 √n 이하의 소수로 나누어지지 않는다.따름정리 (Corollary)정리로부터 쉽게 도출되는 부가적인 명제삼각형의 세 내각의 합이 180°라면, 사각형의 네 내각의 합은 360°이다.2. 직접 증명법 (Direct Proof)정의를 직접 사용하여 논리적으.. 2025. 3. 16.
논리 1. 명제(Proposition)명제란 참(True) 또는 거짓(False)을 명확히 판별할 수 있는 문장을 의미한다.예를 들어:"2는 짝수이다." → 참 (명제 O)"x는 짝수이다." → x가 특정되지 않으므로 명제가 아님 (명제 함수)2. 합성 명제 (Compound Proposition)하나 이상의 명제와 논리 연산자(AND, OR, NOT 등)로 이루어진 명제논리 연산 (Truth Table 포함)논리합(OR, ∨)p ∨ q: p 또는 q 중 하나라도 참이면 참p | q | p ∨ q-----------------T | T | TT | F | TF | T | TF | F | F논리곱(AND, ∧)p ∧ q: p와 q 둘 다 참이어야 참p | q | .. 2025. 3. 16.