[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] System.out.print("정수를 입력하세요:"); int intValue = scanner.nextInt(); System.out.println("입력한 정수: " + intValue); System.out.print("실수를 입력하세요:"); double doubleValue = scanner.nextDouble(); System.out.println("입력한 실수: " + doubleValue); 타입이 다르면 오류가 발생한다고 했는데, double에 정수(예 15) 입력하면 15.0으로 나오더라구요. 이건 자동형변환이 된건가요..? 아니면 숫자 -> 숫자는 상관 없는 걸까요?
스프링이 처음입니다. 문의가 어설퍼도 이해바랍니다. 스프링으로 개발된 프로젝트가 있습니다. 서버에는 컴파일 된 class 파일들이 있는데요. 부분적인 기능 수정을 위해서 전체 프로젝트를 WAR파일로 컴파일하지 않고 해당 java 파일만 컴파일하여 class파일을 만들어 서버에 올려 파일을 교체해도 전체 서비스 작동에 문제가 되지는 않는지 궁금합니다. a.java -> a.class 예를 들어 요렇게 부분 파일만 코드 수정 후 서버에 해당 a.class 파일을 교체해도 문제가 없는지요.
코드를 보면 조인만 하고 다른 동작은 안하는것 같은데 막상 MemberService 부분을 제외 해보면 NullPointException이 생겨서MemberService가 있어야만 예외가 안생기는지 궁금합니다 @Test void createOrder() { Long memberId = 1L; Member member = new Member(memberId, "memberA", Grade.VIP); memberService.join(member); Order order = orderService.createOrder(memberId, "itemA", 10000); Assertions.assertThat(order.getDiscountPrice()).isEqualTo(1000); }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] Scanner scanner와 Scanner input의 차이가 궁금합니다. 강의자료에는 Scanner input이라고 되어있는데 Scanner scanner를 사용해도 되는지도 궁금합니다.
public Car(String model, int chargeLevel) { this.model = model; this.chargeLevel = chargeLevel; this.engine = new Engine(this); } 생성자에서 객체 생성하는 부분이 이해가 안돼요. CarMain에서 인스턴스 생성할 때 모델, 차지레벨 받는 거까진 이해가 되는데 Car인스턴스에 엔진 필드를 새로운 엔진 객체로 받는건가요..? 그리고 또 그 엔진 객체엔 this로 받는 게 car인건가요..? 헷갈려서 어떻게 질문드려야할지도 잘 모르겠어요..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의를 듣던 중 의문이 생겨 질문 드립니다.메모리 최적화를 위해 value % capacity 를 통해 HashIndex 를 얻고, 이를 통해 메모리 최적화와 검색, 조회 속도 등에서 이점을 얻을 수 있다는 것은 이해가 됐습니다.그런데, List 의 배열 특성상, capacity가 동적으로 변하게 될텐데, 이에 따라 동일한 value 를 넣어도 다른 hashIndex가 만들어지지 않을까요?학습용이라 가장 심플한 방법으로 보여주신 것 뿐일까요?
회원 서비스의 역할이 회원 가입과 회원 조회라는 것은 알겠는데 회원 가입과 회원 조회 그 자체가 구현이 되는 것인 가요? 실무에서 글로만 요구 사항을 전달 받았을 때 무엇을 역할로 지정하고 무엇을 구현으로 정하는지 궁금합니다, 기준이 있다면 기준이 무엇인지 알고 싶습니다
기본편 강의에서 접근 제어자 설명할때 이런 내용이 있었는데요, 클래스 레벨의 접근 제어자 규칙 - 클래스 레벨의 접근 제어자는 public , default 만 사용할 수 있다. private , protected 는 사용할 수 없다. 그런데 이번에 정적 중첩 클래스를 설명하면서 클래스 선언시에 private static class 클래스명 이라고 선언을 하잖아요. 앞선 기본편 강의 내용에서 언급했던 내용과 조금 달라서 헷갈립니다. private static class 클래스명 은 중첩 클래스에서만 사용하는 문법이다라고 생각하면 될까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 내용 중 아래 코드를 실행하면, private static void action (Object obj){ if (obj instanceof Dog dog) { dog.sound() ; } else if (obj instanceof Car car){ car.move() ; } } 정상적으로 dog.sound()와 car.move()가 출력이 됩니다. 여기서 문의드릴 사항은 main 메서드에서 따로 Object object = new Dog()와 같이 해주지 않았음에도 if (obj instanceof Dog dog) 부분에서 어떻게 Dog타입의 인스턴스로 Obj가 존재하는 지 확인 되어 확인과 동시에 변수를 선언하여 dog.sound()가 호출 될 수 있는 건가요? 따로 Object object = new Dog()를 해주지 않아도. 일시적 다운캐스팅으로 가능해진 것인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] if (num1 == 0 && num2 == 0) { 대신 if (sum == 0) { 가능한지 궁금합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] compileOnly 'org.projectlombok:lombok:1.18.24' gradle dependencies에 위와 같이 의존성을 추가해주고, lombok 플러그인 활성화, 어노테이션 프로세서 설정 활성화 해주었는데 lombok 사용가능하면 초반에 영한님 처럼 설정 안해주어도 되나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 같은 모듈에서만 접근 가능하고 여기서 말하는 모듈은 IDEA Module, Maven project 등등 이라고 하셨는데요 이게 정확한 어디 범위인지 제가 지식이 낮아서 그런지 이해가 잘안됩니다ㅠ 다른 클래스에서는 접근이 가능 한건가요?
문제 1번의 경우 if 구문을 사용할 때 저는 else 를 안 넣고 바로 return 으로 표현했거든요. static <T extends BioUnit> T maxHp(T unit1, T unit2) { if (unit1.getHp() > unit2.getHp()) { return unit1; } return unit2; } 답안엔 else 를 같이 쓰는 것으로 나와서 혹시 else를 쓰고 안 쓰고를 결정하는 메뉴얼이나 혹은 더 좋은 코드의 기준이 있을까요? ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
안녕하세요, 우빈님! 정말 좋은 강의를 제공해주셔서 감사합니다. 제가 고민하던 주제에 관해 다뤄주셔서 정말 흥미를 가지고 강의를 들을 수 있었습니다 ☺ 강의를 다 들은 시점에 개발 공부를 시작한 이래로 늘 가지고 있던 오랜 궁금한 점이 있어서 이렇게 질문을 남기게 되었습니다! 조금 장문이 될 수도 있을 거 같네요 🥲 스프링을 사용해서 개발하게 되면 제일 처음 배우는 구조가 Controller -> Service -> Repository 이런 구조인데요, 보통 비즈니스 로직은 Service 에 작성된다고 배웠습니다. Service 레이어에서 모든 게 처리되고 비즈니스 로직이 도메인 쪽에 위치하지 못 하게 되는 것 같습니다. 애초에 도메인이라는 개념 자체가 없고 바로 JPA 엔티티를 만들고 @Service 어노테이션이 붙은 클래스에서 모든 걸 다 처리하는 거 같아요. 제가 국비 교육에서 배운 팀 프로젝트나 3개월 간 짧게 경험해 본 실무에서도 다 이렇게 코드를 짰던 거 같습니다. 공부하다보니 이런 걸 트랜잭션 스크립트 라고 하는 거 같더라구요. 그런데 아무리 생각해도 이런 방식은 객체지향적이지 않다는 생각을 지울 수가 없었습니다. 제가 객체지향의 사실과 오해, 오브젝트 등에서 읽은 객체의 역할, 책임, 협력 이런 것들을 적용해보지 못 하는 것 같아서 객체지향적으로 코드를 짜는 것은 어떤 것일까 하는 갈망이 늘 있었습니다. 이런 갈망이 있어서 이번 강의를 더 간절히 기다렸던 거 같아요 😀 이번 강의는 스프링이나 데이터베이스를 전혀 사용하지 않고 순수 자바로만 객체지향에 대해서 설명을 해주셨는데요, 만약 스프링과 데이터베이스 기술(JPA) 등을 사용한다고 할 때는 어떻게 처리하시는 지 궁금합니다. 이와 관련해서 제가 공부한 건 JPA 엔티티와 별개로 도메인 역할을 하는 클래스를 만들고 해당 클래스에서 비즈니스 로직을 처리하게 하고 도메인 객체를 JPA 엔티티로 변환해서 데이터베이스에 저장하는 방식이었습니다. (도메인 객체와 영속성 객체를 분리한 것이라고 할 수 있을 거 같습니다.) 이렇게 하면 도메인 객체 안에 있는 비즈니스 로직을 단위 테스트 하기도 쉽고(도메인 객체는 순수 자바(코틀린) 코드로만 돼 있으니까요!) 데이터베이스 중심적이지 않고 도메인 중심적으로 생각을 할 수 있는 것 같다는 인상을 받았습니다. 다만 이렇게 할 때는 어떤 개념을 통해 도메인을 추출해야할 지, 그리고 책임을 어떤 도메인에 넣어야 할 지 고민할 게 많더라구요. 근데 약간 소설의 등장인물을 설정하는 거 같아서 재미는 있었습니다 ㅎㅎ 이렇게 접근을 하니 @Service 어노테이션이 붙은 클래스는 단순히 객체들이 모여서 서로 협력할 수 있게 해주는 광장(?) 이라고 해야될까요, 중개해주는 역할만 하게 되는 것 같다는 생각을 해보기도 했습니다. 이러다 보니 DDD 에 대해서도 많이 관심을 갖게 됐습니다. 도메인 위주로 설계 하고 도메인에게 적절한 역할을 할당하는 방식인 거 같아서요. 그리고 아키텍처에도 많이 관심이 생기더라구요. 단순히 Controller -> Service -> Repositoy 구조의 레이어드 아키텍처에선 처음 언급한 문제를 해결하는게 쉽지 않아 보였거든요. 주절주절 질문이 길었는데 요약을 해보자면 다음과 같습니다. 스프링, JPA 같은 기술과 접목했을 때 이번 강의에서 배운 추상, 객체지향적 개발 방식을 어떻게 적용할 수 있을까요? 이후로 공부할 만한 주제로 DDD, 아키텍처 등이 적절할까요? 비전공으로 혼자서 백엔드 개발자 취업 준비 중이라 질문할 곳이 마땅치 않아 여기에 이렇게 남기는 점 미리 양해를 구합니다 😭
자바 메모리 구조 강의 9:40 쯤에 제가 제대로 이해한게 맞는지 확인 부탁드립니다. Item1, Item2 인스턴스 2개를 생성하면 name, price, quantity 는 고유한 값을 가지므로 힙 영역에 보관되지만 getName 메서드, getTotalPrice 메서드는 메서드 영역에 보관된다. 이 말이 맞는지 확인 부탁드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 올려주신 강의자료를 참조하여 깃허브 블로그에 올려도 괜찮을까요? 혹 저작권때문에 먼저 여쭤봅니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 해당 강의에서 컴포넌트 스캔으로 빈을 등록할 때 의존 관계를 주입하는 방법 중 생성자 주입, setter 주입, 필드 주입, 일반 메소드 주입을 배웠습니다. 그렇다면, 아래 코드와 같은 수동 빈 등록에서 //AppConfig.java //memberRepository 빈은 등록되어 있다고 가정 @Configuration public class AppConfig { //1. 이렇게 하면 생성자 주입 @Bean public MemberService memberService1(){ return new MemberServiceImpl(memberRepository()); } //2. 이렇게 하면 setter 주입 public MemberService memberService2(){ MemberServiceImpl memberService = new MemberServiceImpl(); memberService.setMemberRepository(memberRepository()); return memberService; } //3. 필드 주입은 어차피 setter가 필요하므로 생략 //4. 이렇게 하면 일반 메소드 주입 public MemberService memberService3(){ MemberServiceImpl memberService = new MemberServiceImpl(); memberService.init(memberRepository()); return memberService; } } 각 번호대로 작성하면 되나요?