후라이
Spring Boot - 스프링 입문 (1) 본문
이번 포스트에서는
스프링 부트 기초 지식
환경 설정
스프링이란?
:
자바 기반의 오픈소스 어플리케이션 프레임워크
-> 엔터프라이즈(대규모의 복잡한 데이터를 다루는) 어플리케이션 개발을 위한 다양한 기능과 서비스 제공
- 의존성 주입(Dependency Injection) : 객체 간의 의존성 관리 & 제어
- 제어의 역전 (Inversion of Control) : 제어의 역전을 통해 어플리케이션의 흐름을 프레임워크가 제어하도록 함
- 모듈화
- 관점 지향 프로그래밍 (AOP: Aspect-Oriented Programming) : 코드의 재사용성과 유지보수성 향상
- 트랜잭션 관리
- 데이터 액세스
-모델-뷰-컨트롤러(MVC) 아키텍처
- 보안(시큐리티)
스프링 부트란?
:
스프링 프레임워크의 일부로 개발
스프링 기반의 어플리케이션을 더 쉽게 개발하고 실행할 수 있도록 도와주는 프로젝트
- 스타터 패키지(Starter)
- 자동 구성(Auto-Configuration)
- 내장 서버 지원(ex. Tomcat, Jetty)
- 프로덕션 준비 기능
- 스프링 부트 스타터 사이트 : 원하는 스타터 패키지를 선택하고 설정을 생성 -> 초기 프로젝트 설정을 쉽게 시작
- 외부 설정 : 환경 설정을 외부로 분리하여 관리
스프링 프레임워크가 가지는 특성들은 코드 실습을 진행해보면서 익혀보도록 하자.
<인프런_스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술> 강의를 기반으로 합니다.
환경 설정
- Spring Boot 설치
- intellij 설치 (자바는 17이상으로 설치)
Spring initializr에서 GENERATE 된 파일을 다운
IntelliJ에서 open folder로 위에서 수행한 파일을 open
이렇게 기본적으로 만들어진 여러 패키지와 파일들을 볼 수 있다!
우선, main인 HelloSpringApplication을 Run 시켜본다.
-> 실행되지 않을 수도 있는데 (내가 그랬음) File을 눌러서
Build and run using : IntelliJ IDEA
Run tests using : IntelliJ IDEA
이렇게 바꿔주어야 제대로 실행이 된다.
실행시킨 후에 localhost:8080으로 접속하면 만들어진 웹 페이지를 볼 수 있는데
포트번호 application.properties에서 8090으로 바꿈
8080은 이미 쓰고 있어서,,
파일에 server.port = 8090 이라고 쓰면 됨!
이렇게 하면 1차적인 환경 설정은 끝!
라이브러리 살펴보기
src 폴더 밑에는
* main - java / resources
resources는 자바 파일 이외의 파일들이 들어간다고 생각하면 됨 (html, js, yml,,)
* test
test는 어플리케이션의 정확성, 성능, 안정성 등을 검증하기 위해 사용됨
-> 실제 어플리케이션 코드를 수정하지 않음
개발자가 작성한 코드가 의도대로 잘 구현되는지 "test"만 실행
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.1'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'hello' //우리가 설정한 소스
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17' //자바 버전
}
repositories {
mavenCentral() //밑에 의존성으로 추가한 라이브러리들을 mavenCentral()에서 가져온 것
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' //html만드는 템플릿 엔진
implementation 'org.springframework.boot:spring-boot-starter-web' //web project
testImplementation 'org.springframework.boot:spring-boot-starter-test' //요즘에는 test가 기본적으로 들어감
}
tasks.named('test') {
useJUnitPlatform()
}
build.grdle code
1. dependencies : 의존 관계를 끌어옴
Gradle: org.sprintgraework.spring-boot:sprint-boot-starter-web
나는 starter만 필요하지만 starter도 다른 라이브러러와 의존함 -> core까지 끌어다 옴
# Gradle은 의존관계가 있는 라이브러리를 함께 다운로드한다.
"스프링 부트 라이브러리"
- spring-boot-start-web
- spring-boot-starter-tomcat : 톰캣(웹서버)
- spring--webmvc : 스프링 웹 MVC
- spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진 (View)
- spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅
-spring-boot
-spring-core
spring-boot-starter-logging
- logback, slf4j
"테스트 라이브러리"
- spring-boot-stater-test
-junit : 테스트 프레임워크
-mockito : 목 라이브러리
- assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
-sprint-test : 스프링 통합 테스트 지원
cf) 실무에서는 log를 쓰지 system.out.println() 은 안 씀
--> log가 오류 모으기도 편하고 실무에서 유용
ch.qos.logback:logback-classic:1.2.3
org.sif4:jul-to-sf4j:1.7.30
'Spring' 카테고리의 다른 글
[Spring Boot] - H2 데이터베이스 연결 / Database not found (0) | 2024.02.12 |
---|---|
[Spring Boot] - 스프링 입문 (5) (1) | 2024.01.21 |
[Spring Boot] - 스프링 입문 (4) (0) | 2024.01.21 |
Spring Boot - 스프링 입문 (3) (0) | 2024.01.07 |
Spring Boot - 스프링 입문 (2) (1) | 2024.01.07 |