Typical Web Architecture: 3 Tier(Web Server - WAS - DB); 서버 부하 분산, 보안 강화, 무중단 배포
Proxy: VPN, 특정 사이트 차단
Legacy: client - webtob - jeus(war) - DB
Modern: Client - ALB(Pub/Priv Network) - EC2(SG+Nest.js) - DB
Access Control List(ACL): Firewall
VPC: Network(Public: IGW, Private: NAT)
Multi-EC2 - Docker - Multi-WAS
Client Side Call: Security Group(ALB)
Server Side Rendering: SG(ALB, EC2) → pros: security, performance, CORS X
invariant: a condition that holds true(e.g., x > y).
graceful(return) vs ungraceful(return exception)
HTTP method: Put: 전체변경, Patch: 부분변경
Get - recommended: SHOULD NOT use body (RFC7231, RFC9110.-Although%20request%20message%20framing%20is%20independent%20of%20the%20method%20used%2C%20contentHTTP%20communication%20are%20often%20unaware%20of%20intermediaries%20along%20the%20request%20chain.-%C2%B6))
Authentication and authorisation
Atomicity
Problem: Special character(/, :) in URL, Solution: URL encoding Problem: Many values in a request body are used to map function’s params, Solution: DTO + Pipes(filtering or validation + type check)
Problem: deleted the file but can be accessed it. Cause: Inode.