온라인 서비스 및 가입했던 사이트에서 무더기로 개인정보보호정책을 변경했다고 알려온다.


사용자 동의를 받거나 전체 메일을 통해서 변경된 정책의 링크를 보내온다.


봤더니 유럽 지역의 거주자의 데이터 보호를 위한 GDPR(General Data Protection Regulation) 적용이 이 달 25일부터 시작된다고 한다.


https://en.wikipedia.org/wiki/General_Data_Protection_Regulation


개인정보와 관련된 모든 정보는 개인을 특정할 수 없어야 하고, 이러한 정보로 저장이 되어야 한다.


네트워크 상에서의 데이터 전송, 서비스 내에서 정보수집, 스토리지 내의 저장 등 관련된 규정들도 대부분 엄격하게 관리되어야 한다.


유럽 연합의 사용자의 개인정보가 노출되었을 때에는 72시간 이내에 알려야 하고, 이를 적용하지 않는 기업에 대한 벌금이 어마무시하다. 


아무튼, 메일이 갑자기 무더기로 날라오길래 뭔 일인가 했다.


안드로이드 스튜디오를 3.0.1에서 3.1.1로 업데이트를 하려고 하는데, 정상적으로 업데이트가 되지 않는다.


흠...봤더니 예전에 2.2.1에서 업데이트할 때에 한글 폰트 지원 문제로 변경한 font.xml 파일이 원본과 다르다고 나온다. (modified)


툴 업데이트를 할 때 기존의 프로그램 내의 파일들이 변경되거나 삭제, 혹은 추가된 부분들을 체크하는 것이 분명하다.


일단 3.0.1의 원본을 찾아서 교체해주어야 할 것 같아서 아카이브를 뒤져서 파일을 다운로드 받았다.


안드로이드 스튜디오 아카이브

https://developer.android.com/studio/archive


변경했던 font.xml 파일을 백업해놓고 다운로드 받은 프로그램 내의 font.xml 파일로 덮어씌워 주었다.


그리고, 다시 업데이트를 진행하니 정상적으로 업데이트가 되었다.

나이가 드니 몸에 몇 가지 증상이 생겼다.


  • 아침에 일어나면 눈이 침침함.
  • 원시가 와서 스마트폰이나 태블릿 화면을 보면 글자가 안보임.
  • 잠을 자고 일어나도 개운하지 않음.
  • 차를 좀 타고 나면 바로 피곤함.
  • 배가 꽤 많이 나옴.
  • 오른쪽 어깨가 결리고 팔이 잘 올라가지 않음.(설마 오십견?) 


일부는 운동을 전혀 하지 않아서 생긴 문제인 것 같기는 한데...그것과는 별개로 노화에 따른 신체 변화가 분명하다.


하루에 모니터를 보는 시간이 보통 10~14시간 정도 되는 것 같은데, 이로 인한 눈의 침침함이 가장 큰 이슈다. 흠...이거이거 나에게는 아주 큰 이슈다.


아무튼 몸이 쉽게 지치고 피곤해지는 것도 무엇인가를 하는 데 있어서 의욕을 감소하게 만드는 요인인 것은 분명하다.


신체 변화와 능력 저하에 따른 의욕 감소도 일부 원인이기는 하겠지만, '하고 싶은 것이 없음'이 아마도 가장 큰 일인 것 같다.


성취에 대한 욕구나 승리에 대한 갈망, 상대 비교에 따른 우월감과 같은 동기가 하나도 없다.


그 전에도 어느 정도 그랬지만 생활을 위해서 일정 정도 돈을 벌어야 한다는 생각을 조금 했었는데, 지금의 나는 돈을 벌고 싶은 생각마저도 없는 상태인 것 같다.


무엇인가를 모으는 것도, 소비하는 것도, 만드는 것도 다 지루할 뿐이다.


때때로 일상에서 모든 사람들과의 관계가 낮설고 불편하다. 


