분류 전체보기
-
회원 도메인 개발FrameWork/Spring&Spring-boot 2021. 12. 29. 13:32
개발 팁★ -인터페이스와 구현체를 같은 패키지에 두는 것 보다 다른 패키지에 두는 것이 설계상 좋다. private final MemberRepository memberRepository = new MemoryMemberRepository(); @Override public void join(Member member) { memberRepository.save(member); } join 메서드에서 save메서드를 호출하면 다형성에 의해서 MemoryMemberRepository 에 save 메소드(override한)가 호출된다. [출처 : 김영한. 스프링 핵심 원리-기본편. 인프런]
-
회원 도메인 설계FrameWork/Spring&Spring-boot 2021. 12. 29. 13:10
회원 도메인 요구 사항 •회원을 가입하고 조회할 수 있다. •회원은 일반과 VIP 두 가지 등급이 있다. •회원 데이터는 자체 DB를 구축 할 수 있고, 외부 시스템과 연동할 수 있다.(미확정) 회원 도메인 협력 관계 회원클래스 다이어그램 구현체 중 어떤 Repository에 data를 넣을지(new)는 동적으로 결정된다. 회원 객체 다이어그램 그래서, 별도로 객체 다이어그램이 라는 것이 존재 하게 된다. 실제 new 하게되는 인스턴스끼리의 참조 관계 [출처 : 김영한. 스프링 핵심 원리-기본편. 인프런]
-
객체 지향 설계와 스프링FrameWork/Spring&Spring-boot 2021. 12. 28. 19:11
다시 스프링으로 스프링 이야기에 왜 객체 지향 이야기가 나오는가? 스프링은 다음 기술로 다형성 + OCP, DIP를 가능하게 지원 -DI(Dependency Injection):의존관계,의존성 주입 -DI 컨테이너를 제공 +클라이언트의 코드 변경없이, 기능을 확장 할 수 있다.(부품을 교체해서 끼워 넣을 수 있다.) 클라이언트 코드의 변경 없이 기능 확장 쉽게 부품을 교체하듯이 개발 +스프링은 다형성,OCP,DIP를 가능하게 해주는 기술 스프링이 없던 시절로 옛날 어떤 개발자가 좋은 객체 지향 개발을 하려고 OCP,DIP 원칙을 지키면서 개발을 해 보니, 너무 할일이 많았다. 배보다 배꼽이 더 큰 경우, 그래서 프레임워크로 만듬 순수하게 자바로 OCP,DIP 원칙들을 지키면서 개발을 해보면, 결굴 스프링..
-
SOLIDFrameWork/Spring&Spring-boot 2021. 12. 28. 18:06
좋은 객체 지향 설계의 5가지 원칙 SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP : 단일 책임의 원칙(single responsibility principle) OCP : 개방-폐쇄 원칙 (Open/closed prinsiple) LSP : 리스코프 치환의 원칙(Liskov suvstitution prinsiple) ISP : 인터페이스 분리 원칙 (Interface segregation principle) DIP : 의존관계 역전 원칙 (Dependency inversion principle)' 1. SRP 단일 책임 원칙 Single responsibility principle 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. ..
-
좋은 객체지향 프로그래밍 이란? 2FrameWork/Spring&Spring-boot 2021. 12. 28. 15:16
자바 언어의 다형성 오버라이딩을 떠올려 보자 오버라이딩은 자바 기본 문법 오버라이딩 된 메서드가 실행 다형성으로 인터페이스를 구현한 객체를 실행 시점에 유연하게 변경할 수 있다. 물론 클래스 상속 관계도 다형성, 오버라이딩 적용가능 다형성의 본질 인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있다. 다형성의 본질을 이해하려면 협력이라는 객체사이의 관계에서 시작해야함 클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다. +클라이언트를 변경하지 않고 서버의 구현 기능을 유연하게 변경 할 수 있는것이 다형성의 본질이다. 역할과 구현을 분리 정리 실세계의 역할과 구현이라는 편리한 컨셉을 다형성을 통해 객체 세상으로 가져올 수 있음 유연한고, 변경이 용이 확장 가능한 설..
-
스프링 이란 2FrameWork/Spring&Spring-boot 2021. 12. 28. 13:12
스프링 프레임워크 핵심 기술 : 스프링 DI 컨테이너,AOP,이벤트,기타 웹 기술 : 스프링MVC,스프링 WebFlux 데이터 접근 기술 : 트랜잭션,JDBC,ORM지원,XML지원 기술 통합 : 캐시, 이메일, 원격접근,스케줄링 테스트 : 스프링 기반 테스트 지원 언어 : 코틀린 ,그루비 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 Tomcat같은 웹 서버를 내장해서 별도의 웹서버를 설치하지 않아도 됨 손쉬운 빌드 구성을 위한 starter 종속성 제공 스프링과 3rd parth(외부)라이브러리 자동 구성 +스프링프레임워크 버전에 따라 외부 ..
-
스프링 이란1FrameWork/Spring&Spring-boot 2021. 12. 28. 12:21
스프링 생태계 필수 스프링 프레임워크, 스프링부트 선택 스프링데이터 -관계형 데이터 베이스, nosql(MongoDB,Redis/기본적인 CRUD는 비슷) 등등을 편하게 사용할 수 있도록 도와준다. 스프링JPA 가장 많이 사용 스프링세션 세션기능을 좀 더 편하게 사용 할 수 있도록 도와 준다. 스프링 시큐리티 스프링 Rest Docs API문서를 편리하게 해준다. 스프링 배치 수많은 서비스 이용자의 데이터를 한번에 업데이트 할 경우가 있는데 이것을 용이하게 하기 위한 기술 스프링 클라우드 [출처 : 김영한. 스프링 핵심 원리-기본편. 인프런]
-
컬렉션개발언어 2021. 12. 27. 17:08
- 데이터 여러개를 뭉뚱그려서 하나로 관리하는 것 -collection은 단순 배열과 다르게 알고리즘이 거기에 포함되어 있다. Set : 중복을 포함하지 않는 묶음. 예)trump card 52의 카드가 중복이 되지 않는다. List : 순서가 있는 묶음.(Ordered collection)/ 짚어 넣은 순서대로 순서가 지켜지고 있는 것. 예)게시글 순서 Queue : First in First Out.(FIFO) Deque:양방향 큐.LIFO,FIFO 모두가능 Map:키-값 매핑. 중복 키 허용하지 않음. Queue : First in first out /버스에 앞문과 뒷문이 모두 존재 앞문으로 타로 뒷문으로 내린다. Stack : Last in first out / 버스에 앞문만 존재하는 경우 Deq..