컴포넌트 스캔과 자동 의존관계 설정의존관계한 객체가 다른 객체를 필요로 하는 관계를 의미한다.컨트롤러 등록package hello.hello_spring.controller;import hello.hello_spring.service.MemberService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;@Controllerpublic class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberServic..
비즈니스 요구사항 정리데이터: 회원 ID, 이름기능: 회원 등록, 조회아직 데이터 저장소 선정 X (가상의 시나리오)일반적인 웹 애플리케이션 구조컨트롤러 → 웹 MVC의 컨트롤러 역할서비스 → 서비스 클래스의 핵심 비즈니스 로직(ex: 중복 가입 불가)레포지토리 → 도메인 객체를 DB에 저장하고 관리도메인 → 비즈니스 도메인 객체회원 관리 예제의 클래스 의존 관계아직 데이터 저장소가 선정되지 않아서, 레포지토리는 인터페이스로 구현데이터 저장소는 RDB, NoSQL 등 다양한 저장소를 고민중인 상황개발을 진행하기 위해 초기 개발 단계에서 메모리 기반의 데이터 저장소 사용회원 도메인과 레포지토리 만들기domain/Member.javapackage hello.hello_spring.domain;public c..
웹을 개발하는 종류에는 크게 3가지 종류가 있다.정적 컨텐츠 → 하드코딩MVC와 템플릿 엔진 → JSP, PHP, HTML을 동적으로API정적 컨텐츠공식 문서에 Static Content 검색정적 컨텐츠는 모두 resources/static 에 작성된다.작동 순서웹 브라우저에서 서버에 요청을 보낸다.내장 톰켓 서버에서 관련 컨트롤러를 찾는다.관련 컨트롤러가 없으니 static 폴더에서 관련 정적 컨텐츠를 찾는다.컨텐츠를 브라우저로 반환한다.MVC와 템플릿 엔진MVCModel → 데이터와 비즈니스 로직 관리View → 화면을 그리는 요소Controller → 사용자의 요청을 처리하고 적절한 모델과 뷰 호출Controller @Controller public class HelloController { ..
View 환경설정Welcome Page 만들기resource/static/index.html → 도메인만 누르고 들어왔을 때 첫 화면Controller@Controllerpublic class HelloController { @GetMapping("hello") // /hello 치면 여기로 연결된다. public String hello(Model model) { // 여기서 Model은 MVC의 M이다. model.addAttribute("data", "hello!!"); // data:hello!! 인 셈이다. return "hello"; // resources/templates/hello.html을 찾아서 값을 넘겨라 }} // html에 thymeleaf ..
프로젝트 생성spring initializr를 통해 프로젝트를 생성한다.spring initializrProjectGradle - Groovy: Groovy 스크립트를 사용하는 Gradle 빌드 도구. (요즘 많이 사용한다)Gradle - Kotlin: Kotlin 스크립트를 사용하는 Gradle 빌드 도구.Maven: XML 설정 파일을 사용하는 Maven 빌드 도구.Spring BootSNAPSHOT → 아직 정식 출시 안된 버전정식 출시된 버전중에 가장 최신꺼 고르자스프링 부트 3.0을 사용하는 경우 JDK 17 이상을 사용해야 합니다.Project MetadataGroup - 기업명 같은거Arifact - 빌드의 결과물Dependencies불러 쓸 라이브러리를 선택하면 자동으로 코드 써준다. 인텔..