목록Spring (13)
Developer_Neo
스프링 컨테이너(Spring Container)(Spring IOC Container) Bean들의 생명주기(Life Cycle)를 관리한다 즉, Bean 생성, 관리, 제거 등의 역할을 담당한다. Spring Framework에서 IOC를 사용한다고 하였는데 IOC(제어의 역전)는 Spring Bean들의 생명주기를 관리하기 위해 사용한다. 스프링 컨테이너가 빈을 관리하는 과정은 DI(의존성 주입)가 이루어진 빈들을 BeanFactory와 ApplicationContext라는 2개의 컨테이너로 제어하고 관리한다. BeanFactory와 ApplicationContext는 인터페이스로 각 구현체가 여러개가 있다. 이 구현체를 사용하는 경우는 우리가 MVC패턴에 맞추어 코드를 작성하고, Test를 하기 위..
스프링 Framework의 3대 핵심 개념을 알아보자 1. IOC/DI (Inversion of Control/Dependency Injection) 1 - 1. IOC (Inversion of Control) 제어의 역전이라는 의미이다. 즉, 애플리케이션 흐름의 주도권을 Spring이 갖는다라는 것이다. 위의 말을 풀어서 설명하면, 우리가 알고리즘 문제를 풀때 DFS, BFS에 해당하는 메서드를 따로 작성하고 자바를 기준으로 main문에 적어서 작동시킨다. 하지만 IOC는 이것이 아니라 우리가 DFS, BFS에 해당하는 메서드를 적어 놓기만 하면, 알아서 해당 메서드 호출 주도권을 우리가 아닌 프로그램이 가진다라는 것이다. 또, 클래스 측면에서 보면, 하위 클래스에서 구현한 메서드들이 상위클래스에게 제..
앞선 글에서 2022.08.10 - [Spring] - [Spring] Spring Framework(스프링 부트, 스프링, 프레임워크와 라이브러리 차이점, POJO) [Spring] Spring Framework(스프링 부트, 스프링, 프레임워크와 라이브러리 차이점, POJO) Framework Vs Libarary 공통점 : 다른 누군가가 쓴 코드로써 우리가 가져다가 쓰는 것들이다. 차이점 : 누가 누구를 컨트롤 하는가인 제어권이다. 차이점에 대해 더 자세히 들어가면, 1. 자신이 모든 결 devloper-dreaming.tistory.com 핵심적인 것은 객체 지향 언어라는 강력한 특징을 살려내는 것으로 좋은 객체 지향 어플리케이션을 개발 할 수 있게 도와주는 프레임 워크다. 라는 글을 볼 수 있을..
Framework Vs Libarary 공통점 : 다른 누군가가 쓴 코드로써 우리가 가져다가 쓰는 것들이다. 차이점 : 누가 누구를 컨트롤 하는가인 제어권이다. 차이점에 대해 더 자세히 들어가면, 1. 자신이 모든 결정권을 가지고 있는 상태로 코드를 컨트롤 하는가? 2. 누군가 정해준 규칙에 따라 하는지? (Framework는 나의 코드를 가져간다.) 로 나눌 수 있다. 2022.08.03 - [Spring] - [Spring 입문] - 회원 관리 예제를 만들어 보자 [Spring 입문] - 회원 관리 예제를 만들어 보자 1. 비즈니스 요구사항을 정리 2. 회원 도메인 객체를 저장하고 불러올 수 있는 리포지토리 객체인 저장소 객체를 만들자 3. 회원 리포지토리가 정상 동작하는지 테스트 케이스 작성 4. ..
AOP란? Aspect Oriented Programming(관점 지향 프로그래밍)이다. 여러 객체에 공통적으로 적용할 수 있는 기능을 따로 정의해서, 다른 객체에 삽입해 코드의 재사용성을 높여주는 프로그래밍 기법 공통 관심 사항과 핵심 관심 사항으로 나뉘어지는데, 핵심 관심사항은 우리가 해왔던 회원 가입, 회원 조회등에 해당하고, 공통 관심 사항은 모든 메서드들에 대해 시간 측정하는 것으로 볼 수 있다. 공통 관심 사항을 핵심 관심 사항으로만 되어 있는 곳에 일일이 코드로 다 작성을 하게 된다면, 매우 번거롭다. 이에 공통 관심사항과 핵심 관심사항을 분리하기 위해 사용하는 것이 AOP이다. 즉, 코드들을 보았을 때 공통적으로 존재하는 코드들은 공통 관심 사항으로 분리해, 원하는 곳에 AOP로 적용할 수..
스프링 데이터 JPA란? JPA를 한 단계 더 추상화 시켜 개발 용이성을 상당히 올려주는 인터페이스 JPA말고 스프링 데이터 JPA를 사용하면, 리포지토리의 인터페이스만으로(구현 클래스 없이) 개발을 완료 할 수 있다. 반복 개발해온 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공해서 코드를 적을 것이 없다. Spring Data JPA는 Repository라는 인터페이스를 제공합니다. 이 Repository는 정해진 규칙으로 인터페이스를 선언하기만 해도 자동으로 내부에서 구현체를 만들어 동작시켜줍니다. 특히 자주 사용하는 매서드들(findAll(), save(), delete() 등...)은 별도로 선언하지 않아도 사용 할 수 있습니다. 우리는 이전의 글에서 JPA를 사용하였고, JpaMembe..
JPA란? Java Persistence API로 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음 반복적인 CRUD SQL을 처리해준다 SQL과 데이터 중심의 설계에서 객체 중심의 설계로 페러다임을 전환을 할 수 있다. JPA는 인터페이스만 제공되는 것이고 이것의 구현체로 Hibernate를 쓴다. 객체를 자바에서의 List인 메모리에 넣는 것처럼 JPA에 집어 넣으면, JPA가 중간에서 데이터베이스로 SQL날리고, 데이터베이스에서 데이터 가져오는걸 다 해준다. 장점 SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있음. (내부적으로는 쿼리를 생성하여 DB를 조..
이것을 보면서 2022.08.04 - [Spring] - [Spring 입문] - 데이터베이스 연동(spring boot + Mysql with build.gradle , applicatioin.properties) [Spring 입문] - 데이터베이스 연동(spring boot + Mysql with build.gradle , applicatioin.properties) 김영한님의 Spring입문 강의 내에서 database를 h2로 진행하였다. 하지만 나는 h2를 설치하기 싫어서 사용해왔던 Mysql으로 이용하였다. build.gradle 추가한 코드 dependencies { implementation 'org.springfram.. devloper-dreaming.tistory.com 잘 이해가 ..