[Spring] 5. 좋은 객체지향 프로그래밍이란 Ⅱ : 실습편 - 회원 도메인
·
BackEnd/Spring 🍃
1. 요구사항 정의하기이번 장에서는 이전에 예고드린 데로 앞 장에서 다룬 이론적인 내용을 적용해 보기 위해서 회원별로 주문 및 할인정책을 적용하는 예제를 만들어 보겠습니다. 참고로 이번 예제에서는 Java 만을 사용해서 예제를 구현해 보고, 이후에 스프링을 어떻게 바꾸는 지를 같이 알아볼 예정입니다.시작에 앞서 먼저 전체적인 밑그림을 그리기 위해 요구사항을 정의하는 것부터 시작하겠습니다. 이번 예제에서는 회원에 대한 도메인과 주문/할인 정책에 대한 도메인으로 각각 나눠서 살펴볼 것입니다. 먼저 회원에 대해서는 아래와 같은 요구사항을 요청했다고 가정해 봅시다.[비즈니스 요구사항 - 회원]1. 회원을 가입하고, 조회할 수 있다.2. 회원은 일반 등급과 VIP 등급이 있다.3. 회원 데이터는 자체 DB를 구축..
[Spring] 4. 좋은 객체지향 프로그래밍이란 Ⅰ : 이론편
·
BackEnd/Spring 🍃
1. 다시 객체지향 프로그래밍시작하기에 앞서 여러분이 생각하는 좋은 객체지향 프로그래밍은 무엇인가요? 각 기능별로 구분해서 사용하는 것? 모든 것을 클래스안에 정의해서 필요에 따라 해당 클래스의 객체를 불러와 사용하는 것? 여러가지 생각이 들겠지만, 이를 위해서는 "객체지향 프로그래밍"이 무엇을 의미하는 지를 먼저 생각한 후에 어떻게 프로그래밍하는 것이 좋은 객체지향 프로그래밍인지를 고민하는 것이 순서일 것입니다. 그만큼 객체지향 프로그래밍의 정의가 중요하다는 것인데요. 잠시 예전에 배웠던 자바의 기억을 떠올려봅시다. 자바를 포함해 다른 언어라고 해도 "객체지향 프로그래밍"이 갖는 특징을 이야기해보자면 아래와 같은 내용들이 있었다는 것을 기억하게 될 겁니다. 1. 다형성2. 추상화3. 캡슐화4. 상속이 ..
[Spring] 3. 스프링 빈과 의존관계 찍먹하기
·
BackEnd/Spring 🍃
1. 의존관계 설정하기1.1 의존관계란?이전 장에서 회원 관리 서비스의 마지막에 MemberService에서 사용되는 MemberRepository 가 테스트코드와 서로 다른 객체를 바라보고 있었고, 이를 통일시켜주기 위해서 MemberService 클래스에 있는 생성자에 MemberRepository를 주입하는 "의존성 주입 (Dependencies Injection)"에 대해 간략하게 설명드렸습니다. 이번 장에서는 이 부분으로 조금 더 깊게 알아보려하는데, 예시로 회원 컨트롤러가 회원 서비스와 회원 레포지토리를 사용할 수 있도록 의존관계를 추가한다고 가정해 보겠습니다. 이를 위해 controller 패키지에 "MemeberController"라는 회원 컨트롤러를 먼저 생성하도록 하겠습니다. [Java..
[Spring] 2. 웹 개발 기초
·
BackEnd/Spring 🍃
1. 웹 개발의 종류이번 장에서는 본격적으로 스프링을 이용해 웹 애플리케이션 개발을 해보고자 합니다. 시작에 앞서, 먼저 웹 개발의 종류를 먼저 살펴보도록 하죠. 종류는 크게 정적 컨텐츠, MVC와 템플릿 엔진 그리고 API를 개발하는 것이 있으며, 아래에서 각 항목별로 조금 더 설명을 드리겠습니다.1.1 정적 컨텐츠가장 먼저 정적 컨텐츠를 살펴보도록 하죠. 단어의 뜻 그대로 별다른 서버의 동작 없이 파일을 그대로 웹 브라우저에 보여주는 것들을 의미합니다. 대표적인 예시로는 앞선 장에서 예시로 했던 HelloSpring 의 index.html 웹 페이지 같은 것이 되겠습니다. 스프링에서는 정적 컨텐츠를 지원하는데, 이 때 "resources/static"이라는 폴더 이하에 저장된 컨텐츠를 기본적으로 사용..
[Spring] 1. 스프링을 시작하며...
·
BackEnd/Spring 🍃
1. Spring Framework스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이며, 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다. 여기서 엔터프라이즈급 개발이란, 기업을 대상으로 하는 개발을 의미하며, 주로 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경을 의미합니다.스프링이 등장할 당시, 2000년대 초의 자바 엔터프라이즈 애플리케이션은 작성 및 테스트가 매우 어려웠으며, 한 번 테스트하는 것이 번거로웠습니다. 이로 인해 소위 "느슨한 결합" 으로의 애플리케이션 개발이 어려웠으며, 특히 데이터 베이스와 같이 외부에 의존성을 두는 경우 단위테스트가 불가했습..
SLYK1D