Skip to main content

๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ๋ฌธ์„œํ™”

Copilot Chat์€ ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋ฅผ ๋ฌธ์„œํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ์ž˜ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž๋Š” ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ Copilot ์ฑ„ํŒ…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถˆ๋ถ„๋ช…ํ•˜๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์„ค๋ช…ํ•˜๊ฑฐ๋‚˜ ํ–ฅํ›„ ์ฐธ์กฐ๋ฅผ ์œ„ํ•ด ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ ์‹œ๋‚˜๋ฆฌ์˜ค

์•„๋ž˜ COBOL ๋ธ”๋ก์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์— ์„ค๋ช…์„œ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ฝ”๋“œ์˜ ๊ธฐ๋Šฅ๊ณผ ์ž‘๋™ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

IDENTIFICATION DIVISION.
PROGRAM-ID. INSERT-RECORD.

ENVIRONMENT DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-STATUS-FLAGS.
    05 WS-DB-STATUS     PIC X(2).
       88 WS-SUCCESS    VALUE "00".
    05 WS-SQLCODE       PIC S9(9) COMP.
    05 WS-ERROR-MSG     PIC X(50).

LINKAGE SECTION.
01  LS-PARAMETERS.
    05 LS-PERSON-RECORD.
       10 PERSON-ID     PIC 9(6).
       10 PERSON-NAME   PIC X(50).
       10 PERSON-AGE    PIC 9(3).
    05 LS-RESULT        PIC X.
       88 SUCCESS       VALUE 'T'.
       88 FAILED        VALUE 'F'.

PROCEDURE DIVISION USING LS-PARAMETERS.
    PERFORM INSERT-AND-VALIDATE
    GOBACK
    .

INSERT-AND-VALIDATE.
    EXEC SQL
        INSERT INTO persons (id, name, age)
        VALUES (:PERSON-ID, :PERSON-NAME, :PERSON-AGE)
    END-EXEC

    IF SQLCODE = 0
        EXEC SQL COMMIT END-EXEC
        SET SUCCESS TO TRUE
    ELSE
        EXEC SQL ROLLBACK END-EXEC
        SET FAILED TO TRUE
        STRING "DB Error: " SQLCODE
            DELIMITED BY SIZE
            INTO WS-ERROR-MSG
        DISPLAY WS-ERROR-MSG
    END-IF
    .

์˜ˆ์‹œ ํ”„๋กฌํ”„ํŠธ

๊ฐ„๋‹จํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Copilot Chat์— ์ฝ”๋“œ๋ฅผ ๋ฌธ์„œํ™”ํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Document this code

์ฐธ๊ณ  ํ•ญ๋ชฉ

์„ค๋ช…์„œ๋ฅผ Markdown๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํ˜•์‹์œผ๋กœ ์ƒ์„ฑํ•˜๋ ค๋ฉด ํ”„๋กฌํ”„ํŠธ์—์„œ ์›ํ•˜๋Š” ์ถœ๋ ฅ ํ˜•์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ: Document this code in Markdown

์˜ˆ์ œ ์‘๋‹ต

์ฐธ๊ณ  ํ•ญ๋ชฉ

๋‹ค์Œ ์‘๋‹ต์ด ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. Copilot Chat ์‘๋‹ต์€ ๋น„๊ฒฐ์ •์ ์ด๋ฏ€๋กœ ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋œ ์‘๋‹ต๊ณผ ๋‹ค๋ฅธ ์‘๋‹ต์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Copilot์€ ์ฝ”๋“œ ๋ธ”๋ก์˜ ํ…์ŠคํŠธ ๊ฐœ์š”์™€ ๊ฐ ์„น์…˜์˜ ๋…ผ๋ฆฌ์™€ ๋ชฉ์ ์„ ์„ค๋ช…ํ•˜๋Š” ์ฃผ์„์ด ํฌํ•จ๋œ ์—…๋ฐ์ดํŠธ๋œ ๋ฒ„์ „์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

*****************************************************************
* Program: INSERT-RECORD
* Purpose: Inserts a person record into the database with
*          transaction management and error handling
*****************************************************************
 IDENTIFICATION DIVISION.
 PROGRAM-ID. INSERT-RECORD.

 ENVIRONMENT DIVISION.

 DATA DIVISION.
 WORKING-STORAGE SECTION.
* Status flags and error handling variables
 01  WS-STATUS-FLAGS.
     05 WS-DB-STATUS     PIC X(2).              *> Database status
        88 WS-SUCCESS    VALUE "00".            *> Success flag
     05 WS-SQLCODE       PIC S9(9) COMP.        *> SQL return code
     05 WS-ERROR-MSG     PIC X(50).             *> Error message

 LINKAGE SECTION.
* Input/Output parameters
 01  LS-PARAMETERS.
     05 LS-PERSON-RECORD.
        10 PERSON-ID     PIC 9(6).              *> Person ID
        10 PERSON-NAME   PIC X(50).             *> Person name
        10 PERSON-AGE    PIC 9(3).              *> Person age
     05 LS-RESULT        PIC X.                 *> Operation result
        88 SUCCESS       VALUE 'T'.             *> Success flag
        88 FAILED        VALUE 'F'.             *> Failure flag

 PROCEDURE DIVISION USING LS-PARAMETERS.
     PERFORM INSERT-AND-VALIDATE
     GOBACK
     .

*****************************************************************
* Handles database insertion with transaction management
*****************************************************************
 INSERT-AND-VALIDATE.
     EXEC SQL
         INSERT INTO persons (id, name, age)
         VALUES (:PERSON-ID, :PERSON-NAME, :PERSON-AGE)
     END-EXEC

     IF SQLCODE = 0
         EXEC SQL COMMIT END-EXEC                *> Commit if successful
         SET SUCCESS TO TRUE
     ELSE
         EXEC SQL ROLLBACK END-EXEC              *> Rollback if failed
         SET FAILED TO TRUE
         STRING "DB Error: " SQLCODE
             DELIMITED BY SIZE
             INTO WS-ERROR-MSG
         DISPLAY WS-ERROR-MSG
     END-IF
     .

์ถ”๊ฐ€ ์ฐธ๊ณ  ์ž๋ฃŒ