회원 웹 기능 - 홈 화면 추가 홈 컨트롤러 추가 (java/hello/hellospring/controller/HomeController.java) package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } 회원 관리용 홈 (resources/templates/home.html) Hello Spring 회원 기능 회원 가입 회..
2023.01.22 - [Spring/Study] - [스프링 입문] 3. 회원 관리 예제 - 백엔드 개발 [스프링 입문] 3. 회원 관리 예제 - 백엔드 개발 비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조 일반적인 웹 애플리케이션은 lgana1021.tistory.com 스프링 빈을 등록하는 2가지 방법 컴포넌트 스캔과 자동 의존관계 설정 자바 코드로 직접 스프링 빈 등록하기 컴포넌트 스캔과 자동 의존관계 설정 지금까지 만든 Member 서비스, 리포지토리, 객체 등에 화면을 붙여보자. 화면을 붙이려면 Member 컨트롤러와 뷰 템플릿이 필요하다. Member 컨트롤러는 Member 서비..
비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조 일반적인 웹 애플리케이션은 컨트롤러, 서비스, 리포지토리, 도메인 객체, DB로 구성된다. 컨트롤러: 웹 MVC나 API의 컨트롤러 역할 도메인: 주로 DB에 저장/관리되는 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등) 서비스: 비즈니스 도메인 객체를 이용해 핵심 비즈니스 로직 구현 (ex. 중복 회원가입 방지) 리포지토리: DB에 접근, 도메인 객체를 DB에 저장하고 관리 클래스 의존관계 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계한다. 데이터 저장소는 RDB, NoSQL 등등 다양한..
웹 개발 방법 정적 컨텐츠: 파일을 그대로 웹브라우저에 전달하는 것 MVC와 템플릿 엔진: 서버에서 프로그래밍해서 html을 동적으로 바꾸는 것 (대부분 이 방식 채택) API: json 등의 포맷으로 클라이언트에 데이터 전달하는 방식 정적 컨텐츠 스프링 부트에서 제공하는 정적 컨텐츠 기능은 다음과 같이 작동한다. static/hello-static.html 파일이 존재할 때, 웹 브라우저에서 localhost:8080/hello-static.html에 접속한 경우 1) 내장 톰캣 서버에서 스프링 컨테이너에 데이터 요청 2) 스프링 컨테이너는 hello-static 관련 컨트롤러가 있는지 탐색 (컨트롤러가 우선순위를 가짐) 3) 매핑된 컨트롤러가 없으므로 resources: static/hello-st..