RESTFul-API SampleCoding (Java,SpringBoot,Maven,myBatis) #1

   현업에서 프로젝트를 하다보면 가장 많이 사용방식이 최근에는 RESRFul API를 통한 데이터 관리이다.   Interface를 하는 경우도 그렇고 Web Service, Mobile App Service 등 거의 대부분의 Web Application이 Java로 개발되는 경우 SpringBoot Framework을 사용하여 RESTFul API 형태로 데이터를 송수신하고  Web Service를 구현한다.
   프로젝트들이 성격과 내용이 다를 뿐이지 데이터를 다루는 방식은 크게 다르지 않기 때문에 화면에서 로그인을 하고 로그인한 사용자가 자료를 조회하고, 조회된 자료를 수정하고, 신규자료를 입력하는 등의 일련의 작업은 크게 다르지 않다.   이 과정에서 외부와의 연동은 RESTFul API를 통해서 JSON으로 전문을 주고 받는 경우가 대부분이기 때문에 가장 기본이 되는 Login 및 RESTFul API의 사용법을 포스팅하고자 한다.
   가능하면 짧게 하려고 하겠지만 Eclipse를 통해서 진행과정을 모두 기록하다보면 그 양이 짧지 않을 듯 싶다.   그 첫번째로 이번에는 개발환경을 설정하는 단계로 시작하겠다.

[ Eclipse Marketplace를 통해서 Spring Tools 4 를 설치한다. ]

   Marketplace를 통해서 Spring Tools 4를 비롯해 개발에 필요한 PlugIn을 설치하자.   그리고 Lombok은 별도로 설치를 진행해야 한다.   Lombok은 해당 사이트에 다운로드 받아서 설치해야 한다.
https://projectlombok.org/download

 

Download

 

projectlombok.org

   다운로드 받은 lombok.jar를 이클립스가 설치된 디렉토리로 이동을 하고 Console 화면에서 java -jar 명령어로 실행해준다.

[ java -jar lombok.jar 실행 ]
[ Lombok Install ]
[ Quit Installer ]

   만약 Lombok을 설치하고도 getter / setter 부분에서 빨간줄로 에러가 난다면 Build Path의 내용을 확인해 봐라.   lombok.jar 가 build path에 잡혀 있지 않다면 수동으로 추가해주면 해결 된다.

[ Lombok 설치 후에도 getter / setter 에러가 난다면 lombok.jar 가 build path 에 추가 되어 있는지 확인한다. ]

 

   postgreSQL을 설치하고 Sample Data로 연습하기 위해서 제공되는 dvdrental 을 갖고 web service 프로젝트를 생성하고 더블어 RESTFul API를 구현하는 순으로 진행해보려고 한다.   postgreSQL 설치 및 Sample Database Import에 대한 부분은 여기서는 생략하고 나중에 필요하다면 별도의 포스팅으로 게시하도록 하겠다.   하지만 해당 사이트에 방문해서 보면 import 하는데 어려움은 없을 것 같으니 다운로드 받아서 차근차근 따라해보면 금방 설치 할 수 있을 것이다.
https://www.postgresqltutorial.com/postgresql-getting-started/postgresql-sample-database/

 

PostgreSQL Sample Database

This tutorial introduces you to a PostgreSQL sample database that you can use for learning and practicing with PostgreSQL.

www.postgresqltutorial.com

   먼저 SpringBoot Project을 생성하자.

[ File - New - Project - Spring Stater Project 를 선택한다. ]

 

[ Project 생성을 위한 정보를 입력하고 Next > ]

Name DVDRental
Type Maven
Packaging War
Java Version 22
Language Java
Group kr.co.iamwhatiam
Artifact DVDRental
Version 0.0.1-SNAPSHOT
Description DVD Rental Service
Package kr.co.iamwhatiam.dvdrental

[ Spring Starter Project Dependencies에서 그림처럼 필요한 항목을 선택한다 ]

   추후 추가적으로 필요한 사항은 Maven을 통해서 추가하면 된다.

[ Finish 를 눌러 프로젝트를 추가하자 ]
[ 프로젝트가 생성되었다 ]

   기본적으로 개발하기 위한 초석은 마련이 되었다.   이제 여기에 MVC 형태로 Model, Service, Controller, View 등을 살붙이면서 추가하고 Login Session 을 위한 Interceptor 등 추가적인 기능들을 하나씩 구현하면서 더해가면 된다.   그러면 정상적으로 프로젝트가 생성되었는지 확인하기 위해서 web service가 정상작동 하는지 Run 을 해보자.

[ 프로젝트를 선택하고 상세메뉴를 보면 Run AS - Spring Boot App 을 통해서 실행하면 된다 ]

   Spring Boot는 Tomcat을 기본으로 포함하고 있기 때문에 별도의 Tomcat 설정을 하지 않아도 된다.   프로젝트 선택 후 Run As 에서  Spring Boot App 을 실행하면 서버가 구동된다.

[ Whitelabel Error Page 가 출력되면서 정상적으로 Tomcat 서버가 구동된 것을 볼 수 있다 ]

   만약 구동시 에러가 발생한다면 아마도 최초 프로젝트 생성시 DB Connection Driver를 선택했기 때문에 DB연결 정보가 없다고 에러가 나는 케이스 일 것이다.

[ DB Connection 정보가 누락되어 발생한 Error ]

   다음 포스팅에서 작성할 내용이지만 일단 정상적인 구동을 확인하기 위해서 DB Connection 정보를 입력하면 구동이 정상적으로 이루어 지는 것을 확인 할 수 있을 것이다.

[ src/main/resources/application.propertires ]

spring.application.name=DVDRental

# http port
server.port=8080

# PostgreSQL 데이터베이스 설정
spring.datasource.url=jdbc:postgresql://192.168.0.106:5432/dvdrental?currentSchema=public
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.driver-class-name=org.postgresql.Driver

# Hibernate JPA 설정 (필요에 따라 조정)
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.generate-ddl=false
spring.jpa.show-sql=true

#logback
logging.level.root=info
logging.level.com.kbdsi=debug
logging.level.com.prototype.domain.repository=TRACE

 

   이번 포스팅은 SpringBoot  프로젝트를 생성해서 정상적으로 web service 가 기동되는지 확인하는 것 까지 진행했다.   다음 포스팅에서는 개발자들이 첫걸음을 떼는 "Hello World"를 해당 프로젝트에서 web browser를 통해서 출력되게끔 진행하도록 하겠다.
   그에 앞서 미리 본인의 PC 또는 개발 서버에 postgreSQL을 설치하고 dvdrental Database를 Import 해 놓도록 하자.   Linux에서 postgreSQL을 설치하는 과정에 대해서는 아래 글을 참고 하면된다.   Windows 또는 OSX에서의 설치도 어렵지 않으니 postgreSQL 사이트의 안내를 따라서 진행하자.

https://clien78.tistory.com/222

 

Rocky Linux 에 PostgreSQL 설치 및 외부연결 설정

개인적으로 대규모 Project를 주로 하다보니 Oracle, MS-SQL 이외에 흔히 사용되는 DB는 MariaDB(MySQL) 정도였다.   최근 PostgreSQL의 사용이 증가하고 있고 주변에서 PostgreSQL에 대한 니즈가 생기는 것을 듣

blog.iamwhatiam.co.kr

 

   다음글 : https://clien78.tistory.com/232

 

RESTFul-API SampleCoding (Java,SpringBoot,Maven,myBatis) #2

지난번 포스팅에서 프로젝트 생성 및 서버 구동까지 진행을 했었다.   이번 포스팅에서는 DB 연결, Logging을 위한 설정을 하고 웹 화면에 "Hello World"를 출력하는 것까지 진행해 보려고 한다.   먼

blog.iamwhatiam.co.kr