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

IT ๊ณต๋ถ€91

Stack - (์„ ํ˜•)์ž๋ฃŒ๊ตฌ์กฐ stack์€ ํ›„์ž…์„ ์ถœ (LIFO)์ด๋ž€ ํŠน์„ฑ์„ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ฃผ๋กœ ํ•จ์ˆ˜์ฝœ ์Šคํƒ, ์ˆ˜์‹ ๊ณ„์‚ฐ, ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋“ฑ์— ์‚ฌ์šฉ๋œ๋‹ค. ์Šคํƒ์€ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•œ ์ƒํ™ฉ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ *๊ฒ€์ƒ‰์ด๋‚˜ ์ •๋ ฌ์€ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ํฌ๊ฒŒ ์ข‹์ง€ ์•Š์•„ ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.  stack์€ push๋ฅผ ํ†ตํ•ด ์ž…๋ ฅํ•˜๊ณ  pop์„ ํ†ตํ•ด ์ถœ๋ ฅํ•œ๋‹ค. ๋˜ํ•œ ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด๊ฐ„ ๊ฐ’์„ bottom์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ๊ฐ’์„ top์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.  Stack์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์‚ฝ์ž…/ ์‚ญ์ œ : O(1)๊ฒ€์ƒ‰ : O(n) (๋ชจ๋“  ์š”์†Œ๋“ค์„ ํ™•์ธํ•ด์•ผํ•œ๋‹ค)์ •๋ ฌ : O(nlogn) Java ์—์„œ์˜ ์‚ฌ์šฉ๋ฒ• * JAVA์—์„œ๋Š” stack์„ import ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ java์—์„œ์˜ stack ์‚ฌ์šฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.Stack stack = n.. 2024. 6. 18.
Java ๋ถ€์กฑํ•œ ๋ถ€๋ถ„ ์ •๋ฆฌ ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2024. 6. 13.
๋ฐ์ดํ„ฐ SELECT์‹œ NULL์ด ๋‹ด๊ฒผ๋˜ ์ด์œ  ๋ฐ์ดํ„ฐ๋ฅผ select ํ•ด์˜ค๋ฉฐ ๋ถ€๋ถ„ ๋ฐ์ดํ„ฐ๋งŒ null์ด ๋‹ด๊ฒผ๋‹ค.์ž์„ธํžˆ ๋ณด๋‹ˆ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๋‹ด๊ธด ๋ถ€๋ถ„์€ DTO์™€ DB ๋ชจ๋‘ undersocre, camel case ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์˜€๊ณ ,null์ด ๋‹ด๊ธด ๋ถ€๋ถ„์€ DTO๋Š” camel case๋ฅผ ์ด์šฉ DB๋Š” underscore๋ฅผ ์ด์šฉํ•˜๋Š” ์ผ€์ด์Šค์˜€๋‹ค.๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด application.yml์— mybatis ์„ค์ •์„ ํ•ด์ฃผ์—ˆ๋‹ค.ํ•ด๋‹น ์„ค์ •์€ under score๋กœ ๋˜์–ด์žˆ๋Š” DB ๋ฐ์ดํ„ฐ๋ฅผ camel case๋กœ ๋ฐ”๊พธ์–ด DTO์— ์ €์žฅํ•˜๊ฒŒ ํ•˜๋Š” ์„ค์ •์ด๋‹ค.mybatis:configuration:map-underscore-to-camel-case: true ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์„ค์ •์—๋„ ๊ฐ€๋” ๋จนํžˆ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด ์„ค์ •์ด ์ž˜ ๋จนํžˆ์ง€ ์•Š์•„์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ง์ ‘์ ์œผ๋กœ alias .. 2024. 5. 22.
Redirect๋กœ alert ๋„์šฐ๊ธฐ Controller  JSP 2024. 5. 22.
google map api ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์“ธ๋•Œ jsp์—์„œ ์ฃผ์˜ ์‚ฌํ•ญ 1. ์ „์—ญ๋ณ€์ˆ˜ ์„ค์ •๊ณผ initMap(), updateMap() ํ•จ์ˆ˜ ๋”ฐ๋กœ ์ƒ์„ฑํ•ด์ฃผ๊ธฐ ๋™์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๊ฐ’๋“ค์„ ๋‹ค๋ฅธ๊ณณ์—์„œ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๋ณ€์ˆ˜๋Š” ๊ผญ! ์ „์—ญ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•ด์ค€๋‹ค. (ajaxData, map, lat, lng, location ๋“ฑ) ๋˜ํ•œ initMap()์œผ๋กœ ์ฒซ ํŽ˜์ด์ง€ ์ ‘์†์‹œ ๋‚˜ํƒ€๋‚ด์ค„ ์ง€๋„ ๊ฐ’์„ ๋งŒ๋“ค๊ณ  updateMap() ํ•จ์ˆ˜๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด ์ฃผ์–ด ์•„๋ž˜์˜ ajax๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์—์„œ updateMap()ํ•จ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค. var ajaxData = {}; var map; var latInput,lngInput,locationInput; function initMap() { map = new google.maps.Map(document.getElementById('map'), { .. 2024. 3. 21.
DB์—์„œ select ํ•ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ DTO์— ๋‹ด๊ธฐ์ง€ ์•Š์•˜๋˜ ์ด์œ  (์ƒ์„ฑ์ž ์ƒ์„ฑ) ๊ฒฐ๋ก ๋ถ€ํ„ฐ ์ ์ž๋ฉด DTO class์— ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ ์ „์— ํ”„๋กœ์ ํ„ฐ์—์„œ๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•˜์ง€๋งŒ Lombok ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ฑฐ๋‚˜ (@Data ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ž˜์Šค์— ํ•„ํŠธ, getter, setter equals, hashCode, toString ๋“ฑ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์คŒ) Spring์˜ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์ธํ•ด @ComponentScan์„ ํ†ตํ•ด ํŒจํ‚ค์ง€๋ฅผ ์Šค์บ”ํ•˜์—ฌ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜ ์—†์ด ์ฝ”๋“œ๊ฐ€ ์ž˜ ์‹คํ–‰๋˜์—ˆ์ง€๋งŒ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๊ธฐ๋ณธ ์„ค์ •์ด ๋‹ค๋ฅด๊ณ  ์ด๋ฒˆ์— @ComponentScan ์„ ๋งŒ์ง€๋ฉด์„œ ๋นˆ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋“ฑ๋ก๋˜์ง€ ์•Š์•„ DTO class๋ฅผ ํ†ตํ•ด selectํ•ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ด๋‹น ๊ฐ์ฒด์— ์ž˜ ๋‹ด๊ธฐ์ง€ ์•Š์•„ ๋ถ€๋ถ„์ ์œผ๋กœ null๊ฐ’์„ ๋™๋ฐ˜ํ•œ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ ๊ฐ™๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฌธ์ œ๋Š” .. 2024. 3. 21.