프로그래밍

[프로그래밍] TDD. 프로그래밍에서 필요한 작업. 공부해보세요~. 재미있네요. 1.

tt2t2am1118 2023. 2. 6. 01:00
반응형

스마트기기. 안전하게 사용합시다. 좋은 습관을 만들어요.

 

TDD. Test Driven Development의 약자이죠. 객체지향언어. JAVA, C#의 경우가 그렇다고 할 수 있겠죠. 그리고, 실제 공부해보면, C#과 JAVA가 거의 같다는 것을 알 수 있습니다. 도서관에서 C#책을 잠깐 봤었군요.

 

스프링부트 JPA를 잘 살펴보면, 객체지향에서 클래스. Class. 이 클래스 만으로도, Entity. SQL의 테이블을 만들 수 있기 때문에, 실제 TDD를 JAVA로 구현하는 것 만으로도, 프로그래밍의 신뢰성이랄까... 한마디로 처음부터 끝까지. 실제 서비스제공할 때에, 데이터의 흐름, 결제API연결등. 예를 들면, 홈쇼핑의 수량. 가격, 어떤 상품의 옵션. 이런 것을 신경쓰지 않아도 된다. 이렇게 설명할 수 있겠죠.

 

 실제 일을 했을 때에, TDD의 완성없이 개발을 한 적이 있었어요. 수량, 가격이 맞지 않아 디버그만 계속 했던 기억이 있네요. TDD가 제대로 되었더라면, 그런 시간이 허비되지 않았을 텐데 말이죠. 인텔리제이라던지, IDE프로그램에서, 서버를 켰다, 껐다.... 찾고, 되나 안되나... 확인하고... 이런 일. 그렇겠죠. 

 

참조해보세요~. 만들었었군요. 프로그래밍, 공부해보세요~. 재미있네요. 고기01이라는 표현은 실제로, 우리가 먹는 음식. 그런 표현으로 적었던 변수이름이였군요. 코딩하는 중에, 무심코 뒤에 1,2,3,... 변수명에요. 그렇게 짓는 습관이랄까... 그렇게 생각하면서 만든 것이군요.

https://blog.naver.com/tt2t2am1118/222967998751

 

[프로그래밍] 직렬화를 이용한 홈쇼핑 수량 맞추기. 가격검증하기 1., 2023-01-30 글 추가.

스마트기기. 안전하게 사용합시다. 좋은 습관을 만들어요. 2023-01-30 글 추가. #일상생각 고기01이라는 표...

blog.naver.com

 

 

또, TDD를 만들어봅시다. 공부해보세요.

 

 최근, 만들고 있는 부분이군요.

https://github.com/infott2t/TestDrivenDevelopment-example-os-cmd-smartfactory-Infott2t

 

GitHub - infott2t/TestDrivenDevelopment-example-os-cmd-smartfactory-Infott2t: TestDrivenDevelopment-example-os-cmd-smartfactory-

TestDrivenDevelopment-example-os-cmd-smartfactory-Infott2t - GitHub - infott2t/TestDrivenDevelopment-example-os-cmd-smartfactory-Infott2t: TestDrivenDevelopment-example-os-cmd-smartfactory-Infott2t

github.com

패키지. 제 Github이름으로 했군요. 또, 이어서 만들분은, 그렇게 만드시면 될검니다. 

package org.example.infott2t;

public class SmartFactoryEx01 {
    
    public static void main(String[] args) {
        
    }
}

위의 형태. 전체를 만든 것이겠죠.

 

폭포수 개발. 위에서 아래로... public static void main 안의 내용들은 인스턴스. 클래스가 new 연산자를 통해 인스턴스 되는 것인데요. main메서드에서 위에서 아래로 쭉 적어지는 것으로 생각하면 될 검니다. static으로 되는 것이죠. 위에서 아래로.

 

 그래서, 실제 동작들은, 시간의 순서대로 적혀질 뿐. 이렇게 생각하면 되는 것이죠. 그러면, 사용자가 하는 일은... 로그인, 서비스 활용, 로그아웃. 이렇게 설명할 수도 있고, 데이터를 어떻게 사용하는가... 이 점을 생각하면 되겠죠.

 

 예를 들면, 일을 예약한다. 스마트팩토리의 경우. 호텔을 예약한다. 이런 부분과 비슷하다고 생각해봄니다. 물론, 일의 하는 방법등 많은 부분이 있을 수 있겠죠. 오늘의 인기있는 일, 회사에서 제공하는 특별 서비스. 기간이 있는 경우도 있을 테구요.

 

 예약 서비스를 TDD로 만들어 본다면, 예약하는 장소, 시간, 사용자의 아이디. 일의 아이디. 그렇겠죠. 예약하는 장소는 회사이름을 사용해봅시다.

