19,800원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결객체 지향 프로그래밍 입문
추상화를 따라서 코딩해볼 수 있는 예제가 있을까요?
안녕하세요 이번 강의를 듣고 추상화를 통해서 좀 더 확장이 용이하게끔 코딩을 할 수 있구나~ 라는 생각이 들었습니다. 근데 한편으로는 이런 느낌을 갖기만하고 따라서 작성해볼 수 있는 예제의 느낌이 아닌것 같아서 아쉬웠는데요,, 혹시 따라서 코딩해볼 수 있는 예제가 있을까요?
- 미해결객체 지향 프로그래밍 입문
콘크리트 클래스를 직접 사용하는 경우 & NotifierFactory 관련 질문드립니다
안녕하세요 강의 듣던중 궁금한게 생겨서 질문드립니다. 1. 9분 9초 경 요구사항이 변경되면서 if(pushable){ kakao.send(); }else{ sms.send(); } mail.send() 이렇게 pushable 하면 카카오알림, 불가능하면 문자알림 을 한 후에 무조건 메일을 통해 push를 한번 더 하고있는데요.. 이를 추상화해서 notify 라는 인터페이스를 만들고, 3개(카카오,문자,메일)의 콘크리트 클래스를 구현하면 Notify notify = getNotify(...) // 여기서 카카오 or 문자 or 이메일 결정 notify.send() 이렇게 구현이 될거라고 생각이 들었습니다. 근데 만약 notify가 카카오알림이였다면.. 이메일을 통한 send는 못하게 되지 않나요? 아니면 다른 구현 방법이 있을까요 2. 강의 11분 50초 쯤 추상화를 한번 더 진행해주셨는데요.. 이전 질문글을 읽어봐도 NotifierFactory 의 역할이 사실 잘 와닿지가 않습니다 그냥 DefaultNotifierFactory 만 구현하면 될 것 같다는 생각이 사라지지가 않는 것 같은데 혹시 더 설명해주실 수 있으신가요? 감사합니다.
- 미해결객체 지향 프로그래밍 입문
Demeter's Law 설명이 잘 이해가 안갔습니다 ㅠㅠ
3가지 경우를 적어주셨는데 말이 잘 이해가 안가서 예시로 느낌이라도 이해하려하는데요 acc.getDate().isAfter(now) acc.isExpired() 위에 처럼 여러 메소드를 꼬리물기식으로 사용하게끔 구현하지말고 아래처럼 한번에 메소드로 원하는 기능을 수행하게끔 구현하라는게 Demeter's Law 가 맞나요??
- 미해결객체 지향 프로그래밍 입문
혹시 강의를 듣고 필기한 내용을 정리해서 블로그에 올려도 될까요?
안녕하세요. 현재 객체지향 프로그래밍 입문 강의를 듣고 있는 학생입니다. 다름이 아니라, 강의를 듣다가 좋은 내용이 너무 많아서 필기를 하고 있는데 혹시 필기한 내용들을 정리해서 블로그에 올려도 될지 여쭙고자 문의 드립니다. 저작권 문제이나 그 외 문제들로 인해 안된다면 올리지 않도록 하겠습니다. 감사합니다.
- 미해결객체 지향 프로그래밍 입문
캡슐화 예제 질문드립니다
안녕하세요 Member, Rental, Movie 등의 클래스에서 캡슐화하는 방법에 대해서 말씀해주셨는데 이것은 VO(불변) 나 entity 클래스의 경우에만 가능한건가요? JPA 환경이 아닌 mybatis 를 사용하면 많은 경우 단순 setter, getter 형태의 dto 만을 사용하여 개발을 진행하게 되는데 이런 경우 dto 에 getFrequentRenterPoints() 와 같은 메소드를 만들어서 사용하는 것은 별로 좋지 않은 방법일까요? dto 는 단순 setter, getter 외에는 로직이 들어가서는 안된다라는 글을 어디선가 본 것 같아서요
- 미해결객체 지향 프로그래밍 입문
DIP
안녕하세요! 객체지향과 디자인패턴 - 최범균 님 책을 읽고 여기까지 왔네요! ㅎㅎㅎ 복습하기 좋은 강의였습니다. 다만, DIP 에서 조금 헷갈리는게 있는데요. 하나의 예를들면서 여쭤보고 싶습니다. Controller 와 Service가 있다고 하면 Controller 에서 Service 를 의존하고 있을 때, Service의 구체적인 구현체를 Controller 에서 의존하고 있기에 이것은 Controller ( 고모듈 ) 이 Service (저모듈 ) 을 의존하고 있는 거잖아요.? 그럼 여기서 Controller 와 Service 사이에 Interface를 둬서 Controller에서는 ServiceInterface의 고수준 모듈을 의존하고 ServiceInterface를 상속한 저모듈 구현체는 상속을 한 Interface ( 고수준 ) 에 의존 되어있기에 딱 좋은 예제라고 생각하는데 맞을까요?! 감사합니다.
- 미해결객체 지향 프로그래밍 입문
예제코드는 따로 없나요?
강의를 듣고, 교안을 보면서 실제로 구현해보려고 하는데 생각대로 어려움이 많습니다. 혹시, 교안에서 설명하신 부분에 대한 예제코드를 구할 수 없을까요?
- 미해결객체 지향 프로그래밍 입문
NotifierFactory 를 또 추상화 한 이유가 궁금합니다
어떠한 이점으로 NotifierFactory을 또 추상화 작업 한 것인가요?
- 미해결객체 지향 프로그래밍 입문
특정 클라우드에서 예외적으로 특정기능을 제공하지 않는 경우
스승님. 예를들어 n 클라우드에서만 파일 삭제하기(대부분 구현체의 핵심기능 중 하나) 기능을 제공하지 않을 때에도 동일하게 삭제하기 기능을 interface에 포함시키는게 좋을까요? 어떤 구조가 좋을까요?
- 미해결객체 지향 프로그래밍 입문
상속과 조합 문의드립니다
안녕하세요 상속의 단점이 상위 클래스의 변경이 하위 클래스에 영향을 주는것도 있다 하셧는데요 조합일 경우도 비슷한건 아닌가요? 조합에 사용한 클래스에 변경이 있어서 내부로직에 변화가 있을 때 사용하는 쪽에도 영향을 주는건 상속과 똑같은게 아닌가 해서요..
- 해결됨객체 지향 프로그래밍 입문
강의자료를 받아볼수 있나요?
좋은 강의 만들어주셔서 잘들었습니다 근데 강의자료는 혹시 받아볼수있을까요? 출력해서 보면서 다시한번 정리를 하고자합니다.
- 미해결객체 지향 프로그래밍 입문
연습에 대한 구체적인 코드가 맞는지 리뷰 부탁드려도 될까요 :)?
안녕하세요. DIP까지 다 듣게 되었습니다. 좋은 강의를 이렇게 올려주셔서 너무 감사합니다. 다만, 마지막 연습에 대한 구체적인 코드가 없어서 작성하게 되었습니다:) 제가 작성한 코드가 제대로 이해한게 맞는지 확인 부탁드려도 될까요?// 고수준 모듈class ProductDataService { private var productRepository: ProductRepository? private var productRecommander: ProductRecommander? private var popularProductService: PopularProductService?// 직접 생성x// init() {// self.productRepository = DBProductRepository()// self.productRecommander = DaaraRecommnder()// self.popularProductService = ErpPopularProductService()// } init(_ productRepository: ProductRepository, _ productRecommander: ProductRecommander, _ popularProductService: PopularProductService) { self.productRepository = productRepository self.productRecommander = productRecommander self.popularProductService = popularProductService } func getDetailInfo() { productRepository?.fetchDetailInfo() } func recommandItem() { productRecommander?.fetchItems() } func getTopItem() { popularProductService?.fetchTopItem() }}// 하위 기능을 추상화한 타입 1protocol ProductRepository { func fetchDetailInfo()}// 하위 기능을 추상화한 타입 2protocol ProductRecommander { func fetchItems()}// 하위 기능을 추상화한 타입 3protocol PopularProductService { func fetchTopItem()}// 저수준 모듈class DBProductRepository: ProductRepository { func fetchDetailInfo() { // ... }}class DaaraRecommnder: ProductRecommander { func fetchItems() { // ... }}class ErpPopularProductService: PopularProductService { func fetchTopItem() { // ... }}