전체 κΈ€

자격증/SQLD

[SQLD] 4. SQL κΈ°λ³Έ - 2

νŠΈλžœμž­μ…˜ μ›μžμ„±(atomicity) : νŠΈλžœμž­μ…˜μ—μ„œ μ •μ˜λœ 연산듀은 λͺ¨λ‘ μ„±κ³΅μ μœΌλ‘œ μ‹€ν–‰λ˜λ˜μ§€ μ•„λ‹ˆλ©΄ μ „ν˜€ μ‹€ν–‰λ˜μ§€ μ•Šμ€ μƒνƒœλ‘œ 남아 μžˆμ–΄μ•Ό ν•œλ‹€. (All or Nothing) 일관성(consistency) : νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰ 되기 μ „μ˜ λ°μ΄ν„°λ² μ΄μŠ€ λ‚΄μš©μ΄ 잘λͺ» λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄ νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰λœ 이후에도 λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ‚΄μš©μ— 잘λͺ»μ΄ 있으면 μ•ˆλœλ‹€. 고립성(isolation) : νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰λ˜λŠ” 도쀑에 λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ˜ 영ν–₯을 λ°›μ•„ 잘λͺ»λœ κ²°κ³Όλ₯Ό λ§Œλ“€μ–΄μ„œλŠ” μ•ˆλœλ‹€. 지속성(durability) : νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰λ˜λ©΄ κ·Έ νŠΈλžœμž­μ…˜μ΄ κ°±μ‹ ν•œ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ‚΄μš©μ€ 영ꡬ적으둜 μ €μž₯λœλ‹€. 격리성(isolation)으둜 인해 λ‚˜νƒ€λ‚  수 μžˆλŠ” 문제점 Dirty Read λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ— μ˜ν•΄ μˆ˜μ •λμ§€λ§Œ ..

Spring/Spring DB

[μŠ€ν”„λ§ DB 1편] - 3. DataSource 이해

DataSource 이해 컀λ„₯μ…˜μ„ μ–»λŠ” 방법은 μ•žμ„œ ν•™μŠ΅ν•œ JDBC DriverManager λ₯Ό 직접 μ‚¬μš©ν•˜κ±°λ‚˜, 컀λ„₯μ…˜ 풀을 μ‚¬μš©ν•˜λŠ” λ“± λ‹€μ–‘ν•œ 방법이 μ‘΄μž¬ν•œλ‹€. DriverManagerλ₯Ό 톡해 컀λ„₯μ…˜ νšλ“ν•˜λ‹€κ°€ 컀λ„₯μ…˜ ν’€λ‘œ λ³€κ²½μ‹œ 문제 μš°λ¦¬κ°€ μ•žμ„œ JDBC둜 κ°œλ°œν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 처럼 DriverManager λ₯Ό ν†΅ν•΄μ„œ 컀λ„₯μ…˜μ„ νšλ“ν•˜λ‹€κ°€, 컀λ„₯μ…˜ 풀을 μ‚¬μš©ν•˜λŠ” λ°©λ²•μœΌλ‘œ λ³€κ²½ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒ? 예λ₯Ό λ“€μ–΄μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ‘œμ§μ—μ„œ DriverManager λ₯Ό μ‚¬μš©ν•΄μ„œ 컀λ„₯μ…˜μ„ νšλ“ν•˜λ‹€κ°€ HikariCP 같은 컀λ„₯μ…˜ 풀을 μ‚¬μš©ν•˜λ„λ‘ λ³€κ²½ν•˜λ©΄ 컀λ„₯μ…˜μ„ νšλ“ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œλ„ ν•¨κ»˜ λ³€κ²½ν•΄μ•Ό ν•œλ‹€. μ˜μ‘΄κ΄€κ³„κ°€ DriverManager μ—μ„œ HikariCP 둜 λ³€κ²½λ˜κΈ° λ•Œλ¬Έμ΄λ‹€. λ¬Όλ‘  λ‘˜μ˜ μ‚¬μš©λ²•λ„ 쑰금..

Spring/Spring DB

[μŠ€ν”„λ§ DB 1편] - 2. 컀λ„₯μ…˜ν’€(Connection Pool)

