🍳

초보 개발자의 일상

Java/SpringBoot

SpringBoot(스프링부트) 수업 1일차

dev.jelee 2024. 9. 23. 23:30

# 수익을 위해 작성한 글이 아닙니다.

# 수업을 받고 내용을 정리하기 위해 작성한 글입니다.

# 수업 책: 점프 투 스프링부트

# https://wikidocs.net/160023 

# 2024-09-23


스프링부트 개발 준비하기

  • 자바와 STS(Spring Tool Suite) 에디터를 설치하고, 스프링 부트 프로젝트를 생성하기.

1. 스프링 부트란?

  • 웹 프로그램(웹 애플리케이션)을 쉽고 빠르게 만들 수 있도록 도와주는 자바의 웹 프레임워크이다.
  • 자바로 만든 웹 프레임워크 중 하나이다.

특징

  • 튼튼한 웹 프레임워크이다. (기본적으로 보안 공격을 잘 막아준다.)
    • SQL 인젝션, XSS(cross-site scripting), CSRF(Cross-Site Request Forgery), 클릭재킹(clickjacking)같은 보안 공격을 막아준다.
  • 톰캣(Tomcat)이라는 서버를 내장하고 있다. 그래서 따로 WAS를 설정할 필요가 없다.
  • jar 파일에도 톰캣 서버가 내장되어 실행된다.
  • 복잡한 설정을 자동화·단순화하여 누구나 쉽게 사용할 수 있는 프레임워크이다.
  • 만들어져 있는 기능이 많다. (로그인 기능, 페이징 기능 등등)
  • 몇 가지 규칙만 익히면 기존에 자바로 웹 프로그램을 작성하는 방식보다 빠르게 웹 프로그램을 할 수 있다.

2. 웹 프레임워크란?

  • 웹 프로그램을 만들기 위한 스타터 키트.

3. 용어

  1. 톰캣(Tomcat)
    • 클라이언트의 요청을 해석하여 그에 맞는 자바 프로그램을 실행한 후 그 결과를 응답해주는 웹 애플리케이션 서버.
  2. WAS
    • Web Application Server
    • 웹 애플리케이션과 서버 환경을 연결하는 중간 역할을 하는 소프트웨어 플랫폼.
    • 예: 사용자가 웹 브라우저로 서버에 요청을 보내면 WAS가 사용자의 요청을 해석하여 그에 맞는 서버 프로그램을 구동한 후 그 결과를 사용자에게 보여준다.
    • WAS 종류: 아파치 톰캣, 오라클 웹 로직(Weblogic), IBM 웹스피어(WebSphere), 제이보스(JBoss, 와일드플라이WildFly), 제우스(Jeus) 등등
  3. 보안공격 용어들
    • SQL 인젝션은 악의적인 SQL을 주입하여 공격하는 방법이다.
    • XSS는 자바스크립트를 삽입해 공격하는 방법이다.
    • CSRF는 위조된 요청을 보내는 공격 방법이다.
    • 클릭재킹은 사용자가 의도하지 않은 클릭을 유도하는 공격 방법이다.

스프링 부트 개발 환경 준비하기

1. JDK 설치하기

  • https://www.oracle.com/java/technologies/downloads/ 접속
  • 본인 컴퓨터 운영체제 맞게 JDK 다운로드 하기.
  • 수업은 Windows용 JDK 17을 다운로드하였음.
  • 다운로드 받은 JDK 설치하고 다음과 같은 경로에 저장한다.
  • C드라이브 > JAVA_HOME 폴더 생성 >  JDK 폴더 생성 > zulu17 폴더 생성 > JDK 17 설치

경로 참고.

2. JAVA PATH 설정

  • 시스템 환경 변수 편집 > 환경 변수 버튼 클릭 > 시스템 변수 영역에서 새로 만들기 > 변수 이름은 JAVA_HOME, 변수 값은 설치한 JAVA경로( zulu17 폳더로) 지정하여 저장

