# 서론 스프링 부트를 자바로 작성하다보면 DTO를 만들때 클래스가 매우 많이 생성되서 한 눈에 보기 불편한 경우가 생겼다. DTO를 코틀린으로 작성하면 얻는 이점 : 하나의 코틀린 파일에 여러개의 DTO 클래스를 data class로 작성할 수 있다. 그래서 코틀린을 도입하여 리펙토링을 진행해보려 하면서 느낀점을 정리하려고 글을 쓴다. * Ektour 리뉴얼 프로젝트에 적용함으로써 느낀 느낀점을 작성함. 참고한 글 https://d2.naver.com/helloworld/6685007 # 코틀린을 도입하면서 직면한 문제 우선, DTO를 간략화 하기위해서 코틀린을 도입했으므로, DTO 부분 먼저 리펙토링을 진행하였다. 0. 코틀린으로 static 메소드 작성하기 코틀린으로 작성된 객체를 편의 메소드 (엔..
# 페이징 기본 unit_per_page = 5 offset = page * unit_per_page db.query(Gallery).offset(offset).limit(unit_per_page).all() offset과 limit을 활용해서 페이징을 처리한다. # 정렬 기준을 넣고 싶을 때 unit_per_page = 5 offset = page * unit_per_page db.query(Gallery).order_by(desc(Gallery.created_time)).offset(offset).limit(unit_per_page).all() offset 앞에 order_by 옵션을 넣어준다. # 사용예시 # 갤러리 - 사진/그림 리스트 반환 @router.get("/gallery") async d..
# 서론 FastAPI를 AWS EC2에 nginx를 활용하여 배포하는 방법을 정리 * EC2 인스턴스를 생성하고 접속하는 방법은 따로 다루지 않는다. # EC2 기본 설정 EC2를 생성하면 기본적으로 python3가 설치되어있다. 하지만 pip3는 설치되어 있지 않으므로 설치해준다. sudo apt install python3-pip pip이 설치되면 서버 구동에 필요한 모듈들을 다운로드 받는다. pip3 install -r requirements.txt # Nginx 설정 FastAPI 서버 포트를 포워딩해줄 프록시 서버인 nginx를 다운받는다. sudo apt install nginx 다음으로 nginx config 파일을 작성한다. 다음 경로로 이동하여 fastapi.conf 파일을 생성한다. ..
2024. 01. 01 업데이트 # 서론 FastAPI 프레임워크에서 이미지 (multipart form data)를 업로드 하는 방법을 공유한다. * FastAPI 공식문서 Request Files 탭에 기록되어 있음 https://fastapi.tiangolo.com/tutorial/request-files/ Request Files - FastAPI Request Files You can define files to be uploaded by the client using File. Info To receive uploaded files, first install python-multipart. E.g. pip install python-multipart. This is because uploade..
# 서론 FastAPI 프레임워크를 사용함에 있어 기본 개념과 용어 설명 * FastAPI 공식 문서 내용에서 가져옴 https://fastapi.tiangolo.com/ FastAPI FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production Documentation: https://fastapi.tiangolo.com Source Code: https://github.com/tiangolo/fastapi FastAPI is a modern, fast (high-performance), web framework for buil fastapi.tiangolo.com # 서버 구동 FastAPI ..
# 서론 FastAPI로 서버를 만들고 nginx로 프록시 서버를 EC2에 띄운 뒤에 Route 53을 이용해서 도메인까지 연결하는 걸 기록한다. # Route 53 에서 도메인 구입 도메인 구입하는 건 구글링 하면 쉽게 나오니 도메인을 구입한다. AWS에서 직접 구입한 도메인은 별도의 네임서버를 지정하지 않고도 바로 사용할 수 있다. 주의! 도메인을 구입할 때 입력한 메일로 verfiy 메일이 도착하는데, 꼭 링크를 눌러서 도메인을 활성화 해줘야 사용할 수 있다. # EC2 도메인 연결 EC2 public ip4 주소값을 레코드 생성을 눌러서 값에 넣는다. (53.79.232.232 이런식으로 아이피 값만 넣는다.)
# 프로젝트 소개 제목 : EK하나관광 홈페이지 리뉴얼 분류 : 개인적인 여름방학 소규모 프로젝트 팀원 : 3명 기간 : 대략 3주 간략소개 : 실제 서비스중인 홈페이지를 최신 기술을 사용하여 새롭게 리뉴얼 함 기획의도 : 기존 서비스중인 홈페이지는 다음과 같은 문제점들이 있었음 [기존 서비스의 문제점] 해당 사이트는 5년전에 제작되어 (ASP와 MSSQL 사용됨) 현재까지 무리없이 서비스를 제공하고 있었으나, 사이트가 노후된 기술로 제작되어 유지보수가 어렵고 확정성 또한 낮았음. 무엇보다도 트래픽이 적은데 온디멘드 형식이 아닌 방식으로 서버를 호스팅 중이여서 과도한 유지비용이 발생해서 이를 절약하고자 새롭게 리뉴얼 하고자 했음 디자인 또한 구시대적이고 정적 페이지라 SPA를 활용하여 세련되게 바꾸려고 ..
스프링 부트와 리액트를 통합 빌드하여 배포하는 방법을 정리, 기록 한다. # 디렉토리 구성 먼저 기존에 만들어 놓은 리액트 프로젝트를 스프링 프로젝트 내부로 옮겨와야한다. 주의! gradle 설정을 쉽게 하기위해서 리액트 프로젝트 디렉토리 명은 frontend로 고정한다. 인텔리제이 내부에서 리액트 폴더를 드래그 앤 드랍하면 렉을 먹는다. 윈도우 탐색기로 폴더를 열어서 넣어주도록 하자 (좀 오래걸린다.) # 리액트 설정 리액트 package.json 에 proxy를 설정해준다. (나중에 로컬 환경이 아닌곳으로 배포해도, 아이피 주소를 적으면 된다.) 주의! http:/를 꼭 붙혀주도록 하자 # build.gradle 설정 def frontendDir = "$projectDir/src/main/fronte..