공부내용 몇개추가 + root 경로 변경

This commit is contained in:
2026-04-10 09:57:02 +09:00
parent 3087d9cc11
commit bf1c660ed9
9 changed files with 228 additions and 2 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
username: ${{ secrets.GCE_USERNAME }} username: ${{ secrets.GCE_USERNAME }}
key: ${{ secrets.GCE_SSH_KEY }} key: ${{ secrets.GCE_SSH_KEY }}
source: "deploy.tar.gz" source: "deploy.tar.gz"
target: "/home/dihwang/white-smith-blog" target: "/var/www/white-smith-blog"
- name: Extract Archive on GCE - name: Extract Archive on GCE
uses: appleboy/ssh-action@master uses: appleboy/ssh-action@master
+1
View File
@@ -0,0 +1 @@
[[Aider 사용기]]
View File
@@ -0,0 +1,5 @@
## Language
[[파이썬(python) 통찰]]
## Tech
[[Functional Domain Modeling]]
+76
View File
@@ -0,0 +1,76 @@
---
id: Aider 20260409
created: 2026-04-09 15:19
tags:
---
시작은 단순했다.
> [!question]
> Q. ai agent가 뭐야
>
> A. **AI 에이전트(AI Agent)**는 단순히 질문에 답하는 챗봇을 넘어, 사용자가 설정한 **목표(Goal)**를 달성하기 위해 스스로 계획을 세우고, 도구를 사용하며, 실행까지 완료하는 **자율적 소프트웨어**를 의미합니다.
난 이정도까지 바란건 아니었는데
> [!question]
> Q. 내가원하는건 너랑 대화하듯이 cli 같은 환경을 통해 대화하는데 ai가 내가 원하는 방향대로 실제 내 파일을 수정해주는거야 내가 복사 붙여넣기 해야하는게 아니고
>
> A. 지금 말씀하신 방식은 단순한 채팅을 넘어선 **코딩 에이전트(Coding Agent)** 혹은 **엔지니어링 에이전트**의 전형적인 모습이네요. 복사 붙여넣기 없이 AI가 직접 파일을 수정하고 실행하려면, AI에게 내 PC의 파일 시스템에 접근할 수 있는 **권한(Capability)**과 **도구(Tools)**가 있어야 합니다.
>
> 현재 이런 경험을 제공하는 대표적인 도구들과 작동 원리를 정리해 드릴게요.
## 1. 지금 바로 사용할 수 있는 대표적인 도구
### **Cursor (커서)**
가장 대중적이고 완성도가 높습니다. VS Code를 포크(Fork)해서 만든 에디터라 사용법이 익숙합니다.
- **작동 방식:** 채팅창에서 `Command + K``L`을 눌러 수정 요청을 하면, AI가 코드를 직접 작성하고 사용자가 **[Accept]** 버튼만 누르면 파일에 바로 반영됩니다.
- **장점:** 에디터와 일체화되어 있어 흐름이 매우 매끄럽습니다.
### **Aider (에이더)**
질문하신 **CLI 환경**에 가장 부합하는 강력한 도구입니다. 터미널(Terminal)에서 직접 실행합니다.
- **작동 방식:** 터미널에서 `aider`를 실행하고 대화하면, AI가 로컬 파일을 읽고 직접 수정(Edit)한 뒤 자동으로 **Git Commit**까지 남겨줍니다.
- **장점:** 복사 붙여넣기가 전혀 필요 없고, 터미널 기반이라 개발 환경에 통합하기 좋습니다.
### **Cline (구 Claude Dev)**
VS Code의 확장 프로그램(Extension)으로, 최근 가장 핫한 오픈소스 에이전트입니다.
- **작동 방식:** 파일 읽기/쓰기, 터미널 명령 실행, 브라우저 실행 권한을 AI에게 부여합니다. "이 프로젝트 빌드해보고 에러 나면 고쳐줘"라고 하면 스스로 파일을 수정하고 터미널에서 테스트까지 돌려봅니다.
## 추천하는 시작 방법
==만약 **CLI 환경**을 선호하신다면 **Aider**를 먼저 써보시는 걸 강력 추천합니다.==
Aider를 써보기로 함
이거 설치방법같은건 못적겠다.
변수도 너무 많고 내용도 너무 길고 그냥 ai한테 물어보면 알아서 잘 설명해주는데..
> [!warning] 파이썬은 3.12.10 을 설치하자
처음에 3.14가 깔려있었는데 에이더가 제대로 설치가 안되고 에러가 났었음.
Stable 버전인 3.13으로 다시 설치했는데 이것도 에러났음
3.12로 설치하니까 에러가 발생되지 않았음.
파이썬 버전은 3.12.13까지 있지만 3.12.10까지만 설치 installer가 제공되니까 3.12.10을 설치하자.
(이게 마음이 편할거 같음)
```cmd
C:\Users\Administrator\MyFolder\test\aider
```
이 경로에 설치했음 나는
```bash
Administrator@DESKTOP-UUOTCE2 MINGW64 ~/MyFolder/test/aider (master)
$ aider --version
aider 0.86.2
```
진짜 힘들게설치함;
@@ -65,7 +65,7 @@ tags:
## 4. 왜 유닉스 철학이 중요한가요? ## 4. 왜 유닉스 철학이 중요한가요?
오늘날 현대적인 소프트웨어 개발 방법론인 **마이크로서비스 아키텍처(MSA)****함수형 프로그래밍**의 뿌리도 이 유닉스 철학에 닿아 있습니다. 오늘날 현대적인 소프트웨어 개발 방법론인 **마이크로서비스 아키텍처(MSA)**[[함수형 프로그래밍(Functional Programming)]]의 뿌리도 이 유닉스 철학에 닿아 있습니다.
- **유지보수 용이:** 작고 단순한 코드는 고치기 쉽습니다. - **유지보수 용이:** 작고 단순한 코드는 고치기 쉽습니다.
@@ -0,0 +1,37 @@
---
id: 파이썬(python) 통찰 20260410
created: 2026-04-10 09:15
tags:
---
파이썬을 사용하다보면 Visual Studio Build Tools 를 설치하라는 에러, 안내를 보는 경우가 많다.
왜 파이썬을 쓰는데 저게 필요한거지?? 궁금해졌다.
> [!question]
> Q. 파이썬은 결국 c,c++ 코드가 기반인거야? 왜 이런 질문을 하냐면 파이썬 코드가 결국 c,c++ 코드를 호출해서 사용하는것 같은 느낌이 들어서.. 파이썬 라이브러리중에 visual studio tool 이런거 설치하라고 하는것들도 많고
>
> A. 정확한 통찰입니다! 질문하신 내용처럼 우리가 흔히 사용하는 파이썬(CPython)은 그 뿌리가 **C 언어**에 깊게 박혀 있습니다. 파이썬이 "C의 옷을 입은 언어"라고 불리는 이유를 몇 가지 핵심 포인트로 정리해 드릴게요.
엥..? 진짜로? [[CPython]] 참고
아무튼 이러한 사유로 Visual Stuido Build Tools가 필요하다.
> [!note] Visual Stuido Build Tools
> 파이썬 자체는 오픈 소스이지만, 여러분이 사용 중인 **윈도우(Windows)** 운영체제는 마이크로소프트의 제품입니다. 윈도우에서 C나 C++ 코드를 기계어로 컴파일하여 실행 파일(`.exe`)이나 라이브러리 파일(`.dll`)로 만들려면, 윈도우 환경에 최적화된 컴파일러가 필요합니다.
>
> - **MSVC (Microsoft Visual C++):** 이것이 마이크로소프트가 만든 C/C++ 컴파일러의 이름입니다.
>
> - **Build Tools:** 비주얼 스튜디오라는 무거운 프로그램 전체를 설치하지 않고, 딱 이 **컴파일러 기능**만 떼어서 설치할 수 있게 만든 패키지가 바로 `Visual Studio Build Tools`입니다.
파이썬 자체는 일종의 인터페이스 언어 (glue language라고 더 많이 표현한다고 함)일 뿐이기 때문에
파이썬 코드를 실제로 실행해줄 주체가 필요한데 그게 윈도우 환경에서는 MSVC이고 이 컴파일러 기능만 설치할 수 있도록 만들어놓은 패키지가 build tools이기 때문에 (윈도우에서) 파이썬(CPython)을 사용하기 위해서는 visual studio build tools의 설치가 선행되어야 한다.
결국 C,C++가 성능적으로 굉장한 이점이 있지만 사용하기 어렵다는 단점이 있는데 이를 극복하기 위한 수단으로 파이썬이 개발되었다고 볼 수 있다. [[파이썬의 탄생 배경]]
### 정리하자면
파이썬 코드는 마치 **리모컨**과 같습니다.
- 우리는 리모컨(파이썬)의 버튼을 누르지만,
- 실제로 TV 안에서 전기를 흐르게 하고 화면을 켜는 복잡한 회로(C, C++)는 따로 있는 것이죠.
- 그렇기에 **"파이썬은 C, C++ 기반으로 동작한다"** 는 말은 기술적으로 매우 정확한 사실입니다.
+52
View File
@@ -0,0 +1,52 @@
---
id: CPython 20260410
created: 2026-04-10 09:16
tags:
- python
aliases:
---
## 💡 생각
Python은 일종의 문법이고 이 문법을 cpu가 알아먹을 수 있게 변환해주는 엔진이 CPython이다.
> [!question]
> Q. Python은 일종의 문법이고 이 문법을 cpu가 알아먹을 수 있게 변환해주는 엔진이 CPython이다.
> 라고 보면되는거야?
>
> A. 정확한 요약입니다! 비유하자면 **Python은 언어(설계도)**이고, **CPython은 그 언어를 실행 가능한 기계어로 번역해주는 번역가(구현체)** 라고 볼 수 있습니다.
그래서 CPython 을 사용할 때 Visual Studio Build Tools 가 필요한가보다.
기반이 C니까..
---
## 📑 개념
CPython은 Python 프로그래밍 언어의 **기본 구현체**이자, 전 세계에서 가장 널리 사용되는 파이썬 실행기입니다. 파이썬 언어 자체는 '명세(Specification)'이고, 이를 실제로 컴퓨터에서 돌아가게 만든 '소프트웨어'가 바로 CPython입니다.
## 📌 파이썬의 표준 구현체: CPython
우리가 터미널에 `python`이라고 입력해서 실행하는 프로그램의 정식 명칭은 **CPython**입니다. 이는 파이썬이라는 언어의 설계도(명세)를 **C 언어**로 구현한 결과물입니다.
- **해석기(Interpreter):** 파이썬 코드를 읽어서 컴퓨터가 이해할 수 있는 바이트코드로 바꾸고 실행하는 엔진 자체가 C로 작성되어 있습니다.
- **자료형:** 파이썬의 숫자(`int`), 리스트(`list`), 딕셔너리(`dict`) 같은 기본 자료형들도 내부적으로는 C의 구조체(struct)로 정의되어 있습니다.
## 주요 특징
- **C 언어로 작성:** 이름에서 알 수 있듯이 C 언어로 개발되었습니다. 파이썬 코드를 실행하기 위해 C 언어의 성능과 시스템 접근 능력을 활용합니다.
- **인터프리터이자 컴파일러:** 파이썬 코드를 바로 실행하는 것처럼 보이지만, 내부적으로는 파이썬 코드를 **바이트코드(Bytecode)** 로 먼저 컴파일한 후, 이를 CPython 가상 머신(VM)에서 해석하여 실행합니다.
- **표준 구현체:** 파이썬 재단(PSF)에서 관리하며, 새로운 파이썬 기능이 추가될 때 가장 먼저 반영되는 기준점이 됩니다.
## 📝 파이썬을 실행하는 도구는 CPython 외에도 여러 가지가 있습니다.
> [!note]
> |**종류**|**특징**|
|---|---|
|**PyPy**|JIT(Just-In-Time) 컴파일러를 사용하여 CPython보다 실행 속도가 훨씬 빠름.|
|**Jython**|자바 가상 머신(JVM) 위에서 동작하며 자바 라이브러리 활용 가능.|
|**IronPython**|.NET 프레임워크 기반으로 동작.|
---
하지만 Python 이라고 하면 그냥 CPython 이라고 보면 됨.
하지만 **CPython**이 가장 널리 쓰이기 때문에, 보통 우리가 파이썬이라고 부르는 것은 이 CPython 엔진을 뜻하는 경우가 99%입니다.
라고 함.
@@ -0,0 +1,55 @@
---
id: 파이썬의 탄생 배경 20260410
created: 2026-04-10 09:33
tags:
- python
aliases:
---
## 💡 생각
강력한 성능을 자랑하는 C,C++ 언어를 현대적인 문법과 방식으로 사용하고 싶다.
라는 니즈의 해결책으로 개발되었다.
---
## 📑 개념
파이썬은 **개발자의 시간**과 **컴퓨터의 시간** 사이에서 아주 영리한 타협점을 찾은 결과물입니다.
## 1. 개발 효율성과 실행 속도의 트레이드오프(Trade-off)
C나 C++는 하드웨어를 직접 제어할 수 있어 성능을 극한으로 끌어올릴 수 있지만, 메모리 관리나 복잡한 문법 때문에 개발자가 신경 써야 할 부분이 너무 많습니다.
- **C/C++의 철학:** 컴퓨터가 최대한 빠르게 일하게 만들자. (사람이 고생하자)
- **파이썬의 철학:** 사람이 최대한 편하고 빠르게 코드를 짜게 만들자. (컴퓨터는 좀 더 고생해도 된다)
---
## 2. 성능의 한계를 극복하는 전략: 80/20 법칙
파이썬 개발자들은 모든 코드가 다 빠를 필요는 없다는 점에 주목했습니다. 프로그램 실행 시간의 **80%** 는 전체 코드의 **20%** 도 안 되는 핵심 연산 구간에서 소요됩니다.
- **핵심 엔진 (C/C++):** 계산이 많이 필요한 무거운 작업(수치 연산, 인공지능 행렬 계산 등)은 C/C++로 미리 만들어 둡니다.
- **사용자 인터페이스 (Python):** 사용자는 파이썬이라는 쉬운 도구로 이 엔진들을 조립하고 명령만 내립니다.
이렇게 하면 **개발 속도(파이썬)****실행 속도(C/C++)** 라는 두 마리 토끼를 모두 잡을 수 있게 됩니다.
---
## 3. 파이썬의 창시자, 귀도 반 로섬의 의도
파이썬을 만든 귀도 반 로섬은 당시 시스템 관리자들이 복잡한 C 언어 대신, **읽기 쉽고 쓰기 편하면서도** 운영체제의 기능을 충분히 활용할 수 있는 언어를 원한다는 것을 알고 있었습니다.
그는 파이썬을 **확장 가능한(Extensible)** 언어로 설계했습니다. 즉, 파이썬으로 만들다가 성능이 부족하면 그 부분만 C로 짜서 끼워 넣을 수 있게 만든 것이죠.
---
## 4. 현대의 관점: '인터페이스'로서의 정점
질문하신 것처럼, 오늘날 파이썬이 데이터 과학이나 AI 분야에서 독보적인 1위가 된 이유도 이 인터페이스 역할 덕분입니다.
- **TensorFlow/PyTorch:** 실제 딥러닝 연산은 C++와 CUDA로 돌아가지만, 전 세계 연구자들은 파이썬으로 모델을 설계합니다.
- **Pandas/NumPy:** 복잡한 데이터 분석 처리는 내부의 C 코드가 수행하고, 사용자는 간단한 파이썬 함수 하나로 결과를 얻습니다.
---