λ°μ΄ν„°λ² μ΄μŠ€ 컀λ„₯μ…˜μ„ 맀번 νšλ“(λ³΅μž‘ν•œ κ³Όμ •) λ°μ΄ν„°λ² μ΄μŠ€ 컀λ„₯μ…˜μ„ νšλ“ν•  λ•ŒλŠ” λ‹€μŒκ³Ό 같은 λ³΅μž‘ν•œ 과정을 κ±°μΉœλ‹€. 0. μ‚¬μš©μž μš”μ²­ 1. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ‘œμ§μ€ DB λ“œλΌμ΄λ²„λ₯Ό 톡해 컀λ„₯μ…˜μ„ μ‘°νšŒν•œλ‹€. 2. DB λ“œλΌμ΄λ²„λŠ” DB 와 TCP/IP 컀λ„₯μ…˜μ„ μ—°κ²°ν•œλ‹€. λ¬Όλ‘  μ΄κ³Όμ •μ—μ„œ 3 way handshake 같은 TCP/IP 연결을 μœ„ν•œ λ„€νŠΈμ›Œν¬ λ™μž‘μ΄ λ°œμƒν•œλ‹€. 3. DB λ“œλΌμ΄λ²„λŠ” TCP/IP 컀λ„₯μ…˜μ΄ μ—°κ²°λ˜λ©΄, ID/PW와 기타 뢀가정보λ₯Ό DB에 μ „λ‹¬ν•œλ‹€. 4. DBλŠ” ID,PWλ₯Ό 톡해 λ‚΄λΆ€ 인증을 μ™„λ£Œν•˜κ³ , 내뢀에 DB μ„Έμ…˜μ„ μƒμ„±ν•œλ‹€. 5. DBλŠ” 컀λ„₯μ…˜ 생성이 μ™„λ£Œλ˜μ—ˆλ‹€λŠ” 응닡을 보낸닀. 6. DB λ“œλΌμ΄λ²„λŠ” 컀λ„₯μ…˜ 객체λ₯Ό μƒμ„±ν•΄μ„œ ν΄λΌμ΄μ–ΈνŠΈμ— λ°˜ν™˜ν•œλ‹€. μ΄λ ‡κ²Œ 컀λ„₯μ…˜μ„ μƒˆλ‘œ λ§Œλ“œλŠ” 것은 과정도..

자격증/SQLD

[SQLD] 3. SQL κΈ°λ³Έ - 1

SQL λ¬Έμž₯λ“€μ˜ μ’…λ₯˜ 데이터 μ‘°μž‘μ–΄(DML) : SELECT , INSERT , UPDATE , DELETE λΉ„μ ˆμ°¨μ  : 무슨(what) 데이터λ₯Ό μ›ν•˜λŠ”μ§€λ§Œ λͺ…μ„Έ 절차적 : μ–΄λ–»κ²Œ(how) 데이터λ₯Ό μ ‘κ·Όν•΄μ•Ό ν•˜λŠ”μ§€ λͺ…μ„Έ 데이터 μ •μ˜μ–΄(DDL) : CREATE , ALTER , DROP , RENAME 데이터 μ œμ–΄μ–΄(DCL) : GRANT , REVOKE νŠΈλžœμž­μ…˜ μ œμ–΄μ–΄(TCL) : COMMIT , ROLLBACK PRIMARY KEY μ„€μ • CREATE λ¬Έ ALTER λ¬Έ ν…Œμ΄λΈ” μ»¬λŸΌμ— λŒ€ν•œ μ •μ˜ λ³€κ²½ (ALTER) [Oracle] ALTER TABLE ν…Œμ΄λΈ”λͺ… MODIFY ( 칼럼λͺ… λ°μ΄ν„°μœ ν˜• NOT NULL ) [SQL Server] ALTER TABLE ν…Œμ΄λΈ”λͺ… ALTER COLUMN 컬럼λͺ… λ°μ΄ν„°μœ ν˜•..

Spring/Spring DB

[μŠ€ν”„λ§ DB 1편] - 1. JDBC 이해

