묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨오브젝트 - 기초편
2-2. 변경과 의존성 / 데이터 내부 변경 시 setter가 변경의 여파를 흡수하는 방식은 어떤가요?
안녕하세요, 강사님. 강의 '2-2. 변경과 의존성'에서 DiscountPolicy의 startTime과 endTime을 TimeInteval로 통합하면 외부에서 getter를 통해 startTime, endTime을 참조하는 코드가 변경되어야함을 보여주셨습니다.condtion.getStartTime() -> condition.getInterval().getStartTime(); 위 예제를 getStartTime과 getEndTime 메서드가 변화를 여파를 흡수하는 방식으로 변경을 할 수도 있었을텐데 강의의 예제처럼 ReservationService가 변경되어야하도록 코드를 변경하신 관점이 궁금합니다.// interval을 노출시키는 대신 endTime, startTime의 getter에서 변경의 여파를 흡수하고 속성없는 프로퍼티로 동작 public class DiscountCondition { public enum ConditionType { PERIOD_CONDITION, SEQUENCE_CONDITION } ... private TimeInterval interval; ... public LocalTime getStartTime() { return interval.getStartTime(); } ... public LocalTime getEndTime() { return interval.getEndTime(); } } 데이터 변경의 여파가 클라이언트에 전달되는 것은 데이터를 다루는 로직이 데이터 외부에 있기 때문이라는 점은 강의에서 충분히 전달해주셨기에 어느정도 이해했다고 생각합니다. 그리고 위에 질문드린 내용은 일부 속성들이 통합되면서도 기존에 데이터 외부로 제공하던 속성(startTime, endTime)을 어떻게든 그대로 제공할 수 있는 상황(interval에서 꺼내줄 수 있음)에 한정된, 숲 보다는 나무에 관한 질문일텐데... 그래도 자꾸 생각이 나서 질문을 드리게됬습니다.어제에 이어 또 질문을 드리지만 좋은 연휴 되시길 바라는 마음은 정말입니다.감사합니다.
-
해결됨오브젝트 - 기초편
[5-1] DiscountPolicy의 getDiscountAmount 추상 메서드 관련 질문입니다,
5-1강의 7분 10초 경에서 추상 클래스인 DiscountPolicy의 calculateDiscount 메소드 구현 관련하여 질문 있습니다.calculateDiscount 메서드의 로직에서 상영(screening)이 DiscountCondition 중 하나라도 만족하면 getDiscountAmount(screening)이 호출되는데, 이 때 AmountDiscountPolicy와 PercentDiscountPolicy 중 누가 오버라이드한 getDiscountAmount가 호출되는지 궁금하여 질문드립니다.애초에 Movie 객체가 생성될 때 AmountDiscountPolicy와 PercentDiscountPolicy 중 해당되는 할인 정책을 멤버 변수로 사용할 수 있게 된다고 이해하면 될까요? 객체지향에 대해 심도 있게 배울 수 있는 강의라 너무 잘 듣고 있습니다. ㅎㅎ
-
해결됨오브젝트 - 기초편
2-4. 절차에서 객체로 / 도메인 구조를 따라 클래스 구조 변경 부분
강의: 2-4. 절차에서 객체로강의 부분: 5:46 ~질문 DiscountPolicy를 통해 DiscountCondition을 캡슐화한 상태에 대해 'DiscountPolicy의 public 메서드를 수정하는 경우에도 영향을 최소화할 수 있습니다.'라고 말씀하신 부분이 잘 이해가 안됩니다. DiscountPolicy가 전면에 나와 ReservationService에 의해 참조되는 중이니 DiscountPolicy의 public 메서드 시그니처가 변경된다면 ReservationService가 직접 영향을 받으리라 생각됩니다. 혹시 DiscountCondition을 수정하여 그 여파가 DiscountPolicy의 메서드 바디를 수정하게 하더라도 ReservationService는 DiscountPolicy의 메서드를 호출만 하는 상태이니 ReservationService에는 영향이 가지 않는다는 의미로 이해하면 될까요?안녕하세요, 강사님, 그리고 뭔가해서 눌러보셨을 다른 수강생분들.모두 좋은 추석 되시길 바랍니다.감사합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
MySQL Workbench 다운로드 실패 이슈
2025년 10월 4일 기준 MySQL Workbench 최신 버전인 8.0.43 버전 다운로드 시 크롬에서 다운로드 실패하는 이슈가 있네요!저는 Archives에서 8.0.42 버전을 다운받으니 정상적으로 받아서 설치할 수 있었습니다.혹시 다른 수강생분들도 비슷한 이슈 겪으실까 싶어 글 남깁니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
list, json 컬럼은 지양하나요?
관계형 DB에서도 데이터로 list, json이 가능하게 되는것 같던데... 실무상 거의 안쓰는 건가요?이걸 이용하면 쌤이 말씀해주시는 룰에 안맞게 되서, 일단은 피하면서 이것저것 연습해보는 중인데, 좀 갑갑하네요;; 교과서적으로는 피하는게 답이겠지만, 실무상으로도 피해야는 걸까요?
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
MYSQL 코드 질문
수업 외 질문을 가져와서 죄송합니다만 간략하게 한가지만 여쭙고 싶습니다. 이 Overlapping 과 Complete 을 동시에 만족하는 코드를 3개의 Table 을 통해서 구현할때 Trigger 를 쓰지 않고도 구현할 수 있나요? (단순히 Null, Check, IsStudent, IsFaculty 등을 이용해서요)
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
정규형대해서
1정규형부터 bcnf까지 강의 잘 들었습니다.그런데.. 궁금한 것은 기본키를 자연키가 아닌 대체키로 한다고했을 때, 그때도 제1정규형부터 bcnf까지 똑같이 그 개념이 적용되는지 궁금합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
설치 후 시스템 설정에서 MySQ 메뉴에서 active instance
설치 후 시스템 설정에서 MySQ 메뉴에서 active instance를 유지하고 빨간색 초록색 왔다갔다 하면 어떻게 해야하나요?
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
외래키사용
영한님 안녕하세요. 실무에서는 외래키가 테이블간에 관계를 끈끈하게 해서 잘 사용을 하지않는걸로 알고있습니다. 강의를 보면 테이블간에 유연한 관계를 두는것이 좋은 설계라고 하시던데 이 부분에 대해서는 어떻게 생각하시는지 궁금합니다~!
-
해결됨AI 시대 대체되지 않는, AI 네이티브 엔지니어를 위한 역량 미국 빅테크 시스템 디자인, 알고리즘적 사고 & 오픈소스 실무 기여 완성 코스
쿠폰 문의
고성능 실시간 분산 시스템 RabbitMQ + Kafka + Redis 실전 프로젝트쿠폰이 비활성화되었다고 나오는데 혹시 새로운 쿠폰 링크를 업데이트해주실 수 있나요?
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
1:N 에서의 연관 엔티티 필요성
안녕하세요! 수업 너무 잘 듣고 있습니다. 연관 엔티티는 1:N 관계에서가 아니라 N:M 관계에서만 필요하다고 알고 있으면 될까요 ?아니면 상황에 따라서는 1:N 에서도 연관 엔티티를 필요로 하나요 ?
-
해결됨오브젝트 - 기초편
질문 있습니다!
public Reservation reserve(Customer customer, int audienceCount) { Money fee = movie.calculateFee(this).times(audienceCount); return new Reservation(customer, this , audienceCount, fee); }reserve 하기위해 movie에게 calculateFee를 하기 위해 screening을 전달해주는데 이 전달해주는 명확한 근거가 있는지 궁금합니다. 만약 screening을 전달하지않고 빈 것으로 전달했다하더라도public Money calculateFee(Screening screening) { return fee.minus(discountPolicy.calculateDiscount(screening)); }Movie 클래스에서 screening 대신 movie를 this로 전달했어도 동일한 기능은 가능한 거 같습니다. 질문을 하다가 깨달았는데 DiscountCondition에 screening이 필요하기 때문에 전달해주는 것을 알게되었습니다. 이렇게 전달해주는 것은 자연스럽게 일단 관계와 책임을 결정한 뒤 필요한 요소들이 뭘까 전체적으로 고민하면서 정해지는 것일까요? 상영이 예약에 대한 책임을 지고, 영화에게 가격을 계산하는 책임을 줄 때 screening을 넘겨주는 것과 condition에서 screening이 필요하다는 것까지 같이 설계하셨었는지 궁금합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
Store 엔티티를 추가했을 때의 관계
안녕하세요 영한님!강의를 들으면서 쇼핑몰 요구사항을 조금 더 확대해서 직접 모델링해보고 있습니다. (Store, Delivery, ...)엔티티를 분류하고 개념적 모델링, 논리적 모델링을 진행하면서 몇 가지 궁금한 점이 있어서 질문드립니다. 현재 강의에서는 Order - OrderItem - Product 관계가 존재했고,만약 Store와 Product 사이에 "무엇"을 등록한다 라는 관계가 존재한다면,Order - OrderItem - Product - Store 이렇게 관계가 형성될 것 같습니다. 질문 1. Order와 Store 관계Order와 Store 사이에, "어디에서" 주문한다 라는 관계가 있다고 볼 수 있는지 궁금합니다.(비즈니스 적으로 의미가 있는지에 따라 관계 여부를 결정하는게 맞을까요?) 질문 2. 만약에 관계가 존재한다고 생각하면 Order와 Store를 직접적으로 관계를 맺어주는게 좋을지, 아니면 그래프 탐색을 통해 관계를 참조하는게 좋을 지 궁금합니다.사실 Order - OrderItem - Product - Store 순으로 모두 Join 하면, 직접적인 연관관계를 맺지 않아도 원하는 데이터를 조회할 수 있을 것이라고 생각하는데요. 만약에 Order와 Store만으로 구성된 화면이 존재하거나, Store 정보를 바탕으로 Order를 필터링 해야한다면, Order에 Store의 식별자를 가지고 있으면 편하게 조회할 수 있을 것 같더라고요.다만, 이렇게 되면 화면이나 Api에 의존적이게 모델링되는 것 같은데, 이러한 설계 방식이 괜찮은 방식인지 궁금합니다.
-
해결됨오브젝트 - 설계 원칙편
디자인 패턴에 대해선 어떤 생각을 가지고 계신지 궁금합니다.
좋은 강의 감사합니다. 강의를 들으면서 객체지향 설계 원칙에 맞춰 코드를 짜다보면 나중에 되돌아봤을때 의도했던 안했던 시중에 알려져있는 디자인 패턴과 유사한 방향으로 코드가 만들어질 것 같다는 생각을 했습니다. 강사님께서는 디자인패턴을 어떻게 바라보고 계시고 디자인 패턴을 의도해가며 구현할 때와 아닐때가 있으신지도 궁금합니다~!!감사합니다~!!
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
pk 현대적인 설계관련해서 궁금한게있습니다~
안녕하세요. 영한님 현대적인 설계는 대리키를 PK 로 두라고 하셨습니다.그 이유는 성능적인 측면으로 봤을때 자연키를 PK 로 두면 중간삽입이 자주 발생하여 페이지 단편화가 발생한다고 하셨습니다. 그리고 대리키로 AUTO-INCREMENT 를 주로 사용하시던데 일자-순번을 대리키로 사용해도 되나요? 등록된 일자와 그 일자의 순서에 따른 순번으로 PK 를 따는것도 괜찮은 방법인지 궁금합니다.
-
해결됨오브젝트 - 기초편
[강의 자료 오타 제보]
안녕하세요 . 제가 생각했을 땐 오타인 거 같아 제보드립니다. HIGH COUPLING이 높은 결합도라고 명시되어 있는게 맞는 거 같아 제보드려요! 시간대는 7:13분대 화면입니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
다대다 엔티티 질문
수업 시간중에 속성이 있을때랑 속성이 없을때에 다대다 연결 방식이 다르다고 하셨는데, 그러면 다대다 연결이고 속성이 없으면 철저히 "연관 엔티티" 라고 말하면 안되는 건가요? 약간 말장난처럼 느껴져셔 헷갈려요ㅠㅠ ++ 질문모든 테이블은 반드시 하나의 primary key 만을 가져야하나요? 감사합니다.
-
해결됨오브젝트 - 설계 원칙편
8-5 책임 분리를 통한 중복 코드 제거 과정에서 특정 조합은 불가능할 때
안녕하세요!AbstractReader로부터 파싱에 대한 책임을 분리하여 Parser라는 클래스를 새로 생성하는 내용 잘 들었습니다!여기서 궁금한 것이 생겨 질문 남깁니다..!DatabaseReader, RedisReader, FileReader / CsvParser, JsonParser, XmlParser 구성은 총 9가지의 경우의 수가 나올 수 있을 것 같은데요만약 '(DatabaseReader, XmlParser)는 불가능하고 (DatabaseReader, CsvParser)와 (DatabaseReader, JsonParser)가 가능하고,(RedisReader, XmlParser)와 (RedisReader, CsvParser)는 불가능하고 (RedisReader, JsonParser)만 가능하다' 와 같이 특정 조합이 불가능한 경우는 어떻게 컴파일 타임에 가능한 조합으로만 강제할 수 있을지 궁금합니다!
-
해결됨오브젝트 - 기초편
간접 참조에 대한 질문
안녕하세요!강의에 대한 질문이 있습니다.실무에서 직접참조보다 간접참조를 선호하고 있는데요.간접참조의 경우에는 어떻게 구현해야 객체지향적일 지 궁금합니다. 예를 들어서 Screening 객체가 Movie 객체를 간접 참조로 MovieId만 가지고 있는 경우서비스 레이어에서 DAO를 통해 Movie 객체를 조회한 후 reservce() 메시지에 같이 넘겨야 할까요?
-
해결됨시스템 디자인 첫걸음: 면접에서 돋보이는 백엔드 아키텍처 설계하기
도움 되었어요!
우와아 아키텍처에 대해 고민하게 된 비전공자인데올려주신 강의가 많은 도움이 되었습니다.감사합니다 :)!