728x90
๋ฐ˜์‘ํ˜•

2024/12 30

[js] JavaScript์—์„œ ์ •์ˆ˜๋ผ๋ฆฌ์˜ ๊ณฑ์…ˆ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•

JavaScript์—์„œ ์ •์ˆ˜๋ผ๋ฆฌ์˜ ๊ณฑ์…ˆ์ด๋ผ๋„ ๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ ํŠน์„ฑ์ƒ์†Œ์ˆ˜์  ๊ณ„์‚ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ์ •์ˆ˜ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด BigInt๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜๊ฒฐ๊ณผ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•˜์„ธ์š”. ๊ฒฐ๊ณผ๋ฅผ ์ •์ˆ˜๋กœ ๊ฐ•์ œ ๋ณ€ํ™˜๊ณฑ์…ˆ ๊ฒฐ๊ณผ๊ฐ€ ๋ฏธ์„ธํ•˜๊ฒŒ ์–ด๊ธ‹๋‚  ๊ฒฝ์šฐ Math.round, Math.floor, Math.ceil ๋“ฑ์„ ์‚ฌ์šฉํ•ด ์ •์ˆ˜๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.const result = 0.1 * 0.2;console.log(Math.round(result)); // 0์ •์ˆ˜ ๋ฒ”์œ„๋ฅผ ์œ ์ง€์ •์ˆ˜ ๊ณ„์‚ฐ์—๋งŒ ์ง‘์ค‘ํ•œ๋‹ค๋ฉด, ๊ฐ’์„ BigInt๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.const bigIntResult = BigInt(999999999) * BigInt(999999999);console.log(bigIntResult); // ..

Front/JS & jQuery 2024.12.20

[js] ๋‘ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ๊ณฑํ–ˆ์Œ์—๋„ ๊ฒฐ๊ณผ๊ฐ€ ์†Œ์ˆ˜์ ์œผ๋กœ ๊ณ„์‚ฐ๋˜๋Š” ๊ฒฝ์šฐ

์ฃผ์š” ์›์ธ๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ์˜ ํŠน์„ฑJavaScript๋Š” ์ •์ˆ˜๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ •์ˆ˜ ์—ฐ์‚ฐ์—์„œ๋„ ๋ฏธ์„ธํ•œ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์•”๋ฌต์  ํ˜•๋ณ€ํ™˜๋‘ ๊ฐ’์ด ์ •์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ์†Œ์ˆ˜์  ์ˆซ์ž(float)๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, 5์™€ 3.0์ฒ˜๋Ÿผ ์ •์ˆ˜์™€ ๋ถ€๋™์†Œ์ˆ˜์  ๊ฐ’์ด ์„ž์—ฌ ์žˆ๋‹ค๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ๋‚˜์˜ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.ํฐ ์ˆซ์ž ์—ฐ์‚ฐJavaScript์—์„œ ์ •ํ™•ํžˆ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜๋Š” -(2^53 - 1)์—์„œ 2^53 - 1 ์‚ฌ์ด์— ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์ˆซ์ž๋ฅผ ๊ณฑํ•˜๋ฉด ์ •ํ™•๋„๋ฅผ ์žƒ๊ณ  ์†Œ์ˆ˜์  ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Front/JS & jQuery 2024.12.19

[js] ํŒŒ์ผ์ „์†ก ํด๋ผ์ด์–ธํŠธ ์ „์†ก ์˜ˆ์ œ

const data = { key1: "value1", key2: "value2" };const formData = new FormData();formData.append("req", JSON.stringify(data));formData.append("files", fileInput.files[0]); // ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผformData.append("files", fileInput.files[1]); // ๋‘ ๋ฒˆ์งธ ํŒŒ์ผfetch("/ecrdSave", { method: "POST", body: formData}).then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error("E..

Front/JS & jQuery 2024.12.18

@RequestBody @RequestPart ์ฐจ์ด

ํŒŒ์ผ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์ „์†กํ•˜๋ ค๋ฉด @RequestBody ๋Œ€์‹  @RequestPart๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์ด์œ ๋Š” @RequestBody๋Š” JSON ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ ,@RequestPart๋Š” multipart/form-data์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋น„๊ตํŠน์ง•@RequestBody@RequestPart์‚ฌ์šฉ ์‹œ์ JSON ๋˜๋Š” XML ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œmultipart/form-data ์š”์ฒญ ์ฒ˜๋ฆฌํ•  ๋•Œ์š”์ฒญ ๋ฐ์ดํ„ฐ ํ˜•์‹JSON, XML ๋“ฑ ์ง๋ ฌํ™”๋œ ๋ฐ์ดํ„ฐmultipart/form-data์ฃผ๋กœ ์ฒ˜๋ฆฌ ๋Œ€์ƒ์ผ๋ฐ˜ ๊ฐ์ฒด (JSON -> Java)ํŒŒ์ผ(MultipartFile) ๋ฐ ๊ฐ์ฒด(JSON)HTTP ์š”์ฒญ ๋ณธ๋ฌธ ๋ฐฉ์‹๋‹จ์ผ ์š”์ฒญ ๋ณธ๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌ์š”์ฒญ ๋ณธ๋ฌธ์„ ์—ฌ๋Ÿฌ ํŒŒํŠธ๋กœ ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌSpring ๋ณ€ํ™˜๊ธฐ ์‚ฌ์šฉHttpMess..

JAVA 2024.12.17

