build.gradle에 있는 의존성은 뭔가 생각하다 복습 겸 지금까지 배운 spring 개념 알고 있는 것 간략하게 정리해 봄..
JAVA 언어를 기반으로 만든 개발자가 어플 개발 후 서버 배포를 편리하게 도와주는 프레임워크
build.gradle 에 의존성만 추가하면 스프링 부트가 알아서 내장 로컬 서버(Tomcat) 를 할당한 후 바로 실행을 가능하게 도와준다.
implementation 'org.springframework.boot:spring-boot-starter-web' // 웹 어플리케이션 개발용
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // JPA 사용 시
testImplementation 'org.springframework.boot:spring-boot-starter-test'
...
(그냥 intelliJ에서 new Project 에서 spring boot로 시작하면 됨!)
Spring Boot는 Spring Framework에서 업데이트 된 버전으로, 기존에서 어렵고 번거로운 부분들이 간단하게 바뀜.| 항목 | Spring Framework | Spring Boot |
|---|---|---|
| 설정 방식 | XML, 복잡한 Java Config | 대부분 자동 설정 (자동 빈 등록 등) |
| 서버 실행 | 외부 Tomcat 설치 필요 | 내장 Tomcat 자동 실행 |
| 의존성 관리 | 수동으로 추가 | starter로 간편하게 관리 |
| 실행 방식 | 복잡한 빌드 필요 | main() 실행으로 바로 작동 |
| 개발 속도 | 느림, 번거로움 | 빠르고 편리함 |
현재 실무에선 대부분 Spring Boot 를 쓰기에 Spring= Spring Boot 라고 생각해도 됨.
이 위에 JPA, Security, Redis, Kafka, MySQL, Swagger 대부분 프로그램 연동 가능.
JAVA는 앱을 만들기 위한 프로그래밍 언어
옛날 옛적 개발자들은 JAVA만으로 API, DB연동, 서버 구현과 배포까지 모든 걸 하나하나 코드로 작성해내야했음
실제 사용자에게 개발한 웹/앱을 배포하려면 24시간 늘 켜져있는 서버컴에서 서버를 대여해야함(ex)aws)
그걸 Spring Boot에서는 톰캣 내장 서버로 연동시켜줘서 배포 전 테스트를 간편하게 가능하게 해줌(로컬 서버라서 localhost:8080 / 도메인은 정식 서버로 배포할 때!)
++
서버에서 데이터를 주고받을 때 쓰는 간편한 형식.
key:value 으로 구성되어 있음
JAVA 객체를 JSON 언어로 바꾸는 것= 직렬화(요청)
JSON 언어를 다시 JAVA 객체로 바꾸는 것 = 역직렬화(응답)
public class User {
private String name;
private int age;
}
이 객체를
{
"name": "홍길동",
"age": 25
}
이 형태로 변환시켜 값을 추가해 요청을 보낸다.
현재 내가 인텔리제이로 하고 있는 것: spring boot를 이용해서 java언어로 앱 개발 코드를 작성한 후, spring boot가 자동 연결시켜 준 톰캣 서버 이용해서 postman에서 java객체를 json으로 직렬화해서 내가 작성한 로직대로 요청을 보내고 응답이 맞게 오는지 확인하는 것..

아뇨?ㅠ0ㅠ