본문 바로가기

Learning-log126

[Java] 상속과 다형성 상속부모에서 private으로 막아놓은걸 자식이 오픈할 순 없음새로운 설계도를 만들 때 맨땅에서 새로 시작하는게 아니라 기존에 만들어둔 class에 플러스해서 새로운 걸 만들 수 있지 않을까? ⇒ 상속이란, 기존의 설계도를 재사용하기 위해 등장상속 : 어떤 클래스의 특성을 그대로 갖는 새로운 클래스를 정의한 것기존 클래스 : 상위 클래스, 부모클래스, super class상속받은 클래스 : 하위 클래스, 자식클래스, sub class⇒ 상속을 받은 자식 클래스를 호출하면 부모클래스를 먼저 호출. 부모클래스 도장 꽝 찍은 후 나머지 자식 클래스로도 도장 꽝!⇒ 그래서! 자식 클래스에서 부모클래스 내에 있던 메소드나 변수 볼 수 있는 거상속 안 받은 경우 : → 자동완성 창에 클래스 자기 자신의 이름이 뜸상.. 2023. 4. 1.
(스프링 핵심 원리 - 기본편) 3-(4)AppConfig 리택터링, (5)새로운 구조와 할인 정책 적용, (6) 전체 흐름 정리 - AppConfig 리팩터링 지금까지 만들어 놓은 AppConfig 를 살펴보면 중복도 있으며 역할에 따른 구현이 한 눈에 보이지 않는다. 현재 변경 후 이렇게 바꾸면 메서드명을 바꿈으로써 역할이 다 드러남. 나중에 db로 바뀐다면 AppConfig에서 memberRepository 메서드가 리턴하는 객체만 바꿔끼워주면 됨. 역할과 구현이 모두 한 눈에 드러나게 됨 => 애플리케이션 전체 구성이 어떻게 돼 있는지 한번에 파악 가능 - 새로운 구조와 할인 정책 적용 정액할인을 정률할인 정책으로 변경해볼 것. AppConfig만 변경하면 됨! AppConfig로 인해 객체를 생성하고 구성하는 영역과 애플리케이션이 사용되는 영역 이렇게 두 영역으로 크게 분리 됨. 할인 정책 변경하려면 AppConfig 부분.. 2023. 4. 1.
(스프링 핵심 원리 - 기본편) 3-(1)새로운 할인정책 개발, (2)새로운 할인 정책 적용과 문제점, (3)관심사의 분리 - 새로운 할인정책 개발 새로운 할인 정책 추가하려면 DIP, OCP를 지키지 못하는 문제 발생 => 이 문제를 해결하기 위해 여러 과정을 거치게 됨. => 새로운 할인 정책 : 기본 1000원 할인에서 10% 할인으로 변경하기 기존에 dicount package에 'RateDiscountPolicy' class를 만들고 기존의 DiscountPolicy Interface 를 implements 하기 class를 작성하고 Ctrl +Shift + T 를 눌러 Test생성하기 Test 작성하기 ( VIP라서 할인이 적용되는 경우와 적용되지 않는 경우 두가지 테스트) - 새로운 할인 정책 적용과 문제 새로운 할인 서비스를 적용하려면 OrderServiceImpl로 들어가야 함. OrderServiceImpl.. 2023. 3. 30.
(스프링 핵심 원리 - 기본편) 2-주문과 할인 도메인 (6) 설계 , (7) 개발, (8)실행과 테스트 - 주문과 할인 도메인 설계 주문과 할인 정책을 다시 떠올려보자. 회원 : 상품 주문 가능 회원 등급에 따라 할인 정책 적용 가능 할인 정책 : 모든 vip는 1000원 할인하는 고정 금액 할인 적용(변경 가능) 할인 정책 변경 가능성이 높음 클라이언트는 주문 생성 가능/주문 서비스는 주문 생성의 역할을 함 회원저장소에서 회원 조회 회원등급을 가지고 할인 정책 역할에 할인 적용할 수 있는지 물어보고 그 결과를 주문서비스가 받음(주문 서비스는 회원 등급에 따른 할인 여부를 할인 정책에 위임) 주문서비스는 최종적으로 할인까지 적용된 주문결과를 클라이언트에게 반환 위처럼 역할과 구현을 분리 => 자유롭게 구현 객체 조립 가능. 회원저장소와 할인정책 모두 유연하계 변경 가능 정액 할인 정책에서 정률 할인 정책으.. 2023. 3. 27.
(Java)백준 11729. 하노이 탑 이동 순서 1. 문제 조건 어릴 때 많이 해보던 하노이탑!! 내가 정말 좋아하던 놀이였다 ,, 그냥 내가 알고 있던 하노이탑 규칙 그 자체 ! 원판을 옮긴 총 개수와 옮긴 과정(원판이 원래 있던 위치 원판을 옮긴 목적지)를 각각 순차적으로 출력해야 했다. 2. 아이디어 하노이 수열의 점화식을 외워본 적이 없어서 하노이 수열의 규칙부터 찾아봐야 했다. 많은 관찰과 고민을 거듭한 끝에 점화식을 찾았고, 하노이를 옮기는 과정에 전체 솔루션 내에 작은 솔루션들을 구분할 수 있게 됐다. 알고리즘 스터디원들에게 웹엑스로 필기하며 설명해준 과정도 아래 첨부한다. 내가 사고한 과정을 최대한 그대로 설명해주려고 노력했다. 규칙을 찾아간 과정은 우선, 원판 개수에 따라서 이동 과정이나 하노이 수를 관찰하고 그 과정에서 규칙성을 발견.. 2023. 3. 26.
(Java)백준 24060 알고리즘 수업 - 병합 정렬 1 1. 문제 조건 문제 제목 그대로 주어진 수를 병합정렬을 이용해 푸는 문제. 숫자를 정렬 할 때마다 개수를 세서, K번째 정렬한 숫자를 출력해야 한다. 2. 아이디어 구현해놓은 병합 정렬을 활용하기 단, 전체를 정렬할 필요 없이, 문제의 조건이 충족되는 순간 모든 메서드를 멈추고 결과값을 출력해봤다. 3. 구현 package Silver4; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main_24060병합정렬1 { static int[] arr; stati.. 2023. 3. 26.