[ Development ]23 [Spring 스프링 기본] 스프링 컨테이너와 스프링 빈 1. 스프링 컨테이너 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며 생성된 자바 객체들에게 추가적인 기능을 제공한다. 스프링에서는 자바 객체를 빈이라고 부르기 때문에 스프링 컨테이너는 내부에 존재하는 빈의 생명주기를 관리하며 생성된 빈에게 추가적인 기능을 제공하는 것이다. xml, 어노테이션 기반의 자바 설정 클래스로 만들 수 있으며 스프링 부트가 등장하면서 대부분 사용하지 않게 되었다. 의존성 주입을 통해 애플리케이션의 컴포넌트를 관리할 수 있으며 서로 다른 빈을 연결하여 애플리케이션 빈을 연결하는 역할을 한다. 2. 스프링 컨테이너 구성 인터페이스 스프링 컨테이너는 Beanfactory 와 ApplicationContext 두 종류의 인터페이스로 구현되어 있다. 3. 스프링 컨테이너 생성 과정 .. 2023. 11. 21. [Spring 스프링 기본] 객체 지향 원리 적용 # 새로운 할인 정책 개발 다형성 덕분에 새로운 할인 정책 코드를 개발하는 것 자체는 아무 문제가 없다. 다만 적용하려고 할 때 클라이언트코드도 변경해야한다. 인터페이스와 구연 클래스 모두에 의존하기 때문이다. 이건 의존관계 역전 원칙을 위반한 것. # 관심사의 분리 클라이언트가 의존하는 서버 구현 객체를 직접 생성 및 실행하였으나 클라이언트 객체는 자신의 역할을 실행하는 것에만 집중하고 권한이 줄어들어 책임이 명확해졌다. appconfig는 애플리케이션 전체 동작 방식을 구성하기 위해서 구현 객체를 생성하고 연결하는 역할을 책임. # AppConfig 리팩터링 구성 정보에서 역할과 구현을 명확하게 분리하는 것이기 때문에 역할이 잘 드러나게 되고 중복을 제거할 수 있다. # SRP - 단일 책임 원칙 한.. 2023. 11. 14. [Spring 스프링 기본] 2. 핵심 원리 이해 1 - 예제 만들기 이클립스에서 오류가 발생해서 조금 화나는 마음으로 강의만 먼저 듣고 정리한 후 한결 가벼워진 마음으로 인텔리제이 설치중.. # 프로젝트 생성 start.spring.io 에서 다음과 같이 설정하여 생성 스프링부트 3.0 이상은 java 17 이상, jakarta 패키지로 변경해야함 # Gradle 전체 설정 build.gradle plugins { id 'org.springframework.boot' version '2.3.3.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java' } group = 'hello' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repos.. 2023. 11. 7. [Spring 스프링 기본] 1. 객체지향설계와 스프링 스프링 핵심 원리 - 기본편 (인프런 / 김영한 / 유료) # 스프링 - 자바 (= 객체 지향 언어) 언어 기반의 프레임 워크 - 객체 지향 언어가 가진 강력한 특징을 살려내 좋은 객체 지향 프로그램을 개발할 수 있도록 하는 프레임워크 # 객체 지향 요소 - 추상화 - 캡슐화 - 상속 - 다형성 : 인터페이스 / 구현 클래스 -> 클라이언트 변경 없이 서버 구현 기능을 유연하게 변경할 수 있다. -> 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 할 수 있도록 지원한다. -> 객체 지향의 핵심은 다형성이나 다형성 만으로는 구현 객체를 변경할 때 클라이언트 코드도 함께 변경되어 OCP, DIP를 지킬 수 없다. # 좋은 객체 지향 프로그래밍의 원칙 • SRP : 단.. 2023. 10. 22. [Spring 스프링 입문] JPA, AOP # 스프링 JdbcTemplate 순수 Jdbc와 동일한 환경설정을 하면 된다. 스프링 JdbcTemplate과 MyBatis 같은 라이브러리는 JDBC API에서 본 반복 코드를 대부분 제거해주만 SQL은 직접 작성해야 한다. package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframe.. 2023. 10. 17. [Spring 스프링 입문] 6. 스프링 DB 접근 기술 (1) * H2 데이터베이스 설치 // 프로젝트 루프에 sql/ddl.sql 파일 생성 // H2 데이터베이스에 member 테이블 생성 drop table if exists member CASCADE; create table member ( id bigint generated by default as identity, name varchar(255), primary key (id) ); * 순수 JDBC // build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' // 스프링부트 데이터베이스 연결 설정 추가 s.. 2023. 10. 10. 이전 1 2 3 4 다음 728x90