๐Ÿ“… 2025-06-18 RSA ์‹ค๋ฌด ๋ฉ”๋ชจ


๐Ÿ“Œ paging ์ด๋ž€?

  • ์˜๋ฏธ: ํ™”๋ฉด์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฟŒ๋ฆด ๋•Œ ํ•œ ๋ฒˆ์— ๋ช‡ ๊ฐœ๋ฅผ ๋ณด์—ฌ์ค„์ง€ ์ œ์–ดํ•˜๋Š” ๊ธฐ๋Šฅ
  • ์˜ˆ: ํ•œ ํ™”๋ฉด์— 10๊ฑด๋งŒ ๋ณด์—ฌ์ฃผ๊ณ , ๋‹ค์Œ ํŽ˜์ด์ง€๋กœ ๋„˜๊น€

๐Ÿ“Œ OP ๋ช…๋ช… ๊ทœ์น™

  • OP ์ด๋ฆ„์— โ€œ๋ชฉ๋กโ€ ์ด ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฉด, ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋‹ค์ค‘์„ฑ(*) ๋ถ€์—ฌ ์‹œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  • ๋”ฐ๋ผ์„œ, ๋ชฉ๋ก ์กฐํšŒ๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ โ€ฆ๋ชฉ๋ก์กฐํšŒ์ฒ˜๋Ÿผ ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•  ๊ฒƒ

๐Ÿ“Œ ์šฉ์–ด ๋“ฑ๋ก ๋ฐ DTO ๋ฐ˜์˜ ์ ˆ์ฐจ

๐Ÿ”น ์ฃผ์š” ์šฉ์–ด (์ „๋ฌธ๋ฒ„์ „ ๋น„๊ต์šฉ)

์šฉ์–ด๋ช…์„ค๋ช…
์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ๋ฒ„์ „๋ฒˆํ˜ธ์ƒ์œ„_S16์ƒ์œ„ ๋ฒ„์ „ ๋ฒˆํ˜ธ (S16)
์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ๋ฒ„์ „๋ฒˆํ˜ธํ•˜์œ„_S16ํ•˜์œ„ ๋ฒ„์ „ ๋ฒˆํ˜ธ (S16)
์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ์ ์šฉ์ผ์ž์ƒ์œ„_S16์ƒ์œ„ ์ ์šฉ์ผ์ž (S16)
์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ์ ์šฉ์ผ์žํ•˜์œ„_S8ํ•˜์œ„ ์ ์šฉ์ผ์ž (S8)

๐Ÿ”น ๋“ฑ๋ก ์ ˆ์ฐจ

  1. META > ํ‘œ์ค€๋ฐ์ดํ„ฐ > ์ „๋ฌธ์šฉ์–ด๋“ฑ๋ก์š”์ฒญ ์—์„œ ์šฉ์–ด ๋“ฑ๋ก
  2. DevOnMDA > Code > ์šฉ์–ด์‚ฌ์ „๋ฆฌ๋กœ๋”ฉ ์‹คํ–‰
  3. ํ•ด๋‹น ์šฉ์–ด๋Š” ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์™€ DTO ํ•„๋“œ์— ์ผ์น˜์‹œ์ผœ์•ผ ํ•จ
  4. ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์‚ฌ์šฉ ์‹œ โ†’ ๋ฐ˜๋“œ์‹œ EBI ๋‚ด DTO์— ์ถ”๊ฐ€ํ•  ๊ฒƒ

๐Ÿ“Œ DTO/OP ์—ฐ๊ฒฐ ๊ตฌ์กฐ ์„ค๋ช…

๐Ÿ”ธ <<i, ebi>> ๋ธ”๋Ÿญ

  • PBI ๋‹จ๋ง์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ EBI์˜ OP๋กœ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ
  • ์ฆ‰, ๋‹จ๋ง โ†” ๋ฐฑ์—”๋“œ ์—ฐ๊ณ„ ์ง€์ 
  • OP์—์„œ ์„ ์–ธ๋œ ์ž…๋ ฅ DTO์™€ ๋งคํ•‘๋˜์–ด์•ผ ํ•˜๋ฉฐ, ํ•„๋“œ๋ช…์ด ์ •ํ™•ํžˆ ๋งž์•„์•ผ ํ•จ

