추석연휴를 앞두고, 해놔야 할것들이 많아
정신 없이 달렸습니다.
이번 주제는 서버와 DB에 관련된 것인데,
서버는 Golang Gin으로 제작하고 있고, DB는 MongoDB를 이용 하고 있습니다.
각 기술들의 설명은 스킵하고, 제작하다 보니 느낀 이슈들을 몇가지
말해보려고합니다.
1. 인터페이스 구현
리팩토링을 할 부분이 굉장히 많지만,
가장 크게 들어난 문제 인것 같습니다.
인터페이스를 처음에 설계하고, 추상화를 좀 해놓은 뒤에 작업을
시작했어야했는데, 그런 거 없이 막 코딩을 하다보니, 추상화가 무너지고
코드의 재사용성이나 확장성을 고려하는 부분이 많이 떨어져
스파게티가 시작된 것 같습니다.
인터페이스를 이용한 구현은 만약 내부적으로 시스템을 바꿔야할 일이
생긴다면, 해당 Handler의 기능 구현만 해주면 되어 시스템 관리 측면에서도
굉장히 좋을 거라 생각합니다.
큰 작업이지만 언젠가는 리팩토링 해야 할 부분이 아닐까 싶습니다.
2. 목업의 이용
사실 서버에서 다룰 문제인지는 잘모르겠지만,
초창기 개발에는, 목업을 이용해서 작업을 했었는데, 갑자기
클라이언트 사이드까지 작업을 맡게되어, 서버를 바로 만들면서
테스팅을 하자라는 생각을 했는데,
큰 착오라고 느껴집니다. 목업을 통해서
필요한 데이터들을 정리한 후 그 목업을 바탕으로
서버를 설계하는 게 맞는 구조인 것 같습니다.
3. 변수들의 통일
무슨 이름을 써야될지 몰라서, 변수들의 통일 이라는 말을 썼는데,
위의 목업의 이용과 같은 맥락에 있는 문제점인 것 같습니다.
타입들의 이름을 통일하고 그 통일본을 가지고 작업을 하고 있지만,
완벽하게 하지않아, DB에서 다루는 변수명과 Front 측에서 다루는 변수명이
다른 경우가 생겨 디버깅에 문제가 생길때가 종종 있습니다.
이제와서 하나하나 다시 잡기에 굉장히 힘든 문제라,
기획의 중요성이 느껴지는 부분 입니다.
4. 서버의 분할
유저와 가게 이렇게 2개의 클라이언트가 접속하는데,
서버를 통합 서버로 제어하다보니, 네이밍에 대한 생각도 많아지고,
코드가 많아져서 점점 유지 보수적인 측면에서 엄청난 일이
생길꺼 같다는 늪에 빠지고 있는것 같습니다.
많은 문제들이 있지만, 크게 생각나는 부분은 이정도 인 것 같습니다.
기획, 설계, 디자인패턴..
요즘은 이런 것들이 언어적인 지식보다 필요하다는 생각이 들고,
이런 고생을 해봐야 다음에 더 잘할 수 있게 된다고 믿고, 지금 내가 가진
지식 수준에서 최선을 다하고, 부족한 부분은 정리해 공부를 해나가야 겠습니다.
'Project 주문을 외워봐' 카테고리의 다른 글
주문을 외워봐 -8- FrontEnd (0) | 2021.09.21 |
---|---|
주문을 외워봐 -6- 토큰인증의 보안 (0) | 2021.09.14 |
주문을 외워봐 -5- 개발 환경 , Git (0) | 2021.08.31 |
주문을 외워봐 -4- Backend 라이브러리 (0) | 2021.08.28 |
주문을 외워봐 -3- FrontEnd 라이브러리 (0) | 2021.08.27 |