[jquery] Object.assign() ์™€ $.extend ์ฐจ์ด

Object.assign()๊ณผ $.extend๋Š” ๋‘˜ ๋‹ค ๊ฐ์ฒด๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ๋™์ž‘ ๋ฐฉ์‹, ์‚ฌ์šฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๊ฐ€์ง€ ์„ธ๋ถ€ ์‚ฌํ•ญ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ทธ ์ฐจ์ด๋ฅผ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. 1. Object.assign()ํŠน์ง•ES6 ํ‘œ์ค€์œผ๋กœ ๋„์ž…๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋‚ด์žฅ ํ•จ์ˆ˜.์›๋ณธ ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์ƒˆ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜, ๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Œ.์–•์€ ๋ณต์‚ฌ(shallow copy)๋งŒ ์ง€์›.๋ฐฐ์—ด ๋ฐ ๊ธฐํƒ€ ๊ฐ์ฒด ํƒ€์ž…๋„ ๋ณต์‚ฌ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ค‘์ฒฉ๋œ ๊ฐ์ฒด๋Š” ๋ณต์‚ฌํ•˜์ง€ ์•Š์Œ.const target = { a: 1 };const source = { b: 2, c: 3 };const result = Object.assign(target, source); // target ๊ฐ์ฒด์— source ์†์„ฑ ์ถ”..

Front/JS & jQuery 2024.12.16

[js] Dropzone ๋™์ผํ•œ ํŒŒ์ผ์„ ๋‘ ๊ฐœ์˜ API์— ์ „์†ก

Dropzone.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ๋•Œ, ๋™์ผํ•œ ํŒŒ์ผ์„ ๋‘ ๊ฐœ์˜ API์— ์ „์†กํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด Dropzone์˜ ์ด๋ฒคํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์•„๋ž˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ตฌํ˜„ ๋ฐฉ๋ฒ•Dropzone ์„ค์ •: Dropzone ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํŒŒ์ผ ์—…๋กœ๋“œ ๋™์ž‘์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.๋‘ API๋กœ ํŒŒ์ผ ์ „์†ก: success ๋˜๋Š” addedfile ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์ด ์ถ”๊ฐ€๋˜์—ˆ์„ ๋•Œ ๋‹ค๋ฅธ API๋กœ๋„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

Front/JS & jQuery 2024.12.15

[DB] GROUP_CONCAT

GROUP_CONCAT([DISTINCT] column_name [ORDER BY column_name ASC|DESC] [SEPARATOR 'separator'])์˜ต์…˜ ์„ค๋ช…DISTINCT๊ณต์šฉํ™”๋œ ๊ฐ’์€ ์ œ๊ฑฐ๋˜๊ณ  ๊ณ ์œ ํ•œ ๊ฐ’๋งŒ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.์˜ˆ:GROUP_CONCAT(DISTINCT column_name)ORDER BY์—ฐ๊ฒฐ๋œ ์ปค๋„ฅํ„ฐ์˜ ๊ด€๊ณ„๋ฅผ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.์˜ˆ:GROUP_CONCAT(column_name ORDER BY column_name DESC)SEPARATOR์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์— ๊ตฌ๋ถ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํœด์‹ํ‘œ( ,)์ž…๋‹ˆ๋‹ค.์˜ˆ:GROUP_CONCAT(column_name SEPARATOR '|')  ๊ธฐ๋ณธ ์‚ฌ์šฉ SELECT GROUP_CONCAT(name) AS namesFROM employees;๊ฒฐ๊ณผ :H..

DB 2024.12.14

[JAVA] endsWith

// ๋งˆ์ง€๋ง‰ ์ฝค๋งˆ ์ œ๊ฑฐString custNmList = custNmBuilder.toString();if (custNmList.endsWith(", ")) { custNmList = custNmList.substring(0, custNmList.length() - 2);} String.endsWith(String suffix)๋Š” Java์˜ String ํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ๋กœ,ํŠน์ • ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„ ์ ‘๋ฏธ์‚ฌ(suffix)๋กœ ๋๋‚˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.๋ฐ˜ํ™˜ ๊ฐ’์€ boolean์ด๋ฉฐ, true ๋˜๋Š” **false**๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. boolean result = str.endsWith(suffix);  str: ๋์„ ํ™•์ธํ•  ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.suffix: str์˜ ๋์—์„œ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•  ๋Œ€์ƒ ๋ฌธ์ž์—ด์ž…..

JAVA 2024.12.12

[JAVA] ์ œ๋„ค๋ฆญ์œ ํ˜•์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์•„์™”์„ ๋•Œ ๋‹ค์šด์บ์ŠคํŒ… ํ•˜๋Š” ์ด์œ 

protected List> getAttFiles(T param) throws SQLExceptionparam๋ฐ”๋กœ ์‚ฌ์šฉํ•˜๋ฉด param.getCrCd()ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๋Š” param์ด ์ œ๋„ค๋ฆญ ์œ ํ˜• T์œผ๋กœ ์„ ์–ธ์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์šด์บ์ŠคํŒ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค :ReqEcrdCreateDTO์— ์ •์˜๋œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด,param์„ ๋ฐด๋“œํ˜•์ธ ReqEcrdCreateDTO๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ฝ”๋“œ ReqEcrdCreateDTO createParams = (ReqEcrdCreateDTO) param;๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

JAVA 2024.12.11
728x90
๋ฐ˜์‘ํ˜•