[SPRING_입문]/개발일지

[2주차] 개발일지 (2-10) ARC (Advanced REST Client)

Code_Otaku 2022. 6. 17. 14:59

안녕! 안녕!

저번 시간에는 API의 기본 개념을 다루면서 GET방식을 소개하다가 말았다.

글이 너무 늘어지니까 쓰는 나도 지겹고, 승모근도 아프고..ㅠㅠㅠㅠ

그래서 이번 페이지에서는 API의 남은 개념을 다루기 전에 한 가지 유용한 어플을 소개하고자 한다.

잠시 쉬어가는 시간이라고 생각하면 되겠다.

 

1. REST (Representational State Transfer)

'휴식을 취하다' 라고 생각한 문과생들은 아쎄이.. 기열!

사실 필자도 문과생이다.

꺼무위키를 찾아봐도 도통 뭔 소리인지 모르겠더라.

그냥 이렇게 생각하면 쉽다.

우선 다음 소스코드를 살펴보도록 하자.

<table>
	<tr>
		<form uri="helloJava.jsp" method="post">
		</form>
	</tr>
</table>

자바 문법에서는 '<>'를 태그라고 한다.

form 태그를 주의깊게 살펴 보길 바란다.

크게 uri와 method로 구성되어 있음을 알 수 있다.

uri는 주소를 일컫는 말로 '명사' 라고 할 수 있다.

method는 요청방식으로서 '동사' 이다.

form 태그를 통해 post 방식으로 helloJava.jsp 페이지로 해당 컨텐츠를 전송하겠다는 뜻이다.

코드의 의도가 명확하지 않은가?

이것이 REST라는 기법이다.

 

다만 Spring 환경에서 주소에 들어가는 명사는 복수형을 사용해야 Exception이 발생하지 않는다.

그리고 주소에 동사 형식은 사용하지 않는 것이 일종의 규칙이라고 할 수 있다.

여기까지가 앞으로 본격적으로 다뤄볼 'ARC'를 이해하기 위한 기본 개념이다.

API의 네 가지 핵심 개념 (GET / POST / PUT / DELETE) 역시 사실상 이번 포스팅에 다 들어가 있다고 보아도 무방하니..

조금만 더 집중! 집중!

 

2. ARC (Advanced REST Client)

현업에서도 정말 많이 쓰이는 툴이라고 한다.

API를 만들고 난 이후에 간단하게 기능테스트를 해보기에 안성맞춤인 툴이기 때문이다.

이 어플에서도 요청방식에 다양한 기능이 제공되지만

우리는 기본적으로 GET / POST / PUT / DELETE 기능에만 포커싱 해볼 것이다.

하단에 첨부된 이미지 파일을 한 번 살펴보도록 하자.

 

[Get]

사전에 IDE에서 작성한 코드를 GET 요청을 통해 읽어들이는 (READ) 방식이다. 

id 값은 PK (Primary Key)니까 차치하고..

title과 tutor 변수의 값을 각각 읽어오고 있음을 알 수 있다.

전송방식 옆에 uri 주소를 입력한 다음 딱 봐도 send 처럼 생긴 버튼을 클릭! 하면

하단 200 코드와 함께 출력이 정상적으로 이루어지고 있다.

아! 참고로 저 200이라는 코드넘버는 한 마디로 'Good Request!'라고 이해하면 쉽다.

그 밖에 클라이언트 오류에 해당하는 400, 서버단 오류에 해당하는 500번대 오류 코드넘버도 있다.

API를 어느정도 읽고, 분석할 줄 알아야 현업에서도 원활한 커뮤니케이션이 이루어지기 마련이다..

 

[Post]

다음은 POST 방식이다.

새로운 테이블을 생성하는 SQL의 CREATE 기능과 유사하다.

가장 일반적으로 쓰이는 JSON 방식을 통해 title과 tutor의 값을 새롭게 지정해주고 있는 것이다.

표현방식에 주목하길 바란다.

 

짜잔!

POST 방식으로 새로운 테이블을 생성해준 후, 다시 GET으로 테이블을 읽어온 결과이다.

못보던 테이블이 하나 생기지 않았는가?

정말 신박한 기능인 것이 여간 짜세가 아니다..

 

[Put]

다음은 PUT 방식이다.

SQL에서는 UPDATE 기능과 유사하다.

기존 1번 테이블에 저장되어 있는 변수의 값을 각각 수정한 다음에

Send!

요청이 잘 이루어졌다는 뜻의 200번 코드가 반환된 것을 알 수 있다.

uri 주소를 잘 확인해주실 바란다.

GET과는 달리 테이블 넘버를 별도로 지정해서 수정해줘야 한다.

 

짜잔~!

이번에도 GET으로 테이블을 읽어들이자.

1번 테이블이 뭔가 달라진 것 같지 않은가?

title과 tutor의 결과값이 필자가 수정해준 대로 변경되었음을 알 수 있다.

싱기방기..

 

[Delete]

자! 이번에는 DELETE를 수행해보겠다.

SQL의 DELETE와 똑같은 기능이다.

요청방식만 DELETE로 변경해준 다음..

uri 주소를 2번 테이블로 한정지어줬을 뿐이다.

마찬가지로 Send!

요청이 잘 이루어졌으니 200번 코드가 날라오겠지?

 

ㅎㅎㅎㅎ.. 2번 테이블이 삭제되었따!

 

??????

뭐임?

여태까지 수정해놓은 데이터는 어디가고?

그.. 왜 거기에 계십니까?

 

호들갑 떨 필요 없다.

서버를 재시작해줬을 뿐이다.

지금 사용하고 있는 DB서버는 H2이다.

이 H2라는 녀셕이 골 때리는게

서버를 잠시 닫았다가 다시 열면은 작업해놓은 모든 데이터가 사라져있다.

한 마디로 교보재로 쓰기에 딱이라는 거다.

 

이 정도면 ARC의 기능에 대해서 충분히 다뤄본 것 같다.

다음으로 아직 끝내지 못한 API POST / PUT / DELETE를 포스팅해야 하는데..

솔직히 오늘 다룬 내용이 핵심이라 뭘 얼마나 더 충실하게 올릴 수 있을지 모르겠다.

노력해봐야지 모

그럼 수구..