발생일: 2009.09.22 문제: unix 명령어에는 친숙하지가 않다. tar 로 압축을 풀 때에 한꺼번에 여러 파일을 압축 풀고 난 후에, 폴더 내의 파일 개수를 세고 싶다... 우찌해야 할까. 해결책: 여러 파일을 찾기 위해서는 아래와 같이 실행하면 되겠다. (여러 파일 압축 풀기에서 참고) find . -name "*.tar" -exec tar wvf {} \; 아래와 같은 형식으로 조회해보면, 파일의 개수를 알 수 있다. (파일 개수 알아보기에서 참고) find . -name "*.tar" -print | wc -l find 구문을 알아두면 쏠쏠하겠다. 검색해보니 HP 사이트에 find에 대한 굉장히 좋은 튜토리얼이 있다. 위 튜토리얼을 포함하고 있는 HP 사이트의 HP-UX 사용 설명서를 한 ..
발생일: 2009.09.17 문제: 이때까지 log4j 랑 commons.logging 이랑 같은 건 줄 알고 있었는데... 아니었구나!!! 해결책: commons.logging 은 log 객체를 가져와서 쓰는 창구 역할을 하는 거였다. (인터페이스랄까...) 실제 구현체는 java 의 logging API 나 log4j 나 기타 로거 모듈을 가져다 사용하는 거였다. (LogFactory 에서 생성) log4j 와 commons.logging 에 대해 잘 정리되어 있는 포스트가 있으니 읽어보자. http://blog.naver.com/kotaeho0512/50033476064 가벼운 마음으로 이것도 읽어보자. http://devyongsik.tistory.com/74 #.참고 log4j 설정 방법
발생일: 2009.09.02 문제: 다운로드 버튼을 누르면 원하는 파일(지금은 jpg 파일)을 다운로드 받을 수 있도록 하고 싶다. Download 하는 서블릿을 만들어서 응답으로 해당 파일을 뿌려주면 될 것 같은데, 어떻게 하면 될까? 해결책: 브라우저는 요청 후 돌아오는 서버의 응답을 종류에 따라 적합한 형태로 보여준다. 서버는 응답 헤더에 content-type 을 설정해 줌으로써 응답의 종류가 어떤 것인지 알려준다. (content-type은 MIME에 정의된 메세지 타입 표준이다.) 각 브라우저는 응답 헤더에 있는 content-type 를 파악하여 적합한 형태로 보여주게 된다. 예를 들어, content-type 이 text/plain 라면 일반 문자로 보여주고, image/gif 와 같은 형..
발생일: 2009.08.28 문제: 개발하려는 시스템의 간단한 클래스 다이어그램을 그리려고 한다... 장기적으로 보관할 건 아니고, 아직 설계 단계이기 때문에 메모해두고 종종 생각날 때 덧붙여가며 기획해보고자 함이다. 그런데 말이지... UML. 잘 생각이 안난다. -_-; 잘 정리해 둔 사이트가 없을까? 해결책: IBM developerworks 에 UML의 기초 : 클래스 다이어그램(한글) 튜토리얼이 있다. 위 튜토리얼의 하단 참고자료 부분에 다른 UML 정보에 대한 링크가 있으니 함께 참고하자.
발생일: 2009.08.27 문제: gmail 을 사용하다 보면, 전부 AJAX 로 동작하고 있음에도 불구하고 back, next 등 히스토리 버튼이 정상적으로 동작한다. 어뜨케 한 걸까.....-_-a? 해결책: 검색해보니 이 내용에 대해 잘 정리해둔 블로그가 있다. (Ajax의 브라우저 Back 버튼 대응 방법) 위 블로그에도 있는 링크이며, Really Simple History framework(RSH) 라는 히스토리 관리 객체를 만들어서 사용하는 예도 있다. 오라클 테크널러지 사이트에서도 관련 튜토리얼에 대한 기사가 있으니 참고할 만한다. My Fried Tech 사이트에서는 Ajax History 에 관해 매우 친절한 튜토리얼을 작성해뒀다.^^ (추천) 가만 생각해보다가, 이런 거면 AJAX ..
발생일: 2009.08.27 문제: 픽셀드로우 개편 작업 중이다. 페이지에 필요한 스크립트를 원하는 것만 쉽게 넣어 관리할 수 있는 방법을 생각하고 있다. 예를 들어, pixeldraw.js, pixeldraw.canvas.js, pixeldraw.colorspecturm.js, pixeldraw.list.js 와 같이 여러 개의 js 파일이 그룹별로 나뉘어져 있다고 가정해보자. 매 페이지마다 스크립트 태그를 넣어주자니 코드가 지저분해지고, jsp 의 include 등을 써서 처리하자니 페이지별로 구분하기가 쉽지 않다. 그리고 무엇보다, 깔끔하게 가볍게 한 줄로 표시하고 싶단 말이지... 어떤 좋은 방법이 있을까? 해결책: 기존에 js import 에 대해서 많은 이슈가 있었나보다. 검색해보니 유용한 정..
발생일: 2009.08.25 문제: 픽셀드로우의 캔버스 작업 중에 툴을 간편하게 바꾸게 하기 위해 단축키 이벤트 핸들러를 만들었다. 예상했던 대로 툴이 잘 변경되는데, 제목과 내용 칸에 글자를 입력할 때에도 이벤트 핸들러가 적용돼 툴이 바뀌어 버린다. 해결책: 처음엔 마우스 포지션의 위치를 파악해서 캔버스 위에 있을 때에만 단축키 이벤트가 적용되도록 할까 했었는데, 왠지 비효율적일 것 같다는 생각이 들었다. 또한 각각의 브라우저에서 어떤 element에도 포커스가 가지 않았을 때의, 이벤트 타겟을 찾아보니 역시나 모두 달랐다. IE 는 마지막으로 클릭한 element. 만약 element가 선택되지 않았다면 BODY, BODY의 밖을 클릭했었다면 HTML. FF 는 HTML 이 표시되고, 크롬은 BODY..
발생일: 2009.08.21 문제: 사이트의 http 요청/응답 정보를 모니터링 하다 보니, 304 Not Modified 요청 정보가 보인다. 수정되지 않은 응답이란 얘기였던 것 같은데, 정확한 의미가 뭘까...? 해결책: 브라우저가 서버에 GET 요청을 보낼 때, 요청하는 정보를 이미 디스크에 가지고 있을 경우(캐시되어 있는 경우) 브라우저는 이 데이터가 변경되었는지 여부를 확인하는 요청을 보내게 된다. 이와 같은 요청을 Conditional Get Request 라고 하며, 서버는 요청 데이터가 변경되지 않았을 경우 응답 코드로 304 (Not Modified) 를 리턴한다. 물론, 데이터가 변경되었다면 변경된 데이터를 응답으로 보내게 된다. --- 2015.07.01 업데이트:크롬에서 캐시 관련 ..
발생일: 2009.08.13 문제: 매일 쓰는 프로그램을 좀 쉽게 열고자 배치 프로그램을 작성하려고 한다. .bat 배치 파일을 만들어서, 단순히 아래와 같이 C:\Program Files\Mozilla Firefox\firefox.exe C:\Program Files\Internet Explorer\iexplore.exe C:\QuickStart\setNetworkDrive.bat 해당 exe 파일 주소를 입력하고 저장하여 실행했더니 C:\Program 은 올바른 프로그램이 아니라는 경고 메시지가 뜬다. 어떻게 해야 할까? 해결책: 여러 개의 프로그램이 동시에 실행되게 하기 위해선 몇 가지 주의하여 작성할 점이 있다. 1. 파일 경로 문제 배치 파일에서 실행시킬 파일의 주소에 공백이 들어갈 경우, 공백..