๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๐Ÿ–ฅWeb47

[React] SPA ๋ผ์šฐํ„ฐ ์ƒ˜ํ”Œ์ฝ”๋“œ, ๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๊ผญ ์•Œ์•„์•ผ ๋˜๋Š”๊ฒƒ React๋ž€? ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Declarative ์ƒํ˜ธ์ž‘์šฉ์ด ๋งŽ์€ UI๋ฅผ ๋งŒ๋“ค ๋•Œ ์ƒ๊ธฐ๋Š” ์–ด๋ ค์›€์„ ์ค„์—ฌ์ค๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋จ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ปดํฌ๋„ŒํŠธ๋งŒ ํšจ์œจ์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๊ณ  ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. Component-Based ์Šค์Šค๋กœ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์บก์Šํ™”๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ด๋ฅผ ์กฐํ•ฉํ•ด ๋ณต์žกํ•œ UI๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ๋กœ์ง์€ ํ…œํ”Œ๋ฆฟ์ด ์•„๋‹Œ JavaScript๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•ฑ ์•ˆ์—์„œ ์†์‰ฝ๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ณ , DOM*๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Learn Once, Write Anywhere Node์—์„œ ๋ Œ๋”๋ง์„ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , React Native๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ชจ๋ฐ”์ผ ์•ฑ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ์“ธ๊นŒ? SPA(S.. 2023. 7. 6.
SQL ์ตœ์ ํ™”, SQL ์˜ตํ‹ฐ๋งˆ์ด์ € SQL ์ตœ์ ํ™” DBMS ๋‚ด๋ถ€์—์„œ ํ”„๋กœ์‹œ์ €๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ปดํŒŒ์ผํ•ด์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“œ๋Š” ์ „ ๊ณผ์ •์„ 'SQL ์ตœ์ ํ™”'๋ผ๊ณ  ํ•œ๋‹ค. SQL์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „ ์ตœ์ ํ™” ๊ณผ์ •์„ ์„ธ๋ถ„ํ™”ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. SQL ํŒŒ์‹ฑ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ SQL์„ ์ „๋‹ฌ๋ฐ›์œผ๋ฉด ๊ฐ€์žฅ ๋จผ์ € SQL ํŒŒ์„œ(Parser)๊ฐ€ ํŒŒ์‹ฑ์„ ์ง„ํ–‰ํ•œ๋‹ค. SQL ํŒŒ์‹ฑ์„ ์š”์•ฝํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ํŒŒ์‹ฑ ํŠธ๋ฆฌ ์ƒ์„ฑ: SQL ๋ฌธ์„ ์ด๋ฃจ๋Š” ๊ฐœ๋ณ„ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋ถ„์„ํ•ด์„œ ํŒŒ์‹ฑ ํŠธ๋ฆฌ ์ƒ์„ฑ Syntax ์ฒดํฌ: ๋ฌธ๋ฒ•์  ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธ, ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ฑฐ๋‚˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋ฅด์ง€ ์•Š๊ฑฐ๋‚˜ ๋ˆ„๋ฝ๋œ ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ Semantic ์ฒดํฌ: ์˜๋ฏธ์ƒ ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ…Œ์ด๋ธ” ๋˜๋Š” ์ปฌ๋Ÿผ์„ ์‚ฌ์šฉํ–ˆ๋Š”์ง€, ์‚ฌ์šฉํ•œ ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•œ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธ SQ.. 2023. 2. 11.
[DB & SQL] ์—”ํ‹ฐํ‹ฐ ๊ฐœ๋…๊ณผ ์ถ”์ถœ ์—”ํ‹ฐํ‹ฐ ๊ฐœ๋…๊ณผ ์ถ”์ถœ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ๋™์ผํ•œ ๊ตฌ์กฐ(๋ฆด๋ ˆ์ด์…˜)์˜ ๊ด€์ ์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ตฌ์„ฑ ๋ฆด๋ ˆ์ด์…˜์€ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์€ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ํ‘œํ˜„๋˜๋Š” ํ•œ ๊ฐœ ์—”ํ‹ฐํ‹ฐ์— ๊ด€ํ•œ ์ •๋ณด ์ €์žฅ์— ์‚ฌ์šฉ ๋ฆด๋ ˆ์ด์…˜์€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด์— ๊ด€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ 2์ฐจ์› ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ ER(Entity-Relationship) ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์ดˆ๊ธฐ์˜ ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๋ฅผ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ 1976๋…„ ํ”ผํ„ฐ์ฑˆ์ด ์ œ์•ˆ ER ๋ชจ๋ธ์€ ์‰ฝ๊ฒŒ ๊ด€๊ณ„๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋กœ ์‚ฌ์ƒ์ด ๋จ ์—”ํ‹ฐํ‹ฐ ์—…๋ฌด์ˆ˜ํ–‰์„ ์œ„ํ•ด ๊ธฐ์—…์ด ์•Œ์•„์•ผ ํ•  ๋Œ€์ƒ์ด ๋˜๋Š” ์‚ฌ๋žŒ, ์žฅ์†Œ, ์‚ฌ๋ฌผ, ์‚ฌ๊ฑด ๋ฐ ๊ฐœ๋…์„ ์˜๋ฏธ ๊ฐ ์—”ํ‹ฐํ‹ฐ๋Š” ์ธ์Šคํ„ด์Šค๋ผ ๋ถˆ๋ฆฌ๋Š” ๊ฐœ๋ณ„์  ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธ ์—”ํ„ฐํ‹ฐ๋กœ ์ถ”.. 2022. 11. 26.
[Java] ๊ฐ„๋‹จํ•œ ํŒŒ์ผ ์“ฐ๊ธฐ, ์ฝ๊ธฐ (File, FileOutputStream, FileInputStream, BufferedReader, InputStreamReader) package com.example.test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; public class FileInputOutputTest { public static void main(String[] args) throws IOException { File f = new File("./src/com/example/test/new_file.txt"); FileOutputStream fos = new FileOutputStr.. 2022. 10. 30.
[Java] ๊ฐ„๋‹จํ•œ ์ฑ„ํŒ… ์†Œ์ผ“ํ†ต์‹  (Thread, Runnable, BufferedReader, BufferedWriter, InputStreamReader, OutputStreamWriter, Socket, ServerSocket) ๊ฐ„๋‹จํ•œ ์ฑ„ํŒ… ์†Œ์ผ“ํ†ต์‹  chattingclient project chattingserver project ์›Œํฌ์ŠคํŽ˜์ด์Šค ํ•˜๋‚˜์— ๋‘๊ฐœ์˜ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ๋‘ ๊ฐœ์˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค์— ๊ฐ ํ•œ๊ฐœ์”ฉ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑ chattingclient project ChattingClient.java package chattingclient; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; import java.util.Scanner; class Receiv.. 2022. 10. 23.
[SpringBoot] HttpSession๊ฐ’ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ, ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ Session ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ๊ธฐ๋ณธ์œผ๋กœ HttpSession ๊ฐ’ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์—์„œ ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ Session ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ build.gradle buildscript { ext { springBootVersion = '2.1.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } plugins { id 'java' id 'eclipse' id 'org.springframework.boot' version '2.3.2.RELEASE' id 'io.spring.dependency-management' ver.. 2022. 6. 13.
[SpringBoot] JPA Auditing์ด๋ž€? Auditing example JPA Auditing์ด๋ž€? Auditing example JPA Auditing์ด๋ž€? ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ ๊ฐ์‚ฌ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค์— ์ƒ์† ํ™œ์„ฑํ™” ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ JPA Auditing์ด๋ž€? ๋ณดํ†ต ์—”ํ‹ฐํ‹ฐ์—๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ์‹œ๊ฐ„๊ณผ ์ˆ˜์ •์‹œ๊ฐ„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€, ์–ธ์ œ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ๋“ฑ์€ ์ฐจํ›„ ์œ ์ง€๋ณด์ˆ˜์— ์žˆ์–ด ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ์ •๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค ๋ณด๋‹ˆ ๋งค๋ฒˆ DB์— ์‚ฝ์ž…ํ•˜๊ธฐ ์ „, ๊ฐฑ์‹ ํ•˜๊ธฐ ์ „์— ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๋“ฑ๋ก/์ˆ˜์ •ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—ฌ๊ธฐ์ €๊ธฐ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๊ฐ€ ๋ชจ๋“  ํ…Œ์ด๋ธ”๊ณผ ์„œ๋น„์Šค ๋ฉ”์†Œ๋“œ์— ํฌํ•จ๋˜๋Š”๊ฒƒ์€ ๊ต‰์žฅํžˆ ๋ถˆํŽธํ•œ ์ผ์ž…๋‹ˆ๋‹ค. Spring Data๋Š” ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•œ ์‚ฌ๋žŒ๊ณผ ๋ฐœ์ƒํ•œ ์‹œ์ ์„ ํˆฌ๋ช…ํ•˜๊ฒŒ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•œ ์ •๊ตํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์˜ ์ด์ ์„ ์–ป์œผ๋ ค.. 2022. 6. 6.
[SpringBoot] ์ฟผ๋ฆฌ ๋กœ๊ทธ ํ™•์ธ application.properties, application.yml build.gradle buildscript { ext { springBootVersion = '2.1.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } plugins { id 'java' id 'eclipse' id 'org.springframework.boot' version '2.3.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' } group 'com.example.base' version '1.0-SNA.. 2022. 6. 2.
[DB & SQL] SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / ๊ณ ๊ธ‰ SQL ํŠœ๋‹ SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / ๊ณ ๊ธ‰ SQL ํŠœ๋‹ ์†ŒํŠธ์™€ ๊ด€๋ จ๋œ ์˜คํผ๋ ˆ์ด์…˜ ์œ ํ˜• Sort Aggregate ์ „์ฒด ๋กœ์šฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ง‘๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋‚˜ํƒ€๋‚˜๋ฉฐ, Oracle ์‹คํ–‰๊ณ„ํš์— sort๋ผ๋Š” ํ‘œํ˜„์ด ์‚ฌ์šฉ๋์ง€๋งŒ ์‹ค์ œ ์†ŒํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง„ ์•Š๋Š”๋‹ค. Sort Order By ์ •๋ ฌ๋œ ๊ฒฐ๊ณผ์ง‘ํ•ฉ์„ ์–ป๊ณ ์ž ํ•  ๋•Œ ๋‚˜ํƒ€๋‚œ๋‹ค. Sort Group By Sorting ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด ๊ทธ๋ฃน๋ณ„ ์ง‘๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋‚˜ํƒ€๋‚œ๋‹ค. Sort Unique ์„ ํƒ๋œ ๊ฒฐ๊ณผ์ง‘ํ•ฉ์—์„œ ์ค‘๋ณต ๋ ˆ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ ์ž ํ•  ๋•Œ ๋‚˜ํƒ€๋‚œ๋‹ค. Union ์—ฐ์‚ฐ์ž๋‚˜ ์•„๋ž˜์™€ ๊ฐ™์ด Distinct ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๊ฐ€ ๋Œ€ํ‘œ์ ์ด๋‹ค. Sort Join Sort Merge Join์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋‚˜ํƒ€๋‚œ๋‹ค. Window Sort ์œˆ๋„์šฐ ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋‚˜ํƒ€๋‚œ๋‹ค. Oracle์—์„œ Di.. 2022. 5. 26.
[DB & SQL] SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / ์ธ๋ฑ์Šค์™€ ์กฐ์ธ SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / ์ธ๋ฑ์Šค์™€ ์กฐ์ธ Index Range Scan Index Range Scan์€ ์ธ๋ฑ์Šค ๋ฃจํŠธ ๋ธ”๋ก์—์„œ ๋ฆฌํ”„ ๋ธ”๋ก๊นŒ์ง€ ์ˆ˜์ง์ ์œผ๋กœ ํƒ์ƒ‰ํ•œ ํ›„์— ๋ฆฌํ”„ ๋ธ”๋ก์„ ํ•„์š”ํ•œ ๋ฒ”์œ„(Range)๋งŒ ์Šค์บ”ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. Index Skip Scan Index Skip Scan์€ ๋ฃจํŠธ ๋˜๋Š” ๋ธŒ๋žœ์น˜ ๋ธ”๋ก์—์„œ ์ฝ์€ ์นผ๋Ÿผ ๊ฐ’ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•  "๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”" ํ•˜์œ„ ๋ธ”๋ก(๋ธŒ๋žœ์น˜ ๋˜๋Š” ๋ฆฌํ”„๋ธ”๋ก)๋งŒ ๊ณจ๋ผ์„œ ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. Index Full Scan Index Full Scan์€ ์ˆ˜์ง์  ํƒ์ƒ‰์—†์ด ์ธ๋ฑ์Šค ๋ฆฌํ”„๋ธ”๋ก์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ˆ˜ํ‰์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ์„œ, ๋Œ€๊ฐœ๋Š” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ์ตœ์ ์˜ ์ธ๋ฑ์Šค๊ฐ€ ์—†์„ ๋•Œ ์ฐจ์„ ์œผ๋กœ ์„ ํƒ๋œ๋‹ค. Index Unique Scan Index Un.. 2022. 5. 26.
[DB & SQL] SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / ์˜ตํ‹ฐ๋งˆ์ด์ € ์›๋ฆฌ SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / ์˜ตํ‹ฐ๋งˆ์ด์ € ์›๋ฆฌ ๊ทœ์น™๊ธฐ๋ฐ˜ ์˜ตํ‹ฐ๋งˆ์ด์ €(Rule-Based Optimizer, ์ดํ•˜ RBO) ๊ทœ์น™๊ธฐ๋ฐ˜ ์˜ตํ‹ฐ๋งˆ์ด์ €(Rule-Based Optimizer, ์ดํ•˜ RBO)๋Š” ๋‹ค๋ฅธ ๋ง๋กœ 'ํœด๋ฆฌ์Šคํ‹ฑ(Heuristic) ์˜ตํ‹ฐ๋งˆ์ด์ €'๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, ๋ฏธ๋ฆฌ ์ •ํ•ด ๋†“์€ ๊ทœ์น™์— ๋”ฐ๋ผ ์•ก์„ธ์Šค ๊ฒฝ๋กœ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ  ์‹คํ–‰๊ณ„ํš์„ ์„ ํƒํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ทœ์น™์ด๋ž€ ์•ก์„ธ์Šค ๊ฒฝ๋กœ๋ณ„ ์šฐ์„ ์ˆœ์œ„๋กœ์„œ, ์ธ๋ฑ์Šค ๊ตฌ์กฐ, ์—ฐ์‚ฐ์ž, ์กฐ๊ฑด์ ˆ ํ˜•ํƒœ๊ฐ€ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •์ง“๋Š” ์ฃผ์š”์ธ์ด๋‹ค. ์„ ํƒ๋„ -> ์นด๋””๋„๋ฆฌํ‹ฐ -> ๋น„์šฉ -> ์•ก์„ธ์Šค ๋ฐฉ์‹, ์กฐ์ธ ์ˆœ์„œ, ์กฐ์ธ ๋ฐฉ๋ฒ• ๋“ฑ ๊ฒฐ์ • ์นด๋””๋„๋ฆฌํ‹ฐ = ์ด ๋กœ์šฐ ์ˆ˜ * ์„ ํƒ๋„ = num_rows / num_distinct ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ทฐ ๋จธ์ง•(View Merging) ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ง‘ํ•ฉ(set) ์—ฐ์‚ฐ์ž(unio.. 2022. 5. 23.
[DB & SQL] SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / Lock๊ณผ ํŠธ๋žœ์žญ์…˜ ๋™์‹œ์„ฑ ์ œ์–ด SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / Lock๊ณผ ํŠธ๋žœ์žญ์…˜ ๋™์‹œ์„ฑ ์ œ์–ด Lock์— ์˜ํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉ์•ˆ ํŠธ๋žœ์žญ์…˜์˜ ์›์ž์„ฑ์„ ํ›ผ์†ํ•˜์ง€ ์•Š๋Š” ์„ ์—์„œ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€๋Šฅํ•œ ์งง๊ฒŒ ์ •์˜ํ•  ๊ฒƒ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋„๋ก ์„ค๊ณ„ํ•  ๊ฒƒ ์ฃผ๊ฐ„์— ๋Œ€์šฉ๋Ÿ‰ ๊ฐฑ์‹  ์ž‘์—…์ด ๋ถˆ๊ฐ€ํ”ผํ•˜๋‹ค๋ฉด, ๋ธ”๋กœํ‚น ํ˜„์ƒ์— ์˜ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌดํ•œ์ • ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๋„๋ก ์ ์ ˆํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์„ ๋„์ž…ํ•  ๊ฒƒ ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์„ฑ ์ˆ˜์ค€์„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ƒํ–ฅ ์กฐ์ •ํ•˜์ง€ ์•Š์„ ๊ฒƒ ํŠธ๋žœ์žญ์…˜์„ ์ž˜ ์„ค๊ณ„ํ•˜๊ณ  ๋Œ€๊ธฐ ํ˜„์ƒ์„ ํ”ผํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜๊ธฐ์— ์•ž์„œ, SQL ๋ฌธ์žฅ์ด ๊ฐ€์žฅ ๋น ๋ฅธ ์‹œ๊ฐ„ ๋‚ด์— ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ•  ๊ฒƒ ๋ธ”๋กœํ‚น(Blocking) ๋ธ”๋กœํ‚น(Blocking)์€ Lock ๊ฒฝํ•ฉ์ด ๋ฐœ์ƒํ•ด ํŠน์ • ์„ธ์…˜์ด ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ฉˆ์ถฐ ์„  ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค. ๊ณต์œ  Lo.. 2022. 5. 23.
[DB & SQL] SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ํŠœ๋‹ ์›๋ฆฌ SQL ๊ณ ๊ธ‰ํ™œ์šฉ ๋ฐ ํŠœ๋‹ / ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ํŠœ๋‹ ์›๋ฆฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐํ•˜๋Š” Oracle์˜ ์˜ˆ ์ „์šฉ ์„œ๋ฒ„(Dedicated Server) ๋ฐฉ์‹ ๊ณต์œ  ์„œ๋ฒ„(Shared Server) ๋ฐฉ์‹ SQL Server์—์„œ๋Š” ์„ธ๊ทธ๋จผํŠธ๋Š” ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, Undo์ฒ˜๋Ÿผ ์ €์žฅ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ธŒ์ ํŠธ๋‹ค. ์ €์žฅ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ•œ ๊ฐœ ์ด์ƒ์˜ ์ต์Šคํ…ํŠธ๋ฅผ ์‚ฌ์šฉํ•จ์„ ๋œปํ•œ๋‹ค. SQL Server์—์„œ๋Š” ์„ธ๊ทธ๋จผํŠธ๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ, ํž™ ๊ตฌ์กฐ ๋˜๋Š” ์ธ๋ฑ์Šค ๊ตฌ์กฐ์˜ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์—ฌ๊ธฐ์— ์†ํ•œ๋‹ค. DB ๋ฒ„ํผ ์บ์‹œ์— ๊ฐ€ํ•ด์ง€๋Š” ๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜๋Š” ํŒŒ์ผ์„ Oracle์€ 'Redo ๋กœ๊ทธ'๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, SQL Server๋Š” 'ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. Response Time Analysis ๋ฐฉ๋ฒ•๋ก  R.. 2022. 5. 22.
[DB & SQL] SQL ๊ธฐ๋ณธ ๋ฐ ํ™œ์šฉ / SQL ์ตœ์ ํ™” ๊ธฐ๋ณธ ์›๋ฆฌ SQL ์ตœ์ ํ™” ๊ธฐ๋ณธ ์›๋ฆฌ Sort Merge Join Sort Merge Join์€ ์กฐ์ธ์นผ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜์—ฌ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. NL(Nested Loops Join) Join์€ ์ฃผ๋กœ ๋žœ๋ค ์•ก์„ธ์Šค ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐ˜๋ฉด Sort Merge Join์€ ์ฃผ๋กœ ์Šค์บ” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š”๋‹ค. Sort Merge Join์€ ๋žœ๋ค ์•ก์„ธ์Šค๋กœ NLJoin์—์„œ ๋ถ€๋‹ด์ด ๋˜๋˜ ๋„“์€ ๋ฒ”์œ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ด์šฉ๋˜๋˜ ์กฐ์ธ๊ธฐ๋ฒ•์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Sort Merge Join์€ ์ •๋ ฌํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ชจ๋“  ์ •๋ ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ์—๋Š” ์ž„์‹œ ์˜์—ญ(๋””์Šคํฌ)์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. NL(Nested Loops Join) Join NL Join์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ๊ณผ .. 2022. 5. 21.
[DB & SQL] SQL ๊ธฐ๋ณธ ๋ฐ ํ™œ์šฉ / SQL ํ™œ์šฉ SQL ๊ธฐ๋ณธ ๋ฐ ํ™œ์šฉ / SQL ํ™œ์šฉ ์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž์™€ SQL ๋ฌธ์žฅ ๋น„๊ต SELECT ์—ฐ์‚ฐ์€ WHERE ์ ˆ๋กœ ๊ตฌํ˜„ PROJECT ์—ฐ์‚ฐ์€ SELECT ์ ˆ๋กœ ๊ตฌํ˜„ (NATURAL) JOIN ์—ฐ์‚ฐ์€ ๋‹ค์–‘ํ•œ JOIN ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌํ˜„ DIVIDE ์—ฐ์‚ฐ์€ ํ˜„์žฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ ANSI/ISO SQL์—์„œ ํ‘œ์‹œํ•˜๋Š” FROM ์ ˆ์˜ JOIN ํ˜•ํƒœ INNER JOIN NATURAL JOIN USING ์กฐ๊ฑด์ ˆ ON ์กฐ๊ฑด์ ˆ CROSS JOIN OUTER JOIN(LEFT, RIGHT, FULL) INNER JOIN INNER JOIN์€ OUTER(์™ธ๋ถ€) JOIN๊ณผ ๋Œ€๋น„ํ•˜์—ฌ ๋‚ด๋ถ€ JOIN์ด๋ผ๊ณ  ํ•˜๋ฉฐ JOIN ์กฐ๊ฑด์—์„œ ๋™์ผํ•œ ๊ฐ’์ด ์žˆ๋Š” ํ–‰๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค. CROSS JOIN ํ…Œ์ด๋ธ” ๊ฐ„ JOIN ์กฐ๊ฑด์ด ์—†๋Š” ๊ฒฝ์šฐ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ฐ์ด.. 2022. 5. 17.
[DB & SQL] SQL ๊ธฐ๋ณธ ๋ฌธ๋ฒ• / SQL ๊ธฐ๋ณธ ์ •๋ฆฌ SQL ๊ธฐ๋ณธ ๋ฌธ๋ฒ• / SQL ๊ธฐ๋ณธ ์ •๋ฆฌ DML, DDL, DCL, TCL ๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜ ๋ช…๋ น์–ด ์„ค๋ช… ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด (DML: Data Manipulation Language) SELECT ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋“ค์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์œผ๋กœ RETRIEVE ๋ผ๊ณ ๋„ ํ•œ๋‹ค. INSERT UPDATE DELETE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์— ๋“ค์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ๋ณ€ํ˜•์„ ๊ฐ€ํ•˜๋Š” ์ข…๋ฅ˜์˜ ๋ช…๋ น์–ด๋“ค์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ํ–‰์„ ์ง‘์–ด๋„ฃ๊ฑฐ๋‚˜, ์›ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋“ค์˜ ๋ช…๋ น์–ด๋“ค์„ DML์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋ฐ์ดํ„ฐ ์ •์˜์–ด (DDL: Data Definition Language) CREATE ALTER DROP RENAME ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š”๋ฐ .. 2022. 5. 14.
[DB & SQL] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด / ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด / ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์„ฑ๋Šฅ ์„ฑ๋Šฅ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์ด๋ž€? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ชฉ์ ์œผ๋กœ ์„ค๊ณ„๋‹จ๊ณ„์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋•Œ๋ถ€ํ„ฐ ์„ฑ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ์‚ฌํ•ญ์ด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์— ๋ฐ˜์˜๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š”๊ฒƒ์ด๋‹ค. ๋ฐ์ดํ„ฐ ๋ณด๋ธ๋ง ๋‹จ๊ณ„์—์„œ ์„ฑ๋Šฅ์„ ์ถฉ๋ถ„ํžˆ ๊ณ ๋ คํ•˜๊ธฐ ์œ„ํ•œ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์ˆ˜ํ–‰ ์ ˆ์ฐจ ์ฒซ๋ฒˆ์งธ, ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์„ ํ•  ๋•Œ ์ •๊ทœํ™”๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋‘๋ฒˆ์งธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฉ๋Ÿ‰์‚ฐ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์„ธ๋ฒˆ์งธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐœ์ƒ๋˜๋Š” ํŠธ๋žœ์žญ์…˜์˜ ์œ ํ˜•์„ ํŒŒ์•…ํ•œ๋‹ค. ๋„ค๋ฒˆ์งธ, ์šฉ๋Ÿ‰๊ณผ ํŠธ๋žœ์žญ์…˜์˜ ์œ ํ˜•์— ๋”ฐ๋ผ ๋ฐ˜์ •๊ทœํ™”(์—ญ์ •๊ทœํ™”)๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋‹ค์„ฏ๋ฒˆ์งธ, ์ด๋ ฅ๋ชจ๋ธ์˜ ์กฐ์ •, PK/FK์กฐ์ •, ์Šˆํผํƒ€์ž…/์„œ๋ธŒํƒ€์ž… ์กฐ์ • ๋“ฑ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์—ฌ์„ฏ๋ฒˆ์งธ, ์„ฑ๋Šฅ๊ด€์ ์—์„œ ๋ฐ์ดํ„ฐ๋ชจ๋ธ์„ ๊ฒ€์ฆํ•œ๋‹ค. ์ค‘๋ณต์†์„ฑ์— ๋Œ€ํ•œ ๋ถ„๋ฆฌ๊ฐ€ 1์ฐจ ์ •๊ทœํ™”์˜ ๋Œ€์ƒ์ด ๋˜๋ฉฐ, ๋กœ์šฐ๋‹จ์œ„์˜ ์ค‘.. 2022. 5. 13.
[DB & SQL] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด / ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด / ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด ๋ฐœ์ƒ์‹œ์ ์— ๋”ฐ๋ฅธ ์—”ํ„ฐํ‹ฐ ๋ถ„๋ฅ˜ ๊ธฐ๋ณธ/ํ‚ค์—”ํ„ฐํ‹ฐ(Fundamental Entity, Key Entity) ์ค‘์‹ฌ์—”ํ„ฐํ‹ฐ(Main Entity) ํ–‰์œ„์—”ํ„ฐํ‹ฐ(Active Entity) ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์ด๋ž€ ์ •๋ณด์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ด€์ ์˜ ์—…๋ฌด ๋ถ„์„ ๊ธฐ๋ฒ• ํ˜„์‹ค์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ(what)์— ๋Œ€ํ•ด ์•ฝ์†๋œ ํ‘œ๊ธฐ๋ฒ•์— ์˜ํ•ด ํ‘œํ˜„ํ•˜๋Š” ๊ณผ์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์„/์„ค๊ณ„์˜ ๊ณผ์ • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์œ ์˜์  ์ค‘๋ณต(Duplication) ๋น„์œ ์—ฐ์„ฑ(Inflexibility) ๋น„์ผ๊ด€์„ฑ(Inconsistency) ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋†’๊ณ  ์—…๋ฌด ์ค‘์‹ฌ์ ์ด๊ณ  ํฌ๊ด„์ ์ธ ์ˆ˜์ค€์˜ ๋ชจ๋ธ๋ง ์ง„ํ–‰. ์ „์‚ฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง. EA์ˆ˜๋ฆฝ์‹œ ๋งŽ์ด ์ด์šฉ ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•˜๋Š” .. 2022. 5. 9.
[SpringBoot] build.gradle, repositories, dependencies, repositories, dependencies๋ž€? Gradle์ด๋ž€? Gradle์€ ์œ ์—ฐ์„ฑ๊ณผ ์„ฑ๋Šฅ์— ์ค‘์ ์„ ๋‘” ์˜คํ”ˆ ์†Œ์Šค ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Gradle ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋Š” *Groovy ๋˜๋Š” Kotlin *๋„๋ฉ”์ธ ํŠนํ™” ์–ธ์–ด(DSL)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ’ก๋„๋ฉ”์ธ ํŠนํ™” ์–ธ์–ด(DSL: Domain-specific language) ํŠน์ •ํ•œ ๋„๋ฉ”์ธ์„ ์ ์šฉํ•˜๋Š”๋ฐ ํŠนํ™”๋œ ์ปดํ“จํ„ฐ ์–ธ์–ด ๐Ÿ’กGroovy Groovy๋Š” ์ž๋ฐ”์— ํŒŒ์ด์ฌ, ๋ฃจ๋น„, ์Šค๋ชฐํ† ํฌ๋“ฑ์˜ ํŠน์ง•์„ ๋”ํ•œ ๋™์  ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. Gradle scripts๋Š” Configuration scripts ์ž…๋‹ˆ๋‹ค. script๊ฐ€ ์‹คํ–‰๋˜๋ฉด ํŠน์ • ์œ ํ˜•์˜ ๊ฐœ์ฒด๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด build script๊ฐ€ ์‹คํ–‰๋ ๋•Œ ํ”„๋กœ์ ํŠธ ์œ ํ˜•์˜ ๊ฐœ์ฒด๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐœ์ฒด๋ฅผ ์Šคํฌ๋ฆฝํŠธ์˜ ๋Œ€๋ฆฌ์ž ๊ฐœ์ฒด ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ .. 2021. 12. 18.
[Django] ์ดˆ๊ธ‰ React + Django ๊ฐ„๋‹จํ•œ ์ต๋ช… ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ 9 pagination, response data useEffect ๋””ํŽœ๋˜์‹œ ํ™œ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ” ๋งตํ•‘ + ๋ Œ๋”๋ง ํ…Œ์ด๋ธ”์„ ๋ถˆ๋Ÿฌ์˜ค๋Š”๋™์•ˆ์˜ ๋ณด์—ฌ์ค„ ๋กœ๋”ฉ, ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„๋•Œ์™€ ์—†์„๋•Œ ๋‹ค๋ฅด๊ฒŒ ๋ณด์—ฌ์ค„ tbody๋“ฑ์„ ์ถ”๊ฐ€, ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. Home.js import React, { useState, useEffect } from 'react'; import axios from 'axios'; import '../pages_css/Home.css'; import BoardModal from './BoardModal'; import Paging from '../utils/Paging'; const Home = () => { // Modal const [modal_is_open, setModalIsOpen] = useSta.. 2021. 11. 27.
[Django] ์ดˆ๊ธ‰ React + Django ๊ฐ„๋‹จํ•œ ์ต๋ช… ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ 8 react-modal ์„ค์น˜, ajax ์‘๋‹ต ์„ฑ๊ณต/์‹คํŒจ ํ•ธ๋“ค๋ง, ๋ฐฑ์—”๋“œ ์ƒˆ๋กœ์šด model ์ƒ์„ฑํ•˜์—ฌ insert react์—์„œ ์ธ์„œํŠธ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ฌํ™”๋ฉด์„ ์ •์˜ํ•˜๊ณ  ์‘๋‹ต์— ๋”ฐ๋ผ ํ•ธ๋“ค๋ง ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ npm install react-modal์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค. Home.js import React, { useState } from 'react'; import '../pages_css/Home.css'; import BoardModal from './BoardModal'; const Home = () => { const [modal_is_open, setModalIsOpen] = useState(false); return ( Home setModalIsOpen(true)}> NEW ); }.. 2021. 11. 26.
๋ฐ˜์‘ํ˜•