아무튼 당면한 과제는 '하고 싶은 것 찾기' 정도인 듯하다. 으앙~~~

데이터를 생각해본다.


Entity라는 개념에서 핵심이 되는 것을 뽑아보니, 러프하게 2가지 형태를 띄고 있다.


1) 스스로가 데이터로서 존재하는 것

2) 1번과 같은 엔티티 간의 관계가 발생하여 존재하는 것


더 간단하게 이야기하자면 데이터는 어찌보면 존재와 존재의 연결이라는 셈이다.


그 존재가 사람일 수도 있고, 사물일 수도 있고, 무형의 어떤 것일 수도 있다.


하지만 현실에서 존재는 그저 스스로 존재한다는 것에 가치를 부여하기 어려운 것처럼 Relation에 대한 것도 스스로는 존재하지 않지만 중요한 요소가 된다.


따라서 존재와 존재의 관계는 어느 것이 중요하다고 가치를 더 두기가 어려워 보인다.


좋아.


그럼 존재와 존재의 관계는 우위를 두는 개념이 아니다.


서로 필요로 하고 있어야 하는 것이다.


Entity로 정의할 수 있는 항목은 그럼 이처럼 존재와 존재의 관계를 통해서 반드시 있어야만 하는 것이다.



Entity는 존재하는 어떤 현실적인 것 혹은 직접적으로 존재하지 않지만 관계와 같은 추상적인 개념을 통해서 존재한다고 보이는데, 

이 Entity의 구성은 그 자체로 하나의 독립적인 그룹을 이룬다는 것을 볼 수 있다.


Attributes 라는 Entity를 구성할 수 있는 속성이 그 안에 있으므로 Entity는 하나의 존재로 있을 수 있게 해준다.


그럼, Attribute 하나 하나는 Entity 내에서 중복되지 않는 속성이어야 하고, Entity의 존재의 일부로써 가치가 있는 것이어야 한다.


아무튼 생각해보니 그렇다.



회원과 상품은 스스로 존재하고, 회원이 상품 구매를 신청하면 주문이라는 관계가 생성된다. 


회원의 고유의 회원번호를, 상품은 고유의 상품번호를 가지고 있었고 이 고유의 정보는 등록된 시점에서 볼 때 중복될 수 없는 불변의 값이다.


주문은 회원이 상품을 주문할 때 발생하는 관계의 정보를 담고 있고, 이 관계 역시 생성되는 시점에서 고유한 정보를 포함하여 생성된다.


이 주문의 고유한 불변의 값을 부여하기 위해서 주문번호를 생성하고, 이 주문번호는 고객의 불변 정보와 상품의 불변 정보를 참조한다.


주문을 통해서 어떤 회원이 어떤 상품을 구매하려고 하는 지 알 수 있게 된다.



Relation이 생성된 Entity는 의미를 가지게 된다.


프로세스가 생성되어 하나 이상의 flow를 가지게 되는데, 이 관계의 주어와 목적어가 되기도 하고 자신을 참조하기도 하고 혹은 주어를 더 자세하게 나열하게도 한다.


책에서 보여지듯이 관계를 일대일, 일대다, 다대다, 혹은 스스로의 참조 등 많은 관계가 있다.


이 관계의 연결이 일부는 보이는 것일 수 있고, 보이지 않는 관계(혹은 참조)일 수도 있다.



사실 여기까지는 그냥 의식의 흐름에 따라서 쉽게 접근할 수 있었다.


사전 지식이나 모델링 경험이 없는 상태에서 여러 개의 상품을 하나의 주문에 담는다는 생각 혹은 그 것이 어떻게 구현이 되어야 바른 접근인가에 대한 생각은 해보지 못했다.


조금 생각해보니 주문 내에 상품의 정보와 수량, 색상, 사이즈, 기타 정보를 한 번에 담는건 그다지 좋은 생각이 아님에 분명하다.


