묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
p6spy 로그가 안찍힙니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 p6spy를 적용을 시도했는데 로그 출력이 되지 않아서 해결해보려다 실패하고 도움을 요청드립니다. 아래와 같이 코드들을 작성했습니다. > Task :compileJava UP-TO-DATE> Task :processResources> Task :classes> Task :compileTestJava UP-TO-DATE> Task :processTestResources NO-SOURCE> Task :testClasses UP-TO-DATE19:25:53.967 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [jpabook.jpashop.MemberRepositoryTest]: MemberRepositoryTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.19:25:54.333 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration jpabook.jpashop.JpashopApplication for test class jpabook.jpashop.MemberRepositoryTest19:25:55.119 [Test worker] INFO org.springframework.boot.devtools.restart.RestartApplicationListener -- Restart disabled due to context in which it is running. ____ _ __ _ _/\\ / ___'_ __ _ ()_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v3.3.7)2025-01-26T19:25:55.869+09:00 INFO 18332 --- [ Test worker] jpabook.jpashop.MemberRepositoryTest : Starting MemberRepositoryTest using Java 21.0.2 with PID 18332 (started by dldbs in C:\Users\dldbs\Desktop\Spring강의\spring boot, jpa활용\jpashop)2025-01-26T19:25:55.874+09:00 INFO 18332 --- [ Test worker] jpabook.jpashop.MemberRepositoryTest : No active profile set, falling back to 1 default profile: "default"2025-01-26T19:25:57.515+09:00 INFO 18332 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2025-01-26T19:25:57.570+09:00 INFO 18332 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 33 ms. Found 0 JPA repository interfaces.2025-01-26T19:25:58.728+09:00 INFO 18332 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2025-01-26T19:25:58.896+09:00 INFO 18332 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final2025-01-26T19:25:58.990+09:00 INFO 18332 --- [ Test worker] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled2025-01-26T19:25:59.885+09:00 INFO 18332 --- [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer2025-01-26T19:25:59.974+09:00 INFO 18332 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2025-01-26T19:26:00.168+09:00 INFO 18332 --- [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:tcp://localhost/~/jpashop user=SA2025-01-26T19:26:00.172+09:00 INFO 18332 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2025-01-26T19:26:02.325+09:00 INFO 18332 --- [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)2025-01-26T19:26:02.369+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :drop table if exists member cascade2025-01-26T19:26:02.383+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :drop sequence if exists member_seq2025-01-26T19:26:02.395+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :create sequence member_seq start with 1 increment by 502025-01-26T19:26:02.401+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :create table member (id bigint not null,username varchar(255),primary key (id))2025-01-26T19:26:02.413+09:00 INFO 18332 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2025-01-26T19:26:02.844+09:00 WARN 18332 --- [ Test worker] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning2025-01-26T19:26:02.911+09:00 INFO 18332 --- [ Test worker] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]2025-01-26T19:26:03.730+09:00 INFO 18332 --- [ Test worker] jpabook.jpashop.MemberRepositoryTest : Started MemberRepositoryTest in 8.647 seconds (process running for 12.331)WARNING: A Java agent has been loaded dynamically (C:\Users\dldbs\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.19\154da3a65b4f4a909d3e5bdec55d1b2b4cbb6ce1\byte-buddy-agent-1.14.19.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future release2025-01-26T19:26:04.981+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :selectnext value for member_seq2025-01-26T19:26:05.235+09:00 DEBUG 18332 --- [ Test worker] org.hibernate.SQL :insertintomember(username, id)values(?, ?)2025-01-26T19:26:05.243+09:00 TRACE 18332 --- [ Test worker] org.hibernate.orm.jdbc.bind : binding parameter (1:VARCHAR) <- [memberA]2025-01-26T19:26:05.244+09:00 TRACE 18332 --- [ Test worker] org.hibernate.orm.jdbc.bind : binding parameter (2:BIGINT) <- [1]OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended2025-01-26T19:26:05.291+09:00 INFO 18332 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'2025-01-26T19:26:05.298+09:00 INFO 18332 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...2025-01-26T19:26:05.322+09:00 INFO 18332 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.> Task :testBUILD SUCCESSFUL in 15s4 actionable tasks: 2 executed, 2 up-to-date오후 7:26:05: Execution finished ':test --tests "jpabook.jpashop.MemberRepositoryTest.testMember"'.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
사이드 이펙트 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemberRepository에서 return member.getId();사이드 이펙트로 멤버를 저장하는 메서드이기 때문에 리턴값은 안 만들어도 되고다만, 나중에 멤버 조회할 때 ID 정도 있으면 간단하게 조회할 수 있기 때문에 리턴값 설정해둔 것으로 이해하면 될까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
이강의만 보고 구현은 가능할까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]혹시 이강의를 보고 게시판하나 만들까하는데 MyBatis대신JPA를 써볼까 합니다...너무 방대한 걸 알지만 혹시 이 한시간짜리 섹션강의를 보고 간단한 게시판정도는 해볼 수 있을까요?저는 취준을 시작한 비전공자입니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
response의 위치에 대한 질문이 있습니다
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요현재 프로젝트에서는 service쪽에서 response로 변환을 해주고 있어서, response 객체의 위치가 service쪽에 있는데 response 변환을 controller 쪽에서 해주고 response의 위치도 controller쪽으로 옮기는 것에 대해서는 어떻게 생각하시나요?? service에서는 domain과 관련된 것들만 있는 게 좋지 않나? ( domain entity와 jpa entity를 구분하지 않고 있기는 하지만요.. ) 라는 생각이 있고, response는 api의 응답이라서 아무래도 controller쪽에 있는 게 좋을 것 같다고 생각을 해서 여쭤보게 됐습니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Configuration과 @Transactional
안녕하세요 항상 강의를 잘 보고 있습니다.@Configuration과 @Transactional 둘 다 상속을 이용한 proxy기법(CGLIB, AOP)을 사용하는 것으로 확인하였습니다.만약 저가 MemberService라는 class에 @Service, @Transactional를 부여한 후 ComponentScan을 하면 MemberService의 프록시 객체가 빈으로써 생성되어 스프링 컨테이너에 반환되는 것을 확인하였는데 궁금한 것은 @Configuration과 @Transactional 이 둘이 각각 프록시를 생성하는 것인지 혹은 하나만 생성하는 것인지가 궁금합니다.두 번째로 궁금한 것은 프록시는 싱글톤으로 관리가 될 텐데, 프록시가 아닌 target이 가르키는 실제 객체 MemberService는 매 request마다 객체가 새로 생성되어지는 것인지 혹은 최초로 서버가 로드할 때 한 번만 생성이 되는 것인지 궁금합니다. (제 생각에는 @Configuration으로 인하여 후자이지 않을까 생각합니다.)
-
미해결Practical Testing: 실용적인 테스트 가이드
repostory 테스트 코드 작성 이유 관련 질문
제가 테스트 코드 작성이 처음이라 잘 이해하지 못한 것 같은데요repository에서 테스트 코드를 작성하는 이유를 잘 모르겠습니다.. given에서 Product를 삽입하는 과정은 DB의 product에 레코드를 삽입하는 과정으로 대체해서 수행할 수 있을 것 같아서요. DB를 통해 확인하지 않고 리포지토리에 대해 테스트 코드를 작성하는 이유가 무엇일까요?혹시 수동 검증 시 콘솔에서 확인하는 것과 동일하게 직접 사람이 테스트 과정에 개입해야 해서 그러한 것일까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트 코드에서 data.sql 사용 없이 Product를 직접 생성한 이유
테스트 코드 작성 시에 data.sql을 활용하지 않으신 이유가 궁금합니다. @Test 메서드 내에서 Product를 생성하는 것보다 이미 작성된 data.sql을 활용하는 것이 더 편해보이는데 Product 인스턴스를 직접 생성하신 이유가 무엇인가요?혹시 테스트마다 필요로 하는 데이터가 다르기 때문인 것일까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
한탄스럽네여
분명 다 똑같이 따라왔는데 JdbcTemplate - 이름 지정 파라미터3 에서 코드를 돌렸더니 작동을 안하네요... 이전강좌까지 다 잘됐는데 아..............................................혹시나해서완성코드 받아서 복붙해도 작동 안하네요 Ai답변이 딴소리 해주겠지만오류때문에 미칠 노릇이네요 풀이자꾸 꺾입니다...
-
미해결스프링 핵심 원리 - 기본편
gradle 오류 - 대입이 사용되지 않습니다.
=========================================프로젝트 생성하고 gradlew을 열었는데 대입이 사용되지 않는다는 오류가 뜹니다. refresh도 해봤는데 오류는 계속 뜹니다. 환경변수도 jdk17로 설정했습니다. 어떻게 하면 오류가 사라질까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderService의 order() 내에서 Delivery 생성메서드가 아닌 생성자 호출 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]OrderService의 주문 생성 코드에서 Order와 OrderItem은 생성메서드를 통해 객체를 생성하여 저장하도록 하셨는데, Delivery 객체에 대해서는 따로 생성 메서드를 만들지 않고 직접 생성자 호출을 통해 만든 이유가 있을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
UserLoanHistory Entity
id를 할 때는 Entity에서 자료형 Long을 쓰고, user_id는 자료형 long을 쓰는데 왜 두 개 다른것을 쓰나요? 특별한 이유가 있을까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
html 소스코드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]소스코드는 도대체 어디서 가지고 오시는거일까요???
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
서버 응답관련 질문
안녕하세요, 조교님 30강 강의를 들으면서 문제가 발생해 질문을 남기게 되었습니다. 이 전까지는 정상적으로 작동하였는데 "책 등록" 기능이 제대로 동작하지 않습니다. 코드에는 문제가 없어 보이고, 서버는 정상 동작합니다. 책 등록에서 저장 버튼을 누르면 위와 같은 메시지가 뜨는 상황인데, 혹시 해결방법을 아실까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JPA 프록시 객체 AccessType.FIELD에서 getId 시 초기화?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하십니까 선생님! 질문 제목을 보고 얘는 왜 이 질문을 여기에 올렸을까라고 의아해하실 수도 있는데, 사실 제가 영한님 스프링 관련 강의는 다 사서 열심히 보고 있는데(정말 도움 많이 받고 있습니다. 항상 정말 잘 듣고 있습니다!!) JPA는 영한님이 쓰신 JPA 책을 사서 보고 있습니다! 그런데 프록시 객체 파트를 읽어보던 도중 이해가 되지 않는 부분이 있어 질문을 쓰고 싶은데 JPA 쪽에 질문으로 쓰려고 해도 강의를 산 사람만 작성할 수 있어 부득이하게 여기에서 질문하게 되었습니다 죄송합니다 ㅜㅜㅜ 다름이 아니라 지금 JPA의 프록시 객체 파트를 공부하고 있습니다. 그런데 294P의 8.1.2 프록시와 식별자 부분에서 엔티티를 em.getReference, 즉 프록시로 조회할 때 엔티티 접근 방식을 AccessType.PROPERTY로 설정한 경우 getId를 호출해도 프록시를 초기화하지 않는다고 하셨습니다. 그래서 직접 한번 코드를 작성해보았습니다. 우선 AccessType.PROPERTY 방식부터 적용해보았습니다. PROPERTY와 FIELD 두 방식 모두 실험 전 create 옵션으로 Parent 객체 하나를 만들어두고 후에 none으로 바꾸어 진행했습니다. Parent 객체 생성 코드Parent parent = new Parent(); parent.setId(1L); parent.setName("parent1"); em.persist(parent); Parent.java@Entity @Setter @Getter @Access(AccessType.PROPERTY) public class Parent { private Long id; private String name; @Id public Long getId() { return id; } }JpaMain.javapublic static void main(String[] args) { EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); Parent foundParent = em.getReference(Parent.class, 1L); System.out.println(foundParent.getClass()); System.out.println(foundParent.getId()); System.out.println(foundParent.getName()); tx.commit(); em.close(); emf.close(); }해당 코드를 실행시켰을 때이렇게 나온걸 보니 확실히 getId 후에 getName 조회시 프록시 객체를 초기화(select 구문 실행)을 했다는 것을 알 수 있었습니다. 그런데 AccessType.FIELD로 조회하면 getId 를 할때에도 프록시 객체를 초기화한다고 하여 아래와 같이 Parent.java의 코드를 다시 작성하여 JpaMain.java를 실행해보았습니다. Parent.java@Entity @Setter @Getter @Access(AccessType.FIELD) public class Parent { @Id private Long id; private String name; }제 예상으로는 getId 실행시 프록시 객체를 초기화 한다고 하셨으니 실제 출력에는 Parent의 getId()가 실행되기 전에 select 문이 실행되어야 할 것이라고 예상하였습니다. 하지만위와 같이 getId()에는 프록시 객체를 초기화하지 않는 것처럼 보여지는 출력이 나왔습니다.책에서는 AccessType.FIELD 사용시 getId()를 호출하면 JPA는 getId()가 id만 조회하는 메소드인지 다른 필드까지 활용해서 어떤 일을 하는 메소드인지 알지 못하므로 프록시 객체를 초기화한다고 나와있는데 왜 이런 결과가 나온 것일까요? 제가 잘못 이해하고 있는 것이 있을까요?
-
미해결스프링 기반 REST API 개발
자바 빈 스펙을 준수하는지 체크하는 테스트
안녕하세요.07.30 시간에 강사님께서 자바빈 스펙을 준수하게끔 테스트를 진행하십니다. 이 과정이 왜 필요한건지 궁금합니다~builder패턴으로 테스트로만 잘 진행하면 충분하다는 생각이 들었기 때문입니다.생성자로 객체를 만들어야 상태안전하게 만들 수 있고setter를 사용하게 되는 것은 되도록 지양하는 것이라 생각했습니다.
-
미해결견고한 결제 시스템 구축
recovery 동시성 처리 관련 문의
recovery() 를 스케줄로 구현한 부분에 있어서 궁금증이 있습니다.설명에도 언급 되었듯이 k8s 환경과 같이 scale-out 형태로 서비스를 제공하면 동시성 이슈가 발생될 것으로 예상되는데요.단순하게 하나의 unknown order 만 생성해서 테스트로 갈음하기에는 검증이 부족하다고 느껴지는데, 동시성 검증은 어떻게 진행하셨을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
외래키를 사용하지 않아도 되는지 궁금합니다
이렇게 연관관계가 있는 키들은 외래키로 참조하고 있다는 표시를 하지 않아도 되는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
assertj랑 junit이랑 뭔가 충돌하는 것 같습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]assertThat을 부르려고 assertj의 AssertThat을 import static으로 해도 안 불러와집니다import할때 아예 import static org.assertj.core.api.Assertions.assertThat;import static org.junit.jupiter.api.Assertions.assertThrows; 이렇게 해봐도안되고,지금은 junit의 Assertions를 불러와서 assertThrows에 에러 표시가 안 나는데... 정리하면 assertThat이 되면 assertThrows가 안됩니다. 반대도 마찬가지이고 하나가 되면 하나가 안 불러와져요 gradle.build에서 의존성도 건드렸었는데 효과가 없네요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
onclick이 쿼리 파라미터 전송을 하는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품 수정 버튼을 클릭했을 때 이동하는 경로를 Thymeleaf 템플릿 엔진을 써서 작성했는데<button class="w-100 btn btn-primary btn-lg" onclick="location.href='editForm.html'" th:onclick="|location.href='@{/basic/items/{itemId}(itemId=${item.id})/edit}'|" type="button">상품 수정</button> 이런 경우에 실제 주소 뜨는걸 보면http://localhost:8080/basic/items/%7BitemId%7D(itemId=$%7Bitem.id%7D)/edit이렇게 뜨고 만약 다음과 같이 작성하면<button class="w-100 btn btn-primary btn-lg" onclick="location.href='editForm.html'" th:onclick="|location.href='@{/basic/items/{itemId}/edit(itemId=${item.id})}'|" type="button">상품 수정</button> http://localhost:8080/basic/items/2/edit 이렇게 경로가 뜨는데 왜 이런 차이가 발생하는 건가요? 제가 처음 이렇게 한 이유가(itemId=${item.id}) 이게 치환되는 주체는 {itemId}여야 하는 거고 그러면 선언 위치는 사실 상관없는 거 아닌가 해서 저렇게 했는데실제 url을 까보니까 아예 다르게 나와서 왜 이렇게 되는건지 궁금합니다. 그리고 또 하나의 궁금증으로는강사님께서 수정 부분 컨트롤러 메서드를 작성하실 때 다음과 같이 작성하셨는데public String editForm(@PathVariable Long itemId, Model model)그러면 위 코드를 보았을 때 아까 보았던 코드를 기반으로 생각했을 때th:onclick="|location.href='@{/basic/items/{itemId}/edit(itemId=${item.id})}'|" ItemId가 쿼리 파라미터 형식으로 전송되면서 서버로 넘어가는 지 그것도 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
members.jsp white 오류가 뜹니다.
스프링 의존성 추가하고properties도 추가했는데 오류가 납니다. 다른분들이 고치신대로 WEB-INF도 만들어봤는데 안되네요 ㅜㅜ오류는 이렇게 납니다...=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.