[Spring 기초] 화면에 클래스 정보 띄워보기

이지수·2021년 9월 11일
0

sparta-spring

목록 보기
1/1
post-thumbnail

Spring??

스프링이란 자바라는 언어로 서버를 만드는데 필요한 프레임워크입니다.
서버는 클라이언트의 요청에 따라 눈에 보이는 것들 또는 데이터를 제공해줍니다.

이번 포스트에서는 스프링에 클래스를 만들어보고 클래스 정보를 브라우저에 띄워보겠습니다!

스프링 프로젝트 생성

인텔리제이(IntelliJ)

자바로 코드를 작성하는데 특화된 개발 환경입니다. 저는 인텔리제이를 사용했습니다.(2021버전)

프로젝트 준비하기

New Project를 클릭하고 Spring Initializer에서 다음과 같이 설정합니다.

특히 Type, Language, Java version 중 하나라도 다르면 정상적으로 실행이 되지 않습니다. 꼭 정상입력 확인해주세요!


검색창에서 다음을 검색해서 dependencies에 추가해주세요.

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

다음에 finish를 클릭하고 잠시 기다리면 프로젝트 세팅이 끝나고 스프링 개발을 시작할 준비가 됩니다!

인텔리제이 세팅(auto import)

File > Settings > auto import를 검색한 후

옵션을 다음처럼 체크하고 OK를 클릭하여 종료합니다.

  • Insert imports on paste: Always
  • Add unambiguous imports on the fly: 체크

클래스 생성

클래스??

현실과 비슷한 개념(객체)을 나타내기 위한 자바의 도구를 클래스라고 부릅니다. 정보를 묶는다고 생각해주시면 됩니다.

src > main > java > 폴더에 models라는 패키지를 생성한 후

Java class를 생성합니다. 저는 Person이라는 이름으로 생성했습니다.

멤버 변수 생성

멤버 변수??

클래스 내 정보를 멤버 변수 라고 합니다.
다음과 같이 Person 클래스 내에 멤버 변수들을 만들어줍니다.

Person.java

package com.sparta.week01_hwk.models;

public class Person {
    private String name;
    private String job;
    private int age;
    private String address;
}

String, int

문자형은 String, 숫자형은 int(정수), float(소수점)으로 나타냅니다.

public, private

클래스의 모든 정보를 손쉽게 바꿀 수 있으면 안됩니다. 왜냐하면 클래스는 고객의 비밀번호/결제정보와 같이 민감한 정보들도 담고 있기 때문입니다.
그래서 자바의 클래스는, 밖에 드러내도 되는 것들을 public, 함부로 바꾸면 안되는 것들을 private 으로 구분해서 나타냅니다.
그래서 위 코드의 멤버 변수들도 개인 정보이기 때문에 private을 붙여줬습니다.

Getter, Setter

정보를 가져오는 메소드를 Getter, 정보를 바꾸는 메소드를 Setter 라고 부릅니다.
Getter, Setter를 사용해야 하는 이유는 객체 내부속성을 외부에서 알지 못하게 하고, 객체 접근이 불가능하게 하여 정보은닉 과 객체의 무결성 보장, 확인을 하기 위해서 입니다.

package com.sparta.week01_hwk.models;

public class Person {
    private String name;
    private String job;
    private int age;
    private String address;
    
    // Getter
    public String getName() {
        return this.name;
    }

    public String getJob() {
        return this.job;
    }

    public int getAge() {
        return this.age;
    }

    public String getAddress() {
        return this.address;
    }
    
    // Setter
    public void setName(String name) {
        this.name = name;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

위와 같이 멤버 변수마다 Getter, Setter를 만들어줍니다.

메소드

메소드는 반복적인 행동을 줄여서 어디든 갖다쓸 수 있는 명령 모음입니다.

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

반환타입이 void인 것은 반환값이 없다는 것입니다!

this

this는 객체 자기자신을 나타냄으로써 객체에 접근할 수 있습니다.

RestController

RestController??

여기서 Rest는 서버의 응답이 JSON 형식임을 나타내고 Controller는 클라이언트의 요청(Request)을 전달받는 코드입니다.

RestController 생성

src > main > java > 폴더에 controller 패키지를 만듭니다.

controller폴더 안에 PersonController 자바 클래스를 생성합니다.

PersonController.java

package com.sparta.week01_hwk.controller;

import com.sparta.week01_hwk.models.Person;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PersonController {

    @GetMapping("/myinfo")
    public Person getPerson() {
        // 생성자
        Person person = new Person();
        person.setName("이지수");
        person.setAddress("경기도");
        person.setAge(25);
        person.setJob("학생");
        return person;
    }
}

GetMapping

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

결과

이제 PersonController 파일에서 Run을 해주면 console창에 다음과 같은 것이 나오게 됩니다.

Started ~ 문구가 뜨면 브라우저에 http://localhost:8080/myinfo 이렇게 입력하고 들어갑니다.

그럼 이렇게 JSON형식으로 person클래스 정보를 가져와 브라우저에서 보입니다!🙌

0개의 댓글