From 722d5dbfaf1d93bf2df07a795ba33bfbc8b33a23 Mon Sep 17 00:00:00 2001 From: dihwang Date: Mon, 4 May 2026 10:30:04 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=EB=9E=9C=EB=A7=8C=EC=97=90=20?= =?UTF-8?q?=EC=BB=A4=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/01.Shelf/AI/Coding Agent.md | 1 - content/01.Shelf/KUI/Kui 서버 구성.md | 9 + content/01.Shelf/WORKBENCH/개발(Dev).md | 5 - content/01.Shelf/WORKBENCH/회계.md | 2 + content/01.Shelf/개발(DEV)/AI.md | 4 + content/01.Shelf/개발(DEV)/Develop.md | 2 + content/01.Shelf/개발(DEV)/Language.md | 2 + content/01.Shelf/개발(DEV)/Network.md | 5 + .../리눅스-유닉스.md => 개발(DEV)/OS.md} | 0 content/01.Shelf/개발(DEV)/Server.md | 2 + .../클린코드의 기술.md | 0 content/02.Volume/AI/Aider 명령어.md | 22 + content/02.Volume/AI/Aider 최초 사용.md | 689 ++++++++++++++++++ content/02.Volume/AI/Aider 프로젝트 생성.md | 69 ++ content/02.Volume/DB/MariaDB vs PostgreSql.md | 66 ++ content/02.Volume/DB/RDBMS vs NoSQL.md | 64 ++ content/02.Volume/DB/RDBMS사용 시 주의점들.md | 20 + ...케이션(서비스) 실행 시 계정 구분하는 이유.md | 32 + .../Network/Pc끼리 Lan선으로 Direct 연결.md | 21 + .../02.Volume/Network/RS-232와 Serial 통신.md | 9 + .../Gitea & Quartz 배포 자동화 트러블슈팅.md | 0 .../Server}/KUI/WebHook.md | 0 .../Server}/KUI/gitea, qurtz 설치.md | 0 .../Server}/KUI/kui-vault.md | 0 .../Server/KUI/worker server spec.md | 63 ++ content/02.Volume/일상/전표처리.md | 45 ++ content/03.Note/ACID.md | 26 + ...CP(Dynamic Host Configuration Protocol).md | 49 ++ content/03.Note/NoSQL.md | 45 ++ content/03.Note/RDBMS.md | 50 ++ content/03.Note/RS-232 vs 이더넷.md | 72 ++ content/03.Note/RS-232.md | 57 ++ ...RS-232가 이더넷을 따라잡을 수 없는 이유.md | 49 ++ content/03.Note/게이트웨이(Gateway).md | 58 ++ .../관계형 데이터베이스(RDBMS)의 한계.md | 42 ++ .../데이터 정합성(Data Consistency).md | 30 + content/03.Note/데이터 조인이 느린 이유.md | 43 ++ content/03.Note/동기(Synchronous).md | 37 + content/03.Note/라우터(Router).md | 61 ++ .../03.Note/라우팅 테이블(Routing Table).md | 54 ++ content/03.Note/라우팅(Routing).md | 23 + content/03.Note/법인카드 결제상신 경로.md | 10 + content/03.Note/부가세여부.md | 32 + content/03.Note/분개(分介).md | 79 ++ content/03.Note/분개전표.md | 45 ++ content/03.Note/서브넷 마스크(Subnet Mask).md | 52 ++ content/03.Note/서브넷(Subnet).md | 49 +- .../시리얼 통신(Serial Communication).md | 64 ++ content/03.Note/전표.md | 40 + .../차동 신호(Differential Signaling).md | 72 ++ content/03.Note/트랜잭션(Transaction).md | 25 + .../04.Extra/Pasted image 20260413110952.png | Bin 0 -> 11916 bytes .../04.Extra/Pasted image 20260427095731.png | Bin 0 -> 84505 bytes .../04.Extra/Pasted image 20260427133315.png | Bin 0 -> 43883 bytes .../04.Extra/Pasted image 20260504100456.png | Bin 0 -> 125183 bytes content/05.Template/메모 템플릿.md | 3 +- 56 files changed, 2288 insertions(+), 11 deletions(-) delete mode 100644 content/01.Shelf/AI/Coding Agent.md create mode 100644 content/01.Shelf/KUI/Kui 서버 구성.md delete mode 100644 content/01.Shelf/WORKBENCH/개발(Dev).md create mode 100644 content/01.Shelf/WORKBENCH/회계.md create mode 100644 content/01.Shelf/개발(DEV)/AI.md create mode 100644 content/01.Shelf/개발(DEV)/Develop.md create mode 100644 content/01.Shelf/개발(DEV)/Language.md create mode 100644 content/01.Shelf/개발(DEV)/Network.md rename content/01.Shelf/{WORKBENCH/리눅스-유닉스.md => 개발(DEV)/OS.md} (100%) create mode 100644 content/01.Shelf/개발(DEV)/Server.md rename content/01.Shelf/{CLEAN CODE => 개발(DEV)}/클린코드의 기술.md (100%) create mode 100644 content/02.Volume/AI/Aider 명령어.md create mode 100644 content/02.Volume/AI/Aider 최초 사용.md create mode 100644 content/02.Volume/AI/Aider 프로젝트 생성.md create mode 100644 content/02.Volume/DB/MariaDB vs PostgreSql.md create mode 100644 content/02.Volume/DB/RDBMS vs NoSQL.md create mode 100644 content/02.Volume/DB/RDBMS사용 시 주의점들.md create mode 100644 content/02.Volume/Linux-Unix/어플리케이션(서비스) 실행 시 계정 구분하는 이유.md create mode 100644 content/02.Volume/Network/Pc끼리 Lan선으로 Direct 연결.md create mode 100644 content/02.Volume/Network/RS-232와 Serial 통신.md rename content/{01.Shelf => 02.Volume/Server}/KUI/Gitea & Quartz 배포 자동화 트러블슈팅.md (100%) rename content/{01.Shelf => 02.Volume/Server}/KUI/WebHook.md (100%) rename content/{01.Shelf => 02.Volume/Server}/KUI/gitea, qurtz 설치.md (100%) rename content/{01.Shelf => 02.Volume/Server}/KUI/kui-vault.md (100%) create mode 100644 content/02.Volume/Server/KUI/worker server spec.md create mode 100644 content/02.Volume/일상/전표처리.md create mode 100644 content/03.Note/ACID.md create mode 100644 content/03.Note/DHCP(Dynamic Host Configuration Protocol).md create mode 100644 content/03.Note/NoSQL.md create mode 100644 content/03.Note/RDBMS.md create mode 100644 content/03.Note/RS-232 vs 이더넷.md create mode 100644 content/03.Note/RS-232.md create mode 100644 content/03.Note/RS-232가 이더넷을 따라잡을 수 없는 이유.md create mode 100644 content/03.Note/게이트웨이(Gateway).md create mode 100644 content/03.Note/관계형 데이터베이스(RDBMS)의 한계.md create mode 100644 content/03.Note/데이터 정합성(Data Consistency).md create mode 100644 content/03.Note/데이터 조인이 느린 이유.md create mode 100644 content/03.Note/동기(Synchronous).md create mode 100644 content/03.Note/라우터(Router).md create mode 100644 content/03.Note/라우팅 테이블(Routing Table).md create mode 100644 content/03.Note/라우팅(Routing).md create mode 100644 content/03.Note/법인카드 결제상신 경로.md create mode 100644 content/03.Note/부가세여부.md create mode 100644 content/03.Note/분개(分介).md create mode 100644 content/03.Note/분개전표.md create mode 100644 content/03.Note/서브넷 마스크(Subnet Mask).md create mode 100644 content/03.Note/시리얼 통신(Serial Communication).md create mode 100644 content/03.Note/전표.md create mode 100644 content/03.Note/차동 신호(Differential Signaling).md create mode 100644 content/03.Note/트랜잭션(Transaction).md create mode 100644 content/04.Extra/Pasted image 20260413110952.png create mode 100644 content/04.Extra/Pasted image 20260427095731.png create mode 100644 content/04.Extra/Pasted image 20260427133315.png create mode 100644 content/04.Extra/Pasted image 20260504100456.png diff --git a/content/01.Shelf/AI/Coding Agent.md b/content/01.Shelf/AI/Coding Agent.md deleted file mode 100644 index b7da233..0000000 --- a/content/01.Shelf/AI/Coding Agent.md +++ /dev/null @@ -1 +0,0 @@ -[[Aider 사용기]] \ No newline at end of file diff --git a/content/01.Shelf/KUI/Kui 서버 구성.md b/content/01.Shelf/KUI/Kui 서버 구성.md new file mode 100644 index 0000000..c0d0b27 --- /dev/null +++ b/content/01.Shelf/KUI/Kui 서버 구성.md @@ -0,0 +1,9 @@ +[[Gitea & Quartz 배포 자동화 트러블슈팅]] + +[[gitea, qurtz 설치]] + +[[kui-vault]] + +[[WebHook]] + + diff --git a/content/01.Shelf/WORKBENCH/개발(Dev).md b/content/01.Shelf/WORKBENCH/개발(Dev).md deleted file mode 100644 index 21b2925..0000000 --- a/content/01.Shelf/WORKBENCH/개발(Dev).md +++ /dev/null @@ -1,5 +0,0 @@ -## Language -[[파이썬(python) 통찰]] - -## Tech -[[Functional Domain Modeling]] \ No newline at end of file diff --git a/content/01.Shelf/WORKBENCH/회계.md b/content/01.Shelf/WORKBENCH/회계.md new file mode 100644 index 0000000..6f4b098 --- /dev/null +++ b/content/01.Shelf/WORKBENCH/회계.md @@ -0,0 +1,2 @@ +[[전표처리]] + diff --git a/content/01.Shelf/개발(DEV)/AI.md b/content/01.Shelf/개발(DEV)/AI.md new file mode 100644 index 0000000..ffc1694 --- /dev/null +++ b/content/01.Shelf/개발(DEV)/AI.md @@ -0,0 +1,4 @@ +### Coding Agent +[[Aider 사용기]] +[[Aider 프로젝트 생성]] + diff --git a/content/01.Shelf/개발(DEV)/Develop.md b/content/01.Shelf/개발(DEV)/Develop.md new file mode 100644 index 0000000..25f2e9f --- /dev/null +++ b/content/01.Shelf/개발(DEV)/Develop.md @@ -0,0 +1,2 @@ +[[Functional Domain Modeling]] + diff --git a/content/01.Shelf/개발(DEV)/Language.md b/content/01.Shelf/개발(DEV)/Language.md new file mode 100644 index 0000000..01b3985 --- /dev/null +++ b/content/01.Shelf/개발(DEV)/Language.md @@ -0,0 +1,2 @@ +[[파이썬(python) 통찰]] + diff --git a/content/01.Shelf/개발(DEV)/Network.md b/content/01.Shelf/개발(DEV)/Network.md new file mode 100644 index 0000000..7f1596a --- /dev/null +++ b/content/01.Shelf/개발(DEV)/Network.md @@ -0,0 +1,5 @@ +[[VPN으로 외부 DB에 접근]] + +[[Pc끼리 Lan선으로 Direct 연결]] + +[[RS-232와 Serial 통신]] \ No newline at end of file diff --git a/content/01.Shelf/WORKBENCH/리눅스-유닉스.md b/content/01.Shelf/개발(DEV)/OS.md similarity index 100% rename from content/01.Shelf/WORKBENCH/리눅스-유닉스.md rename to content/01.Shelf/개발(DEV)/OS.md diff --git a/content/01.Shelf/개발(DEV)/Server.md b/content/01.Shelf/개발(DEV)/Server.md new file mode 100644 index 0000000..23f60a7 --- /dev/null +++ b/content/01.Shelf/개발(DEV)/Server.md @@ -0,0 +1,2 @@ +### Server +[[어플리케이션(서비스) 실행 시 계정 구분하는 이유]] \ No newline at end of file diff --git a/content/01.Shelf/CLEAN CODE/클린코드의 기술.md b/content/01.Shelf/개발(DEV)/클린코드의 기술.md similarity index 100% rename from content/01.Shelf/CLEAN CODE/클린코드의 기술.md rename to content/01.Shelf/개발(DEV)/클린코드의 기술.md diff --git a/content/02.Volume/AI/Aider 명령어.md b/content/02.Volume/AI/Aider 명령어.md new file mode 100644 index 0000000..87c1e43 --- /dev/null +++ b/content/02.Volume/AI/Aider 명령어.md @@ -0,0 +1,22 @@ +--- +id: "Aider 단축키 20260413" +created: "2026-04-13 13:35" +tags: +--- +| **명령어** | **설명** | **비고** | +| --------------- | --------------------------------- | ----------------------------------- | +| **/undo** | **AI가 방금 수정한 코드를 취소하고 직전 상태로 복구** | 가장 자주 쓰임 | +| **/add <파일>** | 수정하거나 참고할 파일을 채팅창에 추가 | 파일명 일부만 쳐도 자동완성 | +| **/drop <파일>** | 채팅창에서 특정 파일 제외 | 실제 파일이 삭제되지는 않음 | +| **/ls** | 현재 채팅창에 포함된 파일 목록 확인 | | +| **/diff** | 마지막 수정 사항의 변경 전/후 차이점 표시 | | +| **/test <명령어>** | 테스트 명령을 실행하고 실패 시 AI가 자동 수정 | 예: `/test pytest` | +| **/model <모델>** | 사용 중인 AI 모델을 즉시 변경 | 예: `/model gemini/gemini-2.5-flash` | +| **/tokens** | 현재 세션의 토큰 사용량과 비용 정보 확인 | | +| **/run <명령어>** | 에이더를 나가지 않고 터미널 명령어 실행 | 예: `/run ls -al` | +| **/exit** | 에이더 종료 | `/quit`과 동일 | +| **/help** | 모든 명령어 목록과 상세 도움말 확인 | | +| **명령어** | **용도** | **특징** | +| **/ask <질문>** | 코드에 대해 질문하기 | 코드를 **직접 수정하지 않고** 설명만 해줍니다. | +| **/chat <메시지>** | 일반적인 대화/토론 | 파일 수정 없이 구현 방법이나 구조에 대해 논의할 때 씁니다. | +| **/code <명령>** | 코드 수정 요청 | 기본 모드입니다. 지시한 대로 파일을 직접 수정합니다. | diff --git a/content/02.Volume/AI/Aider 최초 사용.md b/content/02.Volume/AI/Aider 최초 사용.md new file mode 100644 index 0000000..5250c14 --- /dev/null +++ b/content/02.Volume/AI/Aider 최초 사용.md @@ -0,0 +1,689 @@ +--- +id: "Aider 최초 사용 20260413" +created: "2026-04-13 14:01" +tags: +--- +Gemini를 채찍질해서 아래의 명세를 가지는 VaultKeeper 어플리케이션 구상을 함. +( kui-veil 서버의 auth 관리 어플리케이션임 ) + +```markdown +## 🏗️ VaultKeeper 프로젝트 상세 설계도 (Ver 2.0) + +### 1. 개요 + +- **목적**: Nginx의 `.htpasswd` 파일을 웹 GUI를 통해 관리하는 초경량 도구. + +- **타겟 환경**: Google Cloud e2-micro (저사양 서버). + +- **주요 언어**: **Go** (백엔드), **Vanilla JS** (프론트엔드). + + +### 2. 보안 전략 (핵심) + +- **인증 분리**: 백엔드 자체에 로그인 로직을 구현하지 않고, Nginx의 `auth_basic` 모듈에 인증을 위임함. + +- **접근 권한**: 서버 관리자가 터미널에서 직접 생성한 계정으로만 웹 UI에 접근 가능. + +- **입력값 검증**: `os/exec` 실행 시 쉘 인젝션을 방지하기 위해 사용자 이름에 특수문자 입력을 제한함. + + +### 3. 구성 요소 + +- **Backend (`main.go`)**: + + - 환경 변수 `HTPASSWD_PATH`를 통해 대상 파일 경로 지정. + + - 표준 패키지 `net/http`를 사용하여 메모리 점유 최소화. + + - `htpasswd` 시스템 명령어를 서브프로세스로 호출하여 계정 추가/삭제. + +- **Frontend (`index.html`)**: + + - 단일 파일 SPA 구조. + + - Tailwind CSS(CDN)를 활용한 직관적인 대시보드. +``` + +```markdown + +## 🤖 에이더(Aider)를 위한 최종 지시서 + +아래 내용을 에이더 채팅창에 입력하시면 됩니다. + +**프로젝트: VaultKeeper (Nginx .htpasswd 관리 도구)** + +**1. 백엔드 구현 (`main.go`)** + +- **언어**: Go (표준 라이브러리 위주로 매우 가볍게). + +- **기능**: + + - `GET /api/users`: `.htpasswd` 파일을 읽어 유저 목록을 JSON으로 반환. + + - `POST /api/users`: `username`, `password`를 받아 `htpasswd -b` 실행. + + - `DELETE /api/users/{username}`: `htpasswd -D` 실행. + +- **보안**: 사용자 이름 입력값에서 쉘 인젝션이 발생하지 않도록 유효성 검사 로직 포함. + +- **설정**: `.htpasswd` 경로를 환경 변수 `HTPASSWD_PATH`에서 읽어오도록 설정. + + +**2. 프론트엔드 구현 (`index.html`)** + +- 단일 파일 SPA로 작성하고 Tailwind CSS를 사용하여 깔끔한 UI 제공. + +- 유저 목록 표시, 추가 폼, 삭제 버튼 구현. + + +**3. 배포 가이드 (`deployment.md`) 생성** + +- `go build`를 이용한 경량 바이너리 빌드 방법 (`-s -w` 옵션 포함). + +- 터미널에서 최초 관리자 계정을 생성하는 명령어 안내. + +- 이 서비스를 Nginx `auth_basic` 뒤에 배치하기 위한 `location` 블록 설정 예시. (8000번 포트 기준) + + +**주의**: 모든 코드와 문서에서 특정 개인의 이름이나 개인정보를 절대 포함하지 말고 `Admin` 또는 `User`와 같은 공용 용어만 사용해줘. + +``` + +이걸 aider에게 먹이고 (add) +```bash +──────────────────────────────────────────────────────────────────────────────── +> /add "doc/vault-keeper 상세 설계도.txt" "doc/지시서.txt" + +Added doc\vault-keeper 상세 설계도.txt to the chat +Added doc\지시서.txt to the chat +──────────────────────────────────────────────────────────────────────────────── +``` + +진행해보라고 했다. +```bash +doc\vault-keeper 상세 설계도.txt doc\지시서.txt +> 내가 추가한 상세 설계도와 지시서를 바탕으로 어플리케이션을 만들어봐 +``` + +과연.. 결과는? +어.. 뭔가 만들어지긴 했다.. + + + + + + + +아래는 콘솔에 찍힌 내용 전체 + + +요청하신 내용에 따라 애플리케이션을 만들겠습니다. main.go, index.html, deployment.md 파일을 새로 생성합니다. + +다음은 필요한 SEARCH/REPLACE 블록입니다: + + +main.go +<<<<<<< SEARCH +======= +package main + +import ( + "bufio" + "encoding/json" + "fmt" + "log" + "net/http" + "os" + "os/exec" + "regexp" + "strings" + "sync" +) + +// User는 .htpasswd 파일의 사용자 정보를 나타냅니다. +type User struct { + Username string `json:"username"` +} + +// AddUserRequest는 새 사용자 추가 요청에 사용됩니다. +type AddUserRequest struct { + Username string `json:"username"` + Password string `json:"password"` +} + +var ( + htpasswdPath string + htpasswdMutex sync.Mutex // htpasswd 명령 실행 시 동시성 문제를 방지하기 위한 뮤텍스 + usernameRegex *regexp.Regexp // 사용자 이름 유효성 검사를 위한 정규식 +) + +func init() { + // HTPASSWD_PATH 환경 변수 설정 + htpasswdPath = os.Getenv("HTPASSWD_PATH") + if htpasswdPath == "" { + log.Fatal("환경 변수 HTPASSWD_PATH가 설정되지 않았습니다.") + } + + // 사용자 이름 유효성 검사 정규식 초기화: 영문, 숫자, 하이픈, 언더스코어만 허용 + usernameRegex = regexp.MustCompile("^[a-zA-Z0-9_-]+$") +} + +func main() { + mux := http.NewServeMux() + + // 정적 파일(index.html) 제공 + mux.HandleFunc("/", serveFrontend) + + // API 엔드포인트 + mux.HandleFunc("/api/users", handleUsers) + mux.HandleFunc("/api/users/", handleDeleteUser) // DELETE 요청 처리 + + log.Println("VaultKeeper 서버가 8000 포트에서 시작됩니다.") + log.Printf("HTPASSWD_PATH: %s\n", htpasswdPath) + log.Fatal(http.ListenAndServe(":8000", mux)) +} + +// serveFrontend는 index.html 파일을 제공합니다. +func serveFrontend(w http.ResponseWriter, r *http.Request) { + if r.URL.Path == "/" || r.URL.Path == "/index.html" { + http.ServeFile(w, r, "index.html") + return + } + http.NotFound(w, r) +} + +// handleUsers는 GET /api/users 및 POST /api/users 요청을 처리합니다. +func handleUsers(w http.ResponseWriter, r *http.Request) { + switch r.Method { + case http.MethodGet: + getUsers(w, r) + case http.MethodPost: + addUser(w, r) + default: + http.Error(w, "허용되지 않는 메소드입니다.", http.StatusMethodNotAllowed) + } +} + +// getUsers는 .htpasswd 파일에서 사용자 목록을 읽어 JSON으로 반환합니다. +func getUsers(w http.ResponseWriter, r *http.Request) { + htpasswdMutex.Lock() + defer htpasswdMutex.Unlock() + + file, err := os.Open(htpasswdPath) + if os.IsNotExist(err) { + // 파일이 없으면 빈 목록 반환 (처음 생성 시) + json.NewEncoder(w).Encode([]User{}) + return + } + if err != nil { + log.Printf("Error opening .htpasswd file: %v", err) + http.Error(w, "사용자 파일을 읽을 수 없습니다.", http.StatusInternalServerError) + return + } + defer file.Close() + + var users []User + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := scanner.Text() + if len(line) > 0 && !strings.HasPrefix(line, "#") { // 주석 및 빈 줄 무시 + parts := strings.SplitN(line, ":", 2) + if len(parts) > 0 { + users = append(users, User{Username: parts[0]}) + } + } + } + + if err := scanner.Err(); err != nil { + log.Printf("Error scanning .htpasswd file: %v", err) + http.Error(w, "사용자 파일을 스캔할 수 없습니다.", http.StatusInternalServerError) + return + } + + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(users) +} + +// addUser는 새 사용자를 .htpasswd 파일에 추가합니다. +func addUser(w http.ResponseWriter, r *http.Request) { + var req AddUserRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + http.Error(w, "유효하지 않은 요청 본문입니다.", http.StatusBadRequest) + return + } + + // 사용자 이름 유효성 검사 + if !usernameRegex.MatchString(req.Username) { + http.Error(w, "사용자 이름은 영문, 숫자, 하이픈, 언더스코어만 포함할 수 있습니다.", http.StatusBadRequest) + return + } + if req.Username == "" || req.Password == "" { + http.Error(w, "사용자 이름과 비밀번호는 필수입니다.", http.StatusBadRequest) + return + } + + htpasswdMutex.Lock() + defer htpasswdMutex.Unlock() + + // htpasswd -b + // 파일이 없으면 -c 옵션이 필요하지만, 첫 생성은 터미널에서 하도록 가이드하므로 여기서는 -b만 사용. + // -b는 파일이 없으면 생성하고, 있으면 추가/수정합니다. + cmd := exec.Command("htpasswd", "-b", htpasswdPath, req.Username, req.Password) + output, err := cmd.CombinedOutput() + if err != nil { + log.Printf("Error executing htpasswd -b: %v, Output: %s", err, output) + http.Error(w, fmt.Sprintf("사용자 추가 실패: %s", strings.TrimSpace(string(output))), http.StatusInternalServerError) + return + } + + w.WriteHeader(http.StatusCreated) + json.NewEncoder(w).Encode(map[string]string{"message": "사용자가 성공적으로 추가되었습니다."}) +} + +// handleDeleteUser는 DELETE /api/users/{username} 요청을 처리합니다. +func handleDeleteUser(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodDelete { + http.Error(w, "허용되지 않는 메소드입니다.", http.StatusMethodNotAllowed) + return + } + + username := strings.TrimPrefix(r.URL.Path, "/api/users/") + if username == "" { + http.Error(w, "사용자 이름을 지정해야 합니다.", http.StatusBadRequest) + return + } + + // 사용자 이름 유효성 검사 (삭제도 동일하게 적용) + if !usernameRegex.MatchString(username) { + http.Error(w, "유효하지 않은 사용자 이름 형식입니다.", http.StatusBadRequest) + return + } + + htpasswdMutex.Lock() + defer htpasswdMutex.Unlock() + + // htpasswd -D + cmd := exec.Command("htpasswd", "-D", htpasswdPath, username) + output, err := cmd.CombinedOutput() + if err != nil { + // htpasswd -D는 사용자가 존재하지 않을 경우에도 에러를 반환합니다. + // 그러나 사용자 삭제 요청 자체는 성공했다고 간주할 수 있습니다 (해당 사용자가 없는 상태이므로). + // 실제 htpasswd의 에러 메시지를 확인하여 사용자 부재인지 다른 에러인지 구분할 수 있으나, + // 간단하게 사용자 부재 메시지가 아니라면 서버 에러로 처리합니다. + if strings.Contains(strings.ToLower(string(output)), "not found") { + http.Error(w, fmt.Sprintf("사용자 '%s'를 찾을 수 없습니다.", username), http.StatusNotFound) + return + } + log.Printf("Error executing htpasswd -D: %v, Output: %s", err, output) + http.Error(w, fmt.Sprintf("사용자 삭제 실패: %s", strings.TrimSpace(string(output))), http.StatusInternalServerError) + return + } + + json.NewEncoder(w).Encode(map[string]string{"message": fmt.Sprintf("사용자 '%s'가 성공적으로 삭제되었습니다.", username)}) +} +>>>>>>> REPLACE + + + +index.html +<<<<<<< SEARCH +======= + + + + + + VaultKeeper - Nginx .htpasswd 관리 + + + + +
+
+

VaultKeeper

+

Nginx .htpasswd 파일 관리

+ + +
+

새 사용자 추가

+
+
+ + +
+
+ + +
+ +
+
+
+ + +
+

현재 사용자 목록

+
+
    + +
