๋ฐ˜์‘ํ˜•

๊ฐœ์ธPC์— ๊ฐ€์ƒ์„œ๋ฒ„๋ฅผ ๋„์šธ๊ฒƒ์ด๋‹ค.

์ด๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฅ˜ ์ค‘ ํ•˜๋‚˜์ธ ๋ฒ„์ถ”์–ผ๋ฐ•์Šค๋ฅผ ์ด์šฉํ–ˆ๊ณ , Centos7๋ฅผ ์„ค์น˜ํ• ๊ฒƒ์ด๋‹ค.

์ฐธ๊ณ ๋กœ window10 Enterprise ํ™˜๊ฒฝ์—์„œ๋Š” hyper-v๋ผ๋Š” ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ๋‹ค.. 

(window 10 home ๋ฒ„์ „์—์„œ๋Š” ์•ˆ๋œ๋‹ค๋”๋ผ..)


0. centos7 ์šด์˜์ฒด์ œ ISOํŒŒ์ผ ๋‹ค์šด๋ฐ›๊ธฐ

http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1708.iso



1. ์„ค์น˜๊ณผ์ • 




2. ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ ์„ค์น˜ (centos7 ์„ ์„ค์น˜ ํ•  ๊ฒƒ์ด๋‹ค)

๋งŒ์•ฝ 64๋น„ํŠธ๊ฐ€ ์•ˆ๋‚˜์˜ค๊ฑฐ๋“ ,

์ปดํ“จํ„ฐ ์™„์ „ ์‹คํ–‰ ์‹œ BIOS ํ™”๋ฉด์—์„œ Virturalization ์ด๋ผ๋Š” ๊ฐ’์„ ์ฐพ์•„ true ๋กœ ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์ฐธ๊ณ ๋กœ PC๋งˆ๋‹ค BIOS ํ™”๋ฉด์ด ๋‹ค๋ฅด๋ฉฐ, ๋‹จ์ถ•ํ‚ค๋„ ๋‹ค๋ฅด๊ธฐ์— ์ž˜ ์ฐพ์•„๋ณด๋„๋ก ํ•˜์—ฌ๋ผ. 

(์ž์‹ ์˜ PC์ œํ’ˆ์— ๋งž๋Š” ๋‹จ์ถ•ํ‚ค๋ฅผ ์ฐพ์•„๋ณด๋ผ)

์ฐธ๊ณ  : http://idchowto.com/?p=15289



๋ฉ”๋ชจ๋ฆฌ๋Š” ์ž์‹ ์˜ ํ˜„์žฌ PC RAM ์‚ฌ์–‘๊ณผ ๊ณ ๋ คํ•˜์—ฌ ์„ค์ •ํ•˜์—ฌ๋ผ..


๋””์Šคํฌ ์„ ํƒํ•˜๊ธฐ(C)๋ฅผ ๋ˆŒ๋Ÿฌ ์šด์˜์ฒด์ œ๋ฅผ ๋„ฃ์–ด์ฃผ์ž.

0. ์—์„œ ๋ฐ›์€ ๋ฆฌ๋ˆ…์Šค(centos7)ํŒŒ์ผ์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.



๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

์Šคํ”„๋ง์€ ์ž๋ฐ”์ฝ”๋“œ๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜์ง€์•Š๊ณ  ์ปจํ…Œ์ด๋„ˆ(ex. xmlํŒŒ์ผ ์ฃผ์ž…)๊ฐ€ ๋Œ€์‹  ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์คŒ. ---> IOC ๊ฐœ๋… (์ œ์–ด์˜ ์—ญ์ „, ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„)


์™ธ๋ถ€์—์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ํ˜„์žฌ๊ฐ์ฒด์— ์ฃผ์ž…ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœ ---> DI(์˜์กด์„ฑ์ฃผ์ž…) ๊ฐœ๋…

์ฆ‰,


(setter ์ฃผ์ž… ๋ฐฉ์‹)

 AAA a = new AAA();
BBB b = new BBB(a); -- DI


(xml ์ฃผ์ž… ๋ฐฉ์‹ : ์ƒ์„ฑ์ž ํ˜น์€ ํ”„๋กœํผํ‹ฐ)

xml์— ํด๋ž˜์Šค ์ƒ์„ฑ์ž๋‚˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ์ฃผ์ž…ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ธ๋“ฏ (?)

