앞서 gradle 파일을 보면서 그 내부에는 우리가 필요한 기능을 불러오도록 라이브러리를 설정한다고 했다.

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

우리가 사용하고자 하는 라이브러리는 'thymeleaf', 'starter-web', 'starter-test'로 총 3가지이다.

그러면 이 라이브러리들이 보관된 '외부 라이브러리(External Libraries)'를 보도록 하겠다.

 

내가 사용하겠다고 설정한 라이브러리는 3개인데 프로그램이 알아서 로드한 라이브러리는 엄청 많다.

뭔가 잘못된 것일까?

 

의존성?

-Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다

더보기

적절한 예가 뭐가있을까 생각하다가 '밀키트'가 떠올랐다.

요즘 혼자사는 가구가 많아지면서 장을 많이 볼 수가 없는데, 1~2인용 밀키트(재로가 다 진공포장된 상품)가 인기있다.

집밥이 먹고싶어서 '부대찌개 밀키트', '된장찌개 밀키트', '김치찌개 밀키트' 총 3개의 밀키트를 주문했다.

나는 3개의 상품을 주문했는데, 각각 포장된 내부를 보니 구성품이 뭔가 많았다.

 

부대찌개 밀키트 - 햄1, 햄2, 햄3, 면사리, 파, 마늘, 김치, 콩
된장찌개 밀키트 - 된장, 두부, 애호박, 감자
김치찌개 밀키트 - 돼지고기, 김치, 고추가루, 마늘, 파, 두부

나는 부대찌개가 필요해서 주문을 했는데, 이를 만드는 재료들이 의존하게(?), 부가적으로, 필수불가결하게 따라오게 된다.

 

더보기

사과가 먹고싶어서 사과를 샀다.

그런데 사과가 만들어지기까지 어떤것들이 수반되어야할까?

 

토지, 비료, 사과묘목, 물, 날씨, 햇빛, 1년 시간, 관리인, 농약 etc...

 

=> 내가 필요한 라이브러리는 사과인데 그 사과를 만들기 위한 요소들이 외부 라이브러리로 다운되게 된다

라이브러리를 구성하는 하위 라이브러리

프로젝트를 실행해보면서 스프링 부트를 이해해보도록 하겠다.

@SpringBootApplication
public class Hello2Application {

    public static void main(String[] args) {
        SpringApplication.run(Hello2Application.class, args);
    }
// main매서드를 실행하면 Hello2Application라는 class를
// 어노테이션된 SpringApplication를 통해서 run시키게된다.
// @SpringBootApplication은 tomcat이라는 내부 웹서버를 내장하고 있다.
// 이를 내장 서버를 실행시키면서 스프링이 실행되는 것이다.
}

main 하위폴더의 HelloSpringApplication 파일을 더블클릭해서 활성화한 후, 실행을 해보도록 하겠다.

우측 상단의 초록색 재생버튼을 누르면 자체적으로 실행이 된다.

스프링부트, 버전 그리고 무서운 영어들(에러나서 hello2라는 새로운 파일로 작성)

실행 버튼을 누르면 영어로 뭔가 구동이 되는 모습이 보여진다.

이중 중요한 것은 Tomcat started on port(s): 8080부분으로 8080 port(포트)에서 뭔가 실행됐음을 알려주고있다.

 

localhost:8080 접속화면

웹브라우저를 통해서 localhost:8080에 접속하게되면 Error페이지가 나타나게 된다.

에러지만 성공한 것이다. 아무런 소스코드를 적지 않았기에 Error페이지가 구동된 것이다.

종료후 localhost:8080 재접속

이번에는 구동을 멈추고 localhost:8080에 재접속하면 서버에 접속할 수 없다는 창이뜨게된다.

이제 프로젝트 환경 설정을 마쳤다.

2번째로 알아볼 파일은 .gitignore이다.

.gitignore

.gitignore 파일은 Git을 쓰면서 코스 코드 관리를 해주어야 하는데, 이때 필요한 소스코드 파일만 업로드 시키고 불필요한 결과물 등은 업로드 되지 않도록 설정하는 파일이다.

HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

+ Recent posts