!โญ๏ธ๋ชฉ์ฐจ๋ฅผ ํ†ตํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐœ๋…์„ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

!โญ๏ธ๋ชฉ์ฐจ

1. JDBC

JDBC๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ณ , ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

2. Connection Pool๊ณผ DataSource

์ปค๋„ฅ์…˜ ํ’€์ด ์ฃผ๋Š” ์ด์ ๊ณผ ๋ฐ์ดํ„ฐ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋‚˜์•„์ง€๋Š” ์ ์ด ์–ด๋–ค๊ฒƒ์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ

3. Transaction

Transaction์ด ๋ฌด์—‡์ด๊ณ  ์™œ ํ•„์š”ํ•œ์ง€ ์•Œ์•„๋ณด๊ธฐ

4. ์Šคํ”„๋ง์—์„œ์˜ Transaction ์ฒ˜๋ฆฌ

์Šคํ”„๋ง์œผ๋กœ ๋‹จ์ˆœ Transaction ์ ์šฉ์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ • ์•Œ์•„๋ณด๊ธฐ

5. JdbcTemplate

JdbcTemplate์˜ ์ ์šฉ์œผ๋กœ ์–ป์€ ์žฅ์  ์•Œ์•„๋ณด๊ธฐ

6. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ DB ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•๊ณผ ํ…Œ์ŠคํŠธ์—์„œ์˜ Transaction ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•

DB์— ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๊ฐ€๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ, ํ…Œ์ŠคํŠธ์—์„œ DB๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํŠธ๋žœ์žญ์…˜์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• ์•Œ์•„๋ณด๊ธฐ

7. MyBatis

MyBatis๋กœ ๋™์  ์ฟผ๋ฆฌ ์ž‘์„ฑ ๋ฐฉ๋ฒ• ์•Œ์•„๋ณด๊ธฐ

8. JPA

JPA์™€ JPA๊ฐ€ ์ œ๊ณตํ•˜๋Š” ORM์˜ ์ด์  ์•Œ์•„๋ณด๊ธฐ

9. AOP

AOP๋ฅผ ํ†ตํ•ด ํ”„๋ก์‹œ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์ž๋™์œผ๋กœ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋Š” ๊ณผ์ • ์•Œ์•„๋ณด๊ธฐ

10. ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ

ํŠธ๋žœ์žญ์…˜ ์•ˆ์— ๋˜ ํŠธ๋žœ์žญ์…˜์ด ์ƒ์„ฑ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ

์›๋ณธ ๋งํฌ

