묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
과제 답안
두번째 과제 풀고 있는데 답이 혹시 어디 있을까요?
-
해결됨김영한의 실전 자바 - 중급 1편
List<Integer> list = new ArrayList<>();가 사용 가능한 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.List<Integer> list = new ArrayList<>(); 이것이 왜 list 인터페이스가 클래스처럼 기능이 구현된 채로 사용될 수 있는 것이죠? 클래스처럼 기능이 구현된 채로 사용하려면 ArrayList<Integer> list = new ArrayList<>(); 이렇게 사용해야 하지 않나요,,?
-
미해결예제로 배우는 스프링 입문 (개정판)
java -jar target/*.jar 명령어 오류..
우여곡절 끝에 JDK를 17버전으로 설치한 후./mvnw package 명령어를 통해 maven 세팅을 완료했습니다.하지만 java -jar target/*jar 해당 명령어가 제대로 입력되지 않습니다. pwd를 통해서 강사님이랑 같은 경로인걸 확인했어요몇 개 질문의 답변대로 target 경로로 들어가서 진행을 해봐도 안됩니다.일단 pom.xml을 확인해보니.. 스냅샷의 버전도 다른것같아요파일명까지 입력한 명령어도 먹질않네요ㅜㅜ이 세팅이 끝나야 강의를 쭉쭉들을 수 있을것같은데..도와주세요! 😥😥
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
application.yml 관련 문제
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]아래와 같이 yml 파일을 설정한다면 어떻게 조치해야하는지 궁금합니다.해당 boot 설치 버전은 gradle과 같습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
switch문강의에서 Swich4에서 ;이 왜 들어가나요
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기서는 switch문 닫는중괄호에 ;을 넣지 않았는데 여기에는 ; 이 왜 들어가는 건가요?
-
미해결실전! Querydsl
buildtool
springboot 3.2부터 build and run 두 가지를 전부 gradle로 해야 한다 하셨는데, 예전 강의에서는 intellij 로 선택하라 하셨던게 기억나서 여쭤봅니다. 어떤게 바뀌어서 gradle을 고르라 하셨나요?
-
해결됨김영한의 실전 자바 - 중급 1편
문제 풀이 1-1 문제 질문이요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]문제를 풀긴 해서 답이 나오긴 했는데.답안 풀이를 보니 코드를 이런식 으로도 작성해도 되는지모르겠더라고요.한번에 값을 넣어봣는데.. (생각이 안나서, 어찌 저찌 하다가 하니 이렇게 되었는데)이런 식으로 코드를 해도 되는건가요?
-
해결됨김영한의 실전 자바 - 중급 1편
섹션3. String
여기서 원래 charArr을 출력하면 배열의 참조값이 나와야하는 거라고 생각했는데 왜 hello가 나오는 건가요?int, String 배열을 출력하면 참조값이 나오는데 char만 뭔가 다른게 있는건가요?public static void main(String[] args) { char[] charArr = new char[] {'h', 'e', 'l', 'l', 'o'}; System.out.println(charArr); int[] i = new int[] {1, 2, 3}; System.out.println(i); } -실행 결과 hello [I@7cc355be
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
fetch join 4개만 나오는건 알겠는데 json에서는 다른이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]join을 하면4개가 나오는데id가 같지만 orderItems는 서로 다르게 나옵니다. 근데 왜 json에서는 orderItems 중복되서 왜 똑같이 나오는건가요? 그리고 값이 왜 orderItems는 여러개씩 출력이 되는거죠? 사실상 sql시 하나씩 setter로 들어가서 출력되지않나요? 예) "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 }, { "itemName": "JPA2 BOOK", "orderPrice": 20000, "count": 2 } ] 위와 같이 orderItems가 두개가 나옵니다.근데 sql은 하나씩 출력이 되는데 그러면 "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 } ]위와 같이 하나만 출력이 되어야하는거 아닌가요?setter로 매핑 되면 그렇지않나요?
-
해결됨김영한의 실전 자바 - 중급 1편
ChronoUnit import 오류
ChronoUnit이 import되지 않고 에러가 나는데 이유가 무엇인가요? 해결법을 못찾겠습니다ㅠㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실전예제1을 따라하는 중인데 오류가 납니다.
[질문 내용]실전예제1을 따라하고 있는데 16분 30초쯤에서 실행 하는 부분까지 따라했는데 저는 create가 안되고 이렇게 에러가 납니다. 해결 방법 알 수 있을까요? Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to load class [org.h2.Driver]
-
미해결김영한의 실전 자바 - 기본편
메서드 추출 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.MusicPlayerMain3 클래스에서 만든 메서드static void on(MusicPlayerData data){ // 플레이어 켜기 data.isOn = true; System.out.println("음악 플레이어를 시작합니다."); }static void on2(){ MusicPlayerData data = new MusicPlayerData(); data.isOn = true; System.out.println("음악 플레이어를 시작합니다."); }강의에서 나온 on(MusicPlayerData data) 메서드처럼 매개변수를 넣지않고on2() 처럼 매개변수를 넣지않고 저런식으로 짜는건 좋지않은 방법인가요 ?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findAll 테스트 전에는 오류 없었는데 findAll 테스트 했더니 findbyName에서 에러 났어요..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.전체 코드입니다.package com.example.hellospring.repository; import com.example.hellospring.domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import java.util.List; import java.util.Optional; class MemoryMemberRepositoryTest { MemberRepository repository = new MemoryMemberRepository(); @Test public void save(){ Member member = new Member(); member.setName("spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); // Assertions.assertEquals(member, result); Assertions.assertThat(member).isEqualTo(result); } @Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring1").get(); Assertions.assertThat(result).isEqualTo(member1); } @Test public void findAll(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); List<Member> result = repository.findAll(); Assertions.assertThat(result.size()).isEqualTo(2); } } 참고로 save 테스트에서 에러가 발생해서 findById 를 String -> Long 으로 바꾼 상태입니다.package com.example.hellospring.repository; import com.example.hellospring.domain.Member; import java.util.List; import java.util.Optional; public interface MemberRepository { Member save(Member member); Optional<Member> findById(Long id); Optional<Member> findByName(String name); List<Member> findAll(); } package com.example.hellospring.repository; import com.example.hellospring.domain.Member; import java.util.*; public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
assertThat import, RunWith annotation 관련 문의
=======================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]혹시 여기서 import 활성화를 위해서 어떤 조치를 취해야 하는지 궁금합니다. (setting 설정은 Gradle에서 실행하도록 설정해놨음)
-
미해결
@DataJpaTest에서 참조하는 Entity 관련 질문 있습니다
개발자 선배님들 안녕하세요. @DataJpaTest 관련해서 궁금한점이 생겨서 질문드립니다. 제가 작성한 User Entity에서 Address Entity를 FK로 참조하고 있습니다. 여기서 UserRepository의 테스트 코드를 작성할 때 AddressRepository도 @Autowired로 등록 후 Address를 먼저 save()로 insert 후에 User Insert 테스트를 작성해야 하나요??? 이러면 UserRepository의 테스트가 아니라 UserRepository, AddressRepository 두개의 테스트를 작성하는 것이라 좀 이상하다고 생각이 드네요.. 제가 작성한 코드입니다. package com.kh.bookfinder.repository; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import com.kh.bookfinder.entity.Address; import com.kh.bookfinder.entity.User; import com.kh.bookfinder.entity.UserStatus; import jakarta.persistence.EntityManager; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase.Replace; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; @ActiveProfiles("test") @DataJpaTest @TestPropertySource(locations = "classpath:application-test.properties") @AutoConfigureTestDatabase(replace = Replace.NONE) public class UserRepositoryTest { @Autowired UserRepository userRepository; @Autowired AddressRepository addressRepository; Address givenAddress; @BeforeEach public void setup() { givenAddress = Address.builder() .si("서울특별시") .gu("강남구") .dong("역삼동") .roadFullAddress("역삼역") .build(); addressRepository.save(givenAddress); } @Test public void userInsertTest1() { // Given: User가 주어진다. User givenUser = User.builder() .email("user@mail.kr") .password("password") .phone("010-1234-5678") .nickname("nickname") .status(UserStatus.ADMIN) .address(givenAddress) .build(); // When: save() 메서드를 호출하여 User를 저장한다. User actual = this.userRepository.save(givenUser); // Then: actual은 givenUser와 같다. assertThat(actual).isNotNull(); assertThat(actual).isEqualTo(givenUser); } @Test @DisplayName("email은 unique로 중복이 불가능하다") public void userInsertTest2() { // Given: email이 같은 User가 2개 주어진다. User givenUser1 = User.builder() .email("user@mail.kr") .password("password") .phone("010-1234-5678") .nickname("nickname") .status(UserStatus.ADMIN) .address(givenAddress) .build(); User givenUser2 = User.builder() .email("user@mail.kr") .password("password2") .phone("010-5678-1234") .nickname("nickname2") .status(UserStatus.ADMIN) .address(givenAddress) .build(); // When: save() 메서드를 호출하여 givenUser1를 저장한다. User actual = this.userRepository.save(givenUser1); // And: save() 메서드를 호출하여 givenUser2를 저장한다. // Then: Exception이 발생한다. assertThatThrownBy(() -> this.userRepository.save(givenUser2)) .isInstanceOf(DataIntegrityViolationException.class) .hasMessageContaining("Duplicate"); } @Test @DisplayName("nickname은 unique로 중복이 불가능하다") public void userInsertTest3() { // Given: email이 같은 User가 2개 주어진다. User givenUser1 = User.builder() .email("user@mail.kr") .password("password") .phone("010-1234-5678") .nickname("nickname") .status(UserStatus.ADMIN) .address(givenAddress) .build(); User givenUser2 = User.builder() .email("user2@mail.kr") .password("password2") .phone("010-5678-1234") .nickname("nickname") .status(UserStatus.ADMIN) .address(givenAddress) .build(); // When: save() 메서드를 호출하여 givenUser1를 저장한다. User actual = this.userRepository.save(givenUser1); // And: save() 메서드를 호출하여 givenUser2를 저장한다. // Then: Exception이 발생한다. assertThatThrownBy(() -> this.userRepository.save(givenUser2)) .isInstanceOf(DataIntegrityViolationException.class) .hasMessageContaining("Duplicate"); } } 읽어주셔서 감사합니다..!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
왜 2개 인가요...? 22:12
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]TeamA, TeamB, TeamC를 persist했는데...jpql이 select t from Team t를 하게 되면 teamA , B, C나와서 3개 아닌가요?
-
미해결김영한의 실전 자바 - 중급 1편
타입추론 질문
자바에서 var 키워드 써서 타입추론하는 방식은 비추천 하시나요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
11. 임시반장 정하기
59 8 7 6 55 6 7 8 91 2 3 7 84 5 3 4 26 2 8 4 2 이예제의 답이 왜 3번학생인가요 4번학생이이 제일 많이 겹치는거 아닌가요?
-
해결됨김영한의 실전 자바 - 중급 1편
객체의 참조값 직접 출력
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]toString()이 오버라이딩 된 경우 객체의 참조값을 출력할 수 없기 때문에 System.identityHashCode()와 Integer.toHexString()를 사용하여 출력할 수 있다고 하셨는데요,System.identityHashCode()을 통해 정수로 출력한 참조값을 Integer.toHexString() 16진수 문자열로 굳이 변환하는 이유가 단순히 가독성을 올리기 위한 작업이라고 보면 될까요?
-
해결됨김영한의 실전 자바 - 중급 1편
섹션2 : 불편객체 - 예제
여기에서 실행 결과가 ImmutableAddress로 나오는데 왜 그런건가요??선생님것을 보면 Address 클래스로 나오는데...다시 삭제했다가 다시 만들어도 실행 결과에서 ImmutableAddress클래스로 나오는 이유를 모르겠습니다.package lang.immutable.address; public class MemberMainV1 { public static void main(String[] args) { Address address = new Address("서울"); // x005 MemberV1 memberA = new MemberV1("회원A", address); // x002 MemberV1 memberB = new MemberV1("회원B", address); // x003 // 회원A, 회원B의 처음 주소는 모두 서울 System.out.println("memberA = " + memberA); System.out.println("memberB = " + memberB); memberB.getAddress().setValue("부산"); System.out.println("부산 -> memberB.address"); System.out.println("memberA = " + memberA); System.out.println("memberB = " + memberB); =================================================================== -실행결과 memberA = MemberV1{name='회원A', address=ImmutableAddress{value='서울'}} memberB = MemberV1{name='회원B', address=ImmutableAddress{value='서울'}} 부산 -> memberB.address memberA = MemberV1{name='회원A', address=ImmutableAddress{value='부산'}} memberB = MemberV1{name='회원B', address=ImmutableAddress{value='부산'}} } }