๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Back-End/SPRING

build ] spring ํ”„๋กœ์ ํŠธ tomcat์œผ๋กœ buildํ•˜๊ธฐ

by bamDal 2022. 7. 18.

 

 

๊ทธ ๋™์•ˆ์€ sts ์—์„œ tomcat์„ run as ํ–ˆ์—ˆ๋Š”๋ฐ ์‹ค์ œ๋กœ๋Š” ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ .war๋กœ ์••์ถ•ํ•ด tomcat์— ์˜ฌ๋ ค์•ผ ํ•œ๋‹ค.

์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€??

 

์šฐ์„  ํ†ฐ์บฃ์ด ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ์‚ดํŽด๋ณธ๋‹ค.

1. tomcat ์„ค์น˜ ๋œ ํด๋” >  bin > startup.bat ์‹คํ–‰ > ์ธํ„ฐ๋„ท ์ฐฝ์—์„œ localhost:8080 ์„ ์‹คํ–‰ํ•˜๋ฉด ํ†ฐ์บฃ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” index.jsp๊ฐ€ ๋‚˜์˜จ๋‹ค.

startup.bat ๊ฒฝ๋กœ
startup.bat ์‹คํ–‰ ์ฐฝ - ํ•œ๊ธ€ ์„ค์ •์ด ์•ˆ๋˜์–ด ์žˆ์–ด์„œ ๊นจ์ ธ๋‚˜์˜จ๋‹ค. ๊ทธ๋ž˜๋„ ์ •์ƒ์ ์œผ๋กœ ๋Œ์•„๊ฐ

 

 

 

ํ”„๋กœ์ ํŠธ ํด๋” build ๊ณผ์ •

1. sts์—์„œ build ํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ํด๋”์— ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ > maven > Update project

2. Run as > maven install (ํ”„๋กœ์ ํŠธ๋ฅผ .war ํŒŒ์ผ๋กœ ์••์ถ•ํ•˜๋Š” ๊ณผ์ •)
  - build success ๋ผ๊ณ  ๋‚˜์˜ค๋ฉด ์„ฑ๊ณต
  - fail : jre 1.6 ์ด๋ƒ๊ณ  ๋ฌผ์œผ๋ฉด maven update๋ฅผ ๋‹ค์‹œ ํ•œ ๋ฒˆํ•˜๊ณ  2๋ฒˆ ๊ณผ์ •์„ ์‹œ๋„ํ•ด๋ณธ๋‹ค.

BUILD SUCCESS

3. 2๋ฒˆ๊นŒ์ง€ ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์— target ํด๋”๋ฅผ ์‚ดํŽด๋ณด๋ฉด member-1.0.0-BUILD-SNAPSHOT.war ํŒŒ์ผ์ด ์ƒ๊ฒผ๋‹ค.
  - ์ด .war ํŒŒ์ผ ์ด๋ฆ„์€ ์ž„์˜๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์œผ๋กœ ํ”„๋กœ์ ํŠธ ํŒจํ‚ค์ง€ ๋‘๋ฒˆ์งธ ๋ช…์„ ๊ฐ€์ ธ์™€์„œ ์ƒ์„ฑ๋œ๋‹ค.

target ํดํ„ฐ ์•„๋ž˜์— ์ƒ๊ธด .war ํŒŒ์ผ

3-1. ์ด ...-SNAPSHOT.war ํŒŒ์ผ์„ ๋ณต์‚ฌ > ํ†ฐ์บฃ ํด๋” wepapps ์— ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•œ๋‹ค.
  - war ํŒŒ์ผ ์ด๋ฆ„์€ snapshot ์ด๋Ÿฐ ๊ฑฐ ๋นผ๋ฒ„๋ฆฌ๊ณ  member๋กœ (๋งˆ์Œ๋Œ€๋กœ) ์ˆ˜์ •ํ•ด์ค€๋‹ค. 

3-2. bin > startup.bat > localhost:8080/member/  ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹คํ–‰๋œ๋‹ค
  - ์ด๊ฒŒ ์ง„์งœ๋กœ ํ”„๋กœ์ ํŠธ๋กค ๋นŒ๋“œํ•ด์„œ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰์‹œ์ผฐ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
  - ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ ํ›„ wepapps ๋ฅผ ๋ณด๋ฉด member ํด๋”๊ฐ€ ์ƒ๊ฒผ๋‹ค. member.war๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•œ ๊ฒƒ

4. ์ฃผ์†Œ ๋’ค์— /member๋ฅผ ์•ˆ๋ถ™์ด๊ณ  ์‹ถ๋‹ค๋ฉด ์ฒ˜์Œ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ์ƒ๊ธด member ํด๋”๋ฅผ ์ง€์šด ํ›„
member.war ํŒŒ์ผ์„ ROOT.war ํŒŒ์ผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ํ›„ ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

