본문 바로가기
  • 기억의 유한함을 기록의 무한함으로✍️            예비 개발자가 꿈꾸는 공간 여기는 안나의 개발 블로그 💻

Programming/Spring9

[Spring] 객체 지향 설계와 스프링 이 글은 인프런에서 김영한 님의 "스프링 핵심원리 - 기본편"을 수강 후 공부한 내용을 정리한 게시글입니다. 부족한 부분이 있다면 언제든 지적 부탁드립니다. ✏️ 스프링 일반적으로 스프링은 좁은 의미의 Spring Framework를 일컫는다. 그러나 넓은 의미에서의 스프링은 Spring 생태계를 의미한다. 스프링 생태계는 다음과 같이 다양한 프로젝트들을 포함하고 있다. 스프링 프로젝트 종류 프로젝트 설명 Spring Data Data 연동을 위한 API를 제공, RDBMS와 NoSQL과 연동을 적은양의 코드로 처리 가능 Spring Cloud 마이크로 서비스 기반의 아키텍처에서 사용되는 모든 검증된 패턴을 구현 Spring Security 인증과 허가에 대한 기반 프레임워크를 제공하여 보안을 간단한 설.. 2024. 1. 28.
[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.
반응형