웹개발의 봄, Spring - 1주차

귀찮Lee·2022년 3월 29일
0

2022년 3월 29일 (화)
[스파르타코딩클럽] 웹개발의 봄, Spring 1주차 과정

◎ 필수 프로그램 설치 (Wimdow 기준)

◎ 환경변수 설정 (Wimdow 기준)

  • Window기준 좌측 하단 검색 > 시스템 환경변수 편집 검색
  • 시스템 속성 > 고급 > 환경 변수 > 새로 만들기 or 편집(변수 있으면)
    • 변수 : JAVA_HOME / 값 : C:\Program Files\Zulu\zulu-8
    • 변수 : Path / 값 : ;C:\Program Files\Zulu\zulu-8\bin
  • 이후 cmd 에서 아래 코드입력
    java -version
  • 버전이 정상적으로 나올경우, 제대로 설치 완료!

◎ IntelliJ New Project 만들기

  • 왼쪽 메뉴에서 "Spring Initializr"를 클릭하고 "Next"를 클릭
  • Project Setting
    • Group: com.sparta
    • Artifact: week01
    • Type: Gradle
    • Language: Java
    • Java Version: 8
  • Dependencies
    • Lombok
    • Spring Web
    • Spring Data JPA
    • H2 Database
    • MySQL Driver
  • IntelliJ 기본세팅
    • Setting > "auto import" 검색
      • Insert imports on paste: Always
      • Add unambiguous imports on the fly: 체크
    • Shift 두 번 입력 > Actions 탭에서 plugins > 검색창에 "monokai" 입력하고 Monokai Pro Install (편하게 보기)
      • Setting > "Appearance" 검색 > Theme : Monokai Pro (Filter Machine) 선택
    • Shift 두 번 입력 > Actions 탭에서 plugins > 검색창에 "Key Promoter X" 입력하고 Key Promoter X Install (단축키를 알려줌)

◎ Java 기초문법

  • 변수 생성, 출력
import java.util.ArrayList;
import java.util.List;

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

        // print할 때, IntelliJ에서는 sout 이용
        // 문자열 입력시, 쌍따옴표만 가능
        String myName = "Lee";
        System.out.println(myName); // Lee

        // 각 자료 앞에는 속성을 붙여줘야 함
        int a =7;
        int b =3;
        // float을 이용할때는 뒤에 f를 붙임
        float c = 3.7f;
        System.out.println(a+b+c); // 13.7

        //2^31-1(약21억)보다 큰수를 담으려면 Long을 이용 / 물론 숫자의 한꼐가 있음
        Long d = 10000000000000000L;
        System.out.println(d); // 10000000000000000


        // 문자열 + 연산가능
        String myName1 = "gwichan";
        String myName2 = "Lee";
        System.out.println(myName1 + myName2); // gwichanLee

        // boolean 참,거짓 값을 가짐
        int myAge = 20;
        boolean isAdult = myAge > 20;
        boolean isNotAdult = myAge <= 20;
        boolean isTwenty = myAge == 20;
        boolean isNotTwenty = myAge != 20;
        System.out.println(isAdult); // false
        System.out.println(isNotAdult); // true
        System.out.println(isTwenty); // true
        System.out.println(isNotTwenty); // false

        // List : 순서가 중요한 녀석
        // 같은 자료형만 넣을 수 있음
        // 넣을 떄 add, 조회할 때 get, 제거할 떄 remove
        List<String> courseList = new ArrayList<>();
        String course1 = "웹개발 종합반";
        String course2 = "앱개발 종합반";
        courseList.add(course1);
        courseList.add(course2);
        System.out.println(courseList); // [웹개발 종합반, 앱개발 종합반]
        System.out.println(courseList.get(1)); // 앱개발 종합반

        courseList.remove(1);
        System.out.println(courseList); // [웹개발 종합반]
    }
}
  • 메소드 (Method)
public (반환타입) 메소드명(파라미터) {
	// 명령 내용
	return (반환값)
}
public class Prac2 {
    public static void printInfo() {
        String title = "웹개발의 봄 Spring";
        String tutor = "남병관";
        int weeks = 5;
        float ratings = 5.0f;

        System.out.println("제목: " + title);
        System.out.println("튜터: " + tutor);
        System.out.println("주차: " + weeks);
        System.out.println("별점: " + ratings);
    }
    // public : Method 앞에 다 써주는 거다.
    // static : 메인 Method 에서 실행하려면, 반드시 static이 있어야 한다.
    // 파라미터 X, 반환값 X
    public static void simplePrint() {
        System.out.println("파라미터도 없고, 반환값도 없어요!");
    }

    // 파라미터 O, 반환값 X
    public static void simpleSum(int num1, int num2) {
        System.out.println("num1 :" + num1 + ", num2: " + num2);
    }

