dev/백엔드

백엔드 입문하기 : 0장 개발환경 구축

wosrn 2024. 8. 17. 17:26

남은 방학동안 무엇을 할까 하다가 백에 슬며시 입문해보기로 했다

 

https://product.kyobobook.co.kr/detail/S000201766024

 

스프링 부트 3 백엔드 개발자 되기: 자바 편 | 신선영 - 교보문고

스프링 부트 3 백엔드 개발자 되기: 자바 편 | ★ 자바 백엔드 개발자가 되고 싶다면 ★ 자바 언어 입문 그다음에 꼭 보세요실력을 갖춘 개발자로 성장하려면 시작이 중요합니다. 그래서 이 책은

product.kyobobook.co.kr

 

동기가 빌려준 "스프링부트3 백엔드 개발자 되기 - 자바편" 을 2주간 훑어볼 예정이다

 

0장. 개발 환경 구축하기

0장에서는 인텔리제이 설치 후 스프링 프로젝트 생성 / 포스트맨 설치 등의 기초작업을 한다

그치만 역시 책처럼 모든게 한번에 설치되지 않았슴

인텔리제이에서 그레이들 프로젝트를 스프링부트3 프로젝트로 바꾸는 과정에서, build.gradle 파일을 수정하고 새로고침을 눌렀을 때 에러가 발생했다. 이번 에러는 현재 jjvm 버전이 17보다 낮아서 생긴 문제였다

 

  • IntelliJ 프로젝트 SDK 설정 변경:
    • IntelliJ에서 File > Project Structure 메뉴로 이동합니다.
    • Project 탭에서 Project SDK를 Java 17로 변경합니다.
    • Modules 탭에서도 각 모듈의 SDK가 Java 17로 설정되어 있는지 확인합니다.
  • Gradle JVM 변경:
    • IntelliJ에서 File > Settings > Build, Execution, Deployment > Build Tools > Gradle로 이동합니다.
    • Gradle JVM을 Java 17로 설정합니다.

이 두가지를 해주었더니 해결되었다

 

 

책에선 학습을 위해+커뮤니티 버전이라서 그레이들 프로젝트를 생성하여 스프링부트3으로 바꾸는 방식을 설명하는 것 같은데, 바로 스프링부트3 프로젝트를 생성하는 방법도 궁금했다. 

 

서치해보니 https://start.spring.io/ 라는 사이트에서 프로젝트를 생성하여 받아 쓸 수 있다고 한다. (인텔리제이 커뮤니티 버전의 경우)

 

* build system의 그레이들 vs 메이븐 : 소스코드를 이용해서 실행 가능한 애플리케이션을 생성하는 과정을 자동화하는 프로그램(빌드도구) - 의존성 내려받기, 코드 패키징, 컴파일, 테스트 실행 등이 포함되어 있다. 책에 의하면 요즘은 그레이들을 많이 쓰는 추세라고 한다. (메이븐에 비해 가독성 좋고 설정 간단, 빌드와 테스트 속도가 더 빠르다고 한다)

 

 

https://dev-coco.tistory.com/65

 

메이븐(Maven)과 그래들(Gradle)의 개념 및 비교

스프링과 스프링부트를 공부 하려던 중 maven과 gradle을 알게되었습니다. maven과 gradle이 빌드관리도구인 것은 알고있지만 자세한 개념은 모르기에 maven과 gradle 각각의 개념과 정확한 차이점을 알

dev-coco.tistory.com

 

 

이후 위 사진과 같이 미리 생성된 me.jh 패키지 밑에 새 패키지를 생성하고 (이름은 그룹이름.프로젝트이름), 이 패키지에 스프링부트를 실행할 java 용도의 클래스를 만든다. 모든 프로젝트엔 메인 클래스가 있어야하고, 우리는 방금 만든 클래스를 메인 클래스로 사용하기 위해 코드를 작성한다.

 

만약 실행과정에서 ~finished with non-zero exit value1 과 같은 오류가 생기면 위의 설정에서 buildand run using, run tests using을 모두 gradle(default)에서 intellij iea로 바꾸면 된다.

 

 

그리고 또다시 마주한 에러

 

*************************** APPLICATION FAILED TO START ***************************

Description: Web application could not be started as there was no org.springframework.boot.web.servlet.server.ServletWebServerFactory bean defined in the context.

 

라는 에러가 발생했다. 서치해본 결과 @SpringBootApplication 애노테이션을 붙이지 않아서 발생한 거였다

 

*@SpringBootApplication 애노테이션이란?

먼저 애노테이션이란, 사전적 의미로는 주석이라는 뜻이다. 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다. 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다. (meta data : 데이터를 위한 데이터) 애노테이션의 주요 역할은 정보제공, 컴파일러 지시, 런타임 처리 등이다. 

@SpringBootApplication 애노테이션은 스프링 부트 애플리케이션을 정상적으로 시작하는 데 필요한 핵심 설정을 포함하고 있기에, 메인 클래스에 붙여주지 않으면 에러가 난다.

 

 

 

 

아무튼 스프링부트3 애플리케이션 실행까지 성공했다.

 

 

*단축키 소개

컨f : 현재 파일에서찾기

컨+shift+f : 전체 파일에서 찾기

컨+r : 현재 파일에서 바꾸기

줄복사 : 컨d

shilt+f10 : 실행

shift+f9 : 디버그 모드로 실행

shift+컨+alt+t : 리팩토링

컨+alt+o : 사용 안하는 임포트문 삭제

shilt+ctrl+t : 테스트 생성/이동