공부내용 몇개추가 + root 경로 변경
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
[[Aider 사용기]]
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
## Language
|
||||||
|
[[파이썬(python) 통찰]]
|
||||||
|
|
||||||
|
## Tech
|
||||||
|
[[Functional Domain Modeling]]
|
||||||
@@ -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++ 기반으로 동작한다"** 는 말은 기술적으로 매우 정확한 사실입니다.
|
||||||
@@ -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 코드가 수행하고, 사용자는 간단한 파이썬 함수 하나로 결과를 얻습니다.
|
||||||
|
|
||||||
|
---
|
||||||
Reference in New Issue
Block a user