리팩토링에 대한 고민

작업을 하다가 내가 입사 초(3월인가 4월)에 작성해 둔 코드를 쓸 일이 생겼다. 그냥 맘 편히 가져다 쓸려고 들여다 보니 이건 뭐 –_-; 부끄러워서 손발이 오그라드는 줄 알았음. 그나마 내가 짠 코드니깐 리팩토링을 하지 남이 짠 코드였으면 속으로 무진장 욕 했을 거 같다 –.-

프로그래밍 초보와 중수를 나누는 기준이 얼마나 재사용성이 높은 클래스를 만드는 거라면 난 아직 초보 수준인 것 같다. 최대한 class의 reusability를 고민하려고 하는데, 그렇게 온갖 고민을 해서 general 하게 작성해 놓아도, 막상 시간이 지나 다음 번에 쓰려고 할 때는, 세세한 요구사항이 바뀌어서 결국 원 코드에 손을 대어야 경우가 많았던 거 같다. (많이 들은 조크 : 어차피 고민해 봐야 나중에 다시 짠다)

그리고 그렇게 고민하는데 시간이 너무 많이 들다 보니, 급할 때는 그냥 최소한의 요구사항만 만족시키는 듯.. 어차피 로직이 중요하지, 그 주변부가 중요하냐고 스스로를 위로하면서. 그런데 이 로직이랑 주변부를 확실히 떼어놓지 않으니, 나중에 그 로직을 다시 사용하려고 할 때 문제가 생긴다. 그렇다고 미래에 이 로직이 사용될 경우까지 다 고민해서 분리해 내기에는 시간도 많이 걸리고, 별로 효율적이지도 않다. (대체 어떤 외계인이 내 코드를 쓸 줄 알고!)

물론 프로그래밍의 고수라면, 그냥 경험에 비추어 큰 고민 없이 짜도, 핵심부와 주변부가 적절하게 나누어진 재사용성이 높은 코드가 될 텐데, 난 아직인가 보다.

그래도 다행인건 입사 초기에 짠 코드를 이제 부끄러워할 수준은 되었다는 것. 지난 10개월 동안 내가 놀지는 않았구나 라고 느껴서 다행이다. 이제 이런 경험들이 쌓여서 나도 professiona이 되겠지?

ps) 우리 회사나 우리 팀이 다 이런 건 아니고, 우리조가 하는 일이 research 쪽에 치우쳐져 있어서.. 일단 단발성, 가능성을 검증하는 코드가 많아서 그런 거임. :P

댓글

Designed by JB FACTORY