웹? Spring ? Spring Boot? - 간단 Controller 실습

H_dev·2021년 7월 20일
1
post-thumbnail

바로 간단하게 시작해보자
앞으로 기초를 배워가면서 프로젝트를 진행하고, 블로그에 업로드할 것이다.
강의를 들으며 진행하는 프로젝트는 물론, 팀원들과 함께하는 공모전에 대한 글도 추후 작성해 나가야겠다.

📌 오늘의 내용

  1. 웹의 기본적인 구조
  2. Spring과 Spring Boot
  3. 서버 동작 예제 실습


🔍 웹의 기본적인 구조

웹서비스를 만든다는 건, 클라이언트와 서버 모두 만들어야 한다는 것을 뜻한다.
기본적으로,

클라이언트는 사용자가 보는 화면이고,
크롬 브라우저나 사파리, 익스플로러가 이를 가능하게 해준다.

서버는 우리가 원하는 데이터가 있는 곳이고,
원하는 데이터를 요청하면 이에 응답해주는 곳이라고 쉽게 말할 수 있다.

간단한 기본 구조는, 클라이언트에서 원하는 데이터가 있을 때마다 서버요청하고, 응답 데이터를 받아 사용자에게 보여주는 식이다.


📚 Spring과 Spring Boot

Spring ? FrameWork ?

Spring이란 웹사이트 개발을 위한 백엔드 프레임워크이다.
쉽게 말하면 자바로 서버를 만드는데 필요한 것

다른 개발자들이 미리 필요한 것을 뼈대로 만들어놨고, 필요한 부분만 뽑아내 사용하면 돼서 좋은 품질의 프로그램을 빠르게 구축이 가능하다.
=> 이런 것을 프레임워크(FrameWork) 라고한다.

이런 기본적인 내용 외에도 의존성 주입같은 특징이 있다고 들었지만, 아직 제대로 경험해보지 못해서 중요한 특징같은 부분은 추후에 따로 정리할 예정이다.

Spring Boot ?

  • 스프링 프레임워크가 처음 등장했을 떄는 단순히 애플리케이션 운용에 필요한 객체들을 생성하고, 객체들 사이에서 의존성을 주입해주는 단순한 컨테이너로서의 기능만 제공했지만 발전을 거듭한 현재의 스프링은 다양한 엔터프라이즈 시스템 개발에 필요한 모든 분야를 지원하는 하나의 플랫폼으로 자리잡았다.

    하지만 다양한 프레임워크와 기술들을 지원하면서 동시에 개발자가 처리해야하는 설정도 많아지고 복잡해졌다.

    복잡한 설정에서 발생한 문제들을 해결하려는 노력의 일환으로 '스프링 부트'라는 서브 프로젝트가 진행되었다.

    출처 - https://elevatingcodingclub.tistory.com/25

Spring Boot를 사용하면 직접 일일이 해줘야했던 설정을 자동으로 해주고, 특정 기능에 필요한 라이브러리 의존성을 한꺼번에 간단하게 처리할 수 있다.

라이브러리 버전관리도 해줘서 라이브러리 버전이 달라 정상적으로 동작하지 않는 상황을 겪을 필요가 없고, XML설정을 이용해서 라이브러리를 매번 설정하는 과정을 줄이고 개발에만 집중할 수 있는 환경을 제공해준다.

또한, 테스트를 위한 라이브러리(JUnit 등) 들과 Tomcat서버를 내장하고 있어 복잡하게 여러 설정을 할 필요없이 빠르게 결과를 확인하며 개발할 수 있게 해준다.



💻 서버 동작 예제 실습

현재 강의를 듣는게 있는데 자바 문법 기초같은 부분도 상세하게 설명해주신다.
숙지하고 있는 문법 내용들이기 때문에 따로 정리하진 않겠다.

우리가 보는 웹페이지 즉, 클라이언트 측에서 요청이 들어오면 서버에는 그 요청을 처리하는 컨트롤러(Controller)가 필요하다.

오늘 해볼 간단한 실습은 다음과 같다.

나의 정보를 RestContorller를 사용해 화면에 json 형식으로 뿌려주도록 한다.



1. 스프링 프로젝트 생성 (intelliJ ultimate 기준)


스프링 프로젝트를 편하게 생성해주는 Spring Initializr를 통해 프로젝트를 생성한다.
Gradle, java, 이름설정, java version 선택


뒤에서 할 프로젝트에 저런 의존 라이브러리가 필요하기 때문에 미리 추가를 연습해본다. (여기선 전부 필요하진 않음)





2. Person 클래스 생성 후 멤버변수, getter, setter 추가

public class Person {
    private String name;
    private int age;
    private String address;
    private String job;
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
    
    public String getAddress() {
        return address;
    }
    
    public void setAddress(String address) {
        this.address = address;
    }
    
    public String getJob() {
        return job;
    }
    
    public void setJob(String job) {
        this.job = job;
    }
    
}




3. PersonController 생성 (정보요청이기 때문에 get 사용)

@RestController
public class PersonController {

    @GetMapping("/myinfo")
    public Person getPerson() {
        Person person = new Person();
        person.setName("HDH");
        person.setAge(25);
        person.setAddress("경기");
        person.setJob("대학생");
        return person;
    }
}




4. 서버 구동 후 localhost:8080/myinfo 접속 결과

위와 같이 json 형식으로 잘 뿌려주는 것을 볼 수 있다.
컨트롤러를 통한 서버동작 기초를 실습해봤다.
조금은 사용해봤고, 아주 기본이지만 차근차근 공부해보려 한다.

오늘 일지는 여기까지 😁

profile
성장 개발일지

0개의 댓글