[Spring 기본] 핵심 원리 예제 (3)
Dev/Spring2022. 10. 27. 22:02[Spring 기본] 핵심 원리 예제 (3)

♪ 학습 내용 회원 도메인 테스트 / 주문 할인 도메인 설계 - 스프링 프레임워크를 왜 사용하는지 알기 위한 과정으로 개발 시에 순수 자바 사용 * 회원도메인 테스트 실제 서버 띄워 실행 시 객체들 간 참조 관계는 다음과 같다 - 1L 의 L은 id의 자료형인 Long을 의미한다. 이와 같은 테스트 방식은 직접 결과 호출해 눈으로 확인하여 검증해야 하는 단점이 있다. * 회원도메인 테스트( JUnit 테스트 ) 기존 main 패키지가 아닌 test를 이용한다 다음 구조로 나누어 test 코드 작성하면 조금 더 알아보기 쉽다 // given 이런 이런게 주어졌을 때 // when 이렇게 했을 때 //then 이렇게 된다. 검증. 결과를 호출해 눈으로 검증했던 조금 전 방식과는 다르게 편하게 결과 확인이 가..

[Spring 기본] 핵심 원리 예제 (2)
Dev/Spring2022. 10. 27. 01:18[Spring 기본] 핵심 원리 예제 (2)

♪ 학습 내용 회원 도메인 / 저장소 / 서비스 개발 - 스프링 프레임워크를 왜 사용하는지 알기 위한 과정으로 개발 시에 순수 자바 사용 * 회원 도메인 개발 회원 등급 클래스와 회원 엔티티 클래스를 작성했다. 엔티티 클래스인 Member 클래스는 필드 id, name, grade . 생성자와 각 필드 Getter Setter를 가지고 있다. * 회원 저장소 개발 회원 저장소 인터페이스 MemberRepository 와 실제 구현체인 MemoryMemberRepository를 구현 회원을 저장하는 save() 와 id를 조회하는 findById() . 이 두가지 메서드를 가지고 있다. 실제 저장소 구현체인 MemoryMemberRepository에서는 데이터를 저장할 HashMap 따라서 save() 와..

[Spring 기본] 핵심 원리 예제 (1)
Dev/Spring2022. 10. 27. 00:28[Spring 기본] 핵심 원리 예제 (1)

♪ 학습 내용 스프링 프로젝트 생성 및 예제 설계 - 스프링 프레임워크를 왜 사용하는지 알기 위한 과정으로 개발 시에 순수 자바 사용 * 프로젝트 생성 및 실행 https://start.spring.io 이용 아직은 스프링 프레임워크를 사용하지 않을 것이기에 DEpendencies 별도의 의존 관계 설정 x 압축 풀어주고 IntelliJ에서 build.gradel로 열어주었다. * 비즈니스 요구사항 / 설계 회원 - 가입, 조회 기능 - 일반 / VIP 등급 - 회원 데이터는 어떤 것으로 구현할지 미정 ( = 역할과 구현을 구분하여 인터페이스를 만들고 구현체 갈아끼우자 ) 주문 , 할인 - 회원은 상품 주문 - 등급에 따라 할인 정책 - 모든 VIP 고정 1000원 할인 (변경 가능) - 할인 정책 변경..

[Spring 기본] 객체 지향 설계와 스프링 (2)
Dev/Spring2022. 10. 26. 01:01[Spring 기본] 객체 지향 설계와 스프링 (2)

♪ 학습 내용 객체 지향 설계 원칙 SOLID / 스프링 프레임 워크의 필요성 * SOLID 좋은 객체 지향 설계의 5가지 원칙 - SRP : 단일 책임 원칙 - OCP : 개방 - 폐쇄 원칙 ★ - LSP : 리스코프 치환 원칙 - ISP : 인터페이스 분리 원칙 - DIP : 의존관계 역전 원칙 ★ * SRP 단일 책임 원칙 한 클래스는 하나의 책임을 가져야 한다. 그 기준은 ? 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이다 하나의 책임 이라는 범위를 적절하게 잘 조절하는게 객체 지향 설계의 묘미 * OCP 개방-폐쇄 원칙 ★ 확장에는 열려있고 변경에는 닫혀 있어야한다. 다형성을 활용해 보면 (역할과 구현의 분리를 생각) public class Driving{ private C..

[Spring 기본] 객체 지향 설계와 스프링 (1)
Dev/Spring2022. 10. 25. 01:33[Spring 기본] 객체 지향 설계와 스프링 (1)

♪ 학습 내용 스프링과 객체 지향의 다형성 * 스프링 스프링이라는 단어는 문맥에 따라 다르게 사용되는데, 통상 스프링이라 하면 스프링 부트, 스프링 프레임워크를 포함해서를 말한다. 무언가를 진정 내 것으로 하기 위해서는 핵심 개념과 왜 사용하는 지를 알아야한다. * 스프링의 핵심 스프링은 자바 언어 기반 자바는 대표적 객체 지향 언어 스프링은 객체 지향 프로그램을 잘할 수 있게 도와주는 도구이다. 그렇다면 좋은 객체 지향 프로그램이란 과연 무엇일까 ? * 객체 지향 프로그래밍 - 객체들의 모임 - 각 객체들은 메세지를 주고받고 데이터를 처리한다.(협력) - 유연하고 변경이 용이 ( = 객체지향의 다형성) 다형성을 실세계에 비유하려면 세계를 '역할'과 '구현'으로 구분해야한다. ex) 운전자 역할과 자동차..

[Spring] 스프링 공부 시작
Dev/Spring2022. 10. 25. 01:09[Spring] 스프링 공부 시작

블로그에 작성해오지는 않았지만, 짧굵배 JSP 웹프로그래밍에서 스프링까지 간단하게 만져본 뒤에 인프런에 김영한님의 Spring 입문 강의를 처음부터 들었다. 솔직히 말하면 너무 많은 내용을 짧은 시간안에 영상으로 접한 것이라 뭘 배운 거 같진 않았다 그래도 강의 목적 자체가 뭘 배우기보단, Spring을 어떻게 사용하는지 전체적으로 얕게 보여준 것이라 강의 목적으로만 보면 괜찮았다. 앞으로는 김영한님의 Spring 완전 정복 로드맵을 따라가며 공부를 할 것이다. 다음으로 공부할 부분은 Spring 핵심 원리 - 기본 이다.

image