[안드로이드 클라이언트] CH1 팀 프로젝트를 맛보자

0
post-thumbnail

[안드로이드 클라이언트] CH1 팀 프로젝트를 맛보자

이 포스팅은 <SNS 앱을 만들면서 배우는 안드로이드 클라이언트 개발>, 장성환, 비제이퍼블릭(2022)을 읽고 개인 학습용으로 정리한 글입니다.

1.1 프로젝트 소개

1.2 기획자의 스토리보드

  • 스토리 보드: 앱 개발을 위한 설계도
    -> 화면 구성과 기능에 대한 설명을 담고 있음
    -> 개발에 필요한 다양한 정보 포함(정책, 오류메세지, ...)

1.3 디자이너의 디자인 가이드

1.4 서버 개발자의 서버와 API 문서

  • API(Application Programming Interface):
    -> 소프트웨어를 다른 소프트웨어가 사용할 수 있도록 제공하는 인터페이스
    -> 플랫폼과 언어에 상관없이 사용할 수 있게 하기 위해 HTTP 프로토콜을 기반으로 만드는 경우가 많음

  • 오픈 API

1.4.1 서버 설치

  • 사용할 서버는 파이썬으로 만들어졌고 데이터베이스는 SQLite 사용

파이썬 설치

파이썬 가상환경 만들기

  • 파이썬에서 별다른 설정 없이 패키지 관리자로 라이브러리를 설치하면
    -> 파이썬 런타임이 공유하는 site-packages에 설치됨
    -> 여러 프로젝트들이 서로 다른 버전의 라이브러리를 사용하려 할 때 충돌 발생
    -> 가상환경을 만들어 프로젝트마다 독립된 파이썬 사용하기

  • 윈도우 프롬프트 실행
    -> daily-q-server 폴더로 이동
    -> 내장된 venv를 이용해 가상환경 만들기

C:\...\daily-q-server\python -m venv vecv
  • 명령어에 venv 두 번 등장
    -> 첫 번째는 venv 명령을 실행하겠다는 것
  • 두 번째는 가상 환경의 이름 (venv로 지정 권장)

  • venv 폴더 만들어짐
    -> dir venv 명령으로 폴더 생성 확인

  • 가상 환경은 사용할 때 활성화하고 사용이 끝나면 비활성화 해야
    -> vecv 폴더의 스크립트 사용
C:\...\daily-q-server>venv\Scripts\activate.bat
(venv)C:\...\daily-q-server>
(venv)C:\...\daily-q-server>venv\Scripts\deactivate.bat

패키지 설치

  • 가상환경에서 패캐지 설치
  • 파이썬에서 패키지 관리는 주로 pip(Package installation for Python) 사용
  • 사용한 패키지와 버전을 하나의 파일에 정리해두면 한번에 설치 가능
  • 설치한 패키지는 venv\Lib\site-packages에서 확인 가능
(venv)C:\...\daily-q-server>pip install -r requirements.txt

requirements.txt

aniso8601==9.0.1
atomicwrites==1.4.0
attrs==20.3.0
bcrypt==3.2.0
#cffi==1.14.4
click==7.1.2
colorama==0.4.4
cryptography==3.4.6
Flask==1.1.2
Flask-Bcrypt==0.7.1
Flask-JWT-Extended==4.1.0
flask-marshmallow==0.14.0
flask-restx==0.2.0
Flask-SQLAlchemy==2.5.1
importlib-metadata==3.1.1
iniconfig==1.1.1
itsdangerous==1.1.0
Jinja2==2.11.2
jsonschema==3.2.0
MarkupSafe==1.1.1
marshmallow==3.10.0
marshmallow-sqlalchemy==0.24.2
packaging==20.7
pluggy==0.13.1
py==1.9.0
pycparser==2.20
PyJWT==2.0.1
pyparsing==2.4.7
pyrsistent==0.17.3
pytest==6.2.2
pytest-mock==3.5.1
pytz==2021.1
six==1.15.0
SQLAlchemy==1.4.2
toml==0.10.2
webargs==7.0.1
Werkzeug==1.0.1
zipp==3.4.1
marshmallow-enum==1.5.1
firebase-admin==5.0.1

서버 실행

  • Daily Q 서버는 마이크로 웹 프레임워크인 Flask로 만들어짐
  • Flask 실행 명령으로 서버 실행
(venv)C:\...\daily-q-server>flask run

  • 서버를 실행하면 실행 환경, 디버그 모드, 주소 출력됨
  • 127.0.0.1
    = 루프백 주소(Loopback address)로 요청을 보낸 호스트
    = 서버가 실행되고 있는 PC
  • 포트 5000번 사용하고 있음

  • 재부팅 등으로 컴퓨터가 종료되면 서버를 다시 실행해야
    -> 명령 프롬프트 실행 -> daily-q-server 폴더로 이동 -> flask run

⚡API 테스트 도구

기기에서 접속하기

  • flask run 명령으로 실행된 개발용 서버는 127.0.0.1 주소로만 접근 가능

  • 10.0.2.2를 사용하면 에뮬래이터에서 실행중인 PC의 루프백 주소로 연결 가능

profile
Be able to be vulnerable, in search of truth

0개의 댓글