๐Ÿ’ป Programming

์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - requests- pandas ์ง€๋„์— ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ์—์„œ API๋กœ ๋ฐ›์•„์˜จ ์žฅ์• ์ธ ๊ตฌ์ธ ์‹ค์‹œ๊ฐ„ ํ˜„ํ™ฉ ๋ฐ์ดํ„ฐ์˜ comAddr(ํšŒ์‚ฌ์ฃผ์†Œ)๋ฅผ ์ง€๋„์— ๋งˆ์ปค๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์œ„๋„์™€ ๊ฒฝ๋„๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋„ค์ด๋ฒ„ Geocoding API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์†Œ๋ฅผ ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.  01. ๋„ค์ด๋ฒ„ Geocoding API ํ‚ค ๋ฐœ๊ธ‰๋ฐ›๊ธฐ๋จผ์ €, ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ Geocoding API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด API ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„์•ผ ํ•œ๋‹ค. 1. ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์— ์ ‘์†ํ•˜์—ฌ ๋กœ๊ทธ์ธํ•œ๋‹ค.2. ์ฝ˜์†”์—์„œ Application ์„œ๋น„์Šค์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋ก ๋ฉ”๋‰ด๋กœ ์ด๋™, ์ƒˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋“ฑ๋กํ•œ๊ณ  Geocoding API ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค. 3. ๋ฐœ๊ธ‰๋œ ํด๋ผ์ด์–ธํŠธ ID์™€ ํด๋ผ์ด์–ธํŠธ ์‹œ..
์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - csv- datetime ์ง€๋‚œ ๊ธ€์— ์ด์–ด์„œ ๋ฒˆ์—ญํ•œ ๋ฉ”์‹œ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์— ์‚ฝ์ž…ํ•ด์•ผ ํ•˜๋Š” ์ผ์ด ์ƒ๊ฒผ๋‹ค. ํ•˜๋‚˜์”ฉ ๋ณต์‚ฌํ•ด์„œ insert๋ฌธ์„ ์ž‘์„ฑํ•˜๊ธฐ์—” ๋„ˆ๋ฌด ๋งŽ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ํ•œ ๋ฒˆ์— ์ฟผ๋ฆฌ๋ฌธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ–ˆ๋‹ค.  Python์„ ์‚ฌ์šฉํ•˜์—ฌ CSV ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก csv ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด CSV ํŒŒ์ผ์„ ์ฝ๊ณ , ๊ฐ ํ–‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ MySQL INSERT ์ฟผ๋ฆฌ๋ฌธ์„ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ดค๋‹ค. en.csv ํŒŒ์ผ (CSV ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ •ํ•œ๋‹ค)์ฒซ ๋ฒˆ์งธ ์—ด: ํ•œ๊ตญ์–ด ๋ฉ”์‹œ์ง€ (MSG)๋‘ ๋ฒˆ์งธ ์—ด: ๋ฉ”์‹œ์ง€ ์ฝ”๋“œ (MSG_CD)์„ธ ๋ฒˆ์งธ ์—ด: ์˜์–ด๋กœ ๋ฒˆ์—ญ๋œ ๋ฉ”์‹œ์ง€ (MSG_EN)๋‚˜๋จธ์ง€ ์—ด์€ ๋ฌด์‹œ๋œ๋‹ค.01. Python ์ฝ”๋“œ..
01. ๋ฌธ์ œ2์ผ๋™์•ˆ ์ฐพ์•„๋ณด๋˜ ๋ฒ„๊ทธ… ํšŒ์‚ฌ ํ”„๋กœ์ ํŠธ์—์„œ react-datepicker๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹ฌ๋ ฅ์„ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‹ฌ๋ ฅ์„ ๋‹ซ์œผ๋ ค๊ณ  ๋ฐฐ๊ฒฝ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, ๋‹ฌ๋ ฅ์ด ๋‹ซํžˆ๊ณ  ์ด๋ฒคํŠธ๊ฐ€ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ. ํด๋ฆญํ•œ ์œ„์น˜์— ๋ฒ„ํŠผ์ด๋‚˜ ์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ๋‹ฌ๋ฆฐ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋˜์—ˆ๋‹ค. ๋ฆฌ์•กํŠธ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ์‹ค์Šตํ•˜๊ณ  ์žˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฐ์Šต์žฅ ์‚ผ์•„ ๋‹ฌ๋ ฅ์„ ๋‹ค์‹œ ๋งŒ๋“ค์–ด๋ดค๋‹ค. ๋‹ฌ๋ ฅ ์™ธ๋ถ€์— ์ฃผ๋ฌธํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.  ProductItem์— ์žˆ๋Š” ๋ฒ„ํŠผ ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. 02. ํ•ด๊ฒฐ๊ณผ์ •DatePicker์— ์žˆ๋Š” onClickOutside์— ๋ฒ„๋ธ”๋ง์„ ์ค‘๋‹จํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์คฌ๋‹ค. -> (X) ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Œ {/* {isOpen && } */..
์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - pandas- googletrans ๋ชจ๋ฐ”์ผ ํ™”๋ฉด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ•œ๊ตญ์–ด ๋ฉ”์„ธ์ง€๋ฅผ ์˜์–ด๋กœ ๋ฒˆ์—ญํ•˜์—ฌ ๋“ฑ๋กํ•ด์•ผํ•˜๋Š” ์—…๋ฌด๋ฅผ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฉ”์„ธ์ง€๋Š” ์•ฝ 300๊ฐœ ์ •๋„๋กœ ํ•˜๋‚˜์”ฉ ๋ฒˆ์—ญํ•˜๊ธฐ์—๋Š” ์‹œ๊ฐ„๋„ ์˜ค๋ž˜ ๊ฑธ๋ฆด๊ฒƒ ๊ฐ™๊ณ  ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.pandas์™€ googletrans ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ csv ํŒŒ์ผ์„ ์ฝ๊ณ ํ•œ๊ตญ์–ด๋ฅผ ์˜๋ฌธ์œผ๋กœ ๋ฒˆ์—ญํ•˜์—ฌ ๋‹ค์‹œ csv๋กœ ์ €์žฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค.  01. googletrans๋ž€?googletrans๋Š” Google ๋ฒˆ์—ญ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์–ธ์–ด ๊ฐ„์˜ ๋ฒˆ์—ญ์„ ์ œ๊ณตํ•˜๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ํ…์ŠคํŠธ๋ฅผ ๋‹ค์–‘ํ•œ ์–ธ์–ด๋กœ ๋ฒˆ์—ญํ•  ์ˆ˜ ์žˆ๋‹ค. googletrans๋Š” ๊ฐ„๋‹จํ•œ ๋ฒˆ์—ญ ์ž‘์—…์— ์œ ์šฉํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ์†์‰ฝ๊ฒŒ ๋‹ค๊ตญ์–ด ์ง€์›์„ ๊ตฌํ˜„ํ•  ..
๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ๊ฐ€์žฅ ํ”ํ•œ ๋ฐฉ๋ฒ•์€ ์›นํŒฉ(Webpack)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ๊ทธ ์™ธ์—๋„ Create React App(CRA), Parcel ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.  ๊ฐ ๋ฐฉ๋ฒ•์€ ๊ฐ์ž์˜ ์žฅ๋‹จ์ ์ด ์žˆ์œผ๋ฉฐ, ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์›นํŒฉ์„ ์„ ํƒํ•œ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ ์„ธ๋ฐ€ํ•œ ์ œ์–ด์™€ ์œ ์—ฐ์„ฑ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์›นํŒฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋ฐ˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด Create React App์ด๋‚˜ Parcel์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 01. ์›นํŒฉ(Webpack)์„ ์‚ฌ์šฉํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์„ฑ์žฅ์ ์œ ์—ฐ์„ฑ: ์›นํŒฉ์€ ๋กœ๋”์™€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์ž์›์„ ๋ฒˆ๋“ค๋งํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ์ปค์Šคํ„ฐ๋งˆ์ด์ง•: ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ์„ธ๋ฐ€ํ•œ ์„ค์ •์ด ๊ฐ€๋Šฅ..
[๋ฆฌ์•กํŠธ2๋ถ€]๊ณ ๊ธ‰์ฃผ์ œ์™€ํ›…์„ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค.[๋ฆฌ์•กํŠธ 1๋ถ€] ๋งŒ๋“ค๊ณ  ๋น„๊ตํ•˜๋ฉฐ ํ•™์Šตํ•˜๋Š” ๋ฆฌ์•กํŠธ (React) ๊ฐ•์˜ ๋“ฃ๊ณ  ์‹ค์Šตํ•œ ๊ฒƒ์€ github์— ์žˆ์Šต๋‹ˆ๋‹ค. 01. 1๋ถ€ ์ˆ˜์—… ์š”์•ฝ1๋ถ€ ์ˆ˜์—…์—์„œ๋Š” ์‡ผํ•‘๋ชฐ ๊ฒ€์ƒ‰ ํ™”๋ฉด์„ ๋งŒ๋“ค๋ฉด์„œ ๋ฆฌ์•กํŠธ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์ตํ˜”๋‹ค.  ์ค€๋น„ํŽธ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์ด ๋ฐ”๋‹๋ผ js๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœํ–ˆ๋‹ค.  ์†Œ๊ฐœํŽธ๋ฆฌ์•กํ‹ฐ๋ธŒ์™€ ๊ฐ€์ƒ๋” ๊ฐœ๋…์„ ์ตํ˜”๋‹ค. react, react-dom, babel, jsx์˜ ์—ญํ• ์„ ์ดํ•ดํ–ˆ๋‹ค.  ์‚ฌ์šฉํŽธ 1๋ฆฌ์•กํŠธ๋กœ ์–ดํ”Œ๋ฆฌ์บ์ด์…˜์„ ๋‹ค์‹œ ๋งŒ๋“ค์—ˆ๋‹ค.์ปดํฌ๋„ŒํŠธ, ์ƒํƒœ, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์กฐ๊ฑด๋ถ€/๋ฆฌ์ŠคํŠธ ๋ Œ๋”๋ง, ์ปดํฌ๋„ŒํŠธ ์ƒ๋ช…์ฃผ๊ธฐ ๋“ฑ ๋ฆฌ์•กํŠธ์˜ ์ฃผ์š” ๊ฐœ๋…์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์‹ค์Šตํ–ˆ๋‹ค.  ์‚ฌ์šฉํŽธ 2์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์‹œ ์„ค๊ณ„ํ–ˆ๋‹ค. ์—ญํ• ์— ๋”ฐ๋ผ ์ž‘์€ ์ปดํฌ๋„ŒํŠธ ์—ฌ๋Ÿฌ ๊ฐœ..
์กฐ์ธ(Join) - ๊ด€๊ณ„ํ˜• DB์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ, ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ - ๋‘๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์„œ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ถ”์ถœ - ๋งŽ์ด ํ•  ์ˆ˜๋ก ์„ฑ๋Šฅ ์ €ํ•˜ ์กฐ์ธ ์‹œ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ ๋ ˆ๋ฒจ์˜ ๋ณ€ํ™” ์ดํ•ด - 1:M ์กฐ์ธ - ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์€ M ์ง‘ํ•ฉ์˜ ๋ ˆ๋ฒจ์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ ์‹ค์Šต -- ์ง์› ์ •๋ณด์™€ ์ง์›์ด ์†ํ•œ ๋ถ€์„œ๋ช…์„ ๊ฐ€์ ธ์˜ค๊ธฐ SELECT A.*, B.DNAME FROM HR.EMP A JOIN HR.DEPT B ON A.DEPTNO = B.DEPTNO; -- job์ด SALESMAN์ธ ์ง์›์ •๋ณด์™€ ์ง์›์ด ์†ํ•œ ๋ถ€์„œ๋ช…์„ ๊ฐ€์ ธ์˜ค๊ธฐ. SELECT A.*, B.DNAME FROM HR.EMP A JOIN HR.DEPT B ON A.DEPTNO = B.DEPTNO WHERE A.JOB = 'SALESMAN'; -- ๋ถ€์„œ๋ช… SALES์™€ RESEA..
01. ๋ฐฑ์—…ํ•˜๊ธฐ ๋ฐฑ์—…ํ•˜๊ณ  ์‹ถ์€ Database ์šฐํด๋ฆญ > ๋„๊ตฌ > ๋ฐฑ์—… ํด๋ฆญ dump ๋œจ๊ณ  ์‹ถ์€ ํ…Œ์ด๋ธ” ์„ ํƒ ์ €์žฅํ•  ํด๋” ์œ„์น˜ ์„ ํƒ ๋ฐ Start ํด๋ฆญ 02. ๋ณต๊ตฌํ•˜๊ธฐ ๋ฐฑ์—…ํ•  Database ์šฐํด๋ฆญ > ๋„๊ตฌ > ๋ณต์› ํด๋ฆญ backup ํŒŒ์ผ ์—…๋กœ๋“œ ํ›„ start ํด๋ฆญ ๋ณต๊ตฌ ์™„๋ฃŒ
najiwon
'๐Ÿ’ป Programming' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก