묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
9:56 경 "JSON의 루트는 배열로 해서는 안된다." 에 대한 질문
안녕하세요! JSON과 배열에 대해 질문드립니다!9:56 경에, 영한님께서 "JSON의 루트는 배열로 해서는 안된다."라고 언급해주셨습니다. 이것은 혹시, 클라이언트 쪽에서 해당 배열에 접근할 수 있는 방법이 없어서이기 때문일까요..?확인해주셔서 감사드립니다!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
setter말고 @Bulider사용시 연관관계 메서드
예를들어 Order클래스에서 setMember을 대신해 @Builer사용시에는 이렇게 작성하는게 맞을까요?@Builder private Order(Member member, Delivery delivery, List<OrderItem> orderItems,LocalDateTime orderDate,OrderStatus status){ this.member = member; this.delivery = delivery; this.orderItems = orderItems; this.orderDate = orderDate; this.status = status; if (member != null) { member.getOrders().add(this); } }
-
미해결스프링 배치
배치데이터가 쌓였을 때 속도 문제
안녕하세요 선생님강의 듣고 프로그램 배포해서 잘 운영하고 있습니다.다름이 아니라 운영중에 데이터가 점차 쌓이면서데이터가 많아지니 배치 속도가 조금씩 느려지더라고요.아직 운영에 큰 이슈는 없지만 나중에는 문제가 될 수도 있겠다 싶어 질문드립니다.보통 이런 경우에는 어떤 방법으로 속도를 개선 하는지 궁금합니다. 당장 생각 나는 방법이 오래된 날짜의 데이터는 지우는 방법인데BATCH_JOB_EXECUTION 의 CREATE_TIME을 기준으로 지우려고 합니다.메모리에 JOB_INSTANCE_ID를 저장하지 않고 처리 하려면데이터 삭제 순서가 BATCH_JOB_INSTANCE 테이블이 먼저가 되는 상황이 되는데외래키를 지우고 배치 프로그램을 운영해도 문제가 되지 않을지 궁금합니다.쿼리DELETE FROM BATCH_JOB_INSTANCE WHERE JOB_INSTANCE_ID IN (SELECT DISTINCT JOB_INSTANCE_ID FROM BATCH_JOB_EXECUTION) 진행중인 프로젝트에 바로 사용한다고시간이 없어 급하게 띄엄띄엄 들어서 못들은 강의가 많습니다.혹시나 강의에 언급하신 내용이라면 죄송합니다. 훌륭한 강의 덕분에 프로젝트 무사히 완료 할 수 있었습니다.감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
java.lang.IllegalArgumentException: Unresolvable class definition for class
섹션 6. 스프링 DB 접근 기술의 순수 JDBC 강의 수강 중, 코드 작성 후 16분에 재기동을 하는데 다음과 같은 오류가 떠 원인과 해결 방법을 질문합니다. 윈도우 회사 PC로 실습 중이며, h2 db는 권한 없음으로 bat 파일 기동되지 않아 javaw -jar h2-1.4.200.jar 명령어로 기동했습니다. 해당 명령어로 기동 시 http://192.168.70.178:8082/login.jsp?jsessionid=5137fb26224e404a43f0ac762325f8d5 주소로 접속됩니다.2023-05-09 16:53:54.867 ERROR 17292 --- [ restartedMain] o.s.boot.SpringApplication : Application run failedjava.lang.IllegalArgumentException: Unresolvable class definition for class [org.springframework.boot.devtools.autoconfigure.DevToolsDataSourceAutoConfiguration$DatabaseShutdownExecutorEntityManagerFactoryDependsOnPostProcessor] at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:331) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:474) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:397) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.annotation.TypeMappedAnnotation.asMap(TypeMappedAnnotation.java:283) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.annotation.AbstractMergedAnnotation.asAnnotationAttributes(AbstractMergedAnnotation.java:193) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:106) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:81) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.context.annotation.AnnotationConfigUtils.attributesFor(AnnotationConfigUtils.java:285) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.AnnotationBeanNameGenerator.determineBeanNameFromAnnotation(AnnotationBeanNameGenerator.java:103) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.AnnotationBeanNameGenerator.generateBeanName(AnnotationBeanNameGenerator.java:82) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.registerBeanDefinitionForImportedConfigurationClass(ConfigurationClassBeanDefinitionReader.java:169) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:150) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:748) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.11.jar:2.7.11] at juney.juneyspring.JuneySpringApplication.main(JuneySpringApplication.java:10) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.2.10.RELEASE.jar:2.2.10.RELEASE]Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/autoconfigure/data/jpa/EntityManagerFactoryDependsOnPostProcessor at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na] at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) ~[na:na] at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na] at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:144) ~[spring-boot-devtools-2.2.10.RELEASE.jar:2.2.10.RELEASE] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na] at java.base/java.lang.Class.forName0(Native Method) ~[na:na] at java.base/java.lang.Class.forName(Class.java:398) ~[na:na] at org.springframework.util.ClassUtils.forName(ClassUtils.java:284) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:324) ~[spring-core-5.3.27.jar:5.3.27] ... 30 common frames omittedCaused by: java.lang.ClassNotFoundException: org.springframework.boot.autoconfigure.data.jpa.EntityManagerFactoryDependsOnPostProcessor at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na] ... 45 common frames omittedProcess finished with exit code 0
-
미해결실전! 스프링 데이터 JPA
member 테이블에 member!!!!!!!!!이 안나옵니다.
member 에 저장된 데이터가 없습빈다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 매소드 양방향 관계
양방향으로 관계가 어떤 경우일까요? 1대다, 다대다 이런 경우를 말하는건가요? 연관관계 메서드가, 객체를 생성하고 값을 셋팅할때 한개라도 빼먹는 경우가 있어서 간편하게 하려고 두개를 묶어서 나타내는 것이라고 생각하면 맞나요? 강의 25분 9초에서 연관 관계 메서드를 왜 적어줘야 하는지 잘 모르겠습니다. 그러니까, order라는 엔티티를 만든 곳에 member객체를 필드명 member 와 구별하기 위해 this.member = member 하면서 셋팅을 하고, member.getOrders().add(this) 즉, 회원 주문에 회원이름을 넣어주고? 이거를 여기에 기본적으로 셋팅해주는 이유가 뭔가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
http://localhost:8080/hello 에서 에러가 나네요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용] 몇 번을 확인했는데 에러가 나서 찾기가 어렵네요도움 부탁드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 오류 발생 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 강의 잘 듣고 있습니다.cmd에서 선생님과 동일하게 build 명령어 입력했는데 실행 할 수 없다고 떠서 문의 드립니다.관리자 모드 cmd에서도 동일한 증상인데 무엇이 문제일까요..?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
6분28 초 카테고리 부모와 자식
@ManyToOne @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>();부모와 자식을 이렇게 설정해준다는데,부모를 Many To One자식을 One To Many 로 해주는게 이해가 안갑니다.왜 이렇게 연관관계를 설정해 줘야 하는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Embeded 값 타입이 Delivery 에만 생성되고, Member 에는 생성이 안됩니다.
Address.javapackage jpabook.jpashop.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.Embeddable; @Embeddable @Getter public class Address { private String city; private String street; private String zipcode; protected Address() { } public Address(String city, String street, String zipcode) { this.city = city; this.street = street; this.zipcode = zipcode; } } Member.javapackage jpabook.jpashop.domain; import lombok.Getter; import lombok.Setter; import org.apache.tomcat.jni.Address; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; @Embedded private Address address; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); } Delivery.javapackage jpabook.jpashop.domain; import javax.persistence.*; @Entity public class Delivery { @Id @GeneratedValue @Column(name = "delivery_id") private Long id; @OneToOne(fetch = FetchType.LAZY, mappedBy = "delivery") private Order order; @Embedded private Address address; @Enumerated(EnumType.STRING) private DeliveryStatus status; // ENUM [READY(준비), COMP(배송) } 코드는 위와 같습니다. 질문란에 검색을 해보니 과거에 저랑 완전히 똑같은 증상이 있으셨던 분이 질문 글을 남겨놓았더군요. 내용에 Member 테이블을 삭제한 후 다시 빌드한 뒤에 실행한 뒤 정상 작동했다고 확인했습니다. 저같은 경우는 어쩐 연유인지 테이블을 삭제하고 다시 실행해봐도 되지가 않아서 따로 문의드립니다. 🙏
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강의3분13초_중간테이블
category와 item 은 서로 다대다 관계인데, 관계형 db는 다대다관계인경우 중간테이블을 설정해야 해서 category_item테이블이 온다 라고 이해하면 될까요?앞으로 추후 플젝 할때 다대다 관계이면 무조건 중간테이블을 설정해야지만 정상작동을 하는건지도 궁금해요
-
해결됨스프링 시큐리티
Intellij git branch 하이라이팅 방법
안녕하세요. 강의 잘 듣고 있습니다. 세션 4 강의 내용을 보고 있는데.. 선생님 intellij 왼쪽 상단에 git branch 가 highlighting 되어 분홍색(?) 으로 표시되는 신기한 걸 봤네요. 이거 어떻게 하는 건가요? 좋은 기능 같아서요. plugin 이면 어떤 plugin 을 설치해야 되는지 알려주실 수 있는지요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
templates html 실행
현재 IDE은 이클립스 사용중입니다.내용은 모두 강의와 동일하고, 아래와 같이 html파일들을 위치시켰을 때, static에 저장된 index.html은 실행이 잘되는 반면에 templates에 저장된 hello.html과 hello-template.html은 가져오지 못하고 whitelabel error page 로 연결되는 오류가 발생합니다.어떤 부분이 잘못되었는지 확인해봐야 하나요?
-
미해결스프링 배치
BatchStatus 와 ExitStatus 의 차이점이 뭔지 모르겠습니다.
안녕하세요 선생님, 제가 강의를 계속 듣다가 너무 헷갈려서 질문 올립니다.섹션 6 Transition - 배치상태 유형 (BatchStatus / ExitStatus / FlowExecutionStatus) 를 듣고 계속 머릿속으로 BatchStatus 와 ExitStatus 둘 간의 차이점을 이해하려고 해도 도통 이해가 되지 않아서 질문드립니다.PPT 에서는 BatchStatus, ExitStatus 를 다음과 같이 정의합니다.- BatchStatus : JobExecution 과 StepExecution 속성으로 Job 과 Step 의 종료 후 최종 결과 상태가 무엇인지 정의- ExitStatus : JobExecution 과 StepExecution 의 속성으로 Job 과 Step 의 실행 후 어떤 상태로 종료되었는지 정의... 라고 작성되어 있는데요.BatchStatus 에서 설명하는 "종료 후 최종 결과 상태" 라는 게 결국은 ExitStatus 에서 말하는 "실행 후 어떤 상태로 종료되었는지" 와 똑같은 말로 보입니다. 혹시 이 둘간의 "차이"와 "용도"가 뭔지 조금만 이해하기 쉽게 알려주실 수 없을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemorymemberRepository와 memberRepository에 대아혀
MemorymemberRepository가 memberRepository를 구현하고 있는데 그러면 이 부분에서 MemberRepository memberRepository; 로 선언하는게 아니라 MemoryMemberRepository memberRepository; 로 선언한 후 사용해야 하는것 아닌가요,,? 인터페이스를 구현한게 MemoryMemberRepository인데 memberRepository로 선언을 해서 계속 사용하면 MemoryMemberRepository에서 구현한 내용을 못보는것 아닌가요,,?? MemberRepository memberRepository = new MemoryMemberRepository();MemberService memberService = new MemberService(memberRepository);이런 식으로 따로 생성을 해서 사용해야 하는것이 아닌가 궁금합니다!
-
미해결실전! 스프링 데이터 JPA
메소드 이름으로 쿼리 생성 - 내부 동작
안녕하세요, [메소드 이름으로 쿼리 생성 메소드] 강의 중 메소드 이름을 분석해서 JPQL 쿼리 실행 부분에 질문이 있습니다. 예를 들어 findByUsernameAndEmail()과 같이 이름을 정의하였을 때, 내부적으로 SQL을 어떻게 생성하는지 궁금합니다. '자바 ORM 표준 JPA 기본편' 강의에서 em.persist()를 실행하면 영속성 컨텍스트 내부에서 SQL을 생성하고, SQL 쓰기 지연 저장소에 저장하는 것을 설명해주셨습니다. 즉, 컴파일 시점이 아닌, 런타임 시점 동적으로 쿼리를 생성하는 것으로 이해하였습니다. 위에서 말씀 드린 findByUsernameAndEmail()과 같은 경우 jpql로 변환되어서 쿼리가 실행된다고 말씀해주셨습니다. 어떠한 방법을 통해, 내부적으로 어떠한 로직을 거쳐 런타임에 jpql로 변환이 될 수 있는지 궁금합니다. 감사합니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
프론트엔드 부분 관련 질문
안녕하세요!선생님의 강의를 너무나 재밌게 잘 듣고 있는 수강생입니다.현재 배포 준비하기 전까지 강의를 들었는데요, 강의와 함께 구현된 기능 외에 추가적인 기능을 구현해보고 싶어서 질문드립니다!유저의 대출 기록을 보여준다거나 하는 다양한 기능들을 프론트엔드 부분에서도 추가하여 만들어보고 싶은데 저희 프로젝트의 index.html, main.d4f24480.js 등을 둘러봐도 어떻게 건드려야 할지 전혀 감이 안오더라구요! 목록에서 유저들 정보가 뿌려지는 부분의 코드도 못찾아서요ㅠ괜찮으시다면 저희 프로젝트에서 프론트적인 부분을 어떻게 만드셨는지나, 동작하는 큰 흐름 혹은 간략한 설명이라도 부탁드려도 될까요??ㅜㅜ 좋은 강의 만들어주셔서 감사합니다:)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
선생님 테스트에 대해서 질문있습니다.
지금 제가 도커를 먼저 알고 싶어서 카프카까지 다 들은후 도커부터 듣는 중인데요. 근데 카프카할때부터인가 test를 다 안하고 넘기는 설정을 하시는거 같은데 왜 이렇게 하시나요?? 이게 실제 운영환경이라면 이렇게 못하잖아요?(테스트 코드가 있을 수도 있으니까요) 어떤걸 참고하면서 하면 이 상황을 타개해 나갈수 있을까요?
-
미해결스프링 부트 - 핵심 원리와 활용
intellij 무료버전 tomcat runner 무반응으로 강의 진행이 불가능합니다.
https://www.inflearn.com/questions/856870/intellij-%EB%AC%B4%EB%A3%8C%EB%B2%84%EC%A0%84-tomcat-runner-%EC%8B%A4%ED%96%89-%EC%98%A4%EB%A5%98이 글과 동일하게 configuration에서 tomcat runner를 클릭해도 무반응입니다.plugin이 설치되어 있고 활성화 된 상태인데 제대로 작동이 안되네요.캐시 삭제를 해도 해결되지 않습니다. 다른 plugin들은 설치 시 잘 작동합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인스턴스가 두개일 때
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님이 설명해주신 것 중 memberService쪽과 memberRepository에 있는 MemoryMemberRepository는 다른것이다 라고 말씀하셨습니다 따라서 인스턴스가 두개가 만들어진것이고 static이라 문제가 없을 테지만 static이 아니라면 다른 DB를 사용하는 것이기 때문에 내용이 틀려 질 수 있다고 하셨는데여기에 대해서 더 자세히 알고싶습니다.왜 다른 것인지 궁금합니다좀 더 찾아보고 싶은데 어떤 개념을 검색해보면 될까요 ? 감사합니다.