JUnit 4 의새로운기능자바 5 주석덕분에 JUnit 4 가이전보다더욱가벼워졌고유연해졌다. 일부흥미로운새기능을위해이전의엄격한명명규칙과상속계층구조가사라졌다. 다음은 JUnit 4 의새로운기능을간략히설명해놓은목록이다. 매개변수테스트예외테스트제한시간테스트유연한픽스쳐테스트를

Size: px
Start display at page:

Download "JUnit 4 의새로운기능자바 5 주석덕분에 JUnit 4 가이전보다더욱가벼워졌고유연해졌다. 일부흥미로운새기능을위해이전의엄격한명명규칙과상속계층구조가사라졌다. 다음은 JUnit 4 의새로운기능을간략히설명해놓은목록이다. 매개변수테스트예외테스트제한시간테스트유연한픽스쳐테스트를"

Transcription

1 JUnit 4 로뛰어들기자바 5 주석을사용한효율적인테스트 난이도 : 중급 Andrew Glover, President, Stelligent Incorporated 2007 년 4 월 10 일 JUnit 4 에서는자바 (Java ) 5 주석 (annotation) 의효율적인유연성을위해기존의엄격한명명규칙및상속계층구조를없앴다. 테스트전문가로활동하고있는 Andrew Glover 는본튜토리얼에서코드품질과관련하여자신이연재한인기있는기술문서의내용을보충하는시간을마련하여매개변수테스트, 예외테스트, 제한시간테스트등주석을통해새로운기능을활용하는방법에대해설명한다. 또한 JUnit 4 의유연한픽스쳐 (fixture) 에대해소개하고스위트 (suite) 대신주석을사용하여테스트를실행하기전에논리적으로그룹화하는방법에대해서도설명한다. 본튜토리얼에는이클립스 (Eclipse) 에서실행되는일부샘플테스트와호환되지않는이전버전의앤트 (Ant) 에서 JUnit 4 테스트를실행하기위한지침이포함되어있다. 시작하기전에 튜토리얼소개자바 5 주석은 JUnit 에커다란변화를가져왔으며많은테스트프레임워크개발자에게효율적인작업방식으로점차인식되고있지만이들에게익숙한기술은아니다. 본튜토리얼에서는 JUnit 4 의가장중요한변경사항에대해설명하고독자가이미들어보았을지도모르지만아직사용하고있지는않을흥미로운새기능들에대해설명한다. 목적본튜토리얼에서는 JUnit 4 의기본개념에대해단계별로설명하고특히새로운자바 5 주석기능에대해자세히다룬다. 한시간분량의본튜토리얼학습을마치면 JUnit 4 의주요변경사항에대해이해할수있을뿐만아니라예외테스트, 매개변수테스트및유연한새픽스쳐모델과같은기능에대해알게된다. 또한테스트를선언하는방법, 스위트대신주석을사용하여테스트를실행하기전에논리적으로그룹화하는방법, 명령행뿐만아니라이클립스 3.2 또는앤트에서테스트를실행하는방법에대해서도설명한다. 필요한사전지식본튜토리얼을최대한활용하기위해서는일반적인자바개발에익숙해야한다. 본튜토리얼에서는또한독자가개발자테스트의중요성을이해하고있으며기본패턴매칭에익숙하다고가정한다. JUnit 4 테스트실행섹션의내용을테스트하기위해서는이클립스 3.2 를 IDE 로사용하고앤트 1.6 이상을사용해야한다. 이전버전의 JUnit 에익숙하지않더라도본튜토리얼을이해하는데에는문제가없다. 시스템요구사항본튜토리얼의코드를시험해보려면썬의 JDK 1.5.0_09 이상또는자바기술 SR3 용 IBM 개발자킷이설치된시스템이필요하다. 이클립스에서 JUnit 4 실행섹션의경우이클립스 3.2 이상이설치된시스템이필요하다. 앤트섹션의경우버전 1.6 이상이필요하다. 본튜토리얼에서권장하는시스템구성은다음과같다. 기본메모리가최소 500MB 이상이고썬 JDK 1.5.0_09 이상또는자바기술 SR3 용 IBM 개발자킷을지원하는시스템소프트웨어컴포넌트및예제를설치하기위한최소 20MB 이상의하드디스크여유공간 본튜토리얼의지침은마이크로소프트윈도우운영체제를기반으로한다. 또한본튜토리얼에서다루는모든도구는리눅스와유닉스시스템에서도작동한다.

