๐Ÿ”ฅ TIL - Day 41

Kim Dae Hyunยท2021๋…„ 10์›” 29์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
49/93

๐Ÿ“Œ ์ฒดํฌ๋ฐ•์Šค๋กœ ์—ฌ๋Ÿฌ ๊ฑด ์„ ํƒํ•ด์„œ ์‚ญ์ œํ•˜๊ธฐ

AWS Lambda ์—์„œ ๊ฒŒ์‹œํŒ ๊ตฌํ˜„ ์ค‘์— ๊ธฐ์–ตํ•ด๋‘๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ์ด ์žˆ์–ด์„œ ๊ธฐ๋กํ•œ๋‹ค.

๊ฒŒ์‹œ๊ธ€, ์ƒํ’ˆ๋ฆฌ์ŠคํŠธ ๋“ฑ ์–ด๋–ค ๋ชฉ๋ก์˜ ์•„์ดํ…œ๋“ค์ด ์žˆ์„ ๋•Œ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฑด์„ ์„ ํƒํ•ด์„œ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ํ•œ ๊ฐœ์”ฉ์ด ์•„๋‹ˆ๊ณ  ์ฒดํฌ๋ฐ•์Šค๋กœ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฑด์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ๊ฒŒ์‹œํŒ์— ์—ฌ๋Ÿฌ ๊ธ€๋“ค์ด ์žˆ๊ณ  ํƒ€์ดํ‹€ ์˜†์— ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๋‘์—ˆ๋‹ค.
์‚ญ์ œํ•˜๊ณ  ์‹ถ์€ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๋ˆ„๋ฅด๊ณ  ์‚ญ์ œ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ฒดํฌ๋œ ๊ฒŒ์‹œ๊ธ€์ด ์‚ญ์ œ๋˜์•ผ ํ•œ๋‹ค.


๐Ÿ“Œ ํด๋ผ์ด์–ธํŠธ์ธก ์ฒ˜๋ฆฌ

์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์‚ญ์ œ๋ฒ„ํŠผ์ด ๋ˆŒ๋ ธ์„ ๋•Œ ์ฒดํฌ๋œ ์ฒดํฌ๋ฐ•์Šค์˜ ๊ฐ’์„ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค.
์ด ๋ถ€๋ถ„์€ Jquery๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ–ˆ๋‹ค.

์ผ๋‹จ ์ฒดํฌ๋ฐ•์Šค๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌํ˜„ํ–ˆ๋‹ค.

<td>
   <input class="form-check-input" type="checkbox" name="idxs" value="${data['idx']}">
</td>

์ฒดํฌ๋œ ์ฒดํฌ๋ฐ•์Šค์˜ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
name์ด idxs์ธ input ํƒœ๊ทธ์— ๋Œ€ํ•ด checked๋œ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด๋‹ค.
๊ฐ€์ ธ์˜จ ์ฒดํฌ๋ฐ•์Šค ๊ฐ์ฒด๋Š” value๋กœ idx๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น idx๊ฐ’์œผ๋กœ list๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

var check_list = []
$.each($("input[name='idxs']:checked"), function() {
  check_list.push($(this).val())
})

์ด์ œ ์ฒดํฌ๋œ ๊ฐ’๋“ค์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค.
์ฒ˜์Œ์— ๋“  ์ƒ๊ฐ์€ check_list๋ฅผ ํ•˜๋‚˜์”ฉ ์ˆœํšŒํ•˜๋ฉด์„œ ์‚ญ์ œํ•ด์•ผ ํ•˜๋‚˜? ๋ผ๋Š” ์ƒ๊ฐ์ด์˜€์ง€๋งŒ ๊ธˆ๋ฐฉ ์ ‘์—ˆ๋‹ค. ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์ด์ž”์•„ ....

๋ฆฌ์ŠคํŠธ๋ฅผ ํ†ต์งธ๋กœ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋ณด์ž.

$.ajax({
  url: `${url}?type=deleteAll&idxs=${check_list}`,
  method: "DELETE",
  success: function (res) {
    getList()
  },
})

์ด๋ ‡๊ฒŒ ์„œ๋ฒ„๋กœ ๋ณด๋ƒˆ์„ ๋•Œ ๋งŒ์•ฝ check_list์˜ ๊ฐ’์ด 1,2,3 ์ด๋ผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์š”์ฒญ uri๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
localhost:5000/api?type=deleteAll&idxs=1,2,3

์„œ๋ฒ„๊ฐ€ QueryString์œผ๋กœ ๋ฐ›๋Š” ๊ฐ’์€ String์ด๋‹ค.
idxs์˜ ๊ฐ’์œผ๋กœ ๋ฌธ์ž์—ด 1,2,3์ด ๋„˜์–ด์˜ค๋Š” ๊ฒƒ์ด๋‹ค.


๐Ÿ“Œ์„œ๋ฒ„์ธก ์ฒ˜๋ฆฌ

SQL in ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ์„œ๋ฒ„์ธก ์‚ญ์ œ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์ž.

[ idxs = '1,2,3' ]
delete from table where idx in (idxs);

์œ„์™€ ๊ฐ™์€ ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉด idx๊ฐ€ 1 ๋˜๋Š” 2 ๋˜๋Š” 3์ธ ํ–‰์ด ์‚ญ์ œ๋œ๋‹ค.
๋ฆฌ์ŠคํŠธ๋ฅผ ๋„˜๊ธฐ๋ฉด ,๋กœ ๊ตฌ๋ถ„๋˜์–ด ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋„˜์–ด์˜ค๋Š” QueryString์˜ ํŠน์ง•์„ ์ž˜ ์‚ฌ์šฉํ•œ ๋ถ€๋ถ„์ด๋‹ค.

ํŒŒ์ด์ฌ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ in ์ ˆ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

conn = db_ops()
cursor = conn.cursor()
result = cursor.execute("delete from bbs where idx in("+idxs+")")
conn.commit()            

๐Ÿ“Œ ๊ฒฐ๊ณผ

profile
์ข€ ๋” ์ฒœ์ฒœํžˆ ๊นŒ๋จน๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๐Ÿง

0๊ฐœ์˜ ๋Œ“๊ธ€