728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1364

[js] capitalizeFirstLetter

capitalizeFirstLetter๋Š” ๊ฝค ์ž์ฃผ ์“ฐ์ด๋Š” ์œ ํ‹ธ์ด์—์š”.๐Ÿ”น ์ฃผ๋กœ ์“ฐ์ด๋Š” ๊ฒฝ์šฐUI ํ‘œ์‹œ์šฉ ํ…์ŠคํŠธ ๊ฐ€๊ณต์‚ฌ์šฉ์ž ์ด๋ฆ„, ์ฃผ์†Œ, ์ƒํ’ˆ๋ช… ๋“ฑ์„ ํ‘œ์‹œํ•  ๋•Œ ์ฒซ ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ๋ณด์ด๊ฒŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œconsole.log("apple".capitalizeFirstLetter()); // "Apple"๋ฌธ์žฅ ํฌ๋งทํŒ…์„ค๋ช…, ์ œ๋ชฉ, ๋ฉ”์‹œ์ง€ ๋“ฑ์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™”DB๋‚˜ API์—์„œ ๋‚ด๋ ค์˜ค๋Š” ๋ฌธ์ž์—ด์ด ์ „๋ถ€ ์†Œ๋ฌธ์ž/๋Œ€๋ฌธ์ž์ผ ๋•Œ, ํ™”๋ฉด์—๋Š” "๋ณด๊ธฐ ์ข‹๊ฒŒ" ์ฒซ ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐ

Front/JS & jQuery 2025.09.04

[js] String.prototype

๐Ÿ”น String.prototype ์ด๋ž€?JavaScript์—์„œ ๋ชจ๋“  ๋ฌธ์ž์—ด ๊ฐ์ฒด(String)๊ฐ€ ์ƒ์†๋ฐ›๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.์ฆ‰, "hello" ๊ฐ™์€ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด๋„ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” new String("hello") ๊ฐ์ฒด์—์„œ ํŒŒ์ƒ๋˜๋ฉฐ, ์ด๋•Œ String.prototype์— ์ •์˜๋œ ๋ฉ”์„œ๋“œ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”. ๐Ÿ”น ์ฃผ์š” ํŠน์ง•๋ชจ๋“  ๋ฌธ์ž์—ด์ด ๊ณต์œ String.prototype์— ์ •์˜๋œ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด ๊ฐ์ฒด์—์„œ ์ƒ์†๋ฉ๋‹ˆ๋‹ค.์ฆ‰, ํ•œ ๋ฒˆ ํ™•์žฅํ•˜๋ฉด ์ „์—ญ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.๋‚ด์žฅ ๋ฉ”์„œ๋“œ ํฌํ•จ์˜ˆ:charAt()slice()toUpperCase()toLowerCase()trim()includes()๋“ฑ๋“ฑ ๋ชจ๋‘ String.prototype์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.์‚ฌ์šฉ์ž ์ •์˜ ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€ ๊ฐ€๋ŠฅString.pr..

Front/JS & jQuery 2025.09.03

[js] pignoseCalendar ๋ฐ”์ธ๋”ฉ

