내일배움캠프 20일차 TIL - Spring(API)

2024. 5. 13. 11:34·⛺스파르타코딩클럽
목차
  1. 오늘의 학습 
  2. # 오늘의 회고

240514

오늘의 학습 

    ●  1. API

    ●  2. Restful API

    ●  3. Controller & RestController

    ●  4. ModelAttribute

    ●  5. RequestBody

 

1. API ( Application Programming Interface )

시스템과 시스템간의 상호작용을 하기 위한 규칙

이러한 규칙이 있기에 개발자는 복잡한 시스템의 내부 구현을 몰라도 특정 기능을 사용하거나

데이터를 주고받을 수 있습니다.

2. Restful API

REST(Representational State Transfer)

자원의 이동에 대한 규칙을 의미한다. GET/POST/PUT/DELETE

Restful API는 웹 API의 한 종류이다.

Restful API ⇒ 웹에서의 API ( 브라우저와 서버 간의 규칙 )

HTTP프로토콜 ⇒ 네트워크 통신 규칙

HTTP를 잘 활용하기 위해 나온 방법

 

3. @RestController & @Controller

@Controller

Controller 애노테이션은 직접 view나 html을 반환을 해줘야 한다.

옛날 방식의 이 컨트롤러는 view(html)를 직접 서버쪽에서 만들어서 반환을 해줘야 했었다.

@Controller
public class Main() {
    @GetMapping("/api/hello")
    public String hello() {
    	return "hello.html"; // view를 보내줘야했음.
    }
}

@Controller
@ResponseBody // body에 넣어서 보냄으로 써 데이터 형태로 값이 넘어감.
public class Main() {
    @GetMapping("/api/hello")
    public String hello() {
    	return "hello";
    }
}

 

@RestController

현재는 Restful한 api를 사용하기 때문에 반환타입을 대부분 데이터형식인 json을 주로 반환을 하게 된다.

프론트엔드와 백엔드가 나눠지면서 서버에서 화면을 만들어 낼 일이 줄어 들게 되었다.

즉, view를 보내는게 아닌 데이터를 보내는걸 추구하게 되었음.

@RestController
public class Main() {
    @GetMapping("/api/hello")
    public String hello() {
     return "hello";
    }
}

 

4. @ModelAttribute

@ModelAttribute

GET / POST 등등 다 사용 가능. 생략도 가능.

애너테이션은 쿼리스트링으로 값이 넘어오면 그 값들을 객체에 넣어줄 수 있게 해주는 애너테이션이다.

( 객체에 mapping해서 가져오는 형식이다. )

@RestController
public class Main() {
    @GetMapping("/api/hello")
    public String hello(@ModelAttribute Member member) {
     return member;
    }
}

 

5. @RequestBody

@RequestBody

json타입으로 데이터가 넘어올 때는 생략이 불가능하며 꼭 넣어줘야지 받을 수 있다.

데이터가 json형식으로 넘어왔을 때 그 값을 객체타입으로 간단하게 넣어줄 수 있게 해주는 애너테이션이다.

단, 객체의 필드값의 형태와 넘어오는 json객체의 요소의 이름이 동일해야 한다.

@RestController
public class Main() {
    @GetMapping("/api/hello")
    public String hello(@RequestBody Member member) {
     return member;
    }
}

 

# 오늘의 회고

오늘은 스프링의 1주차 강의 수강을 완료했다.

스프링의 기본적인 개념을 익혔으며 RestController와 Controller의 차이를 알았고,

API와 Restful API의 개념을 알게 되었다.

내일은 2주차 강의를 다 듣고 시간이 되면 애노테이션과 리플렉션의 개념을 잡으려고 한다.

'⛺스파르타코딩클럽' 카테고리의 다른 글

내일배움캠프 22일차 TIL - Annotation  (0) 2024.05.19
내일배움캠프 21일차 TIL - Spring(IoC, DI)  (1) 2024.05.16
내일배움캠프 19일차 TIL - Iterator  (0) 2024.05.12
내일배움캠프 18일차 TIL - 람다(메서드 참조, 생성자 참조)  (0) 2024.05.10
내일배움캠프 17일차 TIL - 함수형 인터페이스, 익명 클래스  (2) 2024.05.09
  1. 오늘의 학습 
  2. # 오늘의 회고
'⛺스파르타코딩클럽' 카테고리의 다른 글
  • 내일배움캠프 22일차 TIL - Annotation
  • 내일배움캠프 21일차 TIL - Spring(IoC, DI)
  • 내일배움캠프 19일차 TIL - Iterator
  • 내일배움캠프 18일차 TIL - 람다(메서드 참조, 생성자 참조)
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (151)
      • 🎓방송통신대학교 (26)
        • 🖥️컴퓨터과학과 (1)
        • 🌍유비쿼터스 컴퓨팅 (11)
        • ⚙️컴퓨터의 이해 (11)
        • 🏛️세계의정치와경제 (3)
      • 📚Computer Science (0)
      • 🛠️Backend (2)
      • ☕Java (20)
        • 📝Java Programming (19)
        • 🧩Java Design Pattern (1)
      • 🌳Spring (9)
        • 🌱Spring Framework (6)
        • 🌱Spring Security (1)
      • ⚡Python (13)
      • 🛢️Database (0)
      • 🌿GitHub (1)
      • 🌐 Network (7)
        • 📜HTTP (7)
      • 🚀DevOps (1)
      • Algorithm Problem Solving (2)
      • Data Structure (1)
      • JavaScript (1)
      • ⛺스파르타코딩클럽 (65)
      • 잡담 (1)
      • 정리가 필요한 글 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    자바
    컴퓨터의 이해
    스프링
    방송대
    유비쿼터스
    컴파일러
    파이썬
    방송통신대학교
    Java
    클라우드
    유비쿼터스 컴퓨팅
    spring
    Spring Framework
    세계화
    유비쿼터스 컴퓨팅개론
    입출력
    방통대
    다형성
    클래스
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
내일배움캠프 20일차 TIL - Spring(API)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.