๋ฌธ๋ฒ•์€ ์•„๋ž˜์— ๋‚˜์™€์žˆ์Œ 


+ ์ถ”๊ฐ€, (IOC/DI ๊ฒฐ๋ก )

๋‘ ๊ฐœ์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ๋งŒ๋“ค๊ณ , ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‘๊ณ  ๋Š์Šจํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•œ ๋’ค, ์‹ค์ œ ์‚ฌ์šฉํ•  ๋Œ€์ƒ์€ DI๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ ์ง€์ •
์ถœ์ฒ˜: http://jinpyo900.tistory.com/55 [Computer Science ]



[1] ์˜ˆ์ œ


๋‚˜์ž์‹ ์ด ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๋ด„.

DI_test.zip



zip ํŒŒ์ผ์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€๋ฐ...๋ญ ๊ทธ๋Ÿฌํ•จ

๋‚ด๊ฐ€ ์ดํ•ดํ•œ๊ฑด ์ด์ •๋„...??



Main ํด๋ž˜์Šค์—์„œ...

String configLocation = "classpath:context_calc.xml"; //xml ๋ถˆ๋Ÿฌ์˜ด
AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation);
CalcData calcdata = ctx.getBean("calcdata", CalcData.class); //xml์—์„œ beans id๊ฐ€ calcdata๊ฐ€๋จ
calcdata.resultfunc(); //ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์†Œ๋“œ(๊ฒฐ๊ณผ)
ctx.close();//๋



[2] xml ์ด์šฉํ•œ DI์„ค์ •

1) bean : ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑํ•  ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ •๋ณด ์ง€์ •์‹œ ์‚ฌ์šฉ

<bean id="์—ฐ๊ฒฐํ• ์ด๋ฆ„" class="ํŒจํ‚ค์ง€๋ช….ํด๋ž˜์Šค๋ช…"></bean>


2) constructor-org : ์ƒ์„ฑ์ž ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •์‹œ ์‚ฌ์šฉ

<bean id="์—ฐ๊ฒฐํ• ์ด๋ฆ„" class="ํŒจํ‚ค์ง€๋ช….ํด๋ž˜์Šค๋ช…">
 <constructor-org value="aaa"/> // ---> new A("aaa"); ์ด๋ ‡๊ฒŒ๋จ
</bean>


3) property : ํ•ด๋‹น ๋นˆ์ฆˆ ํด๋ž˜์Šค๋‚ด์— setํ•  ๋ณ€์ˆ˜, ํด๋ž˜์Šค๋“ฑ๋“ฑ์„ ์…‹ํŒ…ํ•ด์คŒ

<bean id="์—ฐ๊ฒฐํ• ์ด๋ฆ„" class="ํŒจํ‚ค์ง€๋ช….ํด๋ž˜์Šค๋ช…">
 <property name="๋ณ€์ˆ˜๋ช…" value="1"/>
 <property name="๋ณ€์ˆ˜๋ช…">
   <ref bean="๋ถˆ๋Ÿฌ์˜จํด๋ž˜์Šค๋ช…๋ณ€์ˆ˜"/>
 </property>
</bean>
<bean id="๋ถˆ๋Ÿฌ์˜จํด๋ž˜์Šค๋ช…๋ณ€์ˆ˜" class="ํŒจํ‚ค์ง€๋ช….๋ถˆ๋Ÿฌ์˜จํด๋ž˜์Šค๋ช…๋ณ€์ˆ˜">
</bean>


 - list

 - map

 - set

 - value

 - ref


4) c ๋„ค์ž„์ŠคํŽ˜์ด์Šค, p๋„ค์ž„์ŠคํŽ˜์ด์Šค : C๋Š” construct-org, p๋Š” property ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค

<bean id="์—ฐ๊ฒฐํ• ์ด๋ฆ„" class="ํŒจํ‚ค์ง€๋ช….ํด๋ž˜์Šค๋ช…" c:id="dsfd" p:id="fsdfs"/>
5) import : ๋‹ค๋ฅธ xml ๋ถˆ๋Ÿฌ์˜ฌ๋•Œ...



[3] Java ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ DI์„ค์ • (์–ด๋…ธํ…Œ์ด์…˜์ด์šฉ)

