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()