íì ìì í겜 ë³ì륌 구ííì¬ ì í늬ìŒìŽì ì ì 뢰ì±, ì ì§ë³Žìì±, 볎ìì ê°ííë ë°©ë²ì ë°°ì°ìžì. êžë¡ë² ìíížìšìŽ ê°ë°ìì ì€ì êŽëЬì ëªšë² ì¬ë¡ë¥Œ íìí©ëë€.
íì ìì í겜 ë³ì: ì€ì íì ìì ì±
ëìììŽ ì§ííë ìíížìšìŽ ê°ë° í겜ìì ì í늬ìŒìŽì ì ì 뢰ì±, ì ì§ë³Žìì±, 볎ìì 볎ì¥íë ê²ì 묎ìë³Žë€ ì€ìí©ëë€. ì¢ ì¢ ê°ê³Œëë í ê°ì§ ì€ìí 잡멎ì í¹í í겜 ë³ìì ê°ì ì€ì ì ì²ëЬíë ë°©ë²ì ëë€. ìŽ í¬êŽì ìž ê°ìŽëë íì ìì í겜 ë³ìì ì€ìì±ì ê¹ìŽ ìê² ë€ë£šê³ , ëªšë² ì¬ë¡ë¥Œ íìíë©°, ì ìžê³ ê°ë°ìë€ìê² íì ì€ìŽì€ ì€ì©ì ìž ìì륌 ì ê³µí©ëë€.
í겜 ë³ìì ì€ìì±
í겜 ë³ìë ìíížìšìŽ ì í늬ìŒìŽì ì ëìì ìí¥ì 믞ì¹ë ëì ê°ì ëë€. ìŽë ìœë ìì ììŽ ì í늬ìŒìŽì ì ì€ì íë ì€ìí ë©ì»€ëìŠì ì ê³µí©ëë€. ë³ì ê°ë§ ë³ê²œíšìŒë¡ìš ë€ìí í겜(ê°ë°, í ì€íž, íë¡ëì ) ê°ì ìœê² ì íí ì ììµëë€. ìŽë ì í늬ìŒìŽì ìŽ ë€ìí ì§ì, ì¬ì©ì ë° ìžíëŒ ì€ì ì ì ìíŽìŒ íë êžë¡ë² ìíížìšìŽ ê°ë°ìì í¹í ì€ìí©ëë€.
ì ìžê³ì ìŒë¡ ìŽìëë ì ììê±°ë íë«íŒì ìê°íŽ ë³Žìžì. íµí êž°íž, API ìëí¬ìžíž URL, ë°ìŽí°ë² ìŽì€ ì°ê²° 묞ììŽì 몚ë í겜 ë³ìì ì í©í í볎ì ëë€. ìœëë¡ë¶í° ì€ì ì ë¶ëЬí멎 ë€ìí ì§ëЬì ìì¹ì ê±žì³ ìíí ë°°í¬, ì ë°ìŽíž ë° íì¥ìŽ ì©ìŽíŽì§ëë€.
íì ìë í겜 ë³ìì 묞ì ì
íì ìì ì±ìŽ ììŒë©Ž í겜 ë³ìë ì¢ ì¢ ë¬žììŽë¡ ì²ëЬë©ëë€. ìŽë¬í ì ê·Œ ë°©ìì ë€ì곌 ê°ì ì¬ë¬ ê°ì§ 곌ì 륌 ì ìí©ëë€:
- ë°íì ì€ë¥: ê°ì ì¢ ì¢ ìœë ëŽìì íì±ë©ëë€(ì: 묞ììŽì ì«ìë ë¶ìžë¡ ë³í). ì못ë íì±ì ììì¹ ëª»í ë°íì ì€ë¥ì ì í늬ìŒìŽì ì¶©ëë¡ ìŽìŽì§ ì ììµëë€. 'true'ëŒë 묞ììŽì ì ìë¡ ì못 íì±íì¬ íì ë ŒëŠ¬ ì€íšë¡ ìŽìŽì§ë ìì€í ì ììíŽ ë³Žìžì.
- ìœë ë³µì¡ì±: ë°ë³µì ìž íì± ë° ì íšì± ê²ì¬ ë¡ì§ì ìœëë² ìŽì€ë¥Œ ë³µì¡íê² ë§ë€ìŽ ìœê³ ìŽíŽíê³ ì ì§ êŽëЬíêž° ìŽë µê² ë§ëëë€. ìŽë êžë¡ë² íë¡ì ížìì ìì íë ëê·ëªš ë¶ì° íìì ëì± ì¬íë©ëë€.
- 볎ì ì·šìœì±: 믌ê°í í겜 ë³ì(ì: API í€, ë°ìŽí°ë² ìŽì€ ì격 ìŠëª )륌 ì못 ì²ëЬí멎 ì í늬ìŒìŽì ìŽ ë³Žì ìíì ë žì¶ë ì ììµëë€. 묞ììŽ êž°ë° ê°ì ì ì¬ì ìž ë³Žì ìíì ëíŽ ìì ì²ëЬíê³ ì íšì±ì ê²ì¬íêž°ê° ë ìŽë µìµëë€.
- ìŽë €ìŽ ëë²ê¹ : í겜 ë³ì ì€ì€ì ìŒë¡ ìžíŽ ì í늬ìŒìŽì ìŽ ì€íší 겜ì°, 귌볞 ììžì ì¶ì íë ë° ìê°ìŽ ë§ìŽ ê±žëŠ¬ê³ ë²ê±°ë¡ìž ì ììµëë€.
íì ìì ì± ìê°: ì€ì ì 볎ížíë ë°©ë²
íì ìì ì±ì í겜 ë³ìê° ì¬ì©ëêž° ì ì ì¬ì ì ìë íì 곌 ë¹êµíì¬ ì íšì±ì ê²ì¬íëë¡ ë³Žì¥í©ëë€. ìŽë¬í ì¬ì ìë°©ì ì ê·Œ ë°©ìì ë°íì ì€ë¥ì ìíì í¬ê² ì€ìŽê³ ì í늬ìŒìŽì ì ì ë°ì ìž ê²¬ê³ ì±ì í¥ììíµëë€. ìŽë êžë¡ë² ìì¥ì ëììŒë¡ íë ë³µì¡íê³ ë¶ì°ë ì í늬ìŒìŽì ìì í¹í ì ì©í©ëë€.
íì ìì í겜 ë³ìì ìŽì ì ë€ì곌 ê°ìµëë€:
- ìŽêž° ì€ë¥ ê°ì§: íì ì íšì± ê²ì¬ë ì í늬ìŒìŽì ìì ëë ì€ì ë¡ë© ì€ì ë°ìíì¬ ì€ë¥ë¥Œ ìŠì ìë³í©ëë€.
- í¥ìë ìœë ê°ë ì±: íì 죌ìì ìì ê°ì ëª ííê² ì ìíì¬ ìœë륌 ìŽíŽíê³ ì ì§ êŽëЬíêž° ìœê² ë§ëëë€.
- 볎ì ê°í: ìì íì ì ì ìíšìŒë¡ìš ê°ë°ìë ì ì í ì íšì± ê²ì¬ ë° ìì ì²ëЬ êž°ì ì ì ì©íì¬ ë³Žì ìíì ì€ìŒ ì ììµëë€.
- ê°ìíë ëë²ê¹ : íì ì€ë¥ë ì못 ì€ì ë í겜 ë³ìì ëí ëª ííê³ ê°ê²°í ì 볎륌 ì ê³µíì¬ ëë²ê¹ ìë륌 ëì ëë€.
- ì ì§ë³Žìì± í¥ì: ì€ì ìŽ ì íì ì§ì ëê³ ë¬žìíëìŽ ììŒë©Ž ì í늬ìŒìŽì 늬í©í ë§ ë° ì ë°ìŽížê° ë ì¬ìì§ëë€.
íì ìì í겜 ë³ì 구í: ì€ì©ì ìž ìì
í겜 ë³ììì íì ìì ì±ì ë¬ì±íêž° ìíŽ ì¬ë¬ êž°ì 곌 ë구륌 ì¬ì©í ì ììµëë€. ì ê·Œ ë°©ìì ì íì íë¡ê·žëë° ìžìŽ, íë ììí¬ ë° ì í늬ìŒìŽì ì ë³µì¡ì±ì ë°ëŒ ë¬ëŒì§ëë€. ì ìžê³ì ìŒë¡ ì ì© ê°ë¥í ëª ê°ì§ ìžêž° ìë ë°©ë²ì ìŽíŽë³Žê² ìµëë€.
1. ì ì© ëŒìŽëžë¬ëЬ ë° íë ììí¬ ì¬ì©
ë§ì íë¡ê·žëë° ìžìŽìë íì ìì ì±ì ê°ì¶ í겜 ë³ì륌 ì²ëЬíëë¡ í¹ë³í ì€ê³ë ëŒìŽëžë¬ëЬ ëë íë ììí¬ê° ììµëë€. ë€ìì ëª ê°ì§ ììì ëë€:
- Node.js: `dotenv-safe` ëŒìŽëžë¬ëЬë í겜 ë³ì륌 ë¡ëíê³ ì íšì±ì ê²ì¬íêž° ìí ê°ë ¥í ì룚ì ì ì ê³µí©ëë€. ìŽ ëŒìŽëžë¬ëЬë `.env` íìŒì ì¬ì©íì¬ ë³ì륌 ì ì¥íê³ , ì€í€ë§ íìŒ(ì: JSON ì€í€ë§ ëë TypeScript íì ì ì)ì ììëë íì 곌 ì íšì± ê²ì¬ ê·ì¹ì ì ìí©ëë€. ìŽë êžë¡ë² Node.js êž°ë° íë¡ì ížì í¹í ì ì©í©ëë€.
- Python: `python-dotenv` ëŒìŽëžë¬ëЬë `.env` íìŒìì í겜 ë³ì륌 ë¡ëí ì ìëë¡ í©ëë€. ìŽë¥Œ `pydantic`곌 ê°ì ëŒìŽëžë¬ëЬì ê²°í©íì¬ í겜 ë³ìì ëí 몚ëžì ì ìíê³ , íì ìì ì± ë° ì íšì± ê²ì¬ë¥Œ ê°ì í ì ììµëë€. ìŽ íšíŽì Pythonì ì¬ì©íë êžë¡ë² 곌í ë° ë°ìŽí° ìì§ëìŽë§ íë¡ì ížìì ë§€ì° ì ìëí©ëë€.
- Go: `go-env`ì ê°ì ëŒìŽëžë¬ëЬë í겜 ë³ì륌 ë¡ëíê³ íì íìž ë° ì íšì± ê²ì¬ë¥Œ íµíŽ Go 구조첎ì ë§€ííë ë°©ë²ì ì ê³µí©ëë€. ìŽ ì ê·Œ ë°©ìì ë€ìí í겜ì ìí íšìšì ìž í¬ë¡ì€ íë«íŒ ì í늬ìŒìŽì ì 구ì¶íë ë° ìžêž°ê° ììµëë€.
- Java: Javaì ëŒìŽëžë¬ëЬ ë° íë ììí¬ë ì¢ ì¢ Spring Bootì ê°ì íë ììí¬ì íµí©ëìŽ íë¡íŒí° íìŒê³Œ í겜 ë³ì륌 ê°ë ¥í íì ì§ì 곌 íšê» ì¬ì©í ì ìëë¡ í©ëë€. Spring Boot `Environment` ì¶ìíë í겜 ë³ìì ëí ì¬ìŽ ì ê·Œì íì©íê³ íì ë³í êž°ë¥ì ì ê³µí©ëë€. ìŽë ë€ìí ìí°íëŒìŽìŠ ì í늬ìŒìŽì ì ë°ì ì ì§ë³Žìì±ì í¥ììíµëë€.
- .NET (C#): .NET íë ììí¬ ë° êŽë š ëŒìŽëžë¬ëЬë í겜 ë³ì륌 ì²ëЬíê³ ê°ë ¥í íì ì§ì ì€ì íŽëì€ë¥Œ ìì±íêž° ìí ê°ë ¥í ë°©ë²ì ì ê³µí©ëë€. ì€ì ì ëŽì¥ëìŽ ììŽ ê°ë°, í ì€íž ë° íë¡ëì ìì€í ì ë°ì ê±žì³ ê°ëšíê² ì ê·Œí ì ììµëë€.
ìì (Node.js, `dotenv-safe` ë° TypeScript):
뚌ì íìí íší€ì§ë¥Œ ì€ì¹í©ëë€:
npm install dotenv-safe typescript @types/dotenv-safe --save-dev
íë¡ì íž ë£šížì `.env` íìŒì ìì±í©ëë€:
PORT=3000
DATABASE_URL=postgres://user:password@host:port/database
DEBUG=true
TypeScript륌 ì¬ì©íì¬ ì€í€ë§ë¥Œ ì ìí©ëë€:
// .env.example.ts
import { cleanEnv, port, str, bool } from 'envalid';
export const env = cleanEnv(process.env, {
PORT: port({ default: 3000 }),
DATABASE_URL: str({ desc: 'Database connection string' }),
DEBUG: bool({ default: false }),
});
ì í늬ìŒìŽì ìœëìì:
// index.ts
import * as dotenvSafe from 'dotenv-safe';
import { env } from './.env.example';
dotenvSafe.config();
console.log(`Server listening on port ${env.PORT}`);
console.log(`Database URL: ${env.DATABASE_URL}`);
console.log(`Debug mode: ${env.DEBUG}`);
ìŽ ìììì `envalid`ì `cleanEnv` íšìë ì ìë íì ì ëíŽ í겜 ë³ì륌 ê²ìŠí©ëë€. ì íšì± ê²ì¬ê° ì€íší멎 ì í늬ìŒìŽì ìì ì€ì ì€ë¥ê° ë°ìíì¬ ì í늬ìŒìŽì ìŽ ì íšíì§ ìì ì€ì ìŒë¡ ì€íëë ê²ì ë°©ì§í©ëë€. ìŽë íì ìì ì€ì ìŽ ì€ì ë¡ ìëíë ëª íí ììì ëë€.
2. ìë ì íšì± ê²ì¬ ë° íì ë³í
ìŽë€ 겜ì°ìë ì ì© ëŒìŽëžë¬ëŠ¬ë¥Œ ì¬ì©íë ê²ìŽ ì€í ë¶ê°ë¥í ì ììµëë€. ê·žë¬í ìí©ììë í겜 ë³ì륌 ìíë íì ìŒë¡ ìëìŒë¡ ê²ìŠíê³ ë³íí ì ììµëë€. ìŽ ì ê·Œ ë°©ìì ë ë§ì ìë ë žë ¥ìŽ íìíì§ë§ ì ì°ì±ì ì ê³µí©ëë€.
ìì (Python):
import os
def get_port() -> int:
port_str = os.getenv('PORT')
if port_str is None:
return 8080 # Default value
try:
return int(port_str)
except ValueError:
raise ValueError('PORT must be an integer')
PORT = get_port()
ìŽ ìììì `get_port` íšìë `PORT` í겜 ë³ì륌 ê²ìíê³ , ì íší ì ììžì§ íìží í ì ì ê°ì ë°íí©ëë€. ë³ìê° ìê±°ë ì íší ì ìê° ìë ê²œì° êž°ë³žê°ìŽ ì¬ì©ëê±°ë ììžê° ë°ìí©ëë€. ìŽë ë°íì ì€ë¥ë¥Œ ë°©ì§íê³ ëë²ê¹ ì ì©ìŽíê² í©ëë€.
3. ìœëí ì€ì (Infrastructure as Code) íì©
Terraform, Ansible ëë Kubernetesì ê°ì ìœëí ì€ì (IaC) ë구ë í겜 ë³ì륌 ì ìíê³ êŽëЬíë ë©ì»€ëìŠì ì ê³µíë 겜ì°ê° ë§ìµëë€. ìŽë¬í ë구ë ì¢ ì¢ ì€ì ê°ì íì ê²ì¬ ë° ì íšì± ê²ì¬ë¥Œ ì§ìí©ëë€.
ìì (Terraform):
variable "database_url" {
type = string
description = "The connection string for the database."
sensitive = true # Mark as sensitive
}
resource "aws_db_instance" "default" {
db_name = "mydb"
engine = "mysql"
allocated_storage = 10
username = "user"
password = var.database_url # Avoid storing directly as sensitive
}
ìŽ Terraform ìììì `database_url` ë³ìë `string` íì ìŒë¡ ì ìë©ëë€. Terraformì ê³í ëšê³ìì ë³ì ê°ì ê²ìŠíì¬ ì íší 묞ììŽìžì§ íìží©ëë€. ìŽ ì ê·Œ ë°©ìì ìŒêŽë ì€ì ì ì¬ì©íì¬ ìžíëŒë¥Œ ì ìžê³ì ìŒë¡ ë°°í¬í ë í¹í ì ì©í©ëë€.
íì ìì í겜 ë³ì륌 ìí ëªšë² ì¬ë¡
íì ìì í겜 ë³ì륌 íšê³Œì ìŒë¡ 구ííë €ë©Ž í¹ì ëªšë² ì¬ë¡ë¥Œ ì€ìíŽìŒ í©ëë€:
- ëª íí íì ì ì: ê° í겜 ë³ìì ëí ìì íì (ì: 묞ììŽ, ì ì, ë¶ìž, URL)ì ëª ìì ìŒë¡ ì ìí©ëë€.
- ì íšì± ê²ì¬ ì¬ì©: í겜 ë³ìê° ìì íì ë° ì ìœ ì¡°ê±Žì ë¶í©íëì§ íìžíêž° ìíŽ ê°ë ¥í ì íšì± ê²ì¬ë¥Œ 구íí©ëë€. í¹í êžë¡ë² ì€ì ì ìíŽ ì ê· ííì, ë²ì ê²ì¬ ë° êž°í ì íšì± ê²ì¬ êž°ì ì ì¬ì©íë ê²ì ê³ ë €íììì€.
- êž°ë³žê° ì ê³µ: ë³ìê° ì€ì ëì§ ììì ë ìêž°ì¹ ìì ëìì ë°©ì§íêž° ìíŽ í겜 ë³ìì ëí Ʞ볞ê°ì ì ìí©ëë€. ìŽë 몚ë ìì¹ìì ìŒêŽë ìëì ìŽì§í©ëë€.
- ì€ì 묞ìí: 몚ë í겜 ë³ìì 목ì , íì , ì íšì± ê²ì¬ ê·ì¹ ë° êž°ë³žê°ì 묞ìíí©ëë€. ìŽ ë¬žìë 몚ë ì§ëЬì ì§ìì ê°ë° íì곌 ìŽíŽêŽê³ìê° ì ê·Œí ì ììŽìŒ í©ëë€. OpenAPI ëë Swaggerì ê°ì ë구륌 íì©íì¬ í¬êŽì ìž ë¬žì륌 ìì±í ì ììµëë€.
- 믌ê°í ì 볎 ìì íê² ì²ëЬ: 믌ê°í ì 볎(ì: API í€, ë¹ë°ë²íž)륌 ìœëë ë²ì êŽëЬ ìì€í ì ì ë íëìœë©íì§ ë§ììì€. í겜 ë³ì ëë 볎ì ë¹ë° êŽëЬ ìì€í (ì: HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, Google Cloud Secret Manager)ì ì¬ì©íììì€. ìíží ì¬ì©ìŽ ì¢ ì¢ íìí©ëë€.
- `.env.example` ëë ì ì¬ íìŒ ì¬ì©: íì ë° ì íì í겜 ë³ìê° í¬íšë ìì íìŒì ì ê³µí©ëë€. ìŽë 묞ì ë° í í늿 ìí ì í©ëë€. íŽë¹ íìŒì ë¹ë° ì 볎륌 ì ì¥íì§ ìëë¡ ì£Œìíììì€.
- ì€ì í ì€íž: ì í늬ìŒìŽì ìŽ í겜 ë³ì륌 ì¬ë°ë¥Žê² ë¡ëíê³ íŽìíëì§ íìžíêž° ìíŽ ëšì í ì€ížë¥Œ ìì±í©ëë€. ëëœë ë³ì, ì íšíì§ ìì ê°, ì íší ê°ì í¬íší ë€ìí ìë늬ì€ë¥Œ í ì€íží©ëë€. ìŽë ë°°í¬ ì€ ì€ë¥ ë°ì ê°ë¥ì±ì ìµìíí ê²ì ëë€.
- CI/CD ì¬ì©: ê°ë° ìëª ì£Œêž° ìŽêž°ì ì€ì ì€ë¥ë¥Œ í¬ì°©íêž° ìíŽ í겜 ë³ì ì íšì± ê²ì¬ë¥Œ ì§ìì íµí©/ì§ìì ë°°í¬(CI/CD) íìŽíëŒìžì íµí©í©ëë€. CI/CD ìì€í ì 몚ë êžë¡ë² íë¡ì ížìì ë°°í¬ ìì ì±ì í¥ììíµëë€.
- ë¹ë° êŽëЬ ë구 íì©: 믌ê°í ì 볎ì 겜ì°, ë¹ë°ì í겜 ë³ìì ì§ì ì ì¥íë ê²ë³Žë€ ì ì© ë¹ë° êŽëЬ ìì€í ì ì íží©ëë€. ë¹ë° êŽëЬ ìì€í ì ì ìžê³ì ìŒë¡ ì ì© ê°ë¥í©ëë€.
- ì€ì íë¡í ê³ ë €: ë³µì¡í íë¡ì ížì 겜ì°, ë€ìí í겜(ê°ë°, ì€í ìŽì§, íë¡ëì )ì ëí ë€ë¥ž ì€ì ì êŽëЬíêž° ìíŽ ì€ì íë¡íì ì¬ì©í©ëë€. ìŽë ë€ìí êžë¡ë² ìì¹ì ê±žì³ ê°ìíë ë°°í¬ë¥Œ ì©ìŽíê² í©ëë€.
êžë¡ë² ê³ ë € ì¬í ë° ìì
êžë¡ë² í겜ìì í겜 ë³ì륌 ë€ë£° ë ë€ì ì¬íì ìŒëì ëììì€:
- íì§í: í겜 ë³ìë íµí êž°íž, ë ì§ íì ë° ìžìŽ êž°ë³ž ì€ì 곌 ê°ì íì§íë ì€ì ì ì²ëЬíŽìŒ í ì ììµëë€. ì륌 ë€ìŽ, `LANGUAGE` í겜 ë³ì륌 ì¬ì©íì¬ ì¬ì©ìì ìì¹ì ë°ëŒ ì ížíë ìžìŽë¥Œ ê²°ì í ì ììµëë€.
- ìê°ë: ë ì§ ë° ìê° ê°ì ì²ëЬí ë ìê°ë ì°šìŽë¥Œ ê³ ë €íììì€. í겜 ë³ì륌 íì©íì¬ êž°ë³ž ìê°ë륌 구ì±íê³ ë€ìí êµì ë°°í¬ ì ë°ì ê±žì³ ë°ìŽí° ìŒêŽì±ì 볎ì¥íììì€.
- íµí: í겜 ë³ì륌 ì¬ì©íì¬ ë€ìí ì§ìì ëí íµí êž°íž ëë íìšì ì ì¥íì¬ êžë¡ë² ì ììê±°ë íë«íŒì ì§ìí©ëë€.
- API ìëí¬ìžíž: ìë¹ì€ì API ìëí¬ìžížë ì§ëЬì ì§ìì ë°ëŒ ë€ë¥Œ ì ììµëë€. í겜 ë³ì륌 ì¬ì©íì¬ ë€ìí ìì¥ì ëí API URLì 구ì±íììì€.
- 볎ì: API í€ ë° ë°ìŽí°ë² ìŽì€ ì격 ìŠëª 곌 ê°ì 믌ê°í í겜 ë³ì륌 볎ížíêž° ìíŽ ê°ë ¥í 볎ì ì¡°ì¹ë¥Œ 구ííììì€. ìíží ë° ë¹ë° êŽëЬ ë구륌 ì¬ì©íì¬ ìŽë¬í ì격 ìŠëª ì 볎ížíë ê²ì 몚ë êµì ë°°í¬ìì ë§€ì° ì€ìí©ëë€.
ìì: ë€ì€ ì§ì API ì€ì
"êžë¡ë²ë§íž"ëŒë ì ììê±°ë íì¬ë ë¶ë¯ž, ì ëœ, ììì ííì ë± ì¬ë¬ ì§ììì ìŽìë©ëë€. ìŽë€ì í겜 ë³ì륌 ì¬ì©íì¬ ê²°ì ê²ìŽížìšìŽì API ìëí¬ìžížë¥Œ êŽëЬí©ëë€.
`.env` íìŒìë ë€ììŽ í¬íšë ì ììµëë€:
PAYMENT_API_NA=https://api.globalmart.com/na/payments
PAYMENT_API_EU=https://api.globalmart.com/eu/payments
PAYMENT_API_APAC=https://api.globalmart.com/apac/payments
REGION=NA # or EU or APAC, dynamically determines API
ìœëìì `REGION` í겜 ë³ì륌 ì¬ì©íì¬ ì ì í API ìëí¬ìžížë¥Œ ì íí©ëë€:
const region = process.env.REGION || 'NA'; // Default to North America
let paymentApiUrl = process.env.PAYMENT_API_NA;
switch (region) {
case 'EU':
paymentApiUrl = process.env.PAYMENT_API_EU;
break;
case 'APAC':
paymentApiUrl = process.env.PAYMENT_API_APAC;
break;
}
// Make API call using paymentApiUrl
console.log(`Using payment API: ${paymentApiUrl}`);
ìŽ ì ê·Œ ë°©ìì êžë¡ë²ë§ížê° ìœë ë³ê²œ ììŽ ì í늬ìŒìŽì ì ë€ë¥ž ì§ìì ìœê² ë°°í¬í ì ìëë¡ í©ëë€. `REGION` í겜 ë³ìë ê° ìì¥ì ë§ë ì¬ë°ë¥ž API ìëí¬ìžížë¥Œ ëì ìŒë¡ ì íí©ëë€.
ê²°ë¡ : ì€ì ì°ìì±ì ìí íì ìì ì± ìì©
íì ìì í겜 ë³ìë í¹í êžë¡ë² ê·ëªšë¡ ìŽìë ë ê°ë ¥íê³ ì ì§ë³Žì ê°ë¥íë©° ìì í ì í늬ìŒìŽì ì 구ì¶íë ë° íìì ìž ìž¡ë©Žì ëë€. íì ìì ì±ì ì±ííšìŒë¡ìš ë°íì ì€ë¥ë¥Œ ì¬ì ì ë°©ì§íê³ , ìœë ê°ë ì±ì ëìŽë©°, ì€ì êŽëŠ¬ë¥Œ ê°ìíí ì ììµëë€. ìŽ ê°ìŽëì ì€ëª ë êž°ì 곌 ëªšë² ì¬ë¡ë¥Œ ìì©íì¬ íë ¥ì ìŽê³ ì ìì±ìŽ ë°ìŽëë©° êžë¡ë² ê³ ê°ì ëì ì ë§ì€ ì€ë¹ê° ë ì í늬ìŒìŽì ì 구ì¶íììì€. ìŽë¬í êŽíì ì¬ì©í멎 ëì± ì 뢰í ì ìê³ ì ì§ë³Žì ê°ë¥íë©° ìì í ì í늬ìŒìŽì ì ë§ë€ ì ììµëë€.
íì ìì ì±ì ì°ì ìíšìŒë¡ìš ê°ë°ìì ê°ë° íì ì í늬ìŒìŽì ì íì§ê³Œ íë ¥ì±ì í¬ê² í¥ììí¬ ì ììµëë€. ìŽë ì í늬ìŒìŽì ìŽ ë€ìí í겜 ë° ì€ì 곌 ìííê² íµí©ëìŽìŒ íë êžë¡ë² ìíížìšìŽ ê°ë°ìì í¹í ì€ìí©ëë€.
íì ìì í겜 ë³ìì ì±íì ì€ì ì°ìì±ì ë¬ì±íê³ ìžê³ì ìì€ì ìíížìšìŽë¥Œ 구ì¶íêž° ìí ì€ìí ëšê³ì ëë€.