๐Ÿ‘‰ pignoseCalendar ๊ธฐ๋ณธ ๋™์ž‘pignoseCalendar๋Š” ๋‹จ์ˆœํžˆ ์ธํ’‹์—๋งŒ ๋‹ฌ๋ฆฌ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ทธ ์ธํ’‹๊ณผ ๊ฐ™์€ input-group ์˜์—ญ ํด๋ฆญ๋„ ํŠธ๋ฆฌ๊ฑฐ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.๊ณต์‹ ๋ฌธ์„œ์—์„œ๋„ input-group๊ณผ ๊ฐ™์ด ์“ฐ๋ฉด ์•„์ด์ฝ˜/๋ฒ„ํŠผ ํด๋ฆญ ์‹œ์—๋„ focus ์ด๋ฒคํŠธ๊ฐ€ ์ธํ’‹์— ์ „๋‹ฌ๋˜๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.(.input-group-append .input-group-text ํด๋ฆญ → ๋‚ด๋ถ€์ ์œผ๋กœ input.focus() ๋ฐœ์ƒ → ๋‹ฌ๋ ฅ์ด ๋œธ)์ฆ‰, ์•„์ด์ฝ˜์„ ๋ˆŒ๋ €์„ ๋•Œ๋„ ์‹ค์ œ๋กœ๋Š” ์ธํ’‹์„ focus() ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— pignoseCalendar๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฑฐ์˜ˆ์š”.โœ… ์ •๋ฆฌํ•˜๋ฉด:pignoseCalendar๋Š” input์˜ focus ์ด๋ฒคํŠธ๋ฅผ ํ›„ํ‚นํ•ด์„œ ๋‹ฌ๋ ฅ์„ ๋„์›€.Bootstrap input-group-append๋Š” ..

Front/JS & jQuery 2025.09.01

[js/JAVA] switch ์ฐจ์ด

