๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

ํ™˜๊ฒฝ (env)

๐Ÿ”” ์ตœ์‹ ํ™” ์ผ์ž: 2025-02-20

๊ฐœ์š”โ€‹

env ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” nachocode SDK์˜ ํ˜„์žฌ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ SDK ๋ฒ„์ „, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ™˜๊ฒฝ(Web/App), ์ƒŒ๋“œ๋ฐ•์Šค ๋ชจ๋“œ ์—ฌ๋ถ€ ๋“ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, SDK ์ดˆ๊ธฐํ™” ์—ฌ๋ถ€๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


ํƒ€์ž… ์ •์˜โ€‹

RunningEnvironmentโ€‹

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์—ด๊ฑฐํ˜•(enum)์ž…๋‹ˆ๋‹ค.

๊ฐ’์„ค๋ช…
web์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‹คํ–‰๋จ (browser)
app๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‹คํ–‰๋จ (Android ๋˜๋Š” iOS)

CurrentEnvironmentโ€‹

ํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํƒ€์ž…์ž…๋‹ˆ๋‹ค.

ํ•„๋“œํƒ€์ž…์„ค๋ช…
deviceTypeNachocode.device.DeviceTypeํ˜„์žฌ ๋””๋ฐ”์ด์Šค ์œ ํ˜•
loggerboolean๋กœ๊ฑฐ ์‚ฌ์šฉ ์—ฌ๋ถ€ (true / false)
runningEnvRunningEnvironmentํ˜„์žฌ ์‹คํ–‰ ํ™˜๊ฒฝ (web / app)
sandboxboolean์ƒŒ๋“œ๋ฐ•์Šค ์„œ๋ฒ„ ์‚ฌ์šฉ ์—ฌ๋ถ€ (true / false)
sdkVersionstringํ˜„์žฌ SDK ๋ฒ„์ „
srcVersionstringํ˜„์žฌ ์•ฑ ์†Œ์Šค ๋ฒ„์ „

EnvironmentOptionsโ€‹

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ ์˜ต์…˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ํƒ€์ž…์ž…๋‹ˆ๋‹ค.

ํ•„๋“œํƒ€์ž…์„ค๋ช…
sandboxboolean์ƒŒ๋“œ๋ฐ•์Šค ์„œ๋ฒ„ ์‚ฌ์šฉ ์—ฌ๋ถ€
loggerboolean๋กœ๊ฑฐ ์‚ฌ์šฉ ์—ฌ๋ถ€

๋ฉ”์„œ๋“œ ๋ชฉ๋กโ€‹

๋ฉ”์„œ๋“œ์„ค๋ช…์ถ”๊ฐ€๋œ ๋ฒ„์ „
getAppSourceVersion()ํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ๋ฒ„์ „์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.ver.1.2.0
getCurrentEnv()ํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.ver.1.0.0
getRunningEnv()ํ˜„์žฌ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.ver.1.0.0
getSDKVersion()ํ˜„์žฌ SDK ๋ฒ„์ „์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.ver.1.0.0
isApp()์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์—์„œ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.ver.1.0.0
isInitialized()SDK๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.ver.1.0.0
isUsingSandbox()ํ˜„์žฌ ์ƒŒ๋“œ๋ฐ•์Šค ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.ver.1.0.0
isWeb()์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์›น ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.ver.1.0.0

๋ฉ”์„œ๋“œ ์ƒ์„ธโ€‹

getAppSourceVersion(): stringโ€‹

  • since ver.1.2.0

์„ค๋ช… (getAppSourceVersion)โ€‹

ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์•ฑ์˜ ์†Œ์Šค ์ฝ”๋“œ ๋ฒ„์ „์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
nachocode์—์„œ ์ œ๊ณตํ•˜๋Š” ์•ฑ ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ฒ„์ „์„ ์˜๋ฏธํ•˜๋ฉฐ, SDK ๋ฒ„์ „๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โš ๏ธ ์ฐธ๊ณ : SDK ๋ฒ„์ ผ๋ณด๋‹ค ์•ฑ ์†Œ์Šค ๋ฒ„์ ผ์ด ๋‚ฎ์„ ๊ฒฝ์šฐ SDK ์ผ๋ถ€ ๊ธฐ๋Šฅ ์‚ฌ์šฉ์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’ (getAppSourceVersion)โ€‹

ํƒ€์ž…์„ค๋ช…
stringnachocode ์•ฑ ์†Œ์Šค ๋ฒ„์ „

์‚ฌ์šฉ ์˜ˆ์ œ (getAppSourceVersion)โ€‹

const currentVersion = Nachocode.env.getAppSourceVersion();

console.log(`์•ฑ ์†Œ์Šค ๋ฒ„์ „: ${appSourceVersion}`); // ex. "1.4.0"

getCurrentEnv(): CurrentEnvironmentโ€‹

  • since ver.1.0.0

์„ค๋ช… (getCurrentEnv)โ€‹

ํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ™˜๊ฒฝ ์ •๋ณด(๋””๋ฐ”์ด์Šค ํƒ€์ž…, ์‹คํ–‰ ํ™˜๊ฒฝ, SDK ๋ฒ„์ „ ๋“ฑ)๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’ (getCurrentEnv)โ€‹

