์„ค์น˜ํ™˜๊ฒฝ

์œˆ๋„์šฐ 8

์ดํด๋ฆฝ์Šค Luna

 

๋ชฉ์ฐจ 

1. SonarQube ์ดํด๋ฆฝ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜

2. SonarQube Download ๋ฐ ์„œ๋ฒ„ ์‹คํ–‰

3. ๋ถ„์„ํ•˜๊ณ ์žํ•˜๋Š” ํ”„๋กœ์ ํŠธ์™€ SonarQube ํ”„๋กœ์ ํŠธ ์—ฐ๋™ํ•˜๊ธฐ

4. ๋ถ„์„ ๊ฒฐ๊ณผ ๋ณด๊ธฐ

 

 

1. SonarQube ์ดํด๋ฆฝ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜

ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜๋Š” ์‰ฌ์šฐ๋‹ˆ๊นŒ ์•„๋ž˜ ์˜๋ฌธ ๊ฐ€์ด๋“œ ๋ณด์‹œ๋ฉด์„œ ํ•˜์‹œ๋ฉด ๋ ๊ฒƒ ๊ฐ™๋„ค์š”.

 

SonarQube ๊ณต์‹ ์ดํด๋ฆฝ์Šค ์„ค์น˜ ๊ฐ€์ด๋“œ ๋ฌธ์„œ