문제점 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ‹€λ₯Έ μ’…λ₯˜μ˜ λ°μ΄ν„°λ² μ΄μŠ€λ‘œ λ³€κ²½ν•˜λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„μ— 개발된 λ°μ΄ν„°λ² μ΄μŠ€ μ‚¬μš© μ½”λ“œλ„ ν•¨κ»˜ λ³€κ²½ν•΄μ•Ό ν•œλ‹€. κ°œλ°œμžκ°€ 각각의 λ°μ΄ν„°λ² μ΄μŠ€λ§ˆλ‹€ 컀λ„₯μ…˜ μ—°κ²°, SQL 전달, 그리고 κ·Έ κ²°κ³Όλ₯Ό 응닡 λ°›λŠ” 방법을 μƒˆλ‘œ ν•™μŠ΅ν•΄μ•Ό ν•œλ‹€. 이런 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ JDBCλΌλŠ” μžλ°” ν‘œμ€€μ΄ λ“±μž₯ν•œλ‹€. JDBC 이해 JDBC(Java Database Connectivity)λŠ” μžλ°”μ—μ„œ λ°μ΄ν„°λ² μ΄μŠ€μ— 접속할 수 μžˆλ„λ‘ ν•˜λŠ” μžλ°” APIλ‹€. JDBCλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 자료λ₯Ό μΏΌλ¦¬ν•˜κ±°λ‚˜ μ—…λ°μ΄νŠΈν•˜λŠ” 방법을 μ œκ³΅ν•œλ‹€. JDBCλ₯Ό 직접 μ‚¬μš©ν•˜μ§€λŠ” μ•Šλ”λΌλ„, JDBCκ°€ μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”μ§€ κΈ°λ³Έ 원리λ₯Ό μ•Œμ•„λ‘μ–΄μ•Ό ν•œλ‹€. κ·Έλž˜μ•Ό ν•΄λ‹Ή κΈ°μˆ λ“€μ„ 더 깊이있게 이해할 수 있고, 무엇보닀 λ¬Έμ œκ°€ λ°œμƒν–ˆμ„ λ•Œ 근본적인 λ¬Έ..

자격증/SQLD

[SQLD] 2. 데이터 λͺ¨λΈκ³Ό μ„±λŠ₯

μ„±λŠ₯데이터λͺ¨λΈλ§ 데이터 베이슀 μ„±λŠ₯ ν–₯상을 λͺ©μ μœΌλ‘œ 섀계 λ‹¨κ³„μ˜ 데이터 λͺ¨λΈλ§ λ•Œ λΆ€ν„° μ„±λŠ₯κ³Ό κ΄€λ ¨λœ 사항이 데이터 λͺ¨λΈλ§μ— 반영될 수 μžˆλ„λ‘ ν•˜λŠ” 것 μ„±λŠ₯ν–₯상을 μœ„ν•œ λΉ„μš©μ€ ν”„λ‘œμ νŠΈ μˆ˜ν–‰ 쀑에 μžˆμ–΄μ„œ 사전에 ν• μˆ˜λ‘ λΉ„μš©μ΄ 적게 λ“ λ‹€. 특히, 뢄석 / 섀계 λ‹¨κ³„μ—μ„œ 데이터 λͺ¨λΈμ— μ„±λŠ₯을 κ³ λ €ν•œ 데이터 λͺ¨λΈλ§μ„ μˆ˜ν–‰ν•  경우 μ„±λŠ₯μ €ν•˜μ— λ”°λ₯Έ μž¬μ—…λ¬΄(Rework) λΉ„μš©μ„ μ΅œμ†Œν™” ν•  수 μžˆλŠ” 기회λ₯Ό κ°€μ§€κ²Œ λœλ‹€. 데이터 λͺ¨λΈμ€ μ„±λŠ₯을 νŠœλ‹ν•˜λ©΄μ„œ 변경이 될 수 μžˆλ‹€. μ„±λŠ₯ 데이터 λͺ¨λΈλ§ μˆ˜ν–‰ 절차 1. λͺ¨λΈλ§ ν• λ•Œ μ •κ·œν™”λ₯Ό μ •ν™•νžˆ μˆ˜ν–‰ 2. μš©λŸ‰μ‚°μ • μˆ˜ν–‰ 3. νŠΈλžœμž­μ…˜μ˜ μœ ν˜• νŒŒμ•… 4. μš©λŸ‰κ³Ό νŠΈλžœμž­μ…˜ μœ ν˜•μ— 따라 λ°˜μ •κ·œν™” μˆ˜ν–‰ 5. 이λ ₯λͺ¨λΈμ˜ μ‘°μ •, PK/FKμ‘°μ •, μŠˆνŽ΄νƒ€μž…/μ„œλΈŒνƒ€μž… μ‘°μ • μˆ˜ν–‰ 6. 검증 λ°˜μ •κ·œ..

Develop/OSS

μ˜€ν”ˆμ†ŒμŠ€

