728x90

๐Ÿ“˜ Programming 92

[Oracle] ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค (Tablespace) ๊ฐœ๋…, ์œ ํ˜•, ์นดํƒˆ๋กœ๊ทธ ๋ทฐ ์กฐํšŒ ๋ฐฉ๋ฒ•

Oracle ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค (Tablespaces) ํšŒ์‚ฌ์—์„œ ๊ธฐ์กด ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค์—๋งŒ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋‹ค๊ฐ€ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค์— ์ƒ์„ฑํ•˜๋ ค๋‹ˆ ํŠน์ง•์ด ๋‹ฌ๋ผ ๊ฐœ๋…์ด ํ˜ผ๋™๋˜๋Š” ๊ฒŒ ๋งŽ์•„์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Oracle์˜ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋ž€ ? ์ฒ˜์Œ Oracle ์“ธ ๋•Œ๋Š” ํ…Œ์ด๋ธ”๊ณผ ํ—ท๊ฐˆ๋ ธ์Šต๋‹ˆ๋‹ค! Oracle์—๋งŒ ์žˆ๋Š” ๊ฐœ๋…์ด๋‹ค ๋ณด๋‹ˆ ๋Œ€ํ•™ ์‹œ์ ˆ์— ์“ฐ๋˜ MySQL๊ณผ๋Š” ์‚ฌ๋ญ‡ ๋‹ฌ๋ž์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋ผ๋Š” ๊ฐœ๋…์€ ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค (Tablespace) DB์—์„œ ๋ฐ์ดํ„ฐ์™€ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ €์žฅ ์˜์—ญ 1 DB → N ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค / 1 ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค → N ๋ฐ์ดํ„ฐ ํŒŒ์ผ (ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค ๋“ฑ) ํ…Œ์ด๋ธ”๊ณผ ์ธ๋ฑ์Šค ๋“ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋Š” ํŠน์ • ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค์— ์ €์žฅ๋˜๋ฉฐ, ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋Š” ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋“ค์˜ ๋ฌผ๋ฆฌ์ ์ธ..

[Git] ์„œ๋ธŒ๋ชจ๋“ˆ(submodule) ์‚ฌ์šฉ๋ฒ• - ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ๋ฏผ๊ฐํ•œ ์ •๋ณด ์ˆจ๊ธฐ๊ธฐ

Git Submodule ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ Git Submodule (์„œ๋ธŒ๋ชจ๋“ˆ)์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ™์€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์™€๋งŒ ๊ณต์œ ํ•  ์ˆ˜ ์—†์„๊นŒ ? Spring ํ”„๋กœ์ ํŠธ์—์„œ application.properties ๋˜๋Š” application.yml ํŒŒ์ผ์— DB์ •๋ณด๋‚˜, API Key๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ํŒŒ์ผ์ด public repository์— ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ๊ป ํ•ด๋‹น ํŒŒ์ผ์„ ๋กœ์ปฌ PC์— ๋‘๊ณ  .gitignore ํŒŒ์ผ์— ๋“ฑ๋กํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ์ •๋ณด๋“ค์ด ๋ณ€๊ฒฝ์ด ๋˜๋ฉด ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์™€ ์†Œํ†ตํ•˜์—ฌ ๋งž์ถ”์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜๋Š” ๋‚œ๊ฐํ•œ ์ƒํ™ฉ์ด ์ƒ๊น๋‹ˆ๋‹ค. ๊ฐ€๋ น ์†Œ์…œ ๋กœ๊ทธ์ธ์„ Kakao๋งŒ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ, ๋กœ๊ทธ์ธ MVP๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ Goo..

[Spring Framework] 3. ์–ด๋…ธํ…Œ์ด์…˜(Annotation) ๊ธฐ๋ฐ˜์˜ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ๋ฐฉ๋ฒ• ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ (4)

