본문 바로가기

한화시스템 BEYOND SW캠프/TIL

[4주차] 24.01.30 화요일

Java Programming

 

package com.encore.post.domain;

public class PostRequestDTO {
    private String id;
    private String title;
    private String content;
    private int cnt;
    private boolean isFlag;

    public PostRequestDTO() {
    }

    public PostRequestDTO(String id) {
        this.id = id;
    }

    public PostRequestDTO(String id, String title, String content, int cnt, boolean isFlag) {
        this.id = id;
        this.title = title;
        this.content = content;
        this.cnt = cnt;
        this.isFlag = isFlag;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public int getCnt() {
        return cnt;
    }

    public void setCnt(int cnt) {
        this.cnt = cnt;
    }

    public boolean isFlag() {
        return isFlag;
    }

    public void setFlag(boolean flag) {
        isFlag = flag;
    }
}

 

package com.encore.post.service;

// xxxxService, xxxxServiceImpl - 보편적으로 비지니스 로직을 처리하는 역할을 담당하는 클래스
// 사용자가 블로그에 글을 작성(savePost), 수정, 삭제, 검색, 읽기
// 아이디, 제목, 내용, 등록일, 조회수, 공개/비공개

import com.encore.post.domain.PostRequestDTO;

public class PostService {
    public static String savePost(String id, String title, String content, int cnt, boolean isFlag) {
        System.out.println("debug >>>> working method completed....");
        return "글 작성이 정상적으로 완료되었습니다.";
    }

    public static String savePost(PostRequestDTO params) {
        System.out.println("debug >>>> working method completed....");
        return "글 작성이 정상적으로 완료되었습니다.";
    }

    public static String deletePost(PostRequestDTO params) {
        System.out.println("debug >>>> working method completed....");
        return "글 삭제가 정상적으로 완료되었습니다.";
    }
}

 

package com.encore.post.view;

import com.encore.post.domain.PostRequestDTO;
import com.encore.post.service.PostService;

import java.util.Scanner;

public class PostView {
    // 참조타입의 멤버변수
    private PostService service;
    private PostRequestDTO params;

    // 생성자 오버로딩
    public PostView() {
    }

    public PostView(PostService service, PostRequestDTO params) {
        this.service = service;
        this.params = params;
    }

    public void menu() {
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println(">>>> Hanwha software camp Beyond 5th <<<<");
            System.out.println("1. login");
            System.out.println("2. join");
            System.out.println("3. post write");
            System.out.println("4. post delete");
            System.out.println("99. exit");
            System.out.print("input number : ");
            int number = sc.nextInt();

            if (number == 99) {
                System.exit(0);
            }
            if (number == 3) {
                requestSave();
            }
            if (number == 4) {
                requestDelete();
            }
        }
    }

    public void requestSave() {
        System.out.println("debug >>>> client post view");
        Scanner sc = new Scanner(System.in);
        System.out.print("아이디 : ");
        String id = sc.nextLine();
        System.out.print("제목 : ");
        String title = sc.nextLine();
        System.out.print("내용 : ");
        String content = sc.nextLine();
        System.out.print("조회수 : ");
        int cnt = sc.nextInt();
        System.out.print("공개여부 : ");
        boolean isFlag = sc.nextBoolean();

        // PostService service = new PostService();

        // PostRequestDTO request = new PostRequestDTO(id, title, content, cnt, isFlag);
        params.setId(id); params.setTitle(title); params.setContent(content); params.setCnt(cnt); params.setFlag(isFlag);
        String msg = service.savePost(params);
        System.out.println("Result >>>> " + msg);
    }

    // request delete
    // terminal로부터 사용자의 아이디만 입력받아서 해당 아이디를 dto에 담고
    // PostService 클래스에 정의된 postDelete(PostRequestDTO params) 메서드를 호출하여 '작성하신 글이 삭제되었습니다.' 메시지 반환받아서 출력
    public void requestDelete() {
        System.out.println("debug >>>> client post view");
        Scanner sc = new Scanner(System.in);
        System.out.print("아이디 : ");
        String id = sc.nextLine();

        // PostRequestDTO request = new PostRequestDTO(id);
        // PostService service = new PostService();
        params.setId(id);
        String msg = service.deletePost(params);
        System.out.println("Result >>>> " + msg);
    }
}

 

import com.encore.post.domain.PostRequestDTO;
import com.encore.post.service.PostService;
import com.encore.post.view.PostView;

public class PostMain {

