기본 콘텐츠로 건너뛰기

2020의 게시물 표시

유튜브 "저작권 침해 신고"

네이버에서 현재 들리는 음악을 분석해서 곡명을 찾아주는 것을 처음 보았을 때 (IT전공이지만) 그쪽은 전공이 아니라서 무척 놀라고 신기했습니다.   그리고 오늘 또 새로운 경험을 했습니다. 오늘 유튜브에 동영상을 하나 올렸는데, "저작권 침해 신고"라고 나오더라고요. 내용을 자세히 보니 동영상에 사용된 음악 때문이었습니다. 유튜브가 제가 올린 동영상을 분석해서 곡명과 작사/작곡자를 찾은 것이죠. 그래서 이제 뭘 어떻게 해야 하나 싶어서 알아보니 결론적으로는 아무것도 안해도 되더라고요 ㅎ 알아본 것을 공유합니다. 1. 음악 저작권자는 크게 세 부류가 있습니다. 작사/작곡자, 연주자, 음반제작자 2. 음악을 사용하려면 각각에게 모두 허락을 받아야 합니다. 직접 연주/녹음했더라도 작사/작곡자에게는 사용 허락을 받아야 합니다. 3. 유튜브는 동영상을 분석해서 저작권이 있는 음악을 찾아내고, 저작권자가 설정한대로 처리합니다. (광고를 통한 수익 창출, 동영상 재생 금지 등) 제 경우에는 저작권자가 광고를 통한 수익 창출로 설정이 되어 있었고, 만약 누군가 제가 올린 동영상을 봄으로써 광고 수익이 발생하면 음악 저작권자에게 그 수익이 전달됩니다. 제가 수익 창출을 목적으로 올린 동영상이 아닌데도 말이죠. 처음에는 너무 복잡하고 마음이 불편해서 싫었는데 알고나니 음악하는 사람들의 권리를 지켜주고 계속 활동할 수 있도록 해주는 좋은 시스템이라는 생각이 들었습니다. 빅데이터를 이렇게 쓸 줄 몰랐어요 ㅎㅎ 참고 "커버송을 한다고요? 음악저작권의 오해와 진실" - https://youtu.be/6QJC2waCHsA "Content ID 소유권 주장이란 무엇인가요?" - https://support.google.com/youtube/answer/6013276 "저작권 게시 중단과 Content ID 소유권 주장의 차이점" - https://support.google.com/youtube/answer/700210

맥OS 빅서(macOS Big Sur)로 업그레이드 후 이클립스 에디터에서 화면이 제대로 갱신되지 않는 문제

맥OS 빅서로 업그레이드 이후부터 이클립스가 이상해졌습니다. 에디터에서 제가 내용을 입력하면 해당 라인이 깨지면서 제대로 표시가 안 되다가 잠시 후 정상적으로 표시가 되었습니다. 또 검색을 했을 때 화면이 갱신되지 않아서 커서를 위아래로 한번 움직여 주어야 제대로 화면이 나타났습니다. 찾다가 아래의 글을 발견했습니다. https://developer.apple.com/forums/thread/654876 요점은 Night Shift 기능을 끄면 된다는 것인데, 저는 해당 기능을 사용하지는 않았습니다. 대신 다크 모드를 쓰고 있었는데, 다크 모드를 껏더니 증상이 해결되었습니다. (2020.12.03.) 증상이 해결된 줄 알았는데 아니네요. 이클립스 classic 스킨으로 바꾸면 좀 낫긴 한데 JUnit 결과창에서 각 테스트 함수를 클릭했을 때 화면이 정상적으로 갱신되지 않습니다. 에휴 ㅠㅠ (2020.12.25.) 빅서 11.1 업데이트하고, 이클립스도 2020-12(4.18.0)으로 업데이트 하고 나서부터는 모든 것이 정상이네요 얏호!

