본문 바로가기

분류 전체보기81

[Python] Selenuim 스크롤 조작하기 Python 으로 크롤링을 진행할 때, 간혹 스크롤의 존재로 인해 원하는 정보 모두를 크롤링 하기 어려울 떄가 있다. 예를 들면, 페이지 첫 화면에서 모든 정보를 랜더링 하지 않고, 스크롤을 아래로 내림으로써 추가적으로 컨텐츠를 불러오는 페이지가 있다. 이 때 전체 페이지 요소를 확인하기 위해서는 스크롤이 더 이상 내려가지 않을 때 까지 내리는 작업이 필요하다. from selenium import webdriver browser = webdriver.Chrome() browser.get(url) # 크롤링 하기 위한 url 입력 # 현재 스크롤 위치를 저장 last_height = browser.execute_script("return Math.max( document.body.scrollHeight,.. 2024. 2. 1.
[FastAPI] AWS DB - MySQL 연결하기 https://fastapi.tiangolo.com/tutorial/sql-databases/#create-the-relationships SQL (Relational) Databases - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com 처음에는 하나의 DB (MongoDB)를 사용하여 작업을 하고자 구상했지만 연결된 데이터 관리와 관계형 데이터베이스 사용 경험을 위해 AWS에서 DB를 하나 생성했다. 가장 먼저, SQL 사용을 위한 패키지를 설치한다. python3 -m pip install sqlalchemy 초기 설정은 가이드 문서 그대로 .. 2023. 12. 20.
[Bootstrap] React에 Bootstrap 적용하기 https://chunws13.tistory.com/55 [React] Project Levup - 메모 수정 기능 만들기 이전 작업으로 DB에 저장된 메모를 불러오는 것 까지 확인했다. 백엔드에서 수정및 삭제 기능을 구현했지만, 프론트엔드에서 부드럽게 구현할 수 있도록 구상을 해야했다. 구상 결과 각 메모를 chunws13.tistory.com 가장 기본적인 기능 (메모 CRUD)을 백엔드와 프론트엔드 모두 구현했으므로 이용할 때 보기 좋게 기본적인 스타일링을 진행하려고 한다. 문제는, 본인의 색감이나 구도 잡는 능력 등 스타일링에 관련해서는 별로 좋지가 않다는 점과 css 문서를 만들어서 하나하나 적용하다보면 시간이 매우 오래걸릴 것이라는 우려로 인해 스타일링을 직접 하는 것 보다는 외부 기능을 사용.. 2023. 12. 5.
[React] Project Levup - 메모 수정 기능 만들기 이전 작업으로 DB에 저장된 메모를 불러오는 것 까지 확인했다. 백엔드에서 수정및 삭제 기능을 구현했지만, 프론트엔드에서 부드럽게 구현할 수 있도록 구상을 해야했다. 구상 결과 각 메모를 반환하며, 수정 버튼을 눌렀을 때만 해당 메모가 수정되는 방향으로 정리했다. 그 전에, 수정 및 삭제 요청이 들어갈 때 각 메모의 ID 별로 처리할 수 있도록 컴포넌트를 세분화 시켰다. 1 . 컴포넌트 세분화 - 수정 전 코드 {memo.map((item, index) => { return ( { item._id.$oid } { item.content } 수정 삭제 ) })} 2 . 컴포넌트 세분화 - 수정 후 코드 const EachMemo = ({ memoId, content }) => { return ( { con.. 2023. 12. 2.
[FastAPI] Project Levup - .env (dotenv) 적용하기 프로젝트 버전을 저장 및 다른 기기에서 이어서 작업을 할 수 있도록 github에서 작업을 진행하는데 DB 연결 정보가 있다보니 commit 을 하기 전 비밀번호를 실제와 다른 것으로 저장한 후에 진행했다. 지금은 가려야 하는 것은 DB 정보 밖에 해당하지 않아서 번거롭기는 하지만 잊어버리지 않을 정도는 되지만 민감 정보가 많아지고, DB 연결이 더 많아지는 경우에 하나 하나 관리하기 어려워 진다는 문제가 있다. 이를 위해서 민감 정보를 모아두는 파일을 따로 만들고 그곳에 민감 정보를 저장, gitignore 파일에 포함시켜 commit에서 제외시킨다. 먼저, .env 파일을 불러올 수 있도록 패키지를 설치한다 python3 -m pip install python-dotenv 그 후 프로젝트 폴더 내 ... 2023. 11. 30.
[FastAPI] Project Levup - 메모 수정 & 삭제 기능 만들기 https://chunws13.tistory.com/52 [React] Project Levup - Axios 활용하기 백엔드에서 구현한 사항 : 메모 만들기, 메모 조회하기 백엔드에서는 로그인이 완료되면 토큰을 발급하고, 토큰과 함께 메모 조회 요청을 하면 해당 ID로 작성한 메모를 가져오도록 구현했다. 먼 chunws13.tistory.com 프론트엔드에서 메모 읽기와 쓰기 기능을 받아서 구현을 완료했으므로, 메모 수정 기능을 가진 api를 설계해 본다. 클라이언트에서 메모 id와 내용을 전달해 주면 memo db에서 id를 조회하여 저장된 내용을 바꾸면 될 것이다. 구현을 위해 클라이언트 측으로부터 받아야 하는 정보는 [ 메모 id, 수정할 내용, 로그인 토큰] 으로 총 3가지이다. 수정할 내용은 .. 2023. 11. 29.