profile
๐Ÿ‘ฉโ€๐Ÿš€ No worries! Just record

[MyBatis] ๋™์  ์ฟผ๋ฆฌ <trim>

๋™์  SQL์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ์ ‘๋‘์–ด(prefix), ์ ‘๋ฏธ์–ด(suffix)๋ฅผ ๋ถ™์—ฌ์ฃผ๊ฑฐ๋‚˜ ์ง€์šฐ๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.๋ณดํ†ต &lt;if> ํƒœ๊ทธ๋ฅผ ์ผ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค.trim ์€ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  &lt;if>, &lt;choose> ์™€ ๊ฐ™์€ ํƒœ๊ทธ๋“ค์„ ๋‚ดํฌํ•˜์—ฌ

1์ผ ์ „
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[React] ๋ฆฌ์•กํŠธ Hook์ด๋ž€?

Hooks ๋Š” ๋ฆฌ์•กํŠธ V16.8์— ์ƒˆ๋กœ ๋„์ž…๋œ ๊ธฐ๋Šฅ์ด๋‹ค. ํ•จ์ˆ˜ ํ˜•ํƒœ์˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ช‡๊ฐ€์ง€ ๊ธฐ์ˆ ์„ Hook์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” useState, ๋ Œ๋”๋ง ์งํ›„ ์ž‘์—…์„ ์„ค์ •ํ•˜๋Š” useEffect ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๐Ÿค”

2022๋…„ 6์›” 20์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Spring Security] PasswordEncoder, BCryptPasswordEncoder - ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”

๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด Spring Security๋ฅผ ๋‹ค๋ฃจ๋‹ค๊ฐ€ ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค PasswordEncoder์™€ ๊ตฌํ˜„์ฒด์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์•˜๋‹ค.Spring Security์—์„œ ์ง€์›ํ•˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™” ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. ๋‹จ๋ฐฉํ–ฅ ์•”ํ˜ธํ™”๋กœ ์ง„ํ–‰๋˜๋ฉฐ ์ธํ„ฐํŽ˜

2022๋…„ 5์›” 20์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

RTSP ํ”„๋กœํ† ์ฝœ

IPTV๋“ฑ์˜ ๋ณด๊ธ‰์„ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ ์ดฌ์˜๋œ ์˜์ƒ์„ TV๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ณ , IP ์นด๋ฉ”๋ผ(CCTV)์˜ ๊ฒฝ์šฐ ๋ชจ๋ฐ”์ผ๋กœ ์นด๋ฉ”๋ผ ์˜์ƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹ค์‹œ๊ฐ„ ์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ œ์–ดํ•˜๋Š” ํ”„๋กœํ† ์ฝœ ์ค‘ RTSP์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.๋™์˜์ƒ์ด๋‚˜ ์Œ์•…์„ ๋‹ค์šด๋ฐ›์€ ๋’ค ์žฌ์ƒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ

2022๋…„ 4์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[CSS] @keyframes

CSS3 animation ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ element์— ์ ์šฉ๋˜๋Š” CSS ์Šคํƒ€์ผ์„ ๋‹ค๋ฅธ CSS ์Šคํƒ€์ผ๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ „ํ™˜์‹œ์ผœ์ค€๋‹ค.์• ๋‹ˆ๋ฉ”์ด์…˜์€ CSS ์Šคํƒ€์ผ๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์ค‘๊ฐ„ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” @keyframes์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ด ํ‚ค ํ”„๋ ˆ์ž„์—๋Š” ์š”์†Œ์— ์ ์šฉ๋  CSS ์Šคํƒ€

2022๋…„ 4์›” 27์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[JavaScript] filter()

Array๋ฅผ ๋‹ค๋ฃจ๋Š” ์ค‘ ์—ฌ๋Ÿฌ ๋ฉ”์†Œ๋“œ๋ฅผ ์ ‘ํ–ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๊ทธ ์ค‘ filter๋ผ๋Š” ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณธ๋‹ค.filter()๋Š” ์กฐ๊ฑด์„ ์ฃผ๊ณ  callbackํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์กฐ๊ฑด์ด ์ฐธ์ธ ์š”์†Œ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.๊ธฐ์กด ๋ฐฐ์—ด์€ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์œผ๋ฉด์„œ ์š”์†Œ๋“ค์„ ์ˆœํšŒํ•˜

