JAVA언어(28)
-
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 -
DI 컨테이너, IoC컨테이너
IoC 제어의 역전단어로 전혀 와닿지 않았던 내용을 김영한님의 강의를 듣고 코드를 보면서 완전히 이해했다. 해당 내용에 대해서 여전히 이해가 부족한 상태였는데 AppConfig를 활용해 프로그램의 흐름에 관한 모든 제어를 AppConfig가 해서 다른 클래스들은 어떤 내용이 넘어오든 각자의 역할만 집중할 수 있게 됐으며, 이것이 수정도 줄여주고 더 효율적인 코드 작성에 필수적인 내용인 것을 이해했다. AppConfig (IoC container / DI container)프로그램에 대한 제어를 맡기기 위한 DI 컨테이너인 AppConfig를 만들어서 맡긴다.
2024.06.23