블루서버, 그린서버 upstream blue_backend { server 127.0.0.1:8081; }upstream green_backend { server 127.0.0.1:8082; }upstream active_backend { server 127.0.0.1:8081; } # blue가 liveserver { listen 80; location / { proxy_pass http://active_backend; }}로 바꾸기name: Docker Build and Deploy via SSHon: push: branches: - main # 배포할 브랜치 지정jobs: build-and-push: runs-on: ubuntu-latest ..
테스트중name: Certbot Renew via SSHon: schedule: # 매월 1일 새벽 3시 15분 (UTC 기준, 한국은 +9시간) - cron: '15 18 1 * *' workflow_dispatch:jobs: renew-cert: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Run certbot renew on remote server uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.SERVER_HOST }} ..
workflows fileon: schedule: - cron: '5 15 * * *' # 매일 UTC 15:05(한국 시간 00:05)에 자동 실행 workflow_dispatch: # Actions 탭에서 수동 실행 가능하게 함jobs: single-commit: runs-on: ubuntu-latest # Ubuntu 최신 버전에서 워크플로우 실행 permissions: contents: write # 저장소에 쓰기 권한 부여(커밋/푸시 위해 필요) steps: - uses: actions/checkout@v4 # 저장소의 코드를 워크플로우 러너에 체크아웃(복제) - name: Set up git conf..
기록용 sudo certbot certonly --manual --preferred-challenges dns -d yourdomain.com
nest new nestjs-msacd nestjs-msanest g app user-servicenest g app api-gateway 각 서비스는 apps/ 폴더 밑에 생성됨 user-service/main.ts 수정import { NestFactory } from '@nestjs/core';import { MicroserviceOptions, Transport } from '@nestjs/microservices';import { UserServiceModule } from './user-service.module';async function bootstrap() { const app = await NestFactory.createMicroservice( UserServiceModule, ..
pip install pipenv # pipenv 가상환경 pipenv --python 3.13 # 3.13 버전으로 가상환경 설정pipenv install fastapi # fastapi 설치pipenv install "uvicorn[standard]" # ASGI 서버 설치# main.pyfrom typing import Unionfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"Hello": "World"}uvicorn main:app --reloadPS E:\projects\menu_bot> uvicorn main:app --reloadINFO: Will watch for changes in..
aiohttp.FormData() 를 사용해야함.form_data = aiohttp.FormData()form_data.add_field("id", id)form_data.add_field("pass", pass) async with aiohttp.ClientSession() as s: async with s.post("url", data=form_data) as response: html = await response.text(encoding='utf-8', errors='ignore') errors='ignore' 는 인코딩 과정에서 발생하는 오류 무시하기 위함. -> aiohttp 와 관련 없습니다.
https://www.acmicpc.net/problem/11382 브론즈5의 아주 간단한 문제입니다. a = input() # 입력을 받았습니다. string 으로 입력 받습니다.split_str = a.split(" ") # 문자열이고 공백 기준으로 숫자가 나누어져 있기 때문에 공백 기준으로 split() 해줍니다.sum = 0 # 결과 값 출력 변수for i in split_str: # split() 은 리스트로 반환됩니다. 반복해줍니다. sum += int(i) # int형 sum에 더해주기 위해 i를 int()로 형 변환 해준 후 더해줍니다. print(sum) # 출력
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.