본문 바로가기

분류 전체보기

(272)
10월 5일 Spring Boot 다형성 설계시 중요한것. 1.(인터페이스) 객체명 = new (인터페이스를 상속받은 자식클래스) 이 형식으로 객체를 생성할때 인터페이스틑 (역활) 이고 자식클래스를 역활을 수행하는 (구현체) 이다. 2.구현클래스에서 상속받은 부모 인터페이스에서 상속받는 Override 이외에도 자식클래스 내에서도 다른 객체를 생성해서 사용할 수 있다. 3.VO객체에 필드 , 생성자 이외에 자체적으로 부여받은 필드 값으로 구현하고 VO내에 메소드를 생성해두어 VO가 생성된 후에도 메소드를 이용해 필드값을 정해줄 수 있다. 4.enum 클래스를 이용해서 사용할 필드값을 쉽게 관리할 수 있고 enum에서 불러온 값은 String으로 보임에도 .equals()가 아니라 == 로 비교해야 한다.
10월4일 Spring Boot OrderApp구현 사전지식 역시나 Spring 에서 bean을 가져와서 써야하기 때문에 AppConfig appConfig = new AppConfig(); MemberService memberService = appConfig.memberService(); OrderService orderService = appConfig.orderService(); 의 방법으로 bean을 가져오는데 이 방법은 AppConfig 라는 class에서 @Configuraton 이라는 어노테이션이 선언되어있고 그 하위로 @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } 위와 같이 @Bean어노테이션을 붙여 bean객체로 ..
10월3일 Spring Boot discount의 구조 및 실행클래스 구조 (다형성) (인터페이스) (객체명) = new (인터페이스를 구현받은 객체); 상품에 따라 다르게 적용될 discount VO의 구조 DisCountPolicy 인터페이스 모든 discount의 뼈대가 되는 인터페이스이다. FixDiscountPolicy 위 DisCountPolicy를 상속받아 만들어진 구현 클래스이다. 실행 클래스 구조 AppConfig appConfig = new AppConfig(); MemberService memberService = appConfig.memberService(); 이 방법으로 구현할 경우 Spring Been들이 모여있는 appConfig에서 memberService를 찾아온다 혹은 ApplicationContext applicationContext = new Annoc..
10월2일 Spring Boot Order 객체 (다형성) Order VO OrderService -order의 추상화 클래스 orderServiceImpl -위의 OrderService를 구현한 클래스 Order VO 안에 이전에 만든 MemberRepository를 불러와서 사용하게 되는데 MemberRepository memberRepository = new MemoryMemberRepository(); MemoryMemberRepository는 MemberRepositroy를 상속받아서 만든 객체 즉 MemberRepository의 자식 이라고 할 수 있다, 이는 만약 OrderVO가 MemberRepositort 를 요구하고 있는것이기 때문에 이를 상속받아 만들어진 MemoryMemberRepository를 받을 수 있는 것으로 MemoryMemberR..
10월1일 Spring Boot Member 객체 (다형성) 사전 지식 -enum 클래스 : 객체이서 사용될 용어를 모아 관리하는 클래스이다. enum에 저장한 값은 문자열 임에도 비교를 .equals() 가 아니라 = 로 한다. public enum className{} 형식으로 선언 호출시에는 클래스를 import 하여 className.~형식으로 값을 불러온다. Member VO 구성요소 MemberService -find name 추상화 함수를 가지고 있다. MemberRepository -save 추상화 함수를 가지고 있다. MemberServiceImpl -위 memberService를 상속받아 구현된 객체이다. MemoryMemberRepository -위 MemberRepository를 상속받아 구현된 객체이다. MemberServiceImpl 은 ..
9월29일 Spring Boot 스프링의 객체지향 스프링의 객체지향 1.스프링의 객체지향의 핵심은 다형성이다. 2.스프링은 사용자로 하여금 다형성의 성능을 극대화 하여 이용할수 있게 도와준다. 3.스프링에서 이야기하는 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역활과 구현을 편리하게 다룰수 있도록 지원한다. 4.스프링을 사용하면 마치 레고블럭을 조립하듯이 객체를 편리하게 변경할 수 있다. SOLID 좋은 객체지향의 5가지 원칙 SRP : 단일 책임의 원칙 OCP : 개방 폐쇄의 원칙 LSP : 리스코프 치환 원칙 ISP : 인터페이스 분리 원칙 DIP : 의존단계 역전 원칙
9월28일 SpringBoot 객체 협력관계 객체의 협력관계 1.혼자 존재하는 객체란 존재하지 않는다. 2.요청 (클라이언트) , 서버의 응답 등 수많은 객체 클라이언트와 객체 서버는 서로 협력관계로 만들어진다. 자바는 다형성을 오버라이딩으로 구현한다. 다형성에서 부모객체는 자식객체를 포함할 수 있다. 반대로 자식객체는 부모 객체를 포함할 수 없다. 다형성의 본질 1.인터페이스를 구현한 객체 인스턴스를 실행시점에 같은 인터페이스를 구현한 다른 객체 인스턴스로 유연하게 변경할 수 있다. 2.다형성의 본질을 이해하려면 "협력"이라는 객체 사이의 관계에서부터 시작해야 한다. 3.클라이언트의 코드는 변경하지 않고 서버의 구현기능(서비스)을 유연하게 변경할 수 있어야 한다. 클라이언트를 건드리지 않고 변경하는게 다형성의 가장 중요한 포인트다. 다형성 역활과..
9월27일 개발 공부일지.Spring Boot 자바의 다형성. 다형성의 핵심 -유연하고 변경이 용이. 역활 - 인터페이스 구현 - 인터페이스를 구현한 클래스 (구현객체) 역활(클라이언트)는 개체가 다른 것으로 바뀐다 하더라도 아무런 문제없이 대체가 가능하도록 해야한다. 예를 들어 자동차(클라이언트) 는 K3나 아반떼 등 어떤 기종이든 자동차 라는 핵심적인 기능은 변하지 않는다. 또는 연극을 예로들어 로미오 / 줄리엣의 역활 이라는 클라이언트가 존재 한다고 할때 어떤 배우가 해당 역활을 수행하든 지장이 없는 경우와 같다. ★다형성은 해당 교체가 가능하다. 코드에서(DB도 마찬가지) 주된 기능헤서 적용된 정책 등을 클래스로 관리할때 기존코드에 별도의 수정사항 없이 수정이 가능해야 한다. ★역활과 구현을 분리하면 세상이 단순해지고 유연해지며 변경이 편리해 진다. 1.클라..