전체 글(403)
-
자바스크립트변수 var! 값을 재사용하기 위해 저장해두는 메모리 공간 변수호이스팅?
변수 = 메모리 공간 자체 변수는 값이 아닙니다. 그 값을 담고 있는 공간입니다. 그리고 그 변수의 이름은 공간을 가리키는 주소입니다. 프로그램은 인간이 문제를 해결하는 과정을 컴퓨터로 고대로 옮겨놓은 것 뿐이야. 기계이기 때문에 더 빠르게 반복할 수 있고 천문학적인 숫자를 쉽게 다룰 수 있다는 장점이 있지! 하지만 컴퓨터는 사람의 두뇌 연산과 살짝 차이가 있어. 사람 컴퓨터 두뇌라는 하나의 시스템에서 연산과 기억을 모두 수행 (물론 뇌 안에서도 영역이 있다만 여기서 그것까지 다루지 말자) [연산을 위한 CPU]와 [기억을 위한 메모리]로 나뉨 프로그램이 동작하는 원리는 매우 단순해. 매번 발생하는 새로운 정보를 기존 정보와 융합하는 거야. 사람이랑 똑같지 않아? 우리도 원래 알던 거에 새로운 정보를 추..
2021.07.18 -
node js 백만불짜리 꾸울팁 zip 파일 생성 및 다운로드 구현하기
오늘은 제가 5일간 전전긍긍해서 얻은 쾌거를 나누고자 합니다. 그것은 바로 node.js에서 zip 파일을 다운로드하는 로직을 구현하는 알고리즘인데요. node.js가 자바스크립트 기반이라고 해서 만만하게 볼 것은 또 아니잖아요..ㅎ python과 flask를 이용할 때는 아주 편합니다. flask 모듈에 내장된 send_file을 이용하면 zip이든 csv든, responseType을 크게 신경쓰지 않아도 클라이언트에 알아서 뿌려 주니까요. 하지만 node.js는 모듈 생태계가 아주 많기에, 딱 '이거다!'라고 정형화된 방법이 없어서 로직의 가짓수가 넘쳐납니다. 이 말은 즉 경우의 수가 많기에 구글링해도 내 상황에 맞는 전례를 찾기 어렵다는 말과 같습니다. 저만의 꿀팁을 공개합니다. node.js로 z..
2021.07.18 -
Expressions with $project
db.movies.aggregate([ { $match: { cast: { $elemMatch: { $exists: true } }, directors: { $elemMatch: { $exists: true } }, writers: { $elemMatch: { $exists: true } } } }, { $project: { _id: 0, cast: 1, directors: 1, writers: { $map: { input: "$writers", as: "writer", in: { $arrayElemAt: [ { $split: ["$$writer", " ("] }, 0 ] } } } } }, { $project: { labor_of_love: { $gt: [ { $size: { $setIntersecti..
2021.02.04 -
[아적전반생] 쉐도잉 공부 - 210203
https://youtu.be/I6OxmXAUhqM 1.就送到地铁站吧,否则回去晚了,你老婆不高兴的 지하철까지만 데려다 주세요, 그렇지 않고 집에 늦게 돌아가면 아내가 화낼 거예요 2.不用上班,不用为了挣钱发愁,孩子有保姆带,这都是我们这些觉不够睡的人想都不敢想的事 출근할 필요 없고, 돈 벌려고 걱정할 필요 없고, 애는 보모가 봐주고, 이런 건 우리 같이 잠도 충분이 못자는 사람들이 감히 상상할 수 조차 없는 일이죠 3.如果,我是说如果,陈俊生要是有了外遇,你准备怎么办? 만약에 내 말은 만약에 말이야, 남편이 진짜 바람피면 너 어떻게 할거야? 4.他发过誓的,如果有的话,遭天打雷劈 그는 만약에 바람피면 하늘에서 날 벼락 떨어져 맞을 거라고 맹세했어 5.你算过你一年会花多少钱吗? 너는 네가 1년에 얼마나 쓰는지 계산해 봤니?..
2021.02.03 -
[아적전반생] 쉐도잉 공부 - 210202
https://youtu.be/U1YXUENQktw 1.我们唯一应该感兴趣的就是他们的钱包 2.用最少的时间赚最多的钱这就是高效啊 3.至于事实真相是警察的工作 4.她老公又不是马云了,还不是替别人打工吗? 5.既然你父亲把你委托给我,从今天起我就是你的监护人 6.我对你一切要负责任 7.如果你另有高就,我也不拦着你 8.但是你要在这儿一天,我必须就得管着你一天 9.她那边是每天吃饱饭没事找事的主妇太太 10.你每天管她那么多闲事干吗? 11.对主妇太太来说,老公出轨等于天要塌了 12.我要第一时间知道那个桑卓懂是个什么货色 13.没准人家真的在加班呢 14.贺函如果白天送你一条项链,晚上还有心思加班? 15.懒得理你 16.他们不敢在工作时间这么明目张胆出去买东西 17.十五分钟,我送你回去 1.우리가 유일하게 관심 갖아야 할 것은 그들의 지갑이야 2.가장 적은 시간으..
2021.02.03 -
[아적전반생] 쉐도잉 공부 - 210201
https://youtu.be/d8G-jFs7JSA 1.你要什么,如果我能达到的,我都会给你 2.越是千难万险,老天越是要落井下石 3.我现在开会走不开 4.你要换个别人也就算了,还是这种不可理喻的女人 5.麻烦你不要把我的家当成你的办公室 6.我没必要跟这样一个楚楚可怜,前途渺茫,没有任何生存能力的温室花朵讲人生道理 7.你懂个屁 8.只要你跟她划清界限,我怎么做都可以啊 9.我还心存一丝侥幸 10.臆想着陈俊生会在最后十分幡然醒悟
2021.02.03 -
Chapter 1: Basic Aggregation - $match and $project
Shaping documents with $project The correct answers are the following: Once we specify a field to retain or perform some computation in a $project stage, we must specify all fields we wish to retain. The only exception to this is the _id field. $project implicitly removes all other fields once we have retained, reshaped, or computed a new field. The exception to this is the _id field, which we m..
2021.02.03 -
max_user_connection 초과라고? 내 코드에 문제가 있는 거 아닐까?
python - flask - mariadb를 사용하던 중 자꾸 max_user_connection을 초과하는 상황이 생겼다. 처음에는 timeout을 짧게 해서 오래된 프로세스를 강제종료 시켜야 하나 싶었다. 하지만 뭔가 찜찜했다. 명색이 많은 사람이 함께 쓰기 위해 존재하는 데이터베이스지 않은가? 아무리 root권한이 없다고 해도 timeout을 만지면서까지 user_connection을 해결하는건 좀 이상하지 않나? 역시 모든 문제는 나로부터 시작된 것. connection을 열기만 하고 닫지를 않아서 프로세스가 증식했던 것이다. 누수가 생기는 것은 아닌지 잘 확인하고 다닐 것! conn.close();
2021.02.01 -
[MongoDB University] 정리
파이프라인 : $match(일치모양골라내기) -> $project(형태변형) -> $group(단일파일로만들어전체에대한비율계산) Stages cannot be configured to produce our desired output. This is definitely not correct. Stages can be configured in almost any way we desire. Pipelines must consist of at least two stages. This is not correct. Pipelines must consist of at least one stage, and can have many stages. Documents flow through the pipeline, pass..
2021.02.01 -
Python & MariaDB 연동하기
1. brew install mariadb 2. pip install mariadb 3. try: conn = mariadb.connect( user="name", password="pw", host="domain_name", port=3306, database="schema_name" ) except mariadb.Error as e: print(f"Error connecting to MariaDB Platform: {e}") sys.exit(1) cur = conn.cursor()
2021.01.24 -
4. PHP의 변수
데이터를 처리할 때는 반드시 불규칙적인 반복이 일어난다. 이때 변수는 불행할 뻔했던 개발자를 매우 행복하게 만들어준다.
2021.01.11 -
3. PHP의 데이터 타입
우리는 데이터를 특정 의도에 따라 처리하기 위해 프로그래밍 언어를 사용한다. 따라서 해당 언어가 지원하는 데이터 형식이 무엇인지 알아야 한다.Computer 라는 단어에서 유추할 수 있듯이 초창기 프로그래밍은 계산을 위한 부분이 많았다. // Number & Arithmetic Operator 하지만 역시 인간의 욕심은 끝이 없는 법. 숫자 말고도 문자, 소리, 영상 등 다양한 분야를 처리하고 싶어진 것. // String & String Operator // Escaping // Concatenation operator // String length function
2021.01.11 -
2. PHP의 원리
클라이언트가 브라우저를 통해 http request를 보낼 때 html 파일은 웹서버가 스스로 즉시 response 가능하다. 단, 어디까지나 정적 파일이다. 하지만 웹서버가 php 파일은 즉시 실행 불가능하기에 이를 php 프로그램에게 위임한다. 이때 php 프로그램은 /htdoc/index.php를 열어 php 코드를 실행하고, 웹서버가 알아들을 수 있는 html로 해석한다. 이렇게 만들어진 새로운 순수 html 코드를 다시 웹서버가 브라우저에게 전송하는 것이다. 단순한 정적 html과 달리, 웹 페이지를 그때그때 동적으로 생산해낼 수 있는 php!
2021.01.11 -
1. PHP의 등장
1 . php의 등장 html, css, js로 웹에서 서로의 정보를 주고받는다는 것은 엄청 획기적인 사건. 하지만 사람의 욕심은 끝이 없음. 관리할 파일이 증가함에 따라 유지보수가 매우 힘들어짐. 파일이 1억개라도 공통된 템플릿이 있다면 필요한 부분만 바로 수정 반영 가능. 따라서 php가 등장. 2. php 설치 bitnami MAPP // 제대로 설치되었는지 확인 3. 환경설정(마친 후 Apache 재부팅 필요) // /php/etc/php.ini display_errors = On // 개발시 스택 트레이스 등 보이기 opcache.enable=0 // 빠른 디버그를 위해 캐시 끄기
2021.01.11 -
[PHP] 파일함수
파일삭제 : unlink() $fp = fopen($fname, "w"); fwrite($fp, "fwrite함수를 이용한 데이터 입력"); fclose($fp); print "기록완료"; // 파일 삭제하기 // unlink("파일명") : 해당 파일을 삭제했을 때 TRUE 반환 $fname = "test2.txt"; if ( is_file($fname) && unlink($fname) ) { // 존재하는 경우 삭제. print $fname."이 삭제 완료되었습니다!"; } else { print $fname."는 삭제할 수 없습니다."; } 파일복사 : copy(원본파일, 대상파일) if (copy("test.txt", "test2.txt") ) { print "복사 되었습니다!!"; } else ..
2020.12.22