Programming23 [Spring] 스프링 프레임워크(Spring Framework)의 구조 ✏️ 스프링 프레임워크 Java 기반 어플리케이션 개발을 지원하는 오픈소스 어플리케이션 프레임워크 Core Container Data Access/Integration Web AOP, Aspects, Instrumentation, Messaging, Test 1. Core Container 서블릿의 생명 주기를 관리하는 서블릿 컨테이너와 비슷하게 bean의 생성과 관리를 해주는 컨테이너 역할을 한다. 설명 모듈/아티팩트 Spring Core Core 모듈은 DI와 IoC 패턴을 적용할 수 있는 기본적인 클래스들을 포함하며 항상 직간접적으로 Spring Core에 대한 종속성을 가지게 된다. spring-core Spring Beans Bean 모듈은 모든 bean 객체의 생명주기를 관리한다.. 빈 팩토리.. 2024. 1. 28. [Spring 입문하기] Section 07. AOP ✏️ 핵심 관심사항(core concer)과 공통 관심사항(cross-cutting concer) 핵심관심사항 예) 은행서비스, 계좌서비스 , 소비자 소비스 등등 공통관심사항(부가기능) 예)보안, 트랜잭션, 로그인 인증 ✏️ AOP (Aspect Oriented Programming - 관점 지향 프로그래밍) 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화하여 재사용할 수 있도록 지원하는 것 기존 oop는 함수로 뺄 수 없는 공통적으로 처리하는 부가 기능 로직이 중복되는 한계가 있어 이를 해결하기 위해 AOP가 등장하게 되었다. 이런 로직을 어스펙트(Aspect)라는 모듈 형태로 만들어서 설계하고 개발하는 방법이다. 즉 핵심적인 기능에서 부가적인 기능을 분리하는 것.. 2024. 1. 25. [Spring 입문하기] Section 06. 스프링 DB 접근 기술 ✏️ H2 데이터베이스 자바 기반의 오픈소스 관계형 데이트베이스 관리 시스템 스프링 부트가 지원하는 인메모리 관계형 데이터베이스 인메모리 특징 : 검색이 빠름, 휘발성(전원이 꺼지면 데이터 삭제) 브라우저 기반의 콘솔 프로그램 적은 용량으로 설치 가능 Embedded mode(내장모드) & Server mode(서버모드) 지원 Embedded mode(내장모드) : Application 서버 실행 종료시 데이터 모두 휘발 Server mode(서버모드) : Application 서버 종료시에도 지속적으로 해당 데이터를 사용 로컬환경이나 테스트 환경에서 많이 사용됨. ✏️ 순수 JDBC JDBC(Java Database Connectivity) 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API J.. 2024. 1. 25. [Spring 입문하기] Section 04. 스프링 빈과 의존관계 ✏️ 스프링 빈(Bean) 빈(Bean)이란 스프링 컨테이너에 의해 재사용 가능한 소프트웨어 컴포넌트이다. 즉 스프링 컨테이너에 의하여 생성되고 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리한다. Spring Framework에서는 ApplicationContext.getBean() 등의 메서드로 직접 자바 객체를 가져올 수 있다. IntelliJ 에서는 Bean 인 경우 아래 사진처럼 왼쪽에 아이콘으로 표시된다. 스프링에서 스프링 빈을 인지하는 2가지 방법 스프링은 약속되어 있는 어노테이션이 붙어있는 클래스를 자동으로 인지한다. @Component어노테이션이 붙어있다면, 스프링이 자동으로 인지할 수 있게 된다. → 컴포넌트 스캔을 이용한 방식 Bean Configuration File.. 2024. 1. 25. [Spring 입문하기] Section 03. 회원 관리 예제 - 백엔드 개발 ✏️ 일반적인 웹 어플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 정리하고 관리 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이테 베이스에 저장하고 관리 ✏️ 테스트 케이스 작성 회원 레포지토리 메모리 구현체 테스트 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.a.. 2023. 7. 13. [Spring 입문하기] Section 02. 스프링 웹 개발 기초 목차 1. 정적 컨텐츠 2. MVC와 템플릿 엔진 3. API ➡️ 정적 컨텐츠 정적 컨텐츠 : html 을 그대로 화면에 보여주는 것 mvc와 템플릿 엔진 : html을 변형하여 보여주는것 API : html이 아닌 데이터를 던져 주는 것 ➡️ MVC와 템플릿 엔진 HelloController.java @Controller public class HelloController { @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } } url이 hello-mvc로 요청되면 he.. 2023. 7. 11. 이전 1 2 3 4 다음 반응형