user, product, stress 총 3 개의 어플리케이션이 있습니다. 제공된 binary는 x86기반 EC2의 Amazon Linux 2023 에서 빌드하고 동작을 확인하였습니다. go version은 go1.22.2 linux/amd64 입니다. 어플리케이션 실행 시 바인딩되는 포트는 TCP/8080 입니다. 모든 어플리케이션은 access log를 stdout, stderr로 출력합니다. 모든 어플리케이션은 변조 방지를 위해 Request 요청에 requestid, uuid 쿼리스트링이 추가됩니다. 정상적인 요청에 대해 Request 및 Response를 변조하여 불이익을 받지 않도록 합니다. 채점 시 사용되는 응답시간 및 코드는 모두 클라이언트 도착 기준입니다.
User App최소한의 가용성을 위해 5초 이하의 응답시간을 보장하고자 하며, 0.2초 이하의 응답시간을 서비스 수준 목표로 설정
/v1/user POST 요청 시 email 주소의 포맷이 [email protected] 가 아닌 경우 403 에러가 발생하도록 구성
이는 어플리케이션 로직으로 구현되어 있지 않습니다.
정상 요청 email 예제: [email protected]
비정상 요청 email 예제(1): gildong (도메인 누락)
비정상 요청 email 예제(2): gildong@example (도메인 형식 오류)
이메일 정규식 : ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$
| path | method | request | response_code |
|---|---|---|---|
| /v1/user | POST | { | |
| "requestid":"999999999999", | |||
| "uuid":"7c5a3c6a-758f-4bc5-9bdf-3e573a0ad729", | |||
| "username":"dbdump500001", | |||
| "email":"[email protected]", | |||
| "status_message":"I’m happy", | |||
| } | 201 | ||
| /v1/user | GET | [email protected] | |
| &requestid=999999999999 | |||
| &uuid=7c5a3c6a-758f-4bc5-9bdf-3e573a0ad729 | 200 | ||
| /healthcheck | GET | 200 |
CREATE TABLE user (
id VARCHAR(255) NOT NULL,
username VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
status_message VARCHAR(255) NOT NULL,
PRIMARY KEY (userid),
UNIQUE KEY uk_username (username)
);