package org.example.infott2t;

public class SmartFactoryEx01 {

    User user;
    Coperation coop;

    public static void main(String[] args) {

        User user1 = new User();
        Coperation coop1 = new Coperation();
        
    }
}

사용자와 회사를 만들었어요. 각 클래스에는 Long id, String name을 넣어주고요.

package org.example.infott2t;

public class Coperation {
    Long id;
    String name;

}

 예약을 하는 서비스.  WorkPlan이라는 클래스를 만들어서, 사용자와 일 서비스를 제공하는 회사를 연결해주는 것이죠.

package org.example.infott2t;

import java.time.LocalDateTime;

public class WorkPlan {

    User user;
    Coperation coop;

    Long id;
    String name;            // 일의 이름
    LocalDateTime startWork; // 일 시작 시간
    LocalDateTime endWork;   // 일이 끝난 시간

    WorkInfo workInfo;  //일의 정보.

}

 WorkInfo라는 클래스가 또 만들어졌네요. 일의 내용들. 웹페이지에 표시되는 내용. 제가 만든 부분에서...

위와 같은 글자들이 적히는 부분이라고 하면 될검니다.

참조해보세요. 

https://github.com/infott2t/smartfactory-app-design

 

GitHub - infott2t/smartfactory-app-design: Let's developing~. Smart Factory. More convinience work~. How about this. Thank you.

Let's developing~. Smart Factory. More convinience work~. How about this. Thank you. - GitHub - infott2t/smartfactory-app-design: Let's developing~. Smart Factory. More convinience work~. H...

github.com

 

package org.example.infott2t;

public class WorkInfo {

    Long id;
    String name;

    //일의 정보....데이터..
    String str1; // 김치를 만드는 일입니다.
    String str2; // 안전하게 일합시다.

}

WorkPlan 클래스. 위와 같은 형태... 웹페이지별로 나오는 것이 좋겠죠~.

 

그러면, TDD는...

package org.example.infott2t;

public class SmartFactoryEx01 {

    User user;
    Coperation coop;
    WorkPlan workPlan;

    public static void main(String[] args) {

         
        User user = new User(1L, "InfoTt2t");
        Coperation coop = new Coperation(1L, "ABC_Coop");

        WorkPlan workPlan1 = new WorkPlan();


    }
}

위처럼 될검니다. 사용자의 이름, 서비스 제공자의 이름. 회사이름이 들어가겠죠. 위처럼 만들면, 빨간글씨가 나올텐데요. 인텔리제이에서 만들고 있군요. new 연산자를 사용하려면, 클래스에 생성자가 필요한 것이죠. 

 

public class User {
    Long id;
    String name;

    User(Long id, String name){
        this.id= id;
        this.name = name;
    }
}

User의 생성자. 만들어준다면, new연산자를 사용할 수 있습니다. 물론, 생성자를 적지 않으면, 자바에서는 User(). 이렇게 만들어 주죠. 자바자격증 공부해보세요~. 관련해서는 ... 이 글을 참조해보세요~.

https://blog.naver.com/tt2t2am1118/222767489760

 

[프로그래밍] JAVA. 공부해보세요. 자바 자격증 소개, 책소개. 적어보네요. 자바 프로그래밍. 1.

스마트기기. 안전하게 사용합시다. 좋은 습관을 만들어요. main(). 이 함수에서 실행이 시작된다. 이렇게 ...

blog.naver.com

 

이어서 또 만들어볼게요. 공부해보세요~.

 

또, 교회. 다녀보세요. 기독교. 전화도 해보세요. 사회에서 쉴 곳. 하고 싶은 말이네요.

 

좋은 하루되세요.

 

--

저의 글, 봐 주셔서 감사합니다.

 

반응형