본문 바로가기
반응형

프로그래밍23

Next.js - getStaticProps vs. getServerSideProps, 차이와 활용 Next.js 9.3 버전부터는 pre-rendering을 위한 data fetching을 위한 기존 기능인 getInitialProps가 getStaticProps, getServerSideProps, getStaticPaths로 분리되었습니다. 모두 pre-render가 필요한 경우에만 사용하는 것이 좋습니다. (원문: If you don’t need to pre-render the data, then you should consider fetching data on the client side.) 이 중 많이 사용되는 getStaticProps와 getServerSideProps의 차이와 활용에 대해 알아보겠습니다. per-render가 필요한 경우 (SEO, Adsense 등)는 이 링크를 통해 .. 2021. 5. 11.
파이썬(python) matplotlib xlabel 위치 조정하기 x축에 축 이름을 적을 때 matplotlib.pyplot.xlabel 함수를 사용하고, 이 때 축 이름 위치를 조정하고 싶은 경우가 있습니다. 먼저, 이 함수가 가지는 인수(parameter)를 살펴봅시다. 인수 (parameters) 이 함수에는 3개의 파라미터가 있습니다. xlabel (타입: str) x축에 표시할 텍스트를 입력하면 된다 labelpad (타입: float, default: 4.0) 텍스트를 둘러싼 여백의 크기를 설정해준다. 이것을 통해 세부적인 조정이 가능하다. loc (타입: str, default: 'center', 옵션: {'left', 'center', 'right'}) 텍스트를 표시할 위치를 정해준다. (왼쪽, 가운데, 오른쪽) 사용 예 labelpad - 0.0 vs .. 2021. 5. 10.
Github, 5분만에 SSH key 생성/등록/접속 하는 법 SSH 접속의 필요성 1. Github 저장소를 관리하다보면 push/pull 작업 시 매번 비밀번호를 입력하기 귀찮아질 때가 옵니다. 2. 보안상 이점도 많다고 합니다. 3. 곧 아이디/비밀번호 접속이 막힌다고 합니다. SSH 접속을 위해 아래의 순으로 진행하면 됩니다. SSH key 생성 방법 Windows는 powershell, Linux는 terminal에 아래와 같이 본인 계정의 이메일을 포함한 명령어를 입력합니다. ssh-keygen -t ed25519 -C "email_id@example.com" 생성이 제대로 됐다면 아래 출력을 볼 수 있습니다. > Generating public/private ed25519 key pair. 다음에 이것저것 물어보는 것이 나오는데 전부 그냥 Enter 쳐.. 2021. 4. 8.
SSR (Server Side Rendering) vs SPA (Single Page App), 내 앱은 뭘로 개발해야 할까? 요약 검색엔진 노출, 애드센스 광고 수익 등이 핵심이라면 SSR 그렇지 않으면 SPA 장단점 비교 SSR SPA 검색엔진 노출 O (페이지를 서버단에서 렌더링하기 때문에 검색엔진 크롤러가 크롤링하기 쉬움) △ (최근 검색엔진 크롤러는 어느정도 크롤링할 수 있다고는 함) 구글(Google) 애드센스 호환 가능 불가능 (애드센스는 SPA앱을 지원하지 않음 - “콘텐츠 없음”) 초기로딩 속도 매우 빠름 (요청한 페이지만 응답해주기 때문에 빠름) 느림 (첫 요청 시 전체 앱을 다 불러오므로 느림) 구현 난이도 상대적으로 높음 (SPA + α 지식 필요) 낮음 운용 비용 상대적으로 높음 (클라우드 운용 시 작은 가상컴퓨터는 얻어야됨) 낮음 (여러 무료플랫폼에 디플로이 가능) 유용한 프레임워크 next.js - R.. 2021. 3. 4.
Container 내 python앱에서 Google Error Reporting 사용하기 서버에 오류가 발생했을 때 실시간으로 알림을 받을 수 있는 방법이 없나 검색하던 중, Google에서 제공하는 Google Error Reporting 서비스를 찾았다. (https://cloud.google.com/error-reporting) 이 서비스의 장점을 정리해보면 1. 서비스 규모가 크지 않을 경우 거의 무료 2. Google cloud console 앱만 설치하면 실시간 푸시 알림 3. 오류 스택 상세히 확인 가능 4. 문서화가 잘되있어 적용이 매우 쉬움 (https://cloud.google.com/error-reporting/docs/setup/python) 문서를 따라 서버에 Google Error Reporting을 적용한 결과, 서버에서 버그 발생 시 실시간으로 앱으로 푸시알림을 .. 2020. 12. 30.
Portainer를 이용해 container 모니터링하기 Portainer란 Portainer는 "Docker 명령을 일일이 수행할 필요가 없이 손쉽게 관리할 수 있는 web UI를 제공해주는 툴"입니다. docker 관리외에 로깅, 모니터링 용도로도 사용이 가능할 뿐만 아니라 설치가 간단하고 직관적으로 사용하기가 쉽습니다. Portainer 설치 ubuntu 18.04 환경에서 도커를 설치한 후에, 아래 명령어로 바로 설치 및 실행이 가능합니다. docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer 설치 및 실행이 완료되면 9000번 포트를 통해 접속하여 테스트합니다. Nginx를 이용해 https 적용 p.. 2020. 12. 29.
GCE (Google Compute Engine)에 nginx로 무료로 https 적용하기 GCE에 https를 적용하기 위해 가장 간단한 방법은 GCP의 load balancer 기능을 이용하는 것입니다. 관련 내용은 아래 링크에서 확인할 수 있습니다. 하지만, 이 방법을 사용할 경우 시간 당 비용을 지불해야 됩니다. https://cloud.google.com/load-balancing/docs/ssl-certificates 부하가 작을 경우 큰 비용이 아니지만, 작은 서비스를 시작하는 사람에게는 부담이 될 수 있습니다. Nginx를 이용하면 무료로 https를 적용할 수 있다. GCE에 ubuntu 18.04 OS를 기준으로 방법을 설명하겠다. Nginx 1. nginx 설치 sudo apt update sudo apt install nginx -y 2. 발급받은 도메인을 nginx에 등.. 2020. 12. 29.
GCE (Google Compute Engine)에 mysql-server 설치하기 Invest Helper의 sql 데이터베이스를 만들기 위해 GCP (Google Cloud Platform)의 GCE (Google Compute engine)를 이용하였다. GCP에서 제공하는 sql database 전용 서비스인 Cloud SQL이 있지만, GCE와 동일 성능 대비 가격이 비싸다. 물론, Compute Engine에 직접 sql database를 구축할 시 여러 설정을 직접 해야하고 자동백업, 자동스케일링 등의 기능을 제공받지 못하지만 서비스가 매우 커질때까지는 큰 의미가 없을 것 같다. 1. GCE 인스턴스를 생성 콘솔 혹은 gcloud 명령어로 본인이 원하는 성능의 인스턴스를 직접 생성한다. 2. mysql server 설치 현재는 mysql 5.7 버전을 사용하고 있다. sud.. 2020. 12. 28.
반응형