Skip to content
isdnetworks
Go back

์ง€์šด ์ž๋ฃŒ๊ฐ€ ์‹œํ—˜ ์ž๋ฃŒ์— ์„ž์˜€๋‹ค

์‹œํ—˜ ์„œ๋ฒ„์— ์šด์˜ ์ž๋ฃŒ ์ผ๋ถ€๋ฅผ ์˜ฎ๊ฒจ์„œ ํ™”๋ฉด์„ ํ™•์ธํ•˜๋Š” ์ผ์ด ์žˆ์—ˆ๋‹ค. ์˜ฎ๊ธด ๋’ค ํ™”๋ฉด์„ ๋ณด๋‹ˆ ์ด๋ฏธ ์‚ญ์ œ๋œ ์ƒํ’ˆ์ด ๋ชฉ๋ก์— ๋‚˜์™”๋‹ค.

Table of contents

Open Table of contents

์›์ธ โ€” ํ‘œ์‹œ๋กœ๋งŒ ์ง€์šฐ๊ณ  ์žˆ์—ˆ๋‹ค

์ƒํ’ˆ ์‚ญ์ œ๊ฐ€ ์ด๋ ‡๊ฒŒ ๋ผ ์žˆ์—ˆ๋‹ค.

$this->db->update('product', ['del_yn' => 'Y'], ['product_no' => $no]);

ํ–‰์€ ๋‚จ๊ณ  del_yn ๋งŒ Y ๊ฐ€ ๋œ๋‹ค. ๋˜์‚ด๋ฆด ์ˆ˜ ์žˆ๊ณ  ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ๋„ ์•ˆ ๊นจ์ง„๋‹ค.

ํ‘œ๋ณธ์„ ๋ฝ‘๋Š” ์ฟผ๋ฆฌ๋Š” ์ด๋žฌ๋‹ค.

SELECT * FROM product ORDER BY RAND() LIMIT 200;

์กฐ๊ฑด์ด ์—†์–ด์„œ ์ง€์šด ๊ฒƒ๋„ ๋ฝ‘ํžŒ๋‹ค. ํ‘œ์‹œ๋กœ๋งŒ ์ง€์šฐ๋ฉด ์กฐ๊ฑด์„ ์•ˆ ๊ฑฐ๋Š” ๋ชจ๋“  ์กฐํšŒ์— ๊ทธ๋Œ€๋กœ ๋‚˜์˜จ๋‹ค.

์šด์˜ ํ™”๋ฉด ์ฝ”๋“œ์—๋Š” del_yn ์กฐ๊ฑด์ด ๋“ค์–ด ์žˆ์–ด์„œ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋‹ค. ํ‘œ๋ณธ ์ฟผ๋ฆฌ๋Š” ๊ทธ ์ฝ”๋“œ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์“ด ๊ฒƒ์ด๋ผ ๊ทœ์น™์ด ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค.

์ง€์šด ์ž๋ฃŒ๋„ ์ผ๋ถ€๋Ÿฌ ๋„ฃ์—ˆ๋‹ค

์กฐ๊ฑด์„ ๋„ฃ์–ด ์ง€์šด ๊ฒƒ์„ ๋นผ๋ ค๋‹ค ์ƒ๊ฐ์„ ๋ฐ”๊ฟจ๋‹ค.

SELECT * FROM product WHERE del_yn = 'N' ORDER BY RAND() LIMIT 200;

์ด๊ฑธ๋กœ ๋๋‚  ๊ฒƒ ๊ฐ™์•˜๋Š”๋ฐ ์ง€์šด ์ƒํ’ˆ์ด ๋ชฉ๋ก์— ์•ˆ ๋‚˜์˜ค๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๊ทธ ์ž๋ฃŒ๊ฐ€ ํ‘œ๋ณธ์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ „๋ถ€ ๋นผ๋ฉด ๊ทธ ํ™•์ธ ์ž์ฒด๋ฅผ ๋ชป ํ•œ๋‹ค.

์‹œํ—˜ ์ž๋ฃŒ๋Š” ์šด์˜์„ ์ถ•์†Œํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ™•์ธํ•  ๊ฒฝ์šฐ๋ฅผ ๋‹ด์€ ๊ฒƒ์ด์–ด์•ผ ํ–ˆ๋‹ค. ์ด ๊ตฌ๋ถ„์ด ํ‘œ๋ณธ ๋ฝ‘๋Š” ๋ฐฉ์‹์„ ๋ฐ”๊ฟจ๋‹ค.

์ƒํƒœ๋ณ„๋กœ ๋‚˜๋ˆ  ๋ฝ‘์•˜๋‹ค

ORDER BY RAND() ๋กœ 200๊ฐœ๋ฅผ ๋ฝ‘์œผ๋‹ˆ ๋Œ€๋ถ€๋ถ„์ด ํŒ๋งค ์ค‘ ์ƒํ’ˆ์ด์—ˆ๋‹ค. ํ’ˆ์ ˆ์ด๋‚˜ ํŒ๋งค ์ค‘์ง€ ์ƒํƒœ์˜ ํ™”๋ฉด์€ ํ™•์ธ์ด ์•ˆ ๋๋‹ค.

(SELECT * FROM product WHERE del_yn='N' AND status='sale'    ORDER BY RAND() LIMIT 50)
UNION ALL
(SELECT * FROM product WHERE del_yn='N' AND status='soldout' ORDER BY RAND() LIMIT 50)
UNION ALL
(SELECT * FROM product WHERE del_yn='N' AND status='stop'    ORDER BY RAND() LIMIT 50)
UNION ALL
(SELECT * FROM product WHERE del_yn='Y'                       ORDER BY RAND() LIMIT 50)