http://docs.sonarqube.org/display/SONAR/Installing+SonarQube+in+Eclipse

 

  1. Go to Help > Eclipse Marketplace... and search for "SonarQube"
    or
    Use offline update site: https://bintray.com/artifact/download/sonarsource/Distribution/org.sonar.ide.eclipse.site-3.5.0.20150804-1512-RELEASE.zip
    or
    Go to Help > Install New Software... This should display the Install dialog box. Paste the Update Site URL (http://downloads.sonarsource.com/eclipse/eclipse/) into the field Work with and press Enter. This should display the list of available plugins and components:



  2. Check the component you wish to install (see Features details).
  3. Click Next. Eclipse will then check to see if there is any issue which would prevent a successful installation.
  4. Click Finish to begin the installation process. Eclipse will then download and install the necessary components.
  5. Once the installation process is finished, Eclipse will ask if you want to restart the IDE. It is strongly recommended that you restart the IDE.

 

2. SonarQube Download ๋ฐ ์„œ๋ฒ„ ์‹คํ–‰ 

์•„๋ž˜ ๋งํฌ๋กœ ๊ฐ€์‹œ๋ฉด zip ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

http://www.sonarqube.org/downloads/

 

๋‹ค์šด๋ฐ›์€ zipํŒŒ์ผ์„ ๋ฐ”ํƒ•ํ™”๋ฉด(์›ํ•˜๋Š” ๊ณณ)์— ์••์ถ•์„ ํ’€์–ด์ฃผ์„ธ์š”.

 

ํด๋” ๋“ค์–ด๊ฐ€๋ฉด binํด๋”๊ฐ€ ์žˆ๊ณ  ๊ทธ ์•ˆ์— StartSonar.bat๋ผ๋Š” ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ํŒŒ์ผ์„ ์‹คํ–‰์‹œ์ผœ์„œ ์„œ๋ฒ„๋ฅผ ๋„์›Œ์ฃผ์„ธ์š”.

 

๋งŒ์•ฝ ์„œ๋ฒ„ ์‹คํ–‰์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”.

 

http://blog.naver.com/stork838/220442651809

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์ œ๋Œ€๋กœ ์‹คํ–‰ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

http://localhost:9000 ( ๋‹ค๋ฅธ ์„ค์ •์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์ฃผ์†Œ๋กœ ์ ‘์†์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ )

 

3. ๋ถ„์„ํ•˜๊ณ ์žํ•˜๋Š” ํ”„๋กœ์ ํŠธ์™€ SonarQube ํ”„๋กœ์ ํŠธ ์—ฐ๋™ํ•˜๊ธฐ

a. ์ผ๋‹จ ์„œ๋ฒ„์— ์ ‘์†์ด ์ž˜ ๋˜๋Š”์ง€ ํ™•์ธ์ด ๋๋‹ค๋ฉด admin์œผ๋กœ ๋กœ๊ทธ์ธ ํ•ฉ๋‹ˆ๋‹ค.

( admin / admin ์œผ๋กœ ์ ‘์† ๊ฐ€๋Šฅ )

 

b. Go to Settings -> System -> Provisioning

c. Create new project (Create ๋ฒ„ํŠผ์€ ์šฐ์ƒ๋‹จ์— ์œ„์น˜ํ•ด์žˆ์Šต๋‹ˆ๋‹ค. )

d. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ key์™€ ํ”„๋กœ์ ํŠธ๋ช…์„ ์ ์ ˆํ•˜๊ฒŒ ์•„๋ฌด๊ฑฐ๋‚˜ ์จ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์ดํด๋ฆฝ์Šค์—์„œ ์—ฐ๋™ํ•  ๋•Œ ์ด ์ด๋ฆ„์ด ์“ฐ์ž…๋‹ˆ๋‹ค.

 

e. ์ดํด๋ฆฝ์Šค์—์„œ ํ”„๋กœ์ ํŠธ์—์„œ ์šฐํด๋ฆญ -> Configure -> Associate with SonaQube

 

f. Sona Project ์ž…๋ ฅ๋ž€์— ์•„๊นŒ ์ƒ์„ฑํ•œ Sona ํ”„๋กœ์ ํŠธ๋ช…์„ ์ž…๋ ฅํ•˜๋ฉด ์ž๋™์™„์„ฑ๊ธฐ๋Šฅ์œผ๋กœ ๋“œ๋ž๋‹ค์šด ์˜ต์…˜์ด ๋ณด์ž…๋‹ˆ๋‹ค.

g. ์†Œ๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜๊ณ  ์™„๋ฃŒํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ถ„์„์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

4. ๋ถ„์„ ๊ฒฐ๊ณผ ๋ณด๊ธฐ

๋ถ„์„์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ดํด๋ฆฝ์Šค ์ฝ˜์†”์ฐฝ์— ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

Retrieve remote issues of project myproject...
Project not found on remote SonarQube server [myproject]      ---- A
Start SonarQube analysis on myproject...
INFO: SonarQube Server 5.1.2
11:20:19.564 INFO  - Incremental mode
11:20:19.935 INFO  - Load global repositories
11:20:20.786 INFO  - Load global repositories (done) | time=857ms
11:20:20.791 INFO  - Server id: 20150806110249
11:20:20.797 INFO  - User cache: C:\Users\user\.sonar\cache
11:20:20.813 INFO  - Install plugins
11:20:20.863 INFO  - Include plugins:
11:20:20.864 INFO  - Exclude plugins: devcockpit, jira, pdfreport, views, report, buildstability, buildbreaker
11:20:20.866 INFO  - Download sonar-core-plugin-5.1.2.jar
11:20:20.946 INFO  - Download sonar-email-notifications-plugin-5.1.2.jar
11:20:21.249 INFO  - Download sonar-java-plugin-3.0.jar
11:20:21.745 INFO  - Download sonar-scm-git-plugin-1.0.jar
11:20:21.963 INFO  - Download sonar-l10n-en-plugin-5.1.2.jar
11:20:21.987 INFO  - Download sonar-scm-svn-plugin-1.0.jar
11:20:23.923 INFO  - Load project repositories
11:20:24.658 INFO  - Load project repositories (done) | time=735ms
11:20:24.659 INFO  - Load project settings
11:20:25.575 INFO  - Apply project exclusions
11:20:25.613 INFO  - -------------  Scan myproject
11:20:25.624 INFO  - Load module settings
11:20:26.068 INFO  - Base dir: E:\ใ…ใ„ดใ…‡ใ„น
11:20:26.068 INFO  - Working dir: E:\ใ…ใ„ดใ…‡ใ„น
11:20:26.072 INFO  - Source paths: src
11:20:26.073 INFO  - Test paths: src
11:20:26.079 INFO  - Binary dirs: build/classes
11:20:26.079 INFO  - Source encoding: UTF-8, default locale: ko_KR
11:20:26.084 INFO  - Index files
11:20:26.098 INFO  - Excluded sources:
11:20:26.099 INFO  -   **/*Test.*
11:20:26.099 INFO  -   **/test/**/*
11:20:26.099 INFO  - Included tests:
11:20:26.099 INFO  -   **/*Test.*
11:20:26.099 INFO  -   **/test/**/*
11:20:27.123 INFO  - 370 files indexed
11:20:27.124 INFO  - 430 files ignored because of inclusion/exclusion patterns
11:20:27.150 INFO  - Quality profile for java: Sonar way
11:20:27.226 INFO  - Sensor JavaSquidSensor
11:20:30.695 INFO  - Java Main Files AST scan...
11:20:30.695 INFO  - 370 source files to be analyzed
11:20:40.706 INFO  - 26/370 files analyzed, current is E:\sdf.java
11:20:50.706 INFO  - 84/370 files analyzed, current is E:\dfg.java
11:21:00.706 INFO  - 187/370 files analyzed, current is E:\fgh.java
11:21:10.708 INFO  - 281/370 files analyzed, current is E:\rtyService.java
11:21:20.711 INFO  - 329/370 files analyzed, current is E:\erwtDao.java
11:21:27.080 INFO  - Java Main Files AST scan done: 56385 ms
11:21:27.080 INFO  - 370/370 source files analyzed
11:21:27.098 INFO  - Java bytecode scan...
11:21:29.109 INFO  - Java bytecode scan done: 2011 ms
11:21:29.109 INFO  - Java Test Files AST scan...
11:21:29.109 INFO  - 0 source files to be analyzed
11:21:29.110 INFO  - Java Test Files AST scan done: 1 ms
11:21:29.111 INFO  - 0/0 source files analyzed
11:21:29.121 INFO  - Package design analysis...
11:21:29.655 INFO  - Package design analysis done: 534 ms
11:21:30.485 INFO  - Sensor JavaSquidSensor (done) | time=63259ms
11:21:30.486 INFO  - Sensor Lines Sensor
11:21:30.576 INFO  - Sensor Lines Sensor (done) | time=90ms
11:21:30.576 INFO  - Sensor SurefireSensor
11:21:30.579 INFO  - parsing E:\sdf\surefire-reports
11:21:30.580 WARN  - Reports path not found: E:\dfg\surefire-reports     ------ B
11:21:30.580 INFO  - Sensor SurefireSensor (done) | time=4ms
11:21:31.576 INFO  - Export issues to E:\dfg\sonar-report.json
11:21:32.193 INFO  - ANALYSIS SUCCESSFUL

 

์œ„ ๋นจ๊ฐ„ ์ค„๋กœ ๋ณด์ด๋Š” ๋ถ€๋ถ„์€ ๋ฌด์‹œํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋ฅผ ์ข€ ๋” ์ฝ์–ด๋ณด์‹œ๋ฉด ๊ทธ ์ด์œ ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

5. ์ˆ˜๋™์œผ๋กœ ๋ถ„์„ํ•˜๊ธฐ 

์ดํด๋ฆฝ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ Sona ํ”„๋กœ์ ํŠธ์™€ ์—ฐ๋™์ด ๋˜๋ฉด ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ ๋ฉ”๋‰ด์— SonaQube ๋ฉ”๋‰ด๊ฐ€ ๋œจ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ฉ”๋‰ด๋กœ ๋“ค์–ด๊ฐ€๋ฉด Analysis๊ฐ€ ์žˆ์œผ๋‹ˆ ์ด๋ฅผ ์ด์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ฐธ๊ณ ๋กœ ์ €๋Š” ์ง„ํ–‰ํ•˜๋Š” ๋™์•ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”์ฐฝ์—๋Š” ANALYSIS SUCCESSFUL์ด๋ผ๊ณ  ๋–ด์ง€๋งŒ ๋™์‹œ์— ํŒ์—…์ฐฝ์œผ๋กœ

An internal error occurred during: "SonarQube Analysis".
Unable to create markers

๋ผ๊ณ  ๋‚˜์˜ค๋„ค์š”.

 

์›์ธ์„ ์ฐพ์•„์„œ ๋‹ค์‹œ ์ด์–ด์„œ ๊ธ€์„ ์“ฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿผ ๋‹ค๋“ค ์ฆํ”„~

 

------------- updated 2015-08-07 -------------

์ดํด๋ฆฝ์Šค์—์„œ๋Š” preview ๋‚˜ incremental ๋ถ„์„๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

http://docs.sonarqube.org/display/SONAR/Working+with+SonarQube+in+Eclipse.

 

๊ทธ ๋ง์ธ ์ฆ‰์Šจ, ๋ถ„์„์ด ๋กœ์ปฌ๋กœ ์ด๋ฃจ์–ด์ง€๊ณ  SonarQube DB์— ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž˜์š”.

http://docs.sonarqube.org/display/SONAR/Concepts#Concepts-AnalysisModes

 

SonarQube ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์›นํŽ˜์ด์ง€์—์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ค๋ฉด SonarQube Runner๋ฅผ ๋‹ค์šด ๋ฐ›์•„์„œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Runner

 

 

5. ์ˆ˜๋™์œผ๋กœ ๋ถ„์„ํ•˜๊ธฐ - 2

์ง€๋‚œ ๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ์ˆ˜๋™์œผ๋กœ ๋ถ„์„ํ•˜๊ธฐ๋ฅผ ํ• ๋•Œ ๋‹จ์ˆœํžˆ ์ดํด๋ฆฝ์Šค์—์„œ Analyzeํ–ˆ์—ˆ๋Š”๋ฐ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์„œ๋ฒ„์— ๊ธฐ๋ก๋„ ๋‚จ์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์ฃ . ๊ทธ๋ž˜์„œ ์ข€ ๋” ์กฐ์‚ฌ๋ฅผ ํ•ด์„œ ์ง„๋„๋ฅผ ์ข€ ๋นผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

์šฐ์„  ์š”๊ธฐ ๋ฐ”๋กœ ์œ„์— ์„ธ๊ฐœ์˜ ๋งํฌ ์ค‘์—์„œ ๋งˆ์ง€๋ง‰ ๋งํฌ๋กœ ๊ฐ€์…”์„œ ์†Œ๋‚˜ํ๋ธŒ ๋Ÿฌ๋„ˆ๋ฅผ ๋‹ค์šด๋ฐ›์œผ์‹œ๊ณ  ์›ํ•˜๋Š” ์œ„์น˜์— ์••์ถ•์„ ํ’€์–ด์ฃผ์„ธ์š”.

๊ทธ ๋ฆฌ๊ณ  ๋‚ด์ปดํ“จํ„ฐ > ์†์„ฑ >  ๊ณ ๊ธ‰์‹œ์Šคํ…œ์„ค์ • > ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋กœ ์ด๋™ํ•˜์…”์„œ ( ์œˆ๋„์šฐ 8 ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ) ์•„๋ž˜์ฒ˜๋Ÿผ SONAR_RUNNER_HOME ๋ณ€์ˆ˜๋ฅผ ์ƒˆ๋กœ๋งŒ๋“ค๊ธฐ๋ฅผ ์ด์šฉํ•ด์„œ ๋“ฑ๋กํ•ด์ฃผ์‹œ๊ณ , Path์— ์‚ฌ์ง„์— ๋ณด์ด์‹œ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ฑ๋กํ•ด์ฃผ์„ธ์š”.

 

 

 

 

๊ทธ๋ฆฌ๊ณ  ์†Œ๋‚˜ ์„œ๋ฒ„๊ฐ€ ๊ธฐ๋™๋˜์–ด์žˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์—, ๋ถ„์„ํ•˜๊ณ ์žํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ด์ฃผ์„ธ์š”.

์˜ˆ๋ฅผ๋“ค๋ฉด d:\eclipse\workspace\myproject ๊ฐ€ ๋˜๊ฒ ์ฃ ?

 

๊ทธ๋ฆฌ๊ณ  ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

sonar-project.properties ๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์•„๋ž˜ ๋‚ด์šฉ์„ ๋„ฃ์–ด์ฃผ์„ธ์š”. ๋ณธ์ธ์˜ ์„ค์ •์— ๋งž๊ฒŒ projectKey์™€ projectName ๊ทธ๋ฆฌ๊ณ  ์ œ์ผ ์•„๋ž˜์˜ ์†Œ์Šค ์ธ์ฝ”๋”ฉ ๊ฐ’์„ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”.

 

 

# must be unique in a given SonarQube instance
sonar.projectKey=myproject

# this is the name displayed in the SonarQube UI
sonar.projectName=myproject project
sonar.projectVersion=1.0
 
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
sonar.sources=.
 
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

 

 

์ด์ œ ์ €์žฅ์„ ํ•˜๊ณ  ๋‚˜์™€์„œ cmd์ฐฝ์„ ์—ด์–ด์„œ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์†Œ๋‚˜ ๋Ÿฌ๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ sonar-runner ๋ผ๊ณ  ํ•˜๋ฉด ๋˜๋Š”๋ฐ -X ์˜ต์…˜์„ ์ฃผ๋ฉด debug ๋ชจ๋“œ๋กœ ์ง„ํ–‰์ƒํ™ฉ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์•„๋งˆ ํ”„๋กœ์ ํŠธ๊ฐ€ svn๊ณผ ์—ฐ๊ฒฐ๋˜์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ๋ผ๋ฉด ( .svn ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ๋””๋ ‰ํ† ๋ฆฌ์— ์—†๋‹ค๋ฉด ) ์‹คํ–‰์ด ์ž˜ ๋ ๊ฒ๋‹ˆ๋‹ค.

 

์‹คํ–‰์ด ์ž˜ ๋˜์—ˆ๋‹ค๋ฉด ๋กœ๊ทธ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— ์•„๋ž˜์ฒ˜๋Ÿผ ๋‚˜์˜ค๊ณ  ์†Œ๋‚˜ ๋Ÿฌ๋„ˆ๋Š” ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

 

INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
Total time: 25.866s
Final Memory: 15M/499M
INFO: ------------------------------------------------------------------------

 

์ด์ œ ์†Œ๋‚˜ํ๋ธŒ ์›น์œผ๋กœ๊ฐ€์„œ ๋ถ„์„๋œ ์ž๋ฃŒ๋ฅผ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์ด๋Ÿฐ์‹์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ˆ˜์น˜๊ฐ€ ๋ญ˜ ์˜๋ฏธํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์ž๋ฃŒ๋ฅผ ์ข€ ์ฐพ์•„๋ด์•ผ ํ• ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ถ€๋ถ„์€ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ๊ฐ์ž ์•Œ์•„์„œ ํ•ด๋ณด์‹œ๋ฉด ๋ ๊ฒƒ ๊ฐ™๋„ค์š”.

 

์ฐธ๊ณ ๋กœ ์ €๋Š” svn ์—ฐ๋™ํ•ด๋†“์€ ํ”„๋กœ์ ํŠธ๋„ ์‹œ๋„ํ•ด๋ณด์•˜๋Š”๋ฐ svn ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ ์—ฐ์ด์–ด์„œ ๊ธ€์„ ๋‚จ๊ธฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 ์ด์ƒ ์ผ€์ด์น˜์˜€์Šต๋‹ˆ๋‹ค.