[Spring Boot] 스프링 입문하기
안녕하세요 대추입니다.
스프링은 아예 할줄 모르고 한국에서 스프링만큼 많이 쓰는 프레임워크를 안 다뤄본다면 안된다는 생각이들어 오늘부터 취미삼아 시작해보고자 합니다. 사실 백엔드는 Node.js와 Django로 몇 번 다뤄보긴했는데 보통 입문할때 쓰는 스프링를 안써봤다니 아이러니 하네요 비전공자가 배우듯 쉽고 필요한 것만 공부 시작하겠습니다.
그냥 글만보고 하기에는 힘들어 인프런의 무료강의를 보고 하고 스프링이라 검색하면 나오는 첫 강의를 보고 하는데 주소를 올려도 되나 싶어 링크를 달지는 않겠습니다. 궁금하시면 댓글로 물어보세요
스프링 기본 틀을 만들어주는 사이트
들어가서 자신의 환경에 맞게 수정한 뒤 GENERATE만 눌러준다면 zip파일로 완성시켜 준다. 의존성으로 Spring Web와 Thymeleaf를 추가시켜 시작하기로 했다. Thymeleaf는 템플릿 엔진으로 Node.js에서 쓰던 ejs와 비슷하다고 생각하면 된다.
해당 프로젝트를 실행시켜 메인.java 파일을 실행한 뒤 localhost:8080에 접속하면 본인의 사이트에 접속할 수 있다.
스프링의 의존성 관리
위의 사진은 추가된 라이브러리들인데 내가 추가한 것은 spring web과 thymleaf 2개 뿐이지만 스프링이 알아서 문제가 생기지 않도록 여러 라이브러리들을 추가한 모습니다.
Gradle, Maven이라고 많이 들어 봤을 것이다. 빌드툴이다 하지만 요즘에는 의존성들까지 전부 관리해주기때문에 라이브러리들을 알아서 의존성에 맞게 가져와 준다. 그래서 프로젝트의 build.gradle을 살펴보면 spring-starter-boot:2.3.4.RELEASE가 필요해 가져오면 여러 관련 라이브러리들을 가지고와 오류 없이 실행이 가능하도록 해준다. 그에 대한 예시를 위의 사진으로 확인 할 수 있고 나는 어디까지나 취미삼아 스프링을 공부하고 있기 때문에 웹 프로그래머로 취직을 준비하지 않는 이상 Gradle, Maven이 그런 역할을 하는구나 정도만 알고 있으면 될 것 같다.
(라이브러리를 보면 tomcat과 같은 웹서버가 내장되어 있는데 옛날에는 웹서버와 개발툴이 각각 독립적으로 되어있어 따로 설치하고 셋팅을 하고 했다고 한다.)
또한 라이브러리중 logging이라는 라이브러리가 있는데 그것을 사용해서 에러같은 것을 관리한다고 한다.
build.gradle의 모습인데 dependencies 부분에 처음에 프로젝트를 만들때 추가했던 thymeleaf, spring-web이 추가되어 있고 내가 이전에 포스팅 했던 자동 재시작 라이브러리의 의존성이 추가된 것을 확인할 수 있다. 앞으로도 이 파일을 통해 의존성을 추가하고 할 수 있다.
스프링 아무것도 손대지 않았지만 홈페이지 켜보기
build 프로젝트를 받은 다음 아무것도 손대지 않더라도 빌드&실행 버튼만 누르면 톰캣서버가 잘 열리고 들어가지는지 확인할 수 있다.
프로젝트를 만든 뒤 켜보면 (프로젝트이름 + Application.java) 라는 파일이 있을 것이다.
해당 파일을 사진 상의 좌측 초록 화살표를 누르거나 상단 메뉴에서 Run을 찾아 실행하면 서버가 열리게 된다.
(이때 사용되는 기본 포트는 8080포트이다.)
실행하면 사진과 같은 모습이 펼쳐지며 서버가 실행되고 localhost:8080 이라는 주소로 접속도 할 수 있다.
실행 하면 위와 같은 모습이 로딩되는데 아직 모습을 보여줄 html 파일이 없기때문에 디폴트 에러 페이지가 로딩된 것이다. 여기까지 따라왔다면 스프링을 시작할 준비가 되었다고 할 수 있다.
내가 웹에대해 누군가에게 알려줄 실력이 아니다보니 코드를 보여주며 구현되는 모습을 보여주기보다, 개념, 이론 위주로 포스팅을 이어나갈 계획이다.
스프링 시작할때 유용한 팁 & 에러 해결법