JavaScript์™€ Java์˜ switch๋Š” ๋น„์Šทํ•ด ๋ณด์ด์ง€๋งŒ, ๋™์ž‘ ๋ฐฉ์‹๊ณผ ํƒ€์ž… ์ฒ˜๋ฆฌ์—์„œ ๊ฝค ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 1๏ธโƒฃ ํƒ€์ž… ๋น„๊ต ๋ฐฉ์‹ํŠน์ง•JavaJavaScriptํƒ€์ž… ์—„๊ฒฉ์„ฑ์—„๊ฒฉํ•จ (String, int ๋“ฑ ์ •ํ™•ํžˆ ๋งž์•„์•ผ ํ•จ)๋А์Šจํ•จ (== ๋Œ€์‹  === ์“ฐ์ง€ ์•Š์œผ๋ฉด ํƒ€์ž… ๋ณ€ํ™˜ ๊ฐ€๋Šฅ)์˜ˆ์‹œswitch(1)์—์„œ case "1":๋Š” ๋งค์นญ ์•ˆ๋จswitch(1)์—์„œ case "1":๋„ ๋™์ž‘ ๊ฐ€๋Šฅ (๋А์Šจ ๋น„๊ต)Java: ํƒ€์ž…์ด ์•ˆ ๋งž์œผ๋ฉด ์ ˆ๋Œ€ ๋งค์นญ ์•ˆ ๋จ.JS: ํƒ€์ž…์ด ๋งž์ง€ ์•Š์•„๋„ ๋А์Šจ ๋น„๊ต์— ๋”ฐ๋ผ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Œ (== ์‚ฌ์šฉ ์‹œ).2๏ธโƒฃ break ๋ฌธ ์ฒ˜๋ฆฌJava:switch(x) { case 1: System.out.println("1"); case 2: System.out.println("2");..

Front/JS & jQuery 2025.08.27

[js] PDF ํŒŒ์ผ(blob ๋ฐ์ดํ„ฐ)์„ ์ƒˆ์ฐฝ์—์„œ ๋ณด์—ฌ์ค„ ๋•Œ, URL ์ˆ˜์ •ํ•˜๊ธฐ

์˜ˆ๋ฅผ ๋“ค์–ด blob:http://localhost:8080/3c1a5b1e-2b0f-4f90-b1a0-0c5f9b7d5a1f ์ด๋Ÿฐ์‹์œผ๋กœ ์ด์ƒํ•œ ์ฃผ์†Œ๋กœ ์ƒ์„ฑ๋˜๋Š”๋ฐ,์ž„์‹œ ๊ฐ€์งœ ์ฃผ์†Œ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋‹ˆ๊นŒ.๊ทธ๊ฒŒ์‹ซ์œผ๋ฉด, ํ•˜๋‚˜ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€ ๋‚ด๊ฐ€ url์„ ๋งŒ๋“ค์–ด์„œ ํŽ˜์ด์ง€๋ฅผ ์—ฐ๋‹ค์Œ์— ifame์œผ๋กœ blob๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉด ๋œ๋‹ค. https://imswengineer.tistory.com/1376 { const blobUrl = URL.createObjectURL(blob); window.open(blobUrl, '_blank');}, ๋™์ž‘๋ธŒ๋ผ์šฐ์ €์—์„œ ์ƒˆ ํƒญ์„ ์—ด๊ณ , blob URL์„ ๊ทธ๋Œ€๋กœ ๊ทธ ํƒญ์—์„œ ํ‘œ์‹œ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ PDF ๋ทฐ" data-og-host="imswengineer.tistory.com" data-og-sour..

Front/JS & jQuery 2025.08.26

[js] blob ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹ (์ƒˆ์ฐฝ์—ด๊ธฐ, ํ˜„์žฌํŽ˜์ด์ง€์— ๋ณด์—ฌ์ฃผ๊ธฐ)

1๏ธโƒฃ window.open(blobUrl, '_blank') ๋ฐฉ์‹success: (blob) => { const blobUrl = URL.createObjectURL(blob); window.open(blobUrl, '_blank');}, ๋™์ž‘๋ธŒ๋ผ์šฐ์ €์—์„œ ์ƒˆ ํƒญ์„ ์—ด๊ณ , blob URL์„ ๊ทธ๋Œ€๋กœ ๊ทธ ํƒญ์—์„œ ํ‘œ์‹œ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ PDF ๋ทฐ์–ด ์‚ฌ์šฉํŠน์ง•ํŽ˜์ด์ง€ ๋‚ด์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ  ์ƒˆ ์ฐฝ/ํƒญ๋งŒ ์—ด๋ฆผUI/๋ ˆ์ด์•„์›ƒ ์ œ์–ด ๋ถˆ๊ฐ€๋ธŒ๋ผ์šฐ์ € ํƒญ ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— blob URL ํ‘œ์‹œ (blob://…)์‚ฌ์šฉ ์‹œ์ ๋‹จ์ˆœํžˆ PDF๋ฅผ ์ƒˆ ์ฐฝ/ํƒญ์—์„œ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ2๏ธโƒฃ ๋ฐฉ์‹success: (blob) => { const blobUrl = URL.createObjectURL(blob); const $ifr..

Front/JS & jQuery 2025.08.25

[Error][Mybatis] Expected one result (or null) to be returned by selectOne(), but found: 145

์ด ์—๋Ÿฌ๋Š” MyBatis์˜ selectOne() ์‚ฌ์šฉ ์‹œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์ „ํ˜•์ ์ธ ๋ฌธ์ œ์˜ˆ์š”. selectOne()์„ ํ˜ธ์ถœํ–ˆ๋Š”๋ฐ ์‹ค์ œ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ€ 145๊ฑด์ด ๋‚˜์™”๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.selectOne()์€ 0๊ฑด(=null) ๋˜๋Š” ์ •ํ™•ํžˆ 1๊ฑด๋งŒ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์—ฌ๋Ÿฌ ๊ฑด์ด ๋ฐ˜ํ™˜๋˜๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง‘๋‹ˆ๋‹ค. ์›์ธSQL ์กฐ๊ฑด์ด ๋„ˆ๋ฌด ๋А์Šจํ•ด์„œ ๊ฒฐ๊ณผ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฑด ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ(์˜ˆ: WHERE ์กฐ๊ฑด ๋ˆ„๋ฝ, PK๊ฐ€ ์•„๋‹Œ ์นผ๋Ÿผ์œผ๋กœ ๊ฒ€์ƒ‰ ๋“ฑ)์ž˜๋ชป๋œ ๋งคํ•‘์œผ๋กœ ์‹ค์ œ๋กœ๋Š” N๊ฑด์ธ๋ฐ 1๊ฑด์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ  ํ˜ธ์ถœํ•œ ๊ฒฝ์šฐ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์˜ค๋ฅ˜๋กœ ์• ์ดˆ์— ์—ฌ๋Ÿฌ ๊ฑด์ด ๋‚˜์˜ค๋Š” ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  selectOne()์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ\ ๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š” parameter ์กฐ๊ฑด์„ ๋А์Šจํ•˜๊ฒŒ ํ•˜์—ฌ (null๋งŒ ์ฒดํฌ)ํ•˜๋‚˜์˜ ์กฐํšŒ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™€์•ผํ•˜๋Š”๋ฐ, ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ๋‚˜์™€๋ฒ„๋ ค์„œ ๋ฐœ์ƒ.

Error 2025.08.20

[DB][SQL] INNER JOIN ์‹œ ON์ ˆ๊ณผ WHERE

1. ๊ธฐ๋ณธ INNER JOIN SELECT *FROM CUSTOMER CJOIN ORDER O ON C.CUST_ID = O.CUST_IDWHERE O.STATUS = 'PAID';ON ์ ˆ: C.CUST_ID = O.CUST_ID → ๊ณ ๊ฐ๊ณผ ์ฃผ๋ฌธ์„ ์—ฐ๊ฒฐํ•˜๋Š” “์กฐ์ธ ์กฐ๊ฑด”WHERE ์ ˆ: O.STATUS = 'PAID' → ์ฃผ๋ฌธ ์ค‘ ๊ฒฐ์ œ ์™„๋ฃŒ๋œ ๊ฒƒ๋งŒ ํ•„ํ„ฐ๋ง๐Ÿ‘‰ ์ฝ๋Š” ์‚ฌ๋žŒ์ด “์•„, ๊ณ ๊ฐ๊ณผ ์ฃผ๋ฌธ์„ ID๋กœ ์—ฐ๊ฒฐํ•œ ํ›„, ๊ฒฐ์ œ๋œ ์ฃผ๋ฌธ๋งŒ ๊ฐ€์ ธ์˜ค๋Š”๊ตฌ๋‚˜”๋ผ๊ณ  ๋ฐ”๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Œ.2. ์กฐ๊ฑด์„ ON ์ ˆ์— ํฌํ•จํ•œ ๊ฒฝ์šฐ SELECT *FROM CUSTOMER CJOIN ORDER O ON C.CUST_ID = O.CUST_ID AND O.STATUS = 'PAID';INNER JOIN์ด๋ผ๋ฉด ๊ฒฐ๊ณผ๋Š” ์œ„์™€ ๋™์ผํ•จ.๋‹ค๋งŒ **“์กฐ..

DB 2025.08.19

[CSS] flex์—์„œ ์ค„๋ฐ”

๊ธฐ๋ณธ ๋™์ž‘flex-wrap: nowrap; (๊ธฐ๋ณธ๊ฐ’)→ ์•„์ดํ…œ๋“ค์ด ํ•œ ์ค„์—๋งŒ ๋ฐฐ์น˜๋˜๊ณ , ๋„˜์น˜๋ฉด ๊ทธ๋Œ€๋กœ ์‚์ ธ๋‚˜์˜ด.flex-wrap: wrap;→ ๋ถ€๋ชจ์˜ ๊ฐ€๋กœ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋ฉด ๋‹ค์Œ ์ค„๋กœ ์ž๋™ ์ค„๋ฐ”๊ฟˆ.flex-wrap: wrap-reverse;→ ์ค„๋ฐ”๊ฟˆ์€ ๋˜์ง€๋งŒ, ์ƒˆ ์ค„์ด ์œ„์ชฝ์œผ๋กœ ์Œ“์ž„.

Front/CSS 2025.08.14
728x90
๋ฐ˜์‘ํ˜•