클라이언트 사이드 렌더링이 보편화 되면서 웹서버는 정적인 서버와 동적인 서버로 분리가 되었고 동적인 서버는 REST API 만 제공해주는 것으로 역할이 축소가 되고 있다. 프런트엔드는 리액트, 뷰, 앵규러와 같은 SPA 프레임웍으로 만들고 백엔드는 REST API를 통해서 데이터만 가져오는 방식이 요즘의 MSA 아키텍처에 맞는 구조로 진화하고 있다.

REST 는 REpresentational State Transfer 의 약자이다. 웹에 존재하는 모든 자원에 고유한 URI를 부여해서 해당 자원을 가져오거나(Get) 만들거나 (Create ) 수정하거나(Put) 삭제하도록(Delete) 만든것이다.

여기서 자원이란 이미지, 동영상 같은 화일도 가능하지만 대부분 DB를 의미하고 결국 REST로 DB에 CRUD를 할 수 있게 되는 것이다.

그렇다면 REST는 표준 프로토콜인가? REST는 표준이 아니라는것을 기억해야 한다. HTTP 프로토콜은 W3C에 RFC2616 에 정의된 표준이지만 REST는 인터넷 기구에서 정의된 부분은 없다. 단지 HTTP의 get, post, put, delete 메서드를 사용해서 CRUD를 구현할 수 있구나라는데 착안한 가이드일 뿐이다.

대부분의 서버 언어로 REST api를 만드는것이 가능한데, 가장 중요하게 고려해야 할 점은 DB 쿼리를 어떻게 매핑하느냐이다. 그것을 ORM 이라고 하는데 ORM은 Object Relational Mapping 의 약어로 객체로 정의된 부분을 DB 쿼리로 바꾸어 주는 프레임웍을 말한다.

그래서 ORM을 고려해서 다음 이 세가지가 주로 사용된다.

  • Spring + JPA ORM or Mybatis ORM
  • NodeJS + Sequalize ORM or TypeORM
  • Python + Django ORM

REST 개발환경 설정

백엔드 개발툴 - IDEA 개발툴은 무료툴인 eclipse 보다 http://www.jetbrains.com 에 intelliJ IDEA를 사용한다. jetbrains 개발툴에 여러가지가 있는데, 자바관련 개발툴이 IDEA이다. 이 툴은 자바개발 + 웹 개발이 합쳐진 툴이므로 IDEA를 구매하면 웹개발툴인 Webstorm은 무료로 사용할 수 있다.  대학교 이메일이 있다면 학교 이메일로 라이선스를 요청하면 1년 무료 라이선스를 받을수 있으며 라이선스 구매 비용은 약 50만원 정도인데, 1년동안 사용이

Read more ...

DataGrip 사용법 – DB 구축

먼저 docker에 mariadb를 구축하고 datagrip 툴을 사용해서 테이블 생성과 CRUD를 해보겠다. datagrip 툴을 사용해도 되고 idea ultimate 버전이 있다면 shift 두번 누른다음에 database 친 다음에 엔터를 누르면 우측에 datagrip 과 동일한 툴을 사용할 수 있다. https://www.youtube.com/watch?v=5QAB_BiEFd4 로컬 MariaDB 구동 앞에서 window 기반 docker desktop 을 설치 하였다면 power shell에서 아래와 같이 mariadb를 설치한다. docker desktop을

Read more ...

Spring으로 REST API 만들기

Spring MVC 구조에서 REST 를 지원하기 위해서 기존 @Controller 어노테이션에 @RestController 이라는 어노테이션이 추가되었다. @Controller 어노테이션은 View를 리턴해야 했어나, @RestController 는 Jackson Mapper의 도움으로 JSON을 리턴할 수 있게 되었다. 그 외에 REST를 지원하기 위한 다양한 어노테이션이 많이 추가되었다. Spring 에서는 JPA ORM을 사용할 수도 있고 MyBatis라는 ORM을 사용할 수도 있다. 공공기관, 대기업같은 환경은 아직도 대부분

Read more ...

NodeJS 로 REST API 만들기

NodeJS로 REST API를 만드는건 좋은 선택이 아니였다. 왜냐하면 spring의 JPA 같은 ORM or MyBatis 같은 ORM이 없었기 때문에 객체를 쿼리문으로 변경하는게 쉽지 않았다. 지금은 Sequalize ORM 의 도움으로 Node도 쉽게 REST api를 만들수 있다. 또한, java의 swagger와 같은 swagger도 적용할 수 있다. 최근에는 NodeJS에 타입스크립트를 적용하는 추세라서 typescript ORM인 typeORM 도 좋은 선택이 될 수

Read more ...

Comments are closed.