    public static void main(String[] args) {

        // PostService service  = new PostService() ;

        // System.out.println("debug >>>> main caller -> service savePost working method ");

        // case01.
        // String msg = service.savePost("jslim", "공지사항", "내일은 휴강입니다.", 0, true) ;
        // System.out.println("Result >>>> "+msg);


        // case02.
        // PostRequestDTO request  = new PostRequestDTO("jslim", "공지사항", "내일은 휴강입니다.", 0, true) ;
        // String msg = service.savePost(request);
        // System.out.println("Result >>>> "+msg);


        // case03.
        // view를 이용한 사용자 입력과 연결.....

        // PostView view = new PostView() ;
        // view.menu();

        // case04.
        // 불필요하게 발생되는 객체생성을 효율적으로 관리하기 위해서 얕은복사 개념을 사용할 수 있다.

        PostService 	service	= new PostService();
        PostRequestDTO 	params  = new PostRequestDTO() ;

        PostView view = new PostView(service, params);
        view.menu();
    }
}

 

package com.encore.operator;

import java.util.Scanner;

public class OperatorDemo {
    public OperatorDemo() {
    }

    // example01 반환값X, 매개변수X
    public void example01() {
        System.out.println(">>>> 산술연산");
        int x = 100, y = 100, result = 0;
        System.out.println(" + " + (x + y));
        System.out.println(" - " + (x - y));
        System.out.println(" * " + (x * y));
        System.out.println(" / " + (x / y));
        System.out.println(" % " + (x % y));
    }

    public String example02(String color01, String color02) {
        System.out.println(">>>> 연결연산");
        return "신호등의 색깔은 " + color01 + "과 " + color02 + "입니다.";
    }

    public void example03() {
        System.out.println(">>>> 논리연산");
        boolean isFlag = false;
        System.out.println("논리 부정, " + !isFlag);

        // Scanner에서 입력받은 숫자가 짝수인지 아닌지를 판단하고 싶다면?
        Scanner sc = new Scanner(System.in);
        System.out.print("숫자를 입력하세요 : ");
        int num = sc.nextInt();
        System.out.println("Result >>>> 짝수 " + (num % 2 == 0));
        System.out.println("Result >>>> 홀수 " + (num % 2 != 0));

        // Scanner에서 입력받은 숫자가 3의 배수인지 아닌지를 판단하고 싶다면?
        System.out.println("Result >>>> 3의 배수 " + (num % 3 == 0));

        // Scanner에서 입력받은 숫자가 양수인지 아닌지를 판단하고 싶다면?
        System.out.println("Result >>>> 양수 " + (num > 0));
    }

    public void example04() {
        System.out.println(">>>> 증감연산");
        int age = 25;
        System.out.println("현재 나이는 " + age);
        System.out.println(++age); // age = age + 1 후 print
        System.out.println("현재 나이는 " + age);
        System.out.println(age++); // print 후 age = age + 1
        System.out.println("현재 나이는 " + age);

        System.out.println();
        int number = 20;
        int result = ++number * 3;
        System.out.println("Result >>>> " + result);
    }

    public void example05() {
        System.out.println(">>>> 일반논리연산 ");
        /*
            &(이면서, 이고), |(이거나), (&&, ||) - short shortcut
         */
        Scanner sc = new Scanner(System.in);
        System.out.print("숫자를 입력하세요 : ");
        int num = sc.nextInt();

        // Scanner로부터 입력받은 숫자가 1~100 사이의 값인지 판단하고 싶다면?
        System.out.println("1 ~ 100 " + (num >= 1 && num <= 100));
    }

    public void example06() {
        System.out.println(">>>> 일반논리연산");

        Scanner sc = new Scanner(System.in);
        System.out.print("문자를 입력하세요: ");
        // String str = sc.next();
        char str = sc.next().charAt(0);

        // Scanner로부터 입력받은 문자가 A~Z 사이의 문자인지 판단하고 싶다면?
        // System.out.print("A ~ Z " + ((int)str.charAt(0) >= 65 && (int)str.charAt(0) <= 90));
        System.out.println("input char : " + str);
        System.out.println("A ~ Z " + (str >= 'A' && str <= 'Z'));
    }

    public void example07() {
        System.out.println(">>>> 삼항연산");
        // (조건식) ? 참일 경우 : 거짓일 경우
        // (조건식) ? 참일 경우 : (조건식) ? 참일 경우 : 거짓일 경우

        Scanner sc = new Scanner(System.in);
        System.out.print("숫자를 입력하세요: ");
        int num = sc.nextInt();

        // Scanner로부터 입력받은 숫자가 양수인지 음수인지 아니면 0인지 판단하고 싶다면?
        String result = (num > 0) ? "양수" : (num < 0) ? "음수" : "0";
        System.out.println("Result >>>> " + result);
    }
}

'한화시스템 BEYOND SW캠프 > TIL' 카테고리의 다른 글

[4주차] 24.02.01 목요일  (0) 2024.02.01
[4주차] 24.01.31 수요일  (0) 2024.01.31
[4주차] 24.01.29 월요일  (0) 2024.01.29
[3주차] 24.01.24 수요일  (0) 2024.01.24
[3주차] 24.01.23 화요일  (0) 2024.01.23