์ด๋Š” xml์„ค์ •๋Œ€์‹  Java์ฝ”๋“œ๋กœ ์„ค์ •ํ•˜์˜€์„๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋ฉ”์†Œ๋“œ์œ„์— ๋ถ™์—ฌ์„œ ์“ฐ๋‚˜๋ถ€๋‹ค. (@ : ์• ๋…ธํ…Œ์ด์…˜)


1) @Configuration : ํด๋ž˜์Šค๋ฅผ ์Šคํ”„๋ง์„ค์ •์œผ๋กœ ์‚ฌ์šฉํ•จ




์ฐธ๊ณ  : http://asfirstalways.tistory.com/334

๋ฐ˜์‘ํ˜•

'๊ฐœ๋ฐœ > spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํŠธ๋žœ์žญ์…˜  (0) 2021.11.25
Spring - ์Šคํ”„๋ง MVC ๊ฐ„๋‹จ ์ •๋ฆฌ  (0) 2021.06.05
Spring - DI (Dependency Injection)  (0) 2021.06.01
Spring - AOP(Aspect-Oriented Programming)  (0) 2021.05.25
spring ์‹œ์ž‘, maven ์„ค์น˜  (0) 2017.11.12
๋ฐ˜์‘ํ˜•


[1] ์„ค์น˜๋ชฉ๋ก : ์ž๋ฐ”, ํ†ฐ์บฃ, maven, ์ดํด๋ฆฝ์Šค...DB..


1) ์ž๋ฐ”์„ค์น˜

  ๋ณด์•„ํ•˜๋‹ˆ 1.9 ๋ฒ„์ „๊นŒ์ง€ ๋‚˜์˜จ๊ฑฐ๊ฐ™์€๋ฐ ๋‚˜๋Š” 1.8 ๋ฒ„์ „ ์•„๋ฌด๊ฑฐ๋‚˜ ์„ค์น˜ํ•จ.

  http://www.oracle.com/technetwork/java/javase/downloads/index.html


  ์„ค์น˜ํ•˜๋Š”๋ฒ•์€ ๋งŽ์ด ๋‚˜์˜ค๋‹ˆ ์•Œ์•„์„œ ์„ค์น˜ํ•˜๊ณ , 

  ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์…‹ํŒ… ๊ผญ ํ•˜๋„๋ก(maven ์„ค์น˜ํ•˜๊ณ  ์ง์ ‘ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๋•Œ ํ•ด๋ด์•ผํ•˜๋‹ˆ..)

  ์ œ์–ดํŒ\์‹œ์Šคํ…œ ๋ฐ ๋ณด์•ˆ\์‹œ์Šคํ…œ\๊ณ ๊ธ‰์‹œ์Šคํ…œ์„ค์ •\ํ™˜๊ฒฝ๋ณ€์ˆ˜ 

   --> ์‹œ์Šคํ…œ๋ณ€์ˆ˜์— JAVA_HOME ๋ณ€์ˆ˜ ์ถ”๊ฐ€ (์ด๋ฆ„์„ JAVA_HOME, ๊ฒฝ๋กœ๋ฅผ ์ž๋ฐ”jdk์œ„์น˜ ๊นŒ์ง€ ex) c:\~~~\java~~~\jdk~~~)

   --> ์‹œ์Šคํ…œ๋ณ€์ˆ˜์ค‘ path๋ผ๋Š” ๋ณ€์ˆ˜ ํŽธ์ง‘๋ฒ„ํŠผ ํด๋ฆญํ•˜์—ฌ JAVA_HOME ์ถ”๊ฐ€ (ex. ๋ธ”๋ผ๋ธ”๋ผ~~;%JAVA_HOME%\bin)

   --> cmd ๋“ค์–ด๊ฐ€์„œ javac ์ณ๋ณด๊ณ  ์ด์ƒํ•˜๋ฉด java ์ง€์šฐ๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•ด๋ณด๋„๋ก....


