JAVA언어/Spring(5)
-
MVC
Model-View-Controller(MVC) 패턴은 애플리케이션의 구조를 세 가지 주요 부분으로 나누어 개발하는 소프트웨어 디자인 패턴구조적 분리를 통해 유지보수성과 확장성을 높임.각각의 구성요소는 명확한 역할을 가지고 있으며, 서로 독립적으로 동작하도록 설계.spring이 웹 애플리케이션을 개발하는데 있어 MVC패턴을 가장 효율적으로 지원 1. Model 모델은 애플리케이션의 데이터와 비즈니스 로직 담당사용자로부터 받은 데이터를 처리하거나 데이터베이스와 상호작용을 통해 데이터를 조회하고 수정하는 작업모델은 사용자의 요청에 따라 상태 변경 및 데이터 제공(ex : 사용자 정보, 상품 목록 등과 같은 애플리케이션의 데이터를 포함하는 객체들이 모델) 역할: 애플리케이션의 상태를 나타내는 데이터와 그 데이..
2025.04.09 -
Spring Web
Spring Frame Work의 한 부분 자바 기반의 오픈소스 애플리케이션 프레임워크로 엔터프라이즈급 애플리케이션을 구축하기 위한 다양한 기능 제공특히 웹 애플리케이션을 위한 여러가지 도구와 기능을 제공 1. Spring MVC (Model-View-Controller)Spring Web의 핵심이 구조는 애플리케이션을 세 가지 주요 컴포넌트인 모델, 뷰, 컨트롤러로 나누어 개발하는 패턴웹 애플리케이션에서 HTTP 요청을 처리하고 적절한 응답을 반환하는 구조 제공 Model: 애플리케이션의 데이터를 나타내며, 일반적으로 POJO(Plain Old Java Object) 객체로 구성View: 사용자에게 보여지는 화면을 담당, JSP, Tymeleaf, FreeMarker 등 다양한 템플릿 엔진을 사용Con..
2025.04.09 -
spring 어노테이션
@Component 자동으로 빈 등록하기 위함 bean이름은 기본으로 MemberServiceImpl이 있으면, memberServiceImpl 이렇게 앞글자만 소문자로 바뀌면서 등록된다.직접 지정하고 싶을 때 이 조건을 지키면서 작성. @Autowired 의존성 자동 주입 @ComponentScanbasePackages = "hello.core" 이런식으로 패키지 시작 위치를 지정하면 더 빨리 탐색 가능basePackageClasses = AutoAppConfig.class 지정한 클래스 탐색 (미지정 시 @ComponentScan이 붙은 설정 정보 클래스에서 시작)그런데 프로젝트 시작 루트 위치에 @SpringBootApplcation를 작성하면 @ComponetScan이 포함되어 있음spring으로..
2024.06.26 -
Configuration
싱글톤여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 상태를 유지하게 설계하면 안된다.무상태(stateless)로 설계해야한다.- 특정 클라이언트에 의존적인 필드가 있으면 안된다.- 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다.- 가급적 읽기만 가능해야 한다.- 필드 대신에 자바에서 공유되지 않는, 지역변수, 파라미터, ThreadLocal 등을 사용해야 한다.스프링 빈의 필드에 공유 값을 설정하면 안된다. @Configurationbean이 singleton방식으로 유지할 수 있도록 도와준다.@Configuration이 없을 경우각각의 Bean에서 생성되는 인스턴스 중복 생성 됨 = 싱글톤을 보장 못함Spring 설정 정보는 항상 @Configuration을 사용하자
2024.06.24 -
스프링 빈 (@Autowired / ApplicationContext)
@Autowired장점간결한 코드:@Autowired는 의존성 주입을 간결하게 처리할 수 있도록 해준다. 필요한 빈을 클래스 변수에 직접 주입할 수 있어 코드가 간결해진다. 의존성 관리의 용이성:스프링이 빈의 생명 주기와 의존성을 자동으로 관리해준다. 따라서 개발자가 의존성 관리에 신경 쓸 필요가 없다.자동 주입:스프링이 자동으로 빈을 주입해주기 때문에 코드의 가독성이 높아진다. 필요한 빈을 자동으로 찾고 주입한다.단점유연성 부족:특정 조건에 따라 동적으로 빈을 선택하거나 주입하는 것이 어렵다. 정적인 의존성 주입에 적합하다.테스트 어려움:주입된 빈을 목(mock)으로 대체하기 어렵다. 이 경우 @MockBean 등을 사용하여 대체할 수 있지만, 추가 설정이 필요순환 의존성 문제:클래스 간의 순환 의존성..
2024.06.23