일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- mac
- 암호학
- 이클립스 플러그인 개발
- Instrumentation
- IPTV
- 한글조사
- ACAP
- StringUtils
- 자바 암호화
- DAMO
- PKCS#8
- PKCS
- Executors
- Log4J
- Freemaker
- Executor
- RSA
- date
- xlet
- Java
- AES
- String
- Callable
- Runnable
- sha1
- ORM
- JCE
- 자바
- Postman
- 한글조사처리
- Today
- Total
목록분류 전체보기 (133)
오늘은 어디로 갈까...
감기가 오래간다. 혹시 SI(swine influenza) 아닌가 헛된 희망(?)을 가져보지만, 그건 그저 망상일뿐... 아프더라도 회사에 나갈 수 있는것이, SI 걸려서 격리수용되는것보다 분명 더 나은 일임에도 불구하고, 회사에 나가지 않아도 된다는 그 사실 한가지만으로 파멸을 갈구하는 나 자신을 보면 참 어리석기 그지없다. 어리석기에 인간이고, 인간이기에 어리석다고, 스스로를 위로해 보지만, 그건 정신적 혼미에서 오는 의식의 단편일뿐 아무런 의미를 부여하지 못한다. 아픔에는 이유가 없는것일까? 내 아픔에는 이유가 없다. 바람이 부는데 내 아픔에는 이유가 없다.
* 문제 풀이에 중점을 두었기에, 파일입력처리 & 에러처리 & 비~자바적 표현(?)등은 무시해주시기 바랍니다. 그리고 귀찮아서 온통 public static으로 도배하였으니 양해바랍니다. ^^; 이 문제들을 풀면서 가장 어려웠던 점은 역시나~ 변수 이름, 메소드 이름짓기였습니다. ^^;;; 이 풀이들이 정상적인 풀이인지는 본인도 모릅니다. 샘플 데이터에 대한 결과는 동일한데, 데이터가 달라지면 엉뚱한 결과가 나타날지도 모르니 유의해주시기 바랍니다. 그리고 좀 더 나은 풀이 방법이나 다른 풀이 방법이 있으면 알려주시면 감사하겠습니다. 다양한 시각을 가지고 싶은 욕망에, 쪽팔림을 무릅쓰고 올린 소스이니, 많은 참여(?) 부탁드립니다. ^^; 프로그래머는 코드~로 말한다는 이념아래, 설명은 생략하겠습니다. -..
즐거운 주말, 광란의 시간(광란이라고 해봤자 게임이겠지만 ^^;)을 보내려던 계획은, 감기의 급습으로 인해 물거품이 되어버리고. 토/일요일 하루 종일 누워서 보내려니 너무 심심하다. 아프다는 핑계로 가사노동(?)에서 해방되었으니, 게임도 마음데로 할 수 없는 노릇이고, 그래서 생각해낸것이 공부하는척하면서 노는것... 그 대상은 바로 사이냅소프트 사원모집 퀴즈~ 현재 다른 곳에 소속되어 있기때문에 입사지원서를 낼 수 없어서 안타깝긴하지만, 예전부터 관심(?)을 가져던 회사인지라 한번 찔러나(?)보자는 마음에 풀어보자. 개인적인 관점에서 볼때, 난이도는 쉬운편. 그 이유는 알고리즘의 알~자도 모르는 본인이 다 풀었기때문이다. (풀었다기보다는, 예제 결과가, 본인의 결과도 동일하였다는 맞는 표현일지도 모르겠지..
1. 시동할 때 : 맥은 처음에 켜도 일반 PC처럼 CMOS 화면(?)이 안나온다. 하~아~얀 화면만이 덩그러니...(고장난거 아니다.) - C : CD로 부팅 - D : 첫번째 파티션으로 부팅 - N : 네트워크로 부팅 - T : firewire 타겟 디스크로 설정 - Option: 부팅가능한 모든 장치를 보여주고 선택할 수 있다. - Command + Option + Delete : 외장 드라이브러 부탱 - Command + Option + P + R : PRAM(시간, 시동디스크, 포트정보, 폰트정보, 타이밍 정보 등등 여러 정보가 들어가있는 비휘발성 RAM)을 초기화 한다. 두번째 빠방~ 할때까지 누르고 있어야한다. (http://support.apple.com/kb/HT1379, http://s..
1. 한글 입력기 바람(http://baramim.blogspot.com/) - 국산 한글 입력기로서, 한영전환키, 한자전환키를 따로 설정해줄수 있다. Leopard 자체에서도 한영 전환이 되나, 전환키가 Cmd + Space인 관계로 사용하게 되었다. 역시 누가 뭐래도 한영 전환은 Shift + Space가 짱!!! 2. SteerMouse(http://www.apple.com/downloads/macosx/drivers/steermouse.html) - 신기하게도 기존에 사용하던 무선마우스에서는 전혀 눈치채지 못했는데, 큰맘먹고 구입한 하얀 마우스를 사용하면서 마우서 커서가 이상하게 움직인다는것을 알게되었다. 처음에는 마우스가 고장(5000원짜리가 그렇지~~ 하면서)난줄 알았는데, 맥의 마우스 가속(..
daemon을 모니터링하는것은 중요한 일이다. 이놈이 살았는지 죽었는지 알 수 없다면 참 난감한 일일 것이다. 그렇다면 어떻게 모니터링 할 수 있을까? ps -ef 를 사용해서 단순히 프로세스가 살아있는지 확인을 할 수도 있지만, 살아 있어도 살아 있는게 아닐 수도 있어서 신용이 안간다. 그렇다고 살아있다~고 매초마다 파일로 출력하자니 모양새가 좋지 않고, 소켓을 통해 구현할려고 하면 귀차니즘이 발동하고... 어떻하면 좋을까? 결론부터 말하자면 걱정하지 말아라, 자바에서는 JMX란 아주 좋은(?) 관리 API를 제공하고 있다. (솔직히 JMX를 배우는게 더 힘들지 않을까 ^^;) 1. JMX(Java Management Extensions) - JMX는 말그대로 여러 자원을 감시(?) 관리 하기 위한 자..
이번 시간에는 자바 데몬을 한번 만들어보자. 일반적으로 실 운영 환경은 UNIX 인 관계로 유닉스에 초점을 맞추도록 하겠다. 각고의 노력(?) 끝에 만든 PostMan. 이 놈도 성격상 데몬이기에 데몬처럼(?) 돌려야한다. 본인의 경험으로는 대부분의 사이트에서 crontab에 등록하여 자바를 실행하는 형식으로 사용하는것 같다. 다행인지 불행인지 몰라도, 본인은 crontab을 한번도 사용못해본(?) 풋내기 사용자라는것이다. 그래서 crontab은 거들떠보지고 않고, 자바 독립적(?)으로 데몬을 돌리곤 했다. PostMan은 자체 스케줄링 기능이 있는 관계로, crontab을 사용하면 왠지 이상하지 않은가? 그러니 자체 실행을 해보도록 하자. 1. nohup 사용하기 - 가장 간단한 방법은 nohup을 이..
Objective C를 공부하기 위해서 산 맥임에도 불구하고, XCode 실행은 단 3번뿐, 나머지 시간은 음악 정리, 사진 정리등 엉뚱한(?) 곳에 대부분을 보내버렸다. 윈도우에 너무나 오랫동안 길들여져 있어서, 사용하는게 불편할만도한데, 오히려 편안함(?)이 느껴지는것은 본인이 제정신이 아닌탓일만은 아닐것이다. 화면이 이쁜것은 제쳐두고서라도, 사용자가 쓰기 쉽게 만든것 같다. 어플리케이션 설치도 드래그&드롭, 직관적인 dock, 음악이라고는 관심밖이었는데 앨범정리를 하고싶게끔 만드는 iTunes, 사진을 좀더 멋더러지게(?) 보여주는 iPhoto, 타임머신, 리모콘(?) 등 참 매력적인 요소들이 많이있다. 물론 이 어플리케이션들이 윈도우에서 가능한것들이지만, 뭐랄까 느껴지는 분위기가 사뭇다르다. 사용..
최적화라는 거창한 단어를 사용하긴 했지만, 사실 별 볼일 없다. 최적화라는것은 운영 환경, 데이터의 모델등 여러 요소를 복합적으로 고려해서 해야하는것이므로, 사실상 정답은 없다. 단지 최선의 방법만이 존재할뿐... 현재 본인의 상황에서 PostMan의 병목현상은 메일 전송 부분에 있다. gmail을 이용해서 보내고 있는데, 메일 1개 전송하는데 보통 3-4초가 소요된다. 아무리 유희를 위해서 만들었다지만, 너무 심하지 않는가... 그래서 약간 수정을 가해서 빠르게 전송하는것처럼(?) 만들어보자. 사실, 구조 자체를 바꿔버리고 싶은 욕망이 꿈틀되지만, 이번만은 참도록 하겠다. ^^; 만약 전용(?) 메일서버를 사용하다면, 이것보다는 빠를거 같지만, 가난한 개발자 & 게으른 개발자인 본인에게는 머나먼 얘기이..
봄을 재촉하는 비가 내리고 있다. 이런날을 커다란 창문이 있는 곳에 앉아, 하염없이 내리는 비를 바라보는게 즐거움일텐데, 어쩔 수 없이 모니터만 뚫어지게 바라보고 있다. 봄하면 생각나는게 spring~ 그렇다. PostMan을 spring화(?) 하자. 스프링을 사용하는김에 Persistant layer도 제대로 구현해보도록 하겠다. 여기서는 iBatis를 사용하겠다. (Spring Batch를 사용할까도 생각해봤지만, 구조를 설명하는게 좌절인거 같아서 간단한(?) spring만 사용하겠다.) 1. 관련 라이브러리 - 갑자기 라이브러리가 많이 필요해졌다. 대충 정리하면 아래와 같은데, 알아서 구해보시길. ^^; - spring 2.5.6 (http://www.springsource.org/download..
지난 시간에는 실제적인 메일 전송은 하지 않고, 로그로만 출력했는데, 찜찜한 관계로 한번 해보도록 하자. 자바 진영에서는 JavaMail이라는 훌륭한(?) 메일 라이브러리를 제공한다. IMAP/POP3/SMTP를 지원한다. 이 JavaMail을 사용하기 위해서는 JAF(JavaBeans Activation Framework)가 필요하다. JDK 1.6부터는 자체적으로 포함되어있다. 여기서는 JDK 1.5를 사용하는 관계로 다운 받도록 하겠다. 1. 라이브러리 설치하기 - JavaMail의 mail.jar과 JAF의 activation.jar을 클래스패스에 잡아주자.(mail.jar는 mailapi.jar + imap.jar + smtp.jar + pop3.jar라고 보면 된다.) JavaMail 1.4...
오래간만에 맞이하는 여유로운 점심 시간, 아무것도 하지 않고 멍~~하니 있는것 자체가 즐거움인것을 보면 나란 인간은 정말 @#$%이다. ^^; 아무것도 하지 않고 살아간다는것이, 아무 의미가 없는 삶은 아닐터인데, 왜 이토록 바둥바둥~ 거리며 살아가는것인지 정말 알 수 없다. 그럼에도 불구하고 열심히(?) 살아가는것을 보면 이또한 삶의 유희적인 요소가 아닌가 생각이들기도 하지만, 뭐 늘 그렇듯이 허울좋은 핑계일뿐이겠지. 모순 속에선 모순이 아닌게 모순일뿐, 그저 그렇게 살아가야하는것이 최선의 길이겠지...
지난 시간(메일 템플릿에 대한 단상(斷想))에 이어서 템플릿을 이용한 메일 발송에 대해 좀 더 알아보도록 하자. 완전체(?)를 만들면 4월 한달 내내 우려먹을 수 있을거 같기는 하나, 저질 체력인 관계로 대충 끝내보도록 하자. 프로젝트 명은 메일관련이므로.... POSTMAN이라 하겠다. 1. 테이블 만들기 - 데이터베이스에서 전송할 자료를 가지고오는 구조이므로, 일단 테이블을 만들도록하자. MAIL MAIL_NO NUMBER Not Null 메일 번호 TEMPLATE_ID CHAR(3) Not Null 템플릿 아이디 STATUS_CODE CHAR(2) Not Null 상태 코드 TO_ADDRESS VARCHAR2(200) Not Null 받은이 주소 TO_NAME VARCHAR2(100) 받는이 이름 ..
요즘 메일 템플릿 변경 작업을 하고 있는데, 기분이 별로이다. 이곳의 메일 구조는 메일 전송 테이블에 전송 데이터를 넣으면, 데몬이 모니터링하고 있다가 발송하는 구조이다. 뭐, 이런 구조야 흔하디 흔한것이라 별로 반감은 없는데, 문제는 메일 내용을 생성하는 부분이다. 테이블에 URL을 입력하고 데몬이 URL을 호출하여 랜더링된 HTML을 받는다. 즉, 일종의 HttpClient가 웹서버를 호출해서 응답 페이지를 받는것이다. 물론 전혀 문제될게 없는 구조이다. 그럼에도 불구하고, 본인의 성격이 괴팍한것인지, 왠지 마음에 안든다. 굳이 웹페이지를 호출할 필요 없이, 템플릿 엔진을 사용해서 간단하게 구현하면 될것인데, 왜 이렇게 구현해놨을까 하는 쓸데없는 생각은 마음을 갉아먹고 정신을 혼미하게 만들었다. 그래..
HTTP(Hyper Text Transfer Protocol)은 웹상에서 정보를 주고 받을 수 있게 정의한 통신 규약을 말한다. 1996년 1.0 버전이, 1999년 1.1 버전이 발표되었으면, IETF(Internet Engineering Task Force)의 RFC에 자세히 기술되어 있다. 현재 가장 많이 쓰이는 버전은 1.1이다. 사용하는 기본 포트는 80번이다. HTTP의 특징(?) 중 한가지가 무상태(Stateless) 즉, 상태 정보를 유지하지 않는다는 것이다. 사용자(Client)는 매번 요청을 할때마다 서버에 접속을 하고, 응듭을 받으면 연결을 끊어버린다. 그래서 서버의 입장에서는 요청을 하는 사용자가 누군지 알지 못하는 슬픈 일이 생긴다. (넌~ 누구냐~?) 이 상황을 해결하기 위해, ..
과도한 업무로 인해 만신창이가 된 몸과 마음을 주말을 통해 풀어볼려고 했으나, 맥북을 구입하게 되므로서 실패... 아득히 먼 옛날 맥이란 놈을 잠깐 사용해본적은 있으나, 그때 남은 기억이라고는 플로피 디스크 방출 버튼이 없어서 당황해했던 아픈 기억만이 남아있다. 아나바다의 정신에 입각하여, 중고 제품을 구입했는데, 너무 오래된(?) 제품인지 기본으로 제공하는 OS가 타이거(10.4)였다. 레오파드(10.5) 버전이 필요한 관계로 애플 스토어를 기웃거려보았어나, 가격이 15만원.. ㅠㅠ. 물론 비스타에 비해 싸기는 하지만 가난한 개발자에게는 잔인한 액수이다. OS도 중고로 사는 수밖에... 중고 물품이 나오기전까지, 소중한 시간을 헛되이 보낼 수 없으므로, 테스트용(?)으로 어둠의(?) 레오파드를 설치해보..
현재 일하고 있는 곳에서는 가끔 이벤트를 하곤한다. 해당글에 지정한 시간에 맞춰, 의견쓰기(댓글)를 한 사람에게 선착순으로 공연 티켓을 주는것이다. 뭐 정직원을 대상으로 하는 이벤트라, 본인같은 일용직 노동자에게 의미가 없는 일이긴 하지만, 기분이 우울한 관계로 & 기분전환의 차원으로, 자동으로 댓글다는 프로그램을 만들어보겠다. 1. 준비물 - 준비물은 다음과 같다. JDK 1.5 이상 HttpClient v3.1 (http://hc.apache.org/httpclient-3.x/index.html) + Commons Codec (http://commons.apache.org/codec/) + Commons Logging (http://commons.apache.org/logging/) + Log4J (..
HTML의 장점이자 단점은 바로 융통성이다. 융통성 있는 구조를 가지다 보니, 대충(?) 만들어도 브라우저같은곳에서 잘 보여준다. 그런데... 문제는... 프로그래밍해서 html을 분석하기에는 참 난해한것이다. 규격에 안맞다보니, 섬세하게(?) 제어할려고 하면 꽥~~하는 습성이 있는것이다. 뭐 일일이 수작업(?)으로 분석할 수는 있지만, 그건 너무 잔혹하지 않는가. 이런 고민을 한방에 해결해 줄 라이브러리가 있으니, 그건 바로 Html Cleaner!!! (http://htmlcleaner.sourceforge.net/) 이름 그대로 깔끔한 성격이라서, 매우 마음에 든다. 대상 html을 마음껏 요리할 수 있는 자체 API도 제공하고, xml로 변환하여 처리할 수도 있다. 1. 사용하기. - 아래처럼, ..
요즘 낙서라는 미명아래, 머리속에 방치해뒀던 지식을 하나씩 꺼내고 있지만... 영.. 재미가 없다. 뭐, 나름데로 지식을 정리하는데는 도움이 되지만, 왠지 무미건조하단 말이야.. 역시 난 미지의 세계를 삽(?)을 들고 헤처 나가는, 삽집 전문 どかた 체질인것인가.... 무덤을 파는 것일수도 있지만, 역시 삽질이 더 재미있단 말이야.. 흠흠... 뭘 해볼까나...? 현재 관심을 두고 있는것은 분산처리, 검색엔진, 보안, 네트워크, 모니터링 등등 많이도 있다. 흠... 이중 하나만 하기도 벅찰텐데, 다 해보고 싶으니 뭘 해야할지 도통 모르겠네~~ 그러고 보니 이 관심분야를 하나로 합치면, 보안 기능을 가진 분산처리 검색 엔진 서버가 되버리네.. @_@ 흠 기존에 나와있는 오픈 소스 프로젝트를 이용해서 한번 ..
클래스 재반영(reload). 누구나 한번쯤 생각해 본적이 있을것이다. VM을 종료시키지 않고 변경된 클래스를 반영하는 일. 아 생각만해도 행복하다. ^^; 다년간 삽집을 통해 얻어낸것이라고는 클래스는 재반영(reload)이 안된다는 사실... (이 지식을 습득한 시점이 2002년도였으므로 지금은 어떤지 확실히 모르겠고, 이 글이 거짓말로 도배된것일 수 있으니 주의바란다.) 그럼 많은 J2EE Application Server에서 지원하는 hot deployment 기능은 뭐란 말인가? 그 베일을 벗겨보면, 클래스를 재반영하는것이 아니라, 클래스로더를 바꿔치기 해서 재반영된것처럼 보이게 하는것이다. 클래스는 클래스로더에 의해서 적재된다. 그래서 사용하는 클래스로더를 바꾸면 새로운 클래스가 로딩되는것이다...
이사 기념(?)으로 구입한 레이드 카드. LSI Logic 사의 U160 레이드카드로서 2채널을 지원하고, 128MB 캐쉬램 및 BBU(Backup Battery Unit)를 장착하고 있다. 기존에 사용하는 SCSI 카드인 ASC-29160 가 아직 생생하긴 했지만 RAID 0을 구성해보고 싶은 욕심에 그만.. 구입해버렸다.(그동안 고생많았어 29160 T_T) 요즘같은 시대에 왠 SCSI(그것도 U160)라고 할 수 있지만, 어릴적부터 동경해왔던 SCSI... 남자의 로망~~ SCSI~~! 인 것이다. (이론적이긴 하지만 SATA-2의 전송속도가 300MB/s이고, 구닥다리 U160의 속도는 U160MB/s이다. 더군다나 PCI 슬롯은 132MB/s이니..) 떨리는 손으로 설치를 하고 기존에 가지고 있..
1. 소개 1.1 JPPF - JPPF(Java Parallel Processing Framework)은 손쉽게 병렬 처리 프로그램을 만들수 있게 도와주는 프레임워크이다. - 단순히 1대의 컴퓨터에서만 작동하는것이아니라, 네트워크로 연결된 수많은 컴퓨터를 사용하여 분산처리할 수 있게 도와준다. - 한마디로 요약하면, 오픈 소스 그리드 컴퓨팅 플랫폼(open source Grid Computing platform)이라 할 수 있는것이다. 1.2 준비물 - Java 1.5 이상 - Apache Ant (실행 스크립트가 build.xml로 되어있다. 알아서 해결할 경우 필요없다.) - JPFF driver and node binary package (http://sourceforge.net/project/sh..
멀티 쓰레드(Multi Thread)란 프로세스(Process)안에서 여러개의 쓰레드가 동시에 동작하는것을 말한다. 자바 1.5부터 java.util.concurrent 패키지가 추가됨으로서 멀티 쓰레드 프로그래밍을 아주 손쉽게 할 수 있다. (아득히 먼(?) 옛날에는 멀티 쓰레드를 잘(?) 사용하기 위해서 ThreadPool, BlockingQueue도 직접 만들어 사용하는등 많은 삽질이 필요했는데, 지금은 너무나 간단하게 구현이 가능하다. 물론 Thread에 대한 기본 지식은 가지고 있어야한다.) 자바를 실행하면 main 쓰레드라 불리우는 놈이 해당 객체의 main(String[]) 메소드를 실행해준다. 즉, 프로그램이 실행되면, 최소한 한 개 이상의 쓰레드 동작중인것이다. 1. Thread 생성 및..
오늘은 log4j의 Filter 기능과 설정파일 직접(?) 지정하기에 대해서 알아보겠다. 필터(Filter)기능이란 로그 이벤트가 합당한 조건에 일치하는가를 판단하는 기능이다. Appender에 Filter를 설정해서 사용할 수 있다. 자세한 사항은 이전에 끄적였던 글(http://blog.kangwoo.kr/40)로 대체한다. ^^; log4j는 기본적으로 클래스패스(classpath)에서 log4j.xml나 log4j.properties 파일을 찾아서 설정 정보를 읽어온다. 이 설정정보 파일을 명시적으로 지정하려면 어떻게 해야할까? 모르겠다. 삽을 들자. --; 일반적으로 Logger.getLogger(String) 메소드를 이용해서 로거를 할당 받는다. public class Logger exten..
1.3. log4j.xml - 또 하나의 설정 파일인 log4j.xml에 대해 알아보자. 단순히 log4j.properties 파일을 XML 형식으로 만든것이라고 보면된다. (클래스패스에 log4j.xml, log4j.properties 두 파일이 동시에 존재하면 log4j.xml가 우선시 된다.) ### log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPatte..
지난 시간에는 Logging Facade Libraries에 대해서 알아보았다. 오늘은 진짜(?) Logging Libraries에 대해 알아보도록하자. 가장 유명한게 log4j와 jdk14Logger가 있겠다. 여기서는 log4j만 다루도록 하겠다. 1. log4j log4j는 로깅(logging)을 위한 라이브러리이다. 현재 Apache의 서브프로젝트로서, 홈페이지는 http://logging.apache.org이다. 이 log4j의 가장 큰 특징은 계층(category) 로거라 불리우는 것인데, 로거(logger)를 사용할때 "카테고리(category)"라는 이름을 붙여서 사용한다. 이렇게함으로서 여러 소스로부터 출력되는 로거들중에 필요한 부분만을 로깅할 수가 있는것이다. log4j의 또 하나의 특..
프로그램 개발을 할때 가장 중요한 부분이 로그(log) 처리부분이 아닐까 생각한다. 신규 개발은 물론 유지/보수 할때에도 로깅을 얼마나 체계적으로 잘 사용하느냐에 따라서 작업하기가 한결 수월해질 수 있다. 자바에서는 1.4부터 java.util.logging 패키지가 포함되어 자체적으로 지원을 하고 있지만, 뒤늦게 출현한 덕분인지, 아니면 모양새가 맘에 안들어서 그런지 잘 사용이 안되고 있다. 아마 대부분 log4j를 사용하고 있는것으로 알고 있다.(아닐수도 있다~) 그런데 재미있는것은 이 로깅 라이브러리를 facade 하는 라이브러리도 존재한다는것이다. 간단히 말해서 기존 로깅 라이브러리를 wrapping해서 사용한다고 할 수 있는데, 로깅 요청을 기존에 존재하는 로깅 라이브러리(log4j같은)로 전달..
프로그램은 실행되면서 저장할 데이터가 있으면 메모리의 일정 공간을 할당받아서 사용하게 된다. 그런데 이 데이터가 더 이상 사용할 필요가 없는것이면, 사용항 메모리를 반납해야주어야한다. 자바는 친절히도 메모리 회수를 자동적으로 해준다. 즉, JVM(Java Virtual Machine)의 Garbage Collector란 놈이 사용하지 않는 메모리를 알아서 회수해주는것이다. 이 회수에 대한 행위를 GC(Garbage Collection)이라한다. JVM의 메모리 영역은 크게 Heap Area과 Non-Heap Area으로 나눌수 있다. 1. Heap Area 힙 영역(Heap Area)은 동적으로 할당하여 사용할 수 있는 메모리 영역으로서, 주로 실행중에 생성되는 객체들이 저장된다. 이 힙 영역(Heap ..
3일동안 컴(Computer)이 없는곳에 살았더니, 이젠 컴을 만지는것 자체가 낯설게 느껴진다. 인간을 위해 만들어진 컴일터인데, 언제부터인가 컴의 종살이(?)를 하고 있는 우리네 모습을 보면 객반위주(客反爲主)라는 말이 다가온다. 뭐. 재밌게도 인생자체가 객반위주(客反爲主) 아닐까. (나만 그런가) "행복하게 살아야한다~"고 세뇌되어 행복하게 살기 위해 노력하지만, 정작 행복이 뭔지 모르는 재밌는 현상. 이런들 어떠하며, 저런들 어떠하리. 대충 살다 가는거지뭐 ㅋㅋㅋ
인터넷 뱅킹을 하시는 분이라면 대부분 공인인증서를 가지고 있다. 이 공인인증서를 가지고 전자서명을 해보도록하자(전혀 쓸데없는 일이긴 하다 ^^;) 필자의 경우 yessign에서 발급한 은행용 공인인증서를 가지고 있는데 그 경로는 C:\NPKI\yessign\USER\아래폴더... 에 위치해 있다. 그 디렉토리에 보면 CaPubs, signCert.der, signPri.key 세 파일이 존재한다. CaPubs은 무슨 파일인지 잘 모르겠다. signCert.der는 공인 인증서 파일이고, signPri.key는 개인키 파일이다. (der은 인증서 저장시 바이너르 형태로 저장하기 위한 포맷이고, pem은 문자열로 표현가능한 데이터로 인코딩(BASE64같은..)한 포맷이다.) 한국정보보호진흥원(http://w..