ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ Local ํ๊ฒฝ์ด ์๋ ๋ค๋ฅธ ํ๊ฒฝ์์๋ JNDI๋ฅผ ์ด์ฉํ์ฌ Datasource๋ฅผ ์ ์ฉํ๊ฒ ๋์๋ค.
WAS์ DB Resource๊ฐ ๋ฑ๋ก๋์ด ์๋ ์ด์
์ํฉ) ์ฐ์ ์ฌ๋ฌ๊ฐ์ Datasource์ ์ฐ๊ฒฐํด์ผ ํ๊ณ , Jeus๋ผ๋ WAS์ DB Resource ์ ๋ณด๋ฅผ ๋ชจ๋ ์ ์ฅํด ๋์ ์ํ์๋ค.
์ฌ๊ธฐ์ ์ WAS์ Data Resource๋ฅผ ์ค์ ํด ๋์๋์ง ์๋ฌธ์ด ๋ค ์ ์๋ค. (๋๋ ๊ทธ๋ฌ๋ค..)
๋ณดํต ์ง๊ธ๊น์ง ๊ฐ๋ฐํ ๋๋ ์์ JDBC๋ Spring์์ ์ ๊ณตํด์ฃผ๋ ๊ธฐ๋ณธ์ ์ธ DBCP๋ฅผ ์ฌ์ฉํด์๋ค.
ํ์ง๋ง, ์ค์ ์ด์ํ ๋๋ JDBC ์ค์ ์ WAS์์ ํ๋๊ฒ ์ ๋ฆฌํ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๊ทธ ์ด์ ๋
- ๋ฏธ๋ค์จ์ด๋ฅผ ๊ด๋ฆฌํ๋ ์ธ๋ ฅ์ ๋ฐ๋ก ์๋ค.
- ํ๋์ WAS์ ์ฌ๋ฌ๊ฐ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ , ๋ง์ฝ N๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ 1๊ฐ์ WAS์์ ์คํํ ๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋์ผํ DB๋ ์ฐ๊ฒฐ๋๋ค๋ฉด DB Pool์ด ์ฌ๋ฌ๊ฐ๊ฐ ์์ฑ๋๊ฒ ๋๋ค. ์ด๋ฌ๋ฉด DB Pool ๊ด๋ฆฌ๋ ๋ณต์กํด์ง๊ณ ์์์ด ๋ญ๋น๋๋ค.
- ์๋น์ค๋ฅผ ์ด์ ์ค์ DB๋ฅผ ๋ฐ๊ฟ์น๊ธฐ ๋๋ ๋ค๋ฅธ ์ฃผ์๋ก ๋งคํ ํด์ผํ๋ค๋ฉด.. ์ ํ๋ฆฌ์ผ์ด์ ์์ค๋จ์์ ์ค์ ํ๋๊ฒ ์๋ WAS์์ ์ค์ ํ๋๊ฒ ํธํ๋ค.
์์ ๊ฐ์ ์ด์ ๋ฅผ ํ ๋๋ก WAS์ ์ ์ฅ๋ Resource ์ ๋ณด๋ฅผ Spring Boot์์ ์ฝ์ด์์ Datasource๋ฅผ ๋ง๋ค๊ธฐ ์ํด JNDI๋ฅผ ์ด์ฉํ๋ค.
์๋์์, JNDI๊ฐ ๋ฌด์์ธ์ง ๋งํด๋ณด๊ฒ ๋ค.
JNDI (Java Naming and Directory Interface API)
JNDI๋ Java Naming and Directory Interface API๋ก ๋๋ ํ ๋ฆฌ ์๋น์ค์ ์ ๊ทผํ๋๋ฐ ์ฌ์ฉํ๋ API์ด๋ค.
Application์ JNDI๋ฅผ ์ด์ฉํด์ WAS์ ์ ์ฅ๋์ด ์๋ Resource๋ฅผ ์ฐพ์ ์ ์๋ค.
Resouce๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ Resource๋ฅผ ์๋ฒ์ ๋ฑ๋กํ ๋ ๊ณ ์ ํ JNDI ์ด๋ฆ์ ๋ถ์ด๋๋ฐ, JNDI ์ด๋ฆ์ Directory ๊ฒฝ๋ก ํํ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
๋ฐ๋ผ์, JNDI ์ด๋ฆ์ ํ ๋๋ก Resource๋ฅผ ์ฐพ์ ์ ์๋ค.
// dataSource ์ค์
@Bean
public DataSource jndi1DataSource() {
JndiDataSourceLookup jndiDataSourceLookup = new JndiDataSourceLookup();
return jndiDataSourceLookup.getDataSource("java:comp/env/jdbc/db1"); // java:comp/env/{jndi์ด๋ฆ}
}
๋ง์ฝ db1์ด๋ผ๋ Data Resource๋ฅผ ์ฐพ์์ผ ํ๋ค๋ฉด "java:comp/env/jdbc/db1"๋ผ๋ JNDI ์ด๋ฆ์ ํตํด ์ฐพ์ ์ ์๋ค.
'๐ Backend > ๐ Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
OncePerRequestFilter ์ฌ์ฉํ๋ ์ด์ (0) | 2024.04.03 |
---|---|
Spring Boot 1.x -> 2.x Mirgration ์งํํ๋ฉด์ (0) | 2024.03.26 |
์ฟ ํค, ์ธ์ , ํ ํฐ, Hybrid ํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ์ฐจ์ด (0) | 2023.09.11 |
Spring Cloud #1 (0) | 2023.05.28 |
ํ์ผ ์ ๋ก๋ ํ๋ ๋ฐฉ๋ฒ(Form, Spring) (0) | 2022.09.12 |