전체 글 587

Youtube 자동완성 연관 검색어를 가져오는 방법

다음 2개의 API들을 사용하면 유튜브의 연관 검색어를 쉽게 얻어올 수 있다. 둘 다 뭐 비슷하니 편한 걸로 쓰면될듯! Google API 예시로 지금 재밌게 즐기고있는 디아블로를 넣어보았다. Endpoint /complete/search Request method GET http://suggestqueries.google.com/complete/search?client=firefox&ds=yt&q=디아블로&hl=ko Query parameters 이름 설명 옵션 client / output 브라우저 json결과를 얻으려면 firefox xml 결과를 얻으려면 toolbar q 쿼리 키워드 q=디아블로 jsonp JSONP 콜백 함수 설정 자신의 JSONP 콜백함수명 ds 서비스 제한, 없을 경우 구글 ..

2 > &1의 진짜 뜻

# stdin, stdout, stderr "2>&1"를 알아보기전에 이들이 무엇인지 먼저 알아보아야한다. 표준입력(stdin), 표준출력(stdout), 표준에러(stderr)는 unix 커맨드를 실행할때 생성되는 3가지 데이터 스트림(data stream)이다. 스트림은 데이터를 전송할 수 있는 어떤 것인데, 여기서 세 데이터 스트림이 전송하는 데이터는 텍스트(text)다. # File Descriptor 알다시피, unix의 모든 것은 파일이다. 위 표준입/출력/에러 3가지도 unix에겐 파일인데, 프로세스가 열려있는 파일들을 관리하고 이 파일들에 접근하도록 하기 위해서 파일 디스크립터(File Descriptor)라는 추상 개념을 이용하게된다. 이름은 숫자가 아닐것처럼 생겼지만, 파일 디스크립터는..

CLI로 Python 실행시 No module named 오류 해결방법

# ModuleNotFoundError PyCharm같은 통합개발환경(IDE)에서 편하게 개발할때는 이슈가 없었는데, VS code로 docker에 띄울 배치 스크립트를 개발하던 중 문제가 생겼다. 가상환경(Virtual Environment)을 구성하여 활성화시키고, 실행시켰는데 모듈을 찾을 수 없다는 것이다. python .\my_game\batch1.py Traceback (most recent call last): File "C:\Users\ASUS\PycharmProjects\RankingServer\batch\my_game\batch1.py", line 6, in from libs.task.TaskManager import TaskManager ModuleNotFoundError: No mod..

[Docker] swarm을 알아보자

What is a swarm? Swarm은 여러 swarm mode로 동작하는 Docker 호스트들로 구성되어있다. 그들의 역할은 크게 매니저(manager)와 워커(worker)로 구분되는데, 두 가지 역할을 모두 수행하도록 할 수도 있다. 이들은 swarm에서 각각의 노드(node)가된다. 서비스(service)를 만들때 이 태스크(task)을 수행하려면 어떤 정도의 레플리카의 개수나 네트워크나 저장소 자원등을 필요로 하는지 기술하게 되는데, 이에 따라 태스크를 수행중인 어떤 노드가 망가진다면 서비스 수행이 가능한 다른 노드가 이 일을 맡게 된다. 이렇듯 Docker swarm은 클러스터링과 오케스트레이션을 쉽게 도와준다. Nodes 노드는 swarm에 참여하고 있는 Docker engine이다. 하..

[MongoDB] upsert시 E11000 duplicate key error 해결

unique index가 걸린 컬렉션에 bulkWrite를 통해서 upsert를 하고 있었는데, E11000 duplicate key error가 떴다. 내가 작성한 코드는 다음과 같았는데, 주목해보면 filter 부분에 내가 집어넣으려는 모든 데이터가 들어있다. tasks.append(UpdateOne(item, {"$set": item}, upsert=True)) Upsert는 다음과 같은 3개의 스텝으로 이루어진다. 1. filter에 따라 식별되는 도큐먼트를 찾는다. 2. 도큐먼트가 존재하면, 해당 도큐먼트를 atomic하게 업데이트한다. 3. 존재하지 않는다면, atomic하게 도큐먼트를 삽입한다. 나는 filter를 제대로 설정하지 않았다. filter에는 중복값을 식별할 수 있을만한 최소의 ..

[Windows] mysqlclient 설치하기 (pip install mysqlclient)

MySQLdb/_mysql.c(29): fatal error C1083: 포함 파일을 열 수 없습니다. 'mysql.h': No such file or directory error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30 133\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2 pip install mysqlclient를 하려고하면 위 오류로 인해 설치가 막힌다. # 빠른 해결법 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 사이트에 접속하여 mysqlclient 중 ..

python이 Microsoft Store를 열때 해결방법

python >> Python python이라는 명령어를 치면 뜬금없이 Microsoft Store가 열렸다. microsoft store에서 Python을 받으려다 실패한것이 화근이었는데, 환경변수에는 Windows Apps가 있어서 이 안에 python을 실행시키고 있는 것이다. 이를 해결하기 위해서는 해당 경로로 들어가서 python이나 python3등 파일을 제거해주어야한다. 다음 명령어를 터미널에 쳐서 지워주자. Remove-Item $env:USERPROFILE\AppData\Local\Microsoft\WindowsApps\python*.exe

윈도우로 개발하기 - 맑은 고딕이 싫어요!

맥북을 산 이래로 개발할때는 쭈욱 맥만 고수해왔다. 아래 이유들 때문에 윈도우즈 컴퓨터로 잠시 코딩좀 할라치면 익숙하지 않아 난항을 겪었다... MacOS로 개발하는 장점 기본 폰트의 가독성이 우수 UNIX 기반이라 명령어도 새로 익힐필요없고, 환경설정이 편리 Cmd + 화살표 조합으로 Line의 처음과 끝 자유롭게 이동가능 Xcode 사용 가능 손에익은 DBA 툴인 DBeaver 사용가능 게임을 할 수 없기 때문에 개발에 집중가능(?) 사실 안 좋을 이유가 없지만, 느려도 꾹꾹 참으면서 했지만...첫 재택에서 일이 터졌다. 2018 인텔 CPU 맥북으로 안드로이드 스튜디오와 게더타운을 동시에 켜두면 한 글자 쓸때마다 버벅여서 바로 애플 스토어로 달려가서 맥 스튜디오라도 지르고 싶은 심정이었다. 하지만 ..