묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 1편
예외 처리3 강의 return 질문
강의를 보면 public void method(){return ; }이렇게 해서 오류가 발생하면 메서드를 종료시키셨는데, 만약 public String method(){return ;} 을 하면 그냥 단순히 null 값을 return 하는 건가요 ? 만약 String 타입일때 강제 종료 시키고 싶으면 어떻게 해야하나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
String query = "SELECT t.members.size FROM Team t"; 오류
아래 내용 검색해보니 SIZE(t.member)로 사용하라고 안내하는데 왜 저는 안되는걸까요...? java.lang.IllegalArgumentException: org.hibernate.query.SemanticException: illegal attempt to dereference collection [com.example.jpql.jpql.Team(t).members] with element property reference [size]Caused by: org.hibernate.query.SemanticException: illegal attempt to dereference collection [com.example.jpql.jpql.Team(t).members] with element property reference [size]
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티 수정 과정과 쓰기 지연 저장소
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요! 플러시 강의 54초 부분에서 플러시 발생 시 수정된 엔티티가 쓰기 지연 SQL에 등록된다고 하셨는데, 그럼member.setUsername(",,,"); 와 같은 변경 메소드 호출변경은 영속성 컨텍스트에 바로 반영됨쓰기 지연 SQL 저장소에 UPDATE SQL 등록commit()후 flush()가 호출되며 스냅샷과 영속성 컨텍스트에 등록되어있는 엔티티 사이의 불일치 감지변경된 엔티티를 쓰기 지연 SQL 저장소에 등록flush로 쓰기 지연 SQL 저장소의 쿼리를 DB에 전송와 같이 동작하는 것이 맞나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테이블 관련 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]아직 @Column등의 어노테이션이 좀 헷갈려서 테이블과 코드를 같이보며 익숙해지려하고있는 상태에서 테이블을 보니, 예를들면 orders테이블에 ORDER_DATE가 추가가 되있고 코드에서는 private LocalDateTime orderDate; 와 같이 다른 어노테이션이 붙지 않앗음에도 데이터베이스에 추가가 되는거같아보입니다. 그럼 제가 이해하기론 따로 컬럼명을 바꿔서 넣고싶을떄 어노테이션에 name=""필드를 추가하고 아닐땐 그냥 필드 선언만 하면 되는건가요? 제가 이해를 제대로 한건지 모르겟어요 ㅠㅠ
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
네임드락 테스트 오류
저는 @Query 어노테이션의 값을 아래와 같이 강의 내용대로 따라했을 때 오류가 발생해서 public interface LockRepository extends JpaRepository<Stock, Long> { @Query(value = "select get_lock(:key, 3000)", nativeQuery = true) void getLock(String key); @Query(value = "select release_lock(:key)", nativeQuery = true) void releaseLock(String key); }아래와 같이 정합성이 맞지 않아서 테스트를 통과하지 못했습니다.그래서 구문을 아래와 같이 바꿔서 통과했는데 참고 하시길 바랍니다. ?1의 값은 key로의 값으로 고정되어 있는데 이럴 경우 문제가 없을지 궁금합니다.@Query(value = "select get_lock(?1, 3000)", nativeQuery = true) void getLock(String key); @Query(value = "select release_lock(?1)", nativeQuery = true) void releaseLock(String key);
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
강사님의 flush 중복 언급에 대해
강사님이 커밋하며 내부적으로 flush 가 호출된다고 했는데..왜 1번과 4번에 flush 가 두번있는건가요?내부적으로 flush 일어난다는게 1번과 4번 어떤건가요?커밋은 5번인데..처음에 어플리케이션 코드에인 tx.commit() 이것을 호출하면내부적으로 1번의 flush 가 호출된다는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@Transactional 적용 범위 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요! 강의 잘 듣고 있습니다.@Tansactional 어노테이션을 붙이면 private 메서드들에도 해당 어노테이션이 적용되는 건가요?이 질문을 하는 이유는 join 메서드 안에서 validateDuplicateMember 메서드를 사용하고 있고 join은 @Transactional이 걸려있는 상태인데 이럴 경우에 어떤 게 적용되는지 궁금합니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
Docker restart시 spring boot 연동이 안됩니다.
igwangmin@igwangmin-ui-MacBookPro ~ % docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8550a9a141fd mysql "docker-entrypoint.s…" 15 hours ago Exited (0) 11 hours ago mysql igwangmin@igwangmin-ui-MacBookPro ~ % docker container restart 8550a9a141fdaee67b6f7c586a24085c98a9b99512cb7a8901f0c23cf9082536 8550a9a141fdaee67b6f7c586a24085c98a9b99512cb7a8901f0c23cf9082536 igwangmin@igwangmin-ui-MacBookPro ~ % docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8550a9a141fd mysql "docker-entrypoint.s…" 15 hours ago Up 4 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysqlDocker restart를 한 후 Spring을 가동했을 때 아래와 같은 오류가 발생합니다. 2024-04-21 09:25:02.485 INFO 1378 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2024-04-21 09:25:03.641 ERROR 1378 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.29.jar:8.0.29] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.29.jar:8.0.29] at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-java-8.0.29.jar:8.0.29] at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448) ~[mysql-connector-java-8.0.29.jar:8.0.29] at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-java-8.0.29.jar:8.0.29] 기존에 알려주신 방법인 아래와 같은 터미널 창에서 입력후 재실행하였으나 똑같은 오류가 발생해 혹시 다른 방법이 존재할까요igwangmin@igwangmin-ui-MacBookPro Mikor % docker exec -it mysql bash bash-4.4# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.3.0 MySQL Community Server - GPL Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use stock_example; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | stock_example | | sys | +--------------------+ 5 rows in set (0.00 sec) mysql> use stock_example; Database changed mysql> Spring 버전은 아래와 같고 plugins { id 'org.springframework.boot' version '2.7.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.shop' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } 도커 버전은 아래와 같습니다. igwangmin@igwangmin-ui-MacBookPro ~ % docker version Client: Docker Engine - Community Version: 26.0.0 API version: 1.44 (downgraded from 1.45) Go version: go1.22.1 Git commit: 2ae903e86c Built: Wed Mar 20 15:10:03 2024 OS/Arch: darwin/arm64 Context: desktop-linux Server: Docker Desktop 4.28.0 (139021) Engine: Version: 25.0.3 API version: 1.44 (minimum version 1.24) Go version: go1.21.6 Git commit: f417435 Built: Tue Feb 6 21:14:22 2024 OS/Arch: linux/arm64 Experimental: false containerd: Version: 1.6.28 GitCommit: ae07eda36dd25f8a1b98dfbf587313b99c0190bb runc: Version: 1.1.12 GitCommit: v1.1.12-0-g51d5e94 docker-init: Version: 0.19.0 GitCommit: de40ad0
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일대일 단방향 관계
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]일대일 관계에서 외래 키를 대상 테이블에 넣을 때 왜 양방향 관계만 JPA에서 지원하고 단방향은 지원하지 않는지 궁금합니다.
-
해결됨윤파고의 정보처리기사 DB/프로그래밍 All-In-One
08. 응용 문법 활용(5)_프로그래밍[기출] 23분 문제 질문
2021년 3회차 1번문제에서 heap 주소가 200이라고 하셨는데 이 부분에서 왜 200인지에 관한 설명이 나와있지 않아서 질문 드립니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 매핑과 단방향 매핑의 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]단방향 매핑이랑 양방향 매핑의 차이점에 대해 생각해보았습니다. 먼저, DB에서 FK 하나만 있으면 양 테이블 Join 조회가 가능해서 FK 는 단방향 매핑처럼 DB 테이블에 존재하면 된다고 이해했습니다. 그래서 단방향 매핑과 양방향 매핑의 차이는FK "하나"를 가지고 단방향 이동을 할것인가 or 양방향 이동을 할것인가의 차이-> 이 경우는 양방향 매핑은 mappedBy 로 객체 세상에서 기존 단방향에서 양방향으로 접근이 가능하게 만들고(DB에선 원래 가능했음), By 쪽에서 DB 세상의 반대쪽 매핑 테이블 값을 변경하지 못하도록 JPA 에서 막는다고 이해했습니다. 제가 이해한 게 맞는지 궁금합니다. 추가적으로 @OneToMany 가 붙은 컬럼은 데이터베이스 테이블에 생성되지 않는건가요 원래?
-
미해결김영한의 실전 자바 - 중급 1편
열거형 - ENUM 수업자료 오타
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]5. 열거형 - ENUM.pdf 의 p.18 에 SLIVER 오타가 있습니다.SLIVER -> SILVER 로 변경되어야 할 것 같습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트시 중복회원, 회원가입 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. https://drive.google.com/file/d/1QfiDY489T4IrB7HkpCKxXqszfbUoTl9N/view?usp=drive_link 테스트시 이런 오류가 뜨는데 어디부분이 잘못됬는지 잘 모르겠습니다..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
member.getName()
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. https://drive.google.com/file/d/10lDsYlqHbOkkPpEJtsSIOiDwBK9qwJD4/view?usp=drive_link member.getName()부분에서 오류가 뜨는데 잘 모르겠습니다 ㅠㅠ
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
뮤텍스 수도 코드에 대한 질문
락을 점유중인 스레드만이 락을 해제할 수 있으므로 release에 while문은 필요없지않나요? 1. 락을 점유한 스레드만이 release할 수 있음.2. 즉 release할때는 하나의 스레드만이 접근 가능함.3. 고로 release에 있는 while문은 필요가없음.추가로 제공해주신 아래 코드에서 lock 변수가 강의에서 보여주신 수도코드에서는 synchronized가 lock을 의미하고 value를 의미하는거죠?? 용어가 헷갈려서 문의드립니다. public class Mutex { private boolean lock = false; public synchronized void acquired() { while (lock) { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } this.lock = true; } public synchronized void release() { this.lock = false; this.notify(); } }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시 초기화 detach 질문
[질문 내용]안녕하세요 저와 비슷한 질문이 게시판에 올라와있는데 답변이 이해가지 않아서 질문 올립니다 아래 코드에서 강의와 다른점은 System.out.println에서 reference.getClass() 대신 reference를 썼다는 점 입니다. try { Member member1 = new Member(); member1.setName("member1"); em.persist(member1); em.flush(); em.clear(); Member reference = em.getReference(Member.class, member1.getId()); System.out.println("reference = " + reference); em.detach(reference); System.out.println(reference.getName()); tx.commit(); } catch (Exception e) { tx.rollback(); e.printStackTrace(); } finally { em.close(); }reference.getClass()에서 getClass()를 쓰지 않으면 reference.geName()했을때 member1로 출력이 됩니다.그런데 이 이유를 모르겠습니다. 저는 detach(reference)를 하면 프록시 객체 reference가 영속성 컨텍스트에서 분리되어서 getName()을 쓰지 못할거라고 생각했는데 왜 member1이 출력되는지 모르겠습니다 여기서도 에러가 나야하는것 아닌가요?
-
해결됨윤파고의 정보처리기사 DB/프로그래밍 All-In-One
23분52초 문제에 질문드립니다.
구글링도 해봤는데 좀 애매해서 후치연산자를 좀 엄밀하게 설명해주셨으면 좋겠어요. 해당 문제a += ++a % b++ ? c*d : b/c에서b/c를 계산 할때 후치연산자를 먼저 적용하고 연산하시던데해당 줄의 전부를 모두 계산하고 최종 a에 대입까지 완료하고 나서야 후치연산자를 계산하는게 아닌가요?구글링으로 찾아보니 컴파일러에 따라 연산 구조가 달라 순서도 다르다고 하던데정확히 연산 우선순위에서 어떤시점에 후지연산이 적용 되는건지 알려주세요.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
@Autowired 안 쓰는 이유가 있을까요??
Service나 jdbcTemplate 변수 설정하실 때 @Autowired 안 쓰신 이유가 따로 있으실까요???
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트 코드 작성 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 강의에서 테스트 코드 작성 중 MemoryMemberRepository에 clearStore()를 추가해주셨는데, 해당 메소드는 실제 실행시에는 사용되지 않고 테스트할때만 사용하는 메소드인 건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 폴더가 만들어지지 않습니다.
윈도우에서 ./gradlew 해서 설치한 후 build폴더가 안만들어지는데, 원인을 모르겠습니다. 저는 윈도우인데 gradlew.bat 명령어가 안먹히긴 하더라구요그래서 ./gradlew로 명령어 치니 뭔가 설치된것처럼 석세스가 나오긴 하네요..자바는 18입니다.