μΊ‘μ°¨(CAPTCHA, μ›Ήμ‚¬μ΄νŠΈ 등둝인증 μ„œλΉ„μŠ€) μ˜€ν”ˆμ†ŒμŠ€μ˜ μ •μ˜ μ €μž‘κΆŒμžκ°€ μ†ŒμŠ€μ½”λ“œλ₯Ό κ³΅κ°œν•˜μ—¬ λˆ„κ΅¬λ‚˜ 자유둭게 μ‚¬μš©, μˆ˜μ •, 재배포 ν•  수 μžˆλŠ” 자유둜운 μ†Œν”„νŠΈμ›¨μ–΄ Free μ†Œν”„νŠΈμ›¨μ–΄: 곡동체 전체가 얻을 수 μžˆλ„λ‘ 이λ₯Ό 배포 μ˜€ν”ˆ μ†ŒμŠ€μ˜ μ˜λ―ΈλŠ” ‘μ†ŒμŠ€ μ½”λ“œλ₯Ό λ“€μ—¬λ‹€ λ³Ό 수 μžˆλ‹€.’λŠ” κ²ƒμœΌλ‘œ Free μ†Œν”„νŠΈμ›¨μ–΄μ˜ κΈ°μ€€μ—λŠ” λͺ»λ―ΈμΉœλ‹€. - GNU λΌμ΄μ„ μŠ€(License)λŠ” λŒ€μ—¬ κ·œμΉ™μ„ μ •μ˜ν•΄ 놓은 μ‚¬μš© ν—ˆκ°€κΆŒ(License) μ˜€ν”ˆμ†ŒμŠ€ μ‚¬μš©μžλŠ” λΌμ΄μ„ μŠ€λ₯Ό μ€€μˆ˜ν•΄μ•Ό ν•  μ˜λ¬΄κ°€ μžˆμŠ΅λ‹ˆλ‹€. 기본적인 μ˜λ¬΄μ‚¬ν•­ “μ½”λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ 좜처λ₯Ό λ°νžˆλŠ” 것은 개발자의 μ˜λ¬΄μ‚¬ν•­” μ†ŒμŠ€ μ½”λ“œλ₯Ό κ³΅κ°œν•΄μ•Όν•˜λŠ” GPL μ†Œν”„νŠΈμ›¨μ–΄ GPL의 경우 μ†ŒμŠ€μ½”λ“œ 전체 곡개 μ˜λ¬΄μ‚¬ν•­ MPL, EPL λ“±μ˜ λΌμ΄μ„ μŠ€λŠ” μˆ˜μ •ν•œ λΆ€λΆ„μ˜ μ†ŒμŠ€μ½”λ“œλ₯Ό 곡개

Develop/DB

[RDBMS Modeling 기초] 6. 관계(Relation) - μ—°μŠ΅λ¬Έμ œ1

λͺ…사와 동사λ₯Ό λΉΌκ³  λ‹€ μ œκ±°ν•˜μž κ³Όλͺ© / ν•™λ…„ / λ‹΄λ‹Ή μ„ μƒλ‹˜ μ‹œν—˜(쀑간고사,기말고사) 학생 / ν•™λ…„ / 반 / λ°°μ •ν•˜λ‹€ / 고유번호(λ°˜λ³„) λ‹΄μž„μ„ μƒλ‹˜ / μ„ μƒλ‹˜ # ν•œ 반의 학생 40λͺ… # 남녀 곡학 #석차(남녀 곡톡 1λ“±λΆ€ν„° μˆœμ„œ) λ§ˆμŠ€ν„° ν…Œμ΄λΈ”μ„ μ„€κ³„ν•˜μž 1:M 관계λ₯Ό μ°Ύμ•„λ³΄μž ν•˜λ‚˜μ˜ 학년이 μ—¬λŸ¬κ°œμ˜ λ°˜μ„ κ°–λŠ”λ‹€ 반 μž…μž₯μ—μ„œ 보면 학년은 ν•˜λ‚˜λ‹€ ( 1ν•™λ…„ 1λ°˜μ΄μ§€λ§Œ 2ν•™λ…„ 1반 μΌμˆ˜λŠ” μ—†λ‹€ ) 학년은 1,2,3 ν•™λ…„ 밖에 μ—†λ‹€ 값을 λ„£μ–΄μ€„μˆ˜ μžˆλŠ” DBλŠ” λ„£μ–΄μ£Όκ³  λ΄‰μΈμ‹œν‚€μž ( SELECT 만 열어두고 λ‹€ λ§‰λŠ”λ‹€ )

hello_u
😜