웹개발의 봄, Spring 1주차 개발일지

Daniel_Yang·2021년 12월 10일
0

티스토리와 노션만 사용하다가 가독성을 위해 velog를 사용해본다.

코드정렬

  • Windows: Ctrl + Alt + L

JPA

정보를 저장하는 데이터베이스를 배우고, 이를 자바로 다루는 표준 방법인 JPA

개발환경 구축

  • Zulu 를 사용한다.
  • Advanced REST Client 사용
  • Spring intializer를 클릭하고나서
    - group은 url, 웹사이트 주소를 말하는데 관습적으로 거꾸로 쓴다
    • Artifact(프로젝트 이름): week01
    • Type: Gradle
    • Language: Java
    • Java Version: 8
  • next 후 spring에 도움이 되는 개발툴 선택
    - Lombok
    • Spring Web
    • Spring Data JPA
    • H2 Database
    • MySQL Driver

스프링 작동

  • 프로젝트를 만들고나서 처음 나오는 java파일 (@springbootapplication)이라 되어있는거 run
  • 이후 localhost:8080
  • 스프링: 서버를 담당하여, 요청에 따라 눈에 보이는 것들 또는 데이터를 제공

메서드

  • 메서드: 반복적인 행동을 줄여서 어디든 재사용하도록 하는 명령 모음
  • 파라미터와 반환값이 있/없는 경우가 각각 있다.

arraylist

  • 전체 배열 출력하기 용이하려면 arrayList를 이용하는 것이 좋다.
  • 각각 출력하고 싶다면 get() 메서드를 통해 변수에 할당한다. 그리고 length 대신 .size로 길이를 구한다.

getter, setter

  • private 일 경우 발생하는 오류

  • public 이면? 아무런 오류도 발생하지 않습니다.

    	- 그래서 멤버변수들도 private를 쓰는데, 이떄 이에 접근하기위한 것들이 getter/setter들이다.
  • 자동생성: getter/setter 메서드를 일일이 많드는 것은 귀찮다. 툴을 적절히 활용하도록 하자.
    - User 클래스 소스 내에서 마우스 우측 버튼 클릭 ->
    - generate 를 클릭하면 해당 클래스의 필드 변수를 기준으로
    - getter/setter 메서드들을 자동으로 만들 수 있다.
    - 클래스에 멤버변수만 선언해놓고 위와 같이 적용해보자

브라우저에 JSON 나타내기

  • JsonView 설치
  • 데이터로 응답받아서 화면에 정보 띄우려면 RestController 사용

package com.newproject.assignment.Controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PersonController {

    @GetMapping ("/myinfo")
    public Person getMyinfo(){
        Person person = new Person();
        person.setName("김도지");
        person.setAge(27);
        person.setAddress("서울");
        person.setHeight(180);
        return person;
    }

}

// courses라고 치면 이런 식으로 값을 응답해줄거야
// Course 타입이 리턴타입이다.
// 지금 main에서 getCourses를 실행해주는 것이 없는데,
// 스프링에서 알아서 자동으로 해준다(스프링 장점)
// 이렇게 맵핑 ex)@--만 잘 해주면 메서드만 작성해도 알아서 잘 실행하는 것!
// java class를 json으로 바꾸는 것도 메서드 자동 실행도 다 spring이 한다.
  • JSONView는 못생긴 JSON 데이터들을 이쁘게 만들어준다.
  • 데이터로 응답하려면, RestController 를 사용해야 합니다.
  • 웹서비스 작동에서 서버가 응답하는 게 두가지가 있는데, 데이터만 받는 경우와 HTML,
    데이터 함께 받는 경우인데, 이 경우는 데이터만 받는 것이다.
  • controller는 자동응답기이다. 일반 자바 클래스로 만들기 때문에 처음에는 spring이 자동응답기라는 걸 모른다.
    그래서 JSON으로 응답하는 자동응답기임을 알려줘야한다.
    - @RestController 라고 붙여줘야한다.
  • /courses 는 getcourse로 응답 받는 메서드를 호출하는 것!
    • 스프링 프로젝트를 실행시킨 다음, url에 치면 작동되는 것이다.
      만약 courses를 course로 수정했다면 스프링 프로젝트 재실행 후 작동해야한다.

Gradle

  • 다른 사람의 것을 다운로드받고 적용하는 과정을 보다 편하게 할 수 있다! 이를 도와주는 녀석이 Gradle
  • maven repository 활용 -> JSON in java
  • 복사한 링크 build.gradle dependency 안에 넣어준다.

0개의 댓글