ํ†ฐ์บฃ > wepapps ์— ๋„ฃ์–ด๋†“์€ .war ํŒŒ์ผ๋“ค

 

 

 

log ํŒŒ์ผ ๋”ฐ๋กœ ๋‚จ๊ฒจ์ฃผ๊ธฐ

์šฐ๋ฆฌ๊ฐ€ ํ†ฐ์บฃ์— ํ”„๋กœ์ ํŠธ๋ฅผ build ํ•ด์„œ ์‹คํ–‰ํ•  ๋•Œ log๋Š” ์–ด๋””์— ์ฐํž๊นŒ?

tomcat > logs ํด๋”์— ๊ฐ log ํŒŒ์ผ์— ๊ธฐ๋ก์ด ๋‚จ๊ฒŒ ๋œ๋‹ค.

tomcat > logs

logs ํด๋” ์•ˆ์—๋Š” ๋งŽ์€ log ํŒŒ์ผ์ด ์Œ“์—ฌ์žˆ๋Š”๋ฐ

  • catalina : ๋กœ๊ทธ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์ฝ˜์†”์˜ ๋‚ด์šฉ์ด ์ด๊ณณ์— ์ฐํžŒ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณดํ†ต 3๊ธฐ๊ฐ€ ์ด์ƒ์˜ ์šฉ๋Ÿ‰์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • host-manager : 
  • localhost_access : ๋ˆ„๊ฐ€ ์ ‘์†ํ–ˆ์—ˆ๋Š”์ง€ ์ฒดํฌ ๊ฐ€๋Šฅ
  • manager :

์ฆ‰, ์šฐ๋ฆฌ๋Š” ๋งŒ์•ฝ ์ƒˆ๋ฒฝ 3์‹œ์— ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค๋ผ๊ณ  ํ•˜๋ฉด catalina ํŒŒ์ผ์„ ํ™•์ธํ•˜๋ฉด ๋˜๋Š”๋ฐ ๋„ˆ๋ฌด ํฐ ์šฉ๋Ÿ‰ ๋•Œ๋ฌธ์— ์—ด๋ฆฌ๋Š” ๊ฑฐ ๊ธฐ๋‹ค๋ฆฌ๋‹ค๊ฐ€ ์ง€์น  ์ˆ˜ ์žˆ๊ณ  ์ƒˆ๋ฒฝ 3์‹œ์˜ ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ์ฐพ๊ธฐ๋„ ํž˜๋“ค ๊ฒƒ์ด๋‹ค.

๋”ฐ๋ผ์„œ log ํŒŒ์ผ์„ ๋”ฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด์ค„ ๊ฒƒ์ด๋‹ค.

 

์ด ์„ค์ •์€ ํ”„๋กœ์ ํŠธ์˜ log4j.xml ์—์„œ ํ•ด์ค€๋‹ค.

(sts ์—์„œ ์ˆ˜์ •ํ•ด์ค„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋‹ค์‹œ rolled ํ•ด์ฃผ๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด
  ROOT > WEB-INF > classes > log4j.xml ์—์„œ ์ˆ˜์ •ํ•ด์ฃผ๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.)

 

log4j.xml

<!-- 
	<param name="ConversionPattern" value="%-5p: %c - %m%n" />
	value ๊ฐ€ ๋กœ๊ทธ ํ‘œํ˜„์‹
		%p ๋ ˆ๋ฒจ
		%-5p ๋ ˆ๋ฒจ์„ ํ‘œ์‹œํ•˜๋Š”๋ฐ ์ขŒ์ธก์ •๋ ฌ 5์ž ( 5์ž๊ฐ€ ์•ˆ๋˜๋ฉด ๋‚˜๋จธ์ง€๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์šด๋‹ค.)
		%c ์นดํ…Œ๊ณ ๋ฆฌ
		%m ๋ฉ”์‹œ์ง€
		%n ์ค„๋ฐ”๊ฟˆ
		%d{} {}์•ˆ์˜ ํ˜•ํƒœ๋กœ ๋‚ ์งœ ์ถœ๋ ฅ
	 -->



<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{yyyy MM dd HH:mm:ss, SSS} %-5p: %c - %m%n" />
    </layout>
</appender>


<!-- ํŒŒ์ผ ์„ค์ • -->
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
  <param name="File" value="C:/service.log" />
  <param name="DatePattern" value=".yyyy-MM-dd-HH-mm"/>
  <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p: %c - %m%n" />
  </layout>
</appender>

 

1. Appenders๋Š” log๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ์ฐ์–ด์ค„ ๊ฒƒ์ธ๊ฐ€์— ๊ด€ํ•œ ์„ค์ •์ด๋‹ค.

