• 홈 오토메이션

    홈 오토메이션이 활성화가 되기 이전부터 손수 하나하나 깎아가며 홈 오토메이션을 만들어 왔던 입장에서 Home Assistant로 넘어온 이후까지 대충 정리해보는 글

    Read on →

  • X-Clacks-Overhead: GNU Terry Pratchett

    오늘도 브라우저가 아닌 httpie라는 커맨드라인 툴을 이용해 웹을 탐색하고 있었다.
    그런데 오늘은 익숙하지 않은 헤더가 보였다.

    Read on →

  • archive.is 차단하기

    웹 아카이브라는 것이 있다. Wayback Machine이라는 것도 있지만 오늘 차단할 것은 archive.is(aka archive.today)다.
    이 사이트는 웨이백 머신과 다르게 robots 규약을 존중하지도 않고 무작정 어떻게든 페이지를 보존하며, 삭제 요청을 보내면 “경찰한테 요청 하든가~”라는 식으로 조롱하기 바쁜 곳이다. 그렇기 때문에 이 사이트에서의 아카이빙은 차단하는 게 좋다는 결정을 내렸다.

    Read on →

  • SSH only for JumpProxy

    서버를 관리하다보면 SSH의 접근을 특정 호스트에서만 가능하도록 제한해야 할 경우도 생기고 ProxyJump 기능을 사용해야 할 때도 있다.
    ProxyJump 기능은 A호스트에 SSH 접속을 해서 그 터널을 통해 B호스트에 접속을 하는 것인데 당연하게도 A호스트에 접속 권한이 있어야 한다. A호스트에 대해서는 권한을 모두 제거하고 B호스트에 접속하기 위한 경유지로서만 사용 가능하게 하도록 설정하는 방법을 기록으로 남긴다.

    Read on →

  • return -1 / exit(-1)을 사용하지 마세요

    주로 POSIX OS 밑에서 프로그램을 작성할 때 에러가 나면 메인 함수에서는 return -1;, 다른 함수에서는 exit(-1);을 쓰는 경우를 굉장히 자주 목격할 수 있습니다. 단언하자면 이건 틀렸으며 사용하지 말아야 합니다. 전부 -11로 바꿔야 합니다.

    Read on →

  • Lotto 번호 생성기

    Read on →

  • 12시간제 대신 24시간제를 써야 하는 이유

    오전 10시 30분은 오전 11시 27분보다 이른 시각이다.
    오전 11시 27분은 오전 12시 18분보다 늦은 시각이다.

    Read on →

  • asyncio에서 multiprocessing 사용시 This event loop is already running 문제

    파이썬에서 asyncio를 사용하던 도중 multiprocessing.Process로 새 프로세스를 생성한 후 거기서 또 asyncio.run을 사용하면 RunetimeError: This event loop is already running이라는 에러가 뜰 때가 있다.
    그렇다고 get_running_eventloop을 사용해 보면, 돌고 있는 이벤트 루프가 없다고 뜨는 이상한 현상이 있다.

    Read on →

  • Nginx 디폴트 설정에 SSL 추가하기

    Nginx에 도메인을 여러 개 연결해 놓으면 사이트별로 설정파일을 만들기 마련이다. 각 도메인은 server_name kjwon15.net;과 같이 설정하게 되는데 설정하지 않은 도메인은 default 설정파일에 있는 server_name _;을 포함하는 서버 블록이 맡게 된다. 보통은 Welcome to nginx!를 보게 되지만 문제는 TLS 서버를 세팅했을 때다.

    Read on →

  • Steam 계정 보안의 문제점

    저번에도 한 번 그랬지만 오늘 또 스팀에서 이메일이 왔다. 로그인을 하려면 코드를 입력하라는 메일이다.
    이게 무슨 뜻이냐면 어딘가에 있는 누군가가 내 스팀 계정에 로그인을 시도해서 패스워드를 맞추는 데에 성공했고 이메일로 받은 코드만 입력하면 내 계정을 사용할 수 있는 상태라는 것이다. 2FA라고 불리는 이 기능 덕분에 난 내 계정을 살린 것 같지만 큰 문제점이 몇 개 있었다. 너무 막장이라서 블로그에 글을 적을 수밖에 없었다.

    Read on →