2022๋…„ 3์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[JavaScript] replace ๋ฐ ์ •๊ทœ์‹

๋ณ€์ˆ˜.replace(โ€์ฐพ์„ ๋ฌธ์ž์—ดโ€, โ€œ๋ณ€๊ฒฝํ•  ๋ฌธ์ž์—ดโ€);๋ฌธ์ž์—ด ๋ณ€์ˆ˜์˜ ํŠน์ • ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋ชจ๋“  ๊ณต๋ฐฑ์„ ์—†์•จ ๋•Œ ์‚ฌ์šฉ..replace()๋Š” ์ฐพ์„ ๋ฌธ์ž์—ด 1๊ฐœ๋งŒ ์น˜ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์˜ .replaceAll()์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ •๊ทœ์‹์„ ์‚ฌ์šฉ.Exampleโœจ ์ •๊ทœํ‘œ

2022๋…„ 2์›” 22์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Linux] find - ํŒŒ์ผ, ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒ€์ƒ‰

์ง€์ •๋œ ๋ฌธ์ž์—ด ํŒจํ„ด์˜ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.\-name ์˜ต์…˜์„ ํ†ตํ•ด ํŒŒ์ผ์„ ์ด๋ฆ„์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.Windows์—์„œ ํœด์ง€ํ†ต์˜ ์˜๋ฏธ์™€ ์œ ์‚ฌ./dev/null์€ NULL ์žฅ์น˜ํŒŒ์ผ์ด๋‹ค. /dev/null ํŒŒ์ผ์€ ํ•ญ์ƒ ๋น„์–ด์žˆ์œผ๋ฉฐ, ์—ฌ๊ธฐ์— ์ „์†ก๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ฒ„

2022๋…„ 1์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[JavaScript] Promise.all

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด.์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๋ฏธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ!๋ชจ๋“  ํ”„๋กœ๋ฏธ์Šค๊ฐ€ ์ดํ–‰๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ๋‹ด์€ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ.๋ณต์ˆ˜์˜ URL์— ๋™์‹œ์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ๋ชจ๋“  ์š”์ฒญ์˜ ์‘๋‹ต์ด ์™„๋ฃŒ๋˜๊ธธ ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ๋ฏธ

2022๋…„ 1์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Spring] @RequestBody @RequestParam @ModelAttribute

Client์—์„œ ๋ฐ›์€ ์š”์ฒญ์„ Controller์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ž์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์ด๋‹ค. \- @RequestBody \- @RequestParam \- @ModelAttribute1๊ฐœ์˜ HTTP ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„

2022๋…„ 1์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

Apache Log4j ์ทจ์•ฝ์  ์ •๋ฆฌ

์ง€๋‚œ ์ฃผ๋ง Apache Log4j2 ๋ณด์•ˆ ์ด์Šˆ(CVE-2021-44228)๊ฐ€ ํ„ฐ์กŒ๋‹ค. Log4j2๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜ ๋กœ๊น…์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๋Š” ์šฉ๋„์ด๊ณ , ์ด๋ฒˆ ์ด์Šˆ๋Š” ์ง€๋‚œ๋‹ฌ ์•Œ๋ฆฌ๋ฐ”๋ฐ” ํด๋ผ์šฐ๋“œ ๋ณด์•ˆํŒ€์—์„œ ๋ฐœ๊ฒฌํ•˜์—ฌ ๋””์Šค์ฝ”๋“œ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ด์Šˆ๊ฐ€ ํฌ๊ฒŒ ๋ฒˆ์ง€๊ฒŒ

2021๋…„ 12์›” 16์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[JavaScript] ๋‚ด์žฅํ•จ์ˆ˜(2) - decodeURI, decodeURIComponent

