반응형
목록
분류 전체보기 (292)
[꼼꼼한 개발자] 꼼코더
이전글 보기 : 07. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링이 동작하면서 생기는 일 ✅ 테스트 코드를 통한 확인 ex00 → src/test/java → 폴더에 org.zerock.sample.SampleTest 클래스 작성 SampleTest 클래스는 spring-test 모듈을 이용해서 간단하게 스프링을 가동시켜 위에서 설명한 동작들이 일어나게 한다. 이때 반드시 Junit은 4.10 이상의 버전을 사용해주도록 하자. @Runwith : 현재 테스트 코드가 스프링을 실행하는 역할을 할 것 💁🏻♂️ 결과 🙋🏻♂️ 결과에서 주목해야 하는 부분 new Restaurant()와 같이 Restaurant 클래스에서 객체를 생성한 적이 없음에도 객체가 생성 됐다. ..
🍃 스프링이 동작하면서 생기는 일 작성한 2개의 클래스와 ‘root-context.xml’이 어떻게 동작하는지 이해하기 위해서는(이전 글 참고) 스프링과 함께 시간의 순서대로 고민해 보아야 한다. 스프링이 동작한다는 가정하에 안에서 어떤 일들이 벌어지는지 그림으로 정리하면 다음과 같이 표현할 수 있다. 🎨 그림 이야기 설명 🎅🏻 ApplicationContext : "엣헴 나는 객체들을 관리해주는 컨텍스트지, 나는 root-context.xml라는 설정 파일 기준으로 할일을 정하지!" (코드 실행) 🎅🏻 ApplicationContext : "어디보자~(root-context.xml을 읽으며) 으흠 내가 관리할 객체는 요 두 놈인가?(Restarurant, Chef)" (@setter, @date 등 확..
💉 의존성 주입 테스트 작성된 프로젝트를 이용해서 간단하게 의존성에 대한 기능을 작성하고 테스트해보자. 예제의 내용은 레스토랑(Restaurant) 객체를 만들고 레스토랑에서 일하는 셰프(Chef) 객체를 주입하는 예재를 작성하려고 한다. 스프링에서는 ‘생성자를 이용한 주입’과 ‘setter 메서드를 이용한 주입’으로 의존성 주입을 구현한다. 구현시 설정방법 은 주로 XML이나 어노테이션을 이용해서 처리한다. 예제는 'Lombok' 라이브러리를 이용하여 setter 메서드를 자동으로 구현하고 spring-test 라이브러리인 'Log4j'를 이용하여 스프링의 동작을 테스트 한다. 따라서 pom.xml에서 Lombok 라이브러리와 Log4j 라이브러리를 추가후 진행 해보자. 👨🏻💻 실습 준비 (라이브러리..
🖐 스프링의 주요 특징 5가지 POJO 기반의 구성 의존성 주입(DI)을 통한 객체 간의 관계 구성 AOP(Aspect-Oriented-Programming) 지원 편리한 MVC 구조 WAS의 종속적이지 않은 개발 환경 👨🏻💻POJO (Plain Old Java Object) 기반의 구성 스프링은 성격 자체가 가벼운 ‘경량 프레임워크’ 이지만, 내부에서는 객체 간의 관계를 구성할 수 있는 특징을 가지고 있다. 스프링은 다른 프레임워크들과 달리 이 관계를 구성할 때 별도의 API 등을 사용하지 않는 POJO(Plain Old Java Object)의 구성 만으로 가능하도록 제작되어 있다. 쉽게 말해서 ‘우리가 일반적인 Java 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용’할 수 있다는 ..
👀 스프링 프레임워크의 뚜렷한 차별성에는 몇 가지가 있다. 🙋🏻♂️ 복잡함에 반기를 들어서 만들어진 프레임 워크 기업급 프레임워크들의 가장 큰 문제점은 ‘복잡성’이다. 다양한 기능을 가지도록 만들다 보니 하나의 기능을 위해 너무 많은 구조가 필요하다. 이러한 ‘복잡성을 해결하기 위해 나온 경량화된 프레임워크가 스프링’이다. 스프링은 일반적인 java 클래스와 인터페이스를 이용하는 구조이기 때문에 진입장벽이 낮다. EJB로 대표되는 복잡한 프레임워크에 비해 가볍기 때문에 빠르게 기업급 시스템을 작성할 수 있다. 👨🏻🏭 프로젝트의 전체 구조를 설계할 때 유용한 프레임워크 다른 프레임워크들은 웹 영역, 데이터베이스 영역 등 전문적인 영역에서만 지원하는 경우가 많았고 비즈니스 로직을 처리하는 부분에 대한 설..
🏃🏻 03장의 학습 목표 스프링 프레임워크를 이용해서 ‘의존성 주입’에 대한 이해와 테스트 스프링에서 XML을 이용하는 객체 관리 방법 스프링의 테스트 환경 구축 🧙🏻♂️ 스프링 프레임워크의 간략한 역사 프레임워크란 말 그대로 ‘뼈대나 근간을 이루는 코드의 묶음’이라고 할 수 있다. 왜 이 뼈대가 필요할까? 개발자의 개개인 능력차이가 존재한다. 따라서 개발자 구성에 따라 프로젝트 결과 역시 차이를 낳는다. 프레임 워크는 바로 이런 상황을 극복하기 위한 코드의 결과물이다. 프레임워크를 이용한다는 의미는 프로그램의 기본 흐름이나 구조를 정하고 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발하게 된다. 👀 프레임워크 최대의 장점은? 프레임워크의 가장 큰 장점은 개발에 필요한 구조를 이미 코드로 ..
❓ Transaction, 트랜잭션이란? 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미. 쉽게 말해 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 💡 데이터베이스의 상태 변경이란? SELECT, UPDATE, INSERT, DELETE와 같은 행동을 뜻한다. 👀 상황에 따라 달라지는 트랙잭션 이런 트랜잭션은 상황에 따라 여러 개가 만들어질 수 있다. 그 하나의 트랜잭션은 Commit (저장) 되거나 Rollback (철회)될 수 있다. 그 이유는 무엇일까? 예를 들어 우리가 문제풀이에 성공 시 포인트가 적립된다고 가정해 보자. 유저 A, B, C, D 가 문제를 풀어 각각 100 Point 씩 얻었고..
❓당신은 CBD, SOA가 어려운가? 🧱 CBD Component Based Devlopment의 약자로, 번역하면 컴포넌트 기반 개발이 된다. CBD는 애플리케이션을 통째로 개발하지 않고, 의미 있는 단위로 구분하여 그 단위를 하나씩 부품으로 개발해 마치 레고 블록을 쌓아 올리듯 부품을 결합해 제품을 완성하자는 방법론이자 기법이다. 제품이 아니다. 🧑🏻🔧SOA Service Orented Architecture의 약자로, 번역하면 서비스 중심 구조 또는 의역하면 서비스 지향 구조라고 할 수 있다. 개발자 입장에서의 개발이 아니라 실제 현실의 업무를 기준으로 개발하자는 사상이다. 제품이 아니다. 👀 그렇다면 이 같은 블록화 개발, 서비스 지형적인 개발이 이전에는 존재하지 않았던 것일까? 분명히 존재했었..