숫자 연산 시 주의사항

 자바에서 이미지 관련 알고리즘(Floyd-Steinberg 디더링)을 구현했는데 결과가 이상하게 나왔습니다. 도무지 원인을 몰라서 한참 삽질을 하다가 이대로는 안 되겠어서 하루자고 머리좀 식힌 후 다시해보니 양자화 오류값을 주위 픽셀에 덧셈할 때 항상 0을 더하더군요.. 코드는 다음과 같았습니다. image[y][x] += 7/16 * 양자화오류값 도대체 왜그러나하고 생각해보니.. 7/16이 정수형이라서 결과값이 0이 되었습니다. 7/16 = 0 0 * 양자화오류값 = 0 다음과 같이 고친 후에야 알고리즘이 정상화되었습니다. image[y][x] += 7f/16 * 양자화오류값 잘못된 것을 깨달을 수 있는 지혜를 주신 하나님께 감사드립니다.

와콤 BAMBOO Tip (CS710B)

 LG G Pad IV 8.0 호환 안 되네요 ㅎ 펜으로 글을 쓰면 뚝뚝 끊겨요.. 모드를 바꿔봐도 동일합니다 ㅠ  팬 끝이 고정이 아니라 갤럭시 노트 펜처럼 누르면 살짝씩 들어가는 형태입니다. 애플 아이패드 프로 2세대 12.9에서는 잘 되는데 사이드카에서 지원이 안 됩니다... 사이드카는 애플 펜슬만 지원하는 것 같아요.   (2020.11.29.) 애플 아이패드 프로 2세대 12.9에서 계속 써본 결과... 처음에는 인식이 잘 되다가 일정 시간이 지나면 인식이 안 됩니다. 이게 지문 때문에 그러는 것 같기도 하고... 원인을 잘 모르겠어요. ㅠ

[영화] 미라클메이커

거의 8년만에 본 것 같습니다. 정말 잘 만든 영화입니다. [가장 인상 깊었던 부분] 예수님께서 누워서만 지내는 중풍병 환자에게 "네 죄가 용서 받았다"고 말씀하십니다. 주위 사람들이 수근거립니다. '신성모독이다! 신 외에 누가 죄를 용서할 수 있나?' 그것을 알고 예수님께서 말씀하십니다. " '네 죄가 용서받았다'하고 말하는 것과 '일어나서 걸어가거라’ 하고 말하는 것 가운데서, 어느 쪽이 더 말하기가 쉬우냐? " 당연히 용서 받았다고 말하는 것이 쉽습니다. 그러나 예수님께서는 중풍병 환자에게 일어나 걸으라고 말씀하셨고, 그는 병이 나아서 걸어갔습니다. 더 어려운 일도 하셨는데 죄도 용서하실 수 있습니다.

나만의 복수법

잠깐 자리를 비웠다. 자리에 돌아오니 포스티잇 한장. OOO에게 전화 달라는 메모. 전화를 걸었다. 기분이 무척 나빠졌다. 상대가 내 마음을 상하게 했다. 냅다 소리지르고 화내고 싶었다. 하지만 같은 잘못을 반복하고 싶지 않았다. 참았다. 전화를 끊었다. 겉으로는 드러내지 않았다. 그러나 화가 나서 폭발하기 직전이었다. 심장이 두근거리고 팔이 미세하게 떨리고 어떻게 복수할지만 생각했다. 그 때 주님의 말씀이 떠올랐다. "원수를 사랑해라" "너를 모욕하는 사람을 위해 기도해라" 내 후회스런 과거가 떠올랐다. 아, 나도 똑같은 사람이다. 나도 수없이 다른 사람을 괴롭게 했었다. 그를 위해서 기도했다. 그가 잘 되기를 기도했다. 그의 삶이 평탄하길 기도했다. 아까 그 포스트잇에 적었다. "원수를 사랑해라 - Jeus" 그리고 모니터에 붙였다. 볼 때마다 그를 위해 기도하련다. 볼 때마다 내 과오를 회상하련다. 예수님처럼 되고 싶다. '19년 6월 26일에 썼던 글.

아내