    // 파라미터 X, 반환값 O
    public static int simpleReturn() {
        return 3;
    }

    // 파라미터 O, 반환값 O
    public static int sum(int num1, int num2) {
        return num1 + num2;
    }

    public static void main(String[] args) {
        printInfo();
        // 제목: 웹개발의 봄 Spring
		// 튜터: 남병관
		// 주차: 5
		// 별점: 5.0
        simplePrint();
        // 파라미터도 없고, 반환값도 없어요!
        simpleSum(1,2); // 순서만 맞추어 넣어주면 알라어 인식
        // num1 :1, num2: 2
        int three = simpleReturn();
        System.out.println(three);
        // 3
        int result = sum(7,8);
        System.out.println(result);
        // 15
    }
}
    // Method 정리
    // class 안에서만 작성해야 한다.
    // 메소드명은 변수명 규칙과 같다. / 영어사용, 소문자시작, 공백없음, 대문자구분
  • 조건문, 반복문
import java.util.ArrayList;
import java.util.List;

public class Prac3 {

    public static void main(String[] args){
        List<String> celebs = new ArrayList<>();
        celebs.add("아이유");
        celebs.add("린다G");
        celebs.add("은비");
        celebs.add("금비");
        celebs.add("비");
        celebs.add("차은우");
        celebs.add("남주혁");
        celebs.add("수지");
        celebs.add("정우성");
        celebs.add("제니");
        celebs.add("정국");

        for (int i=0; i<celebs.size(); i++) {
            System.out.println(celebs.get(i));
        }
        // 순서대로 하나씩 출력됨
        
        int age = 91;
        if (age >= 90) {
            System.out.println("노인입니다.");
        } else if(age < 20) {
            System.out.println("미성년자입니다.");
        } else {
            System.out.println("성인입니다.");
        }
        // 노인입니다.
    }
}
  • 클래스(Class), Gatter, Setter
public class Course {
    // title, tutor, days 가 Course 라는 맥락 아래에서 의도가 분명히 드러나죠!
    private String title;
    private String tutor;
    private int days;

    // 기본 생성자
    public Course(){

    }

    // 생성자
    public Course(String title, String tutor, int days) {
        this.title = title;
        this.tutor = tutor;
        this.days = days;
    }

    // Setter
    public void setTitle(String title){
        this.title = title;
    }
    public void setTutor(String tutor){
        this.tutor = tutor;
    }
    public void setDays(int days){
        this.days = days;
    }

    //Getter
    public String getTitle() {
        return this.title;
    }
    public String getTutor() {
        return  this.tutor;
    }
    public int getDays() {
        return this.days;
    }
}
public class Prac4 {
    public static void main(String[] args) {

        String title = "웹개발의 봄, Spring";
        String tutor = "남병관";
        int days = 35;
        // 현 상태는 모든 값을 null 이 됨 , 생성자를 이용하면 값을 넣으면서 생성할 수 있음
        Course course = new Course();

        // course.title = "타이틀" 
        // private 이라서 마음대로 바꿀 수 없다.
        course.setTitle(title); // setter 이용
        course.setTutor(tutor);
        course.setDays(days);
        
        // System.out.println(course.title);
        // private 이라서 마음대로 읽을 수 없다.
        String a = course.getTutor(); // getter 이용
        System.out.println(a);
        // 웹개발의 봄, Spring
    }
}

◎ 브라우저에 바로 나타내보기

  • 데이터로 응답하기 위해서는 ResetController 필요

  • Reset

    • 서버의 응답이 JSON 형식임을 나타냅니다.
    • HTML, CSS 등을 주고받을 때는 Rest 를 붙이지 않습니다.
  • Controller

    • 클라이언트의 요청(Request)을 전달받는 코드
      → JSON 만을 돌려주는 것은 RestController 라고 부릅니다.
@RestController
public class CourseController {

    @GetMapping("/courses")
    public Course getCourses() {
        Course course = new Course();
        course.setTitle("웹개발의 봄 스프링");
        course.setDays(35);
        course.setTutor("남병관");
        return course;
    }
}
  • Application 실행 후, localhost:8080/courses 접속 시, 나오는 json

◎ 그레이들(Gradle)

  • 다른 사람들이 만들어둔 도구(라이브러리)를 내려받는데 이용
  • 추가하는 법
    • Maven Repository 에서 원하는 라이브러리 를 찾는다.
    • 원하는 프로젝트 파일을 build.gradle에 dependencies 안에 넣는다. // Gradle 형식으로 가져감
    • dependencies 옆 Run 버튼을 누른다.
    • 우측 Gradle 탭의 새로고침 버튼을 누른다.
    • 대상 프로젝트가 추가된 것을 확인한다.
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글