ํƒ€์ž…์„ค๋ช…
CurrentEnvironmentํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ ๊ฐ์ฒด

์‚ฌ์šฉ ์˜ˆ์ œ (getCurrentEnv)โ€‹

const currentEnv = Nachocode.env.getCurrentEnv();

console.log(currentEnv); // ex. { deviceType: 'iOS', logger: false, runningEnv: 'app', sandbox: false, sdkVersion: "1.4.0", srcVersion: "1.4.0" }

getRunningEnv(): RunningEnvironmentโ€‹

  • since ver.1.0.0

์„ค๋ช… (getRunningEnv)โ€‹

ํ˜„์žฌ ์•ฑ์ด ์‹คํ–‰ ์ค‘์ธ ํ™˜๊ฒฝ์ด ์›น(web) ํ™˜๊ฒฝ์ธ์ง€, ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ(app) ํ™˜๊ฒฝ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’ (getRunningEnv)โ€‹

ํƒ€์ž…์„ค๋ช…
RunningEnvironmentํ˜„์žฌ ์‹คํ–‰ ํ™˜๊ฒฝ (web / app)

์‚ฌ์šฉ ์˜ˆ์ œ (getRunningEnv)โ€‹

const runningEnv = Nachocode.env.getRunningEnv(); // 'web' | 'app'
console.log(`ํ˜„์žฌ ์‹คํ–‰ ํ™˜๊ฒฝ: ${runningEnv}`); // "app" ๋˜๋Š” "web"

getSDKVersion(): stringโ€‹

  • since ver.1.0.0

์„ค๋ช… (getSDKVersion)โ€‹

ํ˜„์žฌ nachocode SDK์˜ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’ (getSDKVersion)โ€‹

ํƒ€์ž…์„ค๋ช…
stringSDK ๋ฒ„์ „ ์ •๋ณด

์‚ฌ์šฉ ์˜ˆ์ œ (getSDKVersion)โ€‹

const sdkVersion = Nachocode.env.getSDKVersion();
console.log(`nachocode SDK ๋ฒ„์ „: ${sdkVersion}`); // ex. "1.4.0"

isApp(): booleanโ€‹

  • since ver.1.0.0

์„ค๋ช… (isApp)โ€‹

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ํ™˜๊ฒฝ(Android/iOS)์—์„œ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜์—ฌ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’ (isApp)โ€‹

ํƒ€์ž…์„ค๋ช…
boolean๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ์‹คํ–‰ ์—ฌ๋ถ€ ๋ฐ˜ํ™˜ (true / false)

์‚ฌ์šฉ ์˜ˆ์ œ (isApp)โ€‹

if (Nachocode.env.isApp()) {
console.log('ํ˜„์žฌ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.');
// ์•ฑ ํ™˜๊ฒฝ์—์„œ๋งŒ ๋™์ž‘ํ•  ๋กœ์ง์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
}

isInitialized(): booleanโ€‹

  • since ver.1.0.0

์„ค๋ช… (isInitialized)โ€‹

nachocode SDK๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’ (isInitialized)โ€‹

ํƒ€์ž…์„ค๋ช…
booleanSDK ์ดˆ๊ธฐํ™” ์—ฌ๋ถ€ (true / false)

์‚ฌ์šฉ ์˜ˆ์ œ (isInitialized)โ€‹

if (Nachocode.env.isInitialized()) {
// nachocode SDK๊ฐ€ ์ดˆ๊ธฐํ™” ๋˜์—ˆ์„ ๋•Œ๋งŒ ์‹คํ–‰ ํ•  ๋กœ์ง์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
} else {
// SDK๊ฐ€ ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ดˆ๊ธฐํ™”๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
Nachocode.init('your_api_key_here');
}

isUsingSandbox(): booleanโ€‹

  • since ver.1.0.0

์„ค๋ช… (isUsingSandbox)โ€‹

ํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ƒŒ๋“œ๋ฐ•์Šค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ์ค‘์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’ (isUsingSandbox)โ€‹

ํƒ€์ž…์„ค๋ช…
boolean์ƒŒ๋“œ๋ฐ•์Šค ์—ฌ๋ถ€ (true / false)

์‚ฌ์šฉ ์˜ˆ์ œ (isUsingSandbox)โ€‹

console.log(Nachocode.env.isUsingSandbox()); // true | false
if (Nachocode.env.isUsingSandbox()) {
// Sandbox ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉ ์ค‘์ผ ๋•Œ๋งŒ ์‹คํ–‰ํ•  ๋กœ์ง์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
console.log('ํ˜„์žฌ ์ƒŒ๋“œ๋ฐ•์Šค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.');
}

isWeb(): booleanโ€‹

  • since ver.1.0.0

์„ค๋ช… (isWeb)โ€‹

ํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ™˜๊ฒฝ์ด ์›น ํ™˜๊ฒฝ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’ (isWeb)โ€‹

ํƒ€์ž…์„ค๋ช…
boolean์›น ์‹คํ–‰ ์—ฌ๋ถ€ (true / false)

์‚ฌ์šฉ ์˜ˆ์ œ (isWeb)โ€‹

if (Nachocode.env.isWeb()) {
console.log('ํ˜„์žฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.');
// ์›น ํ™˜๊ฒฝ์—์„œ๋งŒ ๋™์ž‘ํ•  ๋กœ์ง์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
}