앱을 업데이트하고 배포하면서 느끼는 점
앱을 배포하기 전에는 안보였던 버그나 성능 상 허점, 불편한 점이 앱을 배포하고 나서 안심하고 조금만 앱을 사용해보다 보면 바로 부족한 점을 발견하고 업데이트 해야할 점이 보이게 되는 것 같다.
나는 사소한 걸 꼼꼼하게 짚어내는 걸 원래 싫어한다. 그리고 에너지를 써야 할 일이라면, 가만히 내 생각만 바뀌면 될 일이면 에너지를 쓰기보단 그냥 내 생각을 바꾸고 가만히 있는걸 더 선호한다.ㅎㅎ
그런데 이 앱이란 녀석은, 배포하고 나면 발견되는 버그나 아쉬운 점을 그대로 놔두면 매우 신경쓰인다.
왜 그럴까?
모순적이게도, 이 앱을 그 자체만으로 손 안대도 되고 완전히 신경을 안 써도 되는 안정적인 궤도에 올리고자 하는 욕망이 강하다보니 빨리 안정적인 앱으로 만드려고 자꾸 업데이트를 하게 되는 것 같다.
그리고, 내가 시간과 정성을 들여 만든 앱이 내가 발견 못했던 한 번의 오류나 버그, 허점, 부족한 기능, 불편함으로 인해 안쓰이게 된다는 점이 맘에 안들었던 것 같다.
아무리 기능이 적더라도, 하자가 있는 제품은 만들면 안된다. 약속한 기능은 제대로 동작하게 만든다. 10가지를 약속하기보다 1가지를 약속하고 제대로 이행한다.
요즘 만드는 '즐겨찾기'앱도 1가지 효용만 타게팅한 앱이다. 그런데 만들다보니, 그 1가지 효용을 달성하기 위해 갖춰야 할 기능이 참 많다. ux적인 편의도 많이 고려해야 한다. 버튼의 개수가 늘어날수록, 개수의 조합 경우의 수 만큼 자유로운 순서로 눌렀을 때에도 의도한 결과를 내주도록 신경써야 한다.
아직도 내 플러터 코드는 모두 main.dart 에 전부 때려넣어놓았다. 그러나 나는 이 앱을 예쁘게 파일별로 구별해서 리펙토링할 생각이 없다. 아마 그렇게 마디마디 잘라서 보기좋게 코드를 진열해 놓는 때는, 이 앱의 개발과 완성도가 끝에 다달아, 더 이상 급격한 성능 추가나 업데이트가 필요 없어질 때일 것이다.
내 코드에 체계를 세운다는 것은 경직성을 불러오고, 정체를 불러온다고 생각한다.
내가 플러터 dart언어에 대해서 정말 다양한 경험을 가지고 고수가 된다면, 앱을 처음 만들때부터 체계를 세우고 시작할 지 모른다. 하지만 고수가 아니라면, 예쁜 코드를 짜려고 신경을 많이 쓰는 건 코드의 경직성을 가져오고 새로운 기능을 넣는 데에 오히려 방해가 되개 하는 시간낭비가 아닐까 하고 생각이 든다.
그래서 나는 내가 짰던 코드를 업데이트하며 부분적으로 부수고 다시 채워나가면서 점점 플러터 코딩에 대한 경험이 쌓여가는 느낌이 든다.
지난 번에 잘 이해를 안하고 사용했던 코드여도, 부분적으로 부수고 바꾸려다 보면 이해가 되는 부분이 나중에 생긴다.
결과적으로 나중에도 이해하게 되지 않을 지식은 사실 이해할 필요가 없었던 지식이 아니었을까…!라는 사고방식을 가지고, 개발을 하고 있다. (이것이 바로.. 연역적 공부가 아닌 귀납적 공부인.. 것이다!)🙊😹
이 방식이 안 좋을 수 있다는 것은 안다. 많은 지식을 커버하려면 그 모든 것을 스스로 경험할 때 까지의 시간과 에너지가 든다. 하지만 좋은 점도 분명하게 있고, 나는 이런 식으로 배워야 습득이 된다.
문제에 대한 경험…을 쌓는 것. 이전에 내가 쌓은 편견과 잘못된 개념을 부셔서 새로 만들고 다듬는 과정.. 그런 방식으로 학습할 때가 제일 습득이 잘 되었었다. 내 특성이었던 것 같다 ㅎ