주문상세를 따로 두어서 하나의 주문 안에 주문상세 정보를 통해서 어떤 상품들이 어떤 조건으로 구매 신청이 되었는 지 따로 저장하고, 변경이 가능하도록 하는 것이다.

(설명을 듣고 어떻게 구현하는 지 알게된 후)


여기서 관계는 사실 주문 하나가 생성되지만, 이 관계 내의 복잡한 조건들을 자세하게 혹은 정확하게 표현하려면 이에 대한 별도의 관계에 대한 상세가 필요하게 되는 것이다.



길게 생각하기가 힘들어져서 뭔가 읽어보면서 좀 더 정리해야 할 듯...


이후의 길은 다른 누군가가 만들어 놓은 문법적인 구성과 체계, 사례의 접근 등으로 이뤄져야 할 것 같음.


으...

나이가 들면서 슬프지만 질문을 던지지 않게된 지 꽤 됐는데...'아무튼 어쩔 수 없음' 이라는 영역에 떨어지면 뭔가 찾아봐야 하므로...뭔가 꼼지락 거림.


블록체인의 소개를 읽어봤는데 뭔 소린지 잘 모르겠음.



블록체인 네트워크 내의 참여 노드에서 모두 신규 생성된 블록을 검증한다고 치면, 네트워크가 커질 수록(참여자들이 많아질 수록) 그 검증에 따른 시간은 어떻게 하나? 물론 신규 진입하는 마이너의 경우에는 노드 생성 시 기존의 (검증된)데이터를 자신의 전자지문과 함께 생성해서 로컬에 가지고 신규 블럭에 대한 연산에 참여할 것 같기는 한데, 네트워크 내의 분산된 노드들이 동일한 데이터를 가지고 있다고 하면 노드의 증가에 따른 검증 시간의 증가가 되지 않는건가?


비트코인의 경우 규정된 난이도(2주에 2016개의 블록 생성)에서 짧은 시간 연산이 완료되면 그 만큼 난이도가 증가하는 형태라고 하는데, 하드웨어의 연산 능력은 시간에 비례하여 증가하기 때문에 목표에 도달하여 난이도가 증가할 수록 연산능력이 떨어지는 노드에서는 검증을 어떻게 하나? (공용 블록체인의 경우 결국 전체 네트워크라고 해서 연산 능력이 높은 노드만 유효성을 갖게되지는 않을지? 전체 노드에서 검증이 완료되어야 한다면 점차 늘어날 네트워크의 부하와 하드웨어의 소모를 누가 감당할 것인지? 전기도...)


생각해보니 나 개인적으로 이 네트워크 연결을 시간이 많이 걸리는 것으로 생각하고 있는 것 같다. 실시간 응답 서비스에 익숙해져 있어서 시간에 꽤 집착이 있는 듯...흠.


아무튼 블록체인의 기술적인 부분을 공격하는 것보다는 네트워크를 공격하는 것, 코어가 되는 노드를 집중적으로 네트워크를 느리게 만들거나 자주 사라지게 하는 것으로 전체적인 체인의 신뢰성과 안정성을 불안하게 만들 수 있지 않을까 하는 생각이 들음. 써놓고 보니 다른 시스템도 마찬가지네. 헐...우문우답 이로군.


그리고, 합의의 알고리즘이 이런 네트워크 내의 노드들 간에 블록을 공유하고, 검증하는데 중요한 요소인 듯한데 어떤 내용인지는 알아봐야 할 것 같다.



뭔 말인지, 사람들이 왜 열광하는 지 아직도 잘 모르겠음.