status ๋ณ„๋กœ ๋‚˜๋ˆ„๊ณ  ๋งˆ์ง€๋ง‰์— ์ง€์šด ๊ฒƒ๋„ ์ผ๋ถ€๋Ÿฌ ๋„ฃ์—ˆ๋‹ค.

์ƒํ’ˆ๋งŒ ์˜ฎ๊ธฐ๋‹ˆ ํ™”๋ฉด์ด ๊นจ์กŒ๋‹ค. ์ด๋ฏธ์ง€์™€ ์˜ต์…˜๊ณผ ๋ถ„๋ฅ˜๊ฐ€ ์—†์—ˆ๋‹ค.

SELECT * FROM product_image WHERE product_no IN (SELECT product_no FROM tmp_sample);
SELECT * FROM product_option WHERE product_no IN (SELECT product_no FROM tmp_sample);

๋ฝ‘์€ ์ƒํ’ˆ ๋ฒˆํ˜ธ๋ฅผ tmp_sample ์— ๋„ฃ๊ณ  ๊ทธ๊ฒƒ์„ ๊ธฐ์ค€์œผ๋กœ ๋”ธ๋ฆฐ ์ž๋ฃŒ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค. ๊ด€๊ณ„๋ฅผ ๋”ฐ๋ผ๊ฐ€๋Š” ์ˆœ์„œ๋„ ์ ์–ด ๋’€๋‹ค.

product (๊ธฐ์ค€)
  โ†’ product_image
  โ†’ product_option
  โ†’ product_category โ†’ category
  โ†’ stock

์•ˆ ์ ์œผ๋ฉด ๋งค๋ฒˆ ๋ฌด์—‡์„ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š”์ง€ ๋‹ค์‹œ ์ฐพ๋Š”๋‹ค.

๊ฐœ์ธ์ •๋ณด์™€ ๋‚˜๊ฐ€๋Š” ๊ฒฝ๋กœ

์ฃผ๋ฌธ ์ž๋ฃŒ๋ฅผ ์˜ฎ๊ธธ ๋•Œ ํšŒ์› ์ •๋ณด๊ฐ€ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ์™”๋‹ค. ์‹œํ—˜ ์„œ๋ฒ„๋Š” ์ ‘๊ทผ ๊ถŒํ•œ์ด ๋А์Šจํ•ด์„œ ์‹ค์ œ ์ด๋ฆ„๊ณผ ์—ฐ๋ฝ์ฒ˜๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ ๋๋‹ค.

UPDATE member SET
  name   = CONCAT('ํšŒ์›', member_no),
  phone  = CONCAT('010', LPAD(member_no, 8, '0')),
  email  = CONCAT('test', member_no, '@example.com'),
  addr   = '์„œ์šธ์‹œ ํ…Œ์ŠคํŠธ๊ตฌ ํ…Œ์ŠคํŠธ๋™'
WHERE 1;

์˜ฎ๊ธด ์งํ›„์— ๋ฐ˜๋“œ์‹œ ๋Œ๋ฆฌ๊ฒŒ ์ ˆ์ฐจ์— ๋„ฃ์—ˆ๋‹ค. ๋‚˜์ค‘์— ํ•˜๋ฉด ๊ทธ ์‚ฌ์ด์— ๋ˆ„๊ฐ€ ๋ณด๊ฒŒ ๋œ๋‹ค.

ํ•œ ๋ฒˆ์€ ์ด ๋‹จ๊ณ„๋ฅผ ๋นผ๋จน์—ˆ๋‹ค๊ฐ€ ์‹ค์ œ ๋ฒˆํ˜ธ๋กœ ์‹œํ—˜ ๋ฌธ์ž๊ฐ€ ๋‚˜๊ฐˆ ๋ป”ํ–ˆ๋‹ค. ๋ฐœ์†ก ์„ค์ •์ด ์‹œํ—˜ ๋ชจ๋“œ๊ฐ€ ์•„๋‹ˆ์—ˆ๋‹ค.

if (ENVIRONMENT !== 'production') {
    log_message('info', "[์‹œํ—˜] ๋ฌธ์ž ๋ฐœ์†ก ์ƒ๋žต: {$phone}");
    return true;
}

ENVIRONMENT ๋กœ ๊ฐˆ๋ผ ๋ฌธ์ž์™€ ๋ฉ”์ผ๊ณผ ๊ฒฐ์ œ ์—ฐ๋™์„ ๋ง‰์•˜๋‹ค. ๊ฐ€๋ฆฌ๋Š” ๊ฒƒ๊ณผ ๋ง‰๋Š” ๊ฒƒ ๋‘ ๊ฒน์ด๋ฉด ํ•˜๋‚˜๊ฐ€ ๋น ์ ธ๋„ ๋ฐ–์œผ๋กœ ์•ˆ ๋‚˜๊ฐ„๋‹ค.

์ •๋ฆฌ


Share this post on:

Previous Post
์„ค์ •์ด ๋‘ ๊ตฐ๋ฐ์„œ ๋งŒ๋“ค์–ด์ง€๊ณ  ์žˆ์—ˆ๋‹ค
Next Post
๊ฒ€์ƒ‰์ด ์ „๋ถ€ ํ›‘๊ณ  ์žˆ์—ˆ๋‹ค