μ격μ¦/SQLD
νΈλμμ
μμμ±(atomicity) : νΈλμμ
μμ μ μλ μ°μ°λ€μ λͺ¨λ μ±κ³΅μ μΌλ‘ μ€νλλμ§ μλλ©΄ μ ν μ€νλμ§ μμ μνλ‘ λ¨μ μμ΄μΌ νλ€. (All or Nothing) μΌκ΄μ±(consistency) : νΈλμμ
μ΄ μ€ν λκΈ° μ μ λ°μ΄ν°λ² μ΄μ€ λ΄μ©μ΄ μλͺ» λμ΄ μμ§ μλ€λ©΄ νΈλμμ
μ΄ μ€νλ μ΄νμλ λ°μ΄ν°λ² μ΄μ€μ λ΄μ©μ μλͺ»μ΄ μμΌλ©΄ μλλ€. κ³ λ¦½μ±(isolation) : νΈλμμ
μ΄ μ€νλλ λμ€μ λ€λ₯Έ νΈλμμ
μ μν₯μ λ°μ μλͺ»λ κ²°κ³Όλ₯Ό λ§λ€μ΄μλ μλλ€. μ§μμ±(durability) : νΈλμμ
μ΄ μ±κ³΅μ μΌλ‘ μνλλ©΄ κ·Έ νΈλμμ
μ΄ κ°±μ ν λ°μ΄ν°λ² μ΄μ€μ λ΄μ©μ μꡬμ μΌλ‘ μ μ₯λλ€. 격리μ±(isolation)μΌλ‘ μΈν΄ λνλ μ μλ λ¬Έμ μ Dirty Read λ€λ₯Έ νΈλμμ
μ μν΄ μμ λμ§λ§ ..
Spring/Spring DB
DataSource μ΄ν΄ 컀λ₯μ
μ μ»λ λ°©λ²μ μμ νμ΅ν JDBC DriverManager λ₯Ό μ§μ μ¬μ©νκ±°λ, 컀λ₯μ
νμ μ¬μ©νλ λ± λ€μν λ°©λ²μ΄ μ‘΄μ¬νλ€. DriverManagerλ₯Ό ν΅ν΄ 컀λ₯μ
νλνλ€κ° 컀λ₯μ
νλ‘ λ³κ²½μ λ¬Έμ μ°λ¦¬κ° μμ JDBCλ‘ κ°λ°ν μ ν리μΌμ΄μ
μ²λΌ DriverManager λ₯Ό ν΅ν΄μ 컀λ₯μ
μ νλνλ€κ°, 컀λ₯μ
νμ μ¬μ©νλ λ°©λ²μΌλ‘ λ³κ²½νλ €λ©΄ μ΄λ»κ² ν΄μΌν κΉ? μλ₯Ό λ€μ΄μ μ ν리μΌμ΄μ
λ‘μ§μμ DriverManager λ₯Ό μ¬μ©ν΄μ 컀λ₯μ
μ νλνλ€κ° HikariCP κ°μ 컀λ₯μ
νμ μ¬μ©νλλ‘ λ³κ²½νλ©΄ 컀λ₯μ
μ νλνλ μ ν리μΌμ΄μ
μ½λλ ν¨κ» λ³κ²½ν΄μΌ νλ€. μμ‘΄κ΄κ³κ° DriverManager μμ HikariCP λ‘ λ³κ²½λκΈ° λλ¬Έμ΄λ€. λ¬Όλ‘ λμ μ¬μ©λ²λ μ‘°κΈ..
Spring/Spring DB
λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ
μ λ§€λ² νλ(볡μ‘ν κ³Όμ ) λ°μ΄ν°λ² μ΄μ€ 컀λ₯μ
μ νλν λλ λ€μκ³Ό κ°μ 볡μ‘ν κ³Όμ μ κ±°μΉλ€. 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
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
λ¬Έμ μ λ°μ΄ν°λ² μ΄μ€λ₯Ό λ€λ₯Έ μ’
λ₯μ λ°μ΄ν°λ² μ΄μ€λ‘ λ³κ²½νλ©΄ μ ν리μΌμ΄μ
μλ²μ κ°λ°λ λ°μ΄ν°λ² μ΄μ€ μ¬μ© μ½λλ ν¨κ» λ³κ²½ν΄μΌ νλ€. κ°λ°μκ° κ°κ°μ λ°μ΄ν°λ² μ΄μ€λ§λ€ 컀λ₯μ
μ°κ²°, SQL μ λ¬, κ·Έλ¦¬κ³ κ·Έ κ²°κ³Όλ₯Ό μλ΅ λ°λ λ°©λ²μ μλ‘ νμ΅ν΄μΌ νλ€. μ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ JDBCλΌλ μλ° νμ€μ΄ λ±μ₯νλ€. JDBC μ΄ν΄ JDBC(Java Database Connectivity)λ μλ°μμ λ°μ΄ν°λ² μ΄μ€μ μ μν μ μλλ‘ νλ μλ° APIλ€. JDBCλ λ°μ΄ν°λ² μ΄μ€μμ μλ£λ₯Ό 쿼리νκ±°λ μ
λ°μ΄νΈνλ λ°©λ²μ μ 곡νλ€. JDBCλ₯Ό μ§μ μ¬μ©νμ§λ μλλΌλ, JDBCκ° μ΄λ»κ² λμνλμ§ κΈ°λ³Έ μ리λ₯Ό μμλμ΄μΌ νλ€. κ·ΈλμΌ ν΄λΉ κΈ°μ λ€μ λ κΉμ΄μκ² μ΄ν΄ν μ μκ³ , 무μλ³΄λ€ λ¬Έμ κ° λ°μνμ λ κ·Όλ³Έμ μΈ λ¬Έ..
μ격μ¦/SQLD
μ±λ₯λ°μ΄ν°λͺ¨λΈλ§ λ°μ΄ν° λ² μ΄μ€ μ±λ₯ ν₯μμ λͺ©μ μΌλ‘ μ€κ³ λ¨κ³μ λ°μ΄ν° λͺ¨λΈλ§ λ λΆν° μ±λ₯κ³Ό κ΄λ ¨λ μ¬νμ΄ λ°μ΄ν° λͺ¨λΈλ§μ λ°μλ μ μλλ‘ νλ κ² μ±λ₯ν₯μμ μν λΉμ©μ νλ‘μ νΈ μν μ€μ μμ΄μ μ¬μ μ ν μλ‘ λΉμ©μ΄ μ κ² λ λ€. νΉν, λΆμ / μ€κ³ λ¨κ³μμ λ°μ΄ν° λͺ¨λΈμ μ±λ₯μ κ³ λ €ν λ°μ΄ν° λͺ¨λΈλ§μ μνν κ²½μ° μ±λ₯μ νμ λ°λ₯Έ μ¬μ
무(Rework) λΉμ©μ μ΅μν ν μ μλ κΈ°νλ₯Ό κ°μ§κ² λλ€. λ°μ΄ν° λͺ¨λΈμ μ±λ₯μ νλνλ©΄μ λ³κ²½μ΄ λ μ μλ€. μ±λ₯ λ°μ΄ν° λͺ¨λΈλ§ μν μ μ°¨ 1. λͺ¨λΈλ§ ν λ μ κ·νλ₯Ό μ νν μν 2. μ©λμ°μ μν 3. νΈλμμ
μ μ ν νμ
4. μ©λκ³Ό νΈλμμ
μ νμ λ°λΌ λ°μ κ·ν μν 5. μ΄λ ₯λͺ¨λΈμ μ‘°μ , PK/FKμ‘°μ , μν΄νμ
/μλΈνμ
μ‘°μ μν 6. κ²μ¦ λ°μ κ·..
Develop/OSS
μΊ‘μ°¨(CAPTCHA, μΉμ¬μ΄νΈ λ±λ‘μΈμ¦ μλΉμ€) μ€νμμ€μ μ μ μ μκΆμκ° μμ€μ½λλ₯Ό 곡κ°νμ¬ λꡬλ μμ λ‘κ² μ¬μ©, μμ , μ¬λ°°ν¬ ν μ μλ μμ λ‘μ΄ μννΈμ¨μ΄ Free μννΈμ¨μ΄: 곡λ체 μ μ²΄κ° μ»μ μ μλλ‘ μ΄λ₯Ό λ°°ν¬ μ€ν μμ€μ μλ―Έλ ‘μμ€ μ½λλ₯Ό λ€μ¬λ€ λ³Ό μ μλ€.’λ κ²μΌλ‘ Free μννΈμ¨μ΄μ κΈ°μ€μλ λͺ»λ―ΈμΉλ€. - GNU λΌμ΄μ μ€(License)λ λμ¬ κ·μΉμ μ μν΄ λμ μ¬μ© νκ°κΆ(License) μ€νμμ€ μ¬μ©μλ λΌμ΄μ μ€λ₯Ό μ€μν΄μΌ ν μλ¬΄κ° μμ΅λλ€. κΈ°λ³Έμ μΈ μ무μ¬ν “μ½λλ₯Ό μ¬μ©νλ©΄μ μΆμ²λ₯Ό λ°νλ κ²μ κ°λ°μμ μ무μ¬ν” μμ€ μ½λλ₯Ό 곡κ°ν΄μΌνλ GPL μννΈμ¨μ΄ GPLμ κ²½μ° μμ€μ½λ μ 체 κ³΅κ° μ무μ¬ν MPL, EPL λ±μ λΌμ΄μ μ€λ μμ ν λΆλΆμ μμ€μ½λλ₯Ό 곡κ°
Develop/DB
λͺ
μ¬μ λμ¬λ₯Ό λΉΌκ³ λ€ μ κ±°νμ κ³Όλͺ© / νλ
/ λ΄λΉ μ μλ μν(μ€κ°κ³ μ¬,κΈ°λ§κ³ μ¬) νμ / νλ
/ λ° / λ°°μ νλ€ / κ³ μ λ²νΈ(λ°λ³) λ΄μμ μλ / μ μλ # ν λ°μ νμ 40λͺ
# λ¨λ
곡ν #μμ°¨(λ¨λ
κ³΅ν΅ 1λ±λΆν° μμ) λ§μ€ν° ν
μ΄λΈμ μ€κ³νμ 1:M κ΄κ³λ₯Ό μ°Ύμ보μ νλμ νλ
μ΄ μ¬λ¬κ°μ λ°μ κ°λλ€ λ° μ
μ₯μμ 보면 νλ
μ νλλ€ ( 1νλ
1λ°μ΄μ§λ§ 2νλ
1λ° μΌμλ μλ€ ) νλ
μ 1,2,3 νλ
λ°μ μλ€ κ°μ λ£μ΄μ€μ μλ DBλ λ£μ΄μ£Όκ³ λ΄μΈμν€μ ( SELECT λ§ μ΄μ΄λκ³ λ€ λ§λλ€ )