Giter Site home page Giter Site logo

tasddc1226 / human-scape-wanted-a Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 2nd-wanted-pre-onboarding-team-a/human-scape-wanted-a

0.0 1.0 0.0 79 KB

apscheduler를 이용한 open API 배치 프로세스 구현, open API 데이터에 맞는 RDB 설계 및 임의 필터링을 적용한 임상정보 조회 REST API 구현

Python 100.00%
batch-processing django docker mysql postman python

human-scape-wanted-a's Introduction

1_ePn61nZEatSdCPKVl5yxZQ

👩‍💻 Team

이름 Github 담당 역할
양수영 tasddc1226 DB Modeling, 수집 스크립트(batch task)작성 및 Logging 로직 작성
권은경 fore0919 최근 일주일내에 업데이트 된 임상정보 리스트 view, 임상정보 검색 및 Detail view, API 문서화
윤상민 redtea89 Docker 배포 및 문서화, 수집 스크립트(batch task) 작성, 가산점 기능 구현, 실행 Guide 작성

ㅤ👪 ㅤ공동작업 : 공공 API 및 요구사항 분석

프로젝트 진행 기간 2022.05.10 09:00 ~ 2022.05.13 18:00
  • 과제 요구 분석 및 역할 분담, 개발 일정 공유를 위해 사용

사용 기술

PythonDjangoMySQLDockerPostmanGitHub

개인별 구현방법 및 어려웠던 점

  • 양수영

  • 권은경

    • .
    • .
  • 윤상민

    • 도전과제 batch_task(실패)
      • 실패이유: 도전과제 batch_task를 구현하는데 실패했는데 가장 큰 이유는 문제를 정확하게 이해하지 못한 채 코드작성을 시작했기 때문이다. 임상정보를 가져오는 또다른 API를 찾아서 기존 과제와 병합할 수 있느냐로 해석해야 할 것을, 임상정보와 관련된 또다른 API를 찾아서 기본 과제를 한번 더 풀어라고 이해했다.
      • 보완할 점: 요구사항 분석단계에서 내가 이해했다고 생각하는 것을 다시 다른 팀원과 공유하여 크로스체킹을 명확하게 했어야 했는데 그러지 않고 진행했기 때문이고, Pull request를 좀 더 일찍하여 리뷰를 받았다면 잘못된 길이었음을 좀 더 일찍 알아챌 수 있었을 것이라 생각한다.
    • 배포
      • 클라우드 가상머신을 이용하여 Docker로 배포를 진행하였다. 사실 이 부분은 이전해 해본 적이 있었기에 큰 어려움은 겪지 않았다.
    • 기타
      • 배포에 그리 많은 시간을 할애하지 않않고 도전과제도 마무리를 못하는 정도였다면 분명 시간이 꽤 있었을 텐데 무얼 했으냐? 라는 질문을 하게되는데, 이번 과제에서 가장 어려웠던 점은 자기관리였던 것 같다. 지금이 3주차 과제를 진행하고 있는데, 1~2주차에 이곳에 신경을 집중한다는 이유로 운동이나 취미활동, 먹는 것들까지도 제대로 신경쓰지 못했다. 그리고 그것의 부채가 이번주에 나타나고 있었던 것 같다.
      • 보완할 점: 모니터에 앉아있는 시간을 무작정 늘릴 것이 아니라 생활패턴을 잘 가꿔가는것이 무엇보다 중요하겠다는 생각이 들었던 프로젝트 기간이었다.

프로그램 실행방법

로컬환경에서 이 프로그램을 실행시키려면 Django SECRET_KEY와 API KEY가 필요하다. 이 실행방법은 KEY를 알고 있다는 가정하에 작성되었다. (팀원중 window사용자가 없어 mac만 작성)
MAC OS

1번. 터미널에에서 프로그램을 내려받을 폴더로 이동한다. (Documents 디렉터리 예시)

% cd ~/Documents

2번. git clone으로 파일을 받고 프로젝트 폴더로 이동한다.

% git clone https://github.com/2nd-wanted-pre-onboarding-team-A/Human-Scape-A.git
% cd Human-Scape-A

3번. 폴더 트리 확인

% ls

# 예시 화면
README.md   human     requirements.txt
__pycache__   manage.py   research
core      dockerfile    paper
앞으로 이 디렉터리의 상태를 "프로젝트 폴더"라 부르겠다.

4번. 파이썬 설치 확인

% python --version

# 예시화면
Python 3.8.10
만약 파이썬 3.8이상이 설치되어있지 않다면 링크 로 이동하여 파이썬 3.8.10 (혹은 3.8.12) 를 설치한다.

5번. (파이썬 설치가 완료되었다면 3번 폴더 위치에서) 가상환경 생성

% python -m venv venv

6번. 가상환경 진입

% source venv/bin/activate

7번. 파이썬 모듈 설치

% pip install --upgrade pip
% pip install -r requirements.txt
여기서 에러가 난다면 3번부터 정상적으로 되었는지 확인하여야 한다.

8번. 환경변수 파일 만들기

프로젝트 폴더에서 파일명 my_settings.py를 만들고 아래의 내용을 붙여넣기한다. (KEY 내용은 이미 알고 있는 내용을 집어넣으면 된다.)
# my_settings.py

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'human',
        'USER': 'root',
        'PASSWORD': 'mysecretpassword',
        'HOST': 'localhost',
        'PORT': '3306',
    'OPTIONS': {'charset': 'utf8mb4'}
    }
}

SECRET_KEY = ''
DEBUG = True

OPEN_API_SECRET_KEY = ''
OPEN_API_SECRET_KEY_CHALLENGE = ''

9번. 로컬 환경에 Mysql 설치

이미 Mysql이 설치되어있다면 이 과정은 넘어가도 된다. 만약 brew가 설치되어 있지 않다면 이곳을 참고
% brew install mysql
% brew services start mysql
루트 비밀번호 세팅 (이곳 비밀번호가 8번 환경변수 파일 만들기의 비밀번호에 들어가야한다.)
% mysqladmin -u root password 'mysecretpassword'
터미널에서 mysql 접속확인(터미널 아무위치에서해도 상관없음)
% mysql -u root -p
% mysecretpassword

10번. database 생성

mysql에 접속하였다면 터미널 명령창이 아래와 같이 mysql> 로 바뀐다.
mysql> create database human character set utf8mb4 collate utf8mb4_general_ci;

11번. Django를 이용한 Mysql DB 테이블 생성

프로젝트 폴더(3번 참고)로 이동하여 아래와 같이 입력
% python manage.py migrate

12번. Django 서버 실행

프로젝트 폴더에서 아래의 명령어를 입력한다.
% python manage.py runserver --noreload

13번. 로컬 API테스트

터미널에서 아래의 명령어를 입력한다. 자세한 API테스트는 아래 API Documentation 참고
curl http://localhost:8000/api/v1/research

API Documentation

human-scape-wanted-a's People

Contributors

fore0919 avatar redtea89 avatar tasddc1226 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.