๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

2019/048

[Spring] ์Šคํ”„๋ง ์—‘์…€ POI ์Šคํƒ€์ผ, ํฐํŠธ ์ ์šฉ(POI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 2ํŽธ) :: ๋งˆ์ด์ž๋ชฝ POI ์…€ ์Šคํƒ€์ผ, ํฐํŠธ ์ ์šฉ POI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ 1ํŽธ์—์„œ ์—‘์…€ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๋‹ค์šด๋กœ๋“œ ๊ทธ๋ฆฌ๊ณ  ์—…๋กœ๋“œํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋‹ค. [๊ฐœ๋ฐœ/Spring] - [Spring] ์Šคํ”„๋ง ์—‘์…€ํŒŒ์ผ ์—…๋กœ๋“œ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋ณธ(POI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 1ํŽธ) :: ๋งˆ์ด์ž๋ชฝ ์Šคํƒ€์ผ ๋ฐ ํฐํŠธ์ ์šฉ์€ ์œ„ ๊ธ€์—์„œ ์ด์–ด์ง€๋Š” ๋‚ด์šฉ์ด๋ฏ€๋กœ ์•„์ง ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ํ•ด๋‹น ๊ธ€์„ ํ™•์ธํ•˜์—ฌ ์‹ค์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค. ์ด๋ฒˆ๊ธ€์—์„œ๋Š” ์—‘์…€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋ฐ›์„๋•Œ ์Šคํƒ€์ผ๋ง๊ณผ ํฐํŠธ๋ฅผ ์„ค์ •ํ•ด์„œ ๋ฐ›์„์ˆ˜ ์žˆ๊ฒŒ POI๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹ค์Šต์„ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณผ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น ์‹ค์Šต์€ POI๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 4.0.0 ๋ฒ„์ „์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ ์ด๋ฒˆ ์‹ค์Šต์„ ํ†ตํ•ด ๋ณ‘ํ•ฉ, ์…€ ์Šคํƒ€์ผ๋ง, ํฐํŠธ๋ฅผ ์ˆ˜์ •ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์—‘์…€ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋ณผ.. 2019. 4. 28.
[Spring] ์Šคํ”„๋ง ์—‘์…€ํŒŒ์ผ ์—…๋กœ๋“œ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋ณธ(POI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 1ํŽธ) :: ๋งˆ์ด์ž๋ชฝ ์—‘์…€ํŒŒ์ผ ์—…๋กœ๋“œ ๋‹ค์šด๋กœ๋“œ ์–ด๋Š ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋˜๊ฐ„์— ์›น์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์—‘์…€ํŒŒ์ผ ๊ธฐ๋Šฅ์ด ๋น ์งˆ ์ˆ˜ ์—†๋‹ค. DB๋ฐ์ดํ„ฐ๋‚˜ ์–ด๋– ํ•œ ๋กœ์ง์— ์˜ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ์—‘์…€ํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋ฐ›๊ฑฐ๋‚˜ ์—‘์…€๋กœ ์ •๋ฆฌํ•œ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•ด์„œ API์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋˜์ง€๊ฑฐ๋‚˜ DB์— ์ €์žฅํ•˜๋Š” ์ž‘์—…์€ ๊ผญ ํ•„์š”ํ•˜๋‹ค. ์—‘์…€๋งŒ ์ž˜ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”์—†๋‹ค๋Š” ๋ง์ด ์žˆ๋“ฏ์ด, ์›น์ƒ์—์„œ ์›ํ™œํ•˜๊ฒŒ ์—‘์…€ํŒŒ์ผ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ๊ผญ ํ•„์š”ํ•˜๋‹ค. ์ด์ „์— ์˜ฌ๋ฆฐ ํŒŒ์ด์ฌ์œผ๋กœ ์—‘์…€ํŒŒ์ผ์„ ๋‹ค๋กœ๋Š” ๋ฒ•(https://myjamong.tistory.com/51) ๋ณด๋‹ค๋Š” ์กฐ๊ธˆ ๋” ๋ณต์žกํ•œ ๊ตฌ์กฐ๋กœ ๋˜์–ด ์žˆ์ง€๋งŒ, ์•„์ง์€ ์ž๋ฐ” ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ณต ์—…์ฒด๋“ค์ด ๋งŽ์•„ ๊ผญ ์•Œ์•„๋†”์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์Šคํ”„๋ง์„ ํ™œ์šฉํ•œ ์—‘์…€ ํŒŒ์ผ ์—…๋กœ๋“œ ๋‹ค์šด๋กœ๋“œ.. 2019. 4. 23.
[Docker] ๋„์ปค๋ฅผ ์ด์šฉํ•œ ๋งฅOS ์˜ค๋ผํดDB ์„ค์น˜ :: ๋งˆ์ด์ž๋ชฝ ๋งฅOS ์˜ค๋ผํด ์„ค์น˜ ํ˜„์žฌ ๋งฅOS์—์„œ๋Š” ์˜ค๋ผํดDB ์„ค์น˜๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋งŽ์€ ๋ธ”๋กœ๊ทธ๋‚˜ ์ฑ…์—์„œ ๋Œ€์•ˆ์œผ๋กœ ๋„์ปค์—๋‹ค ์˜ค๋ผํดDB ์„œ๋ฒ„๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•œ๋‹ค. ๋งฅOS์—์„œ ์˜ค๋ผํด์„ ์„ค์น˜ํ•˜๋Š”๋ฐ ์ž˜ ์•ˆ๋œ๋‹ค๋Š” ๋ฌธ์˜๊ฐ€ ๋“ค์–ด์™€ ๊ธ€์„ ์ž‘์„ฑํ•œ๋‹ค. ์˜ค๋ผํดDB๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์•ž์„œ ์•„์ง ๋„์ปค๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. https://myjamong.tistory.com/105 [Docker] ๋งฅOS ๋„์ปค ์„ค์น˜ :: ๋งˆ์ด์ž๋ชฝ Docker ๋„์ปค ๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ถ”์ƒํ™”ํ•˜์—ฌ ๋‹ค๋Ÿ‰ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์‰ฝ๊ณ  ํŽธํ•˜๊ฒŒ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด... ๊ฐœ๋ฐœํ• ๋•Œ ํ™˜๊ฒฝ์„ค์ •ํ•˜๋Š๋ผ ์†Œ๋น„ํ–ˆ๋˜ ์‹œ๊ฐ„์„ ์ค„์—ฌ์ฃผ๊ณ , ์˜ค๋กœ์ง€ ๊ฐœ๋ฐœ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜.. myjamong.tistory.com ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋„์ปค๊ฐ€ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ .. 2019. 4. 21.
[Docker] ๋งฅOS ๋„์ปค ์„ค์น˜ :: ๋งˆ์ด์ž๋ชฝ Docker ๋„์ปค ๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ถ”์ƒํ™”ํ•˜์—ฌ ๋‹ค๋Ÿ‰ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์‰ฝ๊ณ  ํŽธํ•˜๊ฒŒ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด... ๊ฐœ๋ฐœํ• ๋•Œ ํ™˜๊ฒฝ์„ค์ •ํ•˜๋Š๋ผ ์†Œ๋น„ํ–ˆ๋˜ ์‹œ๊ฐ„์„ ์ค„์—ฌ์ฃผ๊ณ , ์˜ค๋กœ์ง€ ๊ฐœ๋ฐœ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก, ํ™˜๊ฒฝ์„ ์ปจํ…Œ์ด๋„ˆํ™”ํ•˜์—ฌ ๋ณต์ œํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ๋งฅOS ๋„์ปค ์„ค์น˜ ๋„์ปค ํ™ˆํŽ˜์ด์ง€์—์„œ stable๋กœ ์„ค์น˜ ํ•œ๋‹ค. ์„ค์น˜์‹œ ๋„์ปค ๊ณ„์ •์ด ํ•„์š”ํ•˜๋‹ˆ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ์ฃผ์ž. https://hub.docker.com/editions/community/docker-ce-desktop-mac Docker Desktop for Mac - Docker Hub Docker Desktop for Mac Docker Desktop for Mac is an easy-to-install desktop app fo.. 2019. 4. 21.
[Spring] background Thread ๋™์  ์ž‘์—… ์‹คํ–‰์‹œํ‚ค๊ธฐ ThreadPoolTaskExecutor :: ๋งˆ์ด์ž๋ชฝ Spring ๋™์  ์ž‘์—… ์‹คํ–‰ ThreadPoolTaskExecutor ์ƒ๊ฐ๋ณด๋‹ค ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ• ๋•Œ Runnable Thread๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€ ์•Š๋‹ค. ํŠนํžˆ ์›น๊ฐœ๋ฐœ์ด๋‚˜ ์„œ๋ฒ„๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด, ๊ฒŒ์ž„์ฒ˜๋Ÿผ ๋™์ ์ธ ๊ธฐ๋Šฅ๋ณด๋‹ค ์ •์ ์ธ ๊ธฐ๋Šฅ์ด ๋งŽ์ด ์š”๊ตฌ๋œ๋‹ค. ํ•„์ž๋Š” ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ค‘, API์™€ ์ง€์†์ ์ธ ์—ฐ๊ฒฐ์„ ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ์ž‘์—…๋“ค์„ ๋™์‹œ์— ํ• ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ฝ”๋“œ์ƒ์œผ๋กœ๋งŒ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์—์„œ Spring์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ThreadPoolTaskExecutor๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๋ฐ๋ชจ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„๋•Œ ์ž‘์—…์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ง„ํ–‰์ด ๋˜๊ณ  ๋ฒ„ํŠผ์€ disable์‹œํ‚ค๋Š” ์ž‘์—…์„ ํ•ด๋ณผ๊ฒƒ์ด๋‹ค. ํ”„๋กœ๊ทธ๋ ˆ์Šค๋ฐ”๋‚˜ ์ž‘์—…์˜ ์ง„ํ–‰์„ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์—ˆ์œผ๋‚˜... ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŒ…๋ชจ๋“ˆ์ด๋ผ ์ตœ๋Œ€ํ•œ ๊ฐ€๋ณ๊ฒŒ ์ƒˆ๋กœ๊ณ ์นจํ–ˆ์„๋•Œ ๋งˆ๋‹ค ํ™•์ธ์ด ๊ฐ€๋Š”ํ•˜๋„๋ก ๊ตฌ.. 2019. 4. 14.
[Django] ์žฅ๊ณ  MySQL ์—ฐ๋™ ์ฒ˜๋ฆฌ :: ๋งˆ์ด์ž๋ชฝ ์žฅ๊ณ  MySQL ์—ฐ๋™ Default๋กœ sqlite๋ฅผ MySQL๋กœ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•œ๋‹ค. ์‚ฌ์ „์— MySQL์€ ๋‹น์—ฐํžˆ ์„ค์น˜๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผํ•˜๊ณ  ๊ฐ€์ƒํ™˜๊ฒฝ์— ์ ‘์†ํ•˜์—ฌ pip๋ฅผ ํ†ตํ•ด mysqlcilent๋ฅผ ๋ฐ›๋Š”๋‹ค. pip install mysqlclient settings.py ์ดํ›„ settings.py์˜ DB์„ค์ • ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์€ django_test ์ด๋ฆ„์˜ db์— jamong์œ ์ €๊ฐ€ ์ ‘๊ทผํ•œ๋‹ค๋Š” ๋‚ด์šฉ์ด๋‹ค. # Database # https://docs.djangoproject.com/en/2.1/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_test', 'USE.. 2019. 4. 7.
[Django] ํ”„๋กœ์ ํŠธ setting.py ์„ค์ • :: ๋งˆ์ด์ž๋ชฝ ์žฅ๊ณ  setting.py ์žฅ๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ชจ๋“  ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…์€ setting.py ํŒŒ์ผ์—์„œ ์„ค์ •์„ ํ•œ๋‹ค. setting.py ํŒŒ์ผ์—์„œ ๋กœ๊ทธ ์„ค์ •, APP ๋“ฑ๋ก, Templates ์„ค์ •, DB์„ค์ •, ๋‹ค๊ตญ์–ด ๋ฐ ์ง€์—ญ ์‹œ๊ฐ„ ์„ค์ •, ์ •์ ํŒŒ์ผ ์„ค์ • ๋“ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๋กœ๊ทธ์„ค์ • ๊ธฐ๋ณธ์€ True๋กœ ๋˜์–ด์žˆ์–ด ๊ฐœ๋ฐœ์‹œ ๋กœ๊ทธ์„ ๋‚จ๊ธฐ๊ฒŒ ๋œ๋‹ค. ์šด์˜์‹œ ๊ผญ False๋กœ ๋ณ€๊ฒฝ์„ ํ•ด์ค€๋‹ค. # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True APP ๋“ฑ๋ก ์ƒ์„ฑํ•œ APP๋“ค์„ ๋ชจ๋“œ ๋“ฑ๋กํ•ด์ค€๋‹ค. ์ด์ „ ๊ธ€์—์„œ first_app๋ผ๋Š” APP๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์—ˆ๋Š”๋ฐ, ํ•ด๋‹น APP ๋“ฑ๋ก์„ INSTALLED_APPS๋ถ€๋ถ„์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. # Application definit.. 2019. 4. 7.
[Django] ์žฅ๊ณ  ์•„ํ†ฐ(Atom)์—๋””ํ„ฐ ์‚ฌ์šฉํ•œ ์„ธํŒ… :: ๋งˆ์ด์ž๋ชฝ Django ์žฅ๊ณ ๋Š” Python์–ธ์–ด๋ฅผ ์ด์šฉํ•œ ๊ฒฝ๋Ÿ‰ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๊ฐ€์žฅ ๋Œ€์ค‘์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” Spring MVC ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฒฝ๋Ÿ‰ํ™” ์‹œ์ผœ MTVํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ๋‹ค. ๋”์ด์ƒ ์„ค๋ช…์ด ํ•„์š” ์—†๊ณ  ๊ทธ๋ƒฅ ๊ฒฝ๋Ÿ‰ํ™”๋˜์–ด ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์„ ํš๊ธฐ์ ์œผ๋กœ ๋‹จ์ถ•์‹œ์ผœ์ค€๋‹ค. -Model : ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๋ถ€๋ถ„์œผ๋กœ MVC์—์„œ์˜ M์˜ ์—ญํ• ๊ณผ ๊ฐ™๋‹ค. -Template : MVCํŒจํ„ด์˜ View ์—ญํ• ๋กœ ์‚ฌ์šฉ์ž์—์„œ ๋ณด์—ฌ์ง€๋Š” ๋ถ€๋ถ„์ด๋‹ค. -View : MVCํŒจํ„ด์˜ View์™€๋Š” ๋‹ค๋ฅด๊ฒŒ url ํŒŒ์‹ฑ์—ญํ• ์„ ํ•ด์ฃผ๊ณ  Model๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋ฐ›์•„์™€ Template์œผ๋กœ ๋ฟŒ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. Django ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ 3๊ฐ€์ง€ ~ 4๊ฐ€์ง€ ์„ธํŒ…์ด ์‚ฌ์ „์— ํ•„์š”ํ•˜๋‹ค. -Python ์„ค์น˜ (์•„๋‚˜์ฝ˜๋‹ค : https://myjamong.tistor.. 2019. 4. 7.