| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- function
- 바이브코딩
- 개발자
- cursor
- virtualenv
- ai
- python
- Antigravity
- 가상환경
- B33
- claude code
- claude
- AWS
- plan mode
- 파이썬
- 개발
- 클로드
- 공부
- M42
- 천체관측
- 안드로메다
- 트리성단
- poetry
- 개발환경
- 관측일지
- grok-4
- 오리온성운
- CODE
- M31
- Argument
- Today
- Total
목록python (7)
ulismoon 잡학서고
나는 JS 를 싫어한다. 최초에 만들었을 때 가볍게 사용하려고 만든 것에 비해 너무 많은 곳에서 너무 복잡하게 사용되고 있다. 내 주변 사람들은 다 내가 "구글이 한 것중에 제일 잘못한 건 V8 엔진을 만들어서 JS 를 브라우저 밖으로 꺼낸거다" 라고 하는 말을 최소 한번 이상 들어봤을 것이다. ECMA 니 TS 니 하는 것들이 나왔고 업그레이드되고 있지만 여전히 브라우저에서 바로 사용할 수 있는건 제한적이라 또 거기 맞게 빌드를 해야 하고, 거기에 버무려진 web frontend 의 끔찍한 번들링은 한번 당해본 사람은 손사래를 치게 만드는 마성(?)이 있다. 요즘은 그래도 알아서 잘 해주는 편이지만 여전히 vite config 같은건 나한테 너무도 복잡하고 머리아프다. 그럼에도 불구하고, 그런 상황이어..
요즘 코딩 과외를 하면서 모 플랫폼을 자주 이용하고 있다. 생각보다 파이썬 기초를 가르쳐달라는 요청이 있는데, 저런 요청을 볼 때마다 어디까지 하고싶은건지 좀 궁금할 때가 있다. 물론 뭘 해야 하는지, 어떻게 해야 하는지 아예 감도 안 와서 도와달라고 하는 것일테니 요청자를 탓할 생각은 추호도 없다. 다만 가르치는 입장에서 어느정도까지 준비를 하고 가르쳐야 "기초" 를 다 했다고 할 수 있을 지에 대해 고민이 돼 이런 내용을 좀 적어보려 한다. 개인적으로 "기초" 를 가르쳐달라고 하면 이정도를 수업 범위로 잡는다. 변수, 자료형, 연산자(+, -, *, /, //, %), 자료구조(list, dict, set), 제어문(if, for), 함수. class 를 비롯한 OOP 를 넣어야 하는게 아닐까? 하는..
개인 프로젝트를 하면서 상속을 참 열심히도 쓰고 있다. 부모자식 간에 도리를 다 하는 것이 어찌나 복잡한지 코딩을 할 때마다 새삼 느낀다. 며칠간 풀리지 않던 문제를 좀 어이없이 풀게 되어서 간만에 기록을 좀 남겨보고자 한다. 상속 관계에서 자식 클래스의 method 를 실행할 때 부모의 함수를 무조건 실행하도록 하는 구조를 만드는데, 이게 이상하게 자식 클래스에서 실행하는데 자꾸 부모 클래스의 추상 함수(python 에는 그런건 없지만 NotImplementedError 를 가지고 비슷하게 할 수 있다)를 실행해서 제대로 처리가 완료되지 않는 문제에 관한 것이다. 어쩌면 이런 구조로 설계하는 게 잘못된 것일 수도 있지만 일단 기록으로 남길 가치는 있다고 생각한다. 요새는 모든 기록을 notion 에 남..
세상에 JS 가 부러울 줄이야... 주로 파이썬을 이용해 웹 개발을 하다 보니 JS 와 함께 사용할 때가 많고, 개발을 하면서 백엔드용 파이썬과 프런트용 JS 의 패키지를 같이 관리하게 된다. 나의 경우 지금까지 python 은 requirements.txt 를, JS는 package.json 과 yarn 을 이용해 package 를 관리해왔다. 개인적으로 JS 를 별로 좋아하지 않기는 하지만, 패키지 관리를 할 때만큼은 정말 JS 가 편하다고 느낀다. 크게 2가지 이유가 있는데, npm이라는 잘 작동하고 활성화된 중앙 패키지 매니징 시스템이 있고, (굳이 yarn 을 쓰지 않아도) package.json 안에 여러 패키지를 목적에 따라 구분할 수 있도록 한 것이나 lock file 을 만들어 의존성을 ..
def func(arg, *args, **kwargs): 파이썬의 함수는 매우 잘 조직되어 있다. 아마도 이는 모든 것을 1급 객체로 만들어놓은 노고로 인한 보상이 아닐까 생각하는데, 덕분에 우리는 함수를 아주 다양하고 직관적으로 사용할 수 있다. 개인적으로 파이썬 함수를 공부하면서 가장 놀라웠던 것은 그 인자의 자유도였다. 함수를 쓰면서 인자값에 그렇게 신경을 안 써도 된다는 것이 개인적으로는 아주 큰 매력이었다. 파이썬의 함수 인자는 종류도 많고 이들이 우선순위를 가지며, 상당히 치밀하게 설계되어 있음에도, 내가 지금까지 본 파이썬 관련 책에서는 이를 깔끔하게 정리해준 것을 아직 발견하지 못했다. 그래서 이번에는 파이썬 함수 인자에 대해 적어보기로 한다. Function Arguments 개요 파이썬..
PATH?이전 글에서 virtualenv 사용법을 알아봤는데, 과연 그래서 무슨 PATH를 어떻게 손본다는걸까? 우리가 쉘에서 그냥 명령어 두들겨서 쓸 수 있는 프로그램들은 각종 bin 디렉터리 안에 들어있다. 터미널에서야 그냥 아무 생각 없이 쓰지만 그게 다 이미 어디있는걸 갖다 쓰라는 설정이 돼있다는 말이다. 파이썬을 예로 들어보자. 터미널에서 그냥 파이썬을 두들기면 파이썬 대화형 인터프리터가 실행된다. 여튼 무슨 프로그램이 실행됐다는 건데... 파이썬 명령어가 어디 있는지 which 명령어로 확인해보니 /usr/bin 안에 있다고 한다. 그럼 저런 것들은 어디에 모여있을까? 답은 여기 있다. $PATH 변수를 찾아보자. $ echo $PATH 오 뭔가 엄청 많은 경로들이 콜론(:)으로 구분돼있다. ..
다양한 프로젝트, 수많은 패키지, 복잡한 의존성...파이썬으로 개발을 하다보면 거의 항상 복수의 패키지를 설치, 사용하게 된다. 그런데 이걸 다 그냥 깔아버리면 해당 패키지는 그 컴퓨터에서 사용하는 모든 파이썬 패키지에 영향을 주게 되고, 이는 많은 문제를 일으킬 수 있다. 예를 들어 프로젝트 A, B가 동일한 X 라는 패키지를 사용한다고 하자. 그런데 A 프로젝트는 모종의 사정으로 X의 1.0 버전을 사용해야 하고, B는 최신버전인 X의 2.0을 사용하게 되었다면, 컴퓨터에는 어떤 버전을 설치해야 할까? 단순히 생각했을 때에는 2.0이 최신이니 2.0을 깔면 될 것이라고 생각하지만, 파이썬2 가 파이썬3 으로 넘어오면서 하위호환을 버린 것을 생각하면 무작정 최신버전을 깔아놓는 것은 패망의 지름길이다. ..