<param name="ConversionPattern" value="%d{yyyy MM dd HH:mm:ss, SSS} %-5p: %c - %m%n" />

 1) Appenders์˜ value๋Š” ๋กœ๊ทธ ํ‘œํ˜„์‹์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • %p : ๋ ˆ๋ฒจ
  • %-5p : ๋ ˆ๋ฒจ์„ ํ‘œ์‹œํ•˜๋Š”๋ฐ ์ขŒ์ธก์ •๋ ฌ 5์ž (5์ž๊ฐ€ ์•ˆ๋˜๋ฉด ๋‚˜๋จธ์ง€๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์šด๋‹ค.)
  • %c : ์นดํ…Œ๊ณ ๋ฆฌ
  • %m : ๋ฉ”์‹œ์ง€
  • %n : ์ค„๋ฐ”๊ฟˆ
  • %d{} : {}์•ˆ์˜ ํ˜•ํƒœ๋กœ ๋‚ ์งœ๋ฅผ ์ถœ๋ ฅ

2) <!-- ํŒŒ์ผ ์„ค์ • --> : ๋กœ๊ทธ ํŒŒ์ผ์ด ๋”ฐ๋กœ ์ƒ์„ฑ๋˜๋„๋ก ํ•˜๋Š” ์„ค์ • 

  • <appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
  • <param name="File" value="C:/service.log" />       
    : value ๋Š” ๋กœ๊ทธ ํŒŒ์ผ์ด ์ €์žฅ๋˜๋Š” ์žฅ์†Œ์™€ ์ด๋ฆ„
  • <param name="DatePattern" value=".yyyy-MM-dd-HH-mm"/>
    : value์— ์„ค์ •๋œ ๊ฐ’์ด ๋กœ๊ทธ ํŒŒ์ผ ๊ต์ฒด ์ฃผ๊ธฐ์ด๋‹ค.  HH๊นŒ์ง€ ํ•˜๋ฉด ์‹œ๊ฐ„๋งˆ๋‹ค, mm์€ ๋ถ„๋‹จ์œ„

3) jdbc.sqltiming ์—์„œ <appender-ref ref="file"/>์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

	<!-- SQL LOGGER ์„ค์ • -->
	<!-- ์‹คํ–‰ ์ฟผ๋ฆฌ + ๊ฑธ๋ฆฐ์‹œ๊ฐ„ -->
	<logger name="jdbc.sqltiming" additivity="false">
		<level value="info" />
		<appender-ref ref="console"/>
		<appender-ref ref="file"/>       <!-- ์ถ”๊ฐ€๋œ ์„ค์ • ๋ถ€๋ถ„ -->
	</logger>

4) <!-- Root Logger --> ์—์„œ๋„ <appender-ref ref="file"/>์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

	<!-- Root Logger -->
	<root>
		<priority value="warn" />
		<appender-ref ref="console" />
		<appender-ref ref="file"/>        <!-- ์ถ”๊ฐ€๋œ ๋ถ€๋ถ„ -->
	</root>

 

์„ค์ •์„ sts ์—์„œ ์ˆ˜์ •ํ–ˆ๋‹ค๋ฉด maven install ๊ณผ์ •์„ ๋‹ค์‹œ ํ•ด์ค€๋‹ค.

** ์˜ˆ์ „ .war ํŒŒ์ผ ๋ƒ…๋‹ค ์ง€์šฐ์ง€๋ง๊ณ  ๋ญ๋“  ๋ฐฑ์—…ํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์—ฌ๋‘๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. _old ๋ถ™์—ฌ์„œ ๋”ฐ๋กœ ๋ณด๊ด€ํ•˜๊ธฐ!

** ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๊ฑฐ๋‚˜ ์„ค์ •์ด ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด 

  • Run as > maven clean
  • ์ƒ๋‹จ ๋ฉ”๋‰ด๋ฐ” Project > clean > ํ”„๋กœ์ ํŠธ ์„ ํƒ

 

๋กœ๊ทธ ํŒŒ์ผ ์„ค์ •์„ ํ•ด์ค€ ํ›„์— ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• (2๊ฐ€์ง€)

1) startup.bat ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ 

2) cmd ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ > cd ํด๋”๊ฒฝ๋กœ(bin) > startup.bat

>> ๊ฒฐ๊ณผ : c๋“œ๋ผ์ด๋ธŒ์— service.log ์Œ“์ด๋ฉด ์„ฑ๊ณต!

 

** ์‚ฌ์ง„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ๋กœ๋ฅผ sts ์—์„œ server.xml ์— ์„ค์ •ํ•ด์คฌ์—ˆ๋Š”๋ฐ
build ํ•˜๊ฒŒ ๋˜๋ฉด tomcat > conf > server.xml ์—์„œ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.