๐Ÿ”ธ <<c, dao>> ๋ธ”๋Ÿญ

  • EBI์˜ OP ๋‚ด๋ถ€์—์„œ ์‹ค์ œ ์ฟผ๋ฆฌ(XML)๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์—ฐ๊ฒฐ ๋ธ”๋Ÿญ
  • OP์—์„œ ์ง€์ •ํ•œ @SqlId ๊ฐ€ DAO XML ๋‚ด๋ถ€์˜ <statement name="โ€ฆ"> ์™€ ์—ฐ๊ฒฐ๋จ
  • ์ด ๋ธ”๋Ÿญ ์—†์ด๋Š” ์ฟผ๋ฆฌ ์‹คํ–‰ ๋ถˆ๊ฐ€

๐Ÿ”„ ํ๋ฆ„ ์ •๋ฆฌ

[PBI ํ™”๋ฉด ์ž…๋ ฅ DTO]
    โ†“
<<i, ebi>>  โ†’  EBI ์ž…๋ ฅ DTO ์„ธํŒ…
    โ†“
<<c, dao>>  โ†’  DAO XML ์ฟผ๋ฆฌ ์‹คํ–‰
    โ†“
[EBI ์ถœ๋ ฅ DTO ๋ฐ˜ํ™˜]

๐Ÿ“Œ <<op, Interaction Block>> ์„ค๋ช…

๐Ÿ”น ์ •์˜

  • ์—ฌ๋Ÿฌ ACSD์—์„œ ๊ณตํ†ต์œผ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๋กœ์ง์„ ๋ฌถ์–ด์„œ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋Ÿญ
  • <<op, Interaction Block>>๋Š” ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ ํ๋ฆ„ ๋‹จ์œ„๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๐Ÿ”น ์ ์šฉ ์˜ˆ: ์ „๋ฌธ๋ฒ„์ „ ๋“ฑ๋ก vs ์ˆ˜์ • ์‹œ ์ ์šฉ์ผ์ž ๊ฒ€์ฆ

  • ์ž…๋ ฅ DTO๋งŒ ๋‹ค๋ฅด๊ณ , ๋‚˜๋จธ์ง€ ๋กœ์ง์€ ๋™์ผ
  • โ†’ ๊ณตํ†ต ๋ธ”๋Ÿญ์œผ๋กœ ์ถ”์ถœํ•˜๊ณ  ๋ณ€์ˆ˜๋งŒ ์žฌ๋งคํ•‘ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ

๐Ÿ”น ๋ณ€์ˆ˜ ๋งคํ•‘ ์˜ˆ์‹œ

String [s์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ๋ฒ„์ „๋ฒˆํ˜ธ] = [iISO20022์ „๋ฌธ๋ฒ„์ „๋“ฑ๋ก].[์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ๋ฒ„์ „๋ฒˆํ˜ธ];
String [s์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ์ ์šฉ์ผ์ž] = [iISO20022์ „๋ฌธ๋ฒ„์ „๋“ฑ๋ก].[์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ์ ์šฉ์ผ์ž];

์ˆ˜์ • ACSD์—์„œ๋Š” iISO20022์ „๋ฌธ๋ฒ„์ „์ˆ˜์ •์œผ๋กœ ์น˜ํ™˜


๐Ÿ”ธ ๊ฒ€์ฆ ์กฐ๊ฑด (๋…ผ๋ฆฌ์ฝ”๋“œ if๋ฌธ)