&lt;span style="color:encodeURI()๋กœ ์ธ์ฝ”๋”ฉํ•œ ๋ฌธ์ž์—ด์„ ๋””์ฝ”๋”ฉํ•˜๋Š” ํ•จ์ˆ˜https&#x3A;//developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/encodeURIhttps

2021๋…„ 12์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[JavaScript] Datatables - Dom ์„ค์ •

DataTables๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”๋กœ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.DataTables์˜ dom์„ ์ด์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ” ๋ ˆ์ด์•„์›ƒ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.| '&lt;" } );} );

2021๋…„ 12์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[JavaScript] ๋‚ด์žฅํ•จ์ˆ˜(1) - encodeURI, encodeURIComponent

console.log(encodeURI(urlTest));//๊ฒฐ๊ณผ: https&#x3A;//www.velog.io/%ED%85%8C%EC%8A%A4%ED%8A%B8console.log(encodeURIComponent(urlTest));//๊ฒฐ๊ณผ: https%3A%2F%

2021๋…„ 12์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Java] contains, indexOf, matches

Java ๋ฌธ์ž์—ด String ํด๋ž˜์Šค์—์„œ ํŠน์ • ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” 3๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.&lt;span style="color:&lt;span style="color:\`\`\`javapublic class StringContains

2021๋…„ 12์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[Spring] ํ”„๋กœ์ ํŠธ Maven Build ์—๋Ÿฌ

https&#x3A;//zorba91.tistory.com/22http&#x3A;//1004lucifer.blogspot.com/2019/11/maven-failed-to-execute-goal.html

2021๋…„ 12์›” 2์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Git] ์ถ”์  branch

์—ฌ๋Ÿฌ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ•œ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋˜ ๋ธŒ๋žœ์น˜๋กœ checkoutํ•œ ๋’ค, $ git status๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์™”๋‹ค.ํ•ด๋‹น Error๋Š” ํ˜„์žฌ local branch๊ฐ€ ์ด๋ฏธ ์‚ญ์ œ๋œ ์›๊ฒฉ branch(origin/master)์— ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ ํ•ด๋‹น

2021๋…„ 11์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Git] ์›๊ฒฉ/๋กœ์ปฌ ์ €์žฅ์†Œ ๊ด€๋ฆฌ

branch list ์กฐํšŒ remote ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•œ๋‹ค. local๊ณผ remote ์ €์žฅ์†Œ์˜ ๋ชจ๋“  ๋ธŒ๋žœ์น˜๋ฅผ ์กฐํšŒํ•œ๋‹ค. remote/local branch update remote ๋ธŒ๋žœ์น˜์˜ ์œ ํšจํ•˜์ง€ ์•Š์€ ์ฐธ์กฐ๋ฅผ ์ง€์šด๋‹ค. local ์ €์žฅ์†Œ๋ฅผ ์ตœ์‹  ์ •๋ณด๋กœ ๊ฐฑ์‹ (r

2021๋…„ 11์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[Javascript] SheetJS: Excel ๋‹ค์šด๋กœ๋“œ

HTML์˜ ํ…Œ์ด๋ธ”์„ ์—‘์…€ ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.์ผํ•˜๋ฉด์„œ DataTables ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด UI์˜ ํ…Œ์ด๋ธ”์„ ์—‘์…€ ๋‹ค์šด๋กœ๋“œํ•ด๋ณด์•˜๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” SheetJS๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์•˜๋‹ค.Javascript๋กœ ํด๋ผ์ด์–ธํŠธ ๋‹จ์—์„œ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ผ

2021๋…„ 11์›” 24์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

HTTP Status Code/HTTP ์ƒํƒœ ์ฝ”๋“œ

HTTP Status Code๋ž€? ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ(request)๋ฅผ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ์‘๋‹ต(response)๋ฅผ ๋ณด๋‚ธ๋‹ค. ๊ทธ์— ๋Œ€ํ•œ ์‘๋‹ต์€ ํฌ๊ฒŒ 5๊ฐœ์˜ ์‘๋‹ต ์ฝ”๋“œ๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค. ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‘๋‹ต (Informational response) ์„ฑ๊ณต์ ์ธ

2021๋…„ 11์›” 1์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€