안녕하세요. 앞서 전파기본 강의와 전파예제 강의를 듣고나서 이해가 되지않는 부분이 몇가지 있어서 질문드립니다. 1. 강의 자료중에, 트랜잭션매니저에 커밋하는것이 논리적인 커밋이라면, 실제커넥션에 커밋하는것을 물리 커밋이라고 할수있다 = 내부트랜잭션인 txManager.commit(inner)을 하는것이 논리적인 커밋이고, 외부트랜잭션인 txManager.commit(outer)을 하는것이 물리커밋이다. = 트랜잭션 매니저를 통해 txManager.commit(inner)를 하는것이 논리적인 커밋이고, 트랜잭션 매니저를 통해 txManager.commit(outer)를 하는것이 물리커밋이다. 이렇게 생각하는게 맞을까요?? 2. 1번 질문에 더해서, 트랜잭션 매니저를 통해서 txManager.commit()을 하는것이 논리적인 커밋이라면, 물리적인 커밋은 코드상 어떤것인가요? 외부트랜잭션도 txManager.commit()을 통해 커밋하는거같은데, 이렇게 외부트랜잭션을 커밋하는것이 논리적인 커밋임과 동시에 물리커밋인것인가요?? 3. 외부트랜잭션도 논리트랜잭션이고 내부트랜잭션도 논리트랜잭션인가요? 그래서 이 두가지를 묶어서 물리트랜잭션이라고 하는것인가요?? + 위 질문에 대해서 계속 찾아보면서 생각해봤는데, 이렇게 이해하면 될까요? 1. 내부트랜잭션이 트랜잭션 매니저를 통해서 커밋하는것이 논리적인 커밋이고, 외부트랜잭션이 트랜잭션매니저를 통해서 커밋하는것은 실제 DB커넥션에 커밋하는것이다. 외부트랜잭션의 커밋은 논리적커밋임과 동시에 물리커밋이다. 2. 외부트랜잭션을 커밋하는것은 논리적 커밋임과 동시에 물리커밋이다. 3. 외부트랜잭션과 내부트랜잭션 모두 논리트랜잭션이고, 논리트랜잭션을 묶어서 물리트랜잭션이라고한다.
CSRF 통합 강의에서 17분쯤에 user 1111 계정이 아니라 ddd로 입력을 하시는데 UserDetails로 설정 하지 않으신 것 같은데 어떻게 로그인이 되는 건지 궁금합니다. 로그인 후 Whitelabel Error가 뜨는 경우는 어떤 부분을 수정하면 될까요? 이 강의를 수강하면서 해당 오류가 많았습니다. 로그인이 된 경우도 있고 안 된 경우도 있었습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 스프링 AOP 프록시는 빈 하나당 하나의 프록시만 만든다고 알고 있습니다. 혹시 @Transcational을 선언한 클래스가 @Asepct로 선언한 어드바이저의 포인트컷에 들어가게 된다면 프록시는 하나 생성 후 어드바이저의 어드바이스와 트랜잭션 AOP 코드들도 어드바이스로 들어간다고 생각하는게 맞을까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] proxyFactory.setProxyTargetClass(true); 하면 인터페이스가 있어도 CGLIB로 프록시를 만든다고 했는데 CGLIB는 클래스를 상속해서 프록시를 만드는 거 아니었나요? 어떻게 인터페이스만 있는데 이걸 CGLIB기술로 프록시를 생성하는거죠
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 상품 등록 폼을 작성했는데, localhost:8080/basic/items 에서 상품 등록 버튼을 누르면 등록 폼으로 이동되지 않습니다... 이렇게 눌렀다는 표시만 나오는데 어느 부분이 잘못 된 건지 모르겠습니다 localhost:8080/basic/items/add 로 들어가면 등록 폼은 나오더라구요... 버튼 부분이 잘못된 것 같은데 강의 자료를 복붙해도 똑같습니다ㅜㅜ 압축 파일 드라이브 링크로 올렸습니다. https://drive.google.com/file/d/1h8q8nJxIQ-L41Kdd0E_dqXoAqBXQciNW/view?usp=sharing
04-Dec-2024 22:31:59.700 심각 [main] org.apache.catalina.startup.ContextConfig.processServletContainerInitializers 이름이 []인 컨텍스트를 위한 ServletContainerInitializer들을 탐지하지 못했습니다. java.io.IOException: java.lang.ClassNotFoundException: hello.container.MyContainerInitV1 at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:234) at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:202) at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1756) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1256) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:961) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:290) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4311) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:566) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:653) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:599) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1853) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:494) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:385) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1593) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:267) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:743) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1170) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:716) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:866) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.startup.Catalina.start(Catalina.java:755) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:470) Caused by: java.lang.ClassNotFoundException: hello.container.MyContainerInitV1 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1212) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1043) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:231) ... 45 more 04-Dec-2024 22:31:59.702 심각 [main] org.apache.catalina.startup.ContextConfig.configureStart 이전 오류(들)로 인하여, 이 애플리케이션이 가용하지 않은 것으로 표시합니다. 04-Dec-2024 22:31:59.720 심각 [main] org.apache.catalina.core.StandardContext.startInternal 하나 이상의 구성요소(들)이, 해당 컨텍스트가 올바로 설정되지 않았다고 표시했습니다. 04-Dec-2024 22:31:59.728 심각 [main] org.apache.catalina.core.StandardContext.startInternal 이전 오류들로 인해 컨텍스트 []의 시작이 실패했습니다. MyContainerInitV1 클래스와 resources 파일 아래에 정확하게 파일을 생성하였는데 다음과 같은 오류가 발생합니다. 어떻게 해결할 수 있는지 확인해주시면 감사하겠습니다 ㅠㅠ
[ImportSelectorTest 시 StaticConfig 내부 클래스 static 사용이유] 안녕하세요. 테스트할 때 StaticConfig 내부 클래스에 static 키워드를 붙이지 않고 테스트를 하니 아래와 같은 오류가 발생하는데요. 이유가 무엇인가요? Error creating bean with name 'importSelectorTest.StaticConfig': Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.selector.ImportSelectorTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'importSelectorTest.StaticConfig': Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.selector.ImportSelectorTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 회원목록이 안뜹니다. org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232] 라는 에러가 뜨네요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 앞선 강의에서 스프링 메시지와 국제화 기능을 학습 했었는데 BasicErrorController가 모델로 전달해주는 에러 메세지는 상속받아 구현하지 않는 경우 따로 스프링 메시지 기능이나 국제화 기능을 사용하지 못하는건가요?
두 개의 테이블을 OneToOne으로 연관관계를 설정하여 JPA 로 account와 authority테이블을 한 번에 save하는 로직을 강의 내용을 응용하여 개발하고 있습니다. save를 통해 저장하려고 하면 insert 구문에 LOGIN_ID가 두 번 지정되어 쿼리가 날아가는 현상이 있는데 어느 부분이 잘못된 것인지 도움 부탁드립니다.. (쿼리문 예시 insert into LOGIN_ACCOUNT (LOGIN_ID, ~~~, login_id) select SCOPE_IDENTITY() AS GENERATED_KEYS', ~~~, form에서 입력받은 실제 id값) 아래는 소스 내용의 일부입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 테스트는 초록불이 켜지는데 콘솔창에는 이런 내용이 뜹니다.. 이건 왜이런건가요? 어떻게 해결하죠? 현재 build.gradle는 이 상태 입니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 윈도우 파워셀로 실행하려는데 chmod 755 명령어가 안 됩니다. 'chomod' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 라고 뜨는데 어떡하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이렇게 설정하고 연결을 눌러도 연결이 되지 않는 이유를 모르겠습니다.! 이런 오류가 뜨네요. ㅠ 윈도우 사용자입니다! 그리고 실행 자체를 cmd에서 명령어 입력 말고 설치하니 생긴 이 파일로 실행을 해도되는건가요?
안녕하세요. 앞서 전파기본 강의와 전파예제 강의를 듣고나서 이해가 되지않는 부분이 몇가지 있어서 질문드립니다. 1. 강의 자료중에, 트랜잭션매니저에 커밋하는것이 논리적인 커밋이라면, 실제커넥션에 커밋하는것을 물리 커밋이라고 할수있다 = 내부트랜잭션인 txManager.commit(inner)을 하는것이 논리적인 커밋이고, 외부트랜잭션인 txManager.commit(outer)을 하는것이 물리커밋이다. = 트랜잭션 매니저를 통해 txManager.commit(inner)를 하는것이 논리적인 커밋이고, 트랜잭션 매니저를 통해 txManager.commit(outer)를 하는것이 물리커밋이다. 이렇게 생각하는게 맞을까요?? 2. 1번 질문에 더해서, 트랜잭션 매니저를 통해서 txManager.commit()을 하는것이 논리적인 커밋이라면, 물리적인 커밋은 코드상 어떤것인가요? 외부트랜잭션도 txManager.commit()을 통해 커밋하는거같은데, 이렇게 외부트랜잭션을 커밋하는것이 논리적인 커밋임과 동시에 물리커밋인것인가요?? 3. 외부트랜잭션도 논리트랜잭션이고 내부트랜잭션도 논리트랜잭션인가요? 그래서 이 두가지를 묶어서 물리트랜잭션이라고 하는것인가요??
강의 그대로 따라하며 모든 코드를 입력했으나, 강의에서처럼 System.out.println("new member = " + member.getName()); System.out.println("find Member = " + findMember.getName()); 이를 출력했을 때 값이 정상적으로 안나옵니다. 찾아보니 gradle 파일 내부 문제가 있는듯 한데, 뭐가 문제인지 모르겠습니다. 코드 전부를 첨부합니다.. 도와주세요...! plugins { id 'java' id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.6' } group = 'hello' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation ('org.springframework.boot:spring-boot-starter-test'){ exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; public class MemberApp { public static void main(String[] args) { MemberService memberService = new MemberServiceImpl(); Member member = new Member(1L, "memberA", Grade.VIP); memberService.join(member); Member findMember = memberService.findMember(1L); System.out.println("new member = " + member.getName()); System.out.println("find Member = " + findMember.getName()); } }