[Memetory] 중간 성찰

이준우·2024년 4월 27일
0

졸업작품인 생성형 AI를 활용한 동영상 생성기 프로젝트를 중반까지 진행한 현시점에서, 프로젝트를 하다가 느낀점에 대해 적어보았다!

초반 설계에 대한 성찰

  • 초반에 설계를 탄탄하게 하면 할 수록 뒤에서 코드를 변경하기 위한 유지보수 비용이 적게든다.
  • 우리팀의 경우, 초반에 설계를 미루고 나중에 가서 부딪히면 하자는 생각으로 코드를 작성했다가 유지보수에 대한 후폭풍을 맞고 있다.
  • 물론 초반에 탄탄하게 설계를 해도 예상치 못한 곳에서 유지보수를 해야하는 상황이 발생할 수 있다. 하지만 충분한 자료조사와 설계는 이를 사전에 예방하고, 추후에 발생할 수 있는 유지보수를 줄여줄 수 있다.
  • 초반에 충분한 자료수집과 탄탄한 설계를 하여 후에, 유지보수를 최소화할 수 있도록 해야겠다.
  • 어차피 나중가면 또 바꿔야 할 설계니깐 과 같은 미래의 나에게 맡기는 행위 때문에, ‘현재의 나’ 가 고생하고 있다…

대학교에서 소프트웨어공학 수업을 들을 때, 교수님이 소프트웨어는 설계에 시간을 훨씬 많이 쏟지 실제로 코딩을 하는 시간은 적다고 말씀하신적이 있으시다.
당시에는 어떻게 모든 것을 다 에측하고 프로젝트를 시작하는거지? 말이 안되는건가 아닌가 하고 넘어갔었는데, 지금 다시 생각해보니 그냥 귀찮다는 이유로 꼼꼼히 설계를 하지 않았을 뿐, 충분히 다 예측하고 설계할 수 있는 부분들이였다.

로그인에 대한 성찰

  • Oauth2 와 같이 로그인에 긴 시간을 쏟는 것은 안좋은 것 같다는 생각이 들었다.
  • 로그인에 익숙하지 않고, 공부가 덜 되어 있는 상태로 서비스를 시작해야만 할 경우 로그인 부분은 간단하게 축소화하거나 과감하게 제거해서 코어 기능에 더 집중하는 것이 나을 것 같다.
  • 심사하는 사람들은 남들 다 하는 로그인 보다는, 코어 기능에 더 집중한다고 생각하기 때문이다.
  • 또 로그인을 처음하면 로그인을 적용하는데 오랜 시간이 걸린다 → 러닝커브가 높다.
  • 그리고 로그인 방식은 생각보다 많다.
  • 여러 서비스들을 보았는데, 다양한 방식들이 적용되어 있었다.
  • 결론 → 코어기능에 집중하자!

코드를 정리해 나아가면서 구현

  • 특정 로직을 작성할 때, Notion에 기록을 해가면서 구현을 할 경우, 필요한 코드와 필요 없는 코드를 구분할 수 있게 되어진다.
  • 그리고 똑같은 코드를 구현할 때, 인터넷을 서칭하는 시간을 줄일 수 있게 된다.
  • 또 기록하는 과정에서 내가 왜 이런 판단을 했었는지 돌아볼 수 있게 된다. 내 판단이 맞았으면 성공, 틀렸으면 왜 틀렸는가에 대한 분석을 할 수 있어서 성공이다. 즉 기록은 풀이노트이자 오답노트인 것이다.
  • 기록은 언제나 늘 중요하다!

테스트 코드에 대한 성찰

  • 테스트 코드를 작성하고 결과를 보면서, 내가 예상하지 못한 부분에서 오류가 발생하는 것을 확인할 수 있었다.
    • 예를 들어, JwtFilter 를 작성할 때, 인증에 실패하면 인증자 정보를 null로 보낼 경우, 404 에러코드가 반환된다
  • 예상치 못한 부분에서 오류가 발생하면서 리팩토링을 하게 되는데, 리팩토링을 진행하기 위해 코드를 들여다보게 되면 생각보다 중첩되는 코드도 많고 냄새나는 부분이 많다.
  • 그리고 테스트 코드를 작성해 두었다는 것 자체가, 리팩토링에 대한 부담감을 많이 떨어뜨린다.
    • 여기서 말하는 부담감이란, 내가 코드를 리팩토링했을 때, 같은 결과를 반환하지 않을 경우를 의미한다.
    • 테스트 코드의 작성을 통해서 리팩토링이 잘 되었다는 것을 검증할 수 있어서, 리팩토링의 성공 여부를 확인할 수 있다.
  • 테스트 코드를 작성하는 것을 습관화하자.
    • 어느정도 익숙해 졌다고 느꼈을 때, TDD로 인풋(given), 아웃풋(then)을 정해두고 코드를 작성하는 연습을 해보자.

결론

프로젝트를 시작하기 전에는 내가 정확하게 어떤 부분이 부족한지 잘 보이지 않았다. 그냥 막연하게 "난 많이 부족한데 뭐부터 시작해야지?" 라는 생각만 있었다. 프로젝트를 시작했고, 여러가지 트러블 슈팅일 만나고 다른 사람들의 코드와 내 코드를 비교하기 시작하면서, 점점 나의 역량을 깨닫고 어느부분이 부족한지 보이기 시작했다.
이번 프로젝트 동안 나는 새로운 기술을 접해야겠다는 마음이 아닌, 다시 초심으로 돌아간다는 마음으로 계속해서 나의 코드를 리뷰하면서 어떻게하면 클린코딩을 할 수 있고, 어떻게 하면 성능을 더 향상할 수 있을지 고민해 볼 것이다.

profile
잘 살고 싶은 사람

0개의 댓글