ํ•™์Šต ๋ชฉํ‘œ 1. '์˜์กด์„ฑ ์ฃผ์ž…' ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ด 2. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ApplicationContext ์ดํ•ด 3-1. XML ํŒŒ์ผ์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 3-2. Annotation์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 3-3. Java๋ฅผ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 4. Bean ๊ฐ์ฒด์˜ Scope์™€ LifeCycle ์ดํ•ด Annotation ๊ธฐ๋ฐ˜ DI ๊ตฌ์„ฑ ์–ด๋…ธํ…Œ์ด์…˜ (Annotation) ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ XML ๋“ฑ์˜ ๋ฌธ์„œ์— ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์†Œ์Šค์ฝ”๋“œ์— @~์˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ ํด๋ž˜์Šค, ๋ฉ”์†Œ๋“œ ,ํ•„๋“œ์˜ ์„ ์–ธ๋ถ€์— ํ‘œํ˜„ํ•˜์—ฌ ํŠน์ • ๊ธฐ๋Šฅ์ด ์ ์šฉ๋˜์—ˆ์Œ์„ ์•Œ๋ฆผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก XML ์„ค์ •์ด ๋ณต์žกํ•ด ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ๊ฐœ์„  ์ฃผ์š” ์–ด๋…ธํ…Œ์ด์…˜ @Autowired (@Inject, @Res..

[Spring Framework] 3. XML ๊ธฐ๋ฐ˜์˜ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ๋ฐฉ๋ฒ• ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ (3)

ํ•™์Šต ๋ชฉํ‘œ 1. '์˜์กด์„ฑ ์ฃผ์ž…' ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ด 2. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ApplicationContext ์ดํ•ด 3-1. XML ํŒŒ์ผ์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 3-2. Annotation์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 3-3. Java๋ฅผ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 4. Bean ๊ฐ์ฒด์˜ Scope์™€ LifeCycle ์ดํ•ด XML ๊ธฐ๋ฐ˜ DI ๊ตฌ์„ฑ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ํ™˜๊ฒฝ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ๋„ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์ˆ˜์ • Java ๋ฒ„์ „ ๋ณ€๊ฒฝ ์˜์กด์„ฑ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ (pom.xml) spring-context → ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ๋ฒ„์ „ ์ ์šฉ (mvnrepositroy.com ์ฐธ๊ณ ) ๋กœ๊น… ํ”„๋ ˆ์ž„์›Œํฌ ์ ์šฉ → slf4j-api, logback-classic ์ ์šฉ applicationCo..

[Spring Framework] 3. DI์™€ ์Šคํ”„๋ง ๋นˆ(Bean), ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ(Container)์˜ ๊ด€๊ณ„ (2)

ํ•™์Šต ๋ชฉํ‘œ 1. '์˜์กด์„ฑ ์ฃผ์ž…' ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ด 2. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ApplicationContext ์ดํ•ด 3-1. XML ํŒŒ์ผ์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 3-2. Annotation์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 3-3. Java๋ฅผ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 4. Bean ๊ฐ์ฒด์˜ Scope์™€ LifeCycle ์ดํ•ด ApplicationContext ์™€ Bean ์Šคํ”„๋ง ๋นˆ (Spring Bean)๊ณผ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์Šคํ”„๋ง ๋นˆ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด IoC ์ปจํ…Œ์ด๋„ˆ ์Šคํ”„๋ง ๋นˆ์˜ ์ƒ์„ฑ, ๊ด€๊ณ„, ์กฐ๋ฆฝ, ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌ DI์„ ์ด์šฉํ•ด ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ BeanFactory DI ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์ œ๊ณต → Bean์˜ ์ƒ์„ฑ, ์˜์กด ๊ด€๊ณ„ ๊ด€๋ฆฌ Bean์ด ๋งŽ์ง€ ์•Š๊ณ  ๊ฒฝ..

[Spring Framework] 3. ์˜์กด์„ฑ ์ฃผ์ž…(DI : Dependency Injection)์ด๋ž€? (1)

ํ•™์Šต ๋ชฉํ‘œ 1. '์˜์กด์„ฑ ์ฃผ์ž…' ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ด 2. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ ApplicationContext ์ดํ•ด 3-1. XML ํŒŒ์ผ์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 3-2. Annotation์„ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 3-3. Java๋ฅผ ์ด์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์„ค์ • ๋ฐฉ๋ฒ• 4. Bean ๊ฐ์ฒด์˜ Scope์™€ LifeCycle ์ดํ•ด ์˜์กด์„ฑ ์ฃผ์ž… (DI) ๋ฐฐ๊ฒฝ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์‹œ, ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ ์กฐํ•ฉ์œผ๋กœ ๊ตฌํ˜„ DB ์ปดํฌ๋„ŒํŠธ, GUI ์ปดํฌ๋„ŒํŠธ, ์™ธ๋ถ€ ์ ‘์† ์ปดํฌ๋„ŒํŠธ ๋“ฑ... ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ฉ ์‹œ ์˜์กด ๊ด€๊ณ„ ์ฃผ์ž… ๋””์ž์ธ ํŒจํ„ด์ด ๋งค์šฐ ํšจ๊ณผ์  ์ •์˜ ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋Ÿฐํƒ€์ž„ ์‹œ ์‚ฌ์šฉํ•  ๊ฐ์ฒด๋“ค์˜ ์˜์กด ๊ด€๊ณ„ ๋ถ€์—ฌ..

[Spring Framework] 2. ๋ฉ”์ด๋ธ(Maven)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

ํ•™์Šต ๋ชฉํ‘œ 1. Maven ๊ธฐ๋ณธ ์ •์˜ ์ดํ•ด 2. Maven ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ• ์ดํ•ด 3. Maven ๋นŒ๋“œ ์ž๋™ํ™” ๊ธฐ๋Šฅ ์ดํ•ด 4. Maven ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฉ”์ด๋ธ(Maven)? ๋นŒ๋“œ ์ž๋™ํ™” + ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ ํ”„๋กœ์ ํŠธ (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) ๊ด€๋ฆฌ pom.xml → ํ”„๋กœ์ ํŠธ ๊ด€๋ จ jar ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๋ฐ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ ์‚ฐ์ถœ๋ฌผ์„ ์ผ๊ด€๋œ ๊ตฌ์กฐ๋กœ ๊ด€๋ฆฌ ๋นŒ๋“œ ์ž๋™ํ™” ๋นŒ๋“œ ์ž‘์—… ๊ฐ„์†Œํ™” ๋ฐ ์ผ๊ด€์„ฑ ์ผ๊ด€์„ฑ ์žˆ๋Š” ํ†ตํ•ฉ ํ™˜๊ฒฝ ์ œ๊ณต ๋นŒ๋“œ (Build) : ์†Œ์Šค์ฝ”๋“œ → ์‹คํ–‰ ์ฝ”๋“œ ๋ณ€ํ™˜ ํ›„, ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ • 1. ๋ฉ”์ด๋ธ์˜ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ž ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ์„ค์ •์„ ๋ฉ”์ด๋ธ์ด ๋ฏธ๋ฆฌ ์ •์˜ํ•œ ์„ค์ •์œผ๋กœ ๋Œ€์ฒด ์ •ํ˜•ํ™”๋œ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ๊ด€๋ฆฌ (pom.xml) ์˜์กด์„ฑ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ → ํŽธ๋ฆฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ..

[Spring Framework] 1. ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์˜ 3 Layer ์—ญํ•  (3)

ํ•™์Šต ๋ชฉํ‘œ 1. ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ณ ๊ฐœ๋… ์ดํ•ด 2. ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ํŠน์ง• ์ดํ•ด ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ž€ ์•„ํ‚คํ…์ฒ˜ ํด๋ผ์ด์–ธํŠธ์™€ DB ์‚ฌ์ด๋ฅผ ์ž‡๋Š” ๊ฐ ์ธต๋ณ„๋กœ ๋‹ด๋‹นํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ 1. ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ์ธต (Presentation Layer) ์—ญํ•  UI์™€ ์ปจํŠธ๋กค๋Ÿฌ ์ œ๊ณต UI ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋กœ์ง์„ ํ˜ธ์ถœ → ๊ฒฐ๊ณผ๋ฅผ UI๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—… ๋ชจ๋ธ 1 ๋ฐฉ์‹ JSP๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ฑฐ๋‚˜ Java Bean์„ ํฌํ•จํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹ ๋ทฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ํ˜ผ์žฌ์™ธ์–ด ๋ณต์žกํ•ด ์œ ์ง€๋ณด์ˆ˜ ์–ด๋ ค์›€ ๋ชจ๋ธ 2 ๋ฐฉ์‹ ๋ชจ๋ธ (Model) : ๋ทฐ์— ํ•„์š”ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ ๋กœ์ง ์ฒ˜๋ฆฌ ๋ทฐ (View) : ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ ํ™”๋ฉด ๋‹ด๋‹น ์ปจํŠธ๋กค๋Ÿฌ (Controller) : ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ, ํ™”๋ฉด ํ๋ฆ„ ์ œ์–ด ๋‹ด๋‹น๋ชจ..

๋ฐ˜์‘ํ˜•