맥프로에서 빌드된 다른 앱 소스를 좀 읽어보려고, JD-GUI 홈(http://jd.benow.ca/)에서 맥용 파일을 다운받아서 실행해보니 이상하게 실행이 안된다.


검색을 좀 해보니 자신의 맥북 환경에 맞게 설정을 수정할 필요가 있어 보여서 일단 깃헙의 이슈 트랙커의 글을 참고하여 깃에 있는 소스를 새로 빌드해서 설정을 변경해주었다.


아래와 같이 깃허브 레퍼지토리에서 클론을 하거나 다운로드하여 빌드를 진행했다.


$ git clone git@github.com:java-decompiler/jd-gui.git

$ cd jd-gui

$ ./gradlew installOsxDist

$ cd build/install/jd-gui-osx


[출처: https://github.com/java-decompiler/jd-gui/issues/189 ]


위에서 처럼 타겟을 OS X 기반으로 그래들 빌드 후에 생성된 빌드 폴더 내에 실행 바이너리가 생성이 된다.


바로 실행해봤는데 그래도 정상적으로 실행이 안된다.


위에 있는 출처의 이슈를 더 읽어보니 맥에 설치된 자바의 경로를 지정해줄 필요가 있어 보인다.


$ java -version

$ /usr/libexec/java_home -v 1.8


자바의 버전을 확인해보니 1.8이어서 두 번째 줄과 같이 해당 자바의 설치 경로를 확인한 뒤 경로를 복사했다.


JD.GUI 앱을 선택하고, 마우스 우클릭을 통해서 '패키지 내용보기' 선택 후 아래의 파일을 편집기로 연다.


Contents/MacOS/universalJavaApplicationStub.sh



universalJavaApplicationStub.sh 파일을 편집기로 연 뒤에는 아래의 내용과 같이 JDK 설치 경로를 추가해주면 된다. (아래는 나의 경우)


JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home



다시 앱을 실행시키니 정상적으로 실행이 되었다.


생각해보니 따로 빌드할 필요 없이 그냥 맥 버전을 다운로드 받아서 위와 같이 경로만 추가해줘도 잘 실행될 것 같다.


흠...


2000년대 중반에 모스크바에서 특급우편을 보내고 받을 때에는 페덱스가 아닌 DHL을 이용하는 편이 더 낫다고 생각했다.


배송의 빠르기나 정확성 보다는 세관에서 DHL이 더 유연하게 작업을 하는 지 모르겠지만, 일주일씩 통관이 안되던 페덱스보다는 확실히 더 빠르게 우편을 보내고 받을 수 있었다.


아무튼 캐스트 어웨이를 며칠 전에 비행기 추락 직전까지 보다가, 주말 오후에 겨우 일어나 다시 넷플릭스에서 이어보기를 했다.


영화에 대한 사전 정보는 윌슨이라는 배구공에 대한 기억 밖에 없었고, 무인도에서 주인공이 겨우 살아돌아오는 이야기 정도로 알았는데...정말 알고 있던 그대로 였다. 


마지막까지 풀지 않고 섬에서 가져오는 단 하나의 화물이 날개 그림의 소포였는데, 그 날개 그림 아줌마에게 전달 후 만나는 장면이 나온다. 


영화 시작에 그 아줌마의 남편은 모스크바에서 바람피우는? 것으로 나오던데...이렇게 끈을 연결하고 싶었던 걸까?


혹자는 충전이 필요없는 위성전화기라는데...마지막 희망처럼 풀지 않은 소포 속에 정말 전화기일지는 모르겠다. (걸면 걸리니까 걸리버지예)


흠...하지만 현실은 이렇지 않다구.



이번 주 날씨가 남쪽은 엄동설한이었다고 했지만 서울은 엄동광풍이었다.


영하 10~15도를 넘나드는 차가운 날씨에 바람마저 불때면 옷을 꽤 두껍게 챙겨 입어도 몸이 부들부들 떨리기도 한다.


그리고, 가상화폐와 다양한 보안 이슈로 새해 아침부터 지금까지 꽤 소란스러운 듯.



중국은 어제 가상화폐 거래소를 폐쇄했고, 국내에서도 법무부에서 가상화폐 거래소 폐쇄를 언급 했다. 이로 인한 가상화폐에 대한 버블증상(사람들이 폰지사기나 튤립버블에 대해서 이야기하기도 한다)이 꺼질 것으로 이야기하는 사람들과 정부의 무지한 규제로 인한 서민죽이기의 일환이다라는 사람들이 갑자기 온라인 게시판을 점령해버렸다. 이러한 요동치는 시장에 투자하여 것(사실 투자할 돈도 없지만)에 대한 생각 자체가 없기 때문에 별 생각이 없어서인지 좀 거리감이 들기도 한다. 



인텔은 자사의 8세대 CPU 개발 완료단계 혹은 출시 전에 멜트다운과 스펙터에 대한 문제를 알고 있었지만 하드웨어를 일정에 맞게 출시 했다. 이 문제는 바이오스와 OS 패치로 인하여 하드웨어 성능 하락(특히 디스크의 읽기쓰기 성능, 그리고 구형일수록 이 폭은 크다)을 가져왔고, 인텔 CEO인 Brain Krzanich는 이러한 결함 공개 전에 자신의 보유주식을 대량 매도하여 도덕성 문제를 야기하기도 했다. 인텔은 PC 및 서버 프로세서 시장에 거의 독점적인 지위를 가지고 있는 기업이다.


인텔 CEO 보안이슈 공개 전 몇 개월 동안 보유 주식 처분(최소한만 남기고...)

http://fortune.com/2018/01/05/intel-ceo-stock-security-flaws/


패치마저도 문제라니...나는 AMD CPU에 AMD Fury 사용자라 흠...인터뤠스팅

https://finance.yahoo.com/m/fde92557-1032-32cf-b0c1-580ce0145c6c/intel-admits-security-patches.html



애플은 새로 출시한 하이시에라의 10.3.2버전의 운영체제에서 관리지 계정으로 로그인한 화면에서 아무 비밀번호나 입력해도 앱스토어의 시스템에 접근할 수 있는 버그를 만들어 냈고, 애플은 이 문제를 이미 인지하고 있었다. 그리고, 미안하지만 앞으로는 이런 일 없을거다라고 말했지만 이번이 처음이 아니라 이전에도 이러한 보안 이슈가 있어 왔다. 팀쿡의 말에 따르면 애플보다 마진이 높은 회사들이 더 많다고 한다. 애플은 스마트폰 부분에서 영업이익율이 40%에 달하는 전세계 시총 1위의 기업이다.


관리자 로그인 후 앱스토어에 아무 패스워드 입력해도 들어가짐

https://gizmodo.com/yet-another-password-vulnerability-has-been-found-in-ma-1821967078


애플보다 마진 높은 회사들 많이 있다.

https://www.theguardian.com/technology/2017/sep/12/tim-cook-apple-ceo-products-arent-for-the-rich-steve-jobs-iphone-x-smartphone-1000-dollar



애플은 지난 달 또한 단말의 배터리 성능이 떨어지면 폰이 의외의 상황에서 꺼질 수 있기 때문에 의도적으로 성능을 제한하는 기능을 넣어 놓았다고 밝혔다. 이는 애플이 문제점에 대해서 미리 밝힌 것이 아니라 단말의 성능이 업데이트할 때마다 떨어지는 것에 대해 이상을 느낀 많은 사용자들의 문제 제기가 있어왔고, 캐나다의 Primate Labs에서 아이폰6S와 7에서 이러한 문제점을 지적하고 나오자 발표된 내용이다. 이후 29불의 배터리 리플레이스먼트 플랜을 고객에게 알렸다.(원래 보증이 끝나면 79불인데 애플이 29불에 해준다고 밝혔다. 국내는 3만4천원)


레딧의 관련이슈 게시판

https://www.reddit.com/r/iphone/comments/7inu45/psa_iphone_slow_try_replacing_your_battery/


프라이메이트 랩의 문제제기

https://www.geekbench.com/blog/2017/12/iphone-performance-and-battery-age/



문재인 대통령의 신년 기자 간담회가 있었고, 지난 9년 간 보지 못했던 정해진 순서와 답변 읽기가 반복되는 보여주기 식 간담회가 아닌 참석자중 누구나 주제에 제약없는 질문이 가능한 간담회가 진행되었다. 이 간담회를 통해서 국내 기자들의 수준이 아직 스스로 문제의식을 재고하고 질문을 던질 수 없다는 생각과 데스크의 지침에 따른 받아쓰기에 익숙해져 있는 것이 아닌가 라는 생각이 들었다. 온라인에서 많은 이들에게 질타를 받은 기자들 대부분은 우리나라에서 기득권을 누려왔던 대형 일간지 기자들이다.



남북회담이 판문점에서 열렸고, UAE의 칼둔이 방문했고, 바른정당과 국민의당의 합당과 관련된 이야기들이 있었다.


한 주간 참 많은 일들이 일어났다.


다들 요즘 어떠신지?


엇?


분할압축을 해보려고 하니 기본 압축으로는 분할 압축이 안된다.


그럼, 반디집 써야지 하고 확인해보니 bandizip X 프로그램으로는 압축이 안된다.


확인해보니 반디집에서 압축프로그램을 작년에 맥 앱스토어에서 판매하기 시작했다.


https://itunes.apple.com/kr/app/id1265704574


반디집은 꽤나 괜찮은 압축프로그램이므로 하나 사줘도 무방하기는 한데, 무료 앱이 없을까 찾아봤다.


블로그들에서 권장하는 프로그램은 keka라는 프로그램이 있어서 다시 맥 앱스토어에서 검색해보니 이것도 유료.


분할 압축을 지원하는 프로그램들은 대부분 유료 프로그램이고, 미리 써보기 등이 쉽지 않아 보여서 다시 검색 시작.



7z 사이트에 가서 맥용 프로그램 없는 지 확인해보니 keka의 무료 버전이 있다.


맥 앱스토어에서 판매하는 유료 버전과의 차이점은 잘 모르겠는데, 일단 무료 버전이 있어서 다운로드 후 분할 압축을 해본다.


속도가 좀 느리다.


윈도우에서 멀티코어 지원하는 압축 프로그램과 비교하다보니 느린 속도가 바로 느껴졌다.


그래도 원만한 포맷으로 .DS_STORE 파일도 안만들고 분할 압축 및 압축 해제가 가능하니 간단하게는 쓸만하다는 생각이다.


아래의 링크에서 keka를 찾아서 다운로드 후 설치하면 된다.


http://www.7-zip.org/download.html



*. 4기가 분할 압축으로 사용해보니 성능이 생각보다는 좋지 않았다. 반디집을 사용해보면 아마도 비교가 가능하기는 할텐데, 가볍게 사용하는 경우에는 문제가 없지만 60기가 정도를 분할 압축하니 시간도 많이 걸리고 에러도 있었음.

https://support.apple.com/en-us/HT204063



블루투스 이슈가 있어서 라이브러리 폴더의 설정 파일 하나를 삭제했더니 갑자기 와이파이 자체에 x표시가 뜨면서 '설치된 하드웨어가 없다'고 표시된다.

검색해보니 NVRAM을 초기화하는 방법을 통해서 설정을 다시 잡는 것 같다.


확인 방법은 다음과 같다.


1. 맥을 완전히 끈다.

2. 다시 부팅하여 하얀 화면이 되면서 '텅~'하는 부팅음이 들릴 때 <alt + command + P + R > 버튼을 동시에 눌러준다.

3. 다시 '텅~'하는 부팅음이 조금 크게 들리면 누르고 있던 버튼을 모두 떼어 준다.

4. 프로그레시브 바가 진행되면서 부팅이 되면 정상으로 설정이 돌아온다.


+ Recent posts