2 JUnit 4 의새로운기능자바 5 주석덕분에 JUnit 4 가이전보다더욱가벼워졌고유연해졌다. 일부흥미로운새기능을위해이전의엄격한명명규칙과상속계층구조가사라졌다. 다음은 JUnit 4 의새로운기능을간략히설명해놓은목록이다. 매개변수테스트예외테스트제한시간테스트유연한픽스쳐테스트를쉽게무시하는방법테스트를논리적으로그룹화하는방법 이러한기능과더많은새로운기능을이후섹션에서설명하기에앞서 JUnit 4 의가장중요한변경사항에대해설명하겠다. 기존버전의문제 JUnit 4 에자바 5 주석기능이추가되기전에이프레임워크에는기능을사용하는데반드시필요한두가지규칙이존재했다. 첫번째는 JUnit 에서논리적테스트로작동하도록작성된모든메서드는 test 라는단어로반드시시작해야한다는것이다. testusercreate 와같이이단어로시작하는모든메서드는테스트메서드이전및이후에픽스쳐실행을보장하는잘정의된테스트프로세스에따라실행되었다. 두번째규칙은 JUnit 에서테스트를포함하는클래스객체를인식하기위해클래스자체가 JUnit 의 TestCase 에서확장되어야한다는점이다 ( 또는일부파생 ). 이러한두가지규칙을위반하는테스트는실행할수없었다. Listing 1 은 JUnit 4 이전에작성된 JUnit 테스트를보여준다. Listing 1. 이렇게어렵게작성해야할필요가있을까? import junit.framework.testcase; public class RegularExpressionTest extends TestCase { private String zipregex = "^\\d{5([\\-]\\d{4)?$"; private Pattern pattern; protected void setup() throws Exception { this.pattern = Pattern.compile(this.zipRegEx); public void testzipcode() throws Exception{ Matcher mtcher = this.pattern.matcher("22101"); asserttrue("pattern did not validate zip code", isvalid); 새로운버전의이점자바 5 주석을사용할수있는 JUnit 4 에서는이러한규칙이모두사라졌다. 주석으로만기술하면된다. Listing 2 는 Listing 1 에표시된것과동일한테스트를보여주지만주석을사용하여다시정의되어있다. Listing 2. 주석을사용한테스트

3 import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.asserttrue; public class RegularExpressionTest { private static String zipregex = "^\\d{5([\\-]\\d{4)?$"; private static Pattern public static void setupbeforeclass() throws Exception { pattern = public void verifygoodzipcode() throws Exception{ Matcher mtcher = this.pattern.matcher("22101"); asserttrue("pattern did not validate zip code", isvalid); Listing 2 에서언급한테스트는코드로작성하기가더쉽지않을수도있지만확실한것은더쉽게이해할수있다는것이다. 로테스트메서드를표시하는것이상으로더명확한방법이있을까? 이는각메서드가전반적인테스트케이스에서어떤역할을담당하는지만이해하고싶어도 JUnit 규칙에대한상당한이해가필요했던기존 JUnit 스타일에비해크게향상된점이다. 이미작성된테스트를파싱할때에도주석은큰도움이되지만테스트작성중에추가작업이발생할경우에는더욱필수적인요소가된다.

4 주석을사용한테스트자바 5 주석으로인해 JUnit 4 는이전버전과는크게다른프레임워크가되었다. 이섹션에서는테스트선언과예외테스트같은핵심영역뿐만아니라제한시간테스트영역에서주석을사용하는방법과원치않는또는사용할수없는테스트를무시하는방법에대해설명한다. 테스트선언 JUnit 4 주석만덧붙이면된다. Listing 3 에서와같이특정클래스에서확장할필요가없다. Listing 3. JUnit 4 에서테스트선언 import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.assertfalse; public class RegularExpressionTest { private static String zipregex = "^\\d{5([\\-]\\d{4)?$"; private static Pattern public static void setupbeforeclass() throws Exception { pattern = public void verifyzipcodenomatch() throws Exception{ Matcher mtcher = this.pattern.matcher("2211"); boolean notvalid = mtcher.matches(); assertfalse("pattern did validate zip code", notvalid); 정적가져오기에대해알아야할것필자는 Listing 3 에서 Assert 클래스의 assertfalse() 메서드를가져오기위해자바 5 의정적가져오기기능을사용했다. 이는테스트클래스가이전버전의 JUnit 에서와같이 TestCase 에서확장되지않기때문이다. 예외테스트이전버전의 JUnit 에서와같이일반적으로테스트가 Exception 을 throw 하는경우를지정하는것이좋다. 이규칙을무시해야하는유일한경우는특정예외에대한테스트를시도하려는경우다. 테스트가예외를 throw 하면프레임워크가실패를보고한다. 특정예외에대한테스트를수행하고자할때 JUnit 4 주석은테스트가예외시 throw 해야하는예외유형을나타내는 expected 매개변수를지원한다. 간단한비교로새로운매개변수의차이점을이해할수있다. JUnit 3.8 에서예외테스트 testzipcodegroupexception() 으로명명된 Listing 4 의 JUnit 3.8 테스트는선언한정규식의세번째그룹을얻으려고시도할경우 IndexOutOfBoundsException 이발생하는것으로확인된다. Listing 4. JUnit 3.8 에서예외테스트 import junit.framework.testcase; public class RegularExpressionTest extends TestCase { private String zipregex = "^\\d{5([\\-]\\d{4)?$"; private Pattern pattern;

5 protected void setup() throws Exception { this.pattern = Pattern.compile(this.zipRegEx); public void testzipcodegroupexception() throws Exception{ Matcher mtcher = this.pattern.matcher(" "); try{ mtcher.group(2); fail("no exception was thrown"); catch(indexoutofboundsexception e){ 이전버전의 JUnit 에서는 try/catch 를작성하여예외가발생하지않으면실패하는이러한간단한테스트를위해서도상당히많은양의코드를작성해야한다. JUnit 4 에서예외테스트 Listing 5 의예외테스트는 Listing 4 와동일하지만새로운 expected 매개변수를사용한다는점이다르다 (Listing 4 주석에 IndexOutOfBoundsException 예외를전달하여테스트를수정할수있었다 ). Listing 5. 'expected' 매개변수를사용한예외테스트 import org.junit.beforeclass; import org.junit.test; public class RegularExpressionJUnit4Test { private static String zipregex = "^\\d{5([\\-]\\d{4)?$"; private static Pattern public static void setupbeforeclass() throws Exception { pattern = public void verifyzipcodegroupexception() throws Exception{ Matcher mtcher = this.pattern.matcher(" "); mtcher.group(2); 제한시간테스트 JUnit 4 의테스트케이스에서는제한시간값을매개변수로사용할수있다. Listing 6 에서와같이 timeout 값은테스트가실행하는데걸리는최대시간을나타낸다. 시간이초과되면테스트가실패한다. Listing 6. timeout public void verifyfastzipcodematch() throws Exception{ Pattern pattern = Pattern.compile("^\\d{5([\\-]\\d{4)?$"); Matcher mtcher = pattern.matcher("22011"); asserttrue("pattern did not validate zip code", isvalid); 제한시간을사용한테스트는쉽게작성할수있다. 다음에 timeout 값을삽입하면자동화된제한시간테스트를구현할수있다.

6 테스트무시 JUnit 4 버전이나오기전에는깨져있거나불완전한테스트를무시하기가어려웠다. 프레임워크에서특정테스트를무시하도록하려면테스트명칭을따르지않도록테스트이름을바꾸어야했다. 예를들어필자도테스트가실행되지않도록표시하기위해테스트메서드앞에 "_" 를붙이는습관이있었다. JUnit 4 를붙인주석을통해프레임워크에서특정테스트메서드를무시하도록할수있다. 주석 Listing 7 은정규식이아직작동하지않는테스트를쉽게무시하는방법을보여준다. Listing 7. regular expression isn't working public void verifyzipcodematch() throws Exception{ Pattern pattern = Pattern.compile("^\\d{5([\\-]\\d{4)"); Matcher mtcher = pattern.matcher("22011"); asserttrue("pattern did not validate zip code", isvalid); 테스트무시에대한알림메시지예를들어이클립스에서이테스트를실행하면그림 1 과같이테스트가무시되었다는알림이보고된다. Figure 1. 그림 1. 무시된테스트가이클립스에서표시되는모습

7 테스트픽스쳐테스트픽스쳐는 JUnit 4 의새로운기능은아니지만픽스쳐모델이새롭게향상되었다. 이섹션에서는픽스쳐를사용하는이유와경우에대해설명하고이전버전의유연하지않은픽스쳐와 JUnit 4 의새로운모델간의차이점을설명한다. 픽스쳐를사용하는이유픽스쳐는특정로직이테스트전후에실행되도록보장하는하나의약정이므로손쉽게재활용할수있다. 이전버전의 JUnit 에서이약정은픽스쳐를구현했는지여부에관계없이적용되었다. 하지만 JUnit 4 에서픽스쳐는주석을통해명시적으로변경되므로사용자가픽스쳐를사용하도록결정한경우에만약정이적용된다. 테스트전후에픽스쳐를실행할수있도록보장하는약정을통해재사용이가능한로직을코딩할수있다. 예를들어이러한로직은여러테스트케이스또는로직에서데이터종속테스트를실행하기전에데이터베이스를채우도록테스트를수행할클래스를초기화할수있다. 이러한테스트케이스는공통로직을사용하므로어느쪽이든픽스쳐를사용하면테스트케이스를더쉽게관리할수있다. 픽스쳐는동일한로직을사용하는여러테스트를실행중이고이들중일부또는전체가실패할경우에특히유용하다. 각테스트의설정로직에서실패원인을확인하는대신한곳에서실패원인을추론할수있다. 또한테스트가일부만성공하고일부는실패하는경우이러한실패의공통원인으로픽스쳐로직을검사하지않아도된다. 유연하지않은픽스쳐 O 이전버전의 JUnit 에서는다소유연하지않은픽스쳐모델이사용되었다. 여기에서는 setup() 과 teardown() 메서드를사용하여모든테스트메서드를래핑해야했다. Listing 8 에서는이러한모델의잠재적인단점을확인할수있다. 여기에서는 setup() 메서드가구현되며따라서정의된각테스트에대해한번씩두번실행된다. Listing 8. 유연하지않은픽스쳐 import junit.framework.testcase; public class RegularExpressionTest extends TestCase { private String zipregex = "^\\d{5([\\-]\\d{4)?$"; private Pattern pattern; protected void setup() throws Exception { this.pattern = Pattern.compile(this.zipRegEx); public void testzipcodegroup() throws Exception{ Matcher mtcher = this.pattern.matcher(" "); assertequals("group(1) didn't equal -5051", "-5051", mtcher.group(1)); public void testzipcodegroupexception() throws Exception{ Matcher mtcher = this.pattern.matcher(" "); try{ mtcher.group(2); fail("no exception was thrown"); catch(indexoutofboundsexception e){ 해결방법이전버전의 JUnit 에서는 TestSetup 데코레이터를사용하여픽스쳐가한번만실행되도록지정할수있었지만 Listing 9 와같이이러한방식은번거로운작업이다 ( 필수 suite() 메서드참조 ): Listing 9. JUnit 4 이전의 TestSetup

8 import junit.extensions.testsetup; import junit.framework.test; import junit.framework.testcase; import junit.framework.testsuite; import junit.textui.testrunner; public class OneTimeRegularExpressionTest extends TestCase { private static String zipregex = "^\\d{5([\\-]\\d{4)?$"; private static Pattern pattern; public static Test suite() { TestSetup setup = new TestSetup( new TestSuite(OneTimeRegularExpressionTest.class)) { protected void setup() throws Exception { pattern = Pattern.compile(zipRegEx); ; return setup; public void testzipcodegroup() throws Exception { Matcher mtcher = pattern.matcher(" "); assertequals("group(1) didn't equal -5051", "-5051", mtcher.group(1)); public void testzipcodegroupexception() throws Exception { Matcher mtcher = pattern.matcher(" "); try { mtcher.group(2); fail("no exception was thrown"); catch (IndexOutOfBoundsException e) { JUnit 4 이전에는픽스쳐의이점을얻기위해서는감수해야하는희생이더많았다. 4.0 에서의유연성 JUnit 4 에서는주석을사용하여픽스쳐에따른상당한오버헤드를없앰으로써모든테스트에대해또는전체클래스에대해한번픽스쳐를실행하거나아예실행하지않을수도있다. 픽스쳐주석은클래스수준의픽스쳐 2 개와메서드수준의픽스쳐 2 개가존재한다. 가있으며메서드 ( 또는테스트 ) 가있다. Listing 10 주석을사용하여두테스트에대해실행되는픽스쳐가들어있다. Listing 10. 주석을사용한유연한픽스쳐 import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.asserttrue; import static org.junit.assert.assertfalse; public class RegularExpressionJUnit4Test { private static String zipregex = "^\\d{5([\\-]\\d{4)?$"; private static Pattern public static void setupbeforeclass() throws Exception { pattern =

9 public void verifyzipcodenomatch() throws Exception{ Matcher mtcher = this.pattern.matcher("2211"); boolean notvalid = mtcher.matches(); assertfalse("pattern did validate zip code", public void verifyzipcodegroupexception() throws Exception{ Matcher mtcher = this.pattern.matcher(" "); mtcher.group(2); 1 회용픽스쳐픽스쳐를한번만실행해야하는경우는어떻게해야할까? Listing 9 처럼이전스타일의데코레이터를구현하는대신 Listing 11 주석을사용할수있다. Listing 11. JUnit 4 에서 1 회용픽스쳐설정 import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.asserttrue; import static org.junit.assert.assertfalse; public class RegularExpressionJUnit4Test { private static String zipregex = "^\\d{5([\\-]\\d{4)?$"; private static Pattern public static void setupbeforeclass() throws Exception { pattern = public void verifyzipcodenomatch() throws Exception{ Matcher mtcher = this.pattern.matcher("2211"); boolean notvalid = mtcher.matches(); assertfalse("pattern did validate zip code", public void verifyzipcodegroupexception() throws Exception{ Matcher mtcher = this.pattern.matcher(" "); mtcher.group(2); teardown() 메서드이전의 teardown() 기능은새로운픽스쳐모델에서사라지지않았다. teardown() 를사용하면된다. 향상된사용성 JUnit 4 에서는테스트케이스에서두개이상의픽스쳐를지정할수있다. 픽스쳐메서드를만드는데어떠한제한도없다. 하지만현재버전의 JUnit 4 에서는어떤픽스쳐메서드를먼저실행하도록지정할수없으므로두개이상의픽스쳐를사용할때이점에주의해야한다.

10 테스트실행 : JUnit 4 에서테스트새롭게향상된 JUnit 4 에서가장놀라운특징중하나는테스트를논리적으로그룹화하고이를단일유닛으로실행하는데사용되는메커니즘인스위트가없다는점이다. 이섹션에서는스위트를대신하는효율적인새로운주석기능에대해소개하고이클립스및앤트에서 JUnit 4 테스트를실행하는방법을보여준다. 이전방식의스위트차이점을비교해볼수있도록 Listing 12 에표시된이전방식의 JUnit 스위트를확인해보자 ( 이스위트는두개의논리적테스트클래스를그룹화하고이를단일유닛으로실행한다 ). Listing 12. 이전방식의 JUnit 스위트 import junit.framework.test; import junit.framework.testsuite; public class JUnit3Suite { public static Test suite() { TestSuite suite = new TestSuite(); suite.addtest(onetimeregularexpressiontest.suite()); suite.addtestsuite(regularexpressiontest.class); return suite; 두가지뛰어난새로운주석기능 JUnit 4 에서스위트는새로운주석두가지로대체되었다. 는프레임워크에내장된러너 (runner) 가아닌다른러너를통해특정테스트클래스를손쉽게실행할수있게해준다. JUnit 4 주석에서지정해야하는 Suite 라는이름의스위트러너를번들로포함한다. 라는주석을제공해야한다. Listing 13. 편리한기능의주석 import org.junit.runner.runwith; import org.junit.runners.suite; RegularExpressionTest.class, TimedRegularExpressionTest.class) public class JUnit4Suite { 이클립스에서 JUnit 4 테스트실행이클립스와같은 IDE 에서또는명령행을통해 JUnit 4 테스트클래스를실행할수있다. Run As JUnit 테스트옵션을선택하면이클립스버전 3.2 이상에서 JUnit 테스트를실행할수있다. 명령행을통해테스트를실행하려면 org.junit.runner.junitcore 클래스를실행하고테스트의정규화된이름을인수로전달해야한다. 예를들어이클립스에서번들로제공되는 JUnit 러너를사용하지않고자하는경우새로운실행구성을정의하고그림 2 와같이 JUnitCore 클래스를지정하면된다.

11 그림 2. 이클립스에서 JUnit 4 명령행테스트를실행하기위한첫번째단계 테스트지정그런다음그림 3 과같이 Arguments 탭의 "Program arguments" 텍스트상자에테스트의정규화된이름을추가하여실행할테스트를지정해야한다. 그림 3. 이클립스에서 JUnit 명령행테스트를실행하기위한두번째단계

12 앤트와 JUnit 4 앤트와 JUnit 은지금까지훌륭한팀으로존재해왔으며많은개발자들은이러한관계로인해뛰어난 JUnit 4 를얻게될것이라고기대했다. 그리고결과적으로도이러한사실은실제로나타났다. 1.7 이전의앤트버전을실행중인경우 JUnit 4 테스트를즉시실행할수없다. 하지만그렇더라도테스트자체를실행할수없는것은아니며단지즉시실행할수없을뿐이다. 잘못맞춰진짝 1.7 이전의앤트버전에서 JUnit 4 테스트 (Listing 14 참조 ) 를실행하면흥미로운결과가발생한다. Listing 14. 간단한 JUnit 4 테스트클래스 import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.asserttrue; public class RegularExpressionTest { private static String zipregex = "^\\d{5([\\-]\\d{4)?$"; private static Pattern public static void setupbeforeclass() throws Exception { pattern = public void verifygoodzipcode() throws Exception{ Matcher mtcher = this.pattern.matcher("22101"); asserttrue("pattern did not validate zip code", isvalid); 여러번의테스트실패앤트에서오래된 junit 작업을사용하면 Listing 15 와같은에러가발생한다. Listing 15. 여러가지에러 [junit] Running test.com.acme.regularexpressiontest [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: sec [junit] Testsuite: test.com.acme.regularexpressiontest [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: sec [junit] Testcase: warning took sec [junit] FAILED [junit] No tests found in test.com.acme.regularexpressiontest [junit] junit.framework.assertionfailederror: No tests found in test.com.acme.regularexpressiontest [junit] Test test.com.acme.regularexpressiontest FAILED 해결방법 1.7 이전의앤트버전에서 JUnit 4 테스트를실행하려면 Listing 16 에서와같이 JUnit4TestAdapter 의인스턴스를반환하는 suite() 메서드를사용하여테스트케이스를수정해야한다. Listing 16. 이전메서드를새롭게활용 public static junit.framework.test suite(){ return new JUnit4TestAdapter(RegularExpressionTest.class); 주석으로인해 Test 의반환유형을정규화해야한다. 하지만 suite() 메서드를배치하면어떤버전의앤트에서도 JUnit 4 테스트가문제없이실행된다.

13 매개변수테스트애플리케이션의비즈니스로직에서는테스트가제대로될때까지사용자가매우많은테스트를작성해야한다. 이전버전의 JUnit 에서이러한유형의시나리오는테스트에서메서드에대한매개변수그룹이다양하면각고유그룹에대한테스트케이스를작성해야했기때문에매우많은불편을초래했다. JUnit 4 에서는매개변수값을지정할수있는일반테스트를작성할수있게해주는새로운기능이도입되었다. 결과적으로테스트케이스하나를작성하여이전에작성한각매개변수에대해이를여러번실행할수있다. 간단한매개변수를통한테스트 JUnit 4 에서매개변수테스트를작성하는데에는다음과같이간단한 5 단계로이루어진다. 1. 매개변수를사용하지않는일반테스트를작성한다. 2. Collection 유형을반환하는 static 주석으로표시한다. 3. 첫번째단계에서정의한일반메서드에필요한매개변수유형에대한클래스멤버를만든다. 4. 이러한매개변수유형을사용하고이를세번째단계에서정의한클래스멤버와연결하는 생성자를만든다. 주석을통해 Parameterized 클래스와함께실행할테스트케이스를지정한다. 이러한단계들을차례로살펴보자. 첫번째단계. 일반테스트작성 Listing 17 에서는정규식에대해여러값을확인하는일반테스트를보여준다. 여기에서는 phrase 와 match 값이정의되지않았다. Listing 17. public void verifygoodzipcode() throws Exception{ Matcher mtcher = this.pattern.matcher(phrase); assertequals("pattern did not validate zip code", isvalid, match); 두번째단계. 피더메서드작성다음단계는피더메서드를작성하는것이다. 이는 static 으로선언해야하고 Collection 유형을반환해야한다. a 주석으로표시해야한다. Listing 18 에서와같이메서드내에서다차원 Object 배열을만들고이를 List 로변환한다. Listing public static Collection regexvalues() { return Arrays.asList(new Object[][] { {"22101", true, {"221x1", false, {" ", true, {" ", false ); 세번째단계. 클래스멤버두개작성매개변수유형은 String 과 boolean 이기때문에다음과같이클래스멤버를두개작성해야한다. Listing 19. 클래스멤버두개선언 private String phrase; private boolean match;

14 네번째단계. 생성자작성다음으로작성하는생성자는 Listing 20 에서와같이클래스멤버를매개변수값에연결한다. Listing 20. 값을비교하는생성자 public ParametricRegularExpressionTest(String phrase, boolean match) { this.phrase = phrase; this.match = match; 다섯번째단계. Parameterized 클래스지정마지막으로클래스수준에서이테스트가 Listing 21 에서와같이 Parameterized 클래스로실행되도록지정한다. Listing 21. Parameterized public class ParametricRegularExpressionTest { //... 테스트실행테스트클래스를실행하면일반 verifygoodzipcode() 테스트메서드가 Listing 18 의 regexvalues() 데이터피더메서드에정의된각값쌍에대해한번씩네번실행된다. 예를들어이테스트를이클립스에서실행하면그림 4 에서와같이테스트실행을 4 회했음을보고한다. 그림 4. 이클립스에서실행된매개변수테스트

15 기타새로운기능지금까지설명한중요한변경사항외에도 JUnit 4 에는몇가지추가된기능과없어진기능이있다. 그예로 assert 메서드가새로추가되었고터미널상태가없어졌다.. 새로운 assert JUnit 4 에는배열내용을비교하기위한새로운 assert 메서드가추가되었다. 그렇게중요한기능은아니지만, 덕분에사용자는더이상배열의내용을반복적으로검사하여각개별항목을확인할필요가없어졌다. 예를들어 Listing 22 에보이는코드는이전버전의 JUnit 에서는사용할수없다. 이테스트케이스는각배열의두번째요소가조금다르기때문에실패한다. Listing 22. JUnit 4 에서배열을지원하는 public void verifyarraycontents() throws Exception{ String[] actual = new String[] {"JUnit 3.8.x", "JUnit 4", "TestNG"; String[] var = new String[] {"JUnit 3.8.x", "JUnit 4.1", "TestNG 5.5"; assertequals("the two arrays should not be equal", actual, var); 에러표시안함 JUnit 4 에서사소할수도있지만중요한변경사항중하나는에러표기가사라졌다는점이다. 이전버전에서는실패개수와에러개수가모두보고되었지만 JUnit 4 에서는테스트가성공하거나실패하는것만표시된다. 흥미롭게도하나의상태가제거되었지만이번에는테스트를무시하는기능으로인해새로운상태가추가되었다. 일련의테스트를실행하면 JUnit 4 에서는실행된테스트개수와실패개수, 무시된테스트개수를보고한다.

16 결론 JUnit 4 가원래의설계의도와많이달라졌지만그렇다고해서이프레임워크가완전히다른방식으로작동하는것은아니다. 원래의프레임워크가갖고있는성능과단순성은그대로유지된다. 실제로프레임워크를자세히살펴보면일부뛰어난새기능들이추가되었지만개발자의테스트기술을혁신적으로이끌었던중요한원칙은그대로남아있다는것을알수있다. 본튜토리얼에서는테스트선언에서매개변수테스트까지 JUnit 4 의전반적인기능을확인하기위한단계들을살펴보았다. 제한시간테스트및예외테스트와같은새로운기능을확인하고픽스쳐및논리적인그룹화와같은익숙한기능의변경사항도확인했다. 또한이클립스에서수행되는테스트방식을살펴보고 1.7 이전버전을포함하여모든앤트버전에서테스트를실행할수있게해주는간단한해결방법도배웠다. 본튜토리얼에서독자가반드시알았으면하는내용이있다면주석이 JUnit 의본래기능을헤치는것이아니라아주손쉽게사용할수있다는사실이다. 따라서독자들도주석을시험해보기를바란다. 주석은테스트작성방식을한층더세련되게그리고편리하게만들어줄것이다. 기사의원문보기 Jump into JUnit 4: Streamlined testing with Java 5 annotations

17 참고자료 포럼에참여하기. "An early look at JUnit 4" (Elliotte Rusty Harold, developerworks, 2005 년 9 월 ): 엘리옷해롤드가 JUnit 4 의새로운기능에대해설명한다. "In pursuit of code quality: JUnit 4 vs. TestNG" (Andrew Glover, developerworks, 2006 년 8 월 ): JUnit 4 가 TestNG 의뛰어난모든기능을도입했다는것이사실일까? " 테스트엔지로자바단위테스트를쉽게! ( 한글 )" (Filippo Diotalevi, 한국 developerworks, 2005 년 1 월 ): TestNG 는강력하고, 혁신적이며, 확장가능하고유연할뿐만아니라자바주석을사용한흥미로운애플리케이션구축방식을제시한다. "Annotations in Tiger, Part 1: 메타데이터를자바코드에추가하기 ( 한글 )" (Brett McLaughlin, 한국 developerworks, 2004 년 9 월 ): Brett McLaughlin 이메타데이터가유용한이유에대해설명하고자바언어의주석기능을소개하고자바 5 에내장된주석에대해자세히설명한다. "Classworking toolkit: Annotations vs. configuration files" (Dennis Sosnoski, developerworks, 2005 년 8 월 ): Dennis Sosnoski 가구성파일이여전히활용되는이유에대해설명한다. "JUnit Reloaded" (Ralf Stuckert, Java.net, 2006 년 12 월 ): 이전버전과 JUnit 4 를비교한내용을소개한다. "JUnit 4 you" (Fabiano Cruz, Fabiano Cruz's Blog, 2006 년 6 월 ): JUnit 4 에대한 IDE 지원및도구를간략히소개한다. "Limiting asserts in test cases" (thediscoblog.com): JUnit, TestNG 의베스트프랙티스를살펴본다. "DbUnit with JUnit 4" (testearly.com): JUnit 4 가이전버전과다르다고해서이전버전의 JUnit 을위해작성된확장프레임워크에 JUnit 4 를사용할수없는것은아니다. "Using JUnit extensions in TestNG" (Andrew Glover, thediscoblog.com, 2006 년 3 월 ): 프레임워크가 JUnit 확장이어야한다고해서 TestNG 에서사용할수없는것은아니다. In pursuit of code quality 연재 (Andrew Glover, developerworks): 코드메트릭에서테스트프레임워크및리팩토링까지여기에연재된모든기술문서를참조하기바란다. 필자소개 Andrew Glover 는 Stelligent Incorporated 의회장이다. 효과적인개발자테스팅전략과통합기술력을바탕으로기업이소프트웨어품질을높일수있도록돕고있다.

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

Junit

Junit JUnit(Unit Test) Team 1 200310394 남장우 200412342 이종훈 Contents 1. UnitTest 2. JUnit 3. JUnit Example 4. JUnit & Friends 5. Q & A Unit Test JUnit JUnit Example(1) JUnit & Friends Reference Unit Test JUnit

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 JUnit Unit Test & JUnit Execution Examples 200511349 장기웅 200511300 강정희 200511310 김진규 200711472 진교선 Content 1. Unit Testing 1. Concept of TDD 2. Concept of Unit Testing 3. Unit Test Benefit & Limitation

More information

2 JUnit 이필요한이유 기졲의테스트방식 클래스에서테스트최소단위는메소드이며어떤것이유효한지를찾으려면하나씩테스트해야함테스트구현하는과정에서한번의단일테스트가실패할경우, 후속테스트가전혀수행되지않아전체적인테스트가불가능테스트를자동으로시작해주는프레임워크가없어각테스트를시작하기위해서는

2 JUnit 이필요한이유 기졲의테스트방식 클래스에서테스트최소단위는메소드이며어떤것이유효한지를찾으려면하나씩테스트해야함테스트구현하는과정에서한번의단일테스트가실패할경우, 후속테스트가전혀수행되지않아전체적인테스트가불가능테스트를자동으로시작해주는프레임워크가없어각테스트를시작하기위해서는 소프트웨어검증발표 JUnit 200511305 김성규 200511306 김성훈 200518036 곡짂화 200611124 유성배 200614164 김효석 2 JUnit 이필요한이유 기졲의테스트방식 클래스에서테스트최소단위는메소드이며어떤것이유효한지를찾으려면하나씩테스트해야함테스트구현하는과정에서한번의단일테스트가실패할경우, 후속테스트가전혀수행되지않아전체적인테스트가불가능테스트를자동으로시작해주는프레임워크가없어각테스트를시작하기위해서는코드를작성해야함테스팅코드는생성된클래스에졲재하여증가한코드의크기로인한문제는없겠지만보안상문제가발생할수있음

More information

JUnit & Eclipse

JUnit & Eclipse JUnit & Eclipse 201260053 Abbos Shomurodov 201260058 채숭흠 TEAM 1 200711437 성하진 200511355 정용구 200911436 조성완 Contents 1. Software Testing Theory 2. Eclipse Plug-in 3. JUnit Practice Software Testing Theory

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Software Verification Junit, Eclipse 및빌드환경 Team : T3 목차 Eclipse JUnit 빌드환경 1 Eclipse e 소개 JAVA 를개발하기위한통합개발환경 주요기능 Overall 빌드환경 Code edit / Compile / Build Unit Test, Debug 특징 JAVA Code를작성하고이에대한 debugging

More information

소프트웨어공학개론 Tutorial #2: Junit Eun Man Choi

소프트웨어공학개론 Tutorial #2: Junit Eun Man Choi 소프트웨어공학개론 Tutorial #2: Junit Eun Man Choi emchoi@dgu.ac.kr 강의목표 l JUnit 소개 l 테스트케이스 l Assertion l JUnit 테스트실행 2 JUnit l Java 언어를위한단위테스팅프레임워크 l 저자 : Erich Gamma, Kent Beck l 목적 : l 테스트를생성하고실행하기쉽다면프로그래머가테스트를생성하고실행하도록마음을움직일것이다.

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

ppt.glzy8.com提供海量PPT模板免费下载!

ppt.glzy8.com提供海量PPT模板免费下载! ppt.glzy8.com 海量 PPT 模板免费下载 소프트웨어검증발표 #1 junit, Eclipse, 정적분석도구 T5 201013759 근량 201013760 기세파 contents 1 2 3 4 JUnit Eclipse jdepend colver JUnit 이란? Junit 는가장많이사용되는 Java 단위테스트프레임워크. 콘솔환경에서명령행으로도실행가능.

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

PowerPoint Presentation

PowerPoint Presentation Software Verification T4 고수창전소영이세라하지윤 Index 1 CI 2 IntelliJ IDEA 3 JUnit 4 Build Environment 5 Git 1 Continuous Integration What is CI? 소프트웨어개발에서 Build/Test 의프로세스를지속적으로수행하는것 개발자생산성향상 버그의빠른발견및해결 더빠른업데이트제공

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

Cluster management software

Cluster management software 자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 기본예제 예외클래스를정의하고사용하는예제 class NewException extends Exception { public class ExceptionTest { static void methoda() throws NewException { System.out.println("NewException

More information

파워포인트

파워포인트 S O F T WA R E V E R I F I CAT I O N Junit & Eclipse 및빌드환경 TEAM 1 컴퓨터공학부 201011314 김민재 201011356 이종찬 201011376 한지승 201111329 강성길 2015.03.18 I N D E X 1 Purpose & CI 2 Eclipse 3 JUnit 4 Build Environment

More information

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345]) 예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

ThisJava ..

ThisJava .. 자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

UnitTesting(ÇѱÛÆÇ).hwp

UnitTesting(ÇѱÛÆÇ).hwp BlueJ에서의단위테스트 Unit Testing in BlueJ Version 1.0 for BlueJ Version 1.3.0 한국어버전 1.0 BlueJ Version 1.3.0 用 Michael Kölling Mærsk Insitute University of Southern Denmark 번역 : 황석형선문대학교컴퓨터정보학부 Copyright C M.

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

1. 도구개요 JUnit Testing 소개 JUnit 은 Java 기반테스팅을위한프레임워크로, 단위모듈 (ex: Method) 이정확히구현되었는지를확인할수있는도구 주요기능 Test case 생성및실행, 오류추적 카테고리 Testing 세부카테고리테스트설계및실행 커버리

1. 도구개요 JUnit Testing 소개 JUnit 은 Java 기반테스팅을위한프레임워크로, 단위모듈 (ex: Method) 이정확히구현되었는지를확인할수있는도구 주요기능 Test case 생성및실행, 오류추적 카테고리 Testing 세부카테고리테스트설계및실행 커버리 1. 도구개요 소개 은 Java 기반테스팅을위한프레임워크로, 단위모듈 (ex: Method) 이정확히구현되었는지를확인할수있는도구 주요기능 Test case 생성및실행, 오류추적 카테고리 세부카테고리테스트설계및실행 커버리지 도구난이도하 라이선스형태 / 비용 Common Public License 1.0 / 무료사전설치도구자바기반 IDE(Eclipse, NetBeans

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

More information

문서의 제목 나눔명조R, 40pt

문서의 제목  나눔명조R, 40pt SOFTWARE VERIFICATION JUnit & IntelliJ IDEA 및빌드환경 TEAM _5 201313250 서지혁 201214262 라가영 2016. 03. 18 목차 1. CI 2. IntelliJ IDEA 3. JUnit 4. Build Enviroment 1. CI What is CI? 프로젝트에참여주인개발자들의결과물을지속적으로통합하고,

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

PowerPoint Template

PowerPoint Template 10. 예외처리 대구가톨릭대학교 IT 공학부 소프트웨어공학연구실 목차 2 10.1 개요 10.2 C++ 의예외처리 10.3 Java 의예외처리 10.4 Ada 의예외처리 10.1 예외처리의개요 (1) 3 예외 (exception) 오버플로나언더플로, 0 으로나누기, 배열첨자범위이탈오류와같이프로그램실행중에비정상적으로발생하는사건 예외처리 (exception handling)

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

슬라이드 1

슬라이드 1 Continuous Integration 지속적인테스트 조영호카페PJT팀 2008.09.16 youngho.cho@nhncorp.com 목차 1. 지속적인테스트 2. 테스트분류 3. xunit 1. 지속적인테스트 선형시스템의신뢰도 컴포넌트 A ( 신뢰도 90%) 컴포넌트 B ( 신뢰도 90%) 컴포넌트 C ( 신뢰도 90%) 신뢰도 = 0.9 x 0.9 x

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

표지

표지 12. 3. 16, Presentation #1 Junit & Eclipse 200511318 김희재 T2 200511326 박현짂 200711436 서영주 200913987 이승효 Contents > Test Driven Development (TDD) Junit Hamcrest Mockito > Subclipse

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Mantis, SVN & Team Presentation #4 Team 2 201111344 김재엽 201111339 김민우 201211386 최하나 Contents Chapter 1 - Mantis Chapter 2 - Subversion Chapter 3 - Chapter 1 Mantis Mantis - 프로젝트단위로이슈관리 What is Mantis?

More information

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id=entitymanagerfactory class=org.springframework.orm.jpa.localentitymanagerfactorybean p:persistenceunitname= JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

1. 도구개요 STAF Testing 소개 각테스트대상분산환경에데몬을사용하여테스트대상프로그램을통해테스트를수행하고, 통합하며자동화하는 프레임워크 주요기능 테스트통합및자동화 카테고리 Testing 세부카테고리테스트설계및실행 커버리지 Test Integration / Aut

1. 도구개요 STAF Testing 소개 각테스트대상분산환경에데몬을사용하여테스트대상프로그램을통해테스트를수행하고, 통합하며자동화하는 프레임워크 주요기능 테스트통합및자동화 카테고리 Testing 세부카테고리테스트설계및실행 커버리지 Test Integration / Aut 1. 도구개요 소개 각테스트대상분산환경에데몬을사용하여테스트대상프로그램을통해테스트를수행하고, 통합하며자동화하는 프레임워크 주요기능 테스트통합및자동화 카테고리 세부카테고리테스트설계및실행 커버리지 Test Integration / Automation 도구난이도상 라이선스형태 / 비용 Eclipse Public License / 무료사전설치도구 JDK 운영체제 Windows,

More information

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형 바에 제네릭스(generics)를 도입하기 위한 연구는 이미 8년 전인 1996년부터라고 한다. 실제로 자바에 제네릭스를 도입하 는 몇 가지 방안들이 논문으로 나오기 시작한 것이 1998년 초임을 감 안하면 무려 8년이 지난 후에야 자바 5.0에 전격 채택되었다는 것은 이것이 얼마나 어려운 일이었나 하는 것을 보여준다. 자바의 스펙을 결정하는 표준화 절차인

More information

Microsoft PowerPoint - 2강

Microsoft PowerPoint - 2강 컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

유니티 변수-함수.key

유니티 변수-함수.key C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)

More information

Microsoft PowerPoint - 3조-최종발표.pptx

Microsoft PowerPoint - 3조-최종발표.pptx Final Presentation Team 3 members : 200714170 모진종 200714173 심상문 200714179 황규원 1 Quick Check 항목 SDT Condition,Action 의 FOD, FSM, TTS 에서 FSM, TTS에서 Initial State Undefined Variable Transition 이없는노드 로부터 Unreachable

More information

Java XPath API (한글)

Java XPath API (한글) XML : Elliotte Rusty Harold, Adjunct Professor, Polytechnic University 2006 9 04 2006 10 17 문서옵션 제안및의견 XPath Document Object Model (DOM). XML XPath. Java 5 XPath XML - javax.xml.xpath.,? "?"? ".... 4.

More information

mytalk

mytalk 한국정보보호학회소프트웨어보안연구회 총괄책임자 취약점분석팀 안준선 ( 항공대 ) 도경구 ( 한양대 ) 도구개발팀도경구 ( 한양대 ) 시큐어코딩팀 오세만 ( 동국대 ) 전체적인 그림 IL Rules Flowgraph Generator Flowgraph Analyzer 흐름그래프 생성기 흐름그래프 분석기 O parser 중간언어 O 파서 RDL

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

No Slide Title

No Slide Title 예외처리 이충기 명지대학교컴퓨터공학과 예외필요성 오류처리지금까지 : 오류처리를거의하지않았다. 일이의도한대로잘될것이라고가정했다. 주먹구구식방법 : 프로그래머는컴파일오류를찾아서수정하기위해서시험하고오류수정을해야한다. 컴파일러는실행오류의문제를해결하지못한다 ( 예 : 부정확한값이나상태 ). 프로그래머는실행오류가있더라도프로그램이우아하게돌아가야한다는것을보장해야한다. 우아하게

More information

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라. 기술문서 14. 11. 10. 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 dokymania@naver.com I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라. Exploit 5 마. 피해 6 III. 결론 6 가. 권고사항 6 I. 소개 가. 역자 본문서는

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

Microsoft PowerPoint - RMI.ppt

Microsoft PowerPoint - RMI.ppt ( 분산통신실습 ) RMI RMI 익히기 1. 분산환경에서동작하는 message-passing을이용한 boundedbuffer 해법프로그램을실행해보세요. 소스코드 : ftp://211.119.245.153 -> os -> OSJavaSources -> ch15 -> rmi http://marvel el.incheon.ac.kr의 Information Unix

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 1,..... @ 1 Green Project 1991 Oak Java 1995. 5 December '90 by Patrick Naughton, Mike Sheridan and James Gosling Embedded in various consumer electronic device 1992. 9. 3 Star 7 1993 www portability

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

문서의 제목 나눔고딕B, 54pt

문서의 제목 나눔고딕B, 54pt Software Verification Introduction to Software Testing & Static Analysis 2조이상혁왕홍강김태영 2016-03-18 1.1 Overview 2 / 87 Overview 1.1 Overview 3 / 87 Overview 1.2 Install JDK 4 / 87 Install JDK JDK 8 다운로드페이지

More information

신림프로그래머_클린코드.key

신림프로그래머_클린코드.key CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

12-file.key

12-file.key 11 (String).. java.lang.stringbuffer. s String s = "abcd"; s = s + "e"; a b c d e a b c d e ,., "910359,, " "910359" " " " " (token) (token),, (delimiter). java.util.stringtokenizer String s = "910359,,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 예외처리 배효철 th1g@nate.com 1 목차 예외와예외클래스 실행예외 예외처리코드 예외종류에따른처리코드 자동리소스닫기 예외처리떠넘기기 사용자정의예외와예외발생 예외와예외클래스 구문오류 예외와예외클래스 구문오류가없는데실행시오류가발생하는경우 예외와예외클래스 import java.util.scanner; public class ExceptionExample1

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 # 왜생겼나요..? : 절차지향언어가가진단점을보완하고다음의목적을달성하기위해..! 1. 소프트웨어생산성향상 객체지향소프트웨어를새로만드는경우이미만든개체지향소프트웨어를상속받거나객체를 가져다재사용할수있어부분수정을통해소프트웨어를다시만드는부담줄임. 2. 실세계에대한쉬운모델링 실세계의일은절차나과정보다는일과관련된많은물체들의상호작용으로묘사. 캡슐화 메소드와데이터를클래스내에선언하고구현

More information

Microsoft PowerPoint - jfeature장범석서재원박동현.pptm

Microsoft PowerPoint - jfeature장범석서재원박동현.pptm 소프트웨어검증 J F JFeature REQUIREMENT COVERAGE TOOL 장범석서재원박동현 순서 1. JFeature 소개 2. JFeature 사용 3. JFeature VS OSRMT 4. 프로젝트적용방안 1. JFeature 소개 1. JFeature 소개 JFeature Feature/requirement coverage tool 개발하는코드에해당하는요구사항에초점

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사) Java Program Performance Tuning ( ) n (Primes0) static List primes(int n) { List primes = new ArrayList(n); outer: for (int candidate = 2; n > 0; candidate++) { Iterator iter = primes.iterator(); while

More information

슬라이드 1

슬라이드 1 UNIT 6 배열 로봇 SW 교육원 3 기 학습목표 2 배열을사용핛수있다. 배열 3 배열 (Array) 이란? 같은타입 ( 자료형 ) 의여러변수를하나의묶음으로다루는것을배열이라고함 같은타입의많은양의데이터를다룰때효과적임 // 학생 30 명의점수를저장하기위해.. int student_score1; int student_score2; int student_score3;...

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

No Slide Title

No Slide Title 상속 이충기 명지대학교컴퓨터공학과 상속 Q: 건설회사는기존아파트와조금다르거나추가적인특징들을가진새아파트를지을때어떻게하는가? A: 2 상속 상속 (inheritance) 은클래스들을연관시키는자연스럽고계층적인방법이다. 상속은객체지향프로그래밍의가장중요한개념중의하나이다. 상속은 은 이다 라는관계 (is-a relationship) 를나타낸다. 이관계를적용하여클래스들을상하관계로연결하는것이상속이다.

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

歯JavaExceptionHandling.PDF

歯JavaExceptionHandling.PDF (2001 3 ) from Yongwoo s Park Java Exception Handling Programming from Yongwoo s Park 1 Java Exception Handling Programming from Yongwoo s Park 2 1 4 11 4 4 try/catch 5 try/catch/finally 9 11 12 13 13

More information

Semantic Consistency in Information Exchange

Semantic Consistency in Information Exchange 제 6 장제어 (Control) 6.1 구조적프로그래밍 (Structured Programming) 6.2 예외 (Exceptions) Reading Chap. 7 숙대창병모 1 6.1 구조적프로그래밍 숙대창병모 2 Fortran 제어구조 10 IF (X.GT. 0.000001) GO TO 20 11 X = -X IF (X.LT. 0.000001) GO TO

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

vRealize Automation용 VMware Remote Console - VMware

vRealize Automation용 VMware Remote Console - VMware vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도 1. 도구개요 소개 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도하는방향으로 정확히작동하는지검증할수있도록하는 Unit test Library Framework. 주요기능 C++ 프로그램의 unit testing

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

Microsoft PowerPoint - lec2.ppt

Microsoft PowerPoint - lec2.ppt 2008 학년도 1 학기 상지대학교컴퓨터정보공학부 고광만 강의내용 어휘구조 토큰 주석 자료형기본자료형 참조형배열, 열거형 2 어휘 (lexicon) 어휘구조와자료형 프로그램을구성하는최소기본단위토큰 (token) 이라부름문법적으로의미있는최소의단위컴파일과정의어휘분석단계에서처리 자료형 자료객체가갖는형 구조, 개념, 값, 연산자를정의 3 토큰 (token) 정의문법적으로의미있는최소의단위예,

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information