# sbscax-backend-poc

## 인프라 및 CICD 구성
### 인프라

본 프로젝트는 pjt-sbscontentsax-poc에 위치한 서비스의 코드를 관리하며, 아래 자원을 사용합니다.
자원 사용과 관련된 사항은 인프라 관리자에게 문의하세요.

- Cloud Run : run-an3-sbscax-poc-backend
- Service Account : svcacc-run-an3-sbscax-poc-be@pjt-sbscontentsax-poc.iam.gserviceaccount.com
- Artifact Registry : ar-an3-sbscax-poc-backend
- Cloud SQL : csql-an3-sbscax-poc-postgre

로컬에서 Cloud SQL에 접속할 때는 [Bastion 경유 Cloud SQL 접속 가이드](docs/cloud-sql-bastion-connection.md)를 참고하세요.

### GitLab CI/CD and Dockerfile

`.gitlab-ci.yml`은 다른 Prebuilt 프로젝트와 동일하게 GitLab Runner에서 다음 순서로 실행됩니다.

`GitLab push(main) → Docker build/push → Artifact Registry → Cloud Run`

현재 `Dockerfile`은 Cloud Run 연결을 확인하기 위한 임시 smoke container입니다. Python 표준 HTTP server가 8080 포트에서 동작하며, 실제 backend 소스가 추가되면 반드시 애플리케이션 런타임에 맞춰 교체해야 합니다. 런타임에 따라 다음 요소를 맞춰야 합니다.

- Python: `requirements.txt` 설치 후 `uvicorn` 또는 애플리케이션의 실제 entrypoint를 `CMD`로 지정
- Node.js: `package*.json` 기준으로 의존성을 설치하고 `npm start` 또는 실제 서버 entrypoint를 `CMD`로 지정
- Java: 빌드 산출물(`jar`)을 만든 뒤 JRE 이미지에서 `java -jar`로 실행

Cloud Run 컨테이너는 반드시 `$PORT` 환경 변수(기본적으로 `8080`)에서 `0.0.0.0`으로 요청을 받아야 합니다. 실제 소스와 `requirements.txt`, `package.json`, 또는 `pom.xml`이 추가되면 그 구조에 맞는 Dockerfile로 확정해야 합니다.