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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ192

[์„ค์ •] ๊น€์˜ํ•œ SpringBoot JPA ๊ฐ•์˜ ํ”„๋กœ์ ํŠธ 3.X.X ์„ค์น˜ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ https://start.spring.io/ ์ƒ์„ฑ ํ”„๋กœ์ ํŠธ ์˜ค๋ฅ˜๋กœ ์‹คํ–‰ ๋ถˆ๊ฐ€ ๊ฐ•์˜์— ๋‚˜์˜จ ๋‚ด์šฉ๋Œ€๋กœ https://start.spring.io/ ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  IDE์—์„œ ์˜คํ”ˆํ–ˆ์ง€๋งŒ Gradle๊ณผ Java๋ฒ„์ „์ด ์•ˆ๋งž๋Š”๋‹ค๋Š” ์˜ค๋ฅ˜๋กœ ์‹คํ–‰์กฐ์ฐจ ์•ˆ๋จ ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€ ๋”๋ณด๊ธฐ A problem occurred configuring root project 'datastudy'. > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.6. Required by: project : > org.springframework.boot:o.. 2023. 12. 17.
[Axios] Axios๋ฅผ ์‚ฌ์šฉํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ Axios๋ž€? Axios๋Š” JavaScript๋กœ ์ž‘์„ฑ๋œ ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ HTTP ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฃผ๋กœ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ์—์„œ API ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•จ ๋ธŒ๋ผ์šฐ์ €์™€ Node.js ํ™˜๊ฒฝ์—์„œ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, HTTP ์š”์ฒญ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฒ• Axios๋Š” GET, POST, PUT, DELETE ๋“ฑ ๋‹ค์–‘ํ•œ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์›ํ•จ // PUT ์š”์ฒญ axios.put('/api/users/1', { username: 'updateduser', password: 'newpassword' }) .then(response => { console.log(response.data); // ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ์˜ ์‘๋‹ต }) .catch(error => { console.error(erro.. 2023. 12. 15.
[๋ฉ”์„œ๋“œ] Deque ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ Deque ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ž๋ฐ”์˜ java.util ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ์–‘์ชฝ ๋์—์„œ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ์–‘๋ฐฉํ–ฅ ํ ์ด๊ฒƒ์€ ์Šคํƒ๊ณผ ํ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ํ†ตํ•ฉํ•œ ํ˜•ํƒœ๋กœ, ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Œ void addFirst(E e): ์š”์†Œ๋ฅผ ๋ฐํฌ์˜ ์•ž์ชฝ์— ์ถ”๊ฐ€ void addLast(E e): ์š”์†Œ๋ฅผ ๋ฐํฌ์˜ ๋’ค์ชฝ์— ์ถ”๊ฐ€ boolean offerFirst(E e): ์š”์†Œ๋ฅผ ๋ฐํฌ์˜ ์•ž์ชฝ์— ์‚ฝ์ž…ํ•˜๊ณ , ์„ฑ๊ณต ์‹œ true ๋ฐ˜ํ™˜ boolean offerLast(E e): ์š”์†Œ๋ฅผ ๋ฐํฌ์˜ ๋’ค์ชฝ์— ์‚ฝ์ž…ํ•˜๊ณ , ์„ฑ๊ณต ์‹œ true ๋ฐ˜ํ™˜ E removeFirst(): ๋ฐํฌ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ E removeLast(): ๋ฐํฌ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ E pollFirst(): ๋ฐํฌ.. 2023. 12. 14.
[๋ฉ”์„œ๋“œ] Collections ํด๋ž˜์Šค ์ฃผ์š” ๋ฉ”์„œ๋“œ void sort(List list): ์ž์—ฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ void reverse(List list): ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ ์ˆœ์„œ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ๋ณ€๊ฒฝ Comparator reverseOrder(): ์—ญ์ˆœ ์ž์—ฐ ์ •๋ ฌ Comparator ๋ฐ˜ํ™˜ void shuffle(List list): ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ์ž„์˜์˜ ์ˆœ์„œ๋กœ ์„ž์Œ T min(Collection list, int i, int j): ๋ฆฌ์ŠคํŠธ ๋‚ด ๋‘ ์š”์†Œ์˜ ์œ„์น˜ ๊ตํ™˜ Collection unmodifiableCollection(Collection c, Object o): ํŠน์ • ๊ฐ์ฒด๊ฐ€ ์ปฌ๋ ‰์…˜์— ๋‚˜ํƒ€๋‚˜๋Š” ํšŸ์ˆ˜ ๊ณ„์‚ฐ int indexOfSubList(List source, List target): ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ์— ์ฒ˜์Œ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์œ„์น˜์˜ ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜.. 2023. 12. 14.
[์œˆ๋„์šฐ ํ•จ์ˆ˜] PARTITION BY ์ ˆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œˆ๋„์šฐ ํ•จ์ˆ˜ ์œˆ๋„์šฐ ํ•จ์ˆ˜๋ž€? ์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” ์˜ค๋ผํด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ SQL Server, PostgreSQL, MySQL(8.0 ์ด์ƒ) ๋“ฑ ๋‹ค์–‘ํ•œ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ ์ด ํ•จ์ˆ˜๋“ค์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ๊ฐ ๊ทธ๋ฃน ๋‚ด์—์„œ ๋ณต์žกํ•œ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ ์œˆ๋„์šฐ ํ•จ์ˆ˜ ROW_NUMBER(): ๊ฐ ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ์˜ ํ–‰ ์ˆœ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•จ RANK(): ํŠน์ • ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฐ ํ–‰์— ์ˆœ์œ„๋ฅผ ๋งค๊น€. ๊ฐ™์€ ๊ฐ’์ด๋ฉด ๊ฐ™์€ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๋ฉฐ, ์ˆœ์œ„์— ๊ณต๋ฐฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ DENSE_RANK(): RANK()์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๊ณต๋ฐฑ ์—†๋Š” ์—ฐ์†์ ์ธ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•จ SUM(): ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐ AVG(): ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ์˜ ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐ MIN() ๋ฐ MAX(): ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ์˜ ์ตœ์†Œ๊ฐ’๊ณผ ์ตœ๋Œ€๊ฐ’์„ ๊ณ„์‚ฐ LEAD() ๋ฐ LAG():.. 2023. 12. 14.
[Git] ๊ฐœ์ธ ํ•™์Šต Repository๋ฅผ ์œ„ํ•œ Git ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ปจ๋ฒค์…˜ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์˜ ๊ตฌ์กฐ์™€ ๋ช…ํ™•์„ฑ -m ์˜ต์…˜์„ ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉํ•ด์„œ ์ œ๋ชฉ๊ณผ ๋ณธ๋ฌธ ๋ถ„๋ฆฌํ•˜๊ธฐ git commit -m "๋™์ž‘ ๋Œ€์ƒ ๊ฒฐ๊ณผ๋ฌผ" -m "๊ด€๋ จ ์ž‘์—… ๋‚ด์šฉ" git commit -m "Add Docker ํ•™์Šต ๋…ธํŠธ" -m "๊ธฐ๋ณธ ๋„์ปค ๋ช…๋ น์–ด, ๋„์ปค์˜ ์œ ์—ฐ์„ฑ, ๋„์ปค ์ด๋ฏธ์ง€ ์ž‘๋™ ๋ฐฉ์‹" ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€ ์ œ๋ชฉ์— ์‚ฌ์šฉํ•˜๋Š” ๋™์‚ฌ๋“ค ์ œ๋ชฉ์— ์‚ฌ์šฉํ•  ์ฒซ ๋‹จ์–ด Add: ์ƒˆ๋กœ์šด ํŒŒ์ผ, ๊ธฐ๋Šฅ, ์ฝ”๋“œ, ๋ฌธ์„œ ๋“ฑ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Update: ๊ธฐ์กด ์ฝ”๋“œ๋‚˜ ํŒŒ์ผ์„ ์ˆ˜์ •(์—…๋ฐ์ดํŠธ)ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Fix: ๋ฒ„๊ทธ ์ˆ˜์ •์ด๋‚˜ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Refactor: ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๊ฑฐ๋‚˜ ๋ฆฌํŒฉํ† ๋งํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์  ๋ณ€๊ฒฝ์ด ์•„๋‹Œ ๊ตฌ์กฐ์ /์„ฑ๋Šฅ์  ๊ฐœ์„ ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Remove/Delete: ์ฝ”๋“œ, ํŒŒ์ผ, ๊ธฐ๋Šฅ ๋“ฑ์„ ์ œ๊ฑฐํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.. 2023. 12. 11.
[์„ค์ •] SpringBoot + MyBatis + Oracle + JSP ์—ฐ๋™ ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์„ค์ • ์ •๋ณด SpringBoot๋Š” ์ฃผ๋กœ JPA์™€ Thymeleaf๋ฅผ ํŒŒํŠธ๋„ˆ๋กœ ์‚ผ์•„ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋„๋ฆฌ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ์ˆ ์˜ ์„ธ๊ณ„์—์„œ๋Š” ์–ธ์ œ๋‚˜ ์˜ˆ์™ธ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค..... ๋ณธ ๊ธ€์—์„œ๋Š” SpringBoot๋ฅผ MyBatis์™€ Oracle DB์— ์—ฐ๊ฒฐํ•˜๊ณ , JSP๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ณผ์ •์— ํ•„์š”ํ•œ ์„ค์ •๋“ค์— ๋Œ€ํ•ด ๊ธฐ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ์€ ์ธํ…”๋ฆฌ์ œ์ด์™€ ์œˆ๋„์šฐ์ด๋ฉฐ, ๊ฒŒ์‹œํŒ์˜ ๊ธ€๋ชฉ๋ก์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๊นŒ์ง€์˜ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง๋ถ€ํŠธ 2.X.X ๋ฒ„์ „, ์ž๋ฐ” 11 ๋“ฑ ๋‚ฎ์€ ๋ฒ„์ „์ผ ๋•Œ์˜ ์„ค์ •์ž…๋‹ˆ๋‹ค. ์ค€๋น„๋ฌผ: SpringBoot ํ”„๋กœ์ ํŠธ ์ด ๊ธ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” build.gradle ์ž…๋‹ˆ๋‹ค. plugins { id 'org.springframework.boot' version '2.4.1' //์Šคํ”„๋ง๋ถ€ํŠธ 2.X... 2023. 12. 11.