2) ํ†ฐ์บฃ์„ค์น˜(์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„œ๋ฒ„)

  ์–ด์Œ ๋‚˜๋Š” tomcat 7์„ ์„ค์น˜ํ•จ... ๊ฒ€์ƒ‰ํ•˜๋ฉด ์„ค์น˜ํ•˜๋Š”๋ฒ• ๋งŽ์ด๋‚˜์˜ด. ๋‹ค์šด๋ฐ›๊ณ  ์›ํ•˜๋Š” ํด๋”์— ๋„ฃ์Œ.

  https://tomcat.apache.org/download-70.cgi 


  โ€ป ์ฐธ๊ณ  : ํ†ฐ์บฃ ๋ฒ„์ „๋ณ„ ์„œ๋ธ”๋ฆฟ ์ŠคํŽ™

  http://zetawiki.com/wiki/%ED%86%B0%EC%BA%A3_%EB%B2%84%EC%A0%84%EB%B3%84_%EC%84%9C%EB%B8%94%EB%A6%BF_%EC%8A%A4%ED%8E%99

ํ†ฐ์บฃ ๋ฒ„์ „Servlet ์ŠคํŽ™JSP ์ŠคํŽ™์›น์†Œ์ผ“ ์ŠคํŽ™์ตœ์†Œ Java ๋ฒ„์ „
9.04.02.4(์˜ˆ์ •)1.2(์˜ˆ์ •)8
8.03.12.31.17
7.03.02.21.16
6.02.52.1-5
5.52.42.0-1.4
4.12.31.2-1.3
3.32.21.1-1.1

  โ€ป ์•„ํŒŒ์น˜๋Š” ์›น์„œ๋ฒ„, ํ†ฐ์บฃ์€ ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(์›น์„œ๋ฒ„ ํฌํ•จ)

  http://gap85.tistory.com/45



3) maven ์„ค์น˜

  ๋ฉ”์ด๋ธ์ด.... ์Šคํ”„๋งํ”„๋ ˆ์ž„์›Œํฌ์“ธ๋•Œ ํŽธ๋ฆฌํ•˜๊ฒŒ ํด๋” ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ทธ๋Ÿฐ ๋ชจ๋“ˆ์ธ๊ฐ€๋ด„

  * ๊ด€๋ จ๋‚ด์šฉ : http://javacan.tistory.com/entry/MavenBasic

  * ๋ฉ”์ด๋ธ ์„ค์น˜ : https://maven.apache.org/download.cgi


4) ์ดํด๋ฆฝ์Šค ์„ค์น˜ ๋ฐ ํ™•์ธ

 https://www.eclipse.org/downloads/download.php?file=/oomph/epp/oxygen/R/eclipse-inst-win64.exe ๊ฐ€์„œ์„ค์น˜..


5) DB

 ๋ญ์Œ....mysql?



[2] ํ”„๋กœ์ ํŠธ ์‹คํ–‰์ „์—..


1) ์ดํด๋ฆฝ์Šค ์„ค์ •

  1.ํ†ฐ์บฃ ์„ค์ • 

    -> window>properties>server>Runtime Environments ๊ฐ€์„œ Add๋ฒ„ํŠผํด๋ฆญ 

    -> ํ•ด๋‹น ํ†ฐ์บฃ๋ฒ„์ „ ํด๋ฆญ ํ›„ next (๋‚˜์˜๊ฒฝ์šฐ๋Š” 7.0) 

    -> Browses ๋ฒ„ํŠผ ํด๋ฆญํ•˜์—ฌ ํ†ฐ์บฃ ํด๋” ์œ„์น˜ ๋“ฑ๋ก. (ํ†ฐ์บฃํด๋”์œ„์น˜) ๋ฐ Finish


  2.์ธ์ฝ”๋”ฉ ์„ค์ •

    -> ๋‚˜์˜๊ฒฝ์šฐ๋Š” UTF-8๋กœ ์„ค์ •...

  

  3.์ดํด๋ฆฝ์Šค ๋‚ด์— ์Šคํ”„๋งํˆด ์„ค์น˜

    -> help>eclips marketplace ํด๋ฆญํ•˜์—ฌ sts ๊ฒ€์ƒ‰ ํ›„ install

    -> ์„ค์น˜๋๋‚˜๋ฉด ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ +๋ฒ„ํŠผํด๋ฆญํ•˜์—ฌ spring ์ถ”๊ฐ€



[3] Maven ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ


