안녕하세요. 저는 idearecipe에서 애교를 맡고 있는 황장미라고 합니다, 데헷. 앞서 pickup님께서 me2API에 대한 글을 남겨주셨는데요. 이어서 제가 JSON과 알리미에 대해 적어보고자 합니다. me2idea는 유지 및 관리가 필요한 대부분의 데이터를 JSON으로 가지고 있습니다. 이유는 구현 시 데이터구조로 사용하기에 JSON이 가장 용이했고, 마침 me2API에서 JSON 형식의 응답을 지원하고 있었기 때문인데요. 실제로 자바스크립트와 JSON의 조합을 사용해보니 직관적이고 편한 개발이 가능했습니다. 또한 텍스트로 되어있어 그 내용을 메모장만으로도 확인할 수 있다는 장점도 있었죠. 그러나 응답내용만을 브라우저에서 육안으로 바로 확인하고 싶을 때에는 아무래도 XML이 편하겠죠?
me2API는 JSON과 XML의 두 가지 형식으로 응답을 받을 수 있죠. 다양한 형식의 응답을 지원한다고 하면, 사용자 입장에서는 그 형식이 달라도 안의 구성은 동일하다고 생각하기 마련입니다. 하지만 실수가 있었는지, 그런 기대를 저버렸던 부분이 있었는데요. 계정의 휴면여부가 그랬습니다. me2API 중 get_friends로 친구들 계정에 대한 데이터를 받아올 때, XML 형식으로 받아올 경우에는 paused라는 필드가 있었지만, JSON의 경우에는 없더군요. 당시에는 그래도 설마 me2API의 문제일지는 예상하지 못하고, 다른 데서 원인을 찾느라 당황했던 기억이 나네요. 이처럼 me2API의 응답내용이 매뉴얼과 다를 수도 있다는 것을 염두에 두시고 API를 사용하기 전에는 미리 확인을 해두는 것이 좋겠습니다.

휴면 상태일 때 미투데이 화면
아무튼 다시 본론으로 돌아와서 알리미의 경우, me2API와는 다르게 XML 형식으로 밖에 데이터를 전송하지 않기 때문에, 알리미 서버로부터 전송받은 XML을 JSON으로 바꿔줄 필요가 있었습니다. 이에 관해서는 XML TO JSON이라는 키워드로 이미 많은 라이브러리들이 공개되어 있구요. me2idea에서는 이 라이브러리를 사용하였습니다. 토마스 프랑크씨 아저씨에게 감사를 드립니다. 이 때 XML을 JSON으로 바꾼 다음에는, 다시 가공하기 전에 꼭 한번 그 depth를 확인해보는 것이 좋습니다. 알리미의 전송 내용에 따라 JSON으로 변환 후에 최상위 중괄호가 빠져있어서 잘 처리되지 않는 경우가 있더군요.
또 한 가지 짚고 넘어가자면, 알리미의 알림 내용이 해당하는 me2API의 응답내용과 완전히 일치하는 것은 아닙니다. 그 서브셋이라고 할 수 있죠. 일단은 가장 필요한 데이터만을 전송하는 것으로 보여지구요. 예를 들어 내 친구의 새 글과 같은 경우, 알리미 서버로부터 받은 새 글에 관한 데이터는 해당하는 새 글의 데이터를 me2API의 get_posts로 받아오는 것에 비해 어느 정도 요약되어 있는거죠. 따라서 알림을 받았지만 해당 알림에 대한 전체 데이터가 필요하다면, me2API를 통해 다시 요청해야하는 번거로움이 있습니다.
당시에는 알리미 서버가 자주 죽더군요. 알림기능을 구현해서 테스트할 때에 알리미 서버가 죽은지 모르고 이쪽에서 원인을 찾느라 많은 시간을 낭비했던 기억이 납니다. 지나고나서야 미투알리미도 역시 동작하지 않았더라는 이야기를 들었죠. 그런 일이 반복되면서 알림기능 구현 시에는 항상 알리미 서버가 잘 동작하는지부터 먼저 확인해야 했습니다. 하지만 그것은 미투알리미를 사용하거나 또는 me2idea의 알림기능 중에 실제 동작여부가 확인된 부분을 통해서, 알리미 서버가 동작하는지를 확인해야 하는 번거로운 작업이었습니다. 동료분들에게 "지금 새로운 글 좀 올려봐주세요, 지금 새로운 댓글 좀 올려봐주세요" 하면서 말이죠. 그래서 저나 동료분들의 미투를 보면 알리미 테스트를 위해 올렸다가 1분 안에 지우지 못한 글들이 남아있습니다. 영광의 상처처럼 말이에요. (웃음) 아직 알리미 서버의 상태에 대해 이쪽에서 직접 확인할 수 있는 방법은 없는 것으로 알고 있는데요. 혹시 알고 계신 분이 있으시다면 연락 부탁드려요.
me2idea 많이 사랑해주시구요. 지금까지 황장미였습니다, 알랍촙촙♥








댓글을 달아 주세요
관리자만 볼 수 있는 댓글입니다.
알려주셔서 감사합니다 =)
한자 지원의 경우, 지금 닉네임에서는 돋움, 본문에서는 나눔고딕을 쓰고 있는데 나눔고딕 폰트에 한자가 포함되어있지 않기 때문에 나오는 문제입니다 >_<a 나눔고딕에 한자가 없으면, 돋움 한자를 불러와야 할 것 같은데 그렇게 동작하지 않더라구요