글로벌 범위 변수 사용
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
글로벌 범위를 활용하여 재사용 가능한 변수의 메모리 공간을 최소화하는 방법을 보여줍니다.
더 살펴보기
이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.
코드 샘플
Go
Cloud Run에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다.
자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Cloud Run에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다.
자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Cloud Run에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다.
자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Cloud Run에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다.
자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],[],[],[],null,["# Using global scoped variables\n\nDemonstrate how to minimize the memory footprint of reusable variables by leveraging global scope.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [General development tips](/anthos/run/archive/docs/tips/general)\n- [General development tips](/kubernetes-engine/enterprise/knative-serving/docs/tips/general)\n- [General development tips](/run/docs/tips/general)\n\nCode sample\n-----------\n\n### Go\n\n\nTo authenticate to Cloud Run, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n\n // h is in the global (instance-wide) scope.\n var h string\n\n // init runs during package initialization. So, this will only run during an\n // an instance's cold start.\n func init() {\n \th = heavyComputation()\n \tfunctions.HTTP(\"ScopeDemo\", ScopeDemo)\n }\n\n // ScopeDemo is an example of using globally and locally\n // scoped variables in a function.\n func ScopeDemo(w http.ResponseWriter, r *http.Request) {\n \tl := lightComputation()\n \tfmt.Fprintf(w, \"Global: %q, Local: %q\", h, l)\n }\n\n### Java\n\n\nTo authenticate to Cloud Run, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n\n import com.google.cloud.functions.HttpFunction;\n import com.google.cloud.functions.HttpRequest;\n import com.google.cloud.functions.HttpResponse;\n import java.io.IOException;\n import java.io.PrintWriter;\n import java.util.Arrays;\n\n public class Scopes implements HttpFunction {\n // Global (instance-wide) scope\n // This computation runs at instance cold-start.\n // Warning: Class variables used in functions code must be thread-safe.\n private static final int INSTANCE_VAR = heavyComputation();\n\n @Override\n public void service(HttpRequest request, HttpResponse response)\n throws IOException {\n // Per-function scope\n // This computation runs every time this function is called\n int functionVar = lightComputation();\n\n var writer = new PrintWriter(response.getWriter());\n writer.printf(\"Instance: %s; function: %s\", INSTANCE_VAR, functionVar);\n }\n\n private static int lightComputation() {\n int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };\n return Arrays.stream(numbers).sum();\n }\n\n private static int heavyComputation() {\n int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };\n return Arrays.stream(numbers).reduce((t, x) -\u003e t * x).getAsInt();\n }\n }\n\n### Node.js\n\n\nTo authenticate to Cloud Run, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n const functions = require('@google-cloud/functions-framework');\n\n // TODO(developer): Define your own computations\n const {lightComputation, heavyComputation} = require('./computations');\n\n // Global (instance-wide) scope\n // This computation runs once (at instance cold-start)\n const instanceVar = heavyComputation();\n\n /**\n * HTTP function that declares a variable.\n *\n * @param {Object} req request context.\n * @param {Object} res response context.\n */\n functions.http('scopeDemo', (req, res) =\u003e {\n // Per-function scope\n // This computation runs every time this function is called\n const functionVar = lightComputation();\n\n res.send(`Per instance: ${instanceVar}, per function: ${functionVar}`);\n });\n\n### Python\n\n\nTo authenticate to Cloud Run, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import time\n\n import functions_framework\n\n\n # Placeholder\n def heavy_computation():\n return time.time()\n\n\n # Placeholder\n def light_computation():\n return time.time()\n\n\n # Global (instance-wide) scope\n # This computation runs at instance cold-start\n instance_var = heavy_computation()\n\n\n @functions_framework.http\n def scope_demo(request):\n \"\"\"\n HTTP Cloud Function that declares a variable.\n Args:\n request (flask.Request): The request object.\n \u003chttp://flask.pocoo.org/docs/1.0/api/#flask.Request\u003e\n Returns:\n The response text, or any set of values that can be turned into a\n Response object using `make_response`\n \u003chttp://flask.pocoo.org/docs/1.0/api/#flask.Flask.make_response\u003e.\n \"\"\"\n\n # Per-function scope\n # This computation runs every time this function is called\n function_var = light_computation()\n return f\"Instance: {instance_var}; function: {function_var}\"\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=cloudrun)."]]