전체 글 536

SCP로 두 컴퓨터간 파일 옮기기 (Windows open ssh 설정)

핵넷이라는 게임은 해커가되어 여러 컴퓨터를 넘나들며 scp 명령어를 통해 파일을 빼오는 게임인데, ㅋㅋㅋ그냥 생각나서 사진 첨부해봤다. 이번에 쓰던 맥북의 성능이 모자라다고 느껴서 게임용인 윈도우즈 노트북으로 개발 디바이스를 옮겼는데 맥북이 드디어 팔렸다! 그래서 몇몇 프로젝트들이나 원래 맥북에있었던 중요 파일들을 옮기는 작업을 진행중에 글을 쓰게되었다. scp scp는 secure copy의 약자로, 네트워크를 통해 두 호스트간의 파일을 복사한다. 데이터 전송에 SSH를 사용하기때문에 SSH와 동등한 보안수준을 제공한다. 아래는 간단한 명령어 예시이다. # file을 원격지의 ~/Documents에 복사 scp @:/Documents # file1, 2를 원격지의 ~/Documents에 복사 scp ..

Cloudflare를 이용한 무료 HTTPS 설정 (with NGINX)

메모용으로 간단히 작성되었습니다. 1. CloudFlare에 Add Site 2. SSL/TLS > Full(Strict)로 설정 3. Origin Server탭에 들어가서 Create Certificates 4. 만들어진 PEM키를 서버에 저장. (orifianl certificate와 private key 둘 다 있음) 5. nginx config 수정 server { listen 80; listen [::]:80; server_name your.domain; access_log /var/log/nginx/railotaku-access.log; error_log /var/log/nginx/railotaku-error.log; location / { return 301 https://$server_na..

[Python] zstandard로 dictionary list 압축하기

# ZstdHelper HTML 삽입 미리보기할 수 없는 소스 아래 내용을 토대로만든 Zstd 헬퍼 클래스입니다. # 압축 ZstdHelper().compress(dictlist) # 압축해제 dictlist = ZstdHelper().decompress(filename) # pickle? 파이썬에서 dictionary list를 파일로 저장하고, 다시 읽으려고 할때 일반적으로는 간편한 pickle을 이용한다. 10만개의 딕셔너리를 담고있는 파이썬 리스트를 파일로 저장하고, 읽는 예시 코드를 보자. if __name__ == '__main__': result = list() for i in range(1, 100000): result.append({"indexofitem": i}) pickle_test(..

[Next.js] MongoDB 연결하기 (next-connect, typescript)

next-connect는 Next.js에서 미들웨어를 사용할 수 있게 도와주는 라이브러리다. 여기서 말하는 미들웨어는 웹 서버에서의 미들웨어(Middleware)와 의미가 통하는데, 요청과 응답 사이 중간에서 한번 거치면서 수행되는 함수다. 보통 여기서 연결된 DB 객체를 넘겨준다던가 세션 관리를 하게된다. 시작하기 몽고 DB를 설치하자. 귀찮게 몽고DB설정까지는 다루지 않을 것이다. 사실...패키지 설치부터 말하는 것 조차 귀찮지만!ㅋㅋㅋ yarn add mongodb middleware라는 폴더를 생성하고, 그 아래에 database.ts를 추가시켜 주자. 이 파일에서는 연결된 mongodb가 없다면 새로 연결해서 req 객체에 담아 넘겨줄 것이다. src/ ├── pages/ │ └── api/ │..

[Next.js] 개발 모드에서 useEffect가 두 번 호출될때

yarn dev로 development 모드에서 개발 중일때 useEffect 내의 코드가 두 번 호출된다. hydration 이후에 업데이트를 하므로 2번 호출되는 것은 정상적인 동작이지만, 이러한 behavior를 원하지 않을 때가 있다. 그럴경우 next.config.js에서 reactStrictMode를 false로 바꾸어주면 된다. /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: false, } module.exports = nextConfig 관련해서 더 많은 정보를 얻고싶다면, github 이슈를 참고하면된다.

[Next.js] process.env가 undefined로 나올때

환경변수를 프론트에서 사용하려 했을때 .env.*에 선언되어있음에도 불구하고 undefined로 나올 것이다. 다음과 같이 환경변수가 선언되어있다고 가정하면, MY_NAME="lou" Next.js Version 9.4 이상 Next.js 버전이 9.4+ 인경우, 환경변수 이름에 NEXT_PUBLIC_을 프리픽스(prefix) 붙여주면 사용가능해진다. 따라서, MY_NAME 환경 변수명을 NEXT_PUBLIC_MY_NAME으로 바꾸어준다면 해결된다. Next.js Version 9.4 미만 그렇지 않을 경우 next.confg.js에 사용할 환경변수를 설정해주어야한다. module.exports = { env: { MY_NAME: process.env.MY_NAME, }, }

From jQuery to Next.js

오래전에 배워 손에 익은 jQuery를 놓치못하던 틀딱같은 나... 웹 개발은 재미없기도하고 개인 프로젝트나 정말 잠깐잠깐 회사에서 바쁠때 도와주는 식으로만 건드려서 제대로 해볼 생각이 없었다. 특히 React의 useXXX는 처음 시작하는 사람을 어질어질하게 만드는 면이 있다. 그렇게 흥미를 잃고있던 와중 아는분이 심리테스트를 만들어보고싶다고 얘기해서 이참에 요새대세 Next.js로 도와줘볼까? 해서 시작하게되었다. 심리테스트라 난이도도 어렵지 않고 돈벌려고 하는 것도 아니니 github에 오픈소스로 공개해서 정리도 제대로 해보려한다. https://nextjs.org/learn/foundations/from-javascript-to-react 역시 공식이 최고지! 아직도 전통적 방식의 html/css..

나/이슈 2022.06.18

Docker에서 shellscript crontab으로 돌리기

docker container내의 crontab에서 scripts/batch.sh를 실행시키고자 한다. 5분마다 실행을하고, 필요한 환경변수를 crontab 작업에 등록시켜준다. SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin TZ=Asia/Seoul */5 * * * * /batch/scripts/batch.sh 2>&1 | tee -a /proc/1/fd/1 /batch/logs/batch.cron.log # SHELL=/bin/bash 등록된 작업을 실행시킬 쉘을 직접 지정한다. 기본값은 /bin/sh이다. # PATH=/user/local/sbin... 쉘에서 쓰는 환경변수와 crontab에서 사용하..

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 서비스 제한, 없을 경우 구글 ..