WEB-BE-01 · 요청을 처리하는 백엔드
서버는 문맥에 따라 프로그램이 실행되는 컴퓨터를 뜻하기도 하고 요청을 받는 프로그램을 뜻하기도 합니다. 이 자료에서 백엔드는 HTTP 요청을 처리하고 데이터와 업무 규칙을 관리하는 서버 프로그램을 말합니다.
예를 들어 “전표 E-01 검토 완료” 버튼을 누르면 화면은 요청만 보냅니다. 백엔드는 로그인 사용자, E-01 접근 권한, 필수 검토 항목, 이미 완료된 건인지 확인한 뒤 저장합니다. 화면의 버튼을 숨기는 것만으로 업무 규칙을 지킬 수는 없습니다.
요청 처리 순서
요청 수신
→ 인증: 누구인가
→ 인가: 이 작업을 할 수 있는가
→ 입력 검증: 형식과 값이 유효한가
→ 업무 규칙: 현재 상태에서 허용되는가
→ 데이터베이스 또는 외부 서비스 처리
→ 상태 코드와 응답 반환모든 API가 로그인이나 데이터베이스를 사용하는 것은 아니지만, 필요한 단계의 책임과 순서는 분명해야 합니다. 권한이 없는 요청은 저장부터 한 뒤 거부하지 않고 영향이 생기기 전에 중단합니다.
인증·인가·입력 검증 구분
| 구분 | 확인하는 질문 | 실패 예시 |
|---|---|---|
| 인증 | 요청한 사용자가 누구인가 | 로그인 정보 없음·만료 |
| 인가 | 이 사용자가 이 자료와 동작에 접근할 수 있는가 | 조회는 가능하지만 저장 권한 없음 |
| 입력 검증 | 필드·자료형·길이·허용값이 계약과 맞는가 | 필수 ID 누락, 알 수 없는 상태값 |
| 업무 규칙 | 현재 업무 상태에서 이 변경이 가능한가 | 이미 완료한 검토를 다시 완료 처리 |
프론트엔드에 같은 검사를 두더라도 백엔드 검사를 생략하지 않습니다. 사용자는 브라우저 밖에서도 API를 직접 호출할 수 있고, 다른 프로그램이나 이전 버전 화면에서 요청이 올 수도 있습니다.
오류를 안전하게 반환하기
사용자에게는 실패한 작업과 해결 가능한 다음 행동을 알려 주고, 운영자에게는 원인을 찾을 수 있는 로그를 남깁니다. 내부 파일 경로, SQL 문장, 스택 추적, 인증정보를 API 응답에 그대로 노출하지 않습니다.
| 상황 | 응답에서 전달할 내용 | 서버에서 남길 내용 |
|---|---|---|
| 입력 오류 | 잘못된 필드와 허용 형식 | 필요하면 정제한 검증 실패 정보 |
| 권한 거부 | 접근할 수 없다는 상태 | 요청자·대상·거부 규칙 |
| 예상하지 못한 오류 | 작업 실패와 재시도 가능 여부 | 상관관계 ID, 예외와 실패 단계 |
성공 응답을 만들기 위해 잘못된 입력을 임의로 고치거나 누락된 파일을 빈 결과로 바꾸지 않습니다. 실패 종류가 달라야 프론트엔드와 운영자가 올바르게 대응할 수 있습니다.
API를 추가할 때 확인할 내용
- 기존 경로와 업무 함수를 먼저 재사용할 수 있는가
- 인증·인가·입력 검증·업무 규칙의 소유 위치가 분명한가
- 데이터 변경 전에 모든 거부 조건을 확인하는가
- 실패를 성공이나 빈 데이터로 바꾸지 않는가
- 응답에 비밀정보와 불필요한 내부 정보가 없는가
2-04 · 사례별 통제 근거 연결하기에서는 요청자의 조회 권한을 백엔드에서 확인합니다.
공식 근거
- FastAPI · 요청 본문 — 자료형에 따른 요청 데이터 읽기와 검증
- OWASP · REST 보안 지침 — HTTPS·접근통제·입력 검증·오류 처리