시스템 환경 변수 편집, 시스템 변수 참고.

 


스프링 부트 프로젝트 생성

1. Create new Spring Starter Project 클릭

Create new Spring Starter Project 클릭

 

2. Name, Group, Package 내용 이미지와 동일하게 수정 

  • Name : sbb / 프로젝트명
  • Group : com.mysite / 일반적으로 url 명으로 사용
  • Package : com.mysite.sbb / com.mysite 까지 Group이고 sbb는 프로젝트명이다.
  • 내용 수정 후 Next 버튼 클릭 

Name, Group, Package 내용 이미지와 동일하게 수정

 

3. Spring Web 선택 > Finish

Spring Web 선택 > Finish

 

!! 주의

만약에 아래 이미지처럼 에러가 났다면 jar 파일을 연결해주면 된다.

에러 메시지.

 

 

1) 상단 탭 메뉴에서 Window > Preferences 클릭

상단 탭 메뉴에서 Window > Preferences 클릭

 

 

2) Gradle 메뉴 클릭 > Java home  우측에 Browse... 버튼 클릭

Gradle 메뉴 클릭 > Java home  우측에 Browse... 버튼 클릭

 

 

3) 내가 설치한, 사용할 JDK가 있는 폴더를 선택 > Apply and Close 클릭

내가 설치한, 사용할 JDK가 있는 폴더를 선택 > Apply and Close 클릭

 


Class 생성하여 웹브라우저에 출력해보기

1. Class 생성해보기

  • sbb > src/man/java > com.mysite.sbb 패키지를 클릭 > 마우스 우클릭 > New > Class 클릭
  • Name을 HelloController로 수정 후 Finish 버튼을 클릭해 생성하기

Class 생성해보기(1)
Class 생성해보기(2)
HelloController.java 생성된 모습

 

2. 로컬서버를 실행시켜 웹브라우저에 화면 출력하기

  • @Controller, @GetMapping, @ResponseBody 어노테이션 사용하여 코드 작성
  • 상단에 ▶ 버튼을 클릭해서 서버 실행시키기
  • 웹브라우저에서 url 주소를 localhost:8080/hello 입력 후 엔터

1) @Controller, @GetMapping, @ResponseBody 어노테이션 사용하여 코드 작성

@Controller, @GetMapping, @ResponseBody 어노테이션 사용하여 코드 작성

package com.mysite.sbb;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello World";
    }
}

 

2) 상단에 ▶ 버튼을 클릭해서 서버 실행시키기

▶ 버튼을 클릭해서 서버 실행시키기

 

3) 웹브라우저에서 url 주소를 localhost:8080/hello 입력 후 엔터

웹브라우저에서 url 주소를 localhost:8080/hello 입력 후 엔터

 


cmd 창으로 ip 검색과 ping으로 요청해보기

1. cmd 창에서 ipconfig 명령어 입력 후 엔터

  • cmd 창에서 ipconfig 명령어 입력 후 엔터
  • IPv4 주소 . . . . . . . . : 192.168.0.21 이 내 컴퓨터 IP주소이다.

cmd 창에서 ipconfig 명령어 입력 후 엔터 (1)
cmd 창에서 ipconfig 명령어 입력 후 엔터 (2)

 

2. ping 명령어로 연결 요청해보기

  • ping 명령어 입력 후 뒤에는 연결할 IP주소를 입력하고 엔터를 치면 된다.

ping 명령어로 연결 요청해보기

 


Maven 자료

Maven Repository 웹사이트

 

 

 

'Java > SpringBoot' 카테고리의 다른 글

[MyBatis] useGeneratedKeys, keyProperty  (1) 2024.10.28
@Autowired  (0) 2024.10.23
Spring Bean (스프링 빈)  (0) 2024.10.23
@Controller, @RestController 차이  (0) 2024.10.23
SpringBoot(스프링부트) 수업 2일차  (0) 2024.09.24