간단하게 만들어 본 맥용 지니 플레이어.

조영규의 블로그

2014. 10. 17. 20:23 from Culture


GeniePlayer.zip


맥용 지니 플레이어.




KT 유저가 사용하면 데이터를 무료로 사용할 수 있도록 해줘서 지니를 사용중인데, 맥용 지니 플레이어가 없어 웹으로 사용해야 했었다. 이게 평소에는 큰 문제가 없었는데, 크롬을 사용하는 나는 가끔 모르고 cmd+q를 눌러서 모두다 꺼버리기 일 수 였고, 이게 엄청난 스트레스였다.

좋아하는 음악을 흥얼 거리다 갑자기 꺼져버리니 빡칠 수 밖에!

결국 간단하게라도 만들어서 내가 사용해야 했다.

목표는 2가지.

  1. 업무에 전혀 방해되지 않아야 한다. 알아서 꺼지고 필요할 때 열여야 하고 만들기 쉬워야 한다.
  2. 지니를 50%이상 정상적으로 이용 가능해야 한다.

서버 백엔드 개발을 해온터라 네이티브 클라이언트 개발은 처음이었고, 더욱이 Objective C는 생소하기 짝이 없었다.

그래서 내가 그나마 해왔던 자바를 가지고 어찌 만들 수 있는 방법을 찾던 중 자바FX를 알게 되었다. 웹뷰만 띄워서 지니 모바일 페이지를 보여주면 모든게 오케이리라 생각하며 자바 FX를 가지고 만들기 시작했고 첫 버전이 그렇게 완성되었다.

그런데 문제가 발생했다.

이상하게도 내가 만든 지니 플레이어를 사용하기 시작하면서 부터 맥이 자주 다운되기 시작했다. 2번째쯤 다운되서 컴퓨터를 강제종료하게되자 원인을 찾기 시작했고 가장 의심스러운 후보인 나의 지니 플레이어를 검사하던 중, 메모리 누수가 엄청나게 일어난다는 사실을 깨닳았다. 거의 노래 1곡당 5메가 이상씩 메모리를 더 점유하고 있었고, 1G를 넘게 먹는 순간도 있었다. 구글링을 해보니 이게 자바FX의 웹뷰 버그인 듯 했다. 결국 방향을 바꿨다. Objective C로 짜자.

그렇게 Objective C를 얕게 공부하기 시작.

꽤 얼마되지 않아 익숙해졌고 약간 다른 문법을 가졌을 뿐 생각보다 쉬웠다. 게다가 XCODE가 너무 좋아서 서브라임텍스트나 이클립스, 파이참등을 사용하던 나는 거의 신세계 수준이었다. (아직 얼마 안써서 그런가..) 사실 안드로이드를 조금 해봤었는데 이거 뭐 XCODE와 애플이 지원하는 거에 비하면 정말 ADT는 쓰레기임에 틀림없었다. 아무튼 왜 애플 앱들이 그렇게 안드로이드보다 좋은지 알게되는 순간이었다. XCODE가 이렇게 탄탄하니..

아무튼 2시간정도를 고군분투한 끝에 간단한 첫번째 버전이 완성되었다.

아주 간편하다. 지니가 제공하지 않는 건 제공하지 못했다.

자동으로 포커스를 잃으면 윈도우 창이 숨는다. 그리고 독바에서 클릭을 하면 다시 윈도우 창이 뜬다. 메모리도 그나마 자바로 짰을때 보다는 적게먹는 편이고(웹뷰는 원래 꽤 먹는듯하다.) 누수도 없다.

몇가지 문제(?)는 존재하긴한다. 먼저 자동로그인이 안되고(지니가 제공하지 않는다.), 쿠키유지를 하지 않아서(이건 지니가 재생목록을 쿠키로 유지해서 벌어지는 문제다.. 왜 쿠키로 하지..) 재생목록이 계속 갱신된다. 물론 맥 특성상 자주 끄지않기때문에 플레이어를 종료하지 않는다면 계속 유지될 것들이라 크게 개의치는 않는다.

필요한 사람이 있을 까봐 여기에 올린다. 가져다가 유용히 쓰길!

