๋ฐ์ํ ๐ฅ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. ์ด์ 1 2 3 ๋ค์ ๋ฐ์ํ