// ํ•˜์œ„ ๋ฒ„์ „๊ณผ ๋น„๊ต
if (
  [r์ „๋ฌธ๋ฒ„์ „๋‚ด์—ญ์ ์šฉ์ผ์ž์กฐํšŒ].[์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ๋ฒ„์ „๋ฒˆํ˜ธํ•˜์œ„_S16] < [s์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ๋ฒ„์ „๋ฒˆํ˜ธ] &&
  [r์ „๋ฌธ๋ฒ„์ „๋‚ด์—ญ์ ์šฉ์ผ์ž์กฐํšŒ].[์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ์ ์šฉ์ผ์žํ•˜์œ„_S8] >= [s์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ์ ์šฉ์ผ์ž]
) {
  code = "9999";
  params = "์ ์šฉ์ผ์ž ์˜ค๋ฅ˜";
  return;
}
 
// ์ƒ์œ„ ๋ฒ„์ „๊ณผ ๋น„๊ต
if (
  [r์ „๋ฌธ๋ฒ„์ „๋‚ด์—ญ์ ์šฉ์ผ์ž์กฐํšŒ].[์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ๋ฒ„์ „๋ฒˆํ˜ธ์ƒ์œ„_S16] > [s์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ๋ฒ„์ „๋ฒˆํ˜ธ] &&
  [r์ „๋ฌธ๋ฒ„์ „๋‚ด์—ญ์ ์šฉ์ผ์ž์กฐํšŒ].[์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ์ ์šฉ์ผ์ž์ƒ์œ„_S8] <= [s์‹ ํ•œ์€๊ธˆ์œต๋ง์ „๋ฌธ์ ์šฉ์ผ์ž]
) {
  code = "9999";
  params = "์ ์šฉ์ผ์ž ์˜ค๋ฅ˜";
  return;
}

๐Ÿ“Œ ์ ์šฉ์ผ์ž ๊ฒ€์ฆ์„ ์œ„ํ•œ ์ตœ์ข… ์ฟผ๋ฆฌ (๋‹จ์ผ ํ–‰ ์กฐํšŒ + ๋ณ‘ํ•ฉ)

SELECT
    MAX(A) AS NBW_MESG_VER_NO_UPRN_S16,    -- ์ƒ์œ„ ๋ฒ„์ „๋ฒˆํ˜ธ
    MAX(B) AS NBW_MESG_APLY_DT_UPRN_S16,   -- ์ƒ์œ„ ์ ์šฉ์ผ์ž
    MAX(C) AS NBW_MESG_VER_NO_LWRN_S16,    -- ํ•˜์œ„ ๋ฒ„์ „๋ฒˆํ˜ธ
    MAX(D) AS NBW_MESG_APLY_DT_LWRN_S8     -- ํ•˜์œ„ ์ ์šฉ์ผ์ž
FROM (
    SELECT
        NBW_MESG_VER_NO AS A,
        NBW_MESG_APLY_DT AS B,
        '' AS C,
        '' AS D
    FROM (
        SELECT NBW_MESG_VER_NO, NBW_MESG_APLY_DT
        FROM CPBBO_MSGVR_L
        WHERE NBW_MESG_TYCD = ${nbw_mesg_tycd}
          AND NBW_MESG_VER_NO > ${nbw_mesg_ver_no}
        ORDER BY NBW_MESG_VER_NO ASC
    )
    WHERE ROWNUM = 1
 
    UNION ALL
 
    SELECT
        '' AS A,
        '' AS B,
        NBW_MESG_VER_NO AS C,
        NBW_MESG_APLY_DT AS D
    FROM (
        SELECT NBW_MESG_VER_NO, NBW_MESG_APLY_DT
        FROM CPBBO_MSGVR_L
        WHERE NBW_MESG_TYCD = ${nbw_mesg_tycd}
          AND NBW_MESG_VER_NO < ${nbw_mesg_ver_no}
        ORDER BY NBW_MESG_VER_NO DESC
    )
    WHERE ROWNUM = 1
)

โœ… ์žฅ์ 

  • ์ƒํ•˜์œ„ ๋ฒ„์ „ ๊ฐ๊ฐ ์ตœ์‹  1๊ฑด๋งŒ ์กฐํšŒ
  • ๋ฃจํ”„ ์—†์ด ๋‹จ์ผ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋กœ ๊ฒ€์ฆ ๊ฐ€๋Šฅ
  • Interaction Block๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์žฅ ํšจ์œจ์ 