본문 바로가기
728x90
반응형

전체 글162

WBS로 프로젝트 관리하기 들어가며... 소규모 프로젝트를 포함하는 모든 프로젝트는 책임 추적 및 완료 추정을 위해 WBS 등 문서로 관리해야 한다. 직장에서 지원하는 협업 툴 활용 시 자체 지원 간트차트 등을 활용하여 구성할 수 있지만, 실제 해당 요소가 왜 필요한지 파악하기 위해서는 직접 구성하여 터득할 필요를 체감했다. 일반적으로 우측 부분에 달력을 삽입하는 것과 달리 보다 적은 수정 및 관리 요소로 마감일을 기준으로 확인 유무를 넣게 되었다. 전체 설명 문서 번호(No.) : 작업 시 산출물(알고리즘 도식화, 문서 등)에 대한 식별 번호와 매칭할 수 있다. 작업 계획(Tasks) : 대/중/소 분류 체계로 구성하여 최대한 잘게 쪼개어 관리할수록 완료 추정을 용이하게 할 수 있다. 산출물 : 해당 작업 계획을 수행한 후 관련.. 2022. 5. 11.
Deamon 관리 (systemctl, journalctl) 들어가며... Ubuntu 서버에 프로그램을 Command 단위로 테스트를 진행하는 것 보다 Daemon 형태로 만들어서 로그 확인 등 테스트를 더욱 용이하게 만들어본다. Daemon 생성 1. Daemon 스크립트 준비 # sudo vi /etc/systemd/system/{프로그램명}.service [Unit] Description=unicorn instance to backend # 설명부 After=network.target [Service] User=ubuntu# 동작 권한 (유저) Group=www-data # 동작 권한 (그룹) # 작업 디렉토리 WorkingDirectory=/home/ubuntu/{프로젝트}/src # 환경변수 설정 Environment="PATH=/home/ubuntu/.. 2022. 5. 9.
Python3 가상환경 만들기 (venv) 들어가며... 프로젝트별 개발 환경을 구축하기 위해 가상환경을 생성하여 패키지 관리를 용이하게 수행할 수 있도록 생성해본다. 사전 준비 1. python3-venv 패키지 설치 # sudo apt-get install python3-venv 2. python3 프로젝트 생성 $ python3 -m venv {프로젝트명} 3. 가상환경 확인 # sudo apt-get install tree $ tree {프로젝트} {프로젝트} ├── bin │ ├── activate │ ├── activate.csh │ ├── activate.fish │ ├── easy_install │ ├── easy_install-3.7 │ ├── pip │ ├── pip3 │ ├── pip3.7 │ ├── python -> pyth.. 2022. 5. 9.
지도 검색 알고리즘 들어가며... 모바일에서 전달하는 검색어, 위도, 경도 데이터를 이용하여 데이터베이스에 적재된 데이터를 Map에 표시하기 위한 결과 리스트 처리를 개발해본다. 준비사항 위도(float) 경도(float) 검색어(str) 필요 사항 정리 위도 경도 값을 활용한 거리 계산 및 정렬 방법 business_latitude(float) 위도 business_longtitude(float) 경도 위도 경도 거리 계산 공식 활용 X = ( cos( 위도#1 ) * 6371 * 2 * 3.14 / 360 ) * | 경도#1 - 경도#2 | Y = 111 * | 위도#1 - 위도#2 | D = √ ( X² + Y² ) MySQL 검증 (거리 계산) SELECT business_idx, business_name, busi.. 2022. 5. 9.
커서 페이지네이션 구현 들어가며... 모바일 환경에서 적합한 스크롤 위주의 페이지 호출로 마지막 idx를 기준으로 다음 리스트를 호출하는 커서 페이지네이션을 개발한다. 준비사항 리스트 데이터를 호출하는 API 명세 Endpoint View를 개발하는 담당자와 협의 필요 마지막 idx 정보 필요 사항 정리 첫 번째 페이지 호출 N 번째 페이지 호출 코드 반영 if last_idx == 0: statement = select( Table.table_idx, ).order_by( Table.table_idx.desc() ).limit(20) else: statement = select( Table.table_idx, ).where( Table.table_idx < last_idx ).order_by( Table.table_idx.d.. 2022. 5. 9.
FCM 알림 시스템 구현 필요사항 정리 그룹 푸시 형태의 API 구성 (https://fcm.googleapis.com/fcm/notification 활용) FCM Token 테이블 구성 FCM Token 생성 및 수정 (로그인 등) 시 POST /function/fcm 활용 Token 매칭 저장 FCM Token 삭제 (로그아웃) 시 DELETE /function/fcm 활용 고객 식별 정보 매칭 삭제 FCM API 정리 # Push Group 생성 # 동일한 notification_key_name 생성 시 400 Error Return # {"error":"notification_key already exists"} notification_key = requests.post( "https://fcm.googleapis.com.. 2022. 5. 9.
728x90
반응형