Spring

· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션7 스프링 MVC - 웹 페이지 만들기◼️ 요구사항 분석 상품 도메인 모델상품 관리 기능 상품 ID 상품명 가격 수량 상품 목록 상품 상세 상품 등록  🟢 부트스트랩HTML 화면 개발은 부트스트랩을 사용했다.부트스트랩을 다운로드 받고 압축을 풀자. 이동: https://getbootstrap.com/docs/5.0/getting-started/download/ Compiled CSS and JS 항목을 다운로드, 압축을 출고 bootstrap.min.css 를 복사해서 다음 폴더에 추가해준다.resources/static/css/bootstrap.min.css 🪄참고부트스트랩(Boo..
· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션6 스프링 MVC - 기본 기능 ◼️ 로깅 간단히 알아보기 SLF4J는 인터페이스이고, 그 구현체로 Logback 같은 로그 라이브러리를 선택한다. 실무에서는 스프링 부트가 기본으로 제공하는 Logback을 대부분 사용한다. 사용예시 import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; ... //@Slf4j @RestController public class LogTestController { private final Logger log = LoggerFactory.getLogger(getClass()); @RequestMap..
· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션5 스프링 MVC - 구조 이해 ◼️ 스프링 MVC 전체 구조 🟢 DispatcherServlet 스프링 MVC 핵심, 웹 요청 처리 주체 스프링 MVC의 프론트 컨트롤러 스프링 부트는 내부적으로 DispatcherServlet을 자동으로 등록하고, 모든 경로(/)에 대해 매핑 🟢 DispatcherServlet 구조 DispatcherServlet → FrameworkServlet → HttpServletBean → HttpServlet // 상속구조 🟢 DispatcherServlet 요청 흐름 서블릿이 호출되면 HttpServlet 이 제공하는 service() 가 호출됨 스프링 MVC는 DispatcherServlet 의 부모인..
· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션4 MVC 프레임워크 만들기 ◼️ 프론트 컨트롤러 패턴 소개 🟢 FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 요청을 받음 (나머지 컨트롤러는 서블릿 사용X) 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 입구를 하나로 → 공통 처리 가능 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있다. ◼️ 프론트 컨트롤러 도입 - v1 프론트 컨트롤러를 단계적 도입해보자. 컨트롤러 인터페이스를 도입한다. package hello.servlet.web.frontcontroller.v1; public interface ControllerV1 { void proces..
· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션3 서블릿, JSP, MVC 패턴 ◼️ 회원 관리 웹 애플리케이션 요구사항 회원 도메인 모델 @Getter @Setter public class Member { private Long id; private String username; private int age; public Member() { } } 회원 저장소 /** * 동시성 문제가 고려되어 있지 않음, 실무에서는 ConcurrentHashMap, AtomicLong 사용 고려 */ public class MemberRepository { private static Map store = new HashMap(); private static long sequence = 0L; p..
· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션2 서블릿◼️ Hello 서블릿@ServletComponentScan: 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan 을 지원@ServletComponentScan // 서블릿 자동 등록@SpringBootApplicationpublic class MvcLecture1Application { public static void main(String[] args) { SpringApplication.run(MvcLecture1Application.class, args); }} servlet http 요청이 오면 Servlet Container가 Request,Respo..
· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션1 웹 애플리케이션 이해 ◼️ 웹 서버, 웹 애플리케이션 서버 웹은 HTTP 기반이며, HTTP 메시지에 모든 것을 전송한다. 🟢 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 🟢 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함+ (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat) Jetty, Undertow Web ser..
· Spring
[Spring] 스프링 핵심 원리 - 기본편 섹션 9 빈 스코프 ◼️ 빈 스코프란? 빈은 기본적으로 싱글톤 스코프 🟢 스코프 싱글톤: 기본 스코프, 스프링 컨테이너 시작 ~ 종료까지 유지 (가장 넓은 범위) 프로토타입: 프로토타입 빈 생성 ~ 의존관계주입까지만 관여 🟢 웹 관련 스코프 request: 웹 요청이 들어오고 나갈때 까지 유지 session: 웹 세션이 생성되고 종료될 때 까지 유지 application: 웹의 서블릿 컨텍스트와 같은 범위로 유지 컴포넌트스캔 자동등록 @Scope("prototype") @Component public class HelloBean {} 수동등록 @Scope("prototype") @Bean PrototypeBean HelloBean() { return new H..
· Spring
[Spring] 스프링 핵심 원리 - 기본편 섹션 8 빈 생명주기 콜백 💨 빈 생명주기 콜백 시작 데이터베이스 커넥션 풀이나, 네트워크 소켓등은 객체의 초기화와 종료 작업이 필요하다. 이번시간에는 스프링을 통해 이러한 초기화 작업과 종료 작업을 어떻게 진행하는지 예제로 알아보자. 간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정한다. 이 NetworkClient 는 애플리케이션 시작 시점 connect() 를 호출해서 연결을 맺고, 애플리케이션이 종료되면 disConnect() 를 호출해서 연결을 끊어야 한다. public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호..
· Spring
[Spring] 스프링 핵심 원리 - 기본편 섹션 7 의존관계 자동 주입 💨 다양한 의존관계 주입 방법 💚 의존관계 주입법 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 생성자 주입 생성자 호출시점에 딱 1번만 호출 보장 불변, 필수 의존관계에 사용 스프링빈에서 생성자가 딱 1개만 있으면 @Autowired를 생략해도 자동 주입된다. @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } 수정자 주입(set..
고쩡이
'Spring' 카테고리의 글 목록 (4 Page)