diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml
index cd481d9a9..cff96df39 100644
--- a/.github/workflows/integration.yaml
+++ b/.github/workflows/integration.yaml
@@ -9,3 +9,77 @@ jobs:
     steps:
       - uses: actions/checkout@v4
       - uses: fernandrone/linelint@0.0.6
+
+  label-lang:
+    runs-on: ubuntu-latest
+    continue-on-error: true
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v4
+
+      - name: Set up Node.js
+        uses: actions/setup-node@v4
+        with:
+          node-version: '20'
+
+      - name: Create package.json
+        run: echo '{}' > package.json
+
+      - name: Install dependencies
+        run: npm install @octokit/rest node-fetch
+
+      - name: Detect languages and add labels
+        env:
+          GITHUB_TOKEN: ${{ github.token }}
+          PR_NUM: ${{ github.event.number }}
+        run: |
+          node --input-type=module -e "
+          import { Octokit } from '@octokit/rest';
+          import path from 'path';
+          import fetch from 'node-fetch';
+
+          const octokit = new Octokit({
+            auth: process.env.GITHUB_TOKEN,
+            request: { fetch }
+          });
+
+          const extensionsToLanguages = {
+            js: 'js',
+            ts: 'ts',
+            py: 'py',
+            java: 'java',
+            kt: 'kotlin',
+            cpp: 'c++',
+            go: 'go',
+            exs: 'elixir',
+            swift: 'swift'
+            // 필요한 다른 확장자와 언어 매핑 추가
+          };
+
+          async function run() {
+            const { data: files } = await octokit.pulls.listFiles({
+              owner: process.env.GITHUB_REPOSITORY.split('/')[0],
+              repo: process.env.GITHUB_REPOSITORY.split('/')[1],
+              pull_number: process.env.PR_NUM,
+            });
+
+            const languages = new Set();
+            files.forEach(file => {
+              const ext = path.extname(file.filename).slice(1);
+              if (extensionsToLanguages[ext]) {
+                languages.add(extensionsToLanguages[ext]);
+              }
+            });
+
+            if (languages.size > 0) {
+              await octokit.issues.addLabels({
+                owner: process.env.GITHUB_REPOSITORY.split('/')[0],
+                repo: process.env.GITHUB_REPOSITORY.split('/')[1],
+                issue_number: process.env.PR_NUM,
+                labels: Array.from(languages),
+              });
+            }
+          }
+
+          run().catch(err => console.error(err));
+          "