학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. toString()강의부터 소리만 나오고 검은색 화면만 보이는데 인프런측의 문제일까요..?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 jpa 기본편 수강 중인 학생입니다. 애플리케이션 개발 강의에서 member.setId(1L); member.setName("HelloA"); 하고 2L,HelloB로 바꿔서 실행 후 테이블조회를 하면 1L과HelloA는 뜨지 않고 2L,HelloB만 조회가 됩니다. 코드는 똑같이 작성한 것 같은데 어디가 문제일까요? public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { //code Member member = new Member(); member.setId(1L); member.setName("HelloA"); em.persist(member); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } } 실행을 시키면 Hibernate: drop table if exists Member cascade 1월 01, 2025 5:44:30 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@4ed4a7e4] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. Hibernate: create table Member ( id bigint not null, name varchar(255), primary key (id) ) 1월 01, 2025 5:44:30 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@134ff8f8] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. Hibernate: /* insert for hellojpa.Member */insert into Member (name, id) values (?, ?) drop하고 create가 됩니다...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 연습문제 회원 관리 기능을 만드는중 findByName에서 헷갈려서 질문을 남김니다. 다음은 제가 작성한 소스코드입니다 /** * get 메서드는 key값을 통해서 value를 반환한다 * key-> id, value ->memeber * value의 구조는 STRING: ID, STRING NAME이므로 * value를 하나로 펼쳐서 순회한 다음, 이름에 맞는 member를 반환 * */ public Member findByName(String name) { Boolean findMember = memberMap.containsValue(name); if(findMember!=null){ for(Map.Entry<String, Member> entry: memberMap.entrySet() ){ String key =entry.getValue().getId(); String parameterName = entry.getValue().getName(); if(parameterName==name) { return memberMap.get(key); } } } return null; } 다행히 결과는 문제 없이 돌아가가나 String key = entry.getValue().getId()에 디버그를 찍으면 Boolean findMember = memberMap.containsValue(name);//findMember:false, name: 회원3 다음과 같이 표기 되는데 분명 회원3의 값을 저장 했는데 왜 findMember가 false로 나오는 걸까요? 이유가 궁금합니다. 그리고 제가 작성한 findByMember 로직이 맞을까요 ? 많은 피드백 부탁드립니다!
수업 내용을 스크립트로 볼 수 있어서 매우 큰 도움을 받고 있습니다. 듣는 도중 자잘한 오타는 건의를 하는 편인데, 이번 건은 3줄이 모두 이상한 말로 등록되어 있어서 인프런측에 제보합니다. 7:33, 7:36, 7:42 의 자막이 강사님 말과는 전혀 다른 엉뚱한 자막이 삽입되어 있습니다. 확인 후 수정 요청합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 프로젝트 세팅시 intellij project structure에서 jdk 17로 맞추는데, 왜 굳이 Build and run using과 Run tests using을 Gradle로 설정하나요??? 결국 Gradle로 설정하면 앞에서 project structure jdk 굳이 맞추는 의미가 없지 않나요??? 현업에서도 주로 이렇게 사용하나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 제가 큰 규모의 작업은 다루지 못했다보니 이런 개념들이 사용되는 실제 상황의 예시가 있을까요? 보통 스프링에서 제공하는 component를 사용해서 stateless하게만 만들어두다 보니 실제로 적용해보려 한다면 어디에 해야하지? 하는 생각이 그려지지 않습니다. 혹시 몇가지 실제 예시를 들어주실 수 있나요?
[질문 내용] 여기에 질문 내용을 남겨주세요. 강의를 보면, 인스턴스 메서드가 메서드 영역에 정보가 담긴다는데, 인스턴스 변수의 값은 담기지 않지만 인스턴스 메서드의 정보만 담기는 이유가 인스턴스 메서드는 객체 생성마다 인스턴스 변수처럼 각각 다른 값을 가지는 것이 아닌 동일한 메서드 내용을 계속해서 가져, 메모리 낭비때문에 메서드 영역에 담기는 건가요? 다만 인스턴스 멤버이기때문에 객체 생성후 접근해야 하는것이고요. 맞게 이해했을까용?/
안녕하세요. 제가 알기론 자동주입은 스프링 빈 클래스에서만 되는걸로 알고 있습니다. 근데 아래 소스를 보시면 ExtendsController 클래스에는 @Component 어노테이션이 붙지않아서 스프링 빈으로 관리되지않습니다. 근데 HomeController 에서 이를 상속받으면 ExtendsController 클래스에 CommonLoginc 이 자동주입이 됩니다. 그리고 home api 의 this.say 메서드가 NullpointException 오류가 나지않고 정상 호출됩니다. 이건 무슨 원리로 되는건지 알 수 있을까요? package com.info.springboot.controller; import com.info.springboot.model.ExtendsController; import com.info.springboot.model.Sample; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HomeController extends ExtendsController { @GetMapping("/home") public String home(){ this.say(); return "home"; } } package com.info.springboot.component; import org.springframework.stereotype.Component; @Component public class CommonLogic { public void logging(){ System.out.println("logging 입니다."); } } package com.info.springboot.model; import com.info.springboot.component.CommonLogic; import org.springframework.beans.factory.annotation.Autowired; public class ExtendsController { @Autowired private CommonLogic common; public void say(){ common.logging(); System.out.println("ExtendsController 입니다."); } }
이해가 명확하게 된게 맞는지 @ElementCollection은 임베디드 타입에 관해 쓰이거나 그냥 일반 좋아하는 음식 기본형을 저장할 때 쓰이고, @CollectionTable 은 이러한 것에 과한 테이블을 만들고@ joinColumn 은 어떤 것과 매핑이 되는지 @Column(name="FOOD_NAME")은 그것에 관해 연결되어야 할 것을 정해주는 게 맞는건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. LockSupprot의 unpark()메서드는 park()와 parkNanos()로 WAITING상태이거나 TIME_WAITING상태에 빠진 스레드를 RUNNABLE상태로 깨우는 데 사용되는거면 sleep(ms)로 TIME_WAITING상태에 빠진 스레드를 unpark()로 깨울 수 없는건가요? 내용을 좀 더 찾아보니, LockSupport에서 스레드의 상태를 확인하기 위해 자체적으로 permit이라는 플래그값을 사용한다고 하는데, 그럼 결국 unpark는 LockSupport내의 메서드를 사용해서 대기 상태로 만든 스레드에 대해서만 작용하는 것인지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 관련 질문 찾아보고 코드를 변경해봐도 똑같이 에러가 떠서 진행을 못하고 있습니다.. 회원 가입을 누르고 이름을 등록하면 아래와 같은 에러가 발생합니다. 버전도 확인을 했는데 뭐가 문제일까요.. 코드 첨부하겠습니다.. 도와주세요 https://drive.google.com/file/d/1EJGRw6FzdUtj0AZh5mVd7DNqwo_HFhx_/view?usp=drive_link
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
test 코드 실행시 12월 30, 2024 10:47:24 오후 org.junit.platform.launcher.core.EngineDiscoveryOrchestrator lambda$logTestDescriptorExclusionReasons$7 INFO: 0 containers and 3 tests were Method or class mismatch라는 경고 메시지가 뜹니다. test 코드가 돌아가는 데 큰 무리는 없지만 개인적으로 궁금해서 질문드립니다.
안녕하세요 토비님. 올해 토비님의 인프콘 발표내용중 마지막 부분에, 무조건 인터페이스를 사용하라 라고 하신 것에 대해 왜 무조건 인터페이스를 사용해야 하는지 궁금합니다. 평소 저의 생각은 구현체가 한개라면 굳이 인터페이스로 분리할 필요는 없다고 생각했습니다. 구현체가 두개 이상이 되었을때 인터페이스로 분리해도 충분하다고 생각했었는데요. 토비님께서 아주 단호하게 말씀하셔서, 어떤 관점에서 인터페이스를 꼭 사용해야 하는지 궁금하여 질문을 남기게 되었습니다. 언제나 좋은 강의 만들어 주셔서 감사합니다.!
안녕하세요 영한님! 오타 제보합니다! 강의자료 pdf 13. 스레드 풀과 Executor 프레임워크2.pdf 39페이지 AS-IS 거절된 작업을 버리지만, 대신에 경로 로그를 남겨서 개발자가 문제를 인지할 수 있도록 해보자. TO-BE 거절된 작업을 버리지만, 대신에 경고 로그를 남겨서 개발자가 문제를 인지할 수 있도록 해보자. 감사합니다!
안녕하세요 영한님! 오타 제보합니다! 강의자료 pdf 13. 스레드 풀과 Executor 프레임워크2.pdf 23페이지 AS-IS 자바는 Executors 클래스를 통해 3가지 기본 전력 을 제공한다. newSingleThreadPool(): 단일 스레드 풀 전략 newFixedThreadPool(nThreads): 고정 스레드 풀 전략 newCachedThreadPool(): 캐시 스레드 풀 전략 TO-BE 자바는 Executors 클래스를 통해 3가지 기본 전략 을 제공한다. newSingleThreadPool(): 단일 스레드 풀 전략 newFixedThreadPool(nThreads): 고정 스레드 풀 전략 newCachedThreadPool(): 캐시 스레드 풀 전략 새해 복 많이받으세요!
@Service public class PersonService { public void processPerson(Person person) { System.out.println("Processing person: " + person); } } @Component public class Common{ public void logging(Log log){ System.out.println("Processing person: " + person); } } 위 두 클래스는 스프링 빈으로 등록되고 싱글톤입니다. 싱글톤은 객체가 1개만 생성되는걸로 알고있습니다. 그럼 controller 단이나 외부에서 PersonService, Common 의 processPerson, logging 메서드들을 동시에 호출하면 2개의 스레드가 각 싱글톤 객체의 메서드 매개변수를 동시에 변경하니깐 스레드 세이프하지않은거 아닌가요? 스프링 mvc 구현할때 다 이렇게 하던데 이게 스레드 세이프한지 궁금합니다~!