์ „์ฒด ๊ธ€

๐Ÿ“‚์ปดํ“จํ„ฐ๊ณผํ•™:CS

[์šด์˜์ฒด์ œ]1์žฅ-์ปดํ“จํ„ฐ ๋ฐ ์ •๋ณด๊ธฐ์ˆ ์˜ ์—ญ์‚ฌ

์ปดํ“จํ„ฐ์˜ ์„ ์‚ฌ์‹œ๋Œ€ ์ปดํ“จํ„ฐ์˜ ์ด๋ก ์ ์ธ ๊ธฐ์›์€ ์ˆ˜ํ•™๊ณผ ๋…ผ๋ฆฌํ•™์— ๊ธฐ์ดˆํ•œ๋‹ค. ์ปดํ“จํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋˜ ์‹œ๋Œ€์— ์ด๋ฏธ ์ปดํ“จํ„ฐ์— ๊ด€ํ•œ ์—ฐ๊ตฌ์™€ ๋†’์€ ์ˆ˜์ค€์˜ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์—ˆ๊ณ , ์ด๋Ÿฌํ•œ ์—ฐ๊ตฌ๋ฅผ ํ† ๋Œ€๋กœ ํ˜„์žฌ ์ปดํ“จํ„ฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋˜์—ˆ๋‹ค. ์ปดํ“จํ„ฐ๋Š” ๊ณ„์‚ฐ์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ๊ธฐ๊ณ„์‹ ์ปดํ“จํ„ฐ -> ์ „์ž์‹ ์ปดํ“จํ„ฐ ์ˆœ์„œ๋กœ ๋ฐœ์ „ํ–ˆ๋‹ค. ๊ทผ๋Œ€์  ์ปดํ“จํ„ฐ์˜ ์—ญ์‚ฌ ๐Ÿ’ป1์„ธ๋Œ€ ์ปดํ“จํ„ฐ 1์„ธ๋Œ€ ์ปดํ“จํ„ฐ๋Š” ์ง„๊ณต๊ด€ ๊ธฐ๋ฐ˜์˜ ์ปดํ“จํ„ฐ๋กœ์„œ, ๊ฑด๋ฌผ ํ•˜๋‚˜์˜ ๊ณต๊ฐ„์„ ๊ฐ€๋“ ์ฐจ์ง€ํ•  ๋งŒํผ ๋ถ€ํ”ผ๊ฐ€ ํฌ๊ณ  ๊ฐ€๊ฒฉ์ด ๋น„์ŒŒ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ๊ธฐ์ƒ์ฒญ์ด๋‚˜ ์€ํ–‰, ์ •๋ถ€๊ธฐ๊ด€ ๋“ฑ ํฐ ๊ณต๊ณต๊ธฐ๊ด€์—์„œ๋งŒ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๐Ÿ’ป2์„ธ๋Œ€ ์ปดํ“จํ„ฐ ๋ฏธ๊ตญ์˜ ๋ฒจ(Bell) ์—ฐ๊ตฌ์†Œ์—์„œ ํŠธ๋žœ์ง€์Šคํ„ฐ๋ฅผ ๋ฐœ๋ช…ํ•˜์˜€๊ณ , ์ด๋Ÿฐ ํŠธ๋žœ์ง€์Šคํ„ฐ๋ฅผ ํ™œ์šฉํ•ด ์ปดํ“จํ„ฐ(2์„ธ๋Œ€ ์ปดํ“จํ„ฐ)๋ฅผ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 2์„ธ๋Œ€ ์ปดํ“จํ„ฐ๋Š” 1์„ธ๋Œ€..

๐Ÿ“‚ํ”„๋กœ์ ํŠธ:Project

forURtravel

