728x90
๋ฐ˜์‘ํ˜•

2024/12 30

[SPRING] ํ˜„์žฌ ๋„๋ฉ”์ธ ์ฃผ์†Œ ๊ฐ€์ ธ์˜ค๊ธฐ

import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;@RestControllerpublic class DomainController { @GetMapping("/domain") public String getDomain(HttpServletRequest request) { String scheme = request.getScheme(); // "http" ๋˜๋Š” "https" String serverName = request.get..

JAVA/SPRING 2024.12.31

[js][Echarts] bar ์ฐจํŠธ์—์„œ x์ถ•์— ๋”ฐ๋ผ ๊ฐ ๋ง‰๋Œ€์— ๋‹ค๋ฅธ ์ƒ‰์ƒ ์„ค์ •ํ•˜๊ธฐ

series: [ { name: curYr, data: curYrArr, type: 'bar', barWidth: '30%', itemStyle: { color: function (params) { const category = params.name; // x์ถ• ์นดํ…Œ๊ณ ๋ฆฌ ๊ฐ’ switch (category) { case 'A': return '#4976CA'; // 'A'์˜ ์ƒ‰์ƒ case 'B': return '#FF6..

Front/JS & jQuery 2024.12.29

[js][Echarts] ์ฐจํŠธ์— ๋ฐ์ดํ„ฐ ์ด๋ฆ„ ํ‘œ์‹œํ•˜๊ธฐ

label: { show: true, fontSize: 12, fontWeight: "bold", position: "inside", // Position the label inside the bar color: "black", formatter: function(data) { const seriesName = data.seriesName; // The series name (e.g., '์˜์—…์ˆ˜์ต') const value = Common.numberWithCommas(data.data); // The value, formatted return `${seriesName}\n${value}`; // Add a newline characte..

Front/JS & jQuery 2024.12.28

[js][Echarts] stack bar ์ฐจํŠธ์—์„œ ๊ฐ ๋ง‰๋Œ€์— ๋‹ค๋ฅธ ์ƒ‰์ƒ ์„ค์ •ํ•˜๊ธฐ

ECharts์—์„œ x์ถ•์„ ๋”ฐ๋ผ ๋ง‰๋Œ€ํ˜• ์ฐจํŠธ์˜ ๊ฐ ๋ง‰๋Œ€์— ๋‹ค๋ฅธ ์ƒ‰์ƒ์„ ์„ค์ •ํ•˜๋ ค๋ฉด,๊ฐ ๋ง‰๋Œ€์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ฒด itemStyle๋‚ด์˜ ์†์„ฑ์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.getCoChartOption = (xAxisData, amtArr, otherArr, valRange) => { const amtColors = ["#F4E5E0", "#F0A5A0", "#E8C6C0", "#D8B7A0"]; // Example colors for "์˜์—…์ˆ˜์ต" bars const otherColors = ["#5FC6E3", "#4BADD8", "#3A95B3", "#2681A0"]; // Example colors for "์˜์—…์™ธ์ˆ˜์ต" bars return { tooltip: {..

Front/JS & jQuery 2024.12.26

[jquery] evt.currentTarget์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํƒ๋œ <select> ๋ฐ•์Šค์˜ ์„ ํƒ๋œ option์˜ text๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ

evt.currentTarget์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํƒ๋œ ๋ฐ•์Šค์˜ ์„ ํƒ๋œ option์˜ text๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค $(document).on('change', 'select', function(evt) { var selectedText = $(evt.currentTarget).find('option:selected').text(); console.log('์„ ํƒ๋œ ํ…์ŠคํŠธ:', selectedText);});

Front/JS & jQuery 2024.12.25

MSA

MSA(Microservices Architecture) ๊ฐœ๋ฐœ์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž‘์€ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ์šด์˜ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.์ „ํ†ต์ ์ธ ๋ชจ๋†€๋ฆฌ์‹(monolithic) ์•„ํ‚คํ…์ฒ˜์™€ ๋‹ฌ๋ฆฌ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋‚˜๋ˆ„์–ด๊ฐ ์„œ๋น„์Šค๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ์„œ๋กœ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.  MSA์˜ ํŠน์ง•์ž‘์€ ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌํ•˜๋‚˜์˜ ํฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์„œ๋น„์Šค๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.๊ฐ ์„œ๋น„์Šค๋Š” ํŠน์ • ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: ๊ฒฐ์ œ, ์‚ฌ์šฉ์ž ์ธ์ฆ, ์ƒํ’ˆ ๊ด€๋ฆฌ ๋“ฑ)๋…๋ฆฝ ๋ฐฐํฌ ๊ฐ€๋Šฅ๊ฐ ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.ํŠน์ • ์„œ๋น„์Šค๋งŒ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ ๋ฐฐํฌํ•ด๋„ ์ „์ฒด ์‹œ์Šคํ…œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.๋‹ค์–‘ํ•œ ๊ธฐ์ˆ  ์Šคํƒ ํ—ˆ์šฉ๊ฐ ์„œ๋น„์Šค๋Š” ..

IT์ง€์‹ 2024.12.24

[JAVA]BigDecimal null ์ฒ˜๋ฆฌ ์˜ˆ์ œ

import java.math.BigDecimal;public class Main { public static void main(String[] args) { EqCrAdvpSum eqCrAdvpSum = new EqCrAdvpSum(); // getTotTotalAmt() ๊ฐ’์ด null์ธ์ง€ ํ™•์ธํ•˜๊ณ  null์ด๋ฉด 0์œผ๋กœ ์„ค์ • BigDecimal totalAmt = eqCrAdvpSum.getTotTotalAmt() != null ? eqCrAdvpSum.getTotTotalAmt() : BigDecimal.ZERO; System.out.println("Total Amount: " + totalAm..

JAVA 2024.12.23

[js][datatables] ์—‘์…€ ํŒŒ์ผ๋ช… ํŠน์ˆ˜๋ฌธ์ž ์ฒ˜๋ฆฌ

& ์ด ๋ณ€ํ™˜๋˜์ง€ ์•Š๊ณ  ๋นˆ๋ฌธ์ž๋กœ ์ถœ๋ ฅ๋˜์–ด์„œ,& ๋ฅผ ํŠน์ • ๋ฌธ์ž์—ด๋กœ ๋Œ€์ฒดfunction sanitizeFileName(fileName) { return fileName.replace(/&/g, '_and_'); // &๋ฅผ '_and_'๋กœ ๋Œ€์ฒด}$('#example').DataTable({ dom: 'Bfrtip', buttons: [ { extend: 'excelHtml5', title: sanitizeFileName('์—‘์…€&ํŒŒ์ผ๋ช…_2024') } ]});

Front/JS & jQuery 2024.12.22

[js] .join("")

JavaScript์˜ join() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.๊ฐ ์š”์†Œ๋Š” ์ง€์ •๋œ ๊ตฌ๋ถ„์ž๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.๋นˆ ๋ฌธ์ž์—ด("")์„ ์ „๋‹ฌํ•˜๋ฉด ์š”์†Œ๋“ค์ด ๊ตฌ๋ถ„์ž ์—†์ด ๊ฒฐํ•ฉ๋ฉ๋‹ˆ๋‹ค.const fruits = ["Apple", "Banana", "Cherry"];console.log(fruits.join(" - ")); // ๊ฒฐ๊ณผ: "Apple - Banana - Cherry"console.log(fruits.join("")); // ๊ฒฐ๊ณผ: "AppleBananaCherry"

Front/JS & jQuery 2024.12.21
728x90
๋ฐ˜์‘ํ˜•