본문 바로가기

전체 글

Shell에서 확인할 수 없는 개발자 프로그램의 실행 인터넷에서 다운로드한 프로그램을 Mac에서 실행하려고 할 때 확인되지 않는 개발자가 배포한 앱이라는 메시지와 함께 실행이 거부되는 경우가 있습니다. 프로그램의 의도는 악성 프로그램을 실행하지 않게 하여 컴퓨터를 보호하기 위함이지만 때로는 OS에서만 모를 뿐 나는 알고 있기 때문에 실행해도 무방한 프로그램들도 있기 마련입니다. 이런 경우의 해결책은 대부분 어디에서 앱을 받던 실행하게 하는 보안상의 옵션을 변경하도록 유도하고 있습니다. 이 경우 1. 프로그램을 실행할 때마다 옵션을 변경하는 번거로운 작업을 하거나 2. 옵션을 꺼두어서 항상 보안의 위험에 노출되어 있어야 하는 상황에 처하게 됩니다. 두 가지 경우 중 어느 쪽도 반갑지 않기 때문에 다른 방법을 찾아보기로 했습니다. zsh에서는 ls의 옵션으로 .. 더보기
Page Visibility API 파일이 변경되면 리로드를 해주는 작은 프로그램들이 많이 있는데, 이런 프로그램을 쓰지 않고 브라우저가 활성화되면 발생하는 이벤트가 없을지 찾다가 Page Visibility API를 발견했다. 설명은 이곳에서 확인할 수 있다. 결론부터 말하면 기대한 것과는 다르게 동작해서 쓰지 않기로 했다. 기대했던 것은 다른 앱을 사용하다가 브라우저를 활성화시켰을 때 리로드되는 것이었는데, 이 API를 사용하면 다른 앱을 쓰다가 브라우저로 이동해도 이벤트가 발생하지 않는다. 대신 다른 브라우저의 다른 탭을 사용하다가 돌아오면 이벤트가 발생한다. 테스트한 코드는 다음과 같다. document.addEventListener("visibilitychange", () => { console.log(document.visibi.. 더보기
Machine Learning by Stanford University 후기 Machine Learning이 궁금해서 Coursera의 Machine Learning by Stanford University 강의를 들었다. 검색을 조금만 해봐도 쉽게 알 수 있지만 이 강의는 매우 유명하다. 처음 선택할 때는 유명세만 보고 골랐지만 수업이 다 끝난 지금 생각해보면 영어의 압박은 있지만 꽤 괜찮은 시작이라는 생각이 든다. 강의를 들은지 시간이 좀 됐지만 조금 남은 느낌마저 사라지기 전에 후기를 남겨본다. 강의는 모두 11주로 구성되어 있다. 1, 10, 11주는 강의만으로 구성되고 2~9주의 경우에는 실습이 추가되어 있다. 보통 1~5시간 분량의 강의로 구성되나 실제 사용한 시간은 2배 정도였던 것 같다. 비디오 중간 중간에 정신도 차려야 하고, 이해 못하는 부분은 찾아보기도 해야 .. 더보기
한국 거주자의 스톡옵션 세금 스톡옵션의 세금이라는 글을 보고 간단하게 알고 있는 수준에서 한국 거주자의 스톡옵션 세금에 대해 정리해본다. 임원이 아닌 직원 A가 Z라는 회사에 2020년에 입사하며 3,000주를 만 원에 매입할 수 있는 스톡옵션을 받았다. 그리고 2년 후인 2022년, 회사의 가치가 올라 주식은 주당 2만 원이 되었다. A는 스톡옵션을 행사하여 3,000 주를 모두 주식으로 전환한다. 이 때, 세금의 대상이 되는 금액은 실제 주식의 가치인 6천만원과 주식을 실제로 매입하는데 들어간 돈인 3천만원의 차액인 3천만원이 된다. 3,000 * (20,000 - 10,000) = 30,000,000 세금은 스톡옵션을 행사하는 시점에서 A가 재직중인지의 여부에 따라 다르다. 재직 중인 경우, 스톡옵션 행사에 대한 근로소득에 포.. 더보기
ElectricObjects 간단 사용기 날이 한참 더울 때, 기분 전환 삼아 질렀습니다. 표면적인 목적은 미술작품 감상좀 해보자... 였습니다만 그럴거면 미술관을 다니는 것이 더 효과적이었겠지요.. 서른번도 넘게 갔을테니. $200이 넘어 통관시 관세를 내야 하는데 대략 10~12% 정도 되는 느낌이었습니다. 통관시에는 '모니터'로 처리됩니다. 구매하면서 개인 통관 번호를 기입하는걸 까먹어서 나중에 이메일로 추가 요청했는데, 해주겠다는 답장은 엄청나게 빨리 왔으나 실제 배송 정보에 포함되지 않아 물건이 세관에 도착한 후 관세사에게 전화를 받았습니다. 주문시 이 부분을 잘 챙기면 더 일찍 물건을 받을 수 있을 것입니다. 세금을 납부하고 나니 이틀만에 배송이 완료되더군요. 기본적으로 포장된 상태가 매우 좋아 물건너 오는 과정에서 드라이버같은 날카.. 더보기
인스타그램 크롤러 만들기 얼마전에 전자액자를 하나 샀습니다. 더운 여름에 기분전환을 해볼까 싶어 구매했는데 날이 다 시원해지고서야 제 손에 들어왔네요. 처음에는 직접 찍은 사진도 올려보고, 괜찮은 그림도 올려봤지만 오래지 않아 귀차니즘이 찾아오더군요. 결국 매일 업데이트되는 인스타그램 피드에 있는 사진을 보여주고 싶어졌습니다. 사진의 품질도 나쁘지 않을 뿐더러 누군가가 업데이트까지 해주니 바로 이거다 싶었습니다. 인스타그램에서는 API를 제공하고 있어 API를 사용할까 찾아보니, 저에게 필요한 피드 정보를 얻을 수 있는 API는 작년에 중단됐더군요. 이런 날벼락이. 어렴풋이 작년에 인스타그램이 피드 API를 중단해서 인스타그램 클론이 나오기 힘들게 됐다는 기사가 기억났습니다. 이런건 찾아보기 전에 기억날 것이지. 그래서 결국 웹.. 더보기
YouTube 모바일 웹페이지에서는 동영상이 자동으로 재생된다? 모바일 사파리나 크롬 모바일과 같은 모바일 브라우저에서는 동영상이 자동으로 재생되지 않습니다. autoplay 속성을 사용하거나 JavaScript 함수를 이용해서 자동으로 재생시킬 수 없습니다. 이것은 데이터 네트워크에서 사용자가 의도하지 않게 고용량의 동영상을 시청할 때 발생할 수 있는 비용을 막고자 함입니다. (참고) 결과적으로 클릭과 같은 사용자의 행동이 있어야만 동영상이 재생됩니다. 그런데 우연히 유튜브 모바일 웹에서는 자동으로 동영상이 재생된다는 이야기를 들었습니다. 저 또한 모바일 웹에서 자동으로 동영상을 재생시키려다 포기한 적이 있어 그 방법이 궁금해서 잠시 살펴봤는데, 결론은 자동으로 재생되는 것 처럼 보인다는 것입니다. 자동으로 재생되는 것처럼 보이는 이유는 유튜브 모바일 웹이 Sing.. 더보기
Nginx를 reverse proxy로 사용할 때 POST 요청에서 500 에러 발생 오늘 마주친 문제는 Nginx에서 reverse proxy를 설정해 application server를 연결했을 때, POST 요청을 보내면 500 에러가 발생하는 현상입니다. 요청에 따라 정상적으로 실행되기도 합니다. Nginx를 사용해 많은 개발 작업을 해봤던 분들이라면 한 번쯤 겪었을 듯 한 문제가 아닐까 하는 생각이 듭니다. 문제의 원인은 client_body_buffer_size 보다 큰 값이 post의 body로 전달됐기 때문입니다. 기본 값이 32bit에서는 8K, 64bit에서는 16K인데, 문제를 발생시켰던 요청의 body는 24K가 넘었습니다. 요청 중에 body의 크기가 7K 정도였던 것은 정상적으로 실행된 이유도 함께 알 수 있습니다. client_body_buffer_size를 5.. 더보기