Avatar
๐Ÿ˜‰

Organizations

  • ๋ฉฑ๋“ฑ์„ฑ(Idempotence)์€ ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์— ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ์™€ API ๊ฐœ๋ฐœ๊ณผ์˜ ๊ด€๋ จ์„ฑ์„ ๋‚˜๋ˆ„์–ด ์ž์„ธํžˆ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.


    ๐Ÿ’ก ๋ฉฑ๋“ฑ์„ฑ(Idempotence)์ด๋ž€?

    ๋ฉฑ๋“ฑ์„ฑ์ด๋ž€ ๋™์ผํ•œ ์—ฐ์‚ฐ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜ํ–‰ํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์•„์ง€๋Š” ์„ฑ์งˆ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ•™์—์„œ ์ถœ๋ฐœํ•œ ๊ฐœ๋…์ธ๋ฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ํ•จ์ˆ˜ f(x)๊ฐ€ ์žˆ์„ ๋•Œ ๋‹ค์Œ์ด ์„ฑ๋ฆฝํ•˜๋ฉด ๋ฉฑ๋“ฑํ•จ์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค:

    f(f(x)) = f(x)
    

    ์˜ˆ์‹œ (์ˆ˜ํ•™์  ๊ด€์ )

    • ์ ˆ๋Œ“๊ฐ’ ํ•จ์ˆ˜: | |x|| = |x|
    • ์ง‘ํ•ฉ์˜ ํ•ฉ์ง‘ํ•ฉ ์—ฐ์‚ฐ: A โˆช A = A

    ๐ŸŒ ๋ฉฑ๋“ฑ์„ฑ๊ณผ API ๊ฐœ๋ฐœ

    ์›น API ์„ค๊ณ„ ์‹œ, ๋ฉฑ๋“ฑ์„ฑ์€ ์•ˆ์ •์ ์ด๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ API๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋งค์šฐ ์ค‘์š”ํ•œ ์„ฑ์งˆ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ REST API์—์„œ๋Š” ๊ฐ HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฉฑ๋“ฑ์„ฑ์„ ๊ฐ€์งˆ์ง€๋ฅผ ์„ค๊ณ„ ์‹œ ๋ช…ํ™•ํžˆ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    Created Mon, 26 May 2025 20:20:45 +0900
  • Object[] ์™€ ArrayList ์˜ ์ฐจ์ด

    ์—๋ฅผ ๋“ค์–ด Partner๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ์„ ๋•Œ Partner[] p = new ArrayList์™€ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด์œ ๋Š” ArrayList๋Š” Java์˜ ์ปฌ๋ ‰์…˜(List) ํƒ€์ž…์ด๊ณ , Partner[]๋Š” ๋ฐฐ์—ด ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ํƒ€์ž…์ž…๋‹ˆ๋‹ค.


    ๐Ÿ” ์ •ํ™•ํ•œ ์ฐจ์ด์ 

    • Partner[] โ†’ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๋ฐฐ์—ด
    • ArrayList<Partner> โ†’ ๊ฐ€๋ณ€ ํฌ๊ธฐ์˜ ๋ฆฌ์ŠคํŠธ (๋ฐฐ์—ด ๊ธฐ๋ฐ˜์˜ ์ปฌ๋ ‰์…˜)

    โœ… ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•

    1. ArrayList๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ

    List<Partner> p = new ArrayList<>();
    p.add(new Partner("name1"));
    p.add(new Partner("name2"));
    
    • ๋ฆฌ์ŠคํŠธ๋กœ ์„ ์–ธํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๋‹ค.
    • ์ด ๋ฐฉ๋ฒ•์ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋” ์œ ์—ฐํ•˜๊ณ  ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

    2. ArrayList โ†’ Partner[]๋กœ ๋ณ€ํ™˜์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ

    List<Partner> pList = new ArrayList<>();
    pList.add(new Partner("a"));
    pList.add(new Partner("b"));
    
    Partner[] pArray = pList.toArray(new Partner[0]); // ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
    

    โš ๏ธ ์ž˜๋ชป๋œ ์˜ˆ์‹œ

    Partner[] p = new ArrayList<>(); // โŒ ์ปดํŒŒ์ผ ์—๋Ÿฌ: incompatible types
    

    โœ… ์š”์•ฝ

    ๋ชฉ์  ์ฝ”๋“œ
    ArrayList ์„ ์–ธ List<Partner> p = new ArrayList<>();
    ๋ฆฌ์ŠคํŠธ โ†’ ๋ฐฐ์—ด ๋ณ€ํ™˜ Partner[] pArray = pList.toArray(new Partner[0]);

    ๋ฐฐ์—ด๋ณด๋‹ค ArrayList๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ์•ˆ์ „ํ•˜๊ณ  ์œ ์—ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋ฐฐ์—ด์ด ํ•„์š”ํ•œ API์™€ ํ˜ธํ™˜ํ•˜๊ฑฐ๋‚˜ ์„ฑ๋Šฅ์ƒ ์ด์ ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฐฐ์—ด ๋ณ€ํ™˜์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

    Created Wed, 21 May 2025 19:20:45 +0900
  • Redis์—์„œ Pub/Sub(Publish/Subscribe) ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋น„๊ต์  ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.


    ๐Ÿง  ๊ฐœ๋… ์š”์•ฝ

    Redis Pub/Sub๋Š” ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ, ํ•œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰(Publish)ํ•˜๋ฉด, ํ•ด๋‹น ์ฑ„๋„์„ ๊ตฌ๋…(Subscribe)ํ•˜๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋“ค์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    • Publisher: ์ฑ„๋„์— ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ
    • Subscriber: ํŠน์ • ์ฑ„๋„์„ ๊ตฌ๋…ํ•˜๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ํด๋ผ์ด์–ธํŠธ

    ๐Ÿ›  ๋ช…๋ น์–ด

    • PUBLISH <channel> <message>: ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰
    • SUBSCRIBE <channel> [<channel> ...]: ์ฑ„๋„ ๊ตฌ๋…
    • UNSUBSCRIBE [<channel> ...]: ์ฑ„๋„ ๊ตฌ๋… ์ทจ์†Œ

    ๐Ÿ’ป ์˜ˆ์ œ (CLI ๊ธฐ์ค€)

    ํ„ฐ๋ฏธ๋„ 1 โ€“ Subscriber

    redis-cli
    > SUBSCRIBE news
    

    ํ„ฐ๋ฏธ๋„ 2 โ€“ Publisher

    redis-cli
    > PUBLISH news "Hello from Redis!"
    

    Subscriber๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‘๋‹ต์„ ๋ฐ›์Šต๋‹ˆ๋‹ค:

    Created Wed, 21 May 2025 14:20:45 +0900
  • Grafana Dashboard ์„ค์ •

    {
      "annotations": {
        "list": [
          {
            "builtIn": 1,
            "datasource": {
              "type": "grafana",
              "uid": "-- Grafana --"
            },
            "enable": true,
            "hide": true,
            "iconColor": "rgba(0, 211, 255, 1)",
            "name": "Annotations & Alerts",
            "type": "dashboard"
          }
        ]
      },
      "editable": false,
      "fiscalYearStartMonth": 0,
      "graphTooltip": 0,
      "links": [],
      "liveNow": false,
      "panels": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
          },
          "gridPos": {
            "h": 3,
            "w": 24,
            "x": 0,
            "y": 0
          },
          "id": 1,
          "targets": [
            {
              "datasource": {
                "type": "prometheus",
                "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
              },
              "refId": "A"
            }
          ],
          "type": "welcome"
        },
        {
          "datasource": {
            "type": "prometheus",
            "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
          },
          "gridPos": {
            "h": 9,
            "w": 24,
            "x": 0,
            "y": 3
          },
          "id": 123123,
          "targets": [
            {
              "datasource": {
                "type": "prometheus",
                "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
              },
              "refId": "A"
            }
          ],
          "type": "gettingstarted"
        },
        {
          "datasource": {
            "type": "prometheus",
            "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
          },
          "gridPos": {
            "h": 15,
            "w": 12,
            "x": 0,
            "y": 12
          },
          "id": 3,
          "links": [],
          "options": {
            "folderUID": "",
            "includeVars": false,
            "keepTime": false,
            "maxItems": 30,
            "query": "",
            "showHeadings": true,
            "showRecentlyViewed": true,
            "showSearch": false,
            "showStarred": true,
            "tags": []
          },
          "pluginVersion": "10.3.3",
          "targets": [
            {
              "datasource": {
                "type": "prometheus",
                "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
              },
              "refId": "A"
            }
          ],
          "title": "Dashboards",
          "type": "dashlist"
        },
        {
          "datasource": {
            "type": "prometheus",
            "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
          },
          "gridPos": {
            "h": 15,
            "w": 12,
            "x": 12,
            "y": 12
          },
          "id": 4,
          "links": [],
          "options": {
            "feedUrl": "https://grafana.com/blog/news.xml",
            "showImage": true
          },
          "targets": [
            {
              "datasource": {
                "type": "prometheus",
                "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
              },
              "refId": "A"
            }
          ],
          "title": "Latest from the blog",
          "type": "news"
        }
      ],
      "refresh": "",
      "schemaVersion": 39,
      "tags": [],
      "templating": {
        "list": []
      },
      "time": {
        "from": "now-6h",
        "to": "now"
      },
      "timepicker": {
        "hidden": true,
        "refresh_intervals": [
          "5s",
          "10s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "2h",
          "1d"
        ],
        "time_options": [
          "5m",
          "15m",
          "1h",
          "6h",
          "12h",
          "24h",
          "2d",
          "7d",
          "30d"
        ],
        "type": "timepicker"
      },
      "timezone": "browser",
      "title": "Home",
      "version": 0,
      "weekStart": ""
    }
    

    ์ด JSON์€ Grafana ๋Œ€์‹œ๋ณด๋“œ ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” Grafana์—์„œ “Home"์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๊ธฐ๋ณธ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์ •์˜ํ•œ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์— ์ฃผ์š” ํ•ญ๋ชฉ๋“ค์„ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

    Created Tue, 20 May 2025 20:20:45 +0900
  • ๋™์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์š” ๊ธฐ์ˆ  ๋ฐ ํˆด์€ ๋‹ค์–‘ํ•œ ๋ชฉ์ (์˜ˆ: ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ, VOD, ์ฝ˜ํ…์ธ  ์ „์†ก, ์ธ์ฝ”๋”ฉ, ํ”Œ๋ ˆ์ด์–ด ๊ตฌํ˜„ ๋“ฑ)์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์— ์ฃผ์š” ๊ธฐ์ˆ ๊ณผ ํˆด์„ ์˜์—ญ๋ณ„๋กœ ์ •๋ฆฌํ•ด๋“œ๋ฆด๊ฒŒ์š”.


    1. ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ ๋ฐ ํŠธ๋žœ์Šค์ฝ”๋”ฉ

    • FFmpeg: ์˜คํ”ˆ์†Œ์Šค ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์ฒ˜๋ฆฌ ๋„๊ตฌ. ์ธ์ฝ”๋”ฉ, ๋””์ฝ”๋”ฉ, ํŠธ๋žœ์Šค์ฝ”๋”ฉ, ํฌ๋งท ๋ณ€๊ฒฝ, ํ•„ํ„ฐ๋ง ๋“ฑ์— ์‚ฌ์šฉ.
    • x264 / x265: ๊ฐ๊ฐ H.264, H.265 ํ‘œ์ค€ ์ธ์ฝ”๋”ฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.
    • AWS Elemental MediaConvert: AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ํŠธ๋žœ์Šค์ฝ”๋”ฉ ์„œ๋น„์Šค.

    2. ์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋กœํ† ์ฝœ

    • HLS (HTTP Live Streaming): ์• ํ”Œ์ด ๊ฐœ๋ฐœ. ๋Œ€๋ถ€๋ถ„์˜ ํ”Œ๋žซํผ์—์„œ ์ง€์›๋˜๋ฉฐ, ์„ธ๊ทธ๋จผํŠธ ๋ฐฉ์‹.
    • DASH (Dynamic Adaptive Streaming over HTTP): MPEG ํ‘œ์ค€ ๊ธฐ๋ฐ˜์œผ๋กœ, HLS์™€ ๋น„์Šทํ•˜์ง€๋งŒ ํ”Œ๋žซํผ ๋…๋ฆฝ์ .
    • RTMP (Real-Time Messaging Protocol): ์ฃผ๋กœ ๋ผ์ด๋ธŒ ๋ฐฉ์†ก์— ์‚ฌ์šฉ๋˜๋ฉฐ, YouTube Live, Twitch ๋“ฑ์—์„œ ์—ฌ์ „ํžˆ ํ™œ์šฉ.
    • WebRTC: ์ง€์—ฐ์ด ๊ทนํžˆ ๋‚ฎ์€ ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์— ์ตœ์ ํ™”๋œ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋กœํ† ์ฝœ.

    3. ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ (CDN)

    • Cloudflare Stream / CDN: ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ธ ์ฝ˜ํ…์ธ  ์ „์†ก์„ ์œ„ํ•œ ๊ธ€๋กœ๋ฒŒ ๋„คํŠธ์›Œํฌ.
    • AWS CloudFront, Akamai, Fastly: ๋Œ€ํ˜• ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค์—์„œ ๋งŽ์ด ์‚ฌ์šฉ.

    4. ํ”Œ๋ ˆ์ด์–ด ๋ฐ ํ”„๋ก ํŠธ์—”๋“œ ๋„๊ตฌ

    • Video.js: HTML5 ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ๋น„๋””์˜ค ํ”Œ๋ ˆ์ด์–ด.
    • Shaka Player: ๊ตฌ๊ธ€์ด ๋งŒ๋“  MPEG-DASH ๋ฐ HLS ์ง€์› ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋ ˆ์ด์–ด.
    • HLS.js: JavaScript ๊ธฐ๋ฐ˜ HLS ์žฌ์ƒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.
    • ExoPlayer (Android), AVPlayer (iOS): ๋ชจ๋ฐ”์ผ ์•ฑ์šฉ ๊ธฐ๋ณธ ํ”Œ๋ ˆ์ด์–ด SDK.

    5. ๋ผ์ด๋ธŒ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ/์„œ๋น„์Šค

    • OBS Studio (Open Broadcaster Software): ๋ฌด๋ฃŒ ๋ผ์ด๋ธŒ ๋ฐฉ์†ก ๋„๊ตฌ, Twitch, YouTube์— ๋ฐฉ์†ก ๊ฐ€๋Šฅ.
    • StreamYard, Restream, Wirecast: ๋ผ์ด๋ธŒ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ์ŠคํŠธ๋ฆฌ๋ฐ ํˆด.
    • Wowza Streaming Engine: ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋ผ์ด๋ธŒ ๋ฐ VOD ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋ฒ„.

    6. DRM (๋””์ง€ํ„ธ ์ €์ž‘๊ถŒ ๊ด€๋ฆฌ) ๋ฐ ๋ณด์•ˆ

    • Widevine (Google), PlayReady (Microsoft), FairPlay (Apple): ๊ฐ ํ”Œ๋žซํผ์šฉ DRM ์‹œ์Šคํ…œ.
    • AES-128 Encryption: HLS์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” ์ฝ˜ํ…์ธ  ์•”ํ˜ธํ™” ํ‘œ์ค€.

    7. ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ถ„์„

    • Mux, Conviva, Bitmovin Analytics: ์‚ฌ์šฉ์ž ๊ฒฝํ—˜, ๋ฒ„ํผ๋ง, ์‹œ์ฒญ ํ–‰๋™ ๋ถ„์„ ๋“ฑ ์ œ๊ณต.
    • Prometheus + Grafana: ์„œ๋ฒ„ ์ธก ์ŠคํŠธ๋ฆฌ๋ฐ ์„ฑ๋Šฅ ๋ฐ ์ง€ํ‘œ ๋ชจ๋‹ˆํ„ฐ๋ง.

    Created Sun, 18 May 2025 20:20:45 +0900
  • MySQL์—์„œ Slow Query(์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ) ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์€ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์ค‘์š”ํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•๋“ค์ž…๋‹ˆ๋‹ค:


    1. ์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ ๋กœ๊ทธ ํ™œ์„ฑํ™”ํ•˜๊ธฐ

    ์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด MySQL ์„ค์ •์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

    ๋ฐฉ๋ฒ• 1: my.cnf ๋˜๋Š” my.ini ํŒŒ์ผ ์ˆ˜์ •

    [mysqld]
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow.log
    long_query_time = 1
    log_queries_not_using_indexes = 1
    
    • slow_query_log: ์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ ๋กœ๊ทธ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”
    • slow_query_log_file: ๋กœ๊ทธ ํŒŒ์ผ ์œ„์น˜
    • long_query_time: ๋ช‡ ์ดˆ ์ด์ƒ ๊ฑธ๋ฆฌ๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋А๋ฆฐ ์ฟผ๋ฆฌ๋กœ ๊ฐ„์ฃผํ• ์ง€ ์„ค์ • (์ดˆ ๋‹จ์œ„)
    • log_queries_not_using_indexes: ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฟผ๋ฆฌ๋„ ๋กœ๊ทธ์— ๊ธฐ๋ก

    ์„ค์ • ํ›„ MySQL์„ ์žฌ์‹œ์ž‘ํ•ด์•ผ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

    Created Tue, 13 May 2025 20:20:45 +0900