1) ์ง์ ‘ ๋งŒ๋“ค๊ธฐ

  1. ๋ฉ”์ด๋ธ ์„ค์น˜ํ•  ํด๋” ์ƒ์„ฑํ•˜๊ธฐ (C:\aaa)


  2. cmd๋กœ aaa ํด๋” ์ด๋™ํ•˜์—ฌ mvn archetype:generate ๋ช…๋ น์–ด ์‹คํ–‰. ๊ทธ๋Ÿผ ๋ง‰ ๋‹ค์šด๋ฐ›์•„์ง

     ๋ฌด์Šจ ์ž…๋ ฅํ•˜๋Š”๊ฒŒ ๋‚˜์˜ค๋Š”๋ฐ ๊ณ„์† ์—”ํ„ฐ์น˜๋‹ค๊ฐ€ 

     groupId : ํŒจํ‚ค์ง€root์ž…๋ ฅ(ex. aaa.bbb.ccc), artifactId : ํŒจํ‚ค์ง€ ์ƒ์œ„ ํด๋”๋ช…(ex. A) 

     ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ

     --> ์ด๊ฑฐ ์•ˆ๋˜๋ฉด, java ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • ์ œ๋Œ€๋กœ ์•ˆ๋œ๊ฑด์ง€ ๋“ฑ๋“ฑ ํ™•์ธ ํ•„์š”ํ•จ.

  

  3. ๋‹ค์šด๋ฐ›๊ธฐ ๋๋‚˜๋ฉด src/main ์— resources ํด๋” ์ƒ์„ฑ 

     (ํ›—๋‚  ์Šคํ”„๋ง์—์„œ ํŠน์ • ํ”„๋กœ์ ํŠธ ์ž‘์—…์‹œ์— ์‚ฌ์šฉํ•˜๋Š” xml ํŒŒ์ผ ๋‹ด๋Š” ํด๋”์ธ๋“ฏ....ํด๋ž˜์ŠคํŒจ์Šค์— ์œ„์น˜ํ•ด์•ผํ•  xml...properties...)


  3. pom.xml ์— ๋‚ด์šฉ์ถ”๊ฐ€ (์Šคํ”„๋ง ๋ฒ„์ „ ๋ญ์“ด๋‹ค, ์ธ์ฝ”๋”ฉ ๋ญ์“ด๋‹ค ๋‚ด์šฉ์ถ”๊ฐ€)

  

  4. ์ดํด๋ฆฝ์Šค ๋‚ด์— Import ์ฒ˜๋ฆฌ

     ์ดํด๋ฆฝ์Šค ํ”„๋กœ์ ํŠธ ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด์— ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ ํด๋ฆญํ•˜์—ฌ Import ํ•˜๊ธฐ.

     (Maven/Exsisting Maven Project ํด๋ฆญํ•˜์—ฌ import ์ฒ˜๋ฆฌ, pom.xml ์€ ์ฒดํฌ๊ผญ!)


  5. ์ƒ์„ฑ๋œ ํ”„๋กœ์ ํŠธ ๋‚ด์— JRE System Library ์˜ค๋ฅธ์ชฝ๋ฒ„ํŠผํด๋ฆญ> properties๊ฐ€์„œ java ๋ฒ„์ „ ์„ค์ • ๋‹ค์‹œํ•˜๊ธฐ (๋‚˜์˜๊ฒฝ์šฐ๋Š” 1.8)



2) ์ดํด๋ฆฝ์Šค ๋‚ด์—์„œ ๋งŒ๋“ค๊ธฐ

  1. ์ดํด๋ฆฝ์Šค์—์„œ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๋“ฏ์ด ๋งŒ๋“ค๋ฉด๋จ. 

     (๋‚˜์˜๊ฒฝ์šฐ๋Š” legacy project๋กœ ๋งŒ๋“ค์—ˆ๊ณ , ๋งŒ๋“ค๋•Œ groupId, artifactId ์ž…๋ ฅํ•˜๋Š”๊ฒƒ์ด ๋‚˜์˜ฌ๊ฒƒ์ž„)

  

๋ฐ˜์‘ํ˜•

'๊ฐœ๋ฐœ > spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํŠธ๋žœ์žญ์…˜  (0) 2021.11.25
Spring - ์Šคํ”„๋ง MVC ๊ฐ„๋‹จ ์ •๋ฆฌ  (0) 2021.06.05
Spring - DI (Dependency Injection)  (0) 2021.06.01
Spring - AOP(Aspect-Oriented Programming)  (0) 2021.05.25
IOC/DI, DI์‘์šฉ  (0) 2017.11.20

+ Recent posts