[Android Clone App] 당근마켓 (1일차) 개발 환경 설정

이동현·2020년 8월 24일
0

000 : 서론

당근마켓 앱을 따라 만들어보기로 결심했다.
사실 4~5달 전 쯤에 무턱대고 도전했던 프로젝트였지만 실패했었다!
실력에 비해 수준이 높았던 탓으로... 인해 코드가 꼬이고, 데이터의 이동이 복잡해지고, 서버 사용에 대한 미숙함 (Firebase를 사용했었다) 때문에..?
거창하게 시작했던 프로젝트를 한 달뿐이 지나지 않았지만 손을 완전히 놓았던 것이었다...

이번에는 지난번보다 더 거창하게 프로젝트를 진행한다.

항상 프로젝트를 진행하면서 실패했던 이유를 짚어보면.. 가장 큰 이유는
설계의 부재가 아니었나 싶다.
항상 프로젝트 망하고나서.. 처음부터 내가 구조를 잘 짰다면 이런일이 없었을텐데 하고 말이다..
이번에는 철저한 준비를 통해 프로젝트를 성공적으로 끝낼 생각이다.
(급할 필요가 없다..)

이번에 사용하고 싶은 기술들은 아래와 같다.

  • Clean Code
  • Kotlin
  • MVVM Pattern
  • Room + ViewModel + DataBinding
  • Coroutine
  • Koin
  • Material Component
  • Retrofit
  • Server Hosting

어떤 프로젝트를 시작할 때, 새로운 기술의 도입은 최대 2개까지만 하라는 조언을 들은적이 있다.
이번에 도입하는 기술들은 Koin과 Coroutine이다.
아예 사용해보지 않은 것들은 아니지만 따로 학습을 진행하고 사용했던 것이 아니었다. 따라서, 직접 공부하고 구현해보면서, 단순히 코드 작성이 편리해지기 때문에 사용하는 목적을 깨우치기 위함이 아닌.. 원리와 지식까지 전체적으로 학습하며 사용 할 계획이다.

특히나 이번에 Server를 직접 구현하여 Hosting 해보려고 한다.
지난번 당근마켓 구현시 Firebase에 저장 되어있는 정보들을 control 하는 과정에서 애를 많이 먹었는데, 이러한 수고를 줄여줄 수 있는 방안이 될 수 있을 것이라고 생각했기 때문이다.

이 클론앱 시리즈는 앞으로 일기형식으로 작성 될 가능성이 매우 높다.
정보 전달의 목적이 아니라.. 내가 어떤식으로 작업했는지 그 흐름을 기록해 두고 싶을 뿐이기 때문이다.
(포스팅까지 신경써버리면 재미있게 시작했던 프로젝트가 일로 느껴질까봐.. ㅎㅎ)
그래서 원래 글 작성하면 맞춤법 검사도 철저하게 하고.. 띄어쓰기도 신경쓰는데 진짜 생각나는대로 적을 가능성 역시 매우 높다!


001 : 프로젝트 환경 조성

서론에서 말했듯.. 이번 프로젝트는 코드 작업을 시작하기 전에 사전에 철저한 준비 작업이 선행 될 것이다.

Notion

이를 고려하여 나의 작업 내용 관리를 진행 할 notion 페이지를 오픈했다.

노션은 개별적으로 진행중인 팀 프로젝트에서 사용을 해봤는데, 기본적으로 사용성이 괜찮은 사이트인것 같아서 채택했다. 기본적으로 작성 layout도 제공을 해주기 때문에, 손쉽게 나만의 노트를 만들 수 있었다.

GitHub

깃허브 저장소 역시 만들어놨다.
아직 아무것도 없으므로~ 때가 되면 링크를 달아두겠다.

서버 개발 환경

사실 서버 개발은 처음인데... 정말 기초적인 서버 작업을 진행 할 생각이라, 서버는 만들어지기만 하면 돼! 하는 생각이 7할정도 머리속에 들어있는 상태로 작업 할 것 같다.

어떻게 구현하는 것인지 검색하는데 상당히 애를 먹었는데,
어쨌든 검색한 결과 PythonDjango를 이용하여 서버 구축을 진행 하기로 결정을 했다.
또한, Database는 Mongo DB를 사용하기로 했다.
Local 환경에서만 사용해도 괜찮을거라 생각했지만, 주로 집에서 데스크탑 작업을 하고.. 간혹 카페에서 노트북 작업을 진행하기 때문에 Hosting Server가 필요하다고 생각했다. 이게 이렇게 접근하는게 맞는지는 모르겠는데.. 같은 팀 프로젝트 백엔드 담당자 분께서 Heroku를 사용하여 서버 배포를 하셨던 것을 기억해서.. 나도 그것을 사용하기로 결정했다 ㅎㅎ

어쨌든 정리하면 서버 개발을 위해

  • Python 및 IDE(Pycharm)
  • Django
  • Mongo DB
  • Heroku

가 필요했으며, 이 중 Python 설치 및 Django Local Server까지는 오픈을 완료했다.

이게 Local에서 열린 나의 서버인 것 같은데.. 정확히는 모르겠다 ㅎㅎ
어쨌든 성공했다고 하니깐 기분이 좋았다.

Heroku는 나중에 서버를 외부에 Open 할 때 사용할 것이므로 나중에 설치 예정이다.


003 : 간단한 기획 및 규칙, 데이터구조 설정



약간 이런식으로 notion에 기록을 해두었다.
첫 날이라서 다 한건 아닌데, 그래도 어플 보면서 분석해가면서 구조를 짜봤다.
이 작업은 이번주까지는 완료 할 생각이다.


생각

시작은 항상 재미있다.
나중에 구조가 엉망이 되지 않기를 소망하며..

profile
영차영차

0개의 댓글