발생일: 2009.10.28 문제: 시스템 개발 시 어떤 내용들을 로깅하는 게 좋을까..? 해결책: 온라인 강의를 보다가 로깅에 대해 좋은 내용이 있어 메모를 남긴다. - 사용자별 접속내역 로깅을 기록관리하는가? (로깅항목: 사용자 ID, Login/Logout시간, 접속IP) - 접속내역 로깅을 보관하고 있는가? (3개월 이상 보관 할 것을 권장하나 업무의 성격에 따라 변경 가능) - 사용이력 로깅을 기록관리하는가? (로깅항목: 사용자ID, 사용시간, 사용이력-조회,수정,삭제, 프로그램ID) - 사용이력 로깅을 보관하고 있는가? (3개월 이상 보관 할 것을 권장하나 업무의 성격에 따라 변경 가능) - 로그온 시 보안경고 메시지 및 최종 사용정보를 표시하는가? (보안메시지- 시스템에서 하는 모든 활동이 ..
발생일: 2009.10.26 문제: UNIX 에서 Shell 파일을 생성했다. 실행하려고 shell 파일 명령어를 수행하니 실행할 수 없다고 나온다. 왜 안되는 걸까...? 해결책: 유닉스에서 최초로 파일을 실행했을 때에 기본적으로 Read 권한 밖에 주지 않는다. (예: -rw-r--r--) 따라서 파일을 생성 후 chmod 명령어를 수행해 파일 실행권한을 주도록 한다. chmod 755 파일명 권한을 준 후 실행하면 정상적으로 실행이 된다. 여기서 chmod 는 권한 변경(change mode)에 대한 명령어이며, 권한에 대한 숫자는 아래와 같이 계산하면 쉽다. Read Write Execute 4 2 1 또한 위의 755 는 각각 소유자, 그룹, 일반 사용자를 나타낸다. 자세한 내용은 chmod 명..
발생일: 2009.10.26 문제: 자바는 디컴파일러가 있어서 중요 정보를 코드 내에 두지 말라고 한다. 실제로 디컴파일러를 써보기도 했고, 후배들한테도 그렇게 얘기해주고 있다... 그러다 문득 아주 기본적인 궁금증이 생겼다. 아니 그럼 중요 정보는 어디다 두지? (예: 암호화키, 디비 아이디/패스워드) 프로퍼티 파일에 두면 오히려 더 조회하기 쉬운 거 아닌가...? 해결책: 자바 디컴파일러 문제는 주로 자바 애플릿과 관련된다고 한다. WAS 에 저장되는 class 는 사용자에게 직접 노출되지는 않기 때문이다. 일반적으로 인터넷뱅킹 등 금융 프로그램들이 자바 애플릿 대신 Active-X 를 활용하고 있는 이유도 이 때문이라고 한다. 일단, 웹어플리케이션이라면 자바 코드 내에 중요 정보를 둬도 괜찮다는 얘..
발생일: 2009.10.23 문제: 온라인 보안 강좌를 보다가 SSL 적용에 관한 이야기가 나왔다. 가만,.. 예전에 https 인증서를 cafe24에서 구입하려고 봤더니 돈을 쫌 내라고 했었는데 말이야. 검색을 좀 해보니까, 사설 인증서를 만들어도 되는 모양이다... 이참에 관련 내용들을 좀 뽑아서 정리해두어야 겠다. 해결책: IBM 컬럼 : SSL은 무엇인가? 사설 인증서와 관련된 포스트 Configuring Tomcat to Support SSL (With OpenSSL)
발생일: 2009.10.21 문제: 후배에게 로그인과 관련된 부분의 보안 기본 개념을 알려주려고 한다. 스크립트 단에서 MD5로 암호화하여 넘기는 값을 네트워크 단에서 스니핑 했을 때, 그 값을 디코드 하여 알아낼 수 있다는 내용이다. 지난 번에 사전 기반의 MD5 Cracker 사이트가 있었는데 어디였더라. 해결책: 여기다. md5Crack.com 텍스트를 md5로 암호화 또는 복화화 할 수 있다. 복호화는 사전 기반인데, 알파벳(대쉬, 언더바 포함) 6글자 정도까지도 모두 복호화 되는 것 같다. 오우~ 그 외에도 여러 가지 암호화 알고리즘을 통해 해싱할 수 있는 사이트가 있으니 참고해보자. 또한 위와 같은 네트워크 단에서 스나이핑 되는 값이 디코드 되지 않게 하려면, '사용자는 영문과 숫자를 포함한 ..
발생일: 2009.10.15 문제: 공동 작업을 해가며 코딩 표준에 대해 정의하려고 한다. 몇 가지 언어에 대한 Code Convention 사이트를 정리해보자. 해결책: 자바 코드 컨벤션 Java Code Conventions (영문) 번역된 자료 (한글) SQL 코드 컨벤션 SQL Naming Convention - 난 이 스타일이 좋더라. HTML 표준 관려된 것은, 웹표준 가이드 등을 참고하면 좋겠다. 네이버의 웹표준화 사이트인 NULI의 정보도 매우 유익하다.
발생일: 2009.09.25 문제: 프렌드 홍이 묻는다. "firebug으로 자바스크립트 브레이크포인트 잡아서 디버깅하는 법 아냐?" 음... 접때 어디서 본 것 같긴 한데, 잘 모르겠다. firebug은 거의 요소검사에만 사용하고 있거든... "잘 모르겠는디.... 검색해봐바바." 해결책: 홍이 검색해보더니 매우 잘 가이드해놓은 포스트를 알려준다. Firebug 중단점(Breakpoints) 강좌 동영상 포스트 참고 위 사이트는 소개 사이트이고, 실제로 강좌 동영상이 있는 사이트는 아래 사이트다. Screencast: Firebug Breakpoints 강좌가 24메가 정도라 좀 걸리지만, 인내를 갖고 다운로드 받아보도록 한다. 매우 유용하다... 오우... 이것 봐라! 아름답게 디버깅된다... 오우...
발생일: 2009.09.22 문제: 현재 담당하고 있는 시스템은 스트럿츠로 구현되어 있다. 다른 일반 자바 엔터프라이즈 시스템처럼, 프리젠테이션 레이어 - 서비스 레이어 - 데이터액세스 레이어의 3-tier 구조다. 그리고 그 가운데 데이터 전달을 위한 도메인 객체가 있다. 처음 프로젝트를 할 때에는 이게 표준이구나 싶어서 별 생각없이 구현했는데, 어느 날 문득 궁금해졌다. 왜 도메인 객체들을 단순 VO로만 사용하는 걸까...? 좀 더 객체지향적으로 도메인 객체를 활용하면 좋지 않을까...? 해결책: 위와 같이 단순한 데이터 값의 저장을 위한 VO 역할만 하는 도메인 객체를 anemic domain 이라고 한다. anemic domain model의 한계를 느끼고 나타난 것이 도메인 객체에 직접 도메인과..