「너희가 잘못한 일이 또 하나 있다. 주님께서 너희 제물을 외면하시며 그것을 기꺼이 받지 않으신다고, 너희가 눈물과 울음과 탄식으로 주님의 제단을 적셨다.  그러면서 너희는 오히려, ‘무슨 까닭으로 이러십니까?’ 하고 묻는다. 그 까닭은, 네가 젊은 날에 만나서 결혼한 너의 아내를 배신하였기 때문이며, 주님께서 이 일에 증인이시기 때문이다. 그 여자는 너의 동반자이며, 네가 성실하게 살겠다고 언약을 맺고 맞아들인 아내인데도, 네가 아내를 배신하였다.   한 분이신 하나님이 네 아내를 만들지 않으셨느냐? 육체와 영이 둘 다 하나님의 것이다. 한 분이신 하나님이 경건한 자손을 원하시는 것이 아니겠느냐? 너희는 명심하여, 젊어서 결혼한 너희 아내를 배신하지 말아라.  “나는 이혼하는 것을 미워한다. 주 이스라엘 의 하나님이 말한다. 아내를 학대하는 것도 나는 미워한다. 나 만군의 주가 말한다. 그러므로 너희는 명심하여, 아내를 배신하지 말아라.” 」 말라기서 2:13‭-‬16 (새번역) https://bible.com/bible/142/mal.2.13-16.RNKSV 아내에게 성실한 사람으로 살아서 하나님께도 성실한 사람임을 증명할 것입니다.

부활

"너를 볼 때면 하나님께서 살아계시다는 것을 알 수 있어" 제가 초등학생일 때부터 다닌 교회의 어느 할머니께서 가끔 제게 하시는 말씀입니다. 일주일에 한번 정도 밖에 보지 못하는 관계인데도 제 삶의 변화를 분명하게 느끼셨나봅니다. 세상에 누가 귀중한 보물을 하찮은 것들과 맞바꿀까요? 하지만 저는 그랬습니다. 제 삶을 엉망진창으로 만들어버렸습니다. 뉴스에서 자신의 귀중한 삶을 하찮은 것들과 맞바꾸고 파멸로 치닫는 사람들을 볼 때면, 경멸과 비난을 쏟아내다가도 '내가 저 사람들과 다른 것이 무엇인가?'라는 생각에 이내 멈춰버립니다. 저는 하나님께 감사드립니다. 제가 온전해진 것은 아니지만, 그래도 제가 더는 과거와 동일한 모습이 아니기에.. 2,000년 전에 저를 위해 죽으신 그분은 부활하셨고, 지금도 살아계셔서 저를 변화시키시고 올바른 길로 인도하십니다. 오랜 시간동안 많은 사람들이 예수의 죽음과 부활에 대해 의문을 제기했지만 여전히 기독교가 유지되는 이유는 무엇일까요? 그 의문들을 파해치다가 도리어 그것을 믿게 되는 사람들이 자꾸 나타나는 이유는 무엇일까요? 예수가 부활했다는 증거는 너무나 확고합니다. 예수의 부활에 대해 조사하다가 무신론자에서 기독교인이 된 리 스트로벨은 그의 책 "예수는 역사다"에서 이렇게 말합니다. "나사렛 예수를 신뢰하는 것보다 무신론을 주장하기 위해 훨씬 더 많은 믿음이 필요하다" (p.151) 그리고 이러한 증거를 따라 살아보면, 그것이 사실임을 몸소 느낄 수 있습니다. 기독교의 핵심 가르침은 "예수를 믿는 사람은 죽은 후에 다시 부활하고, 새로운 세상에서 영원히 행복하게 살게 된다."는 것입니다. 이것은 불쌍한 사람들을 희망 고문하기 위해 꾸며진 이야기가 아닙니다. 예수의 죽음과 부활이라는 확실한 증거 위에 튼튼하게 세워진 소망입니다.

합리적인 사람들

