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

Lang

(40)
โ˜• Java * [log4j2] ๋กœ๊ทธ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ๋‚˜์˜จ๋‹ค.. log4jdbc.log4j2 ๋ญ‰ํƒฑ์ด๋กœ ๋‚˜์˜จ๋‹ค..! log4j2 ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ณ„๋‹ค๋ฅธ ์„ค์ •์„ ์•ˆ ํ–ˆ๋‹ค๋ฉด ์ •๋ง ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ๋กœ๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์•„๋‹ˆ๋‹ค ๋‚œ ์„ค์ •์„ ํ–ˆ๋‹ค! ๊ฐ class ๋ณ„๋กœ level ์„ ์„ค์ •ํ•ด์คฌ๋Š”์ง€ ์™œ ์ธ์ง€ ์•ˆ ๋จน๋Š”๋‹ค๋ฉด...? ์•„๋งˆ ์ง€๊ธˆ ๋‹น์‹ ์˜ ๋กœ๊ทธ๊ฐ€ jdbc.auit / jdbc.conenction ๋“ฑ๊ณผ ๊ฐ™์ด class ๊ฐ€ ๋ถ„๋ฆฌ ๋˜์–ด ๋‚˜์˜ค์ง€ ์•Š๊ณ  log4jdbc.log4j2 ๋กœ ๋‚˜์˜ค๊ณ  ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค. ์ด๋Ÿฐ ์‚ฌ๋žŒ๋“ค์€ ์•„๋ž˜ ๋‚ด์šฉ์„ ๋”ฐ๋ผํ•˜์ž. log4jdbc.log4j2.properties ํŒŒ์ผ์— ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator Tip. ์ฟผ๋ฆฌ๋ฌธ์ด ์ถœ๋ ฅ๋  ๋•Œ sql ๋ฌธ์ด ๊ธด ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ์ค„์— ๊ฑธ์ณ ํ‘œ์‹œ๋˜๋ฉด์„œ ๋กœ๊ทธ๊ฐ€ ์–ด์ง€๋Ÿฌ..
โ˜• Java * [Mybatis] Update ๋ฌธ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•˜๊ณ  ์‹ถ๋‹ค..!! ( feat. Oracle ) Insert ๋ฌธ์€ ๋ฉ€ํ‹ฐ๋กœ ๊ฐ€๋Šฅํ•˜๋ฉด์„œ ์™œ!! Update ๋Š” ์•ˆํ•ด์ฃผ๋Š”๊ฐ€!! ์‚ฌ์‹ค ์ง€๊ธˆ๊นŒ์ง€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์กฐ๊ฑด์— ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ฐ’์„ ๋„ฃ์–ด์„œ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—†์—ˆ๋‹ค. ์˜๋„์น˜ ์•Š๊ฒŒ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์กฐ๊ฑด์˜ ๊ฐ’์„ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ์œผ๋‹ˆ,, ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. foreach ๋กœ ๋ฐ˜๋ณต์„ ํ•˜๋ฉด ๋˜๋Š”๋ฐ ์กฐ๊ฑด๋„ ๋งคํ•‘ํ•ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ,, ๊ทธ๋ƒฅ ๊ฐ์‹ธ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋‹ค. ORA-01795: maximum number of expressions in a list is 1000 ์—์ž‰..์ฏช! ์‹ค์ œ ์ถœ๋ ฅ๋˜๋Š” query ๋ฌธ๋„ ์ด๋ ‡๊ฒŒ ์‹คํ–‰ํ–ˆ๋‹ค๊ฐ„ ์•„๋ฌด๊ฒƒ๋„ ์•ˆ๋˜๊ฒ ๊ตฐ! ํ•˜๋Š” ์—ฐ๊ฒฐ๋œ ์ฟผ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค. ๋ฉ€ํ‹ฐ ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ์˜ต์…˜(?) ์ด ๋ณ„๋„๋กœ ์กด์žฌํ•˜๊ณ  ์…‹ํŒ…ํ•˜๋ฉด ๋˜์ง€๋งŒ ๋‚˜์˜ ๊ฒฝ์šฐ๋Š”,, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ์— ์ตœ์ดˆ 1๋ฒˆ ์…‹ํŒ…์„ ์œ„..
โ˜• Java * StatusConsoleListener Error while converting string [false] to type [class org.apache.logging.log4j.Level]. Using default value [null] StatusConsoleListener Error while converting string [false] to type [class org.apache.logging.log4j.Level]. Using default value [null] ์™œ ๊ทธ๋Ÿฌ๋Š”๊ฑธ๊นŒ ๊ฐœ๋ฐœ์€ ํ•ญ์ƒ ์ƒˆ๋กœ์›€์˜ ์—ฐ์†.. log4j ์„ค์ •์„ ํ•ญ์ƒ .xml ํŒŒ์ผ๋กœ ํ•˜๋‹ค๊ฐ€ ์ด๋ฒˆ์— ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒจ .yml ํŒŒ์ผ๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์ž๊พธ ์ด๋Ÿฐ ์š”์ƒํ•œ ์—๋Ÿฌ.. ์•„๋‹ˆ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค..! ์Šค์Šค๋กœ ์ž˜ ์ฒ˜๋ฆฌํ•ด์„œ ์‹คํ–‰์ด ์•ˆ๋˜์ง„ ์•Š์•˜์œผ๋‚˜ ๋„ˆ๋ฌด ์‹ ๊ฒฝ์“ฐ์—ฌ์„œ ๐Ÿ˜ซ ์ˆ˜์ •ํ–ˆ๋‹ค...! ๋ฌธ์ œ(?)์˜ ์›์ธ์€ ๋ฐ”๋กœ .yml ํŒŒ์ผ์˜ boolean value ์ธ์‹์— ์žˆ์—ˆ๋‹ค. ๋กœ๊ทธ์—์„œ ๋ณด๊ณ  ์‹ถ์ง€ ์•Š์€ ๊ฒƒ๋“ค์˜ level ์„ OFF ๋กœ ์„ค์ •ํ–ˆ๋Š”๋ฐ.. ์ด๊ฒŒ ๋ฌธ์ œ์˜€๋‹ค. - name: jdbc...
JS * ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”์— ๋Œ€ํ•˜์—ฌ... JS ๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ณต๋ถ€ํ•œ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์ด ํฌ์ŠคํŒ…์ด ์–ด์ด ์—†์„์ง€๋„ ๋ชจ๋ฅด์ง€๋งŒ... ๋งˆ์Œ์˜ ์ค€๋น„ ์—†์ด ๋ฐ”๋กœ ํˆฌ์ž…๋œ ํ˜„์žฌ์˜ ๋‚˜๋กœ์จ๋Š” ์ถฉ๊ฒฉ์ ์ธ ๋ถ€๋ถ„์„ ๋ฐœ๊ฒฌํ•˜์—ฌ ๊ธฐ๋กํ•œ๋‹ค... ๋‚˜์ค‘์— ๋‚ด๊ฐ€ ์ด ํฌ์ŠคํŒ…์„ ๋‹ค์‹œ ๋ณด๊ฒŒ ๋œ๋‹ค๋ฉด.. ์›ƒ๊ณ ์žˆ์ง€ ์•Š์„๊นŒ.. ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ–ˆ์„ ๋•Œ, ์ธ์ž์— ๊ฐ’์ด ์žˆ๋‹ค๋ฉด(=์ธ์ž๊ฐ€ ์ดˆ๊ธฐํ™” ๋๋‹ค๋ฉด) ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋ฅผ ์„ .์–ธ.๋งŒ ํ–ˆ์„ ๋•Œ๋Š” ์ธ์ž๋กœ ์ „๋‹ฌ ๋œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ(?)ํ•œ๋‹ค. ์–ด๋–ป๊ฒŒ ์„ค๋ช…ํ•ด์•ผ ํ• ์ง€๋„ ๋ง‰๋ง‰ํ•œ๋ฐ.. ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด ์•„! ํ• ํ…Œ๋‹ˆ ์˜ˆ์‹œ๋ฌธ์„ ๋ณด์ž ์•„๋ž˜์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์Œ์„ ํ˜ธ์ถœํ•ด๋ณด์ž. function test(a, b, c){ var a, b, c = true; console.log(`It's test ${a} / ${b} / ${c}`); } test(1); test(1, 2)..
JS * Mapbox ์‚ฌ์šฉํ•˜๊ธฐ ( ๊ธฐ์ดˆ์‚ฌ์šฉ๋ฒ•๋งŒ! ) ์ค‘๊ตญ์—์„œ๋Š” google map ์‚ฌ์šฉ์ด ์ž˜ ์•ˆ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ๋‚œ ์•ˆ ์จ๋ด์„œ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ.. ์•ˆ๋œ ๋‹จ๋‹ค... ๊ทธ๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ Mapbox ! ์‚ฌ์‹ค ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์›Œ๋‚™ ๋ฌธ์„œ๊ฐ€ ์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ์–ด์„œ ํ™ˆํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธ ํ•˜๋Š”๊ฒŒ ๋น ๋ฅด๋‹ค. ๊ธฐ๋ณธ ๋ช‡๊ฐ€์ง€์˜ ๋‚ด์šฉ๋งŒ ์ •๋ฆฌํ•ด ๋‘”๋‹ค! Map ๐Ÿ”— Create map object and connect element by id. Clear default bottom-right info button if attributionControl option set false. Marker ๐Ÿ”— Draw marker on the map. const marker = new mapboxgl.Marker({ color: "#FFFFFF" }).setLngLat([-74.5, 40]) .addTo(map..
JS * JSON ๋ฐ์ดํ„ฐ KEY๋งŒ UpperCase ํ•˜๊ธฐ ! ( ์‘์šฉํ•˜๋ฉด LowerCase ๋„ ๊ฐ€๋Šฅ! ) JSON ๋ฐ์ดํ„ฐ์˜ KEY ๋„ค์ด๋ฐ์ด ์ •๋ง.. ๋„ˆ๋ฌด ์˜ˆ์˜๋”๋ผ.. ใ…Ž ์ฐพ์•„๋ณด๋˜ ์ค‘ ์ข‹์€ ์†Œ์Šค๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๊ณ  ์ผ๋ถ€ ์ˆ˜์ •ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ค์น˜ํ• ๋งŒํ•œ ๋‚ด์šฉ๋„ ์•„๋‹Œ๊ฑฐ ๊ฐ™๊ตฌ.. ์ฝ”๋“œ์— ๋”ฑ! ํ•˜๊ณ  ๋ชจ๋“  ๋‚ด์šฉ์ด ๋ณด์ด๋‹ˆ ์ƒ์„ธ๋‚ด์šฉ์€ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค :) key๋ฅผ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์œผ์‹œ๋ฉด toUpperCase() ๋ถ€๋ถ„์„ toLowerCase()๋กœ ๋ฐ”๊พธ๋ฉด ๋˜๊ฒ ์ ธ!! function jsonKeyUpperCase(object){ if(Array.isArray(object)){ // ๋ฆฌ์ŠคํŠธ ํ˜•์‹์œผ๋กœ ๋„˜์–ด์˜ค๋Š” ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ object.forEach((item, index) =>{ object[index] = Object.fromEntries(Object.entries(item).map(([key, value]) => [k..
JQuery * .off() ๊ฐ™์€ ์ด๋ฒคํŠธ ์ค‘์— ํŠน์ • ์ด๋ฒคํŠธ๋งŒ ๋Œ ์ˆ˜๋Š” ์—†์„๊นŒ? ์ •๋‹ต์ด ๊ถ๊ธˆํ•  ํ…Œ๋‹ˆ ๊ฐ€.๋Šฅ.ํ•˜.๋‹ค ๐Ÿฅณ ๐Ÿฅณ ๐Ÿฅณ Don't shout, just clap!! .off()๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. .off('์ด๋ฒคํŠธ๋ช…')๋Š” ํ•ด๋‹น ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. .off('์ด๋ฒคํŠธ๋ช…', ํ•ธ๋“ค๋Ÿฌ)๋Š” ํ•ด๋‹น ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๋“  ์–ด๋–ค ๊ฒƒ์„ ์‚ญ์ œํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ต๋ช…ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ ํŠน์ • ์ด๋ฒคํŠธ ์ œ๊ฑฐ๋ฅผ ํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค. ์•„๋‹ˆ ์—†๋‹ค๊ณ  ๋ด์•ผํ•˜๋‚˜. ๋Œ€์ถฉ ์„ค๋ช…์€ ์ €๋ ‡๊ฒŒ ๋‚˜์™€์žˆ๊ณ  ๊ทธ๋ ‡๋‹ค๋ฉด ํŠน์ • ์ด๋ฒคํŠธ๋Š” ์–ด๋–ป๊ฒŒ ๋„๋Š” ๊ฑธ๊นŒ? NameSpace ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค! ์ด๋ฒคํŠธ๋ฅผ ์ง€์ •ํ•  ๋•Œ .on('์ด๋ฒคํŠธ๋ช….๋„ค์ž„์ŠคํŽ˜์ด์Šค', ~); ์š”๋ ‡๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฉด! .off('์ด๋ฒคํŠธ๋ช….๋„ค์ž„์ŠคํŽ˜์ด์Šค'); ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์ด๋ฒคํŠธ๋งŒ ๋Œ ์ˆ˜ ์žˆ๋‹ค! ์ฝ”๋“œ๋กœ ๋ฐ”๋กœ ๋ณด๊ธฐ! Se..
JQuery * .one() ์ด๋ฒคํŠธ ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ! ( feat .on() .off() ) ์ตœ์ดˆ 1ํšŒ๋งŒ ์ด๋ฒคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ดํ›„ ์ด๋ฒคํŠธ ๋™์ž‘์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ .on()๊ณผ ๋™์ผํ•˜๋ฉฐ ์ƒ์„ธ ๋‚ด์šฉ์€ ์•„๋ž˜ Documentation์„ ์ฐธ๊ณ ํ•˜์„ธ์š”! .one() | jQuery API Documentation Description: Attach a handler to an event for the elements. The handler is executed at most once per element per event type. The .one() method is identical to .on(), except that the handler for a given element and event type is unbound after its first invo api.jquery.com ์ด์ œ ๋ช‡..
โ˜• Java * [Mybatis] foreach ๊ตฌ๋ฌธ์—์„œ List<Map<>> ์‚ฌ์šฉ๋ฒ• ํด๋ผ์ด์–ธํŠธ์—์„œ JSON ํ˜•์‹์œผ๋กœ ํ”ผ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋‚ ์•„์™”์„ ๋•Œ ๊ตฌ์„ฑ์ด List ํ˜•์‹์ธ ๊ฒฝ์šฐ ์ž๋ฐ”์—์„œ ์‚ฌ์šฉํ•˜๋“ฏ์ด ๊ตฌ์„ฑ์„ ํ•˜๋ฉด ๋œ๋‹ค. ํ˜น์‹œ๋‚˜ ์‹ถ์–ด ํด๋ผ์ด์–ธํŠธ์—์„œ ๋„˜๊ฒจ์ฃผ๋Š” JSON ๊ณผ ์„œ๋ฒ„์˜ Controller ๋ถ€๋ถ„๋„ ํ•จ๊ป˜ ์ž‘์„ฑํ•ด ๋†“์•˜๋‹ค! ํ•ด๋‹น ๋ถ€๋ถ„์ด ํ•„์š” ์—†๋Š” ์‚ฌ๋žŒ์€ 3๋ฒˆ XML์—์„œ! ๋ถ€๋ถ„์„ ์ฐธ๊ณ ํ•˜์ž! ํ•ด๋ณด์ž 1. JSON ๊ตฌ์„ฑ๋ฐฉ๋ฒ• "body": { "list": [ { "ํ•ญ๋ชฉ": "๊ฐ’" } ] } 2. Controller ์—์„œ ๋ฐ›์„ ๋•Œ Map reqBody = (Map) ~~~~ ๋”๋ณด๊ธฐ XML์€ ์•„๋ž˜ ๊ทธ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๊ณ  JSON ๊ณผ Controller ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 1. JSON "body": [ { "ํ•ญ๋ชฉ": "๊ฐ’" } ] 2. Controller List reqBody = (List) ~~~~ 3. X..
JS * ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜ ํ™•์ธ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด์„œ overloading ์„ ํ•˜๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ ๋˜์ง€ ์•Š์•˜๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ์ƒ๊ด€์—†์ด ์ œ์ผ ํ•˜๋‹จ์— ์ž‘์„ฑํ•œ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜์—ˆ๋‹ค. JS ์—์„œ๋Š” overloading ์ด ์•ˆ๋˜๋Š” ๊ฒƒ์ธ๊ฐ€ ์‹ถ์–ด์„œ ์ฐพ์•„๋ดค๋”๋‹ˆ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์œ„์™€ ๊ฐ™์ด ํ•˜๋ฉด ์ œ์ผ ์•„๋ž˜์— ์„ ์–ธํ•œ ํ•จ์ˆ˜๊ฐ€ ๊ฐ™์€ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋ฅผ ๋ฎ์–ด์”Œ์›Œ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋˜๋Š” ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. type ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋Š” ๋‹ค์Œ์— ํ•ด๋ณด๋„๋กํ•˜๊ณ , ์˜ค๋Š˜์€ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์•Œ์•„๋ณด๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž! arguments.length ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค! ์‚ฌ์šฉ๋ฒ•์€!? function test('a', 'b'){ console.log(arguments.length); }
โœ… solved * Java version ERROR ( feat. Intelli J ) ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ญ๋กœ ํ•ด์•ผ ํ•  ๊นŒ ํ•œ์ฐธ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€... ๊ทธ๋ƒฅ Java version ๊ด€๋ จ ๋‚ด์šฉ์ด๋ผ Java๋กœ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •.. Cause: com/android/tools/idea/gradle/run/OutputBuildAction has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 ์›์ธ์ด ๋ญ์•ผ ใ…  ์ž๋ฐ”๋ฒ„์ „์˜ ๋ฌธ์ œ๋‹ค. ์ข€ ๋” ์ž์„ธํžˆ ๋งํ•˜์ž๋ฉด ์ด ๊ฒฝ์šฐ๋Š” gradle์˜ ์ž๋ฐ”๋ฒ„์ „ ๋ฌธ์ œ์ด๋‹ค. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ž˜ ๋ณด๋ฉด tools/idea/gradle/run ์ด๋ผ๊ณ  ๋˜์–ด ์žˆ๋Š” ..
JS * ์‚ฌ์šฉ์ž(?) Attribute ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ( feat. html ) ์˜ค๋Š˜ ์ฝ”๋”ฉ์„ ํ•˜๋‹ค๊ฐ€ ์ถฉ๊ฒฉ์ ์ธ ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. html element์— ๋‚ด๊ฐ€ ์›ํ•˜๋Š” attribute๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ๋‹ค ๐Ÿ˜ฑ. ์ด๋•Œ๊นŒ์ง€ ๊ทธ๊ฒƒ๋„ ๋ชจ๋ฅด๊ณ .. 'input์—์„  alt์— ์ •๋ณด๋ฅผ ๋„ฃ์–ด๋†“์ž! ๊ทผ๋ฐ.. select box๋ž‘ radio๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜์ง€'๋ผ๋Š” ๋ฉ์ถฉ์ด ๊ฐ™์€ ๊ณ ๋ฏผ์„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค๋‹ˆ.. ์—ญ์‹œ ๊ณต๋ถ€๋งŒ์ด ์‚ด๊ธธ์ด๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜? html์—์„œ attribute ๋งŒ๋“ค๊ธฐ(?) ๊ทธ๋ƒฅ ์ €๋ ‡๊ฒŒ ์›ํ•˜๋Š” ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋ช…์„ ์ ๊ณ  ๊ฐ’์„ ์ฃผ๋ฉด ๋์ด๋‹ค ๐Ÿคญ. Attribute ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ ์˜ˆ์‹œ์—์„œ ์•จ๋ฆฌ๋จผํŠธ-์‹๋ณ„์ž๋Š” #mine ์• ํŠธ๋ฆฌ๋ทฐํŠธ-์ด๋ฆ„์€ my-field ๊ฐ€ ๋˜๊ฒ ๋‹ค! Javascript document.querySelector('์•จ๋ฆฌ๋จผํŠธ-์‹๋ณ„์ž').getAttribute('์• ํŠธ๋ฆฌ๋ทฐํŠธ-์ด๋ฆ„'); querySelecto..