+ +
+
+
+
+
+ + + + +>>>>>>> REPLACE + + + +deployment.md +<<<<<<< SEARCH +======= +# VaultKeeper 배포 가이드 + +이 문서는 VaultKeeper 애플리케이션의 빌드, 초기 설정 및 Nginx 연동 방법을 안내합니다. + +## 1. 백엔드 빌드 + +Go 바이너리를 가볍게 빌드하려면 다음 명령어를 사용합니다. 이 명령어는 디버그 정보를 제거하고 심볼 테이블을 생략하여 최종 바이너리 +크기를 줄입니다. + +```bash +go build -o vaultkeeper -ldflags "-s -w" main.go + + +빌드가 완료되면 현재 디렉토리에 vaultkeeper 실행 파일이 생성됩니다. + + +2. .htpasswd 파일 경로 설정 + +VaultKeeper는 .htpasswd 파일의 경로를 환경 변수 HTPASSWD_PATH를 통해 설정합니다. 애플리케이션을 실행하기 전에 이 환경 변수를 설정해야 +합니다. + +예시: + + +export HTPASSWD_PATH="/etc/nginx/.htpasswd" + + +또는 + + +export HTPASSWD_PATH="/usr/local/etc/htpasswd" + + +주의: 지정된 경로에 Nginx가 실제로 사용하는 .htpasswd 파일이 있어야 합니다. 쓰기 권한도 필요합니다. + + +3. 최초 관리자 계정 생성 (터미널) + +VaultKeeper는 자체 로그인 로직을 포함하지 않으며, Nginx auth_basic 모듈에 인증을 위임합니다. 웹 UI에 접근하려면 Nginx를 통해 인증할 수 +있는 계정이 필요합니다. 최초 관리자 계정은 VaultKeeper가 실행되기 전에 터미널에서 htpasswd 명령어를 사용하여 생성해야 합니다. + +.htpasswd 파일이 아직 없는 경우: + + +htpasswd -c /etc/nginx/.htpasswd adminuser + + +adminuser를 원하는 관리자 사용자 이름으로 바꾸세요. 이 명령어는 /etc/nginx/.htpasswd 파일을 생성하고 adminuser를 추가합니다. + +.htpasswd 파일이 이미 있는 경우 (새 사용자를 추가하거나 기존 사용자의 비밀번호를 변경): + + +htpasswd /etc/nginx/.htpasswd anotheruser + + +-c 옵션을 사용하면 기존 파일이 덮어쓰여지므로 절대 이미 존재하는 파일에 -c 옵션을 다시 사용하지 마세요. + + +4. VaultKeeper 실행 + +환경 변수 설정 및 .htpasswd 파일 준비가 완료되면, 빌드된 VaultKeeper 바이너리를 실행합니다. + + +./vaultkeeper + + +기본적으로 VaultKeeper는 8000번 포트에서 수신 대기합니다. + + +5. Nginx 설정 예시 + +Nginx의 auth_basic 모듈 뒤에서 VaultKeeper를 실행하여 접근을 제한할 수 있습니다. 다음은 Nginx 설정 파일 (/etc/nginx/nginx.conf 또는 +conf.d 내부 파일)에 추가할 수 있는 location 블록 예시입니다. + +이 설정은 /vaultkeeper/ 경로로 들어오는 요청을 VaultKeeper 백엔드(8000번 포트)로 프록시하고, auth_basic을 통해 .htpasswd 파일로 인증을 +요구합니다. + + +server { + listen 80; + server_name your_domain.com; # 도메인 또는 IP 주소로 변경 + + location /vaultkeeper/ { + auth_basic "Restricted Access"; + auth_basic_user_file /etc/nginx/.htpasswd; # .htpasswd 파일 경로를 정확히 지정 + + proxy_pass http://127.0.0.1:8000/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_redirect off; + } + + # 다른 Nginx 설정... +} + + +Nginx 설정을 변경한 후에는 반드시 Nginx를 재로드하거나 재시작하여 변경사항을 적용해야 합니다. + + +sudo nginx -t # 설정 파일 유효성 검사 +sudo systemctl reload nginx # Nginx 재로드 + + +이제 http://your_domain.com/vaultkeeper/ (또는 http://your_server_ip/vaultkeeper/)로 접근하여 VaultKeeper 웹 UI를 사용할 수 있습니다. +접근 시 Nginx가 사용자 이름과 비밀번호를 요청할 것입니다. + +▌ ▌ ▌ ▌ ▌ ▌ ▌ REPLACE + + + +새로 생성된 파일을 확인하고 싶으시다면, 다음 명령어를 실행하여 바이너리를 빌드하고 서버를 시작할 수 있습니다: + +```bash +go build -o vaultkeeper -ldflags "-s -w" main.go +export HTPASSWD_PATH="/tmp/.htpasswd" # 테스트용 임시 경로, 실제 경로로 변경 필요 +htpasswd -c /tmp/.htpasswd adminuser # 최초 관리자 계정 생성 +./vaultkeeper + + +index.html을 브라우저에서 열거나, Nginx를 설정한 후 http://localhost:8000 (또는 Nginx 프록시 설정에 따른 URL)으로 접속하여 프론트엔드를 +확인할 수 있습니다. + + +Tokens: 3.3k sent, 5.0k received. Cost: $0.01 message, $0.01 session. + +main.go +Create new file? (Y)es/(N)o [Yes]: y + +index.html +Create new file? (Y)es/(N)o [Yes]: y + +deployment.md +Create new file? (Y)es/(N)o [Yes]: y +Applied edit to main.go +Applied edit to index.html +Applied edit to deployment.md +Commit bd414ad feat: 새로운 htpasswd 관리 애플리케이션 VaultKeeper 구현 + +go build -o vaultkeeper -ldflags "-s -w" main.go +export HTPASSWD_PATH="/tmp/.htpasswd" # 테스트용 임시 경로, 실제 경로로 변경 필요 +htpasswd -c /tmp/.htpasswd adminuser # 최초 관리자 계정 생성 +./vaultkeeper +Run shell commands? (Y)es/(N)o/(D)on't ask again [Yes]: y + +Running go build -o vaultkeeper -ldflags "-s -w" main.go + +Running export HTPASSWD_PATH="/tmp/.htpasswd" # 테스트용 임시 경로, 실제 경로로 변경 필요 +'export'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α׷�, �Ǵ� +��ġ ������ �ƴմϴ�. + +Running htpasswd -c /tmp/.htpasswd adminuser # 최초 관리자 계정 생성 +'htpasswd'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α׷�, �Ǵ� +��ġ ������ �ƴմϴ�. + +Running ./vaultkeeper +'.'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α׷�, �Ǵ� +��ġ ������ �ƴմϴ�. +Add command output to the chat? (Y)es/(N)o/(D)on't ask again [Yes]: y +Added 11 lines of output to the chat. +You can use /undo to undo and discard each aider commit. +─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +deployment.md doc\vault-keeper 상세 설계도.txt doc\지시서.txt index.html main.go +> /ls + + +Files in chat: + + deployment.md + index.html + main.go +─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +deployment.md doc\vault-keeper 상세 설계도.txt doc\지시서.txt index.html main.go +> diff --git a/content/02.Volume/AI/Aider 프로젝트 생성.md b/content/02.Volume/AI/Aider 프로젝트 생성.md new file mode 100644 index 0000000..f903ad3 --- /dev/null +++ b/content/02.Volume/AI/Aider 프로젝트 생성.md @@ -0,0 +1,69 @@ +--- +id: "Aider 프로젝트 생성 20260413" +created: "2026-04-13 13:31" +tags: +--- +새로운 프로젝트를 만든다고 가정 + +만들고싶은 디렉토리에서 + +### 1단계: 프로젝트 폴더 생성 및 이동 + +먼저 프로젝트별로 방을 나눠야 합니다. + +```bash +mkdir my-new-project # 원하는 프로젝트 이름으로 생성 +cd my-new-project +``` + +### 2단계: Git 초기화 (매우 중요) + +에이더는 작업 내용을 자동으로 기록하고 커밋하기 위해 **Git**을 기반으로 움직입니다. 폴더를 만들자마자 가장 먼저 해야 할 일입니다. + +```bash +git init +``` + +- 이 과정을 거쳐야 나중에 에이더가 사고를 쳐도 `git checkout` 등으로 안전하게 코드를 복구할 수 있습니다. + +### 3단계: API 키 및 기본 설정 확인 + +매번 키를 입력하기 귀찮다면, 아까 논의했던 대로 **환경 변수**나 **설정 파일**이 준비되어 있는지 확인합니다. + +- 이미 윈도우 환경 변수에 `GEMINI_API_KEY`를 등록하셨다면 이 단계는 건너뛰셔도 됩니다. + +- 만약 특정 모델을 고정하고 싶다면 이 폴더에 `.aider.conf.yml` 파일을 만드세요. + + +### 4단계: 에이더(Aider) 실행 + +이제 준비가 끝났습니다. 에이더를 깨웁니다. + +```bash +aider +``` + +- 만약 별칭(alias)이나 설정 파일을 만들지 않았다면 직접 모델명을 적어줍니다: `aider --model gemini/gemini-1.5-pro` +- pro는 비싸니까 그냥 flash로 하는게 정신건강과 지갑건강상 좋음 + + +### 5단계: 첫 번째 파일 생성 요청 + +에이더가 실행되면 AI에게 첫 작업을 시켜보세요. + +- 예: `Hello! 파이썬으로 간단한 계산기 로직이 담긴 calculator.py 파일을 만들어줘.` + +### 최종 결과물 구조 + +이렇게 순서대로 진행하면 폴더 안이 아래와 같이 예쁘게 정렬됩니다. + +```cmd +workspaces/ +└── my-new-project/ + ├── .git/ (2단계에서 생성) + ├── .aider.chat.history.md (4단계 실행 후 생성) + ├── .aider.tags.cache.v4/ (4단계 실행 후 생성) + └── calculator.py (5단계에서 생성됨) +``` + +**꿀팁:** 작업을 하다가 마음에 안 들면 에이더 채팅창 안에서 `/undo`를 입력하세요. 그러면 에이더가 방금 한 커밋을 취소하고 코드를 직전 상태로 돌려놓습니다. \ No newline at end of file diff --git a/content/02.Volume/DB/MariaDB vs PostgreSql.md b/content/02.Volume/DB/MariaDB vs PostgreSql.md new file mode 100644 index 0000000..e07f116 --- /dev/null +++ b/content/02.Volume/DB/MariaDB vs PostgreSql.md @@ -0,0 +1,66 @@ +--- +id: "MariaDB vs PostgreSql 20260421" +created: "2026-04-21 16:43" +tags: +--- +이 두 DB는 현재 오픈소스 RDBMS 시장의 양대 산맥입니다. **MariaDB**가 MySQL의 친숙함을 계승하며 실용성에 집중한다면, **PostgreSQL**은 데이터 무결성과 고급 기능을 중시하는 학구적이고 정교한 DB라고 할 수 있습니다. + +## 1. 철학 및 개발 배경 +|**구분**|**MariaDB**|**PostgreSQL**| +|---|---|---| +|**태생**|MySQL에서 분차(Fork)되어 나온 실용주의 DB|학계에서 시작된 객체-관계형(ORDBMS) 표준 지향 DB| +|**슬로건**|"MySQL보다 빠르고 더 많은 기능을 무료로"|"세계에서 가장 진보된 오픈소스 관계형 데이터베이스"| +|**라이선스**|GPL v2 (비즈니스 시 소스 공개 의무 주의)|PostgreSQL 라이선스 (BSD/MIT와 유사, 매우 자유로움)| + +## 2. 기술적 핵심 차이 +### 🚩 SQL 표준 및 복잡한 쿼리 처리 + +- **PostgreSQL:** SQL 표준 준수율이 매우 높습니다. 복잡한 조인(Join), 재귀 쿼리(Recursive CTE), 윈도우 함수 성능이 뛰어나며, 분석용 쿼리 최적화가 강력합니다. (MSSQL과 사용감이 비슷합니다.) + +- **MariaDB:** MySQL의 문법을 따르며, 단순한 CRUD 성능에 최적화되어 있습니다. 최근 버전에서 CTE나 윈도우 함수를 지원하지만, 복잡한 비즈니스 로직 처리에서는 PostgreSQL에 비해 최적화가 덜 정교할 수 있습니다. + + +### 🚩 데이터 타입과 확장성 + +- **PostgreSQL:** 독보적입니다. JSONB(바이너리 JSON) 지원으로 NoSQL처럼 쓸 수 있고, 지리 정보(PostGIS), 전문 검색(Full-text search) 등이 내장되어 있습니다. 사용자 정의 타입도 만들 수 있습니다. + +- **MariaDB:** 동적 컬럼(Dynamic Columns) 기능을 통해 비정형 데이터를 다루지만, PostgreSQL의 JSONB 성능에는 미치지 못합니다. 대신 다양한 스토리지 엔진(InnoDB, Aria, ColumnStore 등)을 용도에 맞게 선택할 수 있는 유연성이 있습니다. + + +### 🚩 동시성 제어 (MVCC) + +- **PostgreSQL:** 데이터 쓰기 중에도 읽기가 차단되지 않는 MVCC(Multi-Version Concurrency Control) 방식이 매우 세련되어 있어, 동시 접속자가 많은 대형 시스템에 유리합니다. + +- **MariaDB:** 스토리지 엔진(주로 InnoDB) 수준에서 MVCC를 지원하며, 읽기 위주의 서비스에서 가볍고 빠르게 동작합니다. + +## 3. 상세 비교 테이블 + +| **항목** | **MariaDB** | **PostgreSQL** | +| ------------------- | ---------------------------- | ------------------------------------------- | +| **주요 용도** | 웹 서비스, CMS(워드프레스 등), 단순 CRUD | 복잡한 데이터 분석, 금융 시스템, GIS 서비스 | +| **성능 특징** | 읽기(Read) 성능이 매우 빠름 | 복잡한 쓰기(Write) 및 대량 데이터 처리에 강함 | +| **복제(Replication)** | 마스터-슬레이브 방식이 매우 쉽고 직관적 | 논리적 복제 등 다양한 방식 지원 (설정은 좀 더 복잡) | +| **저장 프로시저** | 지원 (MySQL 문법) | 강력 지원 (PL/pgSQL, Python, Perl 등 지원) | +| **인덱싱** | 기본 B-Tree 위주 | B-Tree, Hash, GiST, SP-GiST, GIN, BRIN 등 다양 | + +## 4. 어떤 것을 선택해야 할까? +### 🐧 MariaDB를 선택할 때 + +- 기존에 MySQL을 써본 적이 있어 익숙함이 중요할 때. + +- 커뮤니티나 자료가 많은 것을 선호할 때. + +- 단순한 웹 게시판이나 가벼운 데이터 저장용일 때. + +- PHP나 구형 웹 스택과의 호환성이 중요할 때. + + +### 🐘 PostgreSQL을 선택할 때 + +- **MSSQL 2019의 고급 기능을 오픈소스에서도 누리고 싶을 때.** + +- 데이터 정합성이 무엇보다 중요한 금융, 결제, 정산 관련 프로젝트일 때. + +- JSON 데이터를 빈번하게 다루면서 속도도 포기할 수 없을 때. + +- 프로젝트가 커질 것을 대비해 확장성이 뛰어난 DB가 필요할 때. \ No newline at end of file diff --git a/content/02.Volume/DB/RDBMS vs NoSQL.md b/content/02.Volume/DB/RDBMS vs NoSQL.md new file mode 100644 index 0000000..0010a27 --- /dev/null +++ b/content/02.Volume/DB/RDBMS vs NoSQL.md @@ -0,0 +1,64 @@ +--- +id: RDBMS vs NoSQL 20260420 +created: 2026-04-20 08:43 +tags: +--- +DB에는 크게 [[RDBMS]]와 NoSQL 두가지의 범주가 있음. +둘 다 데이터베이스를 구축하기위한 방법론의 개념이고 상호간에 차이점들이 존재한다. + +하지만 데이터베이스라면 당연히 [[데이터 정합성(Data Consistency)]]을 지키는것이 최우선 목표이다. +NoSQL이 [[데이터 정합성(Data Consistency)]]을 지키지 않는 것은 절대 아니다. +[[데이터 정합성(Data Consistency)]]을 지키지 않는 건 데이터베이스로서 가치가 없다. + + +이 둘의 가장 큰 차이점은 데이터의 중복을 어느 정도 허용할 것인가? 라고 생각된다. +![[NoSQL#데이터 중복(Data Redundancy)]] + +## NoSQL이 중복을 허용하는 이유 + +### **JOIN 연산의 배제** + +NoSQL은 수평적 확장을 위해 데이터를 여러 서버에 분산 저장합니다. 이때 여러 서버에 흩어진 데이터를 JOIN 하는 작업은 성능에 막대한 지장을 줍니다. 이를 피하기 위해 필요한 데이터를 한 곳에 모아(중복 저장) 한 번의 쿼리로 읽어오도록 설계합니다. + +### **읽기 성능 극대화** + +사용자가 화면을 볼 때 필요한 모든 정보를 하나의 'Document'나 'Row'에 다 담아두면, 여러 테이블을 뒤질 필요 없이 즉시 응답할 수 있습니다. + + +## 데이터 중복으로 인한 기회비용 + +중복을 허용하면 얻는 것도 있지만, 반드시 대가를 치러야 합니다. + +- **데이터 수정의 복잡성 (Update Anomaly):** 사용자 이름이 바뀌면, 그 이름이 중복 저장된 수천 개의 게시글 데이터를 모두 업데이트해야 합니다. 이때 일부가 누락되면 데이터 정합성이 깨집니다. + +- **저장 공간 증가:** 동일한 데이터가 반복 저장되므로 저장 용량을 더 많이 차지합니다. 하지만 현대의 클라우드 인프라에서는 저장 비용보다 컴퓨팅 성능(속도) 비용이 더 중요하므로 대개 용납됩니다. + +- **결과적 일관성 (Eventual Consistency):** 모든 중복 데이터를 즉시 수정하는 것이 어렵기 때문에, "잠시 동안은 데이터가 다를 수 있지만 결국에는 같아진다"는 원칙을 따르게 됩니다. + + +## RDBMS vs NoSQL: 언제 무엇을 쓸까? + +어느 하나가 절대적으로 우월한 것이 아니라, 서비스의 성격에 맞춰 선택하거나 두 가지를 혼합해서 사용합니다. + +### **RDBMS를 써야 할 때** + +- 데이터 구조가 명확하고 변경될 일이 적을 때 + +- **금융 시스템**처럼 [[데이터 정합성(Data Consistency)]]과 [[트랜잭션(Transaction)|트랜젝션]]([[ACID]])이 매우 중요할 때 + +- 복잡한 쿼리와 JOIN 연산이 자주 필요할 때 + + +### **NoSQL을 써야 할 때** + +- 데이터 구조가 확정되지 않았거나 자주 변경될 때 + +- **빅데이터, 로그 관리, 실시간 메신저**처럼 막대한 양의 데이터를 빠르게 처리해야 할 때 + +- [[데이터 정합성(Data Consistency)]]보다는 서비스의 [[가용성(Availability)]](항상 접속 가능함)이 더 중요할 때 + +[[NoSQL]]은 "데이터가 조금 틀려도 괜찮으니, 절대 죽지 않고 엄청나게 빠른 시스템"을 만들 때 씁니다. 반면 [[RDBMS]]는 "성능이 조금 답답하더라도, 데이터는 단 1원, 1글자도 틀리면 안 되는 시스템"에 씁니다. + +> [!warning] 그렇다고 해서 NoSQL이 데이터정합성이 안맞단건 절대 아님 +> 실시간으로 정합성을 맞춰주느냐? (RDBMS), 순간적으로는 안맞을 수 있지만 결과적으론 정합성이 맞다 (NoSQL) + diff --git a/content/02.Volume/DB/RDBMS사용 시 주의점들.md b/content/02.Volume/DB/RDBMS사용 시 주의점들.md new file mode 100644 index 0000000..a910329 --- /dev/null +++ b/content/02.Volume/DB/RDBMS사용 시 주의점들.md @@ -0,0 +1,20 @@ +--- +id: RDBMS사용 시 주의점들 20260420 +created: 2026-04-20 10:55 +tags: +--- +> [!question] +> Q. 관계형db에서는 테이블간의 관계를 여러테이블을 조인하지 않게끔 적절히 분산시키면서 인덱스를 잘 거는게 엄청 중요하겠네? +> A. 정확하게 짚으셨습니다! 관계형 데이터베이스(RDBMS) 운영의 핵심이자 개발자의 실력이 가장 극명하게 드러나는 지점이 바로 그 **'조인(JOIN) 최소화'와 '인덱스(Index) 전략'**입니다. + +## 조인 최소화: "관계는 유지하되, 데이터는 뭉친다" + +관계형 DB라고 해서 무조건 모든 데이터를 쪼개는 게 정답은 아닙니다. 성능을 위해 의도적으로 정합성을 조금 희생하는 기법들이 필요합니다. +과도하게 데이터를 쪼개놓을 경우 데이터 조인이 많이 발생될 수 밖에 없는데 데이터 조인은 어느정도 느릴 수 밖에 없다. +- [[데이터 조인이 느린 이유]] + +결국 RDBMS 설계의 꽃은 **인덱스를 활용해 '수학적인 탐색 비용'을 얼마나 낮게 유지하느냐**에 달려 있습니다. +하지만 아무리 인덱스를 잘 설정해도 조인해야 할 테이블이 5개, 10개씩 늘어나면 성능은 떨어질 수밖에 없습니다. +- **Nested Loop의 누적:** 조인이 중첩될수록 내부 루프의 횟수가 곱하기로 늘어납니다. + +그래서 적당한 데이터 분산이 중요합니다. \ No newline at end of file diff --git a/content/02.Volume/Linux-Unix/어플리케이션(서비스) 실행 시 계정 구분하는 이유.md b/content/02.Volume/Linux-Unix/어플리케이션(서비스) 실행 시 계정 구분하는 이유.md new file mode 100644 index 0000000..4b2ce47 --- /dev/null +++ b/content/02.Volume/Linux-Unix/어플리케이션(서비스) 실행 시 계정 구분하는 이유.md @@ -0,0 +1,32 @@ +--- +id: 어플리케이션(서비스) 실행 20260413 +created: 2026-04-13 14:57 +tags: +--- +> [!question] +> Q. 리눅스에서 서비스나 어플리케이션 새로 실행할 때 계정을 따로 생성해서 그 계정으로 실행하는 이유가 뭐야? +> A. 리눅스에서 Gitea, Jenkins와 같은 서비스를 전용 계정(Service Account)으로 실행하는 가장 큰 이유는 **보안**과 **시스템 안정성** 때문입니다. 만약 루트(root) 권한으로 서비스를 실행했다가 해당 서비스가 해킹당하면 시스템 전체가 장악될 수 있기 때문이죠. + +### 1. 최소 권한의 원칙 (Principle of Least Privilege) + +가장 핵심적인 개념입니다. 특정 서비스가 작동하는 데 필요한 **최소한의 권한**만 부여하는 것입니다. + +- **격리:** 전용 계정을 만들면 해당 계정은 자신의 홈 디렉터리와 서비스 관련 파일에만 접근할 수 있습니다. + +- **피해 최소화:** 서비스에 취약점이 있어 해커가 침입하더라도, 해커는 해당 계정의 권한만 갖게 됩니다. 시스템 설정 파일을 수정하거나 다른 사용자의 데이터를 훔쳐보는 것이 차단됩니다. + + +### 2. 시스템 자원 및 프로세스 관리 + +전용 계정을 사용하면 관리 효율성이 높아집니다. + +- **자원 제한:** 특정 계정이 사용할 수 있는 CPU, 메모리, 파일 열기 개수 등을 제한(ulimit 등)하여 하나의 서비스가 시스템 전체 자원을 독점하는 것을 방지할 수 있습니다. + +- **로그 및 모니터링:** 어떤 프로세스가 어떤 계정으로 실행 중인지 명확하므로, 로그를 분석하거나 문제를 추적할 때 훨씬 수월합니다. + + +### 3. 보안 사고 발생 시 대응 + +- **계정 차단:** 특정 서비스 계정에서 이상 징후가 발견되면 시스템 전체를 내릴 필요 없이 해당 계정만 잠그거나 권한을 박탈하여 즉각 대응할 수 있습니다. + +- **비로그인 계정:** 보통 서비스용 계정은 `nologin`이나 `false` 쉘을 부여하여, 사람이 직접 SSH 등으로 로그인하는 것을 막아둡니다. 이는 외부 공격자가 해당 계정으로 서버에 직접 접속하는 경로를 원천 차단하는 효과가 있습니다. \ No newline at end of file diff --git a/content/02.Volume/Network/Pc끼리 Lan선으로 Direct 연결.md b/content/02.Volume/Network/Pc끼리 Lan선으로 Direct 연결.md new file mode 100644 index 0000000..d545cad --- /dev/null +++ b/content/02.Volume/Network/Pc끼리 Lan선으로 Direct 연결.md @@ -0,0 +1,21 @@ +--- +id: 라우팅 20260428 +created: 2026-04-28 14:14 +tags: +--- +PC1과 PC2 사이에 랜선으로 직접 연결하여 통신을 하게 할 수 있음. +단, 연결하자마자 곧바로 되는 건 아니고 몇 가지 설정을 해야 함. + +일단 이 랜선이 꽂힌 랜포트에 대해 설정을 해주어야 함. +이 연결에는 [[DHCP(Dynamic Host Configuration Protocol)]]서버가 없기 때문에 자동으로 설정할 수 없음. +[[IP]]주소, [[서브넷 마스크(Subnet Mask)]], 기본[[게이트웨이(Gateway)]]를 설정한다. + +그리고 PC에 더이상의 추가적인 통신연결이 없을경우에는 별도의 설정없이 곧바로 통신이 가능해진다. +"어디로든 나가야 하면 일단 이 랜선으로 나가자"라는 기본 규칙(Default Route)이 아주 단순하게 작동하게됨. + +만약 둘 이상의 통신연결이 있을 경우 [[라우팅 테이블(Routing Table)]]에 등록이 되어있어야 통신이 가능해진다. +[[라우팅 테이블(Routing Table)]]은 통신연결 시도측, 받는측 양측 모두에 상대방이 등록되어있어야 한다. + +> [!info] **자동 생성:** +> 윈도우나 리눅스 같은 운영체제는 랜카드에 IP(`192.168.100.x`)를 설정하는 순간, **"이 대역으로 가는 길은 이 랜카드다"라는 규칙을 라우팅 테이블에 자동으로 추가**합니다. + diff --git a/content/02.Volume/Network/RS-232와 Serial 통신.md b/content/02.Volume/Network/RS-232와 Serial 통신.md new file mode 100644 index 0000000..61b924c --- /dev/null +++ b/content/02.Volume/Network/RS-232와 Serial 통신.md @@ -0,0 +1,9 @@ +--- +id: "RS-232 20260504" +created: "2026-05-04 09:20" +tags: +--- +RS-232는 [[시리얼 통신(Serial Communication)]] 방식을 구현하기 위해 정해진 구체적인 표준임. + +Serial이 교통수단이라면 RS-232는 자동차라고 볼 수 있음. + diff --git a/content/01.Shelf/KUI/Gitea & Quartz 배포 자동화 트러블슈팅.md b/content/02.Volume/Server/KUI/Gitea & Quartz 배포 자동화 트러블슈팅.md similarity index 100% rename from content/01.Shelf/KUI/Gitea & Quartz 배포 자동화 트러블슈팅.md rename to content/02.Volume/Server/KUI/Gitea & Quartz 배포 자동화 트러블슈팅.md diff --git a/content/01.Shelf/KUI/WebHook.md b/content/02.Volume/Server/KUI/WebHook.md similarity index 100% rename from content/01.Shelf/KUI/WebHook.md rename to content/02.Volume/Server/KUI/WebHook.md diff --git a/content/01.Shelf/KUI/gitea, qurtz 설치.md b/content/02.Volume/Server/KUI/gitea, qurtz 설치.md similarity index 100% rename from content/01.Shelf/KUI/gitea, qurtz 설치.md rename to content/02.Volume/Server/KUI/gitea, qurtz 설치.md diff --git a/content/01.Shelf/KUI/kui-vault.md b/content/02.Volume/Server/KUI/kui-vault.md similarity index 100% rename from content/01.Shelf/KUI/kui-vault.md rename to content/02.Volume/Server/KUI/kui-vault.md diff --git a/content/02.Volume/Server/KUI/worker server spec.md b/content/02.Volume/Server/KUI/worker server spec.md new file mode 100644 index 0000000..eca55f8 --- /dev/null +++ b/content/02.Volume/Server/KUI/worker server spec.md @@ -0,0 +1,63 @@ +--- +id: "worker server spec 20260414" +created: "2026-04-14 13:28" +tags: +--- +ubuntu@instance-20260414-0951:~$ **lscpu** +Architecture: aarch64 + CPU op-mode(s): 32-bit, 64-bit + Byte Order: Little Endian +CPU(s): 4 + On-line CPU(s) list: 0-3 +Vendor ID: ARM + Model name: Neoverse-N1 + Model: 1 + Thread(s) per core: 1 + Core(s) per socket: 4 + Socket(s): 1 + Stepping: r3p1 + BogoMIPS: 50.00 + Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics + fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp +NUMA: + NUMA node(s): 1 + NUMA node0 CPU(s): 0-3 +Vulnerabilities: + Gather data sampling: Not affected + Ghostwrite: Not affected + Indirect target selection: Not affected + Itlb multihit: Not affected + L1tf: Not affected + Mds: Not affected + Meltdown: Not affected + Mmio stale data: Not affected + Old microcode: Not affected + Reg file data sampling: Not affected + Retbleed: Not affected + Spec rstack overflow: Not affected + Spec store bypass: Mitigation; Speculative Store Bypass disabled via p + rctl + Spectre v1: Mitigation; __user pointer sanitization + Spectre v2: Mitigation; CSV2, BHB + Srbds: Not affected + Tsa: Not affected + Tsx async abort: Not affected + Vmscape: Not affected + +ubuntu@instance-20260414-0951:~$ **free -h** + total used free shared buff/cache available +Mem: 23Gi 691Mi 21Gi 5.4Mi 1.9Gi 22Gi +Swap: 0B 0B 0B + +ubuntu@instance-20260414-0951:~$ **df -h** +Filesystem Size Used Avail Use% Mounted on +tmpfs 2.4G 1.5M 2.4G 1% /run +efivarfs 256K 14K 243K 6% /sys/firmware/efi/efivars +/dev/sda1 193G 3.1G 190G 2% / +tmpfs 12G 0 12G 0% /dev/shm +tmpfs 5.0M 0 5.0M 0% /run/lock +/dev/sda16 891M 94M 735M 12% /boot +/dev/sda15 98M 6.4M 92M 7% /boot/efi +tmpfs 2.4G 12K 2.4G 1% /run/user/1001 + + diff --git a/content/02.Volume/일상/전표처리.md b/content/02.Volume/일상/전표처리.md new file mode 100644 index 0000000..2e5ffa4 --- /dev/null +++ b/content/02.Volume/일상/전표처리.md @@ -0,0 +1,45 @@ +--- +id: 전표처리 20260413 +created: 2026-04-13 08:42 +tags: +--- +![[전표#📑 개념]] + +회사 법인카드 사용하고나서 [[분개전표]] 처리를 해야한다. ([[전표]]) + +돈을 얼마나 썼는지, 왜 썼는지에 대한 상세사항정리 정도로 생각하면 됨. + + +> [!warning] +**분개전표 입력전에 법인카드사용내역회계전표생성(개인) 부터 먼저해야함.** + +여기에 등록하고 승인나면 그때 자동으로 입력된 전표를 처리해야 함. +![[Pasted image 20260427095731.png]] +위 화면에선 특별히 추가할 거 없이 결재상신 하면 됨 +1. 30만원 이하  PM -> 팀장 -> 사업부장, 합의 문새별 -> 김성민 입니다. (PM이 없는 경우나 PM이 팀장인 경우는 PM 생략) + +결제 상세는 [[법인카드 결제상신 경로]] 참고 + + +> [!note] 부가세 여부 +[[부가세여부]] 참고 + +업무용 택시비, 소모품비, 숙소비는 부가세여부 O +일반차량 유류비, 톨게이트비 부가세여부 X + + +> [!warning] 법인카드사용내역회계전표생성(개인) 부터 먼저 결제하지 않고 진행하면... + +전표 유형이 법인카드사용내역전표(개인) 이 아니고 일반분개전표 로 진행이 되어버림.. +![[Pasted image 20260427133315.png]] + + + +ERP에서 ESS -> 회계 -> 전표입력 으로 가서 전표입력 하면 됨. +![[분개(分介)#예시 이미지]] + +위와같은 형태로 입력한다. + +0002 대변금액은 직접 적는게 아니고 0001 차변금액을 아래로 드래그해서 추가하면 됨. + +여기서 전표를 추가하고 그룹웨어에서 결제 진행하면 됨. diff --git a/content/03.Note/ACID.md b/content/03.Note/ACID.md new file mode 100644 index 0000000..79782d7 --- /dev/null +++ b/content/03.Note/ACID.md @@ -0,0 +1,26 @@ +--- +id: ACID 20260420 +created: 2026-04-20 08:44 +tags: +aliases: +--- + +--- +## 📑 개념 +DB에서 하나의 논리적 작업 단위를 '트랜잭션'이라고 합니다. RDBMS는 이 트랜잭션이 안전하게 처리됨을 보장하기 위해 ACID 특성을 가집니다. +## 📌 상세 +- **Atomicity (원자성):** 전부 성공하거나, 전부 실패하거나. - "All or Nothing" + 트랜잭션 내의 모든 연산은 반드시 한꺼번에 완료되어야 하며, 그렇지 못할 경우 모두 취소되어야 합니다. + **예:** 계좌 이체 시 '내 계좌 출금'은 성공했는데 '상대 계좌 입금'에서 오류가 나면, 내 계좌의 출금 내역도 취소되어야 합니다. + +- **Consistency (일관성):** 완료 후 DB 상태가 규칙을 위반하지 않음. + 트랜잭션 수행 전후의 데이터베이스 상태는 항상 논리적으로 올바른 상태여야 합니다. + **예:** 모든 계좌의 잔액은 0원 이상이어야 한다는 제약 조건이 있다면, 트랜잭션 후 잔액이 마이너스가 되는 결과는 허용되지 않습니다. + +- **Isolation (고립성):** 동시에 실행되는 트랜잭션들이 서로 방해하지 않음. + 동시에 여러 트랜잭션이 실행될 때, 각 트랜잭션은 서로의 작업에 간섭할 수 없습니다. 하나의 트랜잭션이 끝나기 전까지는 다른 트랜잭션에서 그 중간 결과를 볼 수 없습니다. + +- **Durability (지속성):** 성공한 결과는 영구적으로 저장됨. + 성공적으로 완료된 트랜잭션의 결과는 시스템 장애가 발생하더라도 영구적으로 기록되어야 합니다. 로그 파일 등을 통해 복구가 가능한 상태를 말합니다. + +--- diff --git a/content/03.Note/DHCP(Dynamic Host Configuration Protocol).md b/content/03.Note/DHCP(Dynamic Host Configuration Protocol).md new file mode 100644 index 0000000..57e2b42 --- /dev/null +++ b/content/03.Note/DHCP(Dynamic Host Configuration Protocol).md @@ -0,0 +1,49 @@ +--- +id: "DHCP(Dynamic Host Configuration Protocol) 20260428" +created: "2026-04-28 14:21" +tags: +aliases: +--- +## 💡 생각 +이곳에 하나의 생각 또는 아이디어를 작성합니다. + +--- +## 📑 개념 + 네트워크 안에 있는 장치들에게 IP 주소를 자동으로 할당해 주는 통신 규약입니다. + +매번 사람이 직접 장치마다 IP를 입력하는 번거로움을 없애고, IP 충돌 같은 네트워크 사고를 방지하기 위해 사용됩니다. + +## DHCP가 하는 일 + +네트워크에 새로운 기기(노트북, 스마트폰 등)가 연결되면, DHCP 서버는 다음과 같은 정보를 자동으로 제공합니다. + +- **IP 주소:** 기기의 고유 식별 주소 + +- **서브넷 마스크:** 네트워크 범위를 결정하는 값 + +- **기본 게이트웨이:** 외부 인터넷으로 나가는 통로 주소 + +- **DNS 서버 주소:** 도메인 이름을 IP로 변환해 주는 서버 주소 + + +## DHCP 사용의 장점 + +- **관리의 편리함:** 관리자가 일일이 IP를 할당하지 않아도 서버가 알아서 빈 주소를 찾아줍니다. + +- **효율적인 IP 자원 관리:** 사용 중이지 않은 IP는 회수하여 다른 기기에 줄 수 있으므로 한정된 IP 자원을 아낄 수 있습니다. (이를 **임대 시간/Lease Time**이라고 합니다.) + +- **설정 오류 방지:** 오타나 중복된 IP 입력으로 인한 네트워크 연결 오류를 방지할 수 있습니다. + + +## 임대(Lease)와 갱신(Renewal) + +DHCP는 IP를 영구적으로 주는 것이 아니라, 특정 시간 동안 **빌려주는(Lease)** 개념입니다. + +- **임대 시간:** IP를 사용할 수 있는 유효 기간입니다. + +- **갱신:** 보통 임대 시간의 50%가 지나면 클라이언트는 서버에 "이 IP를 계속 써도 될까요?"라고 물어보고 사용 시간을 연장합니다. 만약 기기가 네트워크를 떠나면 임대 시간이 만료된 후 해당 IP는 다시 서버로 회수되어 다른 기기가 쓸 수 있게 됩니다. + +> [!note] 우리가 흔히 쓰는 공유기가 바로 이 DHCP 서버 역할을 수행하여 집 안의 여러 기기에 IP를 나눠주고 있습니다. +> + +--- diff --git a/content/03.Note/NoSQL.md b/content/03.Note/NoSQL.md new file mode 100644 index 0000000..e595098 --- /dev/null +++ b/content/03.Note/NoSQL.md @@ -0,0 +1,45 @@ +--- +id: "NoSQL 20260420" +created: "2026-04-20 10:07" +tags: +aliases: +--- +## 💡 생각 +결국 NoSQL은 빠른속도로 데이터베이스를 구축해서 사용하는 경우에 유용하다. + +--- +## 📑 개념 +'Not Only SQL'의 약자로, 전통적인 [[관계형 데이터베이스(RDBMS)의 한계]]를 극복하기 위해 만들어진 **비관계형 데이터베이스**를 의미합니다. +표(Table) 형태의 엄격한 스키마를 따르지 않고, 데이터의 형태에 따라 유연하게 저장 구조를 선택할 수 있다는 것이 가장 큰 특징입니다. + +## NoSQL의 특징 + +- **유연한 스키마 (Schema-less):** 고정된 테이블 구조가 없습니다. 데이터의 필드를 언제든지 추가하거나 변경할 수 있어, 형태가 일정하지 않은 로그 데이터나 SNS 포스트 등을 저장하기에 유리합니다. + +- **수평적 확장성 (Scalability):** RDBMS가 주로 서버의 사양을 높이는 수직 확장(Scale-up)에 집중한다면, NoSQL은 여러 대의 저렴한 서버를 클러스터로 묶어 데이터를 분산 저장하는 **수평 확장(Scale-out)** 에 최적화되어 있습니다. + +- **고성능:** 단순한 데이터 모델을 사용하여 읽기/쓰기 성능이 매우 빠릅니다. 복잡한 JOIN 연산을 지양하기 때문에 대규모 데이터를 처리할 때 유리합니다. + +--- + +## NoSQL의 4가지 주요 유형 +| **유형** | **특징** | **대표적인 DB** | +| ----------------- | --------------------------- | ---------------------- | +| **Key-Value** | 가장 단순한 형태. 키와 값의 쌍으로 저장 | Redis, Amazon DynamoDB | +| **Document** | JSON이나 XML 같은 문서 형식으로 저장 | **MongoDB**, CouchDB | +| **Column-family** | 행이 아닌 열(Column) 단위로 데이터를 저장 | Cassandra, HBase | +| **Graph** | 데이터 간의 관계를 노드와 간선으로 표현 | Neo4j | +## NoSQL의 트랜잭션 (BASE) + +RDBMS의 [[ACID]]와 대조적으로, NoSQL은 보통 **BASE** 원칙을 따릅니다. + +- **Basically Available (기본적 가용성):** 언제든 접근 가능해야 함. + +- **Soft State (소프트 상태):** 외부의 개입 없어도 정보가 변경될 수 있음 (일시적 불일치 허용). + +- **Eventually Consistent (결과적 일관성):** 일시적으로 정합성이 깨질 수 있지만, 시간이 지나면 결국 모든 노드의 데이터가 일치하게 됨. + +## 데이터 중복(Data Redundancy) +NoSQL에서 **데이터 중복(Data Redundancy)** 은 실수가 아니라 **성능을 위해 의도적으로 선택하는 핵심 전략**입니다. + +RDBMS에서는 데이터 중복을 죄악시하며 정규화(Normalization)를 통해 중복을 제거하지만, NoSQL은 그 반대인 **비정규화(Denormalization)** 를 지향합니다. \ No newline at end of file diff --git a/content/03.Note/RDBMS.md b/content/03.Note/RDBMS.md new file mode 100644 index 0000000..c18172c --- /dev/null +++ b/content/03.Note/RDBMS.md @@ -0,0 +1,50 @@ +--- +id: RDBMS 20260420 +created: 2026-04-20 08:43 +tags: +aliases: +--- +## 💡 생각 +데이터간의 관계를 고민하고 관계를 이용해서 중복된 데이터가 들어가는것을 최소화하는 DB를 일컫는다고 보면 된다. 왜냐하면 데이터 정합성은 사실 RDBMS든 NoSQL이든 무조건 지켜주는게 좋은 부분이니까 이걸 RDBMS와 NoSQL의 차이다 라고 하기에는 좀 과하다고 생각된다. + +--- +## 📑 개념 +관계형 DB의 가장 큰 특징은 데이터를 **Table(표)** 형태로 관리하고, 테이블 간의 **Relation(관계)** 을 정의한다는 점입니다. + +## 📌 상세 +- **스키마(Schema):** 데이터의 구조와 제약 조건을 정의한 설계도입니다. + +- **기본키(PK)와 외래키(FK):** 테이블 간의 연결 고리이자 데이터의 유일성을 보장하는 핵심 장치입니다. + +- **무결성(Integrity):** 데이터가 정확하고 일관되게 유지되도록 하는 규칙들입니다. + + +[[ACID]] [[트랜잭션(Transaction)|트렌젝션]]을 지킴으로 인해 DB에서 가장 중요한 덕목인 [[데이터 정합성(Data Consistency)]] 지키는데 특화됨. +![[ACID#📌 상세]] + +### 성능 최적화: 인덱스와 정규화 + +실무에서 가장 많이 고민하게 되는 부분입니다. + +- **정규화(Normalization):** 데이터 중복을 최소화하고 구조를 체계화하는 과정입니다. (1NF, 2NF, 3NF 등) + +- **인덱스(Index):** 책의 색인처럼 데이터를 빠르게 찾기 위한 구조입니다. B-Tree 구조가 대표적이죠. + +- **실행 계획(Execution Plan):** 작성한 SQL이 내부적으로 어떻게 실행되는지 분석하여 병목을 찾아내는 도구입니다. + +--- + +## 주의 +> [!warning] 하지만 데이터 정합성의 경우 RDBMS의 고유한 특징이라고 하기엔 무리가 있다. + +왜냐하면 DB라면 데이터 정합성을 지켜야하는게 당연하기 때문이다. +( 얼마나 정합성을 강하게 지켜서 성능에서 손해를 보느냐, 약간 덜 엄격하게 지키고 성능에서 이점을 얻느냐가 차라리 더 중요하다. ) + +## RDBMS의 본질 +> [!note] RDBMS의 본질: "구조적 설계를 통한 중복 제어" + +- **정규화(Normalization):** 데이터 간의 관계를 분석해 원자 단위로 쪼개고, 중복을 원천 차단하는 프로세스입니다. + +- **무결성 제약 조건:** DB 엔진 차원에서 외래키(FK), 유니크(Unique) 제약 등을 통해 "중복되거나 잘못된 관계가 맺어지는 것"을 물리적으로 막습니다. + +- **저장 효율성:** 중복을 최소화하기 때문에 저장 공간을 효율적으로 쓰고, 데이터 수정 시 한 곳만 고치면 되는 구조를 만듭니다. \ No newline at end of file diff --git a/content/03.Note/RS-232 vs 이더넷.md b/content/03.Note/RS-232 vs 이더넷.md new file mode 100644 index 0000000..88ec71f --- /dev/null +++ b/content/03.Note/RS-232 vs 이더넷.md @@ -0,0 +1,72 @@ +--- +id: RS-232 vs 이더넷 20260504 +created: 2026-05-04 09:58 +tags: +aliases: +--- +## 💡 생각 +결과적으로 RS-232와 이더넷사이에는 약 8,000배의 속도차이가 발생된다고 한다. +설치비용도 이더넷이 훨씬 더 저렴하다고 한다. + +이래도 RS-232를 쓴다고? +[[RS-232가 이더넷을 따라잡을 수 없는 이유]] + +--- +> [!question] +> Q. 왜 rs-232랑 이더넷은 속도의 차이가 나는거야? 어차피 둘다 똑같이 전기적인 신호의 전달인거 아니야? +> A. 정말 좋은 질문입니다! 본질적으로는 둘 다 구리선 안에서 전압의 변화(전기 신호)를 이용하는 것은 맞지만, 그 전기를 **얼마나 정교하고 빠르게 제어하느냐**에서 결정적인 차이가 발생합니다. + +--- +### 1. 전압의 폭과 물리적 부담 (관성) +전압을 바꾸는 것은 마치 수도꼭지를 틀고 잠그는 것과 비슷합니다. + +- **[[RS-232]]:** 전압의 진폭이 큽니다(보통 -15V에서 +15V 사이). 전압을 이만큼 높였다 낮췄다 하려면 시간이 걸립니다. 즉, 신호를 한 번 바꿀 때마다 물리적인 '관성'이 큽니다. + +- **이더넷:** 아주 낮은 전압(약 1V~2.5V 내외)을 사용합니다. 전압 폭이 작기 때문에 아주 미세하고 빠르게 전압을 튀길 수 있습니다. 덕분에 1초에 훨씬 많은 신호를 보낼 수 있는 것이죠. + +***** 즉, 수도꼭지를 아주 조금만 틀고잠궈도 되는 이더넷이 많이 틀고 많이 잠궈야하는 RS-232보다 물리적인 부담이 훨씬 적다. + +### 2. 노이즈를 처리하는 방식 (차동 신호) +멀리, 그리고 빠르게 신호를 보내려면 주변의 전기적 잡음(노이즈)을 이겨내야 합니다. + +- **[[RS-232]] (싱글 엔디드):** 선 하나에 전기를 흘리고 그 전압 값만 측정합니다. 주변에서 노이즈가 끼어들면 신호가 쉽게 변조됩니다. 그래서 속도를 높이면 에러가 너무 많이 납니다. + +- **이더넷 ([[차동 신호(Differential Signaling)]]):** 선 두 개를 꼬아서 사용합니다. 한쪽 선에 `+`를 보내면 다른 쪽엔 `-`를 보냅니다. 노이즈가 발생해도 두 선에 동시에 영향을 주므로, 두 신호의 '차이'를 계산하면 노이즈만 쏙 제거됩니다. 이 기술 덕분에 노이즈 걱정 없이 엄청난 속도로 신호를 쏠 수 있습니다. + +***** 노이즈 발생 걱정 없이 데이터를 송,수신 할 수 있다. + +### 3. 신호를 만드는 '언어'의 정교함 + +전압을 단순히 `높다(1)`, `낮다(0)`로만 구분하는지, 아니면 더 복잡하게 약속하는지의 차이입니다. + +- **RS-232:** 단순합니다. 전압이 높으면 0, 낮으면 1(혹은 그 반대) 식으로 아주 기초적인 규칙만 씁니다. + +- **이더넷:** 전압의 변화뿐만 아니라 위상(Phase) 등을 조합한 고도의 인코딩 방식을 씁니다. 한 번의 전기 신호 변화에 여러 비트의 데이터를 담는 '압축 기술'이 들어가 있어 같은 전기 신호라도 실어나르는 데이터 양이 훨씬 많습니다. + +> [!question] +> Q. 신호를 만드는 '언어'의 정교함 이거는 만약에 rs-232도 고도로 발달한 인코딩 방식을 개발해서 사용했다면 어느정도는 따라갈 수 있는 부분이었을까? +> A. 매우 날카로운 질문입니다! 결론부터 말씀드리면, **인코딩 기술을 도입하면 RS-232도 지금보다는 훨씬 빨라질 수 있습니다.** 하지만 근본적으로 이더넷을 **'완벽히'** 따라잡기는 어렵습니다. + + +> [!note] +결국 **똑같은 전기**를 쓰더라도, 더 적은 힘으로(저전압), 더 영리하게 노이즈를 방어하면서(차동 신호), 더 정교한 규칙(인코딩)으로 소통하기 때문에 이더넷이 압도적으로 빠른 것입니다. +> + +### 왜 RS-232는 차동 신호가 안 될까요? + +RS-232는 선 하나($A$)와 접지(Ground, $0V$)를 비교합니다. + +- **보낼 때:** $A$선에 $10V$를 보냅니다. (기준은 $0V$니까 차이는 $10V$) + +- **노이즈 발생:** $A$선에만 $+5V$ 노이즈가 낍니다. ($15V$가 됨) + +- **받을 때:** 받는 쪽은 여전히 $0V$를 기준으로 측정하므로, 데이터가 $15V$로 변질된 채 들어옵니다. 노이즈를 걸러낼 방법이 없습니다. + + + + + + + + + diff --git a/content/03.Note/RS-232.md b/content/03.Note/RS-232.md new file mode 100644 index 0000000..42f2ae3 --- /dev/null +++ b/content/03.Note/RS-232.md @@ -0,0 +1,57 @@ +--- +id: "RS-232 20260504" +created: "2026-05-04 09:37" +tags: +aliases: +--- +## 💡 생각 +SECS 통신에서 사용하는 그것을 말함. +아직도 RS-232를 쓰는곳이 종종 있음. + +--- +## 📑 개념 +컴퓨터와 주변 장치(모뎀, 마우스, 산업용 장비 등) 간에 데이터를 주고받기 위해 만들어진 **직렬(Serial) 통신 표준**입니다. 1960년대에 처음 등장했음에도 불구하고, 신뢰성이 높고 구조가 간단하여 오늘날까지도 산업 현장에서 널리 사용되고 있습니다. + +--- +## 📌 주요 특징 +- **직렬 통신:** 데이터를 한 번에 1비트씩 순차적으로 전송합니다. 병렬 통신에 비해 배선이 단순하다는 장점이 있습니다. + +- **전압 기반 신호:** 논리 상태를 전압의 차이로 구분합니다. + + - **논리 0 (Space):** $+3\text{V} \sim +15\text{V}$ + + - **논리 1 (Mark):** $-3\text{V} \sim -15\text{V}$ (휴지 상태) + +- **전송 거리:** 표준상으로는 약 15m(50피트) 정도까지 권장되지만, 통신 속도를 낮추면 더 먼 거리도 가능합니다. + +- **커넥터 형태:** 과거에는 25핀(DB-25)이 쓰였으나, 현재는 9핀(DE-9 또는 DB-9) 형태가 가장 흔합니다. + +## 통신 방식 (프레임 구조) + +RS-232는 **비동기식(Asynchronous)** 통신을 주로 사용합니다. 즉, 송신측과 수신측이 공통된 클록(Clock)을 공유하지 않고, 약속된 속도(Baud Rate)에 맞춰 데이터를 해석합니다. +(Baud Rate: 송신자와 수신자가 미리 **초당 몇 비트를 보낼지** 약속한 것) + +1. **Start Bit:** 통신의 시작을 알리는 1비트 (Low 전압). + +2. **Data Bits:** 실제 데이터 (보통 7~8비트). + +3. **Parity Bit:** 오류 검출을 위한 옵션 비트. + +4. **Stop Bit:** 통신의 종료를 알리는 비트 (1~2비트, High 전압). + + +RS-232는 보통 **전이중(Full-Duplex)** 방식입니다. 즉, 보내는 선(TX)과 받는 선(RX)이 분리되어 있습니다. + +- 상대방이 데이터를 다 보낼 때까지 기다렸다가 내가 보내는 방식(Half-Duplex)도 가능하지만, + +- 하드웨어적으로 선이 따로 있기 때문에 **상대방이 데이터를 보내는 중에도 내가 보낼 데이터가 있다면 동시에 Start Bit를 던지고 데이터를 보낼 수 있습니다.** + + +## 요약 +- **Start Bit:** 수신기의 타이머를 가동시키는 스위치. + +- **데이터 읽기:** 약속된 보레이트의 '절반' 지점마다 전압을 체크해서 0인지 1인지 결정. + +- **Stop Bit:** 다음 데이터의 Start Bit를 제대로 인식할 수 있도록 선로를 대기 상태(High)로 복귀시키는 최소한의 여유 시간. + +![[Pasted image 20260504100456.png]] \ No newline at end of file diff --git a/content/03.Note/RS-232가 이더넷을 따라잡을 수 없는 이유.md b/content/03.Note/RS-232가 이더넷을 따라잡을 수 없는 이유.md new file mode 100644 index 0000000..80410bd --- /dev/null +++ b/content/03.Note/RS-232가 이더넷을 따라잡을 수 없는 이유.md @@ -0,0 +1,49 @@ +--- +id: "RS-232가 이더넷을 따라잡을 수 없는 이유 20260504" +created: "2026-05-04 10:16" +tags: +aliases: +--- +## 💡 생각 +가성비를 위해 고안된 RS-232에 이더넷에서 사용하는 고도의 인코딩기술 등을 적용하려면 RS-232의 가장 큰 장점이었던 가성비가 사라지게 된다. +기술적으로도 싱글 엔디드(선 하나로 측정)방식에서 어떻게 할 수 없는 노이즈 현상이 RS-232의 고도화에 가장 큰 걸림돌이기도 하다. + +--- + +### 1. 인코딩으로 얻을 수 있는 이득 (언어의 효율성) + +RS-232도 현대적인 인코딩(예: QAM 등)을 사용한다면, 한 번의 전기 변화에 1비트가 아니라 4비트, 8비트를 담을 수 있습니다. 실제로 과거 전화선을 쓰던 **다이얼업 모뎀**이 이런 방식으로 속도를 높여왔습니다. + +- 하지만 인코딩을 고도화할수록 **신호가 아주 미세한 차이**를 구분해야 합니다. + +- 예를 들어, 전압을 0V/5V 두 개로 나누던 걸 0.1V 단위로 쪼개서 50개의 신호를 만든다고 가정해 보세요. + + +### 2. 발목을 잡는 '물리적 노이즈' (도로의 상태) + +여기서 앞서 공부한 **노이즈** 문제가 다시 등장합니다. + +- 고도의 인코딩은 '미세한 전압 차이'를 읽어내는 기술입니다. + +- 그런데 RS-232는 노이즈에 취약한 **싱글 엔디드(선 하나로 측정)** 방식이죠. + +- 주변에서 노이즈가 조금만 튀어도 0.1V 단위로 쪼개놓은 정교한 신호들이 순식간에 뭉개져 버립니다. + + +즉, **아무리 고급 언어(인코딩)를 개발해도, 전달 매체(전선)가 너무 시끄러우면(노이즈) 상대방이 알아들을 수가 없는 것**입니다. + +### 3. '차동 신호'라는 인프라의 차이 + +이더넷이 고도의 인코딩을 마음껏 쓸 수 있는 이유는 [[차동 신호(Differential Signaling)]] 덕분에 바닥에 깔린 노이즈를 싹 제거하여 **깨끗한 도화지** 상태를 만들었기 때문입니다. + +- **이더넷:** 도화지가 깨끗하니 아주 얇은 펜으로 정밀하게 글씨(인코딩)를 써도 잘 읽힙니다. + +- **[[RS-232]]:** 도화지에 이미 연필 자국(노이즈)이 가득해서, 굵은 매직으로 크게 써야만 겨우 읽을 수 있는 상태입니다. + +### 4. 하드웨어 설계의 단순성 (경제성) + +RS-232는 애초에 "싸고 단순하게 만들자"가 목적이었습니다. + +- 복잡한 인코딩을 처리하려면 CPU나 전용 칩셋이 신호를 실시간으로 계산해서 복원해야 합니다. + +- RS-232 장치에 그런 비싼 칩을 넣을 바에는, 차라리 그 돈으로 **이더넷 칩**을 하나 다는 게 훨씬 싸고 빠릅니다. 이미 이더넷은 대량 생산으로 가격이 매우 낮아졌으니까요. \ No newline at end of file diff --git a/content/03.Note/게이트웨이(Gateway).md b/content/03.Note/게이트웨이(Gateway).md new file mode 100644 index 0000000..6364fa6 --- /dev/null +++ b/content/03.Note/게이트웨이(Gateway).md @@ -0,0 +1,58 @@ +--- +id: 게이트웨이(Gateway) 20260428 +created: 2026-04-28 14:25 +tags: + - network +aliases: +--- +## 💡 생각 +서로 다른 네트워크간의 통신은 무조건 게이트웨이를 통해 진행된다. +내부를 먼저 확인하고 내부에 그 ip에 해당되는 녀석이 없으면 게이트웨이를 통해 외부로 나아간다. +이 때 가장 먼저 확인하는게 [[라우팅 테이블(Routing Table)]]이다. + +--- +## 📑 개념 +서로 다른 네트워크를 연결해 주는 '출입구' 역할을 하는 장치나 소프트웨어를 말합니다. +컴퓨터 네트워크는 서로 다른 통신 프로토콜(규약)을 사용하거나 구조가 다른 경우가 많은데, 게이트웨이는 이들 사이에서 데이터를 주고받을 수 있도록 **통역사** 역할을 수행합니다. + +## ## 1. 게이트웨이의 핵심 역할 + +네트워크의 경계에 위치하여 다음과 같은 기능을 수행합니다. + +- **프로토콜 변환:** 서로 다른 방식의 네트워크가 소통할 수 있도록 신호를 변환합니다. + +- **데이터 전달:** 내부 네트워크에서 외부(인터넷)로 나가는 모든 데이터는 반드시 게이트웨이를 통과해야 합니다. + +- **보안:** 외부로부터 들어오는 허가되지 않은 접속을 차단하는 벽의 역할을 하기도 합니다. + + +--- + +## 2. 실생활 예시: 아파트 현관문 + +게이트웨이를 가장 쉽게 이해하는 방법은 **아파트의 현관문**에 비유하는 것입니다. + +- **내부 네트워크:** 우리 집 안 (가족끼리 자유롭게 대화하고 이동 가능) + +- **외부 네트워크:** 집 밖 (복도, 엘리베이터, 거리) + +- **게이트웨이:** 현관문 (집 밖으로 나가거나 외부인이 들어올 때 반드시 거쳐야 하는 유일한 통로) + + +컴퓨터가 인터넷상의 웹사이트에 접속하려고 할 때, 먼저 자신의 네트워크 안에 해당 주소가 있는지 확인합니다. 없다면 일단 기본 게이트웨이(Default Gateway)로 데이터를 보낸 뒤 외부 세계로 나가게 됩니다. + + +## 3. 기본 게이트웨이 (Default Gateway) + +우리가 사용하는 PC나 스마트폰 설정에서 흔히 볼 수 있는 용어입니다. + +- 보통 가정에서는 유무선 공유기(루터)의 IP 주소가 기본 게이트웨이 주소가 됩니다. + +- 내부망에서 해결할 수 없는 목적지(예: 구글, 네이버 등)로 가는 데이터는 무조건 이 기본 게이트웨이 주소로 전달됩니다. + +보통 0.0.0.0에 위치하며 보통은 [[라우터(Router)]]를 가리킨다. +앞서봤듯 통신연결 시도가 발생되면 가장먼저 내부의 같은 네트워크망에 그 ip주소에 해당되는 요소가 있는지 확인하고 없으면 라우팅 테이블을 확인해본다. 거기도 없을 경우 기본 게이트웨이로 가게 되는데 보통 기본 게이트웨이는 라우터로 설정되어 있다. + +[[라우터(Router)]]를 통해 연결시도 한 ip로 접근이 되는지 확인해보고 최대한 통신 연결을 시도해보다가 성공,실패하게 된다. + +--- diff --git a/content/03.Note/관계형 데이터베이스(RDBMS)의 한계.md b/content/03.Note/관계형 데이터베이스(RDBMS)의 한계.md new file mode 100644 index 0000000..b811a69 --- /dev/null +++ b/content/03.Note/관계형 데이터베이스(RDBMS)의 한계.md @@ -0,0 +1,42 @@ +--- +id: 관계형 데이터베이스(RDBMS)의 한계 20260420 +created: 2026-04-20 10:08 +tags: +aliases: +--- +## 💡 생각 +서버의 수평적확장이 어려움 + 관계가 복잡해지면 조인연산이 느려질 수 있음 + +--- +## 1. 유연하지 못한 스키마 (Rigid Schema) + +RDBMS는 데이터를 저장하기 전에 미리 테이블 구조(Schema)를 정의해야 합니다. + +- **변경의 어려움:** 서비스 운영 중에 데이터 구조를 변경하려면 `ALTER TABLE`과 같은 작업을 수행해야 하는데, 데이터 양이 많을 경우 시스템 부하가 크고 서비스 중단이 발생할 수 있습니다. + +- **비정형 데이터 처리:** SNS 포스트, 로그 파일, 이미지 메타데이터 등 구조가 일정하지 않은 데이터를 담기에는 부적합합니다. + + +## 2. 수평적 확장(Scaling-out)의 어려움 + +RDBMS는 기본적으로 단일 서버의 성능을 높이는 **수직적 확장(Scale-up)** 에 최적화되어 있습니다. + +- **분산 저정의 복잡성:** 여러 대의 서버에 데이터를 나누어 저장(Sharding)할 수 있지만, 이 경우 데이터 간의 일관성을 유지하고 조인(Join) 연산을 수행하는 것이 매우 까다로워집니다. + +- **비용 문제:** 고성능의 단일 서버를 구축하는 비용은 서버를 여러 대 늘리는 비용보다 기하급수적으로 비싸집니다. + + +## 3. 복잡한 관계와 조인(Join) 성능 저하 + +데이터 간의 관계가 복잡해질수록 여러 테이블을 연결하는 **조인 연산**이 많아집니다. + +- **성능 병목:** 수백만 건 이상의 데이터가 포함된 테이블들을 빈번하게 조인하면 쿼리 실행 속도가 급격히 느려집니다. + +- **객체-관계 불일치 (Impedance Mismatch):** 객체지향 프로그래밍 언어의 구조와 RDBMS의 테이블 구조가 서로 달라, 이를 변환하는 과정(ORM 등)에서 복잡성이 증가하고 성능 손실이 발생합니다. + + +## 4. 대용량 데이터 처리 속도 + +초당 수만 건 이상의 쓰기 작업이 발생하는 실시간 서비스나 테라바이트(TB) 단위의 데이터를 분석하는 환경에서는 RDBMS의 ACID 트랜잭션 보장 기능이 오히려 독이 될 수 있습니다. + +- **잠금(Locking) 현상:** 데이터의 일관성을 위해 특정 행이나 테이블을 잠그는 과정에서 대기 시간이 발생하여 전체적인 처리량이 떨어집니다. \ No newline at end of file diff --git a/content/03.Note/데이터 정합성(Data Consistency).md b/content/03.Note/데이터 정합성(Data Consistency).md new file mode 100644 index 0000000..b4ad1eb --- /dev/null +++ b/content/03.Note/데이터 정합성(Data Consistency).md @@ -0,0 +1,30 @@ +--- +id: "데이터 정합성(Data Consistency) 20260420" +created: "2026-04-20 08:48" +tags: +aliases: +--- +## 💡 생각 +저장된 데이터가 얼마나 정확하냐를 생각하면 될 것 같음 +정합성이 깨진건 뭔가 데이터가 정확하지 않다고 간단하게 생각하자. + +--- +## 📑 개념 +데이터베이스나 시스템 내의 데이터들이 서로 모순 없이 일관되게 유지되는 상태를 의미합니다. 쉽게 말해, **어디에서 데이터를 조회하더라도 값이 같고 논리적으로 어긋남이 없는 상태**를 말하죠. + +단순히 데이터가 정확한지(무결성)를 넘어, 분산된 시스템이나 여러 테이블 간의 관계에서 **데이터가 일치하는가**에 초점을 맞춥니다. + +## 정합성이 중요한 이유 +### **신뢰도 저하 방지** +사용자가 내 정보 페이지에서는 '주소 A'를 보는데, 주문 결제 페이지에서는 옛날 주소인 '주소 B'가 나온다면 시스템에 대한 신뢰가 깨지게 됩니다. + +### **비즈니스 로직 오류 차단** +재고 수량 데이터의 정합성이 맞지 않으면, 실제 물건은 없는데 주문이 접수되는 등의 실무적인 문제가 발생합니다. + + +## 정합성을 지키는 방법: [[트랜잭션(Transaction)]] + +데이터베이스에서는 [[ACID]] 원칙을 통해 [[데이터 정합성(Data Consistency)]]을 보장합니다. 그중 핵심은 [[트랜잭션(Transaction)|트렌젝션]]입니다. +( [[ACID]]원칙을 지키면 정합성이 보장된다. ) + +--- diff --git a/content/03.Note/데이터 조인이 느린 이유.md b/content/03.Note/데이터 조인이 느린 이유.md new file mode 100644 index 0000000..1b724db --- /dev/null +++ b/content/03.Note/데이터 조인이 느린 이유.md @@ -0,0 +1,43 @@ +--- +id: 데이터 조인이 느린 이유 20260420 +created: 2026-04-20 10:55 +tags: +aliases: +--- +## 💡 생각 +조인은 무거운 연산이 맞고 인덱스를 잘 걸어야 그나마 좀 빠릿빠릿하게 동작한다. + +--- +## 📑 개념 + 관계형 데이터베이스(RDBMS)에서 **조인(Join)** 이 무거운 연산으로 취급되는 이유는 단순히 데이터를 합치는 것을 넘어, 컴퓨터 자원(CPU, Memory, I/O)을 집약적으로 사용하기 때문입니다. + +## 📌 상세 +### 1. 데이터의 곱집합(Cartesian Product) 기반 탐색 + +기본적으로 조인은 두 테이블의 행들을 조합하는 과정입니다. 최악의 경우, 한쪽 테이블의 행 개수가 $M$이고 다른 쪽이 $N$이라면 $M \times N$만큼의 연산이 필요할 수 있습니다. + +- **비교 횟수:** 적절한 인덱스가 없다면, 시스템은 모든 경우의 수를 하나하나 대조해야 합니다. 데이터가 커질수록 이 비교 횟수는 기하급수적으로 늘어납니다. + + +### 2. 디스크 I/O 발생 + +데이터베이스 성능의 가장 큰 병목은 **디스크 읽기**입니다. + +- 조인을 수행하기 위해 서로 다른 테이블의 데이터 블록을 메모리(Buffer Pool)로 끌어올려야 합니다. + +- 데이터가 너무 커서 메모리 공간이 부족하면, 중간 결과를 다시 디스크에 썼다가 읽는 **Temporary I/O**가 발생하여 속도가 급격히 느려집니다. + +> [!question] +> Q. Temporary I/O가 일종의 스왑메모리같은 그런 느낌인거야? +> A. 네, 정확한 비유입니다. **Temporary I/O**는 데이터베이스 입장에서 일종의 **'디스크 기반 스왑(Swap)'** 역할을 한다고 이해하시면 됩니다. + +데이터를 처리하려면 메모리에 올려야하는데 처리해야하는 데이터가 너무 커서 db에 할당된 메모리 크기를 초과할 경우 DB는 Temporary I/O 처리를 하게된다. +이게 결국 하드디스크에 데이터를 기록해뒀다가 다시 메모리로 올리는 작업을 의미하기 때문에 속도에 굉장히 큰 악영향을 미치게 된다. + +### 3. 인덱스 관리 및 랜덤 액세스 + +인덱스를 타고 데이터를 찾는 과정에서도 비용이 발생합니다. + +- **랜덤 액세스:** 인덱스를 통해 테이블의 실제 데이터 위치를 찾아갈 때, 디스크의 여기저기를 흩어져서 읽어야 하는 '랜덤 액세스'가 발생하며 이는 연속된 데이터를 읽는 것보다 훨씬 느립니다. + +--- diff --git a/content/03.Note/동기(Synchronous).md b/content/03.Note/동기(Synchronous).md new file mode 100644 index 0000000..1e7c9bc --- /dev/null +++ b/content/03.Note/동기(Synchronous).md @@ -0,0 +1,37 @@ +--- +id: "동기(Synchronous) 20260504" +created: "2026-05-04 09:32" +tags: +aliases: +--- +## 💡 생각 +영어단어인 싱크의 뜻을 생각하자. 상호간의 싱크를 맞춘다 는 의미로 받아들이면 된다. +그게 통신에서의 수신자,송신자 사이던, 프로그래밍에서의 호출자,함수 사이에서든.. + +--- +## 📑 개념 +**송신자와 수신자, 혹은 호출자와 실행자가 같은 시간축 위에서 발을 맞춘다**는 뜻 +( 상호간에 싱크를 맞춘다 ) + +--- + +## 1. 통신에서의 동기: "우리 같은 박자에 맞추자" + +말씀하신 대로 **내가 보낼 때 네가 정확히 들어야 한다**는 의미입니다. + +- 이를 위해 두 장치는 똑딱거리는 **클럭(Clock)** 신호를 공유합니다. + +- 클럭이 '탁' 올라갈 때 송신자는 데이터를 던지고, 수신자는 그 짧은 순간에 데이터를 낚아챕니다. + +- **비유:** 오케스트라 지휘자(클럭)의 손짓에 맞춰 연주자들이 동시에 소리를 내는 것과 같습니다. + + +--- + +## 2. 프로그래밍에서의 동기: "너 끝날 때까지 나 아무것도 안 해" + +말씀하신 **다른 거 하지 말고 기다려라**라는 해석이 완벽합니다. 전문 용어로는 이를 블로킹(Blocking)이라고도 부릅니다. + +- 함수가 호출되면 제어권이 그 함수로 넘어가고, 그 함수가 값을 반환(Return)할 때까지 호출한 쪽의 실행 흐름이 멈춰 있습니다. + +- **비유:** 편의점 계산대에서 앞 사람이 계산을 마칠 때까지 뒷사람이 줄을 서서 가만히 대기하는 상황입니다. diff --git a/content/03.Note/라우터(Router).md b/content/03.Note/라우터(Router).md new file mode 100644 index 0000000..2d7edcd --- /dev/null +++ b/content/03.Note/라우터(Router).md @@ -0,0 +1,61 @@ +--- +id: 라우터(Router) 20260428 +created: 2026-04-28 14:32 +tags: + - network +aliases: +--- +## 💡 생각 +랜선으로 연결된 인터넷에서 다음 목적지가 어디인지 알려주는 중간 거점의 역할을 하는 장치 + +--- +## 📑 개념 +라우터(Router)는 서로 다른 네트워크를 연결하고, 데이터 패킷이 목적지까지 가는 **최적의 경로(Route)를 찾아주는** 길잡이 역할을 하는 네트워크 장비입니다. + +## 1. 라우터의 핵심 기능 + +라우터의 역할은 크게 두 가지로 나뉩니다. + +- **경로 결정 (Routing):** 목적지 IP 주소를 확인하고, 자신의 [[라우팅 테이블(Routing Table)]]을 참조하여 "어떤 길로 가야 가장 빠르고 정확한지" 판단합니다. 내비게이션과 같은 역할입니다. + +- **패킷 전달 (Forwarding):** 경로가 결정되면 해당 데이터를 다음 인터페이스(출구)로 실제로 옮겨줍니다. + +## 2. 라우터의 작동 원리 + +라우터는 내부에 라우팅 테이블(Routing Table)이라는 일종의 지도를 가지고 있습니다. + +1. **패킷 수신:** 데이터(패킷)가 라우터에 도착합니다. + +2. **주소 확인:** 라우터는 패킷에서 목적지 IP 주소를 읽어냅니다. + +3. **경로 검색:** 라우팅 테이블에서 이 IP로 가려면 어디로 가야 하는지 찾습니다. + +4. **전송:** 가장 적합한 경로로 패킷을 밀어 넣어줍니다. + +## 3. 게이트웨이 vs 라우터: 차이점이 뭐야? + +질문하신 흐름에서 헷갈릴 수 있는 부분인데, 실무에서는 거의 같은 의미로 쓰이기도 합니다. + +- **라우터:** 장비 그 자체를 부르는 이름입니다. (하드웨어적 관점) + +- **게이트웨이:** 네트워크의 출입구라는 '역할'을 부르는 이름입니다. (기능적 관점) + + +> [!info] 우리가 집에서 쓰는 **공유기**는 '라우터' 장비이면서, 동시에 우리 집 네트워크의 '기본 게이트웨이' 역할을 수행하고 있는 것입니다. + +## 4. 왜 라우터가 필요한가요? + +라우터가 없다면 우리는 옆방에 있는 컴퓨터와는 통신할 수 있어도, 멀리 떨어진 구글이나 네이버 서버와는 소통할 수 없습니다. + +- **네트워크 분리:** 너무 많은 기기가 하나의 네트워크에 있으면 트래픽이 몰려 속도가 느려집니다. 라우터는 네트워크를 적절히 쪼개 관리 효율을 높입니다. + +- **보안:** 외부 네트워크와 내부 네트워크를 분리하여 1차적인 방어선 역할을 합니다. + + +> [!question] +> Q. 라우터는 물리적인 장치야? 아니면 소프트웨어야? +> A. 정답부터 말씀드리면, **라우터는 하드웨어(물리적 장치)이기도 하고 소프트웨어이기도 합니다.** + +일단은 라우터는 하나의 장치다고 생각하자. (소프트웨어가 탑제된 장치 그 자체) + +--- diff --git a/content/03.Note/라우팅 테이블(Routing Table).md b/content/03.Note/라우팅 테이블(Routing Table).md new file mode 100644 index 0000000..5810f75 --- /dev/null +++ b/content/03.Note/라우팅 테이블(Routing Table).md @@ -0,0 +1,54 @@ +--- +id: "라우팅 테이블(Routing Table) 20260428" +created: "2026-04-28 14:16" +tags: +aliases: +--- +## 💡 생각 +[[라우팅(Routing)]]이 뭔지 알면 라우팅 테이블도 같이 알 수 있다. + +--- +## 📑 개념 +네트워크에서 라우팅 테이블(Routing Table)은 데이터 패킷이 목적지까지 가장 효율적인 경로로 전달될 수 있도록 경로 정보를 저장해둔 이정표와 같은 데이터베이스입니다. + +라우터나 컴퓨터와 같은 네트워크 장비는 패킷을 받으면 이 테이블을 참조하여 다음 어디로 보낼지 결정합니다. + +## 1. 라우팅 테이블의 주요 구성 요소 + +라우팅 테이블은 보통 다음과 같은 정보들을 포함하고 있습니다. + +- **목적지(Destination):** 패킷이 최종적으로 도달해야 할 IP 주소나 네트워크 대역입니다. + +- **서브넷 마스크(Netmask):** 목적지 주소의 범위를 정의합니다. + +- **게이트웨이(Gateway) / 다음 홉(Next Hop):** 목적지에 가기 위해 거쳐야 하는 다음번 장치의 IP 주소입니다. + +- **인터페이스(Interface):** 패킷을 내보낼 물리적 또는 논리적 포트(예: eth0, Wi-Fi 등)입니다. + +- **메트릭(Metric):** 경로의 우선순위를 정하는 값입니다. 여러 경로가 있을 경우 이 값이 낮을수록 더 좋은 경로로 판단합니다. + + +--- + +## 2. 경로 결정 방식 (작동 원리) + +패킷이 도착하면 라우터는 다음과 같은 과정을 거칩니다. + +1. **가장 구체적인 경로 탐색 (Longest Prefix Match):** 목적지 IP와 가장 많이 일치하는 서브넷 마스크를 가진 경로를 먼저 선택합니다. + +2. **디폴트 게이트웨이(Default Gateway):** 테이블에 일치하는 특정 경로가 없을 경우, 모든 외부 트래픽을 처리하는 0.0.0.0 경로(기본 관문)로 보냅니다. + +3. **패킷 전달:** 결정된 인터페이스를 통해 패킷을 다음 지점으로 송신합니다. + + +--- + +## 3. 라우팅 테이블의 관리 방식 + +라우팅 테이블에 경로가 추가되는 방식은 크게 두 가지로 나뉩니다. + +- **정적 라우팅 (Static Routing):** 관리자가 직접 경로 정보를 입력하는 방식입니다. 보안성이 높고 리소스 소모가 적지만, 네트워크 변화에 자동으로 대응하지 못합니다. + +- **동적 라우팅 (Dynamic Routing):** RIP, OSPF, BGP 같은 라우팅 프로토콜을 통해 라우터끼리 서로 정보를 교환하며 테이블을 자동으로 업데이트하는 방식입니다. + +--- diff --git a/content/03.Note/라우팅(Routing).md b/content/03.Note/라우팅(Routing).md new file mode 100644 index 0000000..f26d491 --- /dev/null +++ b/content/03.Note/라우팅(Routing).md @@ -0,0 +1,23 @@ +--- +id: 라우팅(Routing) 20260428 +created: 2026-04-28 14:15 +tags: + - network + - route +aliases: +--- +## 💡 생각 +이곳에 하나의 생각 또는 아이디어를 작성합니다. + +--- +## 📑 개념 +네트워크에서 **라우팅**이란 패킷(데이터의 전송 단위)이 출발지에서 목적지까지 갈 수 있는 **최적의 경로를 설정하고, 그 경로를 따라 데이터를 전달하는 과정**을 의미합니다. + +## 📌 상세 +라우팅은 단순히 길을 찾는 것에 그치지 않고, 다음과 같은 핵심적인 작업을 수행합니다. + +- **경로 결정 (Path Determination):** [[라우팅 테이블(Routing Table)]]이라는 지도 정보를 참조하여, 수많은 갈림길 중 어떤 길로 데이터를 보낼지 결정합니다. + +- **패킷 포워딩 (Packet Forwarding):** 결정된 경로에 따라 실제로 패킷을 다음 장비(넥스트 홉, Next Hop)로 넘겨주는 물리적인 동작입니다. + +--- diff --git a/content/03.Note/법인카드 결제상신 경로.md b/content/03.Note/법인카드 결제상신 경로.md new file mode 100644 index 0000000..9f2b948 --- /dev/null +++ b/content/03.Note/법인카드 결제상신 경로.md @@ -0,0 +1,10 @@ +| **대상** | **금액 조건** | **결제 라인 (순서)** | **합의 담당자** | +| ----------- | --------- | ----------------------------------- | ------------- | +| **1. 팀원** | 30만원 이하 | 본인 → PM/영업대표 → 팀장 → 사업부장 | 문새별, 김성민 | +| | 30만원 초과 | 본인 → PM/영업대표 → 팀장 → 사업부장 → **대표이사** | 문새별, 김성민, 이훈주 | +| **2. 팀장** | 30만원 이하 | 본인 → 사업부장 | 문새별, 김성민 | +| | 30만원 초과 | 본인 → 사업부장 → **대표이사** | 문새별, 김성민, 이훈주 | +| **3. 사업부장** | 전액 | 본인 → **대표이사** | 문새별, 김성민, 이훈주 | + +게시판 경영기획실 및 경영지원실 업무분장 및 결재라인 안내(2026. 01. 01) 참고하시면 됩니다. +- 날짜는 달라졌을수도 있음 \ No newline at end of file diff --git a/content/03.Note/부가세여부.md b/content/03.Note/부가세여부.md new file mode 100644 index 0000000..7cff179 --- /dev/null +++ b/content/03.Note/부가세여부.md @@ -0,0 +1,32 @@ +--- +id: "부가세여부 20260427" +created: "2026-04-27 13:16" +tags: +aliases: +--- + +--- +## 📑 개념 +회계 전표를 생성할 때 **부가세 여부**(또는 매입세액 공제 여부)는 해당 지출이 부가가치세 신고 시 **세금을 공제(환급)받을 수 있는 항목인지**를 결정하는 아주 중요한 설정입니다. +단순히 금액에 부가세가 포함되어 있느냐 아니냐를 넘어, 다음과 같은 의미를 갖습니다. + +## 📌 상세 +일반적으로 '부가세 여부'에 체크를 하거나 '여'로 선택한다는 것은, **해당 거래에서 발생한 부가세를 별도의 부가세대급금(자산) 계정으로 분리하겠다**는 뜻입니다. + +- **체크한 경우:** "이 지출은 사업과 관련이 있고, 세법상 공제가 가능한 항목이므로 나중에 세무서에서 부가세를 돌려받겠다."라고 선언하는 것입니다. + +- **체크하지 않은 경우(불공제/면세):** 부가세가 포함된 결제더라도 사업과 무관하거나(접대비 등), 면세 항목이라서 공제를 받지 못할 때 사용합니다. 이 경우 부가세는 별도로 분리하지 않고 전액 비용(예: 복리후생비)으로 처리합니다. + +### 실무적인 판단 기준 (어떨 때 체크하나요?) + +모든 결제에 체크하는 것은 아닙니다. 아래 기준을 참고해 보세요. + +- **체크해야 하는 경우 (공제):** 식대(직원용), 사무용품 구입, 업무용 택시비, 소모품비 등 사업 운영에 직접 필요한 지출. + +- **체크하지 않는 경우 (불공제):** + + - **접대비:** 거래처 선물이나 식사 비용. + + - **면세 항목:** 꽃 배달(화환), 농산물 구입, 도서 구입 등(애초에 부가세가 0원임). + + - **비영업용 승용차 관련:** 일반 승용차의 기름값이나 수리비(경차나 9인승 이상 제외). \ No newline at end of file diff --git a/content/03.Note/분개(分介).md b/content/03.Note/분개(分介).md new file mode 100644 index 0000000..82c956d --- /dev/null +++ b/content/03.Note/분개(分介).md @@ -0,0 +1,79 @@ +--- +id: 분개(分介) 20260413 +created: 2026-04-13 11:08 +tags: +aliases: +--- +## 💡 생각 +돈이 나가고 들어오는것을 나누어서 기록하자. (누락없이 정확하게 기록하기 위해서) + +--- +## 📑 개념 +### 분개(分介): "나누어서 기록하기" + +**분개**를 한자로 풀면 **나눌 분(分)**, **낄 개(介)** 자를 씁니다. 즉, 하나의 거래를 **두 부분(왼쪽과 오른쪽)** 으로 나누어 장부에 끼워 넣는다는 뜻이에요. + +## 📌 상세 +- **쉽게 생각하면?** 거래가 일어났을 때 **원인**과 **결과**를 양쪽에 적어주는 과정입니다. + +- 예: 편의점에서 1,000원짜리 물을 샀다면? + + - **결과:** 내 손에 물이 생겼다. + + - **원인:** 내 주머니에서 1,000원이 나갔다. + +- 이렇게 양쪽을 다 기록해야 나중에 돈이 어디로 새 나갔는지 정확히 알 수 있거든요. + +### . 차변과 대변: 그냥 "왼쪽"과 "오른쪽" + +차변(借邊)과 대변(貸邊)이라는 단어 자체에 너무 의미를 두지 마세요. 그냥 회계 나라의 약속입니다. + +- **차변 (왼쪽):** 나에게 **들어온 것** (자산의 증가, 비용의 발생) + +- **대변 (오른쪽):** 나에게서 **나간 것** (자산의 감소, 수익의 발생) + + +--- + + +> [!example] + +### 예시 이미지 +![[Pasted image 20260413110952.png]] + +보여주신 이미지는 아주 전형적인 **분개전표**의 입력 화면입니다. 앞서 말씀드린 차변과 대변이 어떻게 쓰이는지 이 표를 통해 하나씩 짚어드릴게요. + +--- + +### 1. 한 세트의 거래 (행번호 1번과 2번) + +이 표에서 가장 중요한 점은 **1번 행과 2번 행이 합쳐져서 하나의 사건**을 나타낸다는 것입니다. 기차표를 사고 40,500원을 쓴 상황을 회계적으로 기록한 것이죠. + +### 2. 차변금액 (왼쪽) - 행번호 1번 + +- **금액:** 40,500원 + +- **계정과목:** 여비교통비 + +- **의미:** 내가 돈을 **어디에 썼는지(이유)** 를 나타냅니다. + +- **해석:** 출입관리 업무협의를 위해 기차표를 사는 데 40,500원이라는 **비용이 발생**했으므로 왼쪽에 적었습니다. + + +### 3. 대변금액 (오른쪽) - 행번호 2번 + +- **금액:** 40,500원 + +- **계정과목:** 여비교통비 (보통 이 자리에는 현금, 보통예금, 미지급금 등이 들어오지만, 이미지에서는 항목 정리를 위해 같은 과목을 쓰신 것 같네요.) + +- **의미:** 돈이 **어디서 나갔는지(출처)** 를 나타냅니다. + +- **해석:** 40,500원이라는 **자산이 빠져나갔기** 때문에 오른쪽에 적었습니다. + +### 4. 왜 똑같은 금액을 양쪽에 적었나요? (대차평균의 원리) + +이미지의 하단을 보시면 **차변 합계**와 **대변 합계**가 둘 다 40,500원으로 똑같아야 합니다. + +- 만약 차변은 40,500원인데 대변이 0원이라면? "돈은 썼는데 어디서 났는지 모른다"는 뜻이 되어 오류가 발생합니다. + +- 이렇게 양쪽의 무게를 맞춰줌으로써 **장부에 실수가 없음을 증명**하는 것입니다. \ No newline at end of file diff --git a/content/03.Note/분개전표.md b/content/03.Note/분개전표.md new file mode 100644 index 0000000..0958cd7 --- /dev/null +++ b/content/03.Note/분개전표.md @@ -0,0 +1,45 @@ +--- +id: "분개전표 20260413" +created: "2026-04-13 11:04" +tags: +aliases: +--- +## 💡 생각 +전표는 돈이 빠져나간 이력만 적혀있으니까 상세하게 알 수가 없음. +전표에 차변과 대변이라는 두가지 구분을 더해 전표를 좀 더 상세하게 적는 방법을 의미 +그냥.. +5만원이 기차표값으로 빠졌다. (차변) +5만원이 카드결제대금으로 나갈거다. (대변) + +둘을 합치면 카드결제대금으로 5만원이 나갈건데 그 5만원은 기차표값이다. +를 나눠서 적어놓은거라고 보면 될 듯 + +--- +## 📑 개념 +**[[분개(分介)]]전표**는 앞서 설명해 드린 [[전표]]의 한 종류로, **회계상의 거래를 차변(Debit)과 대변(Credit)으로 나누어 기록하는 서식**을 말합니다. + +일반적인 [[전표]]가 단순히 돈이 나가고 들어온 사실에 집중한다면, 분개전표는 그 거래가 회계적으로 어떤 의미를 갖는지 상세하게 분석해서 적는 것이 특징입니다. + +## 📌 상세 +### 1. 분개전표의 핵심 구성 + +분개전표에는 반드시 **[[분개(分介)]](Journalizing)** 과정이 포함됩니다. + +- **차변 (왼쪽):** 자산의 증가, 부채의 감소, 비용의 발생 등을 기록합니다. + +- **대변 (오른쪽):** 자산의 감소, 부채의 증가, 수익의 발생 등을 기록합니다. + +- **적요:** 이 거래가 구체적으로 무엇인지 설명을 적습니다. (예: 3월분 사무실 임차료 지급) + + +### 2. 왜 분개전표를 쓸까? + +대부분의 기업은 **복식부기** 원리에 따라 장부를 정리합니다. 단순히 현금이 나갔다(출금전표)는 정보만으로는 부족할 때가 많기 때문입니다. + +- **복합 거래 처리:** 현금과 카드를 섞어서 결제하거나, 외상 거래를 기록할 때 유용합니다. + +- **오류 방지:** 차변 합계와 대변 합계가 항상 일치해야 하므로(대차평균의 원리), 기록 과정에서의 실수를 바로 잡아낼 수 있습니다. + +- **회계 소프트웨어의 기초:** 요즘 사용하는 경리 프로그램(ERP)에 전표를 입력하면, 시스템이 이 분개전표를 바탕으로 재무제표를 자동으로 만들어 줍니다. + +--- diff --git a/content/03.Note/서브넷 마스크(Subnet Mask).md b/content/03.Note/서브넷 마스크(Subnet Mask).md new file mode 100644 index 0000000..d8d545c --- /dev/null +++ b/content/03.Note/서브넷 마스크(Subnet Mask).md @@ -0,0 +1,52 @@ +--- +id: "서브넷 마스크(Subnet Mask) 20260428" +created: "2026-04-28 14:40" +tags: +aliases: +--- +## 💡 생각 +IP 주소라는 전체 주소 중에서 어디까지가 **동네 이름**이고, 어디서부터가 **집 번호**인지를 알려주는 구분선 + +--- +## 📑 개념 +서브넷 마스크(Subnet Mask)는 IP 주소에서 '네트워크 부분'과 '호스트(개별 기기) 부분'을 나누는 기준이 되는 숫자입니다. + +## ### 1. 왜 필요한가요? + +[[IP]] 주소만 봐서는 이 컴퓨터가 어느 그룹에 속해 있는지 알 수 없습니다. [[서브넷(Subnet)]] 마스크는 이를 논리적으로 쪼개어 다음과 같은 역할을 합니다. + +- **그룹화:** 같은 네트워크에 있는 기기들을 하나로 묶습니다. + +- **통신 대상 판단:** 데이터를 보낼 때, 대상이 나와 같은 동네(내부망)에 있는지 아니면 [[게이트웨이(Gateway)]]를 통해 밖으로 나가야 하는 다른 동네(외부망)인지 판단하는 기준이 됩니다. + +서브넷이 다른 경우 서로 다른 네트워크망에 있는것으로 간주함. +예를들어 서브넷 마스크가 255.255.255.0 인 네트워크에서 +IP: 192.168.100.228 와 IP: 192.168.100.229 두 서버는 서로 같은 네트워크망에 있는것이다. + +228서버와 229서버는 서로 통신할 때 [[라우팅(Routing)]]이나 [[게이트웨이(Gateway)]]를 거치지않고 다이렉트로 통신이 가능하다. + +### 2. 어떻게 작동하나요? + +서브넷 마스크는 IP 주소와 똑같이 32비트(4개 덩어리)로 구성되며, 보통 `255`와 `0`을 조합해서 사용합니다. + +- **255 (1로 채워진 부분):** "이 자리는 네트워크(동네 이름)를 나타내니 건드리지 마!"라는 뜻입니다. + +- **0 (0으로 채워진 부분):** "이 자리는 호스트(개별 기기)를 나타내니 자유롭게 번호를 매겨!"라는 뜻입니다. + + +> **예시: IP가 `192.168.0.10`이고 서브넷 마스크가 `255.255.255.0`이라면?** +> +> - 앞의 세 덩어리 `192.168.0`은 이 기기가 속한 **네트워크 이름**입니다. +> +> - 마지막 한 덩어리 `10`은 그 네트워크 안에서의 **기기 고유 번호**입니다. +> + +### 3. 표기법 (CIDR) + +서브넷 마스크는 `255.255.255.0`처럼 길게 쓰기도 하지만, 슬래시(`/`) 뒤에 숫자를 붙여서 짧게 쓰기도 합니다. 이를 **CIDR 표기법**이라고 합니다. + +- **`/24`:** 앞에서부터 24비트(3덩어리)가 네트워크 주소라는 뜻입니다. (`255.255.255.0`과 같습니다.) + +- **`/16`:** 앞에서부터 16비트(2덩어리)가 네트워크 주소라는 뜻입니다. (`255.255.0.0`과 같습니다.) + +--- diff --git a/content/03.Note/서브넷(Subnet).md b/content/03.Note/서브넷(Subnet).md index eccafc6..35711e5 100644 --- a/content/03.Note/서브넷(Subnet).md +++ b/content/03.Note/서브넷(Subnet).md @@ -5,7 +5,7 @@ > 거대한 네트워크인 [[VPC(Virtual Private Cloud)]]를 더 효율적이고 안전하게 관리하기 위해 **더 작은 단위로 쪼갠 가상 네트워크** **참고로 VPC도 서브넷도 모두 논리적인 개념, 물리적인 동작은 가용 영역에서 이루어짐** - +서브넷(Subnet)은 'Sub-network'의 줄임말로, 하나의 거대한 네트워크를 효율적으로 관리하기 위해 **더 작고 논리적으로 쪼개놓은 부분 네트워크**를 의미합니다. ## 📌 서브넷을 나누는 이유 > [!check] > - **보안 (Security):** 인터넷에 연결될 공간과 외부로부터 완전히 격리될 공간을 분리하기 위해서입니다. @@ -29,5 +29,48 @@ | **연결 방식** | **인터넷 게이트웨이(IGW)**와 연결됨 | 인터넷 게이트웨이와 연결되지 않음 | | **배치 자원** | 로드 밸런서(ALB), 배스천 호스트(Bastion) | **백엔드 서버(.NET)**, 데이터베이스(DB) | | **비유** | 아파트 정문 안내소 (누구나 방문 가능) | 아파트 내부의 안방 (가족만 접근 가능) | -## 🔗 지식 연결 -- **태그:** #zettelkasten #knowledge \ No newline at end of file + +## 1. 왜 서브넷을 만드나요? (서브네팅의 이유) + +네트워크를 쪼개지 않고 하나로 크게 쓰면 다음과 같은 문제가 생깁니다. + +- **트래픽 과부하:** 모든 기기가 한 공간에 있으면, 불필요한 방송 신호(브로드캐스트)가 너무 많아져 네트워크가 느려집니다. + +- **보안 취약:** 한 곳이 뚫리면 전체 네트워크의 모든 기기가 위험에 노출됩니다. + +- **관리의 어려움:** 장치가 수만 대라면 어디서 문제가 생겼는지 찾기 매우 힘듭니다. + + +그래서 서브네팅(Subnetting)을 통해 네트워크를 목적이나 위치에 맞게 작게 분리하여 성능과 보안을 높입니다. + +--- + +## 2. 서브넷은 어떻게 구분하나요? (서브넷 마스크) + +IP 주소는 원래 하나처럼 보이지만, 서브넷 개념이 들어가면 두 부분으로 나뉩니다. + +1. **네트워크 주소 (Network ID):** 어떤 동네(서브넷)인지 알려주는 주소 + +2. **호스트 주소 (Host ID):** 그 동네 안의 몇 호(기기)인지 알려주는 주소 + + +이때 어디까지가 동네 주소이고, 어디서부터가 기기 주소인지를 구분해주는 기준점이 바로 서브넷 마스크(Subnet Mask)입니다. + +- 예를 들어, `255.255.255.0`이라는 서브넷 마스크는 "앞의 세 덩어리(24비트)는 동네 이름이고, 마지막 한 덩어리만 너의 고유 번호야"라고 지정해주는 역할을 합니다. + +## 3. 실생활 예시: 회사 네트워크 + +한 회사에 100명의 직원이 있을 때, 서브넷을 적용하면 다음과 같이 나눌 수 있습니다. + +|**서브넷 이름**|**역할**|**접근 권한**| +|---|---|---| +|**서브넷 A**|개발팀|서버 및 개발 환경 접근 가능| +|**서브넷 B**|인사팀|개인정보 및 급여 시스템 접근 가능| +|**서브넷 C**|방문객용 Wi-Fi|인터넷만 가능, 내부 서버 접근 불가| +이렇게 나누면 개발팀 직원이 실수로 인사팀의 민감한 파일을 들여다보는 일을 물리적으로 차단할 수 있습니다. + + +## 4. 서브넷 간의 통신 +- **같은 서브넷 안:** [[게이트웨이(Gateway)]] 없이 직접 소통합니다. (같은 동네니까요!) + +- **서로 다른 서브넷:** 반드시 [[라우터(Router)]](또는 [[게이트웨이(Gateway)]])를 거쳐야 합니다. (다른 동네로 넘어가야 하니까요!) \ No newline at end of file diff --git a/content/03.Note/시리얼 통신(Serial Communication).md b/content/03.Note/시리얼 통신(Serial Communication).md new file mode 100644 index 0000000..06e2e07 --- /dev/null +++ b/content/03.Note/시리얼 통신(Serial Communication).md @@ -0,0 +1,64 @@ +--- +id: 시리얼 통신(Serial Communication) 20260504 +created: 2026-05-04 09:22 +tags: +aliases: + - 직렬통신 +--- +## 💡 생각 +구식 통신연결방식이다 생각하면 됨. 옛날꺼니까 단점이 많음 +이미 serial로 연결해서 사용중이던 장비를 다뤄야 하는 경우에나 보게되거나 사용하게 됨. +[[RS-232]]는 생각보다 꽤 범용적으로 사용했던거라 아직까지도 남아있는 경우가 있음 + +--- +## 📑 개념 +데이터를 하나의 선(Channel)을 통해 **한 번에 1비트씩 순차적으로 전송**하는 방식입니다. +현대의 USB, 이더넷, 그리고 임베디드 시스템에서 널리 쓰이는 RS-232, RS-485 등이 모두 여기에 속합니다. + +--- + +## 1. 핵심 개념: 직렬 vs 병렬 + +데이터를 보낼 때 여러 개의 선을 사용하는 병렬 통신과 달리, 시리얼 통신은 최소한의 선으로 데이터를 보냅니다. + +- **직렬(Serial):** 한 줄로 서서 차례대로 이동 (비용 저렴, 장거리 유리) + +- **병렬(Parallel):** 여러 줄로 동시에 이동 (단거리 고속, 케이블 복잡) + +## 2. 주요 통신 방식 (동기 vs 비동기) + +### 비동기식 통신 (Asynchronous) + +클럭(Clock) 신호를 공유하지 않고, 데이터 앞뒤에 **Start Bit**와 **Stop Bit**를 붙여 데이터의 시작과 끝을 구분합니다. + +- **대표 사례:** UART (RS-232, RS-485) + +- **장점:** 선의 개수가 적음 + +- **단점:** 통신 속도(Baud Rate)가 양쪽 모두 일치해야 함 + + +### [[동기(Synchronous)]]식 통신 + +별도의 **클럭 신호선**을 사용하여 송수신 타이밍을 맞춥니다. + +- **대표 사례:** SPI, I2C + +- **장점:** 데이터 전송 효율이 높고 속도가 빠름 + +- **단점:** 클럭을 위한 추가 선이 필요함 + + +## 주요 설정 파라미터 (UART 기준) + +시리얼 통신을 설정할 때 반드시 맞춰야 하는 4가지 요소입니다. + +1. **Baud Rate (보오율):** 초당 전송되는 비트 수 (예: 9600, 115200) + +2. **Data Bits:** 한 번에 보낼 데이터의 길이 (보통 8비트) + +3. **Parity Bit:** 오류 검출을 위한 비트 (None, Even, Odd) + +4. **Stop Bits:** 데이터의 끝을 알리는 비트 (1 또는 2) + +--- diff --git a/content/03.Note/전표.md b/content/03.Note/전표.md new file mode 100644 index 0000000..66b4ae7 --- /dev/null +++ b/content/03.Note/전표.md @@ -0,0 +1,40 @@ +--- +id: "전표 20260413" +created: "2026-04-13 11:01" +tags: +aliases: +--- +## 💡 생각 +거래내역을 증빙하는 증빙자료 정도로 생각하면 될듯.. 영수증 이라고 봐도 될거같고 + +--- +## 📑 개념 +**전표**는 기업이나 가게에서 거래가 발생했을 때, 그 내용을 증빙하고 기록하기 위해 작성하는 서식입니다. 쉽게 말해 **거래의 핵심 정보를 담은 쪽지**라고 생각하면 됩니다. + +## 상세 +### 1. 전표에 들어가는 내용 + +전표에는 나중에 누가 봐도 거래 내용을 알 수 있게 필수적인 정보들이 기록됩니다. + +- **거래 날짜** + +- **거래 내용** (무엇을 사고팔았는지) + +- **거래 금액** + +- **거래 상대방** + +- **계정과목** (회계상 어떤 항목인지, 예: 복리후생비, 임차료 등) + + +### 2. 전표의 종류 + +가장 흔히 쓰이는 3가지 구분법입니다. + +- **입금전표**: 현금이 들어왔을 때 작성 (빨간색 테두리인 경우가 많음) + +- **출금전표**: 현금이 나갔을 때 작성 (파란색 테두리인 경우가 많음) + +- **대체전표**: 현금이 직접 오가지 않는 거래(카드 결제, 계좌 이체, 외상 등)일 때 작성 + +--- diff --git a/content/03.Note/차동 신호(Differential Signaling).md b/content/03.Note/차동 신호(Differential Signaling).md new file mode 100644 index 0000000..80e6181 --- /dev/null +++ b/content/03.Note/차동 신호(Differential Signaling).md @@ -0,0 +1,72 @@ +--- +id: 차동 신호(Differential Signaling) 20260504 +created: 2026-05-04 10:07 +tags: +aliases: +--- +## 💡 생각 +[[RS-232]]나 이더넷통신의 경우 전압의 차이의 해석이 핵심인데 이 전압에 여러 노이즈가 낄 수 있음. +근데 이 노이즈도 결국 전압의 차이이고 노이즈가 +로 끼든 -로 끼든 상관없이 보정할 수 있는 방법이 바로 차동 신호기법인 것임. + +--- +## 📑 개념 +차동 신호는 **두 개의 신호선**을 사용하여 하나의 정보를 전달하는 전기적 신호 전송 방식입니다. 주로 고속 데이터 통신이나 노이즈가 많은 환경에서 신호의 무결성을 유지하기 위해 사용됩니다. + +--- +## ### 1. 기본 원리 + +일반적인 '싱글 엔디드(Single-ended)' 방식이 하나의 신호선과 접지(Ground) 사이의 전압 차를 이용한다면, 차동 신호는 **서로 반대되는 위상을 가진 두 신호**를 이용합니다. + +- **V+ (Positive):** 원래의 신호 + +- **V- (Negative):** 원래 신호와 크기는 같지만 극성이 반대인 신호 + + +수신 측에서는 이 두 신호의 차이($V_{diff} = V_+ - V_-$)를 측정하여 데이터를 복원합니다. + + +> [!note] 차동 신호(Differential Signaling)의 핵심 원리 +> ### 1. 신호를 보낼 때 (송신) +> +> 데이터 `10`을 보내고 싶다고 가정해 보겠습니다. 이더넷은 선 두 개($A$선, $B$선)에 신호를 **반대로** 실어 보냅니다. +> +> - **$A$선 (정위상):** $+10V$ +> +> - **$B$선 (역위상):** $-10V$ +> +> - 이때 두 선의 차이는 $10 - (-10) = \mathbf{20V}$가 됩니다. 이것이 우리가 보낸 진짜 데이터의 크기입니다. +> +> +> ### 2. 중간에 노이즈가 끼어들 때 (간섭) +> +> 랜선이 지나가는데 옆에 커다란 모터가 돌아서 **$+5V$만큼의 노이즈**가 발생했다고 칩시다. 중요한 건 이 노이즈는 **두 선에 똑같이** 영향을 준다는 점입니다. (선이 꼬여있기 때문이죠.) +> +> - **$A$선:** $10V \text{(데이터)} + 5V \text{(노이즈)} = \mathbf{15V}$ +> +> - **$B$선:** $-10V \text{(데이터)} + 5V \text{(노이즈)} = \mathbf{-5V}$ +> +> +> ### 3. 신호를 받을 때 (수신 - 뺄셈의 마법) +> +> 데이터를 받는 쪽에서는 $A$선에서 $B$선을 뺍니다. +> +> $$(A \text{선}) - (B \text{선}) = 15V - (-5V) = \mathbf{20V}$$ +> +> 보이시나요? **결과값이 처음에 보냈던 차이값인 $20V$와 똑같이 나옵니다.** 노이즈 $+5V$가 양쪽에서 똑같이 더해졌기 때문에, 뺄셈을 하는 순간 서로 상쇄되어 사라져 버린 것입니다. + +### 2. 왜 차동 신호를 사용하는가? (주요 장점) + +#### 외부 노이즈에 강함 (Common-Mode Rejection) + +차동 신호의 가장 큰 장점입니다. 두 신호선이 서로 밀착되어 전송되기 때문에, 외부에서 전기적 노이즈가 유입될 때 두 선 모두에 거의 동일한 양의 노이즈가 더해집니다. 이를 공통 모드 노이즈(Common-Mode Noise)라고 합니다. + +- 수신단에서 두 신호를 빼는 과정($V_+ + Noise) - (V_- + Noise)$을 거치면, 동일하게 유입된 노이즈는 서로 상쇄되어 사라지고 순수한 신호만 남게 됩니다. + + +#### 전자기 방해(EMI) 감소 + +두 선에 흐르는 전류의 방향이 서로 반대이므로, 각 선에서 발생하는 자기장이 서로를 상쇄합니다. 결과적으로 주변 기기에 끼치는 전자기적 간섭이 줄어듭니다. + +#### 낮은 전압으로도 고속 전송 가능 + +접지(Ground)를 기준으로 삼는 방식보다 신호의 스윙 폭을 작게 가져가도 노이즈에 강하기 때문에, 더 낮은 전압에서 더 빠르게 상태를 전환할 수 있습니다. 이는 전력 소모를 줄이고 속도를 높이는 데 유리합니다. diff --git a/content/03.Note/트랜잭션(Transaction).md b/content/03.Note/트랜잭션(Transaction).md new file mode 100644 index 0000000..3b458eb --- /dev/null +++ b/content/03.Note/트랜잭션(Transaction).md @@ -0,0 +1,25 @@ +--- +id: 트랜잭션(Transaction) 20260420 +created: 2026-04-20 08:50 +tags: +aliases: + - 트렌젝션 + - 트렌잭션 + - 트랜젝션 +--- +## 💡 생각 +하나 이상의 쿼리를 묶은 최소 작업 단위 + +--- +## 📑 개념 +이터베이스 관리 시스템(DBMS)에서 **하나의 논리적 기능을 수행하기 위한 작업의 단위**입니다. 쉽게 말해, 여러 개의 SQL 문들을 하나의 묶음으로 처리하여 "성공하면 모두 반영, 실패하면 모두 취소"를 보장하는 장치입니다. + +## 📌 상세 +## 트랜잭션의 4가지 핵심 특성 (ACID) + +트랜잭션이 안전하게 수행되기 위해서는 아래 네 가지 성질을 반드시 만족해야 합니다. 이를 [[ACID]]라고 부릅니다. +![[ACID#📌 상세]] + +즉 [[데이터 정합성(Data Consistency)]]을 지키기 위해 1개 이상의 쿼리작업을 하나의 트랜잭션으로 묶어서 처리한다. + +--- diff --git a/content/04.Extra/Pasted image 20260413110952.png b/content/04.Extra/Pasted image 20260413110952.png new file mode 100644 index 0000000000000000000000000000000000000000..587b110f2935777b02dbceb67c680102cc04410c GIT binary patch literal 11916 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 literal 0 HcmV?d00001 diff --git a/content/04.Extra/Pasted image 20260427133315.png b/content/04.Extra/Pasted image 20260427133315.png new file mode 100644 index 0000000000000000000000000000000000000000..0e120b44fdcf089233fdfd8e2beec6944496111a GIT binary patch literal 43883 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%0A(?J19|7bMcJ2`l`KX5 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 G2 zVo8(wii#5%d=Ak+-Q|Et5alV6?%T4i_X7*FMzulR`S!Wb+k($q`-RtqZspq%I?w83 z=erH$1fa-58yFF5@+g~y{%;mQN8>~an;w|8kLYttjx>vyEDq=DHM!R6l00fmw|6rk z#KX!m<@hSFv1-T=i_L zI(?v6DB3)l^nw54`~v*dm+-kB6|H7F)QgDRs@&GADU@h`Qs7e6kpGC34VL0@!fLtW zSP&5gcP-ajcx~{Y*DBEhcanzsMq>v)8gzPl0Mm_YmnmnxIogLv9CZ+q2ckWZ0yJ)K zRN>+!8uayqN#9ErE~};-3UqW^^@aQ=-MKL5p6mKyzefc{!%QOeDh%>nHSJV3-ChGy zBZd>BVoKNc{PKiuE-FI|) zfOfHAMr~Qj;9soxvyzk8Cg$^Ukf61YR@&Yad1kQB&vpCiOEKKGJuy6hC)9E?MLK`_^CcpQMMQsZB=OQOr$ubD zx4TQShgCJy6Ki^HW^H99pr4^ikHTQA*8b<3lAggz{@maDhqLuM>eKYM#p4>d3IDK<&5-BROGl$7$sbpX=NB9pp=@$+5*#b2R9UyQIPUZ7Eihf*-L6}S4x3-j|Xz@UKh zC#?etMqPJz@v254aYEc-Qy)Zxc})n{?wpSruNJnhX^90XqLuwLWwc?^j0e2&+BK89#J9@+3%t&AVb>^VC>{LAhv z2C8i>az!)$)^>OEbxWV1#h8*O>;!muhgQnRw74%;S}~cKlS?ah`r86`T%j#AQ4{Qi zcrf69T@|2AEv*Yzx+ustm<|8w2ilJ3Ei~Dl*P}Yu(+h3Kb2OEFY-RABFKZVpEr)*q zMrhVPtv^28Jqz}@LAqCsO zDdMU4{ZXN?O~qosvY+U9Z$0lIl9CcuMQNv$A9ixyeiiS zpeI!y>E1nfC2$bZW@!JpcE)7I#AG#W887oG$PpzzK936Noz)$@^npPwr+F>_F$6PO z0l$#KPo>_VED$9xic=f~`EU_}%$g24eT!^K8Qoiivf%QW`t#*xe{4r18B85Dr2@t` zc{pDKCSiVMb{uER^{7j0otC8PK##LGV)3x6maI~w1bBpUn1{aHceZk9%5>uZe1ts(o@lbWHz znXy#H$P9%7l7(Eu$mFX11=h?!EKPug78*D(D^4cPj4zvYK#dcIR?*uq4Top1$w? zR1a0t0$R>BV<4L*(U|0SCk^Dc-$Qbosy+~dRk;<2P|@r7o9_E{a^;Wq7N+*}b}Pst3TL4=)d#ZDg5h%9G2KYtd(h9E5593tsO zi1rsBK=9uc0&iI5VA?oZlK@=b{`He3cdcHxKVWuQa0)M&?tAQeTm)I`enRUZA+2HI zp)M*al!X_$#iryrr=GTB*+L#veH~G?Ly4fu&Q2Lp!~#YpyVUl@lI3cK5y5d3WhLVJ zmIj`BrdVQM?nPL+nWM(&@Ns(iZ93Atvdd|YDjvD*qF@V@cb&}}rM@?@7@ z2UNtt!K&!gY^vgbSBQF!2|qAUtam=s^t7;iT(ZPJTF7O_N3m>Z(+$@D!7bHgJq)&e z-{vC0*h`u(jIJ18U)Ql>ftv6Con9WYlwb%qL zU2snL)Kspe<|8$0EK|N?Ad0y+KfYFj>o9}vWzT`|OWU4o61QU9CBpb4fQN1R5FIK#{rKNv>n2?~UOV+TbxB2yIk?>v}$M|77PviDN zi@SRrR_#{1PZ0(E zwe|ij38{d$(nUY9270vcvyrDw6J}_p8ntLJl7Cj@e?hi+d1!2V{0ymaJTiDCMe?Li zJiOR&c-r$RQw1}XGi9ArM||@rmJmVP`j&RNT^-|fy~E?98Zc7bN9a91uY64Gb##BJf!E)eS(%$X7nf*Yj%LU)9nP` z(x}WH&K_V@KMlWjZ^doTCX7X=p7QqCB^+>Vx@PUP=wl@n7TO2EQVBFVxc2{}#|y`% zYmFv~V{cp4GkPS!EiWiA?hoIa0|!Y2>xDE;pe##4VmxO>97O8x)(6a`bb%o{P}E}4 zkd-a9pPdJSvDPcgojwrYEPFj^VQ!`L4}HzF?XjcT`K09~c)xiZub^3Nu+$TDlgz9o zXLN@=coUf1oM8>@6Mzj#^0)AW2r5p;i)yH7oOroRUEBD@L{3FDYu@{=nj~ zJd-uQyc{?eklN|^^gD}B$m)!#Zzn9!KG9B&32n6gde@O6JKf*0s3-#Toi|Q4ae3F# z&eqk)2I5E3dVhMh;q$QU^r=Gdy-8Z+zWQgo*IK)Sp4)5Y(-EC+%6{~GR~**h^H{p~ zYeY6=lR)Hcmq6rUj?DAmVd1CKLW6ufd?}&uaVh*d>TN8x-^YKsL@wdQ_$sK5{>`v= zCHmnXi)jSg#PZHxA`YcIZjm^xe@RD9+2T?dVp*zEPqyG!eVjEP?ETss^7(|$&!$K8 zV!8RCG5P%+mkcu7y8e<42xrxqn{OKdXlC^1Z$HrdlIATPET~tsOW^-Cf2rShtv+Ax z2$D?_^(&j|c!#xEuxZ<=@L(n7E1>wm)j1%A+8P8yW~Ed*XG!@-gLwv1VSCB(Z^7r4 zu%D>{_(VAs{&R6OBB&&PtPmpETV=kT2bOM9>XxJRK0lA7f z;kLHjVUr#fw;OTNDB0Y6Y$8KAy#m&-x3)($ABwWP_sbjCuHt}?Nb3fq+sb8?&)zlx zcNf40Rkm(DZ@k_&>b^Yl2;ZfmjzbOyfg1^`&-F!~{ zZO-qEr(_@*6BSqq3E;Q1zOj)l!Wydk#T56(U`cMCKd99Me>}a@;HV~%K~2x_?(VLk zvC%E-q;H2k5kIwz7LNuI;r?tjY&a4zPnEtUdS-bVU`_|T1K+u@p1O;dx3`zgx2Kz_ zE92IO(>N6a?=PibV#zBAL+#T!vJa zNqTdCzXJ}8|LhjB4jd{B1t=d0Jgk)))* zykzJ;!jl+8tUB_wf7@sDm7FO{z&NtFt3ZlnG72)X<`0YAFCHrtkN^S%4e` z8r*&P@T+5qhS9xer&K6dda<$6=jGnYW!-6Ea|kQ%{QOAAY1OVs&42;?D8zc1(nZ0*bwjuG5HfQgeycB}B% zRB{vWM?QkZK`rn@8&HjyX!gRk!6EMn)~u-^qa^jnbiL$VZ8Z|U(Xg+ADqCM&KJ^#i zu`PsoSXsSg46y*3(+*5%v?-4TO3Tq0=oNKvy=;3E(n zyF8P_{B^=wH@XDb_2^C-W;dD^+ga01gbd9&wCQJwdFp3W!0uV-y$mUhq3K#9vQ zKCs4HzUn#?bz7)bO7RJ}lO876pUR33D)S<0uB<3CmpN%>ZoeTsZJkYA+G^a zpRuvOC13k?VqMLQ935RjQdvWLg+-`iV@#QunY^^i1T0sAHaGiBPo7!&{}na*#r^Q^ z%YUGHxfWp3yyFheir8(yO(Uj5<-gX=C{Pi9{J7d^!}1$U%;K%6$l{2$tf{4MjxW&z z?=0p>i5>BoX*;k4RMuY}!nD;AU4X?y81XG1fRHqTLyOLQvAb(gJCJJgnhuu z&H0zZrrzh*ZrtpLwJKE=79t#E|FxM}Qm$w6@^XBwb-;cHxMNTC##LiS7v>wHaFKr* z@-WjY}P`Q%iPStUEMOJjX{+8vj?q;E&ktt7uJFLNe&Q-vhSIAys#2*)!hg;1H zo7Y2*1m0seXBFc5E;%}C?D?_ZzC@`9`^T`NVl`Qg-wBW9rfHiCkXL?xyK?nZ*vOc% zjyy;Qbc|2?T_ z-Nj>FVIV{FU9$(<2=GqJbC+#BDeCT9~IRqgAo+ zGC$}EK|k*-P<~zt=I*}2-z=R5DS!JGWKg0~F?$${v1G8RpI2Z&GKFf7z|W}08!q3y z_UU}3Gkffap!4|-)8}yqmF4xiNcbrg)9bKz1G0sQ5E7DHuJN8SD0DtMqj&MaVu}Vpew1}{398z6&JwetLr_wuJaDBYq z>{x>DLh{P%>!YF)0*2RIHlj*-GQmHX&(C#OeY`=zmrl(pC8$cK$29V3eNeUGJwDpR3vlpRNBx(^Unv*{tCfFJ9c;9g2H_;t+}#cXxM6 zaVYLyid%4ZcXy{a1b63r|HYY1CRdrsB%9rRA4Ph9n`nGLfET$anbf@)2I*g9o%`Nv zZ$93QH*VNa;l~8A=iA9NfSu=>yZ0P)%_Bi^tl{47yfc7Zcd zK2qgKlclnpcBG@l)35GR+l~5i{*N(h%zySuAvXy}@@aZQsC;gjJph0YBfKsEZf?suQ%-}C~~e|&m>S(E}!YT&oa zBK3O*Y3O>6M=csFpn-N}#SG@Y{fs<^?GCvnGiZqEimP=#_vV<)_O~OnFrk9}X-*kS z9x;Z>myMv2{Bj&HJ$?For|0(y=$v-rEB&qsbDmCM-*4m4^dIWqn|Iwi+bJEq4^D~|S)UF75#5<=Fuc=tOC`bU(die5vNY}XrX*IT0eA4m1U%}*-=cCDvf z0nk$t{7K_x=`%-I&lU_xCM#ccIdbWVKgFE3u`}VgnyFZFue)$0DNrd7@7_pswAY^w zgZK}kD*by`H(r3oac?_!ZEqcE;vh0MF7=TB---{8q=& zcnGgjig#!0wWdgc8xb;g-r3`Ib#-KN70eY13JT#ZVKXR2cHHw;>P&%b4n(wR(uFFP zi`DO#>;nR6tt~AS%5LfD`3kJY2==QDD02AQdQ}dF8ty5v6Z_1B&doj?NjkM=D6`U} zhyRe5jLnVSc{<*X4)N+O$)*S#OXgp)&+Mf5c-DQcP5k1Ubi=`5RsMpgqoX55Dh%|= z4I%F;+s{F(cAc*wkjl+==f!B-RUX@=CfC{hEWkRsUhjRMy`GuPZKK)gelDC^jQlz$ zVuQ8@xVPrx5E>1XYYIdoTBs8+IprJDfCy|yQiM&w+LRZ zI3ZD3EJ2i(c?7x)xuRyU7@F6p{*KXbaq@=ocMoYgSB#%N2!w=6*|+cA)mtwb_f-csffuKj zhuLd@{G0Z&gkGCcdL&A7t&Cb*=76#hn#}S<8rfNar+Zzu@p)XoS4hrl53aCZH!SJv zm^n++MUVa4mQ-i+$rZ$|!*nNF7hZAz@0&tcL^Y1fa1i$N&yq0wSk%%1PSFy4JZmrq z+65HmM(Q!07~;_vzTlrBVIVbzoktlE!qr?|8jFSx<%e|x!w-bElU5P!0COLgjv$-3O!XE{J? z`}kM?t<-4p8+L`b1_vqBQE?Ju_72VVC1#9(;aeu`7$(!eL{nwi~hU|^s+f;S45rtf+-vD$dJsxtq} z@8Tjq23KMpWQe3%^DcacGAiaT8l#9G&UwuxMU{=s_21~!(#ED6g}mKSP)`t41fR}kpI)HxA%d`mvLqOo+)#B7+?#RSA~`m^qN|g?3UbBijx$hbUGXs ze+2q9sGmi+S@Y*C8~`M^S6sZpwgNy92D9ra@T?>PZb^vnmRj9eH-1h}e~)J1Mi5e1uHr!GsKok)744fu9;TJqLjn2;NY|UFRgNdWle6g#6Jeds!`JX4S&2{{@$ehu*dG7 z$7g3O8Y36CKo4T0&1yrV|K{!uR!jFVmY&_wiF6}pKOd8O9am!`cYULomUbcIo))^p zui?5n1&z|y`!iq@xAym%X6<~-vIh=>O24O0k$Yg?xDpY5$c@pxXtwt`_wIbS?FY;k z^YuLI4$mvC+;*!oBAjgLgy!78e~M-D(!?gRp(-g87#`%1TT`-)_e^cXTc`wOCD37r zEofQTQecS_69g_VugwVB$`9j}P(|n#C!*~;6M=co)-E9;ua|?kug9w*4;zb}*A@5v z54{Ke+s45E{ebo5Si|oLm{A?a)wJF0Nbz&Fh?MT22bw&F<2{k~Co?)NCfb_YulHNS z^Kr~tREhXJs+1UtIPk+BPMmYr=4MLkH9P%Y)%-j5WBi|Xm>bt>Y#|Np-cPxFn~Tvq z92~9SFQn8=`eSQN(e>Ip%jJuRduBD3kuEfO6;uKWX-s2#GW9Og+vY;IN34F+ksFV9 z?t(j(Ajs)qCRi;{tINf6COjt<< zMO-iaHZ){m=*5q)ROFEGT}pLZkDL)>9rGiy6i_z-X=bOY_^8S{vVbrQJ1|H~L*w-L z^evLV<+q;i_Oa<`GB97)H)vhsuj=zLAbiJuHY+YEDQPWZOc z)Ew(I&9t#xZufTAye54;lxnOe%g>4`wC!Ufl_HJveFEJ*78UL+JJ;L2^3%aRL(fRW z1EPqf2TlL?j<7JG@uonT9t$zxoH2B<*3oVlli3F^sL$Fj%CvAo38LKmJ3x>_u%|m} z=;nr#Jcd_y`@`2?mlqsd@%hhR`(UMl)cX@7inb+(vjp71x{YoQc=utGA^No2RX9%{ zwIIAEqLxZF`gk|*+nah%wUMmpsbg`ob27v~+=EnmW-#2G0{tx5_XhaWndn7c>48PK zd?0w_7;}K)YVHkh&o^_+m>^T2JRG!Vvd>g_0(uYnx)sWOQ6`KTfb(2n6^s)Km>&XB(C4(2>>2j>9Rxc82W z(V(1%6LaCm<;kTBBwU~8B9WJUkpDvkGmP2J|FM9ax7Z;yo=u0_aULD#1XzX5TF2gy zsEkGXl{UZEA1}T`JY{rJ}uD- zySzz>_yEtFxEPGbH#Gm7gq+vyl+KQacsc)8x7R1YhJuC~vrki$p|z^T-`euDKc?Sg zFn>u4yr9P?fz9(($`gUolZNw^X%UA%1P|z(m7*ZN*E(>v-3I(xt=;-!$K|aY%j-C? z`+BcDT(ZBXc7_?Pvo0g@nEX(SY-W{giQ`NakU_hfBS0kqiEvmpnj>+jqelqlm*D#+s$G78hUx&miF6W1RN4lW*^ouCuQ zsW?0?v)C`&T=h{Lj3bk!8$#`p>f5Ig0YIoMKRRrdBd~{1Oh#A) z*w}`^VN~61i8K7jy<}`F-x>D%aaeQ^+$%K=-*twsutzU%FbBbX3Yo+CKg6g{zQjh4b{j28JV$+UYVy(|Q{>Qd z%9<(^X?R2=6Akr!GbPbyEE`Dw6yC1qHF{%Y`J^vSp2FoQDG+Rk0zXkI>)GsW2ge9q ze~-PIo%97FKXL++rsp@NXVzxoZF?jqx-v?rNPc?=;=~LJfjqN!`i=TNV#=9YeO3At zNC4+uketKvhy1==dz2=0vzY*4@*+QkKxxM zkKw?cu0q%N(=~QBPR{H}wZN_@&l~jno;BEOTxMOTo^&A6bf*qeJ*Uaw zvd2XQM?4c6#XRg%$Bv1IMR$H?p<%m8&0KhY8sOcXG~D&=oSd!~m^+_)N#9)h_cU~! z#{s=i*GhB@NPf?G053JAq7pSwl%P=5poSr}@gt2J+zOQ-TBSdCmfeKeR-!zI>HVxr zDc@?H({hBl@G1WLd41*UP^hrWMs4=`^a8=ci&X()W4Etntt5ilpuBBp2Otx>d_DK= z)THZj%%5M*u>UIZPi4{3piz^FTS)g{mJNYqinB1EThf{UOPOKNHB?HHtgo6qT62d8 z^!=|7i}`8pht|xKP{V7LuG`oa6N-S`E%>h`np7g`k*La6CMG76BoG&2hb_@&9Wmax zG82yAt?`T)Xit)ku#IfMZ?f+`k;N#;BO(kJGwaUjwY*L3$ht2}>+ewBS{oUHozSBJ zt<3!wjey;vKhW%{)zpCg-OiO%y#Kc^Hvx4j=w}$2q-;rsT}wC@-(?UcE$y|*EZLySNasXvA@W1o8oB_IIn02Zw zP`%G}j3RMZ_14zcGZc9&b0hYSJ6@rAod*X7Vt-PP;>0NaCNNyDH%bZu?j0xK?`jJXPQrY&hlJh6DFDzVg-eR-?l7f%r1!HGuaRnnyALM?DzuP$nx zjVifY*ax4X4#X=C%nnO1?f*q)W@av-VvX+M$VTeihluja()~bjX|_5y)cl>ITo2@| z*I-`pv$TK)NbmAUj5(489>i1}Dzlv`)Is_xdH z$uZ62ZYL%6oXO`am&`157PND~tTV-9Z)fiAE~Q~^?vAUvzAz2Iu)^lTM}UC#z{Twr z2#n^cZ!~tNRaw@gD9`~RnI6z0@Wmgz%vhLuS@83)aS5|!!S~K48052Y=`rlfQNO_b z(FD&~J%oN6i!7))+E=$aJrd8wWjZ-Dsei^{(rUBm9|0&47nNF7@RiOQlNR3Z`nW*& zMet^m`KBKnUJUJ*aRplN59bNKgG}#<<`~bLofH<`2^huwB0vy!2Jnw(F)7_Wizuk5 zB!V6eUS2I@KI*TUO#f&w{O}y$N*7AiHY*o=aw^l$pT8=V8L5S6AxVA5_Qvajfo-gE zFH~s0SqLvH>c6DYij@8$kTbLukXEJOp=#RCUoXmZi-lBKNcwv zO&gRHFHU}E6^Ei+?E8H0fA|tZgh#-VRHjFfCQS`pVeMC;Rbli^@qpIz86X;G#2guN zNOLkr)XGc)k!$8DH(jgpf+XSG&NX0G4n>VmgV>yy_DyGwnuXf`R8|t!aq`HKJMCaT z-(Sgkkal-%eLxn-$^j>qiO~&4nr3LX;UyTyvRlQ=@`2@CKVtsP-)YvPh|bb4NtBcf zbw6LNcdzV^UKhASJDWV9weq9RzF1jF2MPWQs?C1rlM*_+#G5umpP8zmmOHo`r{68S z{8LY>+-&q&O~oT7*x>9{DUW`81DE~~6+`B-3nJvuu+K0LIr zwT>Fx$vy}+9HNOyFdUAjw&_>->RFW<boF_m|C!miPN~jrQYATH%t`yxGq+MP+%7t!0g^&fPD~qbV%W z&8U>NmR4tn79iRLT9DQ+w(If(?q2U)Q4H8O6pUh$W>YVE7 zIChI6BNv~u%tzu=;&6#y!i6)I5oep7{y+#TEG2A0VW(76$szln4&G?o#9yW~O<0)U*N4cA{NuPmxXtYl70j%E^ zU6Ce(A_zp;SibU~`GH0Ar>Pc0GGee%h59VPL}|<*QSPrEFmXLnZZ2_;(ii*G0xSfv z2R7vT=zb%B7eYEkE6$plpYOloi;e`CW8$UG97?9brv}^ALp-kfh6avCCY0o_f+X&V zf8pH9*pQFH^-CzkI?$MBdgRS%P<1usb})C!v*J0D6b;$S^&6wt_a2hU3a=6%XFpm! z4-^Nm536);p^dj4CtZog{lt1*@oYiKw{)z`3I*yJ3`>+`hV@$1{>9=2RLj4tws;%t zO=z+tXbcL)seb%9yMq|M6o*!WL)#g4=@G;RT{VrDaI7{KHzx^jBdPOH$~M;5XBQWF z%oX)tk4-!0SDu2a)it-Y#=%VgUR}o``(uBffm!BwNMfo<5Ul&>mI#_OJ8p~ zKVC^QY?q;$=+i%MN24bE5tPI6zQ5me869`z8BixL_z;c$K}e8+Zb?)OVWEaKi|-(D zcH=69=d$6zl-0`-WUe8H3FpEARxMDqnJ`(+$Y>GZ*UtDJo?Pg{ueS*ASt*Cl3{ART zCHwE0zPI6^CwUu=TB-0V&cM94AG|1?R7@CTOpIo!}~Imd$Qpq)}@J;rLojOl3;(j)}4 z9CnodYVjk>J*N-(Rv7q?t_ zZ~HJoIxRMU?kH3rNm4T8{+twGJ9m;abN~&=+i`@5-sS41j@LZ4#=7(1`c59avoU6p z5qt5xi$PHG%%7UE#?#YWw2V@xpdAKy)aX{5o$6FbJ*Rm_23!3X=BB`mbO63wR;9`M zeXR#>Y^B8pafDcv%q`3~9hVek-;bI5UA&(AA4Tdr4Gb5t`8rO9%a8{f$iVo}S!zmq z7I**H%nvB^c~sT0?A&~!lq|c1aBYS_$Uz?W#7U(|Yl!aO}a z?Kg^R_kjRxG_YDG+P!ILu6rDp=p8G7VaeR{M~b{M_IykBK@0fTJC(7~5)&sT$p5SD z!d_klde6`hf^i$*PWRb?=)d2Xvp&2Wh`d+W`$A?mUvZ>FAYgVcD(-|&QEaX(3oEGf za|3D|#4%i^GfQeSuEdiJHKZZR;bP4}e6FV`i~8Q{u0RAp4Ng1vf=O;fuk-cA;9Rf% z-ljTbA}oQcw3Mrh8wp@CWSR$fHV^(;?tpyL7WA|#?`6~BIk-ipXn?0+Cx^VBIB|vRvR~K@3QrEZbr}F9=!G6 zCU`m?_E`PyYIFLxAN~O;uL-F=RQ)?=%C9?(FC5O}c#j}l8 z+Bn(Z6&iTKnz-053X|K4SQ+Z0)MSS8N_NUy9eV?VDxHd{GGlmo=DHFXg6#p!jsw{L zV*!KTaVQEiJ%!p2gkIC$@1A(t&gLt9W_CygippyFl8!7aZSAcTTi6%3yrOx!Cn{{0 zO&EYQ2!j$B*7xmbh_t1G>lnWd`(1auKW*W%ylnGyUZ0BSIX;Gr6JF2Wq1oXDYFdqbsHm^D zcSfc{JDC$CBE98N?=e$mNs%kSxJ6%p>WtWilfFX!!$1P0dExvVTe`39rZfopAVI;& zv4w9SHKR=Azx^qQXVb@7I0tfcbb5LO0D3Ij-?E65X`CO|9{O%}RmX0pV2EKH97{A= za5ev0IhJZ>X0zZ%e!Q}kcUG}>ci;R48@WHJ{ZprKmL4ayR5PZdgAWOZ889>wOzzn? z-`;J$?9Ys{v|goKg9G&%0LPxc|2tUM`|geukC-@PNP(tg{r7(M&5!llH>b@Eu&{S9z|R%7*Bw${5GDavs^+vdCG z*IG$e9-dI|NN?3z^%n3-X3<%jonB71wQD$8TbbXO-&o0(F-xe<7rTJ`9Kr~vk{^%# ze$Iw0W(y)OaN=*0<7QGOT05VQgNT+gH#gY}(M{(erQbpI_902Aoh{YaGva zr>EzeF$yi6{(p2z*bhAfm)F)778aJLyWXP$0hPv&M^^gHQM6L^(|wj|}#tBp%u1PB0~0 zmO25TNXM58ZTJBtNX86(tOBj5{1J{B_vf6=Rbb14tkDYptFV7+jPX5uxo^MDn)EqV z*}u6P&`BZqj37l9Q%jQPgvBM-U`OzsiPilVtAVi?5fLG+FdtVG6=2r61jGr@>kh;` z`~5y5qUTH+As_z@T_9My&kWP{de9($kFaXSSb)N`_>?Eg^gW6$FBkUoHT720$D%7jFEolgELwxT5&NWV4MD3Rk_~KOCdJ=F0XPRqt!` zOfB+<^?U3PJIPh5q{+`$V#`ihZUOp68@E!`eT6PoKi|v6&c`UB*JnYg85n`~+(G4# zuRs4?wQj!t!_0ZP2^Dd916ZJc04nsOL$$<8h+ntu_00RtX^{A4XKQzEBR99qzUf~l zpwW0FeeVPOC∓Gf)R4Z8ouP6wLO%(2V}VkE8LgE1Xhdi)u2 zg^G|!8x$B9Ap~gPU0h{hcPf{?KUatbzjeM}6p6e|zQ0Vy_`e~U{X`Wl&-5$K;V;k? z`+Fx4p?Fs(ipZgmCc%*;Z8n>>uy1C@6{w&l z#gJu$nr1anMnoN5p%JCiPZ0qV`W1C=`YG7b`C{t*0I-tg6{F8%)Yvjd}oqGAnaIThFu=Fk4~p+mEBo;S6ZM#)8@ zi~2GJ@{$uLrw#T*xFs1 z5p;HJk+Zn!3y5rmFCAkZcL#-kfsU3zUfWmSi_Rn(xETH9U=#?bu7uUYMtHY4rlrD{q8GDUPWn5;1@ zpkBWB?sOHPx!C+HBm3lO0!g8#ope)5;QY|p(%Rd7EE(_We@!LJR5%Af=MHV zD!XyA`9>R2z_+~vgp04#W>k=7oEK`_KTe?eJ1i$@`0QEhzYg4YI0Kts|BOt-p^bLr z#Ts-VbmqfZ)4`eT^Bu>kq_vjG&$?((4qF7~BjKgSR5gwfT&9~bSfe8O{$$Bzq0cKzJv9vV~|0OD4hve#wq)+oTx8tF7PD6A)~rBA-VBywhSiC>Iz z)OfZTMVs4hy`=!SlRsWzAGwrPv{w|=7nFn(*QG@wgqPzmj{o3=x?RH^I3z@qb)mO%RV>O!bIybvw2Wi9xku3ts0r4PKrch!;AX^)t8T($mrhCz^D1lpKOaKB|) zB2$Hbv^>z^=!I|6Z+~{<9_;=;xVrJyW-bJoF3PSpd3$LV^8GX^Lu0gTLXjoypeaYY zorau`ocl*OIp&dUG#tymU@EJLFtS_p!+Bs0VKniMZ>zgR!~z^1GlWgDc0x>c@Vn~H zg&`i$>#4-_w+k?Xn6a_d`5RbxSmc9~*%&f}L$dl+a}lmog40RWONHqc5z5LVuZZ@V zzoP#g*t3Gg8U?H`WVD7!3S0=j0?*T8auwgC*_p%U#Gs)n0t}iDb1KFSuc3xr;PNxl zl^yI`=(9#>W|nz*nBAa_2SG+P-il+c@s6yYukmbEXxdHwy(9pTSSD@eZO?(ox$pbs z1X{=5__ddpayG8TXZK)6OLMrYDvpP&-;_Tc^1nwXj!1h^P(cv-%8@?)RB}{#Il&bf ze4SZe|H8&LH8+C+BWx^1Fdc1GFPoXP1B=W!g1qm9S+4~EfpA}k>a58Lsv1M{eboiH z`2{&)Di{ZICrmhiZItVxC=!+iQF1n(yg2)e1hvw)-PiePe~YHadMOgSlVnz(t2W2GzF}EU?N6CXv(r!F)e=N>}1IiJ&thBBrf8t36l6m1G&3= z#Gl4r6Qsv%jbsFJiF$NNEUm{Qa{l+L#I0_MYGs0^18_70tgR;?ZFidt7MyDpl@mk% zrW26Z)w7vRsDyb$Hh*wJ<&x0s&?!Rgq z=6~@Fo0o`X+^u{cRoHwUjsf>^G{3a~@7^oA@(U}U+=>V2TanGDfg<7i<;eGoRv*I= zSIBQ0rcd9Y!%D@u2+7#d)0cBHvx&0tbQ>LC0U=jFr=Q+UESwpy*Zy z^^h*!Z2pH}S9&#gmvbOCjL8UzEI3#!u1L!oh6pe3Yhsjy^I;oKe-!qcw63QSGpq@! z#lozkTKjhfQHmc<3|}Ruby5<<1cg%N7+<;M@Ojiil0@QYQ041azL+2wK) zzCoCW`W#ooN#Kv5@TjJbAD6*&ENU)jt_a!$Oa*PYorl4!zL$}co-aEZ%-Y;VWdhit zkqHV%@&uGH+cH$~x7B|z0AR0Z;Z3f{6XW3Gh%ft~iAC$9wghEth)j!pOu^~o=ix%X z=|(o>>KLnz9BCTeNlI-z3)TR{O{7ds;?OTYr*az-u&hj&s7N@-m?5hq@KI9_OhTi? zFyw082C~a%pLqsg3^ivBxsd4yEo}G3C-~7~psoll-F5Us9S3rxXW;npSVMJD2e z`V)%tB$o2G!SI5Uk)8}^q9Yq6w3VL6fJ|{8o7I1Cb@Q%}=cN-@_&V)+b=BdLliEmT zk}DUrG#A+s9SNs6`p0a4nuq%0Zv#JO0!x#u)a?D_okLc?%SZ_ZE+2<{f+tyeY5a+P z<%4gd+3T&51r%|6jOuK5(JzNk(8!QN_DCrr3t~7Li5`3p7%MnI3YekOT@$~-yHocy zzvl&J?Yr~yob+@tql9n?CK4&K{75)9NIXUQs09tYbxURCdDD*irP-uc@)!K4fjHBh zLIn@nr{{Y^|5(xtxLJlQMa)JaZ=Gw^-nd8;XRbidjRTmUS6J~!Q>w;@ zo}e%gtYXxhn3FDRy6mXZ7U*QO0r)E~9=>io5#!;L2=hK2lvNJ=DoiwV39CeR3Hb!$ za$-LiIK$2;Oc;e@`<3ee)Dy&m(V08nxcUlt1vP?DmvNQh4a)yMFhY^YU32_gAj>u7=1eohX_^GV87+9Z!Ac@a@xz<5sOd0k<270c3*m>6&=d>8 z`%dFqNE@M7oSdwlhoWH-q>6@`iw;lrO&8X|Z|JEY=wrMgLBKqdE8abkW<7OAbh9i{ zoU8|yE?dz#dr{8QjKAl9@&$cBY}=}L9ibukI()#Q-Bg7l&YGqvXm1D7kdjm3#&O1E z=Sh?0G@n%%PfJeTzq?xiB5J1Q*W(mvInq@5v*ZgBmgX#xPfUm6n`XJZ+U@%>SiSsiV)Z!qJx8I|Ftot0B9M!Ii@ zPf)T?u+re(xI?60xhS)+ngU8Fy%8Yi;SBrcy~fV>KnGPkxZlXNWI2-p*`ZqrU2ia( z0Ky}5Bm=s#=6a~pDe=gb5+A@TFk2A=iGPK{pbX-kLD)jT@4ojv4)?4sw82y}YBATvJ}P;Geuns?n31-GFC#@N;8v%I@9~$IjNF#kZR#!88ndfYwg7@8NFsD-N6kg0#e0{+e{*=*bf2DBtbmB;sX&y|gCreaadE8$W z5Hly{iyy44X~iMJT50k{Sso`7uGW=pPXsyx0?*H#*X^Wi(3e1r5pBYejkR}CoK>l& zvK>>LVlu;_TdXwoQHT;lw(Pc;W5T75VQG7jd5dPpD_9_D2j*k#ApaBx8B`c&7qi70 ziOMcHcGXUl6}4HAZaaYaMS=F~DaGi;sO##GgR{{;N|bi!Us|gn`S%t^b-vy9H&(Ph zZ@IiZWq=2pKmJ$4Yro|1<}*IOxbE<(ZwJU#1(ozyV?_l#jqNaVNO=-7Jrz5-P+q(&MHu`vD+E-BW* z#P43{7zZvOw)`VbmAbloA&xT*V~CeTo_K5RM#3*?n?HqY2(6`}PWk886JZG&Jydf* z?>9|4ay4I)<0I)WK#|Rs>_3^WOX*?EKkBxsV}Ly#gwyhj{WeUO_MQfHNulCfXVMUg280UlIc|&rb0}WE`mr?D_h3Och8kj4N!tU zsSH!`1cg)GQthn1boW<P8H})cp z`5u{P1pZP~cD)SpUa{7H9EtJW?LGH-7SMY?*67^jo9rf@TUa~(l%`0P7&|6{-ZK;N zH^p^GyjpzoR+ZeuCHx5}kRp@Wm5hvAGYN2yL0!mj2PV9iEqD=4pw=A1JKyClv}ghC z3TG(Y7*53N@ImcA!_2i{@QPACdMg=niToU^IKJ~kY0;-Ad}{X4BNu{XP{Hgc^-9#@ zoU|jri%@0o)!iKpl!lpX?BZf#;eq#TIl0kp!QMj@l6%l1w7xzRj@k=Uo!86qxv(Y- z8*qq^f7V%K#zORdzDGd?9w^aKQUA?^^%Ae)VkKCALejL2pJjZ^V9KK#>d-BV6{M1m ze@1fKu0K7GvbJuIFy0d{*?(axxRvTlv&^L;#M_>uQv<7q^)3NAZ<0Z~r48Ntwbv+n zpB-!cXD!`b8|_`sCWoL8L_iTXf~ey7jqO^Sp%p)x9LLuWUWjRUs5{E&=E!?i^~z;p zgV>!kM0*46ZvoJNCFC36ZggMVblDMtES#>@3WQp!GKiV{(WD3B&G%?%omBuyL4fv% zmTDQGu5+LrPtBWzf|6)V{ZW7wADT|a?n-4`9dyu7yy#lakk)we^E-2sDUykwHS z!z&mY58H^Sq`#aNf+r3AJF)=wd&KulE))T-BQgZ&KjN~4W<8u>uV3x6lJmd^#~KSV zG{B6q4g0tF>jS-u$K8~Y{^uWPCCLgf(yd&Gt(sqs7PjI-sB=(4Ms`xM*2kBF*VnD1 zMb7Ynu7h)XpV!s5Q-$}ZV-2C5;RBLRpU1XlU)ynoVUIPnUqU>euaz$~83H^LrRV)) z8MCDG6C7z~DSj+2s|p4yr2S?gJm5|egHQ0`U7rXV))b1rD84~oYx)uh1Hp)7QJ;-$ zCc|+zc5D9|8ww_DB!dg{W(U|f+HE(-*&{0Osyuh3?xbT=2|e`8vduaqL*6{0q*o(- zBOqvmt)+OpbPETs7sl9Pz>k_2hS<_VpOgIs8eX^JP+zcS=%^ z$>)vRJNLG`U{)RH?N3BZn%{p)hqKjvCQq!xtkm?!`3P;lfUyWW3HR$;BEd=ndNdZQ zDNGq1_7#nR34J;qvMmxj2lwS@B+E*JvsAUxPgy9DpShoDx3xk~qLO4y+x$glYs_ws z<+%ko1mi~!%H~Vi`4ON>qYSJI!}+Dz<3(dF5>Mk7T2vW8Akg5>rA0M@w)QGu=Mb*} zF=7uouk!Qnv+6j!T+)_ncKCGn1OwiMX0ZpU8y0KFIrRQ`ui~WYzrl_ud*^olt8|%s3g$tSRL!#dpaN=&%?f zqV7}A@!Q3DsLdHHt`q&J zpYPZmQh!;IN=`j?g1IY#QyCOdkddo)U`|DceES#jzp&xv&s!2H2^D9UluQgI%g zU(|gL6?t`ZFlka|@y?dpf0?6-9LHw}%lsir0he!W`0E1_-OsanRB}!XQoQmYN*hNh zzGx?=_ZAj?QTjbPhGfA)jAKF~f<89`1o2*R>qYQtl_9iPEg*-AEj;#STBcx2MBqoZ z?TZ%nGU|_0*+Z}!a@veBq-1aIX zlnodym_}Qg(#v!pcxd|?>(IxIr=pKOJ!Mzz=N||`+8W#bMcKbMHoid0^qes;Q*rZpRQaRoVH>%LTV~R*qzeFF6T`6jSIDPTcqqGsVH5r=X|tK| z#3(8ZAKFhJ>!~qhdJsyQq6Uc;N8%H~HDUBT|C+L~h{qL1ahdt=!$BTLk=gHO?ro>K z_V4%ZZMV$l9*_)>faN$)GQMh59f6v$t~uuDQm@RUI2bI=i@K&=_SAAVon0@D#z!z6 zaey$^P_Nwp9L3aexgm-Ok&z9h5Xd)eK=(DKqmG|d8TKy29Xr*L;ufbO z*zwOQ;lGPZQ!=Vos7pzPT+%w&*nWUuk7~#!jhM8wwrau*ddb<$f5lUV(J~Nr)SSJU zDUc%v7`AV5)t8Q?zb2I01L4tXSeAyEs0W!CWC~{Mc!l`p|ICmXwOhgV=3k(ofIzM z)9ce;xQ|$d`Kq$jYjwL`ET*XEGbIufV*F_)%s({Lc`_#C6|iY&t|-ODpU^#c)D1UC-ep516^r2 zVqI^*L+H*QuIg$_zU z`pqVm+;Jy1mcxbdsN#2J#I_aV3TYl|D$!xU0hA}a!`ow=W$Y4yBjN0f6oDIhWi%|$ zKdaN3p1xF=k#UR*s@}0l?T#2X`La}dHz8~@0VI*sD3r+4q$yG>4|`CgS&${kYjyS0 zKg-Z6hd1Gd-VpE6t#VRGY{pZ~`cTA8m?)RHs0t_in;7s+m7z{o8Mfj0sD*K~VB+QH zer^mBI`y3N*_X?{Z)@!MhjQ+HAh7XH`hIEu{?q~l2{{&Jd#q(nG~~yh9_2H_d`VM6 zgwui`-m|4X#zpZl2*(t9Uq~9Nh!|F8*d1y1To&y0~OIJ{|Rq7H}{f zJ$Ec1&_rp6J@pUtD&)yn!W4^qmjCYU{rndeNuxqDynA(eBU_p(Kk*^2+87X$b{O`0 z0W0fn*Xb_tq-o(LAS|Iol_^aL{2I`pTq5yVJ=WceZs|W=mzLJ=>4by?V5RH?ZveBt zo6ROWKZh0r&hYZW!hXMz>aS{6EaQ~#<_J*>p@wEGME4;-7DCWtpV{*Bjw1j=E=86J z26W!wHD+#g@P&xDN^I3<22P?wOC5%Od4vYc^t{CQc-y>jJJfMrLtrCPQ5n73V;mfG zmaS3VO-C7#OwIBrca$ZuUZ5kT#EGUPa%FS>&-)W>6mW@@r)iWQ%N#uIG*(@O1~a<3 zun`hUmnNSSK`n1^Jbk}$mI_^vn5T-q;)@L(Un)4+`}UQ*p71@vU@YmNuDjq43S17yRd&jiVMEOc^?9a)}`(0ZIa84i#`pwr;9 z?1ZYpm|PpBUDpslo68yxTTt}HU~XEAu(ud_aSYm!7?ppHTaA#AfMr~To|;`*`VVI8 z(EqUjZpqr>{0|hllB6~yoN5GDBq2MVvjt+XS$vsyF_G;1y=*<~>dZ;#2*j67POTZM zDJ+^dzXt`+Oj&)V{o77YN#8G|Hf}MwvO4BRgM%NJNE*2&f%RmmwA8zVCL%h*` zd9u6&Wei~|yxlU?aV>=I)`?e2W0AMZ7}kyl3?_vZ6uxa#lF5Uxs+5$70#%0o@}9OJ zhr!Gaz6x90SfoNn!xr=q@)g|RbXm%e-227t@yauZCJ}1I^@WN{$&YDY%uzS=61}Fk z`##YL3Q2Z5^-8OC7N)7qaij-4 z)hMw(mIO(DN~0Kbq?e`_m4#mGp;{Nx9Wl%z97Yr0C0C~5yGeJ&qt5)J%ahMkA zp|h(iAZZ!E6l>t#=oJf2NORUaYk?#{z8x3IDRWvDqYWTcmyqpAn6^TG5# zO+Vrhtbd5&KPSx9pz0|li@=OS4l|`B`86F5N!Aec#seaW?t!}DbIWH zzam8c5*PecVpB!>A__w;ATM89ik^*5d^Gkl0Upfudis+60!VDHlI;CgJ3Ftl&V70z zn-_m^+Yf(Cdf}Y>wznEj2Rx(hI^N!d5=1fH<&_YIMU`x+!&nTEM_1&Rds#jsIK-%g z+lO+AXP5m2M~NV>>@;Omv;fLP3~&ujoNbUBmMuU3T)=-I&3I)MD1SCQdBMzPaDU&% z-253Rd*)RVxeNyh0%6#C&!rljdlmMtTi%=Z(L9}}NvyuZ*V%8oJIR%qi>p}*O%=nM zD@ih;Bc@}{+tEF^ALpT{PZp@7P?BO%{v4r%g?e=NM`29C-y)*`@kUo7y56T;0HL;( z)#V`(LWmH^mL{J(YU;r!D_=B23l^>h%~g`28_}m&+gD zxSyjxNwM}^*A-B$-N&{HNlXfu#X5UN5No$6Jb zWbk6Nf}-%-X0=0i^)o)v-~EkU@}vrG*`SZJB|vxy0U_aF^4ILt!~Zl1r}4D`bh?C? zA>A&9>9;>4;o(D5yWtix>-O^#KyXEwUWiUzt?LMff)W{f3Byk8N%BH>0)-#5kb$%a z>k=2li?(IGA6_$X+I5Y%ab#XUYT)^uj>Rb{p#JI+bD5x;6;TrX4#vX&F}N1Hqhy;8 zJ%eEA+_TK4B`2kTdrC^!>K?w_{Fduz4Z#n%CqL^>12g7_!Xb7;IXBIUHHqaHSVd6_ z%r0a5UQY^M<{t>};a7TIj=t?M1Nl%q?T_P?-mirE*DH-3Zwi&3%Z%CgH|9c*<+X}@ zZ+$8;`o1HVWgsorm$in8vt+la)s;A>wK}BbA5{4&p&79ZnF0xAhM3dAvQeZ@i< zmYR6pACsY084@W3${m$Uu#llTEh?fau>Fw2zk5R0_gu|vdi4yy4F5DY zd zflu{nvbnhlk1`DAOn|5`GKIOn?l1PrU&0$HhE_RDJ~uW_{(WBXLBHT+MNAg%_a^JQ zJgi#_VvLy^ z{T!)N`Yh(d2(^ibL9eX$)B*vocGza*32OFQ@YC00eXyj?4~s(#(yFVgFU+V(2tLxJ zP`ppW$+a&n zW*LKBu#2C#0Kz@{fDd(JW6IftJHyW2UZG(7&Qy^iMBCQq#(Ms2m98gC8;O!5kDT-ERGS>*5k983|0S%D)4b@Qzh(y~EGF~%2TB4XH649dqV&Y9dYN~T*SlV-uoj`(6^FU(r z{&q<{JwLw(u6zi)UdlUMAJJ{suauy#3^ZC2kfYfzVWTc9Q`5yl_+!dDe%i>o?|bQv z%fA^4SJ&P`t|@tmS`)Sk%@*yEl5LHkKm_qM0O~uc{72;#iUgf)yh~VAnsr)q?gx^? z5df^>ymE#(8WB+;3LF4&%Q{ftnoIiXJY5sjZeEe9Lch6b;72QoK2F-{e!UN0_=7a> z7%gS&#sZ+f`&?}%Yq(ija@E66>IMRiU4n1e=h@n7o?T_eLX%q65GCxVYU+B?iJcq(uvEz$N%(qgcg?<3Z<$-&<`{}}qza?D^jCYniF z443q}Thk@*nLb+yJsP+iQdV<$NG!ziSD9K4Nv zw$i)5F%hu(4wb2doE?xqPq%*d-O>2`_jv8wG0XdJ?#TE1&9%Ub2=bSSXHnm`XA##o zKso&UejvOn`tz~z;oGaI<9UQLX!`_5rxTyh*FSY|E*Xg|M z{b<-!T=kWhcl6H$(wI9|I!UBBmex8_8C6oM=gc^0?gmICeoE%@Z;YWTqrQw`WgN$v zRaG$;`SP==$j4uI-r~T54Lr)8FDNJgm}eGfE@~k)u}-WN_D&9?jb{UnB5;3Il@fn% zcT@XUjn6^{{8_ACAg97Xkuk6i8+oQOKioK7h~!H);3&YaB-om~|1^Zy#~+!K%ltSyZbIdSYTi5+FhAy#hmB3cXsKH?yb z=z)hkXVU1~tYBP@Q*Sx5P!n*TQj?BG2$n7-#UfP3B2=7u0aCpJC~PW^Lg-a@{8V%E z#*ow=i4dER-}8Fa`BE65JGI40&O6Ra(tX~S8@Rqh{r>dtK$Y(;@&JH$WhwKSX{oB( zz*$lks0H<4H1So+YCSW)BoOm$Gt8L?fU5SWOgANO3OXEBPkPb4l<$2H7#U z?y2xw1sge9JMCW zUAh4uAxur7i#3Cq?{Nb+tqoj6kK=}XeA}jb+dfmc)n^)fG6ZjgitqJNcU{;ecx}7e z$m7Iwt`OD#>DY7b^z!Wd(%q1P!1=&KRhlmyb0 zOjmz_{`yMqng*>j?EaTtnvP%f!hS!V?o93d<2C3E4N(L2+s%xMY$IMG(We1+(|u%+ zS~f5pbWrJ6t5Ofc0vz)C75gX&Gk1=Z_6daD<)m~ejCe= zgXh7H%a=Nf=X>F=K1%|Z66dE}R}A#EJaOowL8P`+Exs-@lglz&TrhypWeG;V_CeYK-;sNs8IC+%L#J>&Jq~h541^DF8tlZN9kWV9)L;{Vhmzl;u4Ie$8|??ArpxAc5fDa4tn+?O zCN=1A-sts1jb?E`SWn$k`}%>Jh_tY`>tGanV8W=!lkns1?gqf%khd|tv1I(9%tYs1 zW5|rJcsBnbfxpHxyf*h%V(_g?5P@SKp1albu!S_gg7|i3omHmnxFl+I6I8}6*@~^v z-*rU%ympM0ilIP*MK^qlOqqpuC&dABB4=;Dg*M6GEA?N*h|npbON;#9Ehw}Pl@A;qidu;Vi)*wAa`LPW%cEUU z7ncBAbsLT?OONt6ZV%XT@UpA38X)R_ORda=U@Q_xLZdmfiR9vkQma0iz{T~^RtB~wo>&akwcOx6UQHAP&D-N+5N1(oTJX<)dn0UOJ?WvLNlw@}&w7MC`&v+~l+)nbO6)|-N@lPxNy zl}8x3h&y zD_h^U^6hsqG0*`A0ql}}$b0b494A9V`$3nk=rZ8ctw9vDGdHLDv|2qJ=?RsZmui3| zjR$`gRCz-qBSr%Cl=6DCD~&pGtJ$o5%xs;t;6{?!h7Z>z0G&4f>v&ar+(UMJ+!m(6 zQc5bEg5runkjviL#mQ;Pa;>0Azb3jG2S!e6B3p=Lray(!+rLL*sJJIxC$}T;BZ_U2?o@vv z2W>iw7R(IR#)z$ievN4jrcAv+Alv!$&fZ>PvW~yPw#_NzdB?pbS5X-c4}$LwSI%^A zQg8C=S|Ji?zOiW=#GGGSTU*^kc;8={Ik~YFUpAwmkH^AUi@q3J7sJ&_Zf|425bAXP z-o@&eKWj3#1fQxf13Y72RP6ArlF%`YmLwuq5~CuiUyg)@WVK37}P zn)3+o4`}wIe27ZGH`iQX(#)cC1YA#RS4PVKXD{**D7mChN(BT6epr|*8=C(qz)y0$ z%)ya@wn)Qp$v^da-Rl_1afW@eVc#+^{Ks#EYx4@a(6^ejz` znVetI;#{%*lDO}pJpCXG@?6GH-zl&6D)^xZIxfi8i+%MJQliVu6`v<*qgn~Yz^y^= z_Lo8n6c!2co98wCh;Zi=HO2MC2Xpv}o2ZIVwE`#k;I9gRe2xOgj^^qo05AnHQ|57@ zb6L!x)HsVh=o$7?UpAn-YD};H;&e{2ae0S2#{r|j6Q7!KC)Ux_e%%t5p(^qSJaL2{ z%QNz>t4|L3Ww`#XMFm*L5yh#~F0jC0|Bx}u1dSp~npG$XVC;a%?Cf}jtQ~nK?wcey zS02V-byVLFXIiaBMYS97! zePMV`O_+*<^-mJ|aKBirZ}SmRri;J{Mxi25)YRY;E8Y-=X)oYe8Ut*?$>-@X z+)I*5rxa+-Yvq~q?36qt%u2M|i{$&hjw%9n=!ts*={xdZ>s)7TWZeHBy2A3B!#0Os_<98Q`lG>Qyhz@$ zC*u)?))5YqP40!iPi(0FGQvnoxa3#$@;_)f3+aMHBG_1QNNE;PWyPi(igxrF6Qa0e zwv%sT!BkYcxr}Bi#MQs|o0@vaM|T(4SN!_(-jXHz`gsTyYP1dd-C&Imq7n!Ku6>>D z7h^<+nhe2`Hnt>f5^k0_pXgwo{GTZl@GNazk$yn49XP7f%wdO?REIf^hQCIkHb^Qw z28YI*J;ErhrR`x)n`xFAvhp{=!f&myPvRxYI04JO0Pmd_KY+Otb3ujYcOIc*{y=u? z={xcE8y8QBPJ_gNeFv-}?%vawFGr*A%f7yVyaZV9IyyQAvmmo_B0;bcNWd^B)_I{X z1*ReU0NJ1TYo6SmJSorgPpGV*39&QzfCfkYmh=+}jG%Ev!N5a_5nXoGG=0#Ypl4Ky zf)7KV=AaC=Hji&_`P15~;TH*39@(PD8DEmUv+aelEt-~{Bm?)T9TQ3t`=enI3&HG>Fxd&w z&H=z?#1_oqw&si}-muUcrB%#snkn+%v;(%EQ=c+`@E;anQXL0n#E}xF_ze6o1ByL!rw~wH zyBT91B7Uyt>U5S0T^6H~N}8NP14MZY7pO8$N)3UM^su8py)p4qd$(C6ihGo2;sR)i zr)TvEtYP@irlk5PVjca29aXVDr0Q1cQ$fQUs(1A->Mwm}neUWQoLS3=ytq0;P_iI3 z7f(7Pq)JPKG{`_Jlm#t}$Ume77Ebao3~)(U>SlNVMUrjk*6_RpN!atOQl@)XVpAm~ zQ;tvYHTOVf{TeyU)m@=hJk|p7y#NC+%_{_y+!#$+cB!xekgAf}f zRB9)94pq#nCA%GZ{``LA{q`!$GMN$q8 z^LNO}zx5Ek`zf@y@c_u>BR+u6wFRIAgORx!Aq|U?qDYDCa!78)Nm;Itp{Fmh)a$u* z2Nw4+A#U3cl(m9EbBgmdGq+-<9j|!Rj!Zh_5eh?)$USovp9)C8s43 z^O%bnECEpBEQKVug*=4BReZFTWSOT6xd_#Ah-a>U(@){K;o8FKql8fyX?f;dUoie_ z?Oi0CcyYUT=4(DkNcv%zEflxdf($wymJW-If;~;C-uN5Qk_g!edTr_hWMd=fF@K-) zCiucjNmV)Pdqpa@h5~eJ@ z|I);BtIh3ZEGeJYaUBi_UQE>W0*mB_hu?yH-l?^3-V`k)X+!gG?U}3D_^W~v-G;1L zQ@Z#U?7+%>?T!TT#*k1shsCzXkkvy|6QX$=JjM$os!r zH;1#6Q5vbd9v)aGUI#p1`n((+_t*by3WN1bjsQvphac|^pABeS-8?)vwK=U$=JI2_ zV1B)rVA4vHDscFOD=M5nR=nqVe)3VgFs=qwHUyQ^OvN^e6L>~|QNjm2wmms$lXm|o z&zA>1#qaE#Du`eu!s83W^FvHD1~1Rpva3z z$RYtWG?_YlG*}Qb4#z7_H=2-2!WSv#u*gt-RO$-;$aQ&Ob$LReM)T9BqS6Il=43e6 z!|@%sivgt6b3ZPrgo6XziymwqlAcvy^Y%6`y*V<%_dy_8abw4LdYM1yPI9BhS3pJZ z5@^PV-XwAYMs$6BUNDBs|8@cT?D)U1UTNVr?|%l%)kOHh1;`?ZC1PRi5k4bhA64rL zUA0*7-Qtm(3Z==FL+;24?Cdax#T>S|Kgm;jz(sSi=UKRW*^;a8{lxWx@dXk2cAfcw zdLUo+zg*2>!>4pLti5)^AJ5}&Rny@iG(7=ih8i3V9M+va2b&(SMy+-@MUx>3+~Jpm zNbdMJS+PaPRM?Tw5Cu4H!#3B2UO%9d72u|9ikg8$aIgUt@NhXQZ2JzGIi&HI z#q~@#Gmq);@e~{HU8QuivjcdKcRas&O+&u@w7EmPC0XJtoHRx1DXJooW#HFpsbmLR z4q8@rUQqoo`r+uP@344^!zq>%n;KIXv4OyvbHJul87npYvbu`T!58@EtTqne?1d^V zpr$Uf!1eoy8Pz6A7hc`dcyc~(TRsFL{)5~;I9y7~f3q}dy-HhJfS@QwX*saWBFflS z%}ZV3#D;&fo(vSX+~CH0b0fEt7D}wW_;)XMT5YyEoc^O?U-jMqNZ?hM(U0vbZ$9z9 z34BFOJ=iT9Xo`K-GoLum*M@+}h1IajauSDx%&DOAY*!fuv6>A{_+z$86>c0&0NO!q zCy2;`-6CWq>5E=~{I{27EN%VLv{6Ua|G4YF6Z%1FMxGiBTzVfXHR&`^VJ4{9HjT|}B_)l|a-omu2`NzP zyG!;cHDRBSBowxpwv?O)2hL#|5j%R+5PL_k!-)*%a9dehTu&Ir-F|rf@E0SrXa>cJ zgD7UDb{*zC9Qs}#*`|;0JMN`8R=3lEi$>!%TOfgY0|=!k#}q2Me112Q3IY_(uD7Cg zA5s$Hyj;HA?@38XDJzUtC6aUM>^cin#rmPCvZldQQgM-?^`WtufpY_HcvUEY=f*<# zw!#A5u0MLb?tNC9!cQv>=y2|HA_*mGOi2e(PiA6tGh5D4H6#f}>e?B{09Pvj4qwIu zxbr|z+NkgnU`7=-YRaW8Ec5h8FAl?PWyNTI7^W7T9^jx97_%)Yui;GNr(w{i){k~n z%H~1HeX5vLV*KmFVDozQ3z{~*0*Cl-U(j=hl_z5(a-Tq_S0ei^;;xIjHPUiKxTqU|(hfipd&!`ee?54CW8;;Cm<3&+S$aX(K zNv=>Fu+Eq%BP4!l(5VX5Neh%7lA2PZU|ZbtGCKI{G)Qj(LS4 zayw7-OGl}!$osgBX@@j(7O=A+pw|jg^ZG`oY!9vthSGVxJrNyF9$u|;1KKE*Eye90 z7$d8UZRtX>0MNSsv%k^YD8^ACA`A(_-t@t9;DS=7OypD6u&A_w{uWi+kOue^`zO9! z@vDCmX1l!Qrn=$mv~-FPGb2}mPY?j6aW#P>LHbwdW_z*qH71pBEEVE)qq0<7k&Ni@ z=a0uGyn?*%s+9_RS+8yho3L3(MpJ$JYmlg?;nZ+MJc@xdC*9O;4@f0GSrTsyM1^N& zK}~#xk1X1XHx_&kU+C|Mg6Xf6Rh@-J$1sm;uCw=O`7=%$g52{c%sBnx|m zYx=R#)aR-G1RDua=y=ti`IG^N-Msk|PrnUBKkHVPY|y><}&V^Thc0DIW+HiA!s!L@I8v1}%2Ab}yt&G}UbueJ34K5b6) z9c^F;o5(22u{^agH91v{!lqbkImb{Ati^)1+FaSG+3q#Vqh_(&~P+>p2^xVN)9u{aDxm~t?Bo#s_ z)X1|;v$UMC;|E=r2~jX`h=1IHpI8p>knZ-vJDEF>@cR)wP708Sw)-p)W4;+Wn|peC z`u7xHjCSc^6Kj@ z6$g=YF}FCSsQ_e&00Tjnv0|awcs33hqzy8td7XpP+gs0OwdHD?!hE9B5Xr+ov1#6A z=s&cRB@mlKnuDQ^=>ubglj(2)n*@MK5NsT#m~>Pm^{}B>lF|84*;mHqPFi(!QN(&k zPtUL2l`6*^JtRJrG_5X03>&KmaCND2hodIJfr%^|bo~%3QA)&*hkhn2tDE+`aw_+S zxU0}w@4>mSiuRa>w2>nuu-<ZNepBGY%j!n2X8AGC8~fK&zFFb&qe;biS_X! zUo_1L1*yV}Hm<-B3T}at8)_L`Q?n$w^Lgr`)d#axUuKL+j*^9K=|?O@vgSr0!FQ_p zNveYzUohu80CougM4wn!09n0Qzu>zRQSL<2(&X&yz2D6Vvq>{vy>9nQ)*#Bl{hT)(k zn<^>4QdjS%pab`G`W@`ZjvKA2?OMw}887J{k_w=ZGE`mIU?L&*9HEnr!2538rz7r4dU>Ed?ePk4*pd5hGf6TD>v7k!?`|$tgjZ_^bOXZ$fmT2kO}t1NRInw)-O>k$8r}B{QJju zbwDcU#TVulE6HDNl2b5K~vzA7cOo zIPicr$N1^s^Q-4&kJm7wtVc%1!J}b`W+IyLNEA{1cCioyAN9TpzDb(zub_e%anjm5 zFxw57=}W$Gsl=6qqR633uJ=~9-}8lzAC$i+r*ax18}Xc#Py!2?w7*bka^Q*3bXY3P z4+`LMH=u=v4}cBttEwW?Rf0T?nUDR8!d%a@W{;Vy>x+0S&=%0`Losu`N$qzO(^_m7 zhE^+&D=o)x)9r$64Y5{&r}x;k$j%0u4dP#MtvvBgpbnD9_ZLjDVr>_@lg1pW1G&hb za~_JjEt!jAN7n;?>C$LPkwHyMV?`=aoq#U@)b;C=7djv=70vlhsWfScLd>5(+0oH{ ze}Bsg(6dJ4KRB$`^WU{C%?jO2f zaZ=U)-lUw(0|Q|MDHZ%^Ui$f9?<#E4)GgJSKm12_`FhoJv->aC$eGp;i>PqGCx4QU zoj?b+MRuZw5PWxSgc4@S;aWpu1}DXZqbXtO*z)#SKHbEj?EJ4aQ%cJY{UNrr8o&~J zDLPqY;x~K@0#3DIEitAJJ!`EozoYHU7?PemUw8g^#X{n4mhZ)8Z?|uR)<*p`QemG- zfSj{6$Ej^2i5Ja+IxY8r9Au7x?omE2z?d!%$mf>)zPSQi)+`1so`5f$YZzy?(W(+; zMJ6)c`2MSX5%V|<3$hnFyoXF4@0m&bAYoD3AS3@=;P}u$wb_OR)=sNh4BnU?nJGyK zM^DA@mCy}2(wDE$P`ljLTXO^AN50qlS65fZ$HzrQWJQ1CU4XS53(HI{TJk}YzFD=` z#0Rx3$ZEi-L!>5S)~J-7eJKT+v!I3v{oh@Uoqj+)8T@<#d+o6jWw7;q^=96BXBkoQ z2rcYW(znl#e853V<^yW+q2{7G;zX1<2iWHSw2*GkwPX@Ur;afTScB(z5GOV>jzX-aKv zJOFJ}N%`1wms4)dD-zN^aPqIX94%&lMA`4+IY z}zHgve2i-w@fo&fPhfT047Z{z9Q8KoJ z##&4vD-A;E<)t_z;dt&8}TL@9blA^laNdujq6FQc~G0G!Bz%O z?$ahTbrO7}lR&YMud+7A-1JIMVqGeXLD1+Yvbv!7XDf0qPW{@4E&8W0_r#ZM_@riK zsK1Xu^AFOSk98<|n{LCl-@^}pkgs~pNCT07!UhQ!eV*7$49^FQ8ILb`;RdYAIrXie zK2MUPm5;I|#vDBi{|0>L9rcUT?p2!tjG6P4)QP2$eiMMG9-c44$ZTm0IXx%N!dhNg z=H|)aN#zvBv$1fH>l@?Z;vhB57t0&N@IPIVHf&>G5ZagMdgS;~a8ldR)+{6hF;pmZFdANFpfy~I*JXnN-G-`Yc z-zanTP1#b%$WVg3aH}HpL0{@Wfe1?6tWin=l1^Oub$g^<~F6LOMlTv4NZd z0yBFT2L~r7D?FM7s#V!$-T3O%g_+w^%3%4?zZ*s;Vc*q5A~!bd+lj_$dCBUYxQ|`$ z%VhW8W2{4U5T9cZ`ZOQZfzLP_hc((&@27h=ghgj+6cX&tAu3|_zCLry1<_&k;HphW zyjq5yBCvIG>aqZFpVeQ{Dz>(xof92#$$;sz6s%hb4{;e}p;W?T!`fh!zW(haxFmrg zB#PzORF;~_bP^J;2{Rw}JkdmzUSXL)1bvJMx@8P`CL3AdGz+Sp50H&fSgpUeh} z7Wt}4D=qY?575RgKUyXJSIBqpdF}B+SDFE)tj5MGfc{JhfL^N#+)U*Aey}9<4_|vH`8Kqd-)v$Y4v@b_uFRg(frnT_*$Q>pzEn zUB7rDi#8diI1wzR*F`0@YFHH8OJCON=zATzJSBsF3=qo<^2e8@*#TYW3&8W6or427 zI;EHIPzV2z@Dip(cygRdeoy@?<;(~e$EQ6ISdf(Bx2OpGDx+^1o z65>5I_X_QXz2@4i=W&?}{S|4HIjBMe^~Td7F7GMl!%v5 zJgc^4Xk$|z5`l$*Jr@0``_+zIT*Z;}Z${sM128oG7k+qVy*AI&eXH*|%!t71g_QL2 z!r~(J_Pg7*BhS+2YW5_J(cA(NO5*~%w~BU$P{l0wy)Pm}qPMJ--n%ffXfXT};afJz;k?Ct>zkZcdy! zCML$sKF4(fHEeIb`tgn0yK?l^(dEJ9ER7!X1dXdLW;C~;pcepp0O{h6if;WoSSN~6 zbLep?v%uTk9nyfYm@y@8&o%|V=B{`_iBpQm*ed#}KQ?0X8lXA;ZO80-dMC?L?Z&WT zqGbi`j)jo{W08Alj^h#y%8Mj-a9-m0CyvufrB$tXPuxggiA)=w%2IqNz?xW@X(4HM zq569hgxyy@3=5y{wk2j1^P5wPr}H&cZzeeQg_li`^vOXCDSlc^!9Ws^$PV5Z)nX3b zE9T^aDAwXbK(>ot$f0G+#`U!u8kltRU8Sa>yPZEHuH=1al_3fW!;Lx@j?ythq6TTv ztNZ{-w#MJm-JcOH98imx+c~(zq*>V-Qj$`hr7Dm>myDoQKf1ta{Rlyi&BB7iB6(B@ zZm(#VNspqtd{dn9A1ZLSnN|v>!uMLF+)caFU;k1TQu{$PPXR!{Sey+dLW#f^0j4rV zeCOA{LMc^ZjB!r+`MCp?WJE+HL;`GFd|d$#S4LmG_ojANNUsru)?nE`%82t7YWLXH z*Cp`63eD^5Fj|3+76g6TG#ipI+E+O{nrd^nqnGmt`SeTjxH!+v(+P<&scLA4lyK;2 z-jLo@r$ZYbS`2HHl$Dv*to#C=o&a8{h$w(4Zt^=w&QZ2fik-yLR-{eb-~RV+zAwn4 z3{f#E9H|`xhPJ$pB-hHHBW2Q%CCdxzn0~C}?_O9*1YmmRjHb*|r2hLDSOf92P!TAM z9R*hzuHiU?^i?zfKqot+XL*ISKm8?bd3w60m4=_`?@US>SXUBwqR#S{;ep~IHQb#} zX`!KJ5OD%-$~b97ZdhELn?z0dNsoFkxZ#+r-8YjGr6M!=z_;jRL}=W@4{U|509HRJ znr-YNz}*}vSKB9dBh_GnbT9Rwd;#9?F+FUlNTIThgHLhA!3H@ik}+WBBLr*A9_`_f zGxpz7xtzy`hJ3j>1zWfZ8gsmDIQ$BZN!o(m2kr0u9KuF>G zJo&~D-r8$Bu7N8=whEwKdvZH-dOrGXVK_^n!n`@RIsMNrm%!KI5xw9kY-k03W*+SF z$R=nUYAy&F-%ujyY-nQG@Iw+v1EniTf(p9}xN`FfFD>lN?&N&e@zLz|uZ?9Todt1p4G9-l*wPpbe^oLJwHM2$Yf zrd)GwJiVTGy|r$Braj?smnNgq2LO=I|1yg^y02-*A({oKjIlndsHzY!D;!Bw2d!xV zM07q30k|ey{#>f!WHuVJConQ9IkFv`nBO^n1ydIFp<}9qRuZ0NA9UO{Ir^as)J9Pl zUMux4^@xO{dM15-Sv@Lk1vfhFWKM2wZuT^$Em6}ikkd9N4aO(K6gDSyO7$<%mI(~V zqo!5ywEM*jOppIafIl)dYM;54E zbBX-|YfX_(T#nl^a3LXHsR*24fEG_FfHQmq^hLZs-`^hk4@du>Sbhh{Fdu++ZO_BE z-@x>BSjGCfG8b~c^f~CR&g5|$o}l-B17HqE9GRMIo83@vL0o4Wqo2@*s^ct}ach=^;BXm_84>#LLEAREt(8^f4f zrPi0yPHV$4P_03vfx#Gm&^~!;MZ_#`W4zyeyrPd0k4yZP{6w+@s*rZ5$kZK=JbI$d zx;5mzGY#SO^DZ2-b-twBa4X3DZby};;Ln~Spj>TK^J1^HY_gNufH9o8OdXO#k)DTG zBS5IC6&PY`s|${)N6Wur?Cm}NQ<2oc3%3cRSRFaz0#}y&G*dVjY2m-NR42gy$Q8HP zq8aKv@p#-Tp(Js=Y-lKMXeXU6^lESS_Vo6AxC7FlykENc6S~ID*^kunV_9YSDeMV` zlAtygOgQAW6s3Q~5`NG3)?=c4}FpE45BUNEY{UGY55!S{e+%e<&T36IvxYJKI}N zJ_r7tbn!hP-o>74eS^zaMj8KbYFQ7?ua7RRD+3x+zWYo7d)lY(rjQ``bm-^X@uJE5 zS?TYfXF-C%V@{XHPTs5!^;yzHtGbfeaezm zQ~$|9c|fA7#am9wH&i1@wbvT|6W^Nyfw8IP{MYAZBcOd(5-W{84fD8Bq6g;6Jy zgQa2S=49?@+bmIgYVza;W)wcNnPN5cTS%8k;>}=PZS;zH^KK7D;nLUu_88WBb)J{q z;#udiTtTWEuDN)IlH3a=H2xUbxc24c`HW@j%w0mKH$}z_U`CA?ba>PuT@p)f_Ud8D zYFh+RF^ucl(&ZOfDN|sSb1+4gb0SCQOA`7jND2usPM0_?XxyX<;$#KTyj0~v<9~vu zmAXkYX4vifkq#sekx^y&l7C&EUR@RrrdK2sT_;u*hP*ujLsH873E%~ohX3q87qD|T zw$^{ueIk6&oFeG4u@2#&s zC$oiH9nQi{U;5pY2`b%?7v)K#74&qV3KK^SW%)g`Jk9X1DX|P>!QRmSX2PYw6A^{R zF--(#)aNKtF~9z|3&{EA*M!MU7KX?m{*#%|K;}LZQUS5E_pdc%To~4!_V|(a)4sc( z$kcM)7o`D~k>>V{z%o39+`e%ouwR?nh6>xo&Tj9u2Ogh*;_i2ZZ9I9o^Oz7jyLc5L zC+^w=dMDSuly7Yk!U%PfGqVC7edb?RkJj_O1@*AJNfo3$^P5#t)Mnl7JM-!813ykN z`wi2iy=pI|M60$q*JXSg`e^9LM4Qvx+Cn3?_y z)aiTp@w<1|jVuflhx&iH1!JxJY><#GHN3jU@WG z2V*&NPIbSL#zTngLFoHJqs2RRYF>*_k0@UXS3hkYpRZBI1Z*zOGK&e7E z>Y3@Ssfv>Y)0kcu*gU9Q6*YHa-UKp#t5= z%tzGY(IxgdjRN|En#kfH+Q9yB=wEA$44SN>>_S2~Czo5^R~t*fGI3zyk2u<; zegoZU&);&-$Bx$#2m;R-;w!wA7`4Pp?tpGXX$f+u^_gqtFzFF?fCMnmegd)qhKfkU z0Ar??wd-%!-LCbxKbz^HZsGv7fu%U)rO(tRdg7zS`ueXnz=X< z#FsY{*!8uAd>q8*>)86$2$419eu)ss@r|E0ebFC7d$)4eE?kKI`Zz?5{ujIG}%M44c!ShTRrS>a<(z3R2 zgR!9;bvYJBVeyZrYPphNSxEDji48ftA!i#n$b30zY$=meSV^bnqD21nHM_M)mdaLN zx-=4alzQ#`3XMeZyuK7425Y0ssx>p)wT=Dp#kcwuxHYTosM__{iXP3`gwh64@ZfA< z#ga4Y)jwvem~tSYN@Ql$gN#rl(aK73xOJWytL@ZLUcyaSw3(vZ?HH@G%26`hY*bu$ z-;VxkVHot<9{shl5x!!d3t@FWxl!SB({eH4rSk}IshcOVm{gw<4;x~;h205?EO<_^ z_V=~7eVBg>LImJ4-z=VIjR61Zk5)k9X&0&aoz2p6%FUeOm^Ku`nvJ7fYf{63uj5}7 z-@OQ5or(h^4YkO|q|F<}-BRHW5b$FhBXJ;%xPxvLr3`*F(-iRChV)C@%bN?yGF{iX zf46lx(!L-0PGXV*3>yZ{g8EudnZ=bP#_<%0x1!_3-;==a-PV?1p^j z?z=Hym_tLyP*OgLC>C(pDZouO@mkeO2{>*ox*nkyek>G;@pYgPv`MNa(ZWX!uU)(~-y9$Fk2| zyXE*wQLD)rXi59ZEk{~{xv8qfg$EI^O3%B=G8^mdi&4vQV7k_a1vD6u!huP+O)`cu z(Gi0^-AolXyHWyu#r`Y>t3uXILO}M*uOda+M_q<-E!}aqk7JeY+irEmZ*0q+(FJ&q zhy%&@x}V|@hRaFP^cV$O)v5fbq&g$fB3M%7;52M#87b4)6asB2Nd$=T#&VrPw-6(E zT+57Tq}Q~*QO68D<8$9({N#Prg`hK6zzkAy!I&w@4SEQ=qVC z4ZGtEo7Di}h#P5gwl1BJAKd%6b?9BiI5Pv~@9V3dZjPf6(_$2=KKywH@bc&rAn<}a%uw9enGYA0fqYvq`e%@-e znFAa~-oMwo`$K;J`eW++LcwF}WAiLur}O!Bq_yZN(}VmWmlHq*dGH33RK-YZEf*-P6SgnfQU!azTycdwAZ4jzd`0GbX5 znUuq`3j7L`zo$pg)?=W&+cZMNCSW-tN09SUr(x>xszdvi>p(itF8kT;mgAhOgY}O0PWXB zr7{B}*;>FZu*8*aKwWp*>S*edN!Zo%!{tV&!}!$?LEwMXV^<8&+I+pGloz-AY>`-Z#EUiqIn^eR{bpBooh)~`0TP79Z)qjuiHT^cssx#^ z;{e`OV*+)qCh42BUtLI$T^_ z8BQt<)+|4ic3lv9r@O&t7$GuJT7tQuh{hR%soDM=n`Ifhyqsy7zOurP`*=de96 zvX0tAX+z=eXT^$ox@!>xuTn{jHV6x)Qd{WV|JlXRQgkPZPi!_64oz65a#u9XjH?KL z3s;6Nh0{Z~{TNjwQ~T%4r5p<#TXe;)Dh^uIk!R!uA$2GoR_ZKe^VWt`qsmEN?3@a7 z#v@8H+e0!}k|Yjj8TPoAr2Hr^Z!_Om=))Yt0uTTA*0|jZe0bI_udZ6H*Rs^r#(;HW z;1K>CSipHEBMUY*Gd}A5T?`5N-*gi$0XU}DnY^zBOL=Qj6G+j@$b+@rh&lLK>jUn> zA3Qdl)&V|;ynfSbE(PE2dDATalhjeJ|C&_|9o@B&lQ;L}$j-q{h)IicX)nzSK7P7kTaK=Wg)86#S>FLsWf$9Kk8t_Nx#FCWv@|IDpz zEiVjJ-yRmEL?|CKu38X*g>s`h_$Cb%X=g0;lkAx-+!LqB>--^mb$>l6A2VjPCZ-ct z7!mlVjJPPBcSZF5*3x9qr>TG`{QgbkKDFoUlNnEjI}NM&#X`j8nLE94EI&ew+xoDA zk3bArcyA1$Q_j57+&puysj!$6J9cgk{)WWR{5Ru~@GN%ZK zV}C2eACXgpM?9uUFVz0xmH2Coetg>j%vV5xPHjft`@z@aD2Ly*!1mXPg72%u_S-H; z-$Mhzd2YPtw2 zoY_J}ocJ#22yq888M)4rQZgBI%>h`x6U3R^DRQ^g@*2K+H6fBCPcdp|dz7kjY&&!J z0Mp*t8SoJhXY8x(*y}@GZuNLv<)2Jc9%o|}Kz%Rxn}wIjeb|XdAjq8LsAubJ$tW74 zyX=M+!38&@2x(Nombf+zz{h}S)E(w@0pL)fP9x7j5Fu~pPl*79p%!aQmBt|pBNj4# z9vod6%!j>LL*s8|YX1^c(D2xBF}9bT)ChXeP4)7oS}7vaBDhe1OYqx{2w4qeK% zL~^tz-L|ZS3l~J@eRyA;PN&y#<~?85g?lqq+7#tRb~*$-B_7v9dDWCR?GJYaI?X|) zFqZ-4zp_!6%j^p&iML;VNBP;Iq2mU zf$?3Ylxaf4?-P1dP35X9O1|3``K8Jwv+5O+buDP3fje2LqPk-THAJqlZ{x}=y7s@^ z--$GPyxHiVGwaoq)&)=y7fDMj%Z0DiK^9g9GZTaONAbRM8fRNmpS?(hPgO~89zON61 zx3y(|K$iU218f6-0PEWzX7}~#tp8(`8jVjUj~*GXgm8?J<}Z>=dfE7d1bDd1?KTUI zq?=TjQsp9D%2OgqQWSiA{2IC6cZbt?91dGR3IS;S2CLU>(D6A9NPvY5j)e^hELM(J ztaWu16s)N|6N;R~#s%)Nku1dlp*F7ncE&C3ZF8k)(qXhAYiZJyAdj6l+#1^5b$58;^|T zZ)Z!!NmcSg3`StXo%EiPG+vS_11qX%f~;$Ug>+S`UKBquoZJVmD0^r>ShmjS-~}=f z(<%JPLnC?TAdzXY`8GtPZi6N*dW@*2wEURT!&H>F2n8;1F9}YX8k{M2sho2AHf0~+Z>X`z>Xf=h?4eJ%`zfYu+W`Zuc5CnU(q;!VfJ#cN2b^(l)T zyB(Wo4V?h1Y|hK}v@ycI(~>2MeD_JI@_hHxD%6a;+ZDDcbvk<+dn0S(_FBP76E>+;}ey*s|%IUWxRDGqswYEU+stWyuMHhhBGUiSYMih#E) zHM*ypf8-70uKwtZSDdQIJm}gGY3}xL4*kY z%0vl_JnKZu(#uJ8M<=p`OcEZ}&EP8#uWVxE`|UKXG+DQV)aJcxj_F7GIm-!3OV%kO zc?86PnX}-wjQ$0dRy!`uE=#Y95fTuX4#ki0y|;pbz5yLZO4MniV`DL;&fIBqXw+Tq z=Y*V$*-|Yy7q0I2$(+p0tv*-&yr^NyWDAR|+~SWnCnrFD&G@eD_5FTP)E+NDtVaDu zSWjVPWz;xOqDkNJyhl^pe*St^*Y|pAmO4S^N(cZ51hHe-Rm_0w{to9&717u%Dg#a+SJiqykWfA_aXMIpDh0U z{yUIDL~Q3H8#;w)?0j&Mu1{+m{_#gj(AgEKDbl5>NY`#E|#H71u7CFR$n zOd*(q3Qh9;AP*WYbPUxi#`s>97+y0lfxeWlEBLyv0Hi(Os7NJgwO@Y+8k^3O0Som9 zp})^aT1JgQo4xN|Ac?Av&vJL~)_#J{-Nq6B)owXgz0-pbu+Gcrk zbGt7?seD1I6=sl31~cFPmFkG^NXtUtLCS*v(e*K8>$29BnLdv2u7pIS_?J)(9>jrk zgCf1$ymSX=T*0t7%!qSQ>i&7+6w^?NsR}kFTh0W#MI+vNLoY~@CawC7&4Kk&+}KKb zCb4krlqmJYJF15sLyGK68a24QvfIG0`3o0zFd64;XpK8YkgGQ8hDLy z32S@d8T#P~CsoDbL#NF|6=?#t*#^?an`HPI;`az4;p9mr7R3$bR7lG_IHJi*Z#-_T z53EGl zU2doqb>tA!4~h|#NwL<^yM5G-27rCdvi&y0ke$tZQ0OVqe-~Oo2W$#=3_Q&Tuu$O5( ztL=MC*KydWciJz5Z$pHC;xJ>m30>eQKWko4@H<_Y@jBD_yZ|M9pJnj9>FaySbMQM< zDe#>2*?s_6v3tN(Wb_@}W#I%2!zD5aPc^QAoWeVG#3EKn$7Py`@0D$ zF;tZ1Jc4MQImEY_S6<+>2K3(lTkd^Ln+@1%%70I#$ah+ka(U}qUvFA1%iM?g5uylL zRB463Skw{RPdF0c|E+|!&Ge3gqAp$xa;1^HlTkDgZgJWMNTWlv%i9{@Ha;Q4u&QLOA`q(bXR7W z6I^3a%Tvr3yG~@dtRW@P5>Ns*L1gv>N+puSB7~tpCB?WZ10{LpKuUQ@9puOqmRRXi zMJe=We&ygmr35}Sn4r!iU~Qc;8%UBwFG8X92rv=)mCmPE?5i1?ErqvHgIUn90oK-Q zhK_x9U;RF?AT{Xq<$8Nfnf04w$^Wd*&*#U_j=I6yssj8>TtL7d^+uIB>(cT{x}2Gl z29JWBKVM@~%)bzQidsO~5-axep{!=F-R3X}6pMy=*tQ248Cl ze)pgSufU{p2lOM{k1%+?@5>7ul&HZTJ+-u&vwoWN;WP??3#pLDd}Ulf4&Lx)z$Yxz zl@iy+O;k$7y#FI*uS57l3N*~68FP7dRp0@>);~(@&8?5_3S6j=V+3y%5^w&6Mqq!V zke0vQ`I8#9cWSKS!6Zyyb8M=-fu?Z`T6*JKt4LH_h*_SFI;hUiC#Lls&xG@W4||F} zFAGUe)E;oo7-+mZP=Sl6Gt`rLC*yhD9fniHY?(4ca^5g(%k4;5H&gLB0Nl`SGXD)EfYhsX=jP`JRgl8HuX;C^w;eZsw{3*N^Y}WR z#c}B09sQzDp^n{=M15_^Hqc@WxV+2v*_xmz@Eygr$aNfq1^~-JGEWaz9S47N7&?zL z+P2&mIv;F2u2z{?c{T53(oRj0Qc)*XCex+>ueFqe_Z_al<4wZ*xrM+d@OXRxL+nYP zK)^s>--jK87tkZfxqlC|fdEY;%#JwFZhyYSf&{qDbzIGV&{5;bNF1#*={&(1A^&-8cE+NK_pm*|5D z)1M8RUo=UON)9S*adw5+F+$@%XU}_yxlx)F@oOjh@q`x_m{5leJUVL0XsF9Li<$}D zwiC+{qbn$sp1);P=9U*7{uV_F4JyV%;EZqFkH$GX@iQ!l9#xkTrKBU-c~oE9f}v~& z8M3NCz!S=4YC-VB2Z~pefBm&?sk&M&+|8a1GwjH3vzW~XG-nz?>7q}}NAjET2aV}K z)%TR{lsr9*-%l6B%hsa~QsyuR-(`HaypDir-q+AEP{jqPVtU*J#!Crt@j~1!@1C77 zhI1eZe0nNHzEF!QVo05~cKzpg(NsukOSCkDR?GbmJHh*XKi~27Btg5u_$Bz|uE_iy z1qfbevslC*89}JSgiQcffQxLKPv1K^&k~2ugY+Dai!Jp#nLNDA7ka@VsCKv}`sCZ28{()-Z5eisR7h zbJ~a461*j7WaPsR=jS?_KH+Uj`N{niS%5q5blsR-NU$nZ2rsbQJeMB~k zJh^!FNJ!+g!J1La-!|eV|9-RuRT|tcD7o@ZdbVTO!MT>@4*e4<8%jvvD#P=3n(iPh zi;b1Fk&EQ#ijEfuycJf&Wt zGlp11*tG6R`q{?~nuPX4{$AJyAMCF$Y;ZlfFxKOQg3sEW!Sy@-dRx=v5&z3X{LtmP z0e!|!%vP_y=r`jB8?1%z$#U%z&K+Q17j+kFsS}57}(9o`-<``?k@$#dYGU zLYyQ|s+{GjLY;Sder|7VU8!mfkmZ;fd}aY_q=&BWO&yT3a351D&vR$)wwi-Lb3$FA%-Y!4o(xj;lCwgly&F(VZr@ZQ(rzHe@ zRtdixcQJeGjZc`j1`jC6@qU;vVT!a6bowizD^n!X=er*M#@ubDij|8U5oM=Wu8&0! z{voQNu`ESV!+&(%w0&E~;ST_8-$sBrx~=cwqAuXUrW?V`WWfk)$F-tZn@*z&SVjzX zBU=|2(Pj^wpvHJ*$!2^0u2TYTw|QaA%8}1s#ETzoze(b?F@!12QWr}S^`v$gsdu2B z=bcKF_w+G`5Sm9@|JjivQc{l}P;!Artgk9g+5}D`H={{Y6aAD4-?L0S{Tka+`!=pr zvRPNv>Eml*uGg4uyMd2_LK+^vb7?;SO&@^==HbD~+Rif&?6bkqSi4X6(3ihzi!tux z_;n!Zy!ljCR@T}1Pi^T}U9Y}#Bdp<0E$CVs0+xyG8n&bHx0GiytyZ;cQOUCSyX-+J zblDK(pN_-3)C(%mQ;d$B-$;E~J6TmcCq;8*22D|N4MC_fUB8Fdi`F$2i4$Y4yLrK!C=EDJ3uhDA){?6XYhN1=#24gJLl@sEm%t17{c21Sj5x5vERLwTc zEW#OofuzWmW--QJP;`)#E?URpI9Ubq&zLOzQCLRLT1QAyGBDsNG1)jcJ1N>d-YrSe zhU26YkCs02^6VO^;INqScuXibAU78P+AuneCMG5tN#M9JBnL-l3y5WWen5=wPe>AH zO9NG5Pr`O~J+tciSE10T?)lwkfmI;%OEu1%^t}ECL=-%Ag@u$@lQ-bOYCW%TILx-k ziMu^M55Hl;lfA2|tEUf~OZT8xPF9Pmqvsnh)69_C`Fq~(&o_V3&DZ9LtH|8lo~9*f zhRmjjnf5-6t``J+a^Zcq&&VK682yRlabH?h1ylABMUm^<9|U>XcsDZ?0e`aE1G%-{ zbN3gwDL>$Jf`ZWJIq7ZN>nX0TFX!&1jnMC9A5wt!83G|a1d;c+!=ixa_L^jZXaEaC zNlJ;y9g|8<$1Jq8N_YY78iE{s-Z}V%DjJ&^99kJIBbZDg%PK+5lBx9T&96zr!!i+96M5a-p;9JgP2NTE=; z_hc0Z>o`F|4VRIIpg|+5HrpeH4=b05D7WE4%kx1S2lpZXp%tW#TzftH>FG@Prdo5*7?D?T1C1s;aBBv$DSR;$4~g(JoFM_E?fL`iDRknx%C1&8t=h-EtfV zXQSR1Y&a!Ju;iiws6zRn4RkdlhU6E@Ay+nx3!;IQX=BxV&Uaa|nL9F z{s#8ZPv7I`-na9+J470zbV0&f=R2af-E%|rbix@+IhA>G)v@uLc!#}Kq79DrbJ3|%>eb8Yi_wIx`}r7;6{|5%UUIr9<|H3{S~aDGjE}IeYUepk4cI>Sr^`(i z>Tr2CU4gOAJelW?06qFwQ2*;uC^+$fA~p~015Ucr`-=kLNhmP1?-hDOG#V_;MN zg3AwPXJQpJO!J3B1TFB8-@&d|uD)S^k}0O@xphv;nu{UVBl8kC5FtTD2!B)l_D>X| zJ?qbHS=ng#J-7#fd?a8l*6#M)1*TCZkAT;gh;Z>tShkiH8yoB8R@UXQ;)~2wQ|xTw zjqI9#^l7SL1N4KjAlIF3sGf0M=1Wy%0<(J04;)Ld7=IbGw41EuO!PjYOQ*7NaT<@NufEsI!j@7c2sep6B}?Z8FKh`u86UE5B*-S1H0a-pN@3j2cFi zxb*b3FQ^$vLf=5HzkmKf3E{DrpC8W^v#IISI}Vgg@L(Kew1}^5&~KwE@Lo83875w~ zo?TvJb}a?kXLXwOTcQhtqlL<wlR=BI5gIMzdA=rKJbp;9>$F?<_dQR`zwvUms7~elG`@487O$!0F8q@cI2m>Q>L& z?&i+%oCyRRma4Kc4Bb$t|9;%^w*Om=Df8vst6JKbI5CF9)C>YubU$l&F)wnQng)YG zx9Kh*B+Vgb(lfpr_&humC-9#>uG=Sw|6IRfM1h6(kxds+RM*zl)lAGtiQz2cHo{gs z!Z!H`WC=zBb=<+qt!}o~nV%0MN^wQB;-l^=aG6;}^;qdG?U3Sd4G%L7VVTjhS6c$p z6no*~;;O2u)#`Fzw`;pln!`sQcXfMAUjGA${Rz8+TU~5J+)8-PVyXqV-q{Sjw|JBK zbEPhj2Y34=6{&UQN36J0fAm>Y$?$59F=urQPgh=|fU(FiItR$(JI?#)D5KJ=9A4wIItOqt;R-O^L{w3D5;#~awzDd)yU!JONWc0&! zy4!I#`V>9;bSt3m!(`&IP#|D;FDy#by1)J$Bix|XVDc20_b>Gky` zP;_>(Szb{we)a$nB2+iFzPLEeH8lwXVi~o46`@lskw5?n0e8Gr%#0D^`}Lt=;LlcG zTGQH6!-QieMM`4e%Vcpdd7wNQJm?GJMReP~5e5!U@EaUFL7aF%kuh!F!0)1^uJ^O5 zwG6{ouo!-!ziaH=5$iB%y~Zk<+R>UU4=Z&!c|I|f*!)|vYv6eO0Gzy)W0X#kr;Uh@ z9qSsq*{_TL(($?7ykP@hLhaCjzG%OM6VcVw&N00!Skd4fFIQ7`36Lq$KR;|KrObcnmI1HWTR|vjML^SCD^brdhs8|A;jE2D5k{CaTwFpqtql zj{@$L@zWB?Y7}h-+$8UK4FV|xM0_zh-71?I9?lxVzI|MgA2ZlV9!oBMtTb=Q`1-Co zL`JE|(uoslZLQeuB1<4LXr?x>nqKRBT1$iHL?dfDz4iu}U2WL>-^Jy>yF}0o4DQG* zW}5AaouV{AG&(bU0^F!qFqp(nF3J*j3w(J=y-u&k*6kq~eG0Rg^=~u#68U=0Z%tBx zsqJ6g>+Hqia+^+*_9+yEE-OX>edmpkmz@@W_Z7Nt&+qD{y?3J`2s)lxd1`y_8)Ig; z_xGA+yT4|5F1z+0QR6u~t4nlBT7EOjCVqnw(`xYbvJ>&+C7?K33&pPg+fw6V_Dgu6 zvwyl7ZitzVswSQMO`u5>%%zQpgMlC_Tm)Q-kKJMh)6UM0Qxo6!x=1TXkrq41p1}Qh zH_}IUOY`T!FNQv@*9wzO`mf&{+umCpnCFcPmpm7oZo`o^z)OC1K_Q3fE;|Phn1&qs zUOIYf(^x$EHFlg1tcWY9{EJ?Bw-oK&os9I=jD)TRgD<^0$hcO+1SvBOl$Ak#b?8Wq zAgn9ku$aI12Zcny5wP1HM>bsB*|PAXO@|At$!7i1P#+^kmRC>T&dETvwW_q(u(hxG z+KW*DcC_J`2DvS^FUg1LWmml~(kh%A2>yKuOc)4ZAHB4myFceLOL1>Jn=31o)X>NI z5PnyxR%s+q_btEO%?b<|Uu*{$IyotEqD{hw6^+3;)805Ewgx1Z%v7Tp{$do$>xyKy z{m0r(prQV4E52GidVqq(X>d4vO*?TL+LJ;x-cHF-k%;*&ARoXyt~e6OiefQnj^%PQ zi1N&3wa<}MI1jmnHV!Q{Rn?i1p7!tH$gmgReI-bO(CZj_4BzdQiXxZ&V|a?bW9L!F z!Sj6=Qs4h`RZHPxe-84h=O|u>&}U~iOGD4=99cqc-K=eHDB_8-4(jE7HHb*Qo*vB- zc}wLmVkqPdKGT0sN<;s#Z9duFQLUIM+(=t_RAmC_D&64>#^7Fw#oEaoIuCr##t2th zQ{lka7ez9YTY`as0bFb36VEphgvCjc50guvukh#VDySl&BAh?0q^A)-u%)Z-UmvY<@W+Sp_FIN_H5bQU=dsp@Yf54r`tjnEUs2 z(*yVEqG?d##CH^qVL0t~Edpz2zPz@Az3z4w^qLKK2f?ou-M)F`=x95>+Spq+;*MRg z{|v+Ol$8*a#*PyI*+7{XIilhX!^McsXp$H#spYkrI3PkzJ>~OIg~M3CeZ4zWe!&FL z9?CB|#+vyaS3cVJ6S!YeQD?aC7Vl>Hj{c>{bABwI908S0d)Sz{eupQ(gF9TybH!?Z zehlL0^F+%q3v1!ENk1hkh5y(!LS_}KDg+Pa>f!-qDiyiJ1(CIw}g2gy##8IX2jUCQ1 zWR!gM10;9Y3ioa-!eIUs?jOH0GbL=SRt^$IFFS;=1Wf4rH6 ziDZxEX=o;*v4;yrHdyB!&nzuIP(D|NK?_QOd->2H^JOhZQB@T3j9=aa!?W! z(*j9t9i0yXLW>HRGkr$#$a(G5ndSM#Mc`U7`EH!MxB%_`Z8q}bVcCzJat!X`#c69} zw(rCHWio9A@gpd(%sSm{kd3}Htg8=^a)!I`T|QCI{!mIMILZD?kT@kXpA;&zA^k92 z9RTp%xxYAfFY0v|hrwIgLBL{68#H-8WS^>i%SFVRlCQwYUInRJhLjQm54Rd+3Mj6J z+gmY_of0*MaMW-s^zmpP3P-?>exfiLi{13O>M57c<2IX2#V0@iQ)jR(6apy})3)Y~ zw)JAZb7OgT_z{bVcH^l^xkz9oPrg5+cmV<=#Zola&=nQKLMiIVxE>e5Ny*;^gFrgrI73((Q4k)T>E<8Z>SX z{4mPj%@2{w2gwX=@Z2DUoua1T89TetnwKVbonmgoZnN9w|Io`;K+pG-J<_#H*!!pl zA9?U`!K!4L;Q~-Lr-JEY7mwb&1bP`#dK&2P#R*m+#&bSxxE{Xtb(ql^k|owQHkb_h zuj4}rdVUYnCJB80Pn%DH6kzcPCBB?*`=vDL94+Ee8^Sl8s(r*8x=MbY9r!a-2#4Q` z3~QIK?p{HyOv4&oh*lL%+ZZ&}^;`C5y3TuM{ZT38vbq=O*JJSooQEq0LL#iP*ESYm z3?B{-FaeRp<5z=8+qykZbz$(kZ^3qfL1K)St(3|Fnz6c&5CKB7nb|=RKrxYZ2dK=*pu+U`Uo$)TAfkNv!9O>ZrGE$htgH07OJ+i3M(qJFmf zrBN-)c~xEz@cj68icYgrI$7Az+ly*PS2NcNHLbY_zQ&o9Bt4J?PHN1A%D_O2ZDkiD zQ7ld^R+bh!rbd73;_Q>E@p!i2alA8N(z@ookqP{}ta-oLwXK^xZ6b2-1oD;3tvlVO z+Kt9yvzuCqS$WyJBXDO*lWNc#v>I-0)b&2U7b9-fRqAzl-VE0DzV7vSY>V9WejV!U zbUF0?(r+P7ifnCZnJ#!!u~9MMC6F5?At!^EHjJ)_?OR zw7=6}=81gzTL}okk|il|DYy#qkM#IvN&*G-hvTmGS|8holD42j~KT3XoBhs{Ys2EK`c z429WMc3?|r0@P9%Dl&EU=HS&9*bTGi#8RiU6x)PWV%?_J*9gMCyt@$!f!Qyo%isd_ zYW=Nm66`aXkCTDK>xisN9NL{mq$;_;(y7>fj3)!q8FQ>5(XY~mN*yOBO0=0EHHBvX z4_nP7C&K>5b)xgrPZdJdrrrux%*WaE$JV-l=i1hWfqK~~R``W+g#8u^_Meyc2hO{p z|MnO+;7FoXBwiQnb(-z6egR1L(#p!p24v80eL{9?b4WG`WqZ(kY0Sw{X;T`DOVwi0 zMyGRT|X+j(+W3%Vbo(YM%8Z>iV2<{;pLy88wgBz3W z(bLe2#p8nQVro41N}_b^T9yD^j9fOiem|9JJswxUa7WN~=1;q-v_um?`@IK5xW13a zbwWSZw{?fUu#u0Cr|Txa2u@wrDWI~q!&vNLGR@|1Ex9H}WmTa;U0S~BZ9Esc?ulyN01 zoN3~;bQcQ}ivF!-RT*w)kU_AE*diPIA_rS>wQPrc`zljE_Ea-Ak3Dzr5~QNOzJ3A$ z-_UMubu|*QGN%+cvs|*v;A3pJ@5wy6WCN|tT5uSeG%i@Zw z&l_6Vj!ecFQHtvBT3Xn62bPT5?R~DRdx-qc-)wSOMw%s&=@|uw7l`7# zA|0XX;ZzLtn#^As(_k@ZwR>$}5VyYqmxU8CVf|7n@3o7k(Z^=c6!x5`=;%YOv|^bu zV;mDDijz`nhhp~B)mZXymrDA+UIR_MJibR5H%oGu`I)e|AD*A%WlSyLM3pL=Q=4H) zi6~@y6K4tGL7rKXV#ko~LxWl|>CSmJ^TB5}D3L^MP%*=sXTeZ_cw{Bbt3dN1x5@Uj zGYVkA81kY(Gh(*Hrv7wn|IRu9BIc-uzFTeR&PWsTGq}5oAdMs(ant>s9ni6JdCdk> z@hN^Z0;?<8EKaB6ogZmt=si{5hewA_Qg*-TII9+`_3wt-wv93ieBTM{dhc(~5&7Q_ zf7R`71Fur9d(7IEY&M%SYwHG@Z&8|PjLOi>U?gMUDr`lRvgoqAvVsPs_deYO8S7{6 zK6?57e%=}B>92nN$z`l`P(4KEWq&bLv1@>2cL_77wn|1&92N<6QeY9mL0x2bTdH1PQLTQ}6TkRytvw!fsCS z-1SYpTv{-1WUZyebCI4kQvMYYwK6myi4aKDjv{JQ^ zZyx6wl2r~$uAyk{M;SJ>*phDcI<5jKAQi?0@V@->I@0qV-<81gUO|q)cluWpLFn~3 z!gA?<{mIbx(pp>8fc-ZmKeZ%Nnen-Wt!}Vqm@T9oL~dlpNF=4zwKGyT84ZewDC+3& zUq*&ndU{631_2KPX|^QNT|3)3#+;<<$nEL-yRbaYtK>gp*>AyMf~H6#+Uq*F);RvJ zHx`ym?BxJoa?n)R^d#AA#rEeMC8!Yo&PCGW-}}B$3#|Ez+tFm`S}1wV8JKk6gxlx= zPzYm_$dJ-|64|o8`DptZSe|76o3xHqHma0l=&rIa9;dB`A47~c3yrepZ2&Ye41+X9 zN+cqxtWFCcvPW{XHJg5W;~}=KFDLYQzWfaz@p4cHme%IA4RoF+BnW4-SRlzS6a?O{FV`Jr{l7wH`CsnO7<#kc_7yz)+I&x#+cW2= z1fl3dB}ewB8#l6PrU?7hqqw4VZam@IzWD_IbSjId@3#pe=od@*hRkj}p}HXs@HR%B zuCaL?k?`<8UI%+N5KDJgfio5QuMA`)w?(9wYzFg0=0r!Dte6USg(Q|ab(3wR7HvwF z5fm+P@I)On`tN?Ifry~iRdH`WPW zdzeXRqFBD;wf$Gs)wJk;bInGInNk;`REdMIEsiVEX*6~Y?&c&2{r(6+R#p+SVD6Gy zv^KND6!lx-CX6+FlN)Mg7%~+OGrGJpGqQH7&4z|ehtM+B0^`^PrV~JSy5fDmE?(C6 z`LHU_ce)me$mjlO1_*s;Jx>C;EJrbq?3rk?WNk4os<%wepr)`)(<^XjQusuBv7$~^ z9C+WI?`|U_rS|5D8#yug>+0(3k?=$1z2Tdf{W*EC7(r7PI;$*P4UQTuxq1fTw|1voK5s7RfL4~Cg((b3Vl zxwQcAEwc}vSV@&0yv72p(7udYXF9uXHds9+MzjXKcuj=RS<(z34Ud*3HTVc%p4e;J+Q7&9y0&o=d*;N1C_oL*@t$XPZJahG9-O%L zY1zR0>i_JKKp<@2Y&CJuW;VLwE5GD-JJNGsbGj{o4tWKlTU{DzPtmvY_BWp0H9e)3 zMMds*zbTpoUUzz)w!O|Sp0@mtrnm}*WrpkoA0^jMj?=L zEB5Oo2z>9&C*}HXBWWHR-e+}N$wON&CCJ}^N$ zQCasNSv*dI{`!VondxYkl%CzW)M-=ztG$jB)T+6Vy_WXNrYdJ0XMIguc1W>flG!;n zVqQ@d{8x;u4AKIc24|)m#+FN~QG+o?PAHc|X2chV`GyQ6C=<*ib<|mULS)FumiM(BsDUh1RXe*J##;C>;uUfybv$K*THT+H5 zV2u(Lx{1Q4q_5ODgplIC?T2VeMEv8AP;=g2)jFwB)MJT11!@NC*F$Xr-LLb%fMaa+ z){Mq@&XYLlwq2xbW}j(OGMoPQP^RH985~~YbvlaLj^QsVYaJO_WK3PEEA?LU1Dw7w zjzR~4c6P8N8OqdN(qg#zzR$+Muhv6P+SamGh`6(EaB<%37_G+2BB!Ov)6ULLNic_L zlyva1vLGt*$P6^}b%c$^+sWH#p%2JdJTB`9K>o8k%0u8g?g#yEJ^_7N{R-@vcn;PRi0M}>ep&&kOn1N-Hm8IxhIxYBXwpUv}B?sexsI!kt9 z1JG89F!v#AL8kRWzY*6fGwsi*>Meip6YfcliE_v;{ILVw`~yGL%=ne9lRf9G`2u*H zgrVw|VHXOkES{K5TDPpq^APx-cNXM%><*{15P7frbsYL`04veQepCRj@3zQ)fYqBZ zd;wsL9}o#2-e*GlMJ=5^8*qBB^0aNStw?!qzeZYDQ%OZhdEM!v=tB`nl%wfcVkOOt zz8nWO7(SYvovmhL^9zI)_nsz8RvRqK>=?Wio}8&1%12zD5*KzT8RZOFk7!7{-Vp>a z{RuQ8%2-qJ59@~slg9fT3ZMA{QbLy5hsR=i_6sZB`M*U9HLJ`!G7h23a2t; ztV@IpDG&k>i*P3Jp7gM*IdcKT1s zBE`(eoH8RaGZ&W>Bxxd~P)_2(g_cZ!91&Cs)_pU7mcaXdJZ)1eaJ3N=&%3vxBF}&E z6PBUtwA04Gd%uOv#ya@ZQE|%2iO_<6W*7cuIL>sm0G7I5z>AkYVfo;ueK+-2RTU1W zV}HHT&>w;r*&l|(Seo6(b<4QP%D@F8LNm={)9q=DFaUz<(|2Zh+y8DqL14z9!`O{9 znGt>u4kn(QIh;5Wi>X=BZOBMi7;2^+X=MeVe5E&wBM@Fby>KNN%0dlTqITB5+mZFd zK+3M@#uCpRH%&>w!(SbRT-K8fm)VZJ=)O&0-HIr1`v+M5 zeqIkDZn?~Ewrx9|(JgPfA7+&+WY+tMiD~)yfwqP&>-!xHNDy{E^>zW&+H_opZvR8J z<$m$cb+U~7fGsb;;ynsz>|cOCSR_M6TKaFb-uj=FNF0&|@5L=>t6f{my@$5-3vmxw z7W62Is%6#v5%5=7L#n@vf18`#S#zBJz!&N$Ix6YvhGHF-8fA8Vl+NaG)HPiPpfm_h zG2AFHewv%1X^jBjzKR1&)25fPvu7weYgTbWK`lGrf$l znU$VK=jjzDOKUSTHA)UVtAs+Bh30b~l;p6^&|nQJ>LVAKZIhO5rOOu@8c zy$>0}a zM@`sT9(_V)aG_VGmVOyGSc-YQ{D{E&{~hd#}|OYAPJ)IKjZ=<~?pPu9NJYdiWfj)8xvE)Uxd>c(C_p z17MN0fAj3iUpE^Ol{5cfI?ummm@E`ei>ke_O34#!!6pYCF_ifi6arzzd-^Xbh5QDf zS0eJfUpE1Z(#9$JuDe>E0?)mM41NFIEQLc=iZuksC0a6cLBrr6wk3MxlRM;n=8XRI_W##b6`3H4WMp_ zu`piOTK+iV0*fx-sHLO3pb{C|8lS%#WrUAYa_7vE%C)DnZ1@Pf1Qk885}j$$V(jlY z-u&gkiDzwVJD4?pbXTLbRV>j|TqS5S-Sf>#{;=SHq^0=L{<|0$b=MtfL z7HH|{fYpK%W%a9ncVeNVGU6|;#j4(D$JZ=VMUQhK!%%2t_b3O!t z#PdC)Yn#<+Cz65Hev~B#hLVMQ&u;#N^&=+`KW{a3Of;hg)Y3m}qiD%6T8dC%nYNai zZ?Cuv`>7knRVYWxLkN8Lz*{ocb)g90+4%Ql1~9W3^t+pTd*_&MC`)2<(v76B(!r4T ztNQtkjanSVbAK3Pi6=~6iiLqc7R1b#c@`n+<(Qp#SJm{441Oz1>1fVub{rj3+M8aO z>D+VB!1H=G>H^GZ{hy$)cd$JKggZ|A%4l&`^tBbTf#T$)r8(;Jg{ktDXk;pA3QDrO z*P+2&vZfaXTE5$9UWa9JiHrVyz#SFNS`ghpPZb6N5tj! z?6PZH^_jJj!1r1K-hw~h(loYw01bKDhtT!$#3J8!FA6v#&XrcWfxG0;fyVm<@J`A9 z9yvszkgutwm7jtdzP%5uS$*E}mJPff!g7FrBtvv9lE$2sKmew^xSLAc;wxPaV0cJ<;q)I*pG=4|Gs=f2sl zt#~5$qy>@m1Z^KOM;Zx`M$%%-orfH`-;(n~xggoaa-xH6h3a9=1B?hP5IdvejB+c)i8|%B>Ovw`9;o;)rnLcHPmG&wH7#G~gvFu$n@ivyp{w`At)}_iKHWPJQ zi*u=#i4%F-*{qz;+>P|u%+tIcmh!7I96f1K@q64Y+MTa@td<)zCXTzJ`n3GCDG6K=J-gyS z!}?~AoGM}ZOWF2Fsi*l{@S=Zt&?p6|^S3Vav#Hs}@rlLY3CQM`|OxC9t(GOk%%?M?+&OmX7~h27oGVmu`LU2=!RSV8e|}9_9LJo!r-8M9tC~ACFi!xWz&=!x)crjFdik z6V;5V22ZYZ+%l2u2(Ha1Yh{#cRy5m^jJwDETvf5%%gVTV@Qz0Z78Ov58#sDEy0BtHcmui13Gpq(SFwb77BZV zOn&?Gb=olE|7QWWr!&QTEtR&&vBj@Xw^+y?&4v=LpK_8y81ormzLa|yRaFOx?$O|*?o`KW6kXuI6Pk-F$1GPU{2ccwk1p6*=cjxMk$E^)Tz54owbsAZoENA z{YMjI$vUptgwRR;<+`Ly)6`T7M&)cIbY>H_ZPl`MhWdRbyOYPO~=bt8Cn zamtuTD#=DQ^lb{_by!LbuL62L9ebteyipN8K_%bFMRIZjFY^3dUu2TAvqT

S6Xx*1gy8S-dka2?nS`d(kXt4P6`=OG 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 literal 0 HcmV?d00001 diff --git a/content/05.Template/메모 템플릿.md b/content/05.Template/메모 템플릿.md index c2fb098..a162d84 100644 --- a/content/05.Template/메모 템플릿.md +++ b/content/05.Template/메모 템플릿.md @@ -11,6 +11,7 @@ aliases: ## 📑 개념 여기에 이 메모가 다루는 개념을 한 문장으로 정의하세요. (예: 제텔카스텔의 원자성이란 지식의 최소 단위를 의미한다.) +--- ## 📌 상세 1. **특징 1**: 내용을 입력하세요. 2. **특징 2**: 내용을 입력하세요. @@ -23,5 +24,3 @@ aliases: > > - 본인의 언어로 풀어서 쓰는 것이 제텔카스텔의 핵심입니다. > - ----