[합리적인 사람들] 성경에 기록된 예수의 이야기를 보면 터무니없습니다. 천사나 귀신이 등장하고, 기적으로 병을 고치거나, 죽은 사람이 다시 살아납니다. 성경을 믿지 않는 것은 합리적인 판단입니다. 그런데 저를 포함해서 수많은 사람이 성경을 사실이라고 믿고 있습니다. 초자연적인 것을 믿다니... 비합리적이죠? 하지만 여기에도 합리적인 이유가 있습니다. 기독교의 핵심은 예수의 죽음과 부활인데, 이게 굉장히 근거가 튼튼하기 때문입니다. 신을 믿는 사람이든 아니든 각자 나름대로 합리적인 이유가 있습니다. 각자 합리적인 판단으로 내린 결정이라고 생각합니다. 그런데 예수의 죽음과 부활을 조사해본 적이 없다면, 꼭 한 번 조사해보시기 바랍니다. "기독교는 거짓이라면 전혀 중요하지 않은 진술이 되지만, 사실이라면 무한히 중요하다. 적당히 중요하다는 것은 절대로 있을 수 없는 경우다." (C.S. 루이스) [성경을 사실로 믿는 몇 가지 이유들] 제가 성경을 사실로 믿는 이유 중 몇 가지를 소개합니다. 1. 초자연적인 것을 허용한다면 예수가 죽고 부활했다고 믿는 것이 가장 간단한 설명이 됩니다.     예수가 죽은 후 벌어진 일을 설명하는 다양한 가설이 있습니다.     예수가 실제로 죽은 것이 아니라 반쯤 죽은 상태였다가 회복되었다거나,     단체로 환상을 보았다는 주장 등등..     하지만 (초자연적인 것을 허용한다면) 예수가 죽고 부활한 것이 가장 훌륭한 설명입니다. 2. 예수의 기록은 일찍 기록되고, 사본이 굉장히 많습니다.     예수에 대한 성경(신약)의 기록은 고대의 많은 서적들과 마찬가지로 원본이 없습니다.     하지만, 다른 고대 서적들과는 두 가지 차이점이 있습니다.     우선 예수에 대해 최초로 기록된 시기가 굉장히 짧습니다.     예수의 생애가 기록된 복음서 중 가장 빠른 것은 예수의 사후 30년 이내

Active X에서 SetTimer를 해도 안 되거나 PostMessage가 처리되지 않는 경우..

MFC로 만든 Active X 프로그램을 유지보수하는데, 주기적으로 실행할 작업이 있어서 SetTimer를 이용했습니다. 그런데... 웹화면에서 메뉴를 이동하고 나면 어째서인지 SetTimer로 지정한 작업이 실행되지 않았습니다. 원인을 찾지 못해서 결국 스레드로 처리하게 만들었습니다. 그리고 스레드에서 UI에 접근할 일이 있어서 PostMessage를 이용했습니다. 그런데.. 이상하게도 PostMessage로 메시지는 보내는데, 이것도 처리되지 않았습니다.. (메시지는 보내지는 것 같은데 실행이 안 되는 것 같았습니다.)

Oracle DBMS 정규표현식 뒤에서부터 찾기

정규표현식으로 원하는 문자열을 찾고 싶은데, 문자열에서 가장 마지막으로 찾은 값을 가져오고 싶을 때에는 어떻게 하면 좋을까요? 일반적인 프로그램에서는 해당 언어/라이브러리에서 제공하는 기능을 이용해서 가장 마지막으로 찾은 값을 가져올 수 있겠지만, Oracle DBMS에서는 지원하지 않았습니다. 찾으려는 문자열은 다음과 같았습니다. 유형1: '|aaa|bbb|ccc' 유형2: '|aaa||ccc' 유형3: '|aaa|bbb|' 유형4: '|aaa||' 유형5: '||bbb|ccc' 일종의 배열인데, "|"를 구분자로 사용한 것입니다. 각 유형 별로 가장 마지막의 데이터를 찾는 것이 목적이었습니다. 예를 들면.. 유형1: ccc 유형2: ccc 유형3: bbb 유형4: aaa 유형5: ccc 이렇게 찾아야 하는 것이죠.