전체보기
-
Java GC(Garbage Collection) 동작 방식카테고리 없음 2016. 11. 25. 20:25
Java 관련 코드를 정리하는중 IO와 관련한 클래스 인스턴스들의 close() 호출처리를 개선하게 되었다. 그러다 문득, IO관련된 인스턴스들은 Resource leak 때문에 close를 반드시 호출해야 한다고 알고 있었는데, 그러면 close되지 않은 즉, 메모리에 올려진 인스턴스들을 처리하는 Java GC(Garbage Collection)이라는 것은 어떻게 동작하는지 궁금해 구글링을 통해 자료들을 정리하여 보았다. Java에서 명명하는 memory leak 에 대한 명쾌한 설명 http://stackoverflow.com/a/22889202 Garbage Collection 특징 ( 이하 GC로 표기 ) 1) 객체들은 힙에 생성된다. 2) GC는 GC 대상이 되는 객체들을 힙에서 제거하기 위해 ..
-
[70번째 책] 상실의 시대 (★★★★☆)1000권 독서 2016. 11. 25. 00:03
세계적인 문학상을 휩쓸어 한국에도 굉장히 많은 독자층을 보유한 무라카미 하루키의 대표작 '상실의 시대' 단편선 모음집을 읽고 그의 책은 두번째로 읽게 되었다. 처음 읽으면서 뭐야 또 우울하게 시작하네 생각하며 책을 잡았지만 소설로서 흡입력 만큼은 대단하다. 그러면서 한편으로 흥행의 이유가 뭘까 생각했다. 정말 실제로 내가 주인공이 된 것 마냥 생각될 만큼 몰입할 수 있는 표현들에 나도 모르게 빨려들어간다. 소설의 마지막은 너무나도 허무하게 끝나버리지만, 마치 아바타를 통해 가상세계를 체험하고 온듯한 기분. 소설이라는 문학이 인간에게 주는 즐거움이 무엇인지에 대해 알고 싶다면 이 책을 한번쯤 꼭 읽어보았으면 좋겠다.
-
GMT, UTC, KST카테고리 없음 2016. 11. 24. 22:54
그리니치 천문대 [참고] http://bryan.wiki/7 GMT (Greenwich Mean Time) 경도 0도인 그리니치 천문대에서의 표준 시간이다. 천체의 운동을 기준으로 정한 시간. 일반적으로 세계시(Universal Time)라고 부르는 것은 바로 이 GMT(=UT)를 의미한다. 역사적으로 보면 최초의 표준시간이었던 GMT는 기준이 정오였다고 한다. 이를 1925년에 12시간 앞 당겨 자정을 기준으로 바꾸었고, 새로운 GMT와 예전 GMT가 혼동되기 시작하자 1928년 자정 기준의 새로운 MGT를 UT라는 이름으로 표기하기 시작했다고 한다. 실제로 인간의 생활에는 GMT(UT)가 더 적합하다고 하겠다. UTC (Coordinated Universal Time) 약어(Abbreviation)의..
-
OpenSource License카테고리 없음 2016. 11. 24. 21:30
[참고] http://www.bloter.net/archives/209318 http://www.coolio.so/%EB%9D%BC%EC%9D%B4%EC%84%A0%EC%8A%A4-%EC%A2%85%EB%A5%98-%EB%B0%8F-%EC%86%8C%EA%B0%9C/ 자료들을 참고하여 OpenSource License 를 정리해보았습니다. Apache License - 제약조건 하 - 아파치 라이선스는 아파치소프트웨어 재단이 자기네 SW에 적용하기 위해 자체적으로 만든 라이선스다. 소스코드 공개 의무 같은 의무사항은 없지만, 아파치 라이선스 소스코드를 수정해 배포하는 경우 아파치 라이선스 버전 2.0을 꼭 포함시켜야 하며 아파치재단에서 만든 소프트웨어임을 밝혀야 한다. - 적용사례 : 안드로이드(v2.0..
-
Programming Ruby (32) 문자 인코딩Ruby 2016. 11. 23. 22:33
출판사, 원작자의 저작권의 문제 소지가 발생하는 경우 본 게시물은 삭제될 수 있습니다. 문자 인코딩 루비 1.9 이전에는 루비 기본 인코딩이 아스키 문자 인코딩이었다. 루비 1.9 부터 인코딩 시스템을 제공하는데 그 핵심에는 Encoding 클래스가 있다. Encoding 클래스의 객체들은 각각 서로 다른 인코딩 방법을 나타낸다. Encoding.list 메서드는 내장된 인코딩 목록을 반환하며, Encoding.aliases 메서드는 키가 별칭, 값이 대응하는 베이스 인코딩으로이루어진 해시를 반환한다. encoding/list_encodings.rb encodings = Encoidng .list .each.with_object({ }) do | enc, full_list | full_list[enc.n..
-
Ruby Module 어떤 경우에 사용해야 할까요?Ruby 2016. 11. 23. 20:51
Ruby를 공부하면서 다른언어와 다르게 이해하기가 아리송한 개념이 바로 Module과 Mixin 입니다. Module은 클래스 인것 같으면서도 아닌것 같은. 대체 이놈은 뭘하는 놈인지 공부하면 할수록 더 어려운 개념입니다. RORLAB의 rinae님께서 module 개념에 대해 간략히 다시 정리를 해주신 내용을 공유하고자 합니다. Ruby Module 모듈은 기본적으로 여러 클래스에서 같은 메서드를 사용하고자 할 때 + 하지만 상속관계로 설정하고 싶지 않을 때 쓰시면 됩니다 이를테면 Bird 라는 클래스에 `fly` 가 구현되어 있다고 하면 하위클래스로 Swallow, Eagle 을 만들어서 Bird를 상속받을 수 있겠지요 다만 이 `fly` 라는 녀석이 꼭 Bird 안에 구현되어있을 필요는 없는겁니다 ..
-
Programming Ruby (31) 이름 공간, 소스 파일, 배포 - 2Ruby 2016. 11. 22. 22:20
출판사, 원작자의 저작권의 문제 소지가 발생하는 경우 본 게시물은 삭제될 수 있습니다. 코드 배포하고 설치하기 루비를 설치하면 표준적인 구조로 설치가 된다. 루비가 설치되면 루비의 명령어들(ruby, ri, irb)은 바이너리 파일들을 저장하는 디렉터리에 설치된다. 또한 루비에 포함된 라이브러리들은 다른 디렉터리에 저장되고, 문서도 또 다른 어딘가에 저장된다. 따라서 루비가 설치된 시스템 상의 이러한 표준적인 구조에 따라서 애플리케이션의 코드들을 각각 적절한 위치에 배포하는 스크립트를 작성하는 것을 고려해 볼 수 있다. 패키지 작성에 관한 규칙을 따르기 프로젝트 디렉터리 아래에는 라이브러리가 하는 일과 저작권과 관련된 사항을 담은 README 문서가 포함되어야만 한다. 설치 과정을 담은 INSTALL 문..
-
Programming Ruby (30) 이름 공간, 소스 파일, 배포 - 1Ruby 2016. 11. 22. 20:35
출판사, 원작자의 저작권의 문제 소지가 발생하는 경우 본 게시물은 삭제될 수 있습니다. 코드를 구성하는데는 크게 두 가지 측면을 고려해야 한다. 첫 번째는 서로 다른 코드가 같은 이름을 가지고 있을 때 어떻게 충돌을 방지할 것인가 하는 문제, 두 번째는 다수의 소스 파일을 어떻게 프로젝트로 구성할 것인가 하는 문제다. 이름 공간 어떤 클래스 내부에 정의된 메서드나 상수의 이름은 그 클래스의 맥락에서만 사용 가능하다. class Triangle SIDES = 3 def area # ... end end class Square SIDES = 4 def initialize(side_length) @side_length = side_length end def area @side_length * @side_len..