Bookworm’s Archive 잡동사니 속에 숨겨진 보물 찾기

21Nov/10

아이폰 메일앱으로 구글 메일 이용시 암호 오류 해결 방법

아이폰의 메일앱으로 구글 메일을 익스체인지 등록해서 사용하다 보면 이런 오류가 종종 생깁니다.

메일을 가져올 수 없음

“Gmail”에 대한 사용자 이름 또는 암호가 정확하지 않습니다.

물론 이 오류는 설정이 잘 못 되거나 사용자 이름 또는 암호를 잘 못 입력해서 생기기도 합니다. 모든 것을 제대로 입력했는데로 이런 오류가 생긴다면 그것은 구글의 Captcha 때문입니다.

아래 주소를 통해서 Catcha 인증을 하시면 문제가 해결되는 경우가 있습니다.

Gmail :  https://www.google.com/accounts/UnlockCaptcha 

Google Apps :  https://www.google.com/a/[yourdomain]/accounts/UnlockCaptcha

경우에 따라 Captcha 인증을 해주었는데도 계속 오류가 발생하는 경우가 있습니다. 애플이나 구글에서 이 문제를 좀 말끔히 해결 해주었으면 하는 바람입니다.

Tagged as: , 4 Comments
21Nov/10

버그를 줄이는 요령 한 가지

작년에 운영 중인 서비스의 사용자로부터 버그 리포트를 받았습니다. 버그 리포트에 따라 소스 코드를 살펴보니 버그가 맞더군요. 문제는 그 버그가 생긴지 거의 일년이 넘은 것이었죠.

버그가 생긴 상황은 이렇습니다.

올빼미씨가 B 로직을 만들면서 B 로직 전에 실행되는 A 로직의 동작을 가정하고 개발을 했습니다. A 로직은 부엉이씨가 개발을 했고, A 로직에 대해서 올빼미씨는 잘 알고 있었기에 잘 동작하는 B 로직을 만들 수 있었습니다.

그러나 반대로 부엉이씨는 B 로직이 어떤 가정하에 만들어진 것인지 모르고 있었습니다. 시간이 흘러 부엉이씨가 A 로직을 변경 할 필요가 생겨 수정을 하자 올빼미씨의 B 로직의 가정을 깨지게 됐고 이것이 교묘히 숨은 버그가 되어버렸습니다.

이렇게 로직이 동작을 하는데 어떤 사전에 필요한 조건이 생긴다면 그 조건이 변경됐을 때 자신이 개발한 부분은 전혀 변경이 없었음에도 불구하고 버그가 생겨날 가능성이 있습니다.

이를 막기 위해서는 가능하면 사전에 필요한 조건을 최대한 없애는 것이 좋습니다. 그리고 어쩔 수 없이 어떤 조건이 필요하다면 자신의 모듈에서 해당 조건이 만족되었는지 확인 할 수 있는 안전 장치를 마련 해놓는 것이 중요합니다.

TDD와 같은 것을 통해서 이런 작업이 어느 정도 자연스럽게 일어날 수도 있지만 TDD를 사용하지 않으신다면 꼭 이런 부분을 세세히 신경쓰면서 개발하는 것이 좋습니다.

Tagged as: No Comments
28Oct/10

XpressEngine용 phpBB3 데이터 추출 v0.1

phpBB3를 XpressEngine(이하 XE)으로 마이그레이션 하기 위해 XML 데이터를 추출하는 도구입니다.

사용법은 XE 홈페이지의 마이그레이션 설명을 참고 해주시기 바랍니다.

이 도구를 사용해서 추출한 데이터는 아래와 같은 제약 사항이 있습니다. 만약 제약 사항을 바꾸고 싶으시다면 직접 코드를 수정하실 필요가 있습니다. 옵션으로 만들 수도 있었지만 개인적인 목적으로 만든 것이라 친절한 도구는 못 됩니다. 아~더워라

  • 사용자 ID는 등록된 이메일 주소의 @ 앞부분이 됩니다. 만약 @ 앞부분이 똑같은 사용자가 있다면 문제가 생기게 됩니다. 이 문제는 phpBB3는 한글 ID를 지원하지만 XE는 지원하지 않아 영문으로 바꿔주어야 했습니다. 만약 phpBB3 사이트를 영문 ID로만 운영 중이셨다면 export.php의 81번 행을 $obj->user_id = $member_info->username; 로 수정하여 영문 ID를 그대로 사용 할 수 있습니다.
  • bbCode를 사용한 경우 평문으로 바꾸거나 일부 완전히 삭제 해버립니다.
    • 평문으로 바뀌는 코드 – [b], [i], [u], [quote], [code], [img], [url], [flash], [size], [color], [list], [*]
    • 삭제되는 코드 – [attachment]
  • 패스워드는 초기화 됩니다. 사용자가 ID/비밀번호 찾기 기능을 사용해서 초기화 해야합니다.

라이센스는 기존 XE에 포함된 마이그레이션 도구의 코드를 이용했기 때문에 GPL v2입니다.

다운로드 :