Java 기초 문법, Spring 기초 사용법

강지영·2022년 7월 22일
0

Spring

목록 보기
1/5

🔗단축키 모음

  • 코드정렬
    - Windows: Ctrl + Alt + L
    - macOS: option + command + L
  • 임포트
    - Windows: Alt + Enter
    - macOS: option + Enter
  • 주석
    - Windows: Ctrl + /
    - macOS: command + /
  • System.out.println()
    - 공통: sout 치고 tab 누르기
  • 환경설정
    - Windows: Ctrl + Alt + S
    - macOS: command + ,

💡 웹서비스

웹서비스는 크게 클라이언트서버로 구분이 된다.
클라이언트는 쉽게 생각하면 눈에 보이는 것!
브라우저에서 눈에 보이는 요소 하나하나(글자색, 굵기 등)가 만드는 것을 '클라이언트를 만든다'라고 말한다.
서버는 그 요소 안의 하나하나의 데이터를 받아서 보내주는 것!
그래서 웹서비스를 만든다는 것은 클라이언트(눈에 보이는 것)를 만들고 서버(데이터를 주는 것)를 만든다고 생각하면 된다.

💡 Java

자바는 썬마이크로시스템에서 1996년 1월에 공식적으로 발표한 프로그래밍 언어 중의 한 종류이다. 자바는 객체 지향 언어로써 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체 지향 언어라는 평가를 받고 있다. 또한 자바는 운영체제에 독립적이므로 자바로 작성된 프로그램은 운영체제의 종류와 관계없이 실행이 가능하다.

  • 객체 지향 프로그래밍(OPP, Object Oriented Programming)이란?
    프로그램을 개발하는 기법으로 부품에 해당되는 객체를 먼저 만들고, 이것들을 하나씩 조립 및 연결하여 전체 프로그램을 완성하는 것이다. 객체를 만들기 위해 설계도인 클래스를 작성하고 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다.

💡 Spring

스프링은 자바의 웹 프레임 워크로 자바언어를 기반으로 사용한다. 즉 자바로 다양한 어플리케이션을 만들기 위한 프로그래밍 툴이라고 보면 된다. Spring을 사용하면 중복코드의 사용률을 줄여주고 비지니스 로직을 더 간단하게 하는 것이 가능하다. 그리고 Spring은 다른 사람의 코드를 참조하여 사용하기 편리함으로 오픈 소스를 사용하기 좋은 구조를 가지고 있다. 즉 Spring이란 자바를 쉽게 사용할 수 있게 해주는 오픈 소스 프레임워크이다.

  • 프레임워크(Frame Work)란?
    소프트웨어 개발에 있어서 하나의 뼈대의 역할을 하는 것이다. 즉 프레임워크는 자주 쓰이는 기능을 한 곳에 모아 놓은 클래스들의 집합인 것이다.

  • IntelliJ에서 꼭 설치할 요소
    - Lombok
    - Spring Web
    - Spring Data JPA
    - H2 Database
    - MySQL Driver

📃 자바 기초 문법

  • 배열
    정보를 묶을 때 List 를 사용
  1. 순서가 중요!
  2. 같은 자료형만 넣을 수 있음!
  3. 넣을 때는 add, 조회할 때는 get, 제거할 때는 remove를 사용!
public static void main(String[] args) {
        List<String> myList = new ArrayList<>();
        String course1 = "웹개발의 봄 Spring";
        String course2 = "프론트엔드의 꽃 React";
        // 리스트에 요소넣기 리스트.add()
        myList.add(course1);
        myList.add(course2);
        System.out.println(myList);
        // 리스트 요소 가져오기 리스트.get()
        System.out.println(myList.get(1));
        // 리스트 요소 지우기 리스트.remove()
        myList.remove(1);
        System.out.println(myList);

    }

- 출력값
[웹개발의 봄 Spring, 프론트엔드의 꽃 React]
프론트엔드의 꽃 React
[웹개발의 봄 Spring]

  • 임포트
    - List 처럼, 미리 작성된 코드를 불러오는 것
    - 자바는 기본적인 임포트 파일들이 있는데, 임포트 단축키는 다음과 같다

    • 윈도우: Alt + Enter
    • 맥: Option + Enter
  • 메소드
    - 반복적인 행동을 줄여서 어디든 갖다쓸 수 있는 명령 모음
    - 메소드명은 변수명과 규칙(영어사용, 소문자시작, 공백없음, 대문자구분)이 같다
    - 메소드 사용 시 필요한 세가지 요소
    1. 재료 = 파라미터 (없을 수도 있음)
    2. 명령 = 실행코드
    3. 결과 = 반환값 (없을 수도 있음)

	public (반환타입) 메소드명(파라미터) {
		// 명령 내용
		return (반환값)
	}

