JVM (Java Virtual Machine, 자바 가상 머신)
컴파일해서 나온 결과인 Java 바이트코드를 기계어로 변환하는 역할을 합니다.
JRE (Java Runtime Environment, 자바 실행 환경)
JVM 과 JAVA를 실행하는 역할을 하며 동작에 필요한 라이브러리를 담고있습니다.
JDK (Java Development Kit, 자바 개발 키트)
JAVA 개발을 위해서는 JDK의 설치가 필요하며 JRE도 포함하고 있습니다.
JDK 버전을 LTS (Long Term, 긴 기간 동안 사용, 안정적인 버전) 한 버전에 맞춰 설치
(최근에는 JDK 17 권장)
인터넷이란?
- TCP / IP 통신을 기반으로 연결된 수많은 컴퓨터가 이루는 연결망
- 연결된 컴퓨터 들이 서로 정해진 규칙을 바탕으로 데이터를 주고 받는것
웹 개발 이란?
인터넷 서비스인 웹서비스를 개발하는 행위를 웹 개발이라고 한다.
클라이언트 - 서버 아키텍처
인터넷은 클라이언트 - 서버 아키텍처를 기반으로 동작하며
📍 클라이언트 는 웹 브라우저와 같은 애플리케이션을 통해 페이지를 "요청"
📍 서버 는 해당 요청에 대한 적당한 "응답" 을 하는 주체 (페이지 반환)
우리가 흔히 알고 있는 인터넷의 위치를 나타내는 주소입니다.
URL 예시
https://www.jaewon.com/search?q=keyword&page=1
- 프로토콜 : HTTPS
- 호스트 :
www.jaewon.com- 경로 : /search
- 쿼리 파라미터 : q=keyword, page=1 (페이지 번호가 1인 검색결과 페이지)
웹 개발에는 기본적인 틀이 있습니다. 받을수 있는 요청을 정의 하고, 요청에 대한 응답을 정의하는 것입니다.
이런 반복적인 작업을 줄이기위해 선배 개발자들이 개발에 필요한 기능들을 모아놓은것을 Framework(프레임워크) 라고 합니다.
👀 ex ) Django (파이썬) SpringFramework (자바)
- 일반적인 구조와 패턴을 제공하여 개발자들의 생산성과 개발시간을 단축
- 테스트, 디버깅과 같은 요구사항에대한 해결책을 제공해줘 품질을 유지
Spring 애플리케이션을 더 효율적으로 작성하고 관리할 수 있도록 도와줍니다.
@Autowired, @Service 등으로 사용할수있습니다.오늘은 간단하게만 배웠으며, 추후에 자세히 다룰 예정 이라고 합니다.
- 간단하게 말하여 일반적인 객체지향 클래스는 개발자가 new 연산자로 객체를 생성하고 배치하고 사용해야합니다. 하지만 Spring 에서는 new 연산자 사용없이 객체를 관리하지않고 사용할수 있습니다.
Spring MVC에서 C (Controller) 이며 웹 애플리케이션의 요청 매핑과 처리를 담당합니다.
✔ @Controller 어노테이션이 적용된 클래스는 Spring에 의해 스캔되어 빈으로 등록된다.
@Controller
public class DemoController {
// return : 경로에 맞는 templates 패키지의 html 파일 반환
// http://localhost:8080/home
@RequestMapping("home")
public String home() {
return "home.html";
}
// http://localhost:8080/profile
@GetMapping("profile")
public String profile() {
return "profile.html";
}
// http://localhost:8080/blog
@RequestMapping(value = "blog", method = RequestMethod.GET)
public String blog() {
return "blog.html";
}
}
@RequestMapping(value = "blog", method = RequestMethod.GET)@GetMapping("blog")❗❗❗ 하지만 차이점이 있습니다.
@RequestMapping(value = " ", method = RequestMethod.POST)
@RequestMapping(value = " ", method = RequestMethod.PUT)
@RequestMapping()은 GET, POST, PUT, DELETE 등
메소드 방식을 지정할수 있다는 것입니다.
@GetMapping() 은 그중에 하나의 방식인 요청만을 처리하며
따라서 단순히 요청만을 처리할경우에는 @GetMapping()을 사용하여 간결하고 명확한 코드로 작성할수 있습니다.
Spring 과 SpringBoot의 차이
Spring, SpringFramework 라고도 하며 Java 기반의 프레임워크 입니다.
- Spring 을 사용하면서 IOC (제어의 역전), DI (의존성 주입), AOP (관점 지향 프로그래밍) 의 유연한 개발이 가능해졌습니다.
하지만 스프링 프레임워크는 기능이 많은만큼 환경설정이 복잡한 편입니다.