Popular
Chapter 10: FastAPI 프로젝트 배포하기 이 단원에서는 FastAPI 프로젝트를 배포하는 Best Practice에 대해 배운다. 먼저 환경 변수를 사용해서 configuration을 진행하고, dependency들을 pip로 잘 관리될 수 있게 한다. 그 후 세 가지 방법으로 배포를 진행해 본다. 서버리스 클라우드 플랫폼 이용해서 배포 도커 컨테이너를 이용한 배포 리눅스 서버를 이용한 배포 또 다른 주제들은 아래와 같다 환경변수를 설정하고 사용하는 방법 파이썬 종속성 관리하기 환경변수를 설정하고 사용하기 배포에 대한 방법을 배우기 전에, 먼저 우리가 구현한 앱을 신뢰할 수 있고, 빠르고, 안전하게 배포할 수 있도록 만들어야 한다. 그 과정에 있어서 핵심적인 것이 configuration 관..
Chapter 9: API를 비동기적으로 테스트하기(with pytest, HTTPX) 실전 프로젝트를 시작하기 전 마지막 단원으로 테스트에 대해서 배워보자. 유닛 테스트 작성은 고품질의 소프트웨어 제작에 필수적인 요소이다. 파이썬에서는 기본적으로 unittest라는 모듈을 제공한다. 하지만 많은 파이썬 개발자들은 더욱 가벼운 문법을 제공하기도 하고 advanced use case를 위한 강력한 툴들을 제공하기 때문에 pytest를 더 선호한다. pytest를 이용한 unit test unittest를 이용하는 경우 import unittest from chapter9.chapter9_introduction import add class TestChapter9Introduction(unittest.Tes..
· 학교
학교에서 제공하는 클라우드 스토리지가 구글 드라이브 무제한 -> 5GB 제한이 생겼을 때, 학교 원드라이브 계정으로 마이그레이션을 진행했다. 원드라이브 또한 이용자 수가 많아지고, 비용 최적화를 위해서인지 5TB 제공에서 1GB 제공으로 바뀐다고 한다. 그래서 MS 365 Office Family 계정을 결제해서 사람들과 공유하기로 마음먹고 이전을 진행했다. 6명이서 2만원 가량씩 나눠서 내면, 시중에 판매되고 있는 클라우드 스토리지 서비스 중 제일 착한 가격이라고 생각한다. 결제가 진행될 때, 해외 원화결제가 이루어지므로 미리 차단을 해제해두는 것이 좋다. 해외결제이기 때문에 결제 수수료가 2000원 가량 발생한다. 하지만, 토스 카드로 결제할 경우 해외수수료보다 더 많은 캐시백이 있어서, 이 부분은 ..
Chapter 8: 양방향 통신을 위한 웹소켓 in FastAPI | “Building Data Science Applications with FastAPI”의 챕터 8을 공부하며 정리한 내용입니다. HyperText Transfer Protocol (HTTP)는 서버에 데이터를 보내고 받기에 간편하지만 강력한 기술이다. 하지만 채팅과 같은 양방향 소통이 중요한 경우 HTTP로 구현한다면 상당히 불편함이 따른다. 짧은 시간 내에 많은 요청과 응답을 만들어야 하기에, 자원 낭비가 심할 것이다. 이러한 HTTP 단점 때문에 새로운 프로토콜 웹소켓(WebSocket)이 인기를 끌고 있다. 이 프로토콜의 목표는 client와 server 사이에 communication channel을 열어서 그들이 실시간으로 ..
Chapter 7: FastAPI에서의 인증과 보안 “Building Data Science Applications with FastAPI”의 챕터 7을 공부하며 정리한 내용입니다. API에는 모든 이가 접근할 수 있는 Public API도 있지만, 인증된 사용자들만 접근 가능한 API가 대부분이다. 따라서 private token으로 접근성을 낮추거나, 적절한 인증 시스템을 구축해야 한다. 이 챕터에서는 FastAPI가 제공하는 보안과 관련된 의존성에 대해 다룬다. 또한 웹 브라우저에서 발생하는 CORS와 CSRF 공격에 대해서도 다룬다. 세부적인 내용들은 아래와 같다. Security dependencies in FastAPI Retrieving a user and generating an acces..
제품과 공정의 조합 제폼-공정의 수명주기 제품 수명주기: 도입-성장-성숙-쇠티 초기: 수요자 많지 않음 -> DTO 중기: 수요 증가 -> 표준화 및 생산능력 증가 -> MTO, ATO 후기: 대량 생산을 위한 완전 표준화 제품 -> MTS (소량) DTO -> MTO -> ATO -> MTS (대량) 공정의 수명 주기 제품 수명 주기에 따라 다름 초기: 생산량 적고 제품 이질성 높음 => 유연성 중요 -> 공정별 배치 후기: 생산량 많음, 표준화된 제품 대량 생산 -> 제품별 배치 공정 유형의 동태적 변화 Unit job Shop -> Batch job Shop -> Discrete(continuous) flow shop 제품-공정의 연계 균형 전략: 제품의 유형과 공정의 유형 간 최적의 연계 기본 모..
Code Layout 개인 취향에 따라 다르다. 하지만 특정 규칙을 정해놓고, 통일성있게 작성하자. Evidence that Layout Matters Chase & Simon (1973): "Preception in Chess" Schneiderman(1975): "Exploratory Experiments in Programmer Behavior" McKeiten et al. (1981) Soloway & Ehrlich (1984) 파이썬 래이아웃은 일등 시민이다 원칙과 목표 비주얼 레이아웃 -> 프로그램의 논리적 구조 목표: 코드를 예쁘게 만드는 것이 아닌 이해하기 쉽게 만든다. 다른 프로그래머들의 경험을 빌리자. 더욱 빠르게 전문가가 될 수 있음 Withstand the test of time h..
Xcode를 12버전에서 13으로 업데이트하고 난 다음 빌드 에러가 발생하였다. 원래는 빌드가 잘 되었던 프로젝트였는데, 업데이트 이후 문제가 발생했다. ...(생략) ** BUILD FAILED ** The following build commands failed: Ld /Users/***/Library/Developer/Xcode/DerivedData/****-fvqcobexgiohywfvalwevmqwmogq/Build/Products/Debug-iphonesimulator/****.app/hiral normal (in target '*****' from project '*****') (1 failure) info Run CLI with --verbose flag for more details. e..
Software Dev Process Objectives 소프트웨어 개발 단계를 이해한다. 제품의 품질 향상을 위한 공정들을 이용하기. 전통적인 방법 더욱 모던한 방법 어떤 것이 적용될 수 있고, 적용될 수 없는지 이해하기. Development Phases 시장 조사 요구사항 수집 및 분석 Specification, planning, design 구현과 테스팅 배포 지원 및 유지보수 시장 조사 유저 혹은 현장에 있는 사람, 내부 직원(개발자 등) 등이 조사 대상 사회적/경제적 실현 가능성 판단 시간/비용이 얼마나 필요한지 가늠해보기 마케팅을 무시하지 말 것. 요구사항 분석 제품 정의 information, function, behavior, performance, interfaces 목표와 사용가능한 ..
기본적인 프로젝트 진행 방식과 document 작성 규칙, 방법들을 배웠다. 프로젝트 스프린트 과정 팀 구성 프로젝트 주제 제안 프로젝트 스프린트 Sprint 1: (Features + Setup) - requirements and specification Sprint 2: design and planning document, starting development Sprint 3 Sprint 4 Sprint 5 Final demo poster session Final Report 스프린트 마다 문서들을 버저닝 하면서 업데이트 해야한다. Project requirements and specification a living document github wiki 이용 간결하게 작성포함 되어야할 내용 프로젝트 ..
Woogie2
Dev In Seoul