์—ฌํ–‰๊ฐ๋“ค์„ ์œ„ํ•œ ์›น์„œ๋น„์Šค ์‹œ์—ฐ์˜์ƒ ์ œ์ž‘๋™๊ธฐ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„๊ณผ ๊ฐ™์ด For your travel (๋‹น์‹ ์˜ ์—ฌํ–‰์„ ์œ„ํ•œ) ์›น ์„œ๋น„์Šค๋ฅผ ์ œ์ž‘ํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์—ฌํ–‰๊ฐ๋“ค์ด ์ €ํฌ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ๊ด€๊ด‘์ง€ ์ •๋ณด์™€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์˜ ์—ฌํ–‰ํ›„๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์„ฑ๊ณต์ ์ธ ์—ฌํ–‰๊ณ„ํš์„ ์™„์„ฑํ•˜๋Š”๋ฐ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๊ธฐ์ˆ  Vue.js vuex vuex-persistedstate axios vue-router vue-wordcloud jwt-decode SpringBoot myBatis jjwt spring-boot-starter-mail MySql ๊ตฌํ˜„๊ธฐ๋Šฅ ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ํŒ”๋กœ์šฐ, ํŒ”๋กœ์ž‰ ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ, ํšŒ์›๊ฐ€์ž… (jwt) ๊ฒŒ์‹œํŒ CRUD, ๋Œ“๊ธ€ CRUD ํšŒ์›์ •๋ณด ์ˆ˜์ • 1. ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ, ํšŒ์›๊ฐ€์ž… (jwt, vuex, v..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

[๋ฐฑ์ค€ 2108๋ฒˆ-ํŒŒ์ด์ฌ]ํ†ต๊ณ„ํ•™

๋ฐฑ์ค€ (BOJ) 11729๋ฒˆ https://www.acmicpc.net/problem/2108 ์‚ฌ์šฉ์–ธ์–ด : PYTHON 1.๋ฌธ์ œ ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ํ†ต๊ณ„ํ•™์—์„œ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•œ ์ผ์ด๋‹ค. ํ†ต๊ณ„ํ•™์—์„œ N๊ฐœ์˜ ์ˆ˜๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ๊ธฐ๋ณธ ํ†ต๊ณ„๊ฐ’์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ๋‹ค. ๋‹จ, N์€ ํ™€์ˆ˜๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž. ์‚ฐ์ˆ ํ‰๊ท  : N๊ฐœ์˜ ์ˆ˜๋“ค์˜ ํ•ฉ์„ N์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’ ์ค‘์•™๊ฐ’ : N๊ฐœ์˜ ์ˆ˜๋“ค์„ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ๋‚˜์—ดํ–ˆ์„ ๊ฒฝ์šฐ ๊ทธ ์ค‘์•™์— ์œ„์น˜ํ•˜๋Š” ๊ฐ’ ์ตœ๋นˆ๊ฐ’ : N๊ฐœ์˜ ์ˆ˜๋“ค ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฐ’ ๋ฒ”์œ„ : N๊ฐœ์˜ ์ˆ˜๋“ค ์ค‘ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์˜ ์ฐจ์ด N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋„ค ๊ฐ€์ง€ ๊ธฐ๋ณธ ํ†ต๊ณ„๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. 2.ํ’€์ด ์ตœ๋นˆ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋Š”๋ฐ, ํŒŒ์ด์ฌ์˜ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ Collection๋ชจ๋“ˆ์˜ Counter์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

[๋ฐฑ์ค€ 1181๋ฒˆ-ํŒŒ์ด์ฌ]๋‹จ์–ด ์ •๋ ฌ

๋ฐฑ์ค€ (BOJ) 11729๋ฒˆ https://www.acmicpc.net/problem/1181 ์‚ฌ์šฉ์–ธ์–ด : PYTHON 1.๋ฌธ์ œ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ N๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. 1.๊ธธ์ด๊ฐ€ ์งง์€ ๊ฒƒ๋ถ€ํ„ฐ 2.๊ธธ์ด๊ฐ€ ๊ฐ™์œผ๋ฉด ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜์—ฌ ๋‹จ์–ด๋“ค์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋‹จ, ๊ฐ™์€ ๋‹จ์–ด๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์ž…๋ ฅ๋œ ๊ฒฝ์šฐ์—๋Š” ํ•œ ๋ฒˆ์”ฉ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค. 2.ํ’€์ด ์ค‘๋ณต ์ œ๊ฑฐ๋Š” setํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐํ•˜๊ณ , ์ •๋ ฌ์€ sortํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌํ•˜์˜€๋‹ค. ์ด๋•Œ ์ƒ์œ„ ์กฐ๊ฑด A๊ณผ ํ•˜์œ„ ์กฐ๊ฑด B๊ฐ€ ์žˆ๋Š”๊ฒฝ์šฐ, B๋กœ ๋จผ์ € ์ •๋ ฌ ํ•œ ํ›„์— A๋กœ ์ •๋ ฌํ•ด์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„  A๊ฐ€ ๊ธธ์ด๊ฐ€ ์งง์€ ๊ฒƒ๋ถ€ํ„ฐ, B๊ฐ€ ๊ธธ์ด๊ฐ€ ๊ฐ™์œผ๋ฉด ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ๊ธธ์ด๊ฐ€ ์งง์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

[๋ฐฑ์ค€ 11729๋ฒˆ-ํŒŒ์ด์ฌ]ํ•˜๋…ธ์ด ํƒ‘ ์ด๋™ ์ˆœ์„œ

๋ฐฑ์ค€ (BOJ) 11729๋ฒˆ https://www.acmicpc.net/problem/11729 ์‚ฌ์šฉ์–ธ์–ด : PYTHON 1.๋ฌธ์ œ ์„ธ ๊ฐœ์˜ ์žฅ๋Œ€๊ฐ€ ์žˆ๊ณ  ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—๋Š” ๋ฐ˜๊ฒฝ์ด ์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ์˜ ์›ํŒ์ด ์Œ“์—ฌ ์žˆ๋‹ค. ๊ฐ ์›ํŒ์€ ๋ฐ˜๊ฒฝ์ด ํฐ ์ˆœ์„œ๋Œ€๋กœ ์Œ“์—ฌ์žˆ๋‹ค. ์ด์ œ ์ˆ˜๋„์Šน๋“ค์ด ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—์„œ ์„ธ ๋ฒˆ์งธ ์žฅ๋Œ€๋กœ ์˜ฎ๊ธฐ๋ ค ํ•œ๋‹ค. *ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์˜ ์›ํŒ๋งŒ์„ ๋‹ค๋ฅธ ํƒ‘์œผ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค. *์Œ“์•„ ๋†“์€ ์›ํŒ์€ ํ•ญ์ƒ ์œ„์˜ ๊ฒƒ์ด ์•„๋ž˜์˜ ๊ฒƒ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•œ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ด๋™ ์ˆœ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. ๋‹จ, ์ด๋™ ํšŸ์ˆ˜๋Š” ์ตœ์†Œ๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. 2.ํ’€์ด ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•œ๋‹ค. ์ด์ „ ํฌ์ŠคํŒ…์—์„œ ์„ค๋ช…ํ–ˆ๋˜ ์•”์‹œ์  ๋งค๊ฐœ๋ณ€์ˆ˜์ธ ๊ฐ ์žฅ๋Œ€๋ฅผ ๋ช…์‹œ์  ๋งค๊ฐœ๋ณ€์ˆ˜ start, via end๋กœ ..

๐Ÿ“‚๋ฐฑ์—”๋“œ : BackEnd

[Spring] @Autowired์˜ ์œ„์น˜์™€ Required์˜ต์…˜

@Autowired์˜ ์œ„์น˜ setter ์œ„ setterํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด์„œ injection์ด ์ˆ˜ํ–‰๋จ field ์œ„ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ injection์ด ์ˆ˜ํ–‰๋จ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์—†๋‹ค๋ฉด error๋ฐœ์ƒ(์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒ) overload ์ƒ์„ฑ์ž ์œ„ overload ์ƒ์„ฑ์ž์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฐ”์ธ๋”ฉ ์œ„์™€ ๊ฐ™์ดํ•˜๊ฒŒ ๋˜๋ฉด @Qualifier์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค overload์ƒ์„ฑ์ž ๊ฐ™์€ ๊ฒฝ์šฐ์— Exam์„ ๋‘ ๊ฐœ ์ด์ƒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ! ๐Ÿ‘‡ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ์ž์— @Qualifier์„ ์„ค์ •ํ•ด์„œ ํ•ด๊ฒฐ @Autowired์˜ required ์†์„ฑ exam2๋ผ๋Š” bean์ด ์—†๋Š”๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด๋‹ค. required=false๋กœ ์„ค์ •์„ ํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น bean์ด ์—†๋Š”..

๐Ÿ“‚๋ฐฑ์—”๋“œ : BackEnd

[Spring] <context : annotation-config> vs <context : component-scan>

์™€ ์˜ ์ฐจ์ด์  ์ด๋ฏธ ๋“ฑ๋ก๋œ bean์— ๋Œ€ํ•ด์„œ๋งŒ Annotation์„ ํ™œ์„ฑํ™” ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ xml์— bean์„ ๋ฐ˜๋“œ์‹œ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค. @Autowired์™€ @Qualifier ๋‘ ๊ฐ€์ง€๋งŒ ํ•ด๊ฒฐํ•œ๋‹ค. bean์˜ ๋“ฑ๋ก์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†๋‹ค. ์Šคํ”„๋ง์ด ์•Œ์•„์„œ bean์Šค์บ”์„ ํ†ตํ•ด Annotation์„ ํ•ด์„ํ•˜๊ณ  ํ™œ์„ฑํ™”ํ•œ๋‹ค. @Autowired์™€ @Qualifier๋ฟ๋งŒ ์•„๋‹ˆ๋ผ @Service, @Component, @Controller, @Repository ๋“ฑ ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ์Šค์บ”ํ•˜๊ณ  bean์„ ์ž‘์„ฑํ•œ๋‹ค. ๋‹ค๋งŒ base-package๋ฅผ ํ†ตํ•ด ์Šคํ”„๋ง์ด ์Šค์บ”ํ•  ํŒจํ‚ค์ง€ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด๋‘ฌ์•ผ ํ•œ๋‹ค.

๐Ÿ“‚๋ฐฑ์—”๋“œ : BackEnd

[Spring]@Autowired๋™์ž‘๋ฐฉ์‹๊ณผ @Qualifier

Spring @Autowired๋Š” ์ž๋ฃŒํ˜•์„ ๊ธฐ์ค€์œผ๋กœ ์ฐพ๋Š”๋‹ค Exam๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์˜ id="exam"์„ ์ง€์› ๋‹ค. ์‹คํ–‰ํ•˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. ๐Ÿ“Œ @Autowired๋Š” ์ž๋ฃŒํ˜•์„ ๊ธฐ์ค€์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค(๊ธฐ๋ณธ๋™์ž‘) ๋ณ€์ˆ˜๋ช…์„ ๊ธฐ์ค€์œผ๋กœ ์—ฐ๊ฒฐํ•˜๊ธฐ๋„ ํ•จ (๋ฐ‘์— ๋‚˜์˜ด) @Qualifier public class InlineExamConsole implements ExamConsole { private Exam exam; ... @Autowired @Qualifier("exam1") @Override public void setExam(Exam exam) { this.exam = exam; } } @Qualifier๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ exam1์„ Autowiredํ•˜๋„๋ก ์„ค์ •ํ•œ๋‹ค. exam๊ฐ์ฒด exam1๊ณผ exam2๊ฐ€ ๋‘ ๊ฐœ ์žˆ๋‹ค..

mc.thd
song