본문 바로가기

카테고리 없음

#11 Spring 입문주차 <1주차>

개발자 도구 : f12

 

 

API와 프로토콜의 개념

https://velog.io/@dlife/API-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

 

API & 프로토콜

보통 웹 개발에서 API는 백엔드 서버가 제공하는 데이터나 기능에 프론트엔드 개발자가 접근할 수 있는 방법을 제공한다. 이를 통해 프론트엔드 개발자는 백엔드에서 제공하는 데이터나 기능을

velog.io

 

 

 

API는 애플리케이션간 인터페이스이고

TCP/IP같은 프로토콜은 통신 규약으로 네트워크 상에서 데이터를 주고 받기 위한 통신 시 

지키는 규약이다

 

좀 더 쉽게 표현하자면 API는 연결 통로와 비슷한 개념으로

'네이버 맵 API'라는 API가 있다고 가정 했을 때
"네이버 서버(PC)에 있는 맵 기능을 다른 사용자들이 사용할 수 있게 만든 API(통로)"가 되는 것이다

따라서 "네이버에서 맵 API를 제공한다." 라는 말은 "API(통로)를 통해 네이버의 맵 기능을 여러 사람이 사용할 수 있게 프로그래밍하여 제공한다"는 뜻이 된다

 

프로토콜은 위의 통로로 통신 시 지키는 규약이라고 보면된다

-HTTP 프로토콜은 TCP/IP 위에서(윗계층에서) 돌아가는 프로토콜이다

 

 

 

Lombok

Lombok이란 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리이다.
Getter, Setter, Equlas, ToString 등과 다양한 방면의 코드를 자동완성 시킬 수 있다.
Lombok을 활용하면 엄청난 양의 업무량과 코드 다이어트를 얻을 수 있음

 

 

@AllArgsConstructor -->모든 필드를 매개변수로 받는 생성자 생성
@NoArgsConstructor -->기본 생성자 생성
@RequiredArgsConstructor -->final이 달린 필드를 가지는 생성자를 생성
@RestController --> ResponseBody+Controller

 

@Controller 어노테이션을 썼을때 View가 아닌 Data를 반환해야 할때는

@Responsebody 어노테이션을 사용해야 한다.

Data를 반환 해야하는데 @Responsebody를 쓰지 않는다면 반환하는 데이터가 예를 들어 return "hello"

일 때 "hello"에 해당하는 html을 찾고 해당하는 html을 찾지 못 했을 때 에러가 발생한다

 

 

 

 

 

매개변수로 전달받은 model.addAttribute("key", "value"); 

메소드를 이용해서 view에 전달할 데이터를 key, value 쌍으로 전달함.

 

 

Jackson

Jackson은 JSON 데이터 구조를 처리해주는 라이브러리 입니다.
Object를  JSON 타입의 String으로 변환해줄 수 있습니다.
JSON 타입의 String을 Object로 변환해줄 수 있습니다.

 

 

 

-->String 타입 텍스트를 json 형태로 클라이언트에게 보내주기
    @GetMapping("/json/string")
    @ResponseBody
    public String helloStringJson() {
        return "{\"name\":\"Robbie\",\"age\":95}";
    }

 

 

-->application json 타입
--> 객체 형태로 반환하지만 스프링 내부적으로 자동으로 json 형태로 변환해준다
    @GetMapping("/json/class")
    public Star helloClassJson(){
        return new Star("Robbie", 95);
    }