진짜 기술적으로 개허접한 프로그램 만드는데도 이게 규모가 커지니까 (커져봤자 현업 입장에선 좁밥이지만)

뭐 구현 변경/기능 추가 하는데 오만 코드를 다 헤집는게 비일비재해서 뭐 좀 하려고 하면 시작 전부터 스트레스 받아


그냥 주먹구구식으로 해버리면 반드시 어디선가 버그가 튀어나와.

그래서 처음에는 유닛테스트 하는 법을 배워서 잘 활용했어. 테스트 만들 때는 고생했는데 막상 만들어놓으니 진짜 편했어. 바로바로 문제 있는 코드를 색출할 수 있어서.


근데 어느 순간부터 프로그램이 복잡해지니까 테스트를 만드는게 귀찮음허용수준을 넘어버려서 그 때부터 Test-Driven이 아닌 Trust-Driven이 되버렸고 지금 상태에 이르게 된 것이지...


왜 테스트를 만드는게 더 귀찮아진 걸까? 나름 짱구 굴려서 생각해보니까 코딩에 돌입하기 전에 충분히 디자인을 하지 않았고 그 디자인 조차 죄다 머릿속에서 일어났다는 걸 깨달음.

아무리 내가 혼자하는것이라도 나중에 가면 다른 정보를 기억하느라 까먹는다는 간단한 사실을 자꾸 망각하네



그런데 청사진을 미리 준비해야 된다는 생각을 하면서도

막상 디자인을 하려고 하면 뭐가 효율적인 방법인지 모르겠어

박스 몇 개 그리고 화살표 찍찍 그으면 뭐해? 그 디자인방법론에 일관성/통일성이 없으니 미래의 내가 보면 또 해석하느라 시간 낭비되겠지...


어떻게 해야할지 모르겠어.

내가 하소연을 남들이 이해할 수 있게 잘 적었는지 걱정되네.

소프트웨어공학 관련한 강의같은거 보면 도움이 되나...?