19๊ฑด์˜ ํ•ญ๋ชฉ

  • 2025๋…„ 3์›” 16์ผ

    ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ(Transaction Propagation) ์ •์˜ ํŠธ๋žœ์žญ์…˜์ด ํ•˜๋‚˜ ์‹œ์ž‘ํ•œ ์ƒํƒœ์—์„œ ๋˜ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•˜๋ฉด ์ƒˆ ํŠธ๋žœ์žญ์…˜์„ ์ƒ์„ฑํ• ์ง€, ๊ธฐ์กด ํŠธ๋žœ์žญ์…˜์— ์ฐธ์—ฌํ• ์ง€ ๋“ฑ๋“ฑ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹ Spring์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ์กด ํŠธ๋žœ์žญ์…˜์— ์ฐธ์—ฌํ•˜๋Š” ๋ฐฉ์‹์ด ๊ธฐ๋ณธ๊ฐ’์ด๊ณ , ์›ํ•  ์‹œ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค ...

  • 2025๋…„ 3์›” 15์ผ

    AOP(Aspect-Oriented Programming)์˜ ์ •์˜ ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(AOP) ์„ ์ด์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ธฐ๋ฒ•Spring์—์„œ๋Š” @Transactional์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋ก์‹œ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ AOP๊ฐ€ ์ž๋™์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ”„๋ก์‹œ๋ž€? ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ ธ์„œ ์›๋ž˜ ๊ฐ์ฒด ๋Œ€์‹ ํ•ด์„œ ์š”์ฒญ์„ ๋ฐ›๊ณ , ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ค‘๊ฐ„ ์—ญํ• ์˜ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

  • 2025๋…„ 3์›” 12์ผ

    Querydsl์˜ ์ •์˜ Java ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ SQL, JPA, MongoDB ๋“ฑ์˜ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌJPA์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋กœ ๋ณต์žกํ•œ ๋™์  ์ฟผ๋ฆฌ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Qํด๋ž˜์Šค Querydsl์ด ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ž๋™ ์ƒ์„ฑํ•˜๋Š” ํด๋ž˜์Šคํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด Java ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • 2025๋…„ 3์›” 10์ผ

    JPA์˜ ์ •์˜ JPA(Java Persistence API)๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋งคํ•‘(ORM, Object-Relational Mapping)ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ API์ฆ‰, DB์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ฐ์ฒด ๋‹ค๋ฃจ๋“ฏ์ด ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค. ORM ๋งคํ•‘ ํ”„๋กœ์ ํŠธ์˜ ๊ฐ์ฒด์™€ ์ด ๊ฐ์ฒด์— ํ•ด๋‹นํ•˜๋Š” DB์˜ ํ…Œ์ด๋ธ”์„ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • 2025๋…„ 3์›” 09์ผ

    MyBatis์˜ ์ •์˜ JdbcTemplate์ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉด์„œ ์ถ”๊ฐ€๋กœ ๋™์  ์ฟผ๋ฆฌ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” SQL Mapper XML์„ ํ†ตํ•ด SQL ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๊ธฐ๋Šฅ์— ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์šฉ ๋ฐฉ๋ฒ• findAll()์—์„œ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด ์žˆ๊ณ , ๊ฒ€์ƒ‰ ์กฐ๊ฑด์„ ๋„ฃ๊ธฐ ์œ„ํ•œ MemberSearchCond๊ฐ€ ์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • 2025๋…„ 3์›” 08์ผ

    ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ๊ฐ ํ…Œ์ŠคํŠธ๋ณ„๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๊ฐ€ ๋˜๋ฉด, ์ด๋Š” ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๊ณ , ๋˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ค‘๋ณต ์‹คํ–‰ํ•  ๋•Œ ์ด์ „์— ์„ฑ๊ณตํ–ˆ๋˜ ํ…Œ์ŠคํŠธ๊ฐ€ ๋‹ค์Œ์—” ์‹คํŒจํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ์— ๊ฐ„์„ญ์„ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ–ˆ๋˜ ๋ฐ์ดํ„ฐ๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ๋๋‚˜๋ฉด ๋ชจ๋‘ ์ง€์›Œ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • 2025๋…„ 3์›” 08์ผ

    ์ง์ ‘ ์—ฐ๊ฒฐ test ํด๋” ํ•˜์œ„์˜ resources/application.properties์—๋„ spring.datasource.~ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค. # properties spring.profiles.active = test spring.datasource.url = jdbc:h2:tcp://localhost/~/test spring.datasource.username = sa spring.datasource.password = ์ž„๋ฒ ๋””๋“œ DB ์—ฐ๊ฒฐ 1.

  • 2025๋…„ 3์›” 07์ผ

    JdbcTemplate์˜ ์ •์˜ ํ…œํ”Œ๋ฆฟ ์ฝœ๋ฐฑ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ JDBC๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ˜๋ณต ์ž‘์—…์„ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ JDBC ๋‹จ์ˆœ ์‚ฌ์šฉ๊ณผ์˜ ๋น„๊ต [Before] @RequiredArgsConstructor public class BeforeRepository { private final DataSource ...

  • 2025๋…„ 3์›” 06์ผ

    SQLExceptionTranslator์˜ ์ •์˜ Spring์—์„œ ์ฒดํฌ ์˜ˆ์™ธ์ธ SQLException์„ ์ ์ ˆํ•œ DataAccessException ๊ณ„์—ด์˜ ์˜ˆ์™ธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ๋ฒ• translate() ์‚ฌ์šฉ DataAccessException translate(String task, @Nullable ...

  • 2025๋…„ 3์›” 06์ผ

    DataAccessException์˜ ์ •์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Spring์—์„œ ์ œ๊ณตํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ์˜ˆ์™ธ ์ฒดํฌ ์˜ˆ์™ธ๋กœ ์„ ์–ธ๋  ๊ฒฝ์šฐ ๋งค๋ฒˆ throws๋กœ ์ „ํŒŒํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ , ์ผ๊ด€๋œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ธต DataAccessException ํ•˜์œ„๋กœ SQL ๋ฌธ๋ฒ• ์˜ค๋ฅ˜, ํƒ€์ž„์•„์›ƒ ์˜ค๋ฅ˜ ๋“ฑ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋“ค์ด ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • 2025๋…„ 3์›” 03์ผ

    @Transactional์˜ ์ •์˜ ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•˜๊ณ  ์ปค๋ฐ‹, ๋กค๋ฐฑ ํ›„ ํŠธ๋žœ์žญ์…˜์„ ์ข…๋ฃŒํ•˜๋Š” ๊ณผ์ •์„ ์„œ๋น„์Šค ๋กœ์ง์—์„œ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํŠธ๋žœ์žญ์…˜ ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉ ์˜ˆ์‹œ 1. ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉ @Transactional public class Service() { public void save() { } public void delete() { } } ์ •๋ฆฌ ํด๋ž˜์Šค์—์„œ @Transactional ์‚ฌ์šฉ ์‹œ ํ•˜์œ„์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ์ธ save(), delete()์— ํŠธ๋žœ์žญ์…˜์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • 2025๋…„ 3์›” 03์ผ

    TransactionTemplate์˜ ์ •์˜ ํ…œํ”Œ๋ฆฟ ์ฝœ๋ฐฑ ํŒจํ„ด์„ ์ ์šฉํ•˜์—ฌ Transaction ๊ณผ์ •์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž‘์—…ํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ ๋งŒ๋“ค๊ธฐ -> ์˜ค๋ฅ˜ ์—†์œผ๋ฉด commitํ•˜๊ธฐ -> ์˜ค๋ฅ˜ ์žˆ์œผ๋ฉด rollbackํ•˜๊ธฐ๊ณผ์ •์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜๊ฒŒ ํ•ด ์ฃผ๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ public class TransactionTemplate { private PlatformTransactionManager transactionManager; public <T> T execute(TransactionCallback<T> action){..} void executeWithoutResult(Consumer<TransactionStatus> action){..} } execute() : ์‘๋‹ต ๊ฐ’์ด ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • 2025๋…„ 3์›” 03์ผ

    PlatformTransactionManager์˜ ์ •์˜ ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•˜๊ณ  ์ปค๋ฐ‹, ๋กค๋ฐฑํ•˜๋Š” ๊ณผ์ •์„ JDBC์™€ ๊ฐ™์€ ํŠน์ • ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์— ์ข…์†๋˜์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”์ƒํ™”ํ•˜์—ฌ ๋งŒ๋“  ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์กฐ ๊ธฐ๋Šฅ [์ธํ„ฐํŽ˜์ด์Šค ์ „์ฒด ๊ตฌ์กฐ] package org.springframework.transaction; public interface ...

  • 2025๋…„ 3์›” 03์ผ

    Transaction ๋‹จ์ˆœ ์ฒ˜๋ฆฌ ์‹œ ๋ฌธ์ œ์  Transaction์„ ๋‹จ์ˆœ ์ฒ˜๋ฆฌํ•œ Service๋ฅผ ํ™•์ธํ•˜๋ฉด ์„œ๋น„์Šค ๋กœ์ง ๋ฟ๋งŒ์ด ์•„๋‹Œ ๊ณผ์ •์ด ๋งŽ์ด ํฌํ•จ์ด ๋˜์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๋‹จ์ˆœํ•˜๊ฒŒ ์ปค๋„ฅ์…˜์—์„œ Transaction์„ ๋งŒ๋“ค์–ด ์ปค๋ฐ‹ or ๋กค๋ฐฑ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ฒŒ๋˜๋ฉด ์—ฌ๋Ÿฌ ๋ฌธ์ œ์ ์ด ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • 2025๋…„ 3์›” 02์ผ

    Transaction์˜ ์ •์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„ ex) A๊ฐ€ B์—๊ฒŒ 5000์›์„ ์†ก๊ธˆํ•˜๋Š” ๊ฒฝ์šฐ โ†’ A์˜ ์ž”๊ณ ์—์„œ 5000์›์„ ๊ฐ์†Œ์‹œํ‚ค๊ณ , B์˜ ์ž”๊ณ ์—์„œ 5000์›์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ์ž‘์—…์ด ํ•˜๋‚˜์˜ Transaction์ด ๋ฉ๋‹ˆ๋‹ค. Transaction์ด ์•ˆ์ง€์ผœ์ ธ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ A๊ฐ€ B์—๊ฒŒ 5000์› ์†ก๊ธˆ์„ ํ•˜๋Š”๋ฐ, ์˜คํƒ€๋กœ ์ธํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ์‹คํ–‰๋˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

  • 2025๋…„ 2์›” 28์ผ

    1. JDBC JDBC๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ณ , ์‚ฌ์šฉํ•ด๋ณด๊ธฐ 2. Connection Pool๊ณผ DataSource ์ปค๋„ฅ์…˜ ํ’€์ด ์ฃผ๋Š” ์ด์ ๊ณผ ๋ฐ์ดํ„ฐ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋‚˜์•„์ง€๋Š” ์ ์ด ์–ด๋–ค๊ฒƒ์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ 3. Transaction Transaction์ด ๋ฌด์—‡์ด๊ณ  ์™œ ํ•„์š”ํ•œ์ง€ ์•Œ์•„๋ณด๊ธฐ 4.

    • 2025๋…„ 2์›” 28์ผ

      ์ปค๋„ฅ์…˜ ํ’€์˜ ํ•„์š”์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•œ๋ฒˆ Connection์„ ๋งŒ๋“ค ๋•Œ ๋งˆ๋‹ค ์•„๋ž˜์™€ ๊ฐ™์€ ๋ณต์žกํ•œ ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์€ DB ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด ์ปค๋„ฅ์…˜์„ ์กฐํšŒํ•œ๋‹ค. DB ๋“œ๋ผ์ด๋ฒ„๋Š” DB์™€ TCP/IP ์ปค๋„ฅ์…˜์„ ์—ฐ๊ฒฐํ•œ๋‹ค. ๋ฌผ๋ก  ์ด ๊ณผ์ •์—์„œ 3 way handshake ๊ฐ™์€ TCP/IP ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ๋™์ž‘์ด ๋ฐœ์ƒํ•œ๋‹ค.

    • 2025๋…„ 2์›” 28์ผ

      DataSource์˜ ํ•„์š”์„ฑ ์ปค๋„ฅ์…˜์„ ํš๋“ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ DriverManager, Connection Pool ๋“ฑ ๋‹ค์–‘ํ•˜๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค. DriverManager๋ฅผ ํ†ตํ•ด ์ปค๋„ฅ์…˜์„ ํš๋“ํ•˜๋„๋ก ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋‹ค๊ฐ€, ์ปค๋„ฅ์…˜ ํ’€์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋กœ์ง์˜ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • 2025๋…„ 2์›” 28์ผ

      JDBC ์ •์˜ Java์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๋™์„ ์œ„ํ•ด์„œ ๋จผ์ € ์ปค๋„ฅ์…˜ ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜๊ณ  SQL์„ ์ „๋‹ฌํ•ด DB๋กœ๋ถ€ํ„ฐ ๊ฒฐ๊ณผ๋ฅผ ์‘๋‹ต๋ฐ›์Šต๋‹ˆ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜(ex) MySQL, Oracle)์— ๋”ฐ๋ผ ์ปค๋„ฅ์…˜ ์—ฐ๊ฒฐ, SQL, ๊ฒฐ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณ„๋กœ ์ฝ”๋“œ๋ฅผ ๊ฐ๊ฐ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹ , ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•  ...