-
백앤드 프로토타입 완성개발로그/오늘뭐먹지 프로젝트 2021. 10. 13. 14:01
프로토타입 완성 회고
https://github.com/KwangJongJeon/whatShouldIEatTodayBackProto
드디어 프로토타입 완성했다!
API를 통해 통신하는데에 이런저런 문제가 많이 생겨서 내가 생각하던 것보다는 더 오래 걸렸다.
이번 프로토타입을 만들면서 느꼈던 문제점들은 다음과 같다.
첫 번째로, 이번 프로토타입을 만들면서 가장 많이 느꼈었던건 내가 했던 설계가 상당히 부실했다는 것이다. 간단하게 시나리오만 짜보고 이걸 사용할 아키텍쳐 패턴에 맞춰서 클래스 다이어그램등을 그려보지 않았기에 개발을 하는 도중 생각하지 않았던 DTO가 새로 생기는 등 설계에 변경이 발생했다.
두 번째로, 프론트앤드쪽 설계 아키텍쳐 지정을 잘못했다. 나는 React를 사용하고 여기에 Layered 아키텍쳐 패턴을 사용해 개발을 진행해보려고 했는데, 데이터베이스를 사용하지 않는 것으로 프로토타입을 개발했던지라 맞지 않는 부분도 많았고 리액트 자체가 '뷰'에 포커스를 맞춘 라이브러리라는걸 인지하지 못해 컨트롤러와 뷰를 통합해서 개발하는 등 기존에 설계했던 내용과는 전혀 다른 방향으로 개발되었다.
세 번째로, API 제공자의 선택에 있어서도 잘못된 부분이 있었다. 네이버같은 경우 내가 하려는 기능을 수행하려면 '지역 검색 API'를 사용해야 하는데 이 API는 검색 결과 출력을 최대 5건까지만 지원하기에 내가 개발하려는 기능에 있어서는 불충분하다고 느꼈다.
그래서 무슨 API가 있나 찾아보다가 카카오 API를 찾게 되었다. 최대 45페이지까지 지원하고 출력해보니 1페이지에 대략 15~20페이지 가량 되는듯하다. 최대 900건의 검색 결과가 되니 이정도면 충분할 것으로 예상되었다.
카카오 API의 또 다른 장점, 카카오 API는 'radius' 파라미터를 지원한다. 특정 좌표를 주어지고 radius 파라미터를 보내주면 검색어에 해당하는 주변 지역의 내용을 리턴해준다. 이전에 포스팅했던 지역 검색에 대한 공식은 쓸모가 없어져버렸지만, 그래도 보다 정확한 결과를 얻을 수 있게 되어 좋아보였고 카카오 API를 사용하기로 결정했다.
앞으로 본격적으로 앱을 만들때 풀어나갈 방식
전체적으로는 TDD를 이용해 개발해 볼 생각이다. 이번에 리액트의 테스트부분을 찾아보면서 velopert님의 테스트에 대한 내용을 보게 되었는데, 이제까지 막연하게만 다가왔던 TDD에 대한 개념이 이제야 좀 잡히는 것 같아서 이번에야말로 TDD를 적용해볼 생각이다. 모르긴 몰라도 많은 시간을 요구사항을 정의하는데 소요하게 될 듯 하다.
https://velog.io/@velopert/TDD%EC%9D%98-%EC%86%8C%EA%B0%9C
프론트앤드
첫 번째로 리액트를 공부를 좀 해야할것같다. 이번에 리액트를 만들면서 테스트를 진행해보려고 했는데, 구글링을 진행해본 결과 많은 결과가 class 형식의 개발보다는 훅과 함께 함수를 사용해 개발을 진행하는 부분이 많았다. 그 외에 뭔가 막힐때에도 함수 형식의 리액트를 사용하는게 압도적으로 많아서, 프론트 앤드는 클래스 기반의 개발보다는 함수 기반의 개발로 넘어가야 할 것 같다.
두 번째로, Mock에 대한 이해가 필요할듯하다. 이번에 리액트를 테스트를 진행하려다가 Mock에서 막혀서 시간이 많이 끌리는 바람에 테스트는 본 앱을 만들때 만들면서 진행하기로 결정했다.
세 번쨰로, 아키텍쳐 패턴을 Redux를 활용해보면 어떨까 싶다. Redux는 store를 통해 상태를 공유하는데 이 점이 나에게 있어 매력적으로 느껴졌고, 이를 활용할 수 있는 라이브러리까지 제공한다니 본 앱을 개발할때 공부를 좀 해보고 Redux를 활용해 볼 생각이다.
백앤드
첫 번째로, 데이터 흐름에 대한 설계서를 하나 만들면 좋을것같다. 이번에 만들면서 가장 많이 막혔던 부분이 DTO를 설계하는 부분이였다. 만약 객체에 어떤 데이터가 필요하고 어떤 데이터가 나가는지에 대해 명세한 명세서를 만든다면 보다 명확하게 프로젝트를 파악할 수 있을 것 같다.
두 번째로, 나중에 추가 기능을 만든다면 (ex. 유저가 식당 예약) 아무래도 DB가 필요할듯해서 DB에 대한 설계가 필요할듯하다. 어떤 기능이 추가로 들어갈지 생각해보고 DB에 대한 설계를 진행하자.
이제 프로토타입에 대한 설계를 전부 마무리 했으니 본앱을 만들 시간이다. 최대한 완성도 있는 앱을 만들어보자!
'개발로그 > 오늘뭐먹지 프로젝트' 카테고리의 다른 글
메인 기능 구현 완료 (0) 2022.03.10 MVC VS FLUX VS REDUX (0) 2021.10.13 위도, 경도에서 거리 범위 구하기 (0) 2021.10.08 프로토타입 제작 (0) 2021.10.08 Layered Architecture (0) 2021.09.30