파라미터, 반환값이 다양한 경우

// 파라미터 X, 반환값 X
public void simplePrint() {
	System.out.println("파라미터도 없고, 반환값도 없어요!");
}

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

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

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

📃 클래스

  • 객체를 나타내기 위한 자바의 도구(= 정보를 묶는 것)
  • 클래스 내 정보를 멤버 변수라고 함
  • 클래스명과 똑같은 이름을 가진 메소드를 생성자라고 함
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;
    }
}

📃 Getter / Setter

  • private : 함부로 바꾸면 안되는 것
    - private일 경우 오류가 발생

  • public : 밖으로 드러내도 괜찮은 것
    - public은 오류를 발생하지 않음

    그러면 이 private으로 정의한 것을 어떻게 가져올까?
    => Getter / Setter를 이용하자!

  • Getter는 쉽게 말하면 정보를 가져오는 메소드

  • Setter정보를 바꾸는 메서드

< 사용법 >
1. 클래스에 가서 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;
}

2. 메인 클래스에서 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());

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

화면에 클래스 정보 띄워보기
=> 데이터로 응답하려면 RestController를 사용!

Rest란?

  • 서버의 응답이 JSON(데이터)형식임을 나타냄
  • HTML, CSS등을 주고 받을 때는 Rest를 붙이지 않음

Controller

  • 응답하는 것(자동 응답기!)
  • 클라이언트의 요청(Request)을 전달받는 코드를 Controller라고 부름
    => JSON만을 돌려주는 것을 RestController라고 부름'

즉, RestController란 JSON형식으로 응답하는 자동응답기이다!

<RestController 만들기>

import com.sparta.week01.prac.Course;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

// RestController 만들기
// 클래스 위에 @RestController 넣어줌
@RestController
public class CourseController {

    // 브라우저에서 검색하는 것을 GET방식이라고 함
    // courses로 브라우저에 쳐서 응답이 왔을 때 이 결과를 보여줄거야!
    @GetMapping("/courses")
    public Course getCourses() {
        Course course = new Course();
        course.setTitle("웹개발의 봄 스프링");
        course.setDays(35);
        course.setTutor("남병관");
        return course;
    }
}

- local:8080/courses가서 출력해보면
이렇게 정갈하게 출력하려면 JSONView를 크롬에 설치하면 된다.
💨 JSONView 설치하러 가기

  • @GetMapping
    브라우저에서 주소를 치는 행위를 GET 방식으로 정보를 요청한다고 합니다. 스프링 주소(http://localhost:8080) 뒤의 주소가 /courses 일 경우, getCourse 메소드를 실행함을 나타냅니다.

📃그레이들(Gradle)

  • 오픈소스 빌드 자동화툴
  • 거의 모든 타입의 소프트웨어를 빌드할 수 있는 유연함을 가지고 있다.
  • 개발자들은 얼마나 남의 코드에 의존할까?

    이 기사에서 보다시피 우리는 개발을 할 때 프로 개발자들도 다른 사람이 만든 코드에 많이 의존한다. 반대로 얘기하면 다른 사람들이 만든 도구를 잘 갖다 쓰는 것도 개발자의 훌륭한 능력 중에 하나인 것이다. 이것을 어떻게 할 수 있을까?
  • 다른 사람들이 만들어둔 도구 내려받기
    - Javascript - NPM
    - Python - pip
    - Java - mavenCentral, jcenter
    이것을 통해 다른 사람의 코드를 다운받고 적용하는 것을 간편하게 할 수 있다.
    그리고 이것을 도와주는 것이 바로 Gradle이다.

  • 자바 사용자들이 사용할 수 있는 다른 사람들이 만들어 놓은 코드(=라이브러리)를 검색하는 장소

  • 추가해보기
    1. Maven Repository 에서 원하는 라이브러리 를 찾는다.
    2. build.gradle 에 원하는 프로젝트 파일을 넣는다.
    3. dependencies 옆 Run 버튼을 누른다.

    1. 우측 Gradle 탭의 새로고침 버튼을 누른다.
    2. 대상 프로젝트가 추가된 것을 확인한다.
  • Gradle은 2가지 용도로 쓰는 데 하나는 배포할 때 다른 하나는 라이브러리를 가져올 때 씀
profile
Hello World!

0개의 댓글