%23%uB9E5%uC6A9%20%uC9C0%uB2C8%20%uD50C%uB808%uC774%uC5B4.%0A----%0A%0A%21%5BAlt%20text%5D%28http%3A//cfile2.uf.tistory.com/image/272187465440F7AB1ECC59%29%0A%0AKT%20%uC720%uC800%uAC00%20%uC0AC%uC6A9%uD558%uBA74%20%uB370%uC774%uD130%uB97C%20%uBB34%uB8CC%uB85C%20%uC0AC%uC6A9%uD560%20%uC218%20%uC788%uB3C4%uB85D%20%uD574%uC918%uC11C%20%uC9C0%uB2C8%uB97C%20%uC0AC%uC6A9%uC911%uC778%uB370%2C%20%uB9E5%uC6A9%20%uC9C0%uB2C8%20%uD50C%uB808%uC774%uC5B4%uAC00%20%uC5C6%uC5B4%20%uC6F9%uC73C%uB85C%20%uC0AC%uC6A9%uD574%uC57C%20%uD588%uC5C8%uB2E4.%20%uC774%uAC8C%20%uD3C9%uC18C%uC5D0%uB294%20%uD070%20%uBB38%uC81C%uAC00%20%uC5C6%uC5C8%uB294%uB370%2C%20%uD06C%uB86C%uC744%20%uC0AC%uC6A9%uD558%uB294%20%uB098%uB294%20%uAC00%uB054%20%uBAA8%uB974%uACE0%20cmd+q%uB97C%20%uB20C%uB7EC%uC11C%20%uBAA8%uB450%uB2E4%20%uAEBC%uBC84%uB9AC%uAE30%20%uC77C%20%uC218%20%uC600%uACE0%2C%20%uC774%uAC8C%20%uC5C4%uCCAD%uB09C%20%uC2A4%uD2B8%uB808%uC2A4%uC600%uB2E4.%0A%0A**%uC88B%uC544%uD558%uB294%20%uC74C%uC545%uC744%20%uD765%uC5BC%20%uAC70%uB9AC%uB2E4%20%uAC11%uC790%uAE30%20%uAEBC%uC838%uBC84%uB9AC%uB2C8%20%uBE61%uCE60%20%uC218%20%uBC16%uC5D0%21**%0A%0A%23%23%23%23%uACB0%uAD6D%20%uAC04%uB2E8%uD558%uAC8C%uB77C%uB3C4%20%uB9CC%uB4E4%uC5B4%uC11C%20%uB0B4%uAC00%20%uC0AC%uC6A9%uD574%uC57C%20%uD588%uB2E4.%0A%0A%uBAA9%uD45C%uB294%202%uAC00%uC9C0.%0A1.%20%uC5C5%uBB34%uC5D0%20%uC804%uD600%20%uBC29%uD574%uB418%uC9C0%20%uC54A%uC544%uC57C%20%uD55C%uB2E4.%20%uC54C%uC544%uC11C%20%uAEBC%uC9C0%uACE0%20%uD544%uC694%uD560%20%uB54C%20%uC5F4%uC5EC%uC57C%20%uD558%uACE0%20%uB9CC%uB4E4%uAE30%20%uC26C%uC6CC%uC57C%20%uD55C%uB2E4.%0A2.%20%uC9C0%uB2C8%uB97C%2050%25%uC774%uC0C1%20%uC815%uC0C1%uC801%uC73C%uB85C%20%uC774%uC6A9%20%uAC00%uB2A5%uD574%uC57C%20%uD55C%uB2E4.%0A%0A%uC11C%uBC84%20%uBC31%uC5D4%uB4DC%20%uAC1C%uBC1C%uC744%20%uD574%uC628%uD130%uB77C%20%uB124%uC774%uD2F0%uBE0C%20%uD074%uB77C%uC774%uC5B8%uD2B8%20%uAC1C%uBC1C%uC740%20%uCC98%uC74C%uC774%uC5C8%uACE0%2C%20%uB354%uC6B1%uC774%20Objective%20C%uB294%20%uC0DD%uC18C%uD558%uAE30%20%uC9DD%uC774%20%uC5C6%uC5C8%uB2E4.%0A%0A%uADF8%uB798%uC11C%20%uB0B4%uAC00%20%uADF8%uB098%uB9C8%20%uD574%uC654%uB358%20%uC790%uBC14%uB97C%20%uAC00%uC9C0%uACE0%20%uC5B4%uCC0C%20%uB9CC%uB4E4%20%uC218%20%uC788%uB294%20%uBC29%uBC95%uC744%20%uCC3E%uB358%20%uC911%20%uC790%uBC14FX%uB97C%20%uC54C%uAC8C%20%uB418%uC5C8%uB2E4.%20%uC6F9%uBDF0%uB9CC%20%uB744%uC6CC%uC11C%20%uC9C0%uB2C8%20%uBAA8%uBC14%uC77C%20%uD398%uC774%uC9C0%uB97C%20%uBCF4%uC5EC%uC8FC%uBA74%20%uBAA8%uB4E0%uAC8C%20%uC624%uCF00%uC774%uB9AC%uB77C%20%uC0DD%uAC01%uD558%uBA70%20%uC790%uBC14%20FX%uB97C%20%uAC00%uC9C0%uACE0%20%uB9CC%uB4E4%uAE30%20%uC2DC%uC791%uD588%uACE0%20%uCCAB%20%uBC84%uC804%uC774%20%uADF8%uB807%uAC8C%20%uC644%uC131%uB418%uC5C8%uB2E4.%0A%0A%23%23%23%23%uADF8%uB7F0%uB370%20%uBB38%uC81C%uAC00%20%uBC1C%uC0DD%uD588%uB2E4.%0A%0A%uC774%uC0C1%uD558%uAC8C%uB3C4%20%uB0B4%uAC00%20%uB9CC%uB4E0%20%uC9C0%uB2C8%20%uD50C%uB808%uC774%uC5B4%uB97C%20%uC0AC%uC6A9%uD558%uAE30%20%uC2DC%uC791%uD558%uBA74%uC11C%20%uBD80%uD130%20%uB9E5%uC774%20%uC790%uC8FC%20%uB2E4%uC6B4%uB418%uAE30%20%uC2DC%uC791%uD588%uB2E4.%202%uBC88%uC9F8%uCBE4%20%uB2E4%uC6B4%uB418%uC11C%20%uCEF4%uD4E8%uD130%uB97C%20%uAC15%uC81C%uC885%uB8CC%uD558%uAC8C%uB418%uC790%20%uC6D0%uC778%uC744%20%uCC3E%uAE30%20%uC2DC%uC791%uD588%uACE0%20%uAC00%uC7A5%20%uC758%uC2EC%uC2A4%uB7EC%uC6B4%20%uD6C4%uBCF4%uC778%20%uB098%uC758%20%uC9C0%uB2C8%20%uD50C%uB808%uC774%uC5B4%uB97C%20%uAC80%uC0AC%uD558%uB358%20%uC911%2C%20%uBA54%uBAA8%uB9AC%20%uB204%uC218%uAC00%20%uC5C4%uCCAD%uB098%uAC8C%20%uC77C%uC5B4%uB09C%uB2E4%uB294%20%uC0AC%uC2E4%uC744%20%uAE68%uB2F3%uC558%uB2E4.%20%uAC70%uC758%20%uB178%uB798%201%uACE1%uB2F9%205%uBA54%uAC00%20%uC774%uC0C1%uC529%20%uBA54%uBAA8%uB9AC%uB97C%20%uB354%20%uC810%uC720%uD558%uACE0%20%uC788%uC5C8%uACE0%2C%201G%uB97C%20%uB118%uAC8C%20%uBA39%uB294%20%uC21C%uAC04%uB3C4%20%uC788%uC5C8%uB2E4.%20%uAD6C%uAE00%uB9C1%uC744%20%uD574%uBCF4%uB2C8%20%uC774%uAC8C%20%uC790%uBC14FX%uC758%20%uC6F9%uBDF0%20%uBC84%uADF8%uC778%20%uB4EF%20%uD588%uB2E4.%20%uACB0%uAD6D%20%uBC29%uD5A5%uC744%20%uBC14%uAFE8%uB2E4.%20Objective%20C%uB85C%20%uC9DC%uC790.%0A%0A%23%23%23%23%uADF8%uB807%uAC8C%20Objective%20C%uB97C%20%uC595%uAC8C%20%uACF5%uBD80%uD558%uAE30%20%uC2DC%uC791.%0A%0A%uAF64%20%uC5BC%uB9C8%uB418%uC9C0%20%uC54A%uC544%20%uC775%uC219%uD574%uC84C%uACE0%20%uC57D%uAC04%20%uB2E4%uB978%20%uBB38%uBC95%uC744%20%uAC00%uC84C%uC744%20%uBFD0%20%uC0DD%uAC01%uBCF4%uB2E4%20%uC26C%uC6E0%uB2E4.%20%uAC8C%uB2E4%uAC00%20XCODE%uAC00%20%uB108%uBB34%20%uC88B%uC544%uC11C%20%uC11C%uBE0C%uB77C%uC784%uD14D%uC2A4%uD2B8%uB098%20%uC774%uD074%uB9BD%uC2A4%2C%20%uD30C%uC774%uCC38%uB4F1%uC744%20%uC0AC%uC6A9%uD558%uB358%20%uB098%uB294%20%uAC70%uC758%20%uC2E0%uC138%uACC4%20%uC218%uC900%uC774%uC5C8%uB2E4.%20%28%uC544%uC9C1%20%uC5BC%uB9C8%20%uC548%uC368%uC11C%20%uADF8%uB7F0%uAC00..%29%20%uC0AC%uC2E4%20%uC548%uB4DC%uB85C%uC774%uB4DC%uB97C%20%uC870%uAE08%20%uD574%uBD24%uC5C8%uB294%uB370%20%uC774%uAC70%20%uBB50%20XCODE%uC640%20%uC560%uD50C%uC774%20%uC9C0%uC6D0%uD558%uB294%20%uAC70%uC5D0%20%uBE44%uD558%uBA74%20%uC815%uB9D0%20ADT%uB294%20%uC4F0%uB808%uAE30%uC784%uC5D0%20%uD2C0%uB9BC%uC5C6%uC5C8%uB2E4.%20%uC544%uBB34%uD2BC%20%uC65C%20%uC560%uD50C%20%uC571%uB4E4%uC774%20%uADF8%uB807%uAC8C%20%uC548%uB4DC%uB85C%uC774%uB4DC%uBCF4%uB2E4%20%uC88B%uC740%uC9C0%20%uC54C%uAC8C%uB418%uB294%20%uC21C%uAC04%uC774%uC5C8%uB2E4.%20XCODE%uAC00%20%uC774%uB807%uAC8C%20%uD0C4%uD0C4%uD558%uB2C8..%0A%0A%uC544%uBB34%uD2BC%202%uC2DC%uAC04%uC815%uB3C4%uB97C%20%uACE0%uAD70%uBD84%uD22C%uD55C%20%uB05D%uC5D0%20%uAC04%uB2E8%uD55C%20%uCCAB%uBC88%uC9F8%20%uBC84%uC804%uC774%20%uC644%uC131%uB418%uC5C8%uB2E4.%0A%0A%23%23%23%23%uC544%uC8FC%20%uAC04%uD3B8%uD558%uB2E4.%20%uC9C0%uB2C8%uAC00%20%uC81C%uACF5%uD558%uC9C0%20%uC54A%uB294%20%uAC74%20%uC81C%uACF5%uD558%uC9C0%20%uBABB%uD588%uB2E4.%0A%0A%uC790%uB3D9%uC73C%uB85C%20%uD3EC%uCEE4%uC2A4%uB97C%20%uC783%uC73C%uBA74%20%uC708%uB3C4%uC6B0%20%uCC3D%uC774%20%uC228%uB294%uB2E4.%20%uADF8%uB9AC%uACE0%20%uB3C5%uBC14%uC5D0%uC11C%20%uD074%uB9AD%uC744%20%uD558%uBA74%20%uB2E4%uC2DC%20%uC708%uB3C4%uC6B0%20%uCC3D%uC774%20%uB72C%uB2E4.%20%uBA54%uBAA8%uB9AC%uB3C4%20%uADF8%uB098%uB9C8%20%uC790%uBC14%uB85C%20%uC9F0%uC744%uB54C%20%uBCF4%uB2E4%uB294%20%uC801%uAC8C%uBA39%uB294%20%uD3B8%uC774%uACE0%28%uC6F9%uBDF0%uB294%20%uC6D0%uB798%20%uAF64%20%uBA39%uB294%uB4EF%uD558%uB2E4.%29%20%uB204%uC218%uB3C4%20%uC5C6%uB2E4.%20%0A%0A%uBA87%uAC00%uC9C0%20%uBB38%uC81C%28%3F%29%uB294%20%uC874%uC7AC%uD558%uAE34%uD55C%uB2E4.%20%uBA3C%uC800%20%uC790%uB3D9%uB85C%uADF8%uC778%uC774%20%uC548%uB418%uACE0%2C%20%uCFE0%uD0A4%uC720%uC9C0%uB97C%20%uD558%uC9C0%20%uC54A%uC544%uC11C%20%uC7AC%uC0DD%uBAA9%uB85D%uC774%20%uACC4%uC18D%20%uAC31%uC2E0%uB41C%uB2E4.%20%uBB3C%uB860%20%uB9E5%20%uD2B9%uC131%uC0C1%20%uC790%uC8FC%20%uB044%uC9C0%uC54A%uAE30%uB54C%uBB38%uC5D0%20%uD50C%uB808%uC774%uC5B4%uB97C%20%uC885%uB8CC%uD558%uC9C0%20%uC54A%uB294%uB2E4%uBA74%20%uACC4%uC18D%20%uC720%uC9C0%uB420%20%uAC83%uB4E4%uC774%uB77C%20%uD06C%uAC8C%20%uAC1C%uC758%uCE58%uB294%20%uC54A%uB294%uB2E4.%0A%0A%uD544%uC694%uD55C%20%uC0AC%uB78C%uC774%20%uC788%uC744%20%uAE4C%uBD10%20%uC5EC%uAE30%uC5D0%20%uC62C%uB9B0%uB2E4.%20%uAC00%uC838%uB2E4%uAC00%20%uC720%uC6A9%uD788%20%uC4F0%uAE38%21


지니플레이어 다운로드


comments powered by Disqus
태그, 트랙백, 검색 상자 토글