inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

의존관계주입 OCP, DIP

미해결

스프링 핵심 원리 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 자동의존관계 주입시 중복되는 빈이 2개일때 파라미터 이름, Qualifier 를 쓴다고 하는데 쓰는거는 이해가 가는데 들으면거 의문이 든게 만약 이런걸 붙여서 Impl 코드를 수정해야된다면 예를들어 파라미터이름을 rateDiscountpolicy 로 쓰다가 fixDiscountPolicy로 바꾼다면 예전에 배운 DIP와 OCP 를 지켜지는게 맞는가 싶더라고요, 만약 중복을 분리하기위해 그렇게한다면 new RateDiscountPolicy 에서 new FixDiscountPolicy 로 바꾸는것과 큰차이가 잇을까였습니다. 결국 구현체를 바꾸고싶을때 직접적으로 코드를 수정해야된다면 이러한 규칙이 잘맞는지 굳이 써야할이유가 있는지 궁금합니다

  • spring
  • 객체지향
김태언 댓글 1 좋아요 0 조회수 172

상속에서 this 질문있습니다.

해결됨

김영한의 실전 자바 - 기본편

결론부터 말씀드리면 자식 클래스 에서 아무런 멤버변수를 초기화하지 않을 때, 생성자에서 this.[변수명]으로 멤버변수를 초기화 할 수 있는걸로 압니다. 그런데 아래 이미지는 this로 접근한 동일 이름의 변수에서 왜 부모 변수가 변경되는건가요? 자기자신의 멤버 변수가 생성자에서 초기화되는 개념이 아닌가요? 부모의 price 100으로 고정 자식 클래스에서 price를 생성자에서 초기화 자식 인스턴스의 printCar() 메서드 호출 결과. 둘다 1000인 이유가는 무엇인가요? 부모는 100이 아닌

  • java
  • 객체지향
트릴 댓글 2 좋아요 0 조회수 145

private 인데 static 을 붙인이유

미해결

김영한의 실전 자바 - 중급 1편

강사님 답변을 부탁드려봅니다 왜 private인데 static 을 붙여뒀는지 알수있을까요? 어차피 NetworkMessage클래스를 Network클래스 안에서만 쓰려고 private 을 붙여뒀는데 왜 static 을 붙여둔건가요? public class Network { public void sendMessage(String text) { NetworkMessage networkMessage = new NetworkMessage(text); networkMessage.print(); } private static class NetworkMessage { private String content; public NetworkMessage(String content) { this.content = content; } public void print() { System.out.println(content); } } }

  • java
  • 객체지향
플하 댓글 2 좋아요 0 조회수 364

static 붙인 이유

미해결

김영한의 실전 자바 - 중급 1편

왜 static 을 붙여뒀는지 알수있을까요? NetworkMessage클래스를 Network클래스 안에서만 쓰려고 private 을 붙여뒀는데 왜 static 을 붙여둔건가요? public class Network { public void sendMessage(String text) { NetworkMessage networkMessage = new NetworkMessage(text); networkMessage.print(); } private static class NetworkMessage { private String content; public NetworkMessage(String content) { this.content = content; } public void print() { System.out.println(content); } } }

  • java
  • 객체지향
플하 댓글 1 좋아요 0 조회수 177

직접 구현하는 연결 리스트2- 데이터 추가 삭제1, 코드 리뷰 좀요.

해결됨

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 영상 강의를 보면서 영상에 나온 그림을 보면서 코드를 만들어봤습니다. 그래서 코드 리뷰 좀 받고 싶게 되더군요. 좀 부족하지만 올립니다. 힌트는 동영상에 나오는 그림에 나오는 노드 연결 했을때 나오는 코드(초록색 으로 칠해져 잇는 그림 들) 를 보고 영상을 돌려보면서 만들었습니다. 메인이 된것은 NodeMain3에서 스테틱 메서드 입니다. 반환이 안되면 값이 똑같이 나와서 반환을 해주었습니다.(이유를 모르겠음) 메인 코드 결과 추가1 인덱스 리무브에서, 맨마직꺼 리므브는 안되겟네요. 올리고나서 발견.. 추가2 설명 하라고 하신다면 솔직히 못 하겠습니다. sout로 node 값 찍어 보고, 어찌저찌 하다가 된거 라서요. 답변 부탁 드립니다.

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
생각하는자 댓글 3 좋아요 0 조회수 275

Appconfig관련질문입니다

미해결

스프링 핵심 원리 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] MemberAppzmf래스에서 MemberService memberService = appconfig.memberService(); 여기서 appconfig.memberService()을 호출합니다 public MemberService memberService(){ return new MemberServiceImpl(new MemoryMemberRepository()); } 여기서MemberServiceImpl로가서 그다음에 어떻게해서 MemoryMemberRepository()가 어떻게 실행되느건가요? public MemberServiceImpl(MemberRepository memberRepository){ this.memberRepository = memberRepository; } MemberServiceImpl(MemberRepository memberRepository)->MemberServiceImpl() 괄호안에 new MemoryMemberRepository()이 코드가 들어가는건가요?

  • spring
  • 객체지향
백종원 댓글 1 좋아요 0 조회수 184

2-4-예제, 절차에서 객체로 코드 오타 제보드립니다.

해결됨

오브젝트 - 기초편

안녕하세요 강사님 2-4-예제. 절차에서 객체로 강의를 수강하고 있습니다. 해당 내용이 강의를 수강하는데 불편함은 없지만 제보 드립니다. 강의시간 7:01에 isSatisfiedBy() 함수에 새로운 조건문 추가시 if () { } else if() { } if() { //if로 코드가 추가 되어 있습니다. } https://github.com/eternity-oop/object-basic-02-04/blob/main/src/main/java/org/eternity/reservation/domain/DiscountCondition.java 샘플 코드도 확인해 보았는데 if로 된 부분을 확인 하였습니다. 감사합니다.

  • 객체지향
  • 소프트웨어-설계
류재준 댓글 2 좋아요 1 조회수 258

단축키 질문드립니다

미해결

Readable Code: 읽기 좋은 코드를 작성하는 사고법

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 14분쯤 getSelectedRowIndex 메서드 추출하실때 두 줄을 한번에 선택하시는데 단축키가 뭘까요..

  • 객체지향
  • 리팩토링
  • 클린코드-기획전
Eddy 댓글 2 좋아요 0 조회수 277

coreApplication은 실행 시 debug레벨로 찍히는 이유

미해결

스프링 핵심 원리 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] OrderApp 이나 MemberApp실행 시 로그가 출력되지 않는 경우는 logback.xml 파일 추가해서 해결하였지만, logback 설정을 하지 않더라고 CoreApplication 실행 시에는 debug 레벨로 로그가 찍히는 이유가 궁금합니다.

  • spring
  • 객체지향
가리리요 댓글 2 좋아요 0 조회수 273

4강애싱크 프로그래밍에서 12:46에서

미해결

[코드팩토리] [입문] Dart 언어 4시간만에 완전정복

4강애싱크 프로그래밍에서 12:46에서 addnumber함수는 비동기함수가 아니라 동기함수 아닌가요?그럼 위에 addnumber()가 끝나고(2초기다리는거까지 하고)나서 밑에 addnumber()가 실행돼야하는거 아닌가요?? 왜 위 addnumber의 2초를 기다리지 않고 밑에 addnumber를 실행하죠? Addnumber의 반환타입이 Future<void>가 아니라 그냥 void니까 동기함수 아닌가요??

  • flutter
  • 함수형-프로그래밍
  • 객체지향
강원빈 댓글 1 좋아요 0 조회수 136

오타 제보

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 그냥 문제 없는 단순 오타이긴 한데 제보드립니다.. 리플렉션 강의노트와 강의자료 MethodV2 클래스 주석에 동적 메서드 호출 - 리플렉션 사용인데 사요로 되어 있어서 제보드립니다. 감사합니다.

  • java
  • 네트워크
  • 객체지향
bonjeong08 댓글 3 좋아요 0 조회수 247

다형성을 이용한 역할 디자인과 그에 대응되는 영속성 저장소에서의 모델 디자인의 괴리

해결됨

오브젝트 - 기초편

안녕하세요. 영호님 좋은 책 그리고 그에 보충되는 강의를 정말 잘 읽고 있습니다. 책을 읽고 많은 교훈(역할, 책임 협력의 중요성)을 얻고 실무에 반영해보려했던 2년간의 경험이 있었습니다. 역할과 책임에 따른 객체에 따른 클래스 디자인을 설계하고 관계형 데이터베이스와 ORM 기술을 이용해서 설계를 진행할 경우 테이블이 많아지는 경향성이 있다고 느껴왔습니다. DB 모델과 객체 모델은 달라야하는 걸까요? 아니면 같은 형태로 가도록 지향해야할가요? 비즈니스에 맞게 유연하게 진행해야하는 것은 알지만 여기서 "유연하게"가 모델과의 일치를 지향하면서 최적화를 해나가야하는건지 조영호님의 경험과 의견이 궁금합니다. (질문이 제대로 전달되는지 모르겠네요.)

  • 객체지향
  • 소프트웨어-설계
지호손 댓글 2 좋아요 4 조회수 335

데이터 호출관련 문의드립니다

미해결

스프링 핵심 원리 - 기본편

package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.order.Order; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; public class OrderApp { public static void main(String[] args) { OrderService orderService = new OrderServiceImpl(); MemberService memberService = new MemberServiceImpl(); Long id=10L; Member member = new Member(id, "aaa", Grade.VIP); memberService.join(member); System.out.println(member.getName()+" "+" "+member.getId()+" "+" "+member.getGrade()); Order order = orderService.createOrder(id,"XBOX",100000); // // System.out.println("order = " + order); } } 멤버의 정보까지는 정상적으로 불러와지는데 주문정보를 호출하는 과정부터 멤버 정보를 받아오지 못하는거 같습니다. public interface OrderService { Order createOrder(Long id, String itemName, int itemPrice) throws IllegalStateException; } public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository = new MemoryMemberRepository();//회원 정보 찾기 private final DiscountPolicy discountPolicy = new FixDiscountPolicy();//할인 금액 @Override public Order createOrder(Long id, String itemName, int itemPrice) { Member member = memberRepository.findById(id); if(id ==null){ throw new IllegalStateException("유효하지 않은 아이디 입니다" + id); } int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(id, itemName, itemPrice,discountPrice); } } public class Order { private Long id; private String itemName; private int itemPrice; private int discountPrice; public Order(Long id, String itemName, int itemPrice, int discountPrice) { this.id = id; this.itemName = itemName; this.itemPrice = itemPrice; this.discountPrice = discountPrice; } public int calculatePrice(){ return itemPrice - discountPrice; //비지니스 로직 } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getItemName() { return itemName; } public void setItemName(String itemName) { this.itemName = itemName; } public int getItemPrice() { return itemPrice; } public void setItemPrice(int itemPrice) { this.itemPrice = itemPrice; } @Override public String toString() { return "Order{" + "id=" + id + ", itemName='" + itemName + '\'' + ", itemPrice=" + itemPrice + ", discountPrice=" + discountPrice + '}'; } } order 패키지 쪽 소스 인데 수정해야 될부분이 있을까요 Exception in thread "main" java.lang.NullPointerException: Cannot invoke "hello.core.member.Member.getGrade()" because "member" is null at hello.core.discount.FixDiscountPolicy.discount(FixDiscountPolicy.java:10) at hello.core.order.OrderServiceImpl.createOrder(OrderServiceImpl.java:20) at hello.core.OrderApp.main(OrderApp.java:22) 에러는 이와같이 발생합니다 도와주셔서 감사합니다

  • spring
  • 객체지향
노태근 댓글 1 좋아요 0 조회수 152

클래스 따로 만들어 선언하는 이유

해결됨

김영한의 실전 자바 - 기본편

package ref.ex; public class ProductOrder { String productName; int price; int quantity; } package ref.ex; public class ProductOrderMain2 { static ProductOrder createOrder(String productName, int price, int quantity) { ProductOrder order = new ProductOrder(); order.productName = productName; order.price = price; order.quantity = quantity; return order; } static void printOrders(ProductOrder[] orders) { for (ProductOrder order : orders) { System.out.println("상품명: " + order.productName + ", 가격: " + order.price + ", 수량: " + order.quantity); } } static int getTotalAmount(ProductOrder[] orders) { int amount = 0; for (ProductOrder order : orders) { amount += order.price * order.quantity; } return amount; } public static void main(String[] args) { ProductOrder[] orders = new ProductOrder[3]; orders[0] = createOrder("두부", 2000, 2); orders[1] = createOrder("김치", 5000, 1); orders[2] = createOrder("콜라", 1500, 2); printOrders(orders); System.out.println("총 결제 금액: " + getTotalAmount(orders)); } } 섹션3, 기본형과 참조형 문제와 풀이 여기에서 productName, price, quantity를 다른 클래스에 따로 선언하는 이유가 인스턴스를 생성하기 위함인가요? 만약 맞다면, 클래스 ProductOrderMain2의 멤버변수로 선언하고 만들면 비효율적인가요? 아니면 불가능한가요?

  • java
  • 객체지향
jjlee021899 댓글 1 좋아요 0 조회수 105

문제와 풀이 2 findByCode메서드 질문

미해결

김영한의 실전 자바 - 중급 1편

안녕하세요 자바를 복습하다가 헷갈려서 질문 남깁니다 문제와 풀이 2번 HttpStatus 코드 정답에서 public enum HttpStatus { .... public static HttpStatus findByCode(int code) { for(HttpStatus status : values()) { ... ... } findByCode는 static 메서드인데 안에 values()가 있길래 values() 메서드도 static 메서드겠구나하고 enum 클래스에 들어가 values()를 찾으려했습니다 . 그런데 enum의 메서드에는 values()가 없었어요.. GPT에게 물어보니 values()는 enum 클래스에서 자동으로 생성되는 static 메서드 라는데 이게 무슨말인지 이해가 잘 안갑니다 !..

  • java
  • 객체지향
한조 댓글 1 좋아요 0 조회수 190

MethodEx1Ref 질문입니다

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] average 메서드에 return 값을 sum / 3.0이 아닌 sum / 3.0을 저장한 average 변수를 반환해도 상관없나요? 이렇게 변수에 넣어 반환하니까 변수명에 인텔리제이가 노란줄을 그어서 혹시 이렇게 반환하는게 잘못된것인지 궁금해서 질문드립니다.

  • java
  • 객체지향
김지협 댓글 1 좋아요 0 조회수 100

매개 객체의 값을 사용하는데 접근 제어자가 private 인데 바로 접근이 어떻게 가능한가요?

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. public class UserV2 { private String id; public UserV2(String id) { this.id = id; } @Override public boolean equals(Object obj) { UserV2 user = (UserV2) obj; return id.equals(user.id); } } 여기서 제일 마지막줄의 return id.equals(user.id); id 는 자신의 것이니까 바로 접근이 가능한데 user.id 는 매개변수로 넘어온 것인데 private 로 된 id에 바로 접근한다는게 이상합니다. getId() 메서드를 만들어서 사용하는 것이 아닌 직접 접근이 어떻게 가능한가요?

  • java
  • 객체지향
Pet Pity 댓글 2 좋아요 0 조회수 191

배열에서 사용하는 length는 무엇인기 궁금합니다.

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

안녕하세요, 배열에서 당연하게 쓰고 있다가 문득 궁금증이 생겨서 질문을 드립니다. 배열을 생성하고 해당 배열의 길이를 알고 싶을 때, 자주 쓰던 length가 어디서 나온 것인기 궁금합니다. String 객체 같은 경우 String a = "example"; int length = a.length(); 다음과 같이 length() --> 메서드임을 알 수가 있는데 배열에서 사용하는 length 같은 경우는 int[] a = new int[5]; int length = a.length; 다음과 같이 소괄호() 없이 사용을 하게 되는데, 이게 뭔지 궁금해서 IDE 에서 command 클릭을 해도 해당 메서드의 출처를 알 수 가 없어 질문을 드립니다. 배열에서 사용하는 length 같은 경우 자바 자체적으로 있는 static 메서드 같은 존재인가요?

  • java
  • 객체지향
노동준 댓글 1 좋아요 1 조회수 120

PDF 수업 자료 오타 제보

미해결

김영한의 실전 자바 - 중급 1편

8. 중첩 클래스, 내부 클래스 2의 30페이지 소제목에 오타가 있습니다 람다(lamba) -> 람다(lambda) 사소한 오타지만 수정되면 좋을 것 같습니다. 강의 재밌게 듣고 있습니다. 감사합니다

  • java
  • 객체지향
이무준 댓글 1 좋아요 0 조회수 129

개봉 날짜 및 평점 가져오는 코드 추가

미해결

남박사의 파이썬으로 봇 만들기 with ChatGPT

강의에서 제공된 코드는 영화 개봉 날짜, 평점을 가져오지 못하고 있는데 아래 코드 사용하시면 됩니다. 그리고 태그가 단일 요소일 경우 contents 속성을 사용하기 보다는 string 속성을 사용하면 리스트가 아닌 문자형으로 바로 출력할 수 있습니다. for dt, dd in zip(c_dt, c_dd): if dd.select_one('c-star'): rating = dd.select_one('c-star').next_element.strip() c_data[dt.string] = rating elif dd.select_one('span'): days = dd.select_one('span').string c_data[dt.string] = days else: c_data[dt.string] = dd.string

  • python
  • 웹-크롤링
  • 챗봇
  • 객체지향
  • openai-api
naroSEC 댓글 1 좋아요 0 조회수 168

인기 태그

인프런 TOP Writers

주간 인기글