drcarter의 DevLog

상당히 오랜만에 블로그에 글을  쓴다.

그리고 이번 글은 정답이 없는 글이라고 생각한다. 그냥 개인적인 생각을 좀 적어보고 싶은 것 뿐.

난 아직 부족한 개발자다. 완벽하게 하고 싶지만 항상 2% 부족했고, 그리고 내 코드도 완벽하지 않다고 생각한다.  그 부족한 부분은 개발할 당시엔 모르고 한참 후에야 알게되곤 했으니까... 그리고 난 스스로 발전시킬려고 노력하고 있다. 


얼마전 프로젝트에서 디자이너가 나한테 이렇게 말했다. 

[디자이너가 나인패치를 하기 어렵고 하니 배경 관련된 부분을 pattern으로 가자고, 이전 개발자는 버튼 배경 이미지를 사용했을 대 1px짜리 버튼 이미지를 주면 코드로 알아서 모서리 부분도 라운드 처리해서 사용했다. 그러니 그렇게 가자고]

이 말을 들었을 대 순간적으로 든 생각은 이러했다.

왜!!! 편한길 놔두고 어려운길을 택했는가!!!

그래도 말로 잘 풀어서 나인패치로 했을 때의 좋은점을 설명하고 나인패치가 적용된 이미지로 받아서 프로젝트를 적용할 수 있었다. 그리고는 그 나인패치를 사용하지 않고 pattern으로만 사용하는 개발자가 누구일지 궁금하기만 했었다.


그런데...

내가 직접적으로 하는 프로젝트가 아닌 후임이 주도적으로 하고 내가 뒤에서 봐줘야 하는 프로젝트..

여기에서 다른 디자이너도 오더니 이전 개발자가 pattern으로 주면 사용했었다면서 또 같은말을 했다. 정말 답답한 마음으로 설명해줄 때... 나인패치를 사용하지 않는 개발자가 누군지 알게 되었고 왜 그렇게 하는지 물어보았을때 대답은 간단했다. 그 개발자는 pattern으로 배경 적용하고 모서리 라운딩을 코드로 처리하는게 편하다고... 

사실 개발자가 자기가 편한 방법으로 개발하면 머 틀리진 않는다. 하지만 개인적인 생각은 편하게 그리고 잘 사용하라고 만들어둔 것은 잘 활용하자는게 내 생각이다. 

나인패치로 이미지를 적용하면 정말 버튼과 같은 부분에 size만 정하고 배경에 해당 이미지만 적용하면 끝난다. 코드??? 몇줄 안되고 재활용도 잘 된다. 다른곳에서 size만 다른 버튼에 똑같은 이미지를 가져다 써도 문제가 되지 않으니까...

하지만 pattern으로 배경처리하고 code로 모서리 round처리했을때... pattern적용할 resource를 따로 만들고 round 버튼을 만들 custom layout을 만들어야 한다. 다른 방법이 있다면 shape resource를 만들어 줘야 한다는거.

음.. 과연 어떤 방법이 편할까..

개인적인 개발자 스타일이라고 생각을 해도 이건 정말 이해하기 힘들다. 그래서 두가지 방법으로 했을 때 Activity의 onCreate에서 화면이 다 만들어지는 시간을 보기로 했다... 화면이 다 만들어지는데 얼마나 시간이 걸리는지를 보고 싶어서

나인패치를 적용한 버튼이 6개 있는 화면이 만들어지는데 걸리는 시간.

07-23 15:45:21.968: D/Load Time(18945): Time NinePatch = 9

07-23 15:45:23.088: D/Load Time(18945): Time NinePatch = 9

07-23 15:45:24.013: D/Load Time(18945): Time NinePatch = 6

07-23 15:45:24.948: D/Load Time(18945): Time NinePatch = 6

07-23 15:45:25.928: D/Load Time(18945): Time NinePatch = 8

07-23 15:45:26.883: D/Load Time(18945): Time NinePatch = 8

07-23 15:45:27.758: D/Load Time(18945): Time NinePatch = 6

07-23 15:45:28.588: D/Load Time(18945): Time NinePatch = 6

07-23 15:45:29.458: D/Load Time(18945): Time NinePatch = 5

07-23 15:45:30.708: D/Load Time(18945): Time NinePatch = 9


화면은 똑같고 pattern을 이용하여 custom button을 만들었을 때..
07-23 15:47:20.543: D/Load Time(18945): Time Pattern = 10
07-23 15:47:21.523: D/Load Time(18945): Time Pattern = 13
07-23 15:47:22.378: D/Load Time(18945): Time Pattern = 9
07-23 15:47:23.248: D/Load Time(18945): Time Pattern = 15
07-23 15:47:24.018: D/Load Time(18945): Time Pattern = 13
07-23 15:47:24.803: D/Load Time(18945): Time Pattern = 8
07-23 15:47:25.708: D/Load Time(18945): Time Pattern = 7
07-23 15:47:26.563: D/Load Time(18945): Time Pattern = 8
07-23 15:47:27.548: D/Load Time(18945): Time Pattern = 7
07-23 15:47:28.423: D/Load Time(18945): Time Pattern = 11

이런 결과가 무슨 비교 대상이 될지는 모르겠다. 하지만 약간의 차이라도 속도 차이도 있고, 편의성도 상당한 차이가 있다. 편의성이라고 해봐야 코드의 양이다. 코드가 많다고 좋은 개발자라고 생각하지 않는다. 요즘은 10줄자리 코드가 한두줄로도 끝날 수 있도록 잘 만들어진 api들이 많기도 하니까. 
그냥 개인 특성이라고 생각하고 싶지만, 그래도 이해하기가 정말 힘들다. 물론 나인패치를 몰라서 사용하진 않았을 거라고 생각하진 않는다. 그래.. 그냥 개인 개발 특성이라고 생각하자...

하지만!!!
나인패치!!! 사용하면 정말 편하고 좋다!!! 처음에 점찍는거 어려울지 몰라도 익숙해지면 정말 편하다!!!
그러니 좀 쉽게쉽게 가자~~~