First Project 10일차 - 깨달음을 얻다..

📅 TIL #91




👉 오늘은 어떻게 프로젝트에 기여했나요?


댓글 기능을 구현할 수 있게 컴포넌트를 만들었다.




👉 오늘 프로젝트에서 힘든 점은 무엇인가요?


오늘 아침부터 저녁까지 하루종일 댓글 기능 구현을 위해 컴포넌트를 만들고 코드를 작성하였다.


하지만 기능구현에 실패했다. 정말 힘들었던 것은 원인도 못 찾았던 점에서 힘들었다. 원인을 찾기 힘들었던 이유는 내가 코드를 정말 개떡ㄱ…같이 짰기 때문이라고 생각한다.


댓글 기능과 댓글의 댓글 기능 두가지를 구현하는게 목표였고, 먼저 댓글 기능을 구현하려고 노력했다.


댓글은 각 댓글마다 가지고 있는 index가 있어야 삭제할 때나, 댓글 관리에 편했다. 그런데 여기서 문제가 생긴 것이다. 나는 한 컴포넌트로 댓글 구현을 하려고 했던 것이였다. 그래서 코드의 길이가 200~300줄 정도가 되었다.


결국 기능 구현하는데에 에러를 만나게 되었고, 코드 구조가 너무 복잡하여 에러를 도저히 찾기 힘든 지경에 이르렀다. 정말 후회를 많이 했다. 코드는 정말 나도 알아보기 힘든 정도의 수준이였고, 나를 도와주려고 온 팀원들 조차도 코드를 알아보기 힘들어했다.


결국 팀원들에게 다시 처음부터 하는게 좋을 것 같다는 조언을 듣게 되었을 때에는 하늘이 무너지는 기분이였다. 아침부터 밤까지 하루종일 짰던 코드를 다시 지우고 시작하려니, 처음에는 염두가 나질 않았다.


이 프로젝트는 정해진 기한내에 결과물을 만들었어야 했고, 나는 지우고 다시 처음부터 하면 시간 소모가 정말 컸기 때문이다. 하지만 어쩔 수가 없었다. 나조차도 알아보기 힘든 코드에 오류가 발생했는데 어떻게 해결할 것인가?


나도 결국 체념하고 컴포넌트 폴더 자체를 삭제하는 결과가 일어났고, 밤 11시경 다시 코드를 작성하게 되었다. 그래도 팀원들에게 어떤식으로 코드 구조를 설계하면 좋을지에 대해 조언을 듣게 되어서 방향은 잡을 수 있었다.



나는 이때 정말 정말 정말 많은 것을 깨달았다.


1. 컴포넌트를 만들고 무작정 코드를 써내려가지 말 것!


어떻게 또 컴포넌트 단위를 나누면 더 효율적인가에 대해서 생각해보지 않았다. 나는 댓글 기능이니까 댓글 폴더안에서 모든 것을 해결하려고 했다. 하지만 이렇게 하면 코드도 알아보기 힘들어질 뿐만 아니라, 오류를 찾기 힘들어진다는 것을 명백히 깨달았다.


무작정 코드를 쓰지 말고 데이터가 어떻게 흘러가는지, 플로우 차트를 짠다면 어떤식으로 흘러갈 것 같은지 먼저 생각을 하고 코드를 작성하는 습관을 기르자.


2. 기능 구현을 한다면 중간중간에 꼭 개발자 도구를 열어서 기능 테스트를 해 볼 것!


나는 이번에 댓글 기능을 구현하면서, 일단 다 만들고 그 후에 되는지 안되는지를 테스트 해보려고 했다. 하지만 이렇게 했을 때, 잘못된 결과를 만나게 되면 어디서부터 잘못되었는지를 짚기가 정말 힘들어진다.


3. 먼저 기능구현을 완벽히 해보고 그 다음 css를 하자!


이번에 나는 먼저 기능구현이 완벽히 되는지 테스트도 해보기 전에, 로직을 짜고 그 다음 css를 입힌 다음에 기능이 되는지를 테스트 해보았다. 결국 기능 실패를 했고 로직을 다시 짜게 되었는데, 이러면 css도 다시 짜게 된다. 그러면 일을 두번하게 되는 것이 아닌가? 시간 소모가 엄청 났다.


앞으로 서버와 의사소통을 잘 해서 기능구현을 먼저 한 다음에 데이터 요청과 응답이 잘 이루어지고 더이상 서버와 의사소통을 하지 않아도 될 때!!! 그때 css를 입히자!




👉 내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?


아직 댓글 기능을 구현하지 못하였다. 아무래도 오늘 밤새 코딩을 할 것으로 보인다… 당장 내일 모레 발표인데… css 마무리작업도 못하였고 댓글 기능은 이제 코드를 작성하고 있으니.. 앞으로 힘든 여정이 시작될 것 같다..