Spring(기초)-1주차

Jonguk Kim·2021년 11월 15일
0

Spring

목록 보기
1/16

1. 스프링 작동시키기

초기 설정

  • Group: com.주소명
  • Artifact: 프로젝트명
  • Language: Java
  • Type: Gradle
  • Java Version: 8

추가 설정

  • Lombok
  • Spring Web
  • Spring Data JPA
  • H2 Database
  • MySQL Driver

기타 설정

  • Auto import
    • 환경설정 (command + ,)
    • auto import
    • Insert imports on paste: Always
    • Add unambiguous imports on the fly: 체크
  • Theme
    • shift 두번 누르면 검색 창
    • Actions에서 plugins를 검색
    • monokai 검색 및 설치
  • Shortcuts
    • shift 두번 누르면 검색 창
    • Actions에서 plugins를 검색
    • Key Promoter X 검색 및 설치

2. 웹의 기본 개념

  • API: 은행 창구와 같은, 하나의 약속 (정해진 대로 요구시, 정해진 결과물 돌려줌)
  • HTML: 뼈대
  • CSS: 꾸미기
  • JavaScript: 동작
  • Spring: 서버 담당 (자바 언어 바탕)

3. 자바 기초 문법

화면 인쇄

  • System.out.println();

변수

  • 값을 담는 상자
  • (자료의 종류) (변수명) = (값)
  • 영어, 소문자 시작, 구분은 대문자
  • 제일 마지막에 세미콜론(;)

숫자 / 문자 / 참거짓

  • int, float, Long
  • String
  • boolean

배열-List

  • 순서 중요
  • 같은 자료형만 넣을 수 있음
  • 넣을 때는 add, 조회할 때는 get, 제거할 때는 remove를 사용

임포트

  • List 처럼, 미리 작성된 코드를 불러오는 것 (다른 패키지일 때, 가져오는 것)

메소드

  • 반복적인 행동을 줄여서 어디든 갖다쓸 수 있는 명령 모음
  • 메인 함수에서 같은 클래스 내의 메소드를 호출 할때, 메소드 선언시 static을 붙이지 않으면 객체를 생성한 뒤 호출해야함
public static int sub(int num1, int num2) {
	return num1 - num2;
}

public static void main(String[] args) {
	int result = sub(1, 2);
	System.out.println(result);
}

반복문 / 조건문

/*
for (시작조건; 계속하는조건; 더하기) {
	명령
}
*/
int count = 0;
for (int i=0; i<fruits.size(); i++) {
	String fruit = fruits.get(i);
	if (fruit == "감") {
		count += 1;
	}
}
System.out.println(count);

4. 자바 클래스

  • 클래스는 정보를 묶는 것
  • 객체지향 프로그래밍: 프로그래밍을 현실 세계에 빗대어 체계적으로 나타낸 것
  • 클래스는 빵틀, 객체(인스턴스)는 빵
  • 생성자: 클래스명과 똑같은 이름을 가진 메소드
  • 기본생성자: 자바에서 별도 생성자 안만들면 자동으로 만들어줌
  • this: 빵틀이 아니라 실제 빵(객체)의 값
public class Course {
    public String title;
    public String tutor;
    public int days;

    // 이렇게 아무런 파라미터가 없는 생성자를 기본생성자 라고 부릅니다.
    public Course() {

    }

    public Course(String title, String tutor, int days) {
        // this 는 "이것" 이죠? 클래스 변수를 가리킵니다.
        this.title = title;
        this.tutor = tutor;
        this.days = days;
    }
}

5. Getter / Setter

  • Getter: 정보를 가져오는 메소드
    • Setter에 대한 조회 접근을 허용
    • get필드명
  • Setter: 정보를 바꾸는 메소드
    • private으로 선언한 변수에 값을 초기화 하도록 도와주는 메소드
    • set필드명
  • Getter / Setter 만들기
// Getter
public String getTitle() {
    return this.title;
}
// Getter
public String getTutor() {
    return this.tutor;
}
// Getter
public int getDays() {
    return this.days;
}

// Setter
public void setTitle(String title) {
    this.title = title;
}
// Setter
public void setTutor(String tutor) {
    this.tutor = tutor;
}
// Setter
public void setDays(int days) {
    this.days = days;
}
  • Getter / Setter 사용하기
Course course = new Course();

System.out.println(course.getTitle());
System.out.println(course.getTutor());
System.out.println(course.getDays());

course.setTitle("웹개발의 봄 스프링");
course.setTutor("남병관");
course.setDays(35);

System.out.println(course.getTitle());
System.out.println(course.getTutor());
System.out.println(course.getDays());

6. 브라우저에 바로 나타내기

  • JSON: 데이터를 서버에서 전달받는 형식
  • 데이터로 응답하려면, RestController를 사용 (JSON 만을 돌려주는 것)
  • Rest
    • 서버의 응답이 JSON 형식임을 나타냄
    • HTML, CSS 등을 주고받을 때는 Rest 를 붙이지 않음
  • Controller
    • 자동 응답기
    • 클라이언트의 요청(Request)을 전달받는 코드
  • RestController 만들기
    • src > main > com.주소명.프로젝트명 에 controller 패키지 생성
    • CourseController.java 파일 생성
@RestController
public class CourseController {
    // (http://localhost:8080) 뒤의 주소가 /courses 일 경우, getCourse 메소드를 실행
    @GetMapping("/courses")
    public Course getCourses() {
        Course course = new Course();
        course.setTitle("웹개발의 봄 스프링");
        course.setDays(35);
        course.setTutor("남병관");
        return course;
    }
}

7. Gradle

  1. Maven Repository 에서 원하는 라이브러리 를 찾는다.
    https://mvnrepository.com/artifact/org.json/json/20160810
  2. build.gradle 에 원하는 프로젝트 파일을 넣음 (dependencies {} 안)
  3. dependencies 옆 Run 버튼을 누름
  4. 우측 Gradle 탭의 새로고침 버튼을 누름
  5. 대상 프로젝트가 추가된 것을 확인
    => Gradle: json 배포할 때, 라이브러리를 가져와서 씀
profile
개발일지

0개의 댓글