교수님이 쓰라고 하셔서 쓰는 그런데 은근 재밌는 듯

JAVA

[JAVA] Spring Boot - 1

shinyunha 2025. 11. 18. 15:36

기본 용어

Spring

자바 기반 웹 애플리케이션 개발을 위한 오픈소스 프레임워크

설정이 복잡함

 

Spring Boot

Spring 프레임워크를 쉽게 사용할 수 있게 해주는 도구 (일종의 템플릿)

 

REST API (REpresentational State Transfer API)

REST: 웹에서 데이터를 주고받기 위한 표준 아키텍쳐 스타일, HTTP 프로토콜 기반

API(Application Programming Interface): 프로그램과 프로그램을 연결하는 일종의 프로토콜

REST API: REST 원칙을 따라 설계된 웹 기반 API

 

빌드 도구

빌드: 다운로드, 컴파일, 링크, 패키징 등 어플리케이션 제작에 필요한 전반적인 과정

빌드 도구: 빌드 과정에서 필요한 외부 라이브러리를 알아서 관리해줌

 

eg)

Gradle: 빌드 속도가 Maven에 비해 10~100배 가량 빠름, 멀티 프로젝트 빌드 지원 (주입 방식)

Maven: 정해진 Lifecycle에 의하여 작업을 수행, 전반적인 프로젝트 관리 기능을 포함 (상속 방식)


Spring Boot 프로젝트 생성하기

잘 해야한다! 5번 다시 생성했다....

  • Group Id는 도메인을 거꾸로 적음 (이게 패키지구조가 됨)
  • Type: Gradle - Groovy
  • Pakaging: Jar
  • Java Version: 21
  • 의존성: Spring Web 선택

프로젝트 구조


웹 주소: http://127.0.0.1:8080/

index.html에 들어간 내용이 기본 웹페이지(뒤에 아무것도 안 붙은 거)가 됨

@RestController
public class HelloController {
	//주소 맨 뒤에 web이 들어가면 이게 출력
	@RequestMapping("/web") 
	public String hello() {
		return "Hello Spring!!";
	}
	//주소 맨 뒤에 java가 들어가면 이게 출력
	@RequestMapping("/java")
	public String hi() {
		return "안녕 스프링";
	}
	
	public static void main(String[] args) {
		System.out.println("안녕 스프링!!");
	}
}

기본 어노테이션

@SpringBootApplication 일종의 main, 애플리케이션의 시작점, 보통 뭐시기Application 클래스 앞에 붙어있음
@RestController REST 응답을 반환하는 컨트롤러, 보통 뭐시기 Controller 클래스 앞에 붙어있음
@Service 비즈니스 로직, 보통 뭐시기 Service 클래스 앞에 붙어있음
@RequestMapping GET/POST 등 HTTP 요청을 매핑
@GetMapping GET 요청을 처리하는 메서드 앞에 붙여서 매핑
@PostMapping POST 요청을 처리하는 메서드(컨트롤러에 있음) 앞에 붙여서 매핑
@RequestParam 파라미터 받아올 때, 파라미터 앞에 붙임 
@PathVariable url 경로 일부를 변수로 받아옴
@Autowired 생성자, Setter 없어도 자동으로 의존성을 주입해줌, 주입할 객체 선언 앞에 붙임

@SpringBootApplication
public class HelloMassageApplication {
	
	private final GreetingController greetingController = new GreetingController();

	public static void main(String[] args) {
		SpringApplication.run(HelloMassageApplication.class, args);
	}

}

HelloMessageApplication

@RestController
public class GreetingController {
	@Autowired
	private GreetingService greetingService;
	
	@PostMapping("/hello")
	public String sayHello(@RequestParam(name ="name") String name) {
		System.out.println(name);
		return greetingService.getGreeting(name);
	}
}

GreetingController

@Service
public class GreetingService {
	public String getGreeting(@RequestParam("name") String name) {
		return "안녕하세요! "+ name +"님, 오늘도 좋은 하루 보내세요^^";
	}
}

GreetingService 

<html>
<body>
	<meta charset="UTF-8">
	<form method="post" action="http://localhost:8080/hello", accept-charset="UTF-8">
		<input type="text" name="name" value="이름을 입력하세요"/>
		<button type="submit">보내기</button>
</html>

user.html

웹 주소: http://127.0.0.1:8080/user.html

패키지 이렇게 잘 나눠두기


실행결과


소감

코드를 많이 치지 않았는데 뚝딱 입출력이 가능해서 신기했다!

html은 따로 공부해야하는 것 같다. JavaScript? CSS?도?

혼자 웹페이지 만들어보려고 찾아봤을 떄 REST API? 그게 뭔데ㅜㅜ 하고 그만뒀었는데 이제 뭔지 안다. 단어 하나 알았는데 똑똑해진 기분이다. 프로젝트 구조 저 밑에 있는 파일들이 뭔지 다 알게 되는 그날까지....화이팅!!!!

'JAVA' 카테고리의 다른 글

[마피아] Start Sequence  (0) 2025.11.21
[마피아] Join Sequence  (0) 2025.11.21
[JAVA] DB  (0) 2025.11.16
[JAVA] Network & Socket  (0) 2025.11.04
[JAVA] GUI & Thread - 알낳기  (0) 2025.10.31