매일 한줄 코딩

#1] 스프링부트 프로젝트 세팅하기. 본문

develop/spring

#1] 스프링부트 프로젝트 세팅하기.

ShipJH 2020. 10. 5. 23:37

안녕하세요.

스프링부트를 이용한 프로젝트 생성부터 시작하여, 많이 사용되는 라이브러리나 기술들 혹은 팁을 작성해두려고 합니다.

최종적으로는 하나의 프로젝트를 만들고자 합니다.

 

시작하기 전,

기본 설치사항입니다.

- java jdk 8이상,

- DBMS ( oracle, mysql, mariadb, mssql-server, postgre... 등등 )

       처음엔 mybatis 구성인 관계형디비로 시작하여 최종적으론 ORM으로 변경할 예정이라 DBMS의 종류는 크게 상관없이 편한것 선택.

- 툴 ( 이클립스, 인텔리제이, vscode 등 .. )

- 서버구성 (아파치-톰캣) 으로 할 예정입니다. 

- 빌드툴 (그래들 or 메이븐)

- 스프링부트 프로젝트 구성

- html위 템플릿엔진 ( 타임리프 ) 올릴 예정. (추후 리엑트등 프론트엔드 프레임워크를 선택하여 변경할 생각)

 

 

 

 

일단은 예정은 이렇습니다.

 

하나씩 따라하기 쉽게 작성할 예정이고, 하나하나 깊게 설명하기보단 따라하면 프로젝트가 완성되는 형태로 작성할 예정입니다.

예를들면, exception처리를 설명드리면서 어떤 클래스를 상속받으며, 비슷한것으로는 어떠어떠한것이 있으며,,, 이런식이 아닌, 노하우같은 형태로 쓰려고합니다.

그렇다고 대충 넘어갈 생각은 없습니다.

궁금한점이 있으면 타 블로그 참고해주시거나 댓글 남겨주시면 바로 답장해드립니다.

 

 

먼저, 스프링부트 프로젝트를 생성하겠습니다.

 

스프링부트의 가장 큰 장점은 

개발자로 하여금 설정이나 프로젝트 구성에 시간을 크게 투자하지않고 클릭클릭으로 뚝딱 프로젝트가 만들어지며, 기존 스프링MVC에서 흔히 아는 rootcontext.xml 이나, serservlet.xml 등등 의 구성없이 웹프로젝트를 금방만들 수 있다는 장점이 있습니다.

개발자는 개발에 몰두 할 수 있도록 해줍니다.

그 외에도 내장톰캣(임베디드톰캣)이 있어 따로 별도의 was를 구성하지 않아도, 내장톰캣으로 단독 실행이 가능합니다.

패키징후 jar를 실행시켜 서버를 띄울 수도 있다는 장점이 있습니다. 

 

 

 

 

먼저 New Project에서 Spring Boot아래의 Spring Stater Project를 선택해줍니다.

이클립스의 경우, 보이지 않을 수 있는데, 마켓플레이스에서 sts검색 후 

Spring Tools 4 다운 받았습니다 . 3.x.x 받으셔도 무관합니다.

다운 받으시면 그 속에 spring boot 관련된 것이 포함되어있음을 알 수 있습니다.

 

 

 

 

 

 

그 다음,

프로젝트명

Type(빌드툴 : 메이븐, 그래들)

패키징 ( jar, war )

자바 버전과 언어 선택

그다음 패키지명과 그룹명 등등을 작성해 줍니다. 

저같은 경우 여행과 관련된 프로젝트를 생성해보기 위해 trip이라고 쓴것이므로, 참고하여 알맞게 쓰시면 됩니다.

Version은 war나 jar 패킹할때 (빌드할때) 뒤에 붙는 명칭이므로 그대로 뒀습니다.

추후 바꿔도 상관없습니다. ( 버전에 대한 숫자 매김은 추후에 설명드립니다. )

 

 

 

 

 

 

그다음, 

라이브러리들을 프로젝트가 생성될때 디펜던시로 넣어줄 것들을 미리 체크하는 부분입니다.

체크를 안해줘도 상관없습니다만, 

기본적인 Web구성이나 Lombok, DevTools 등은 넣는게 편합니다.

만약 못넣어도 www.mvnrepository.com/ 로 들어가서 따로 검색 후 추가하는 방식도 상관없습니다.

추후에 추가할 것이므로, 크게 신경 안쓰셔도 됩니다. 

그냥 스크린샷의 체크하는 라이브러리들은 편의성이라고 생각하시면 됩니다.

 

 

 

 

 

 

최종적으로 Finish 하게되면, 이름Application.java 하나 있는데요,

그것은 메인메서드로 부트를 실행시켜주는 메서드라고 보시면됩니다.

일단 제대로 구성이 되었는지 확인하기위해 저같은경우는 TestController.java 파일을 만들어서

@RestController 어노테이션 적용해서 @GetMapping url 설정 후 , 

실행 하고나서 브라우저에서 해당 url 접근하였을 시, TEST 라는 단어가 잘 찍히는지 보기 위한 테스트를 준비했습니다.

 

@RestController는 일반 컨트롤러와 비슷하지만 리턴되는 값이 json 형태로 리턴된다고 보시면 됩니다.

주로 RestApi 형태만들때 많이 쓰입니다.

 

@GetMapping 은 일반 @Mapping 의 메서드값이 Get이라 생각하시면 됩니다.

Get : 조회

Post : 등록

Put : 수정

Delete : 삭제

.. 등등 여러가지 메서드가 존재합니다만 보통 위 4가지를 많이 씁니다. 

추후 Api 작성할때 더 깊게 공부해보도록 합시다.

 

 

 

스프링부트를 실행하는 방법입니다.

프로젝트 우클릭 -> Run As -> Spring Boot App 눌러 주시면 

별도 톰캣설정없이 내장톰캣에 의해 돌아가게 됩니다.

기본 포트는 8080이니 이미 8080을 쓰고 계신다면

application.properties 열고

server.port=xxxx 작성후 

xxxx에 원하는 포트 기입하시고 실행해주면 됩니다.

 

추후 application.properties 부분도 함께 볼 예정입니다.

 

실행에 성공하였다면

localhost:8080/

혹은

localhost:설정한포트

 

를 브라우저 위에 쳐보시면 아래와 같이 뜬다면

 

벌써, 웹프로젝트가 완성된거나 다름없습니다.

 

 

 

 

다음에는 웹프로젝트 구성하면서 필요한 라이브러리 들을 붙여보도록 하겠습니다.

예를들면 로그나,

인터셉터, aop 등을 설명 하도록 하겠습니다.

Comments