🍪 Study/웹
-
Flask와 Nginx, Gunicorn을 함께 사용하는 이유는 주로 성능, 안정성, 보안 등의 측면에서 애플리케이션을 더 효율적으로 운영하기 위해서이다. 각각의 역할을 이해하면, 왜 이 조합이 자주 사용되는지 명확해진다. FlaskPython으로 작성된 마이크로 웹 프레임워크역할: 애플리케이션의 비즈니스 로직과 API 엔드포인트 처리.제한 사항Flask의 내장 개발 서버는 단일 스레드로 동작하며, 고부하 상황에서 성능이 제한적.다중 클라이언트 요청을 효율적으로 처리하지 못함.프로덕션 환경에서의 고성능 처리를 위해 설계되지는 않음. GunicornWSGI(Web Server Gateway Interface) 서버역할Flask와 같은 WSGI 애플리케이션을 효율적으로 운영하기 위해 사용.다중 워커를 사용하..
Nginx - Flask 프록시 방법 (Feat. Gunicorn)Flask와 Nginx, Gunicorn을 함께 사용하는 이유는 주로 성능, 안정성, 보안 등의 측면에서 애플리케이션을 더 효율적으로 운영하기 위해서이다. 각각의 역할을 이해하면, 왜 이 조합이 자주 사용되는지 명확해진다. FlaskPython으로 작성된 마이크로 웹 프레임워크역할: 애플리케이션의 비즈니스 로직과 API 엔드포인트 처리.제한 사항Flask의 내장 개발 서버는 단일 스레드로 동작하며, 고부하 상황에서 성능이 제한적.다중 클라이언트 요청을 효율적으로 처리하지 못함.프로덕션 환경에서의 고성능 처리를 위해 설계되지는 않음. GunicornWSGI(Web Server Gateway Interface) 서버역할Flask와 같은 WSGI 애플리케이션을 효율적으로 운영하기 위해 사용.다중 워커를 사용하..
2024.09.24 -
Streamlit과 Nginx 각각에서의 설정을 해줘야 하다. Streamlit아무것도 설정할 필요 없다. 기본값으로 8501번 포트에서 streamlit app이 실행된다.만약 port 등을 설정하고 싶다면, 프로젝트 디렉토리 내 .streamlit/config.toml 에서 설정할 수 있다.# 예시[server]port=8000 Nginx/etc/nginx/nginx.conf 에서 nginx가 지켜볼 port와 이 port로 들어오는 요청을 전달할 주소, 즉, streamlit이 실행되고 있는 주소를 연결해줘야 한다. http.server 설정을 아래와 같이 해준다.proxy_pass에는 streamlit app이 실행되고 있는 주소를 넣어줘야 한다.따로 설정해준 게 없다면, http://localh..
Nginx - Streamlit 프록시 설정 방법Streamlit과 Nginx 각각에서의 설정을 해줘야 하다. Streamlit아무것도 설정할 필요 없다. 기본값으로 8501번 포트에서 streamlit app이 실행된다.만약 port 등을 설정하고 싶다면, 프로젝트 디렉토리 내 .streamlit/config.toml 에서 설정할 수 있다.# 예시[server]port=8000 Nginx/etc/nginx/nginx.conf 에서 nginx가 지켜볼 port와 이 port로 들어오는 요청을 전달할 주소, 즉, streamlit이 실행되고 있는 주소를 연결해줘야 한다. http.server 설정을 아래와 같이 해준다.proxy_pass에는 streamlit app이 실행되고 있는 주소를 넣어줘야 한다.따로 설정해준 게 없다면, http://localh..
2024.08.30 -
발생한 오류도커로 MySQL 데이터베이스와 연결된 Node.js 서버 컨테이너를 밤새 실행해둔 채로 퇴근 후, 다음날 출근해서 보니 아래와 같은 오류가 발생했다.Error: Can't add new command when connection is in closed stateError: This socket has been ended by the other party Error: Can't add new command when connection is in closed state데이터베이스 연결이 이미 닫혔음에도 새로운 쿼리나 명령을 실행하려고 할 때 발생하는 오류이다. 연결이 예기치 않게 닫힌 경우 또는 장시간 연결로 연결이 닫혔을 때 발생할 수 있다. 네트워크 문제, 데이터베이스 서버 설정, 또는 연결..
[Node.js] MySQL2 모듈 장기간 연결 문제 해결발생한 오류도커로 MySQL 데이터베이스와 연결된 Node.js 서버 컨테이너를 밤새 실행해둔 채로 퇴근 후, 다음날 출근해서 보니 아래와 같은 오류가 발생했다.Error: Can't add new command when connection is in closed stateError: This socket has been ended by the other party Error: Can't add new command when connection is in closed state데이터베이스 연결이 이미 닫혔음에도 새로운 쿼리나 명령을 실행하려고 할 때 발생하는 오류이다. 연결이 예기치 않게 닫힌 경우 또는 장시간 연결로 연결이 닫혔을 때 발생할 수 있다. 네트워크 문제, 데이터베이스 서버 설정, 또는 연결..
2024.07.02 -
WARNING in [eslint]src/components/views/MainPage/index.js Line 241:24: Array.prototype.map() expects a return value from arrow function.The error you're seeing, Array.prototype.map() expects a return value from arrow function, occurs because the map function is used incorrectly. The map function expects a return value from the arrow function used within it. If you don't need to transform the ..
[React] map() vs forEach(): Array.prototype.map() expects a return value from arrow function.WARNING in [eslint]src/components/views/MainPage/index.js Line 241:24: Array.prototype.map() expects a return value from arrow function.The error you're seeing, Array.prototype.map() expects a return value from arrow function, occurs because the map function is used incorrectly. The map function expects a return value from the arrow function used within it. If you don't need to transform the ..
2024.06.27 -
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver (java.lang.ClassNotFoundException: com.mysql.jdbc.Driver) : mysql-connector-java를 사용하면서 다음과 같은 에러가 발생했다. 이는 mysql과 java가 제대로 연동되지 않았음을 의미한다. 어떻게 해결할 수 있을까? 인프런의 JSP 강의에서도 해당 내용을 다루고 있다. 하지만 mysql 버전이 5.X로 내가 사용하는 8.0과는 다르다. MySQL 8.0 버전은 mysql-connector-java 5.X버전으로는 해결이 안 된다. 여기서 8.0버전의 connect파일을 다운받아 프로젝트의 src/main/webapp/WEB-INF/lib에..
[MySQL] java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver | MySQL JDBC Driver Not Foundjava.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver (java.lang.ClassNotFoundException: com.mysql.jdbc.Driver) : mysql-connector-java를 사용하면서 다음과 같은 에러가 발생했다. 이는 mysql과 java가 제대로 연동되지 않았음을 의미한다. 어떻게 해결할 수 있을까? 인프런의 JSP 강의에서도 해당 내용을 다루고 있다. 하지만 mysql 버전이 5.X로 내가 사용하는 8.0과는 다르다. MySQL 8.0 버전은 mysql-connector-java 5.X버전으로는 해결이 안 된다. 여기서 8.0버전의 connect파일을 다운받아 프로젝트의 src/main/webapp/WEB-INF/lib에..
2022.07.18 -
React.js를 사용해 개발한 웹사이트가 localhost의 npm 또는 yarn에서 정상적으로 작동한다. 따라서 이 사이트를 netlify에 배포하려는 상황이다. 이런! 에러가 발생했다!Page Not FoundLooks like you’ve followed a broken link or entered a URL that doesn’t exist on this site.React Router를 사용하는 React 사이트를 netlify에 배포하는 경우 다음과 같은 에러가 발생할 수 있다. 왜 Page Not Found가 발생할까?React Router는 client에서 라우팅을 처리한다. 따라서 root가 아닌 페이지(ex: https://yoursite.netlify.com/login 등)에 접속할..
[netlify] Page Not Found Error (React Router)React.js를 사용해 개발한 웹사이트가 localhost의 npm 또는 yarn에서 정상적으로 작동한다. 따라서 이 사이트를 netlify에 배포하려는 상황이다. 이런! 에러가 발생했다!Page Not FoundLooks like you’ve followed a broken link or entered a URL that doesn’t exist on this site.React Router를 사용하는 React 사이트를 netlify에 배포하는 경우 다음과 같은 에러가 발생할 수 있다. 왜 Page Not Found가 발생할까?React Router는 client에서 라우팅을 처리한다. 따라서 root가 아닌 페이지(ex: https://yoursite.netlify.com/login 등)에 접속할..
2022.01.03 -
Netlify로 배포 도중 다음과 같은 에러가 발생했다. Treating warnings as errors because process.env.CI = true.Most CI servers set it automatically.공식 netlify docs에서 해결법을 확인할 수 있었다.https://docs.netlify.com/configure-builds/troubleshooting-tips/#build-fails-on-warning-message프로젝트마다 설치된 라이브러리들이 warning을 error로 감지할 수 있다고 한다. 해결 방법굉장히 간단하다.Site settings> Build & deploy> Edit settingsBuild command의 npm run build를 CI= npm..
[Netlify] Treating warnings as errors because process.env.CI = true.Netlify로 배포 도중 다음과 같은 에러가 발생했다. Treating warnings as errors because process.env.CI = true.Most CI servers set it automatically.공식 netlify docs에서 해결법을 확인할 수 있었다.https://docs.netlify.com/configure-builds/troubleshooting-tips/#build-fails-on-warning-message프로젝트마다 설치된 라이브러리들이 warning을 error로 감지할 수 있다고 한다. 해결 방법굉장히 간단하다.Site settings> Build & deploy> Edit settingsBuild command의 npm run build를 CI= npm..
2022.01.03 -
웹 서버에 요청을 보내는 방식은 여러 가지가 있다. 인터넷 표준으로 정해 둔 이러한 요청 방식을 메소드(Method)라고 부른다. 메소드의 대표적인 예로는 GET과 POST방식이 있다.HTTP 클라이언트는 GET과 POST 둘다 다른 웹 서버에 데이터를 요청할 수 있다. 그럼 GET 방식과 POST 방식의 차이점은 무엇일까?HTTP 요청 포맷은 크게 헤더(Header)와 본문(Body) 부분으로 이루어져 있다. GET 방식은 헤더 부분에 요청 정보들을 넣어 보낸다. http 객체의 get() 메소드를 사용하면 다른 사이트에 요청을 보내고 응답을 받아 처리할 수 있다. get() 메소드의 첫번째 파라미터는 다른 사이트의 정보를 담고 있는 객체이다. 두번째 파라미터는 callback 함수이다. 응답 데이터를..
[Node.js] GET과 POST의 차이는 무엇일까?웹 서버에 요청을 보내는 방식은 여러 가지가 있다. 인터넷 표준으로 정해 둔 이러한 요청 방식을 메소드(Method)라고 부른다. 메소드의 대표적인 예로는 GET과 POST방식이 있다.HTTP 클라이언트는 GET과 POST 둘다 다른 웹 서버에 데이터를 요청할 수 있다. 그럼 GET 방식과 POST 방식의 차이점은 무엇일까?HTTP 요청 포맷은 크게 헤더(Header)와 본문(Body) 부분으로 이루어져 있다. GET 방식은 헤더 부분에 요청 정보들을 넣어 보낸다. http 객체의 get() 메소드를 사용하면 다른 사이트에 요청을 보내고 응답을 받아 처리할 수 있다. get() 메소드의 첫번째 파라미터는 다른 사이트의 정보를 담고 있는 객체이다. 두번째 파라미터는 callback 함수이다. 응답 데이터를..
2021.12.08