묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
BaseUI, ConfirmUI에서 질문있습니다.
함수에서 어떤 행위를 하고 Action 변수를 사용하고 null로 초기화 해주는데 이유가 궁금합니다.
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
static
안녕하세요 강사님그 매직넘버와, 매직스트링 강의와 이 강의를 들으면서 하나 느낀점이 있는데 상수로서 정리를하여 얻는 이득은 있으나 그만큼 static이 많아져서 메모리를 더 먹거나 다른 단점들이 존재하는것 같은점에 대해서는 어떻게 생각하시나요?? 그 단점들을 포기하면서도 얻는 이득이 많아서 이렇게 하시는편을 더 지향하시는지 궁금합니다감사합니다
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
synchronized 코드블록에서 사용하는 파라미터의 존재 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]synchronized (){} 블록에서 파라미터로 인스턴스를 지정하는 이유가 혹시 다른 클래스에 있는 메서드와의 동시성 연결..? 때문일까요?예를 들어 이러한 사고 실험을 해보았습니다)A 클래스에 a 메서드를 실행하면 해당 메서드에서 내부적으로B 클래스에 b 메서드를 실행한다고 가정을 하겠습니다. 하지만 b 메서드는 a 메서드를 통해서만 호출되는 것이 아니라 자체적으로도 호출하는 메서드라고 했을 때, 나타나는 동시성을 고려한 것일까 의문이 들었습니다. 그렇다고 한다면,b 메서드 안에 synchronized (b 클래스의 인스턴스) {} 를 지정하여,a 메서드를 통해 호출되는 b 메서드와 B 클래스 자체적으로 호출하는 b 메서드의 동시성 문제를 해결할 수 있겠다 예상이 됩니다. synchronized 블록의 파라미터는 위와 같은 상황을 위해 특정 인스턴스의 락을 파라미터로 잡게 한건가요?
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
강의 질문
안녕하세요 강사님테코 강의때 부터 시작해 강의 잘 보고 있습니다다름이 아니라 강의에서 '한 메서드의 주제는 반드시 하나이다' 라고 하셨는데 그럼 여러 메서드를 잘게 쪼개고 하나의 큰메서드로 묶는 방법(주제가 두개이상) 은 지양 해야 되는 방법일까요?감사합니다
-
미해결김영한의 실전 자바 - 기본편
Static 관련 main메서드 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.Static관련해서 main메서드에 관해서 질문이 있습니다Static 메서드는 static 만 호출할수 있는데, main 메서드도 static인데 어떻게 모든 타입의 메서드들을 호출할수 있는지 궁금합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
Thread.yield() 는 컨텍스트 스위칭을 일으키는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서 ,Cache 메모리 값을 초기화하는데 제일 확실한 방법이 컨텍스트 스위칭이라고 하셨습니다.그럼 while 문 안에 Thread.yield()를 통해 Running 에서 Ready로 바꾸면 되지 않을까? 생각이들어 직접해보니 바로 꺼지는 것을 확인했습니다. 여기서 의문이 들었습니다. Thread.yield()를 하게되면 컨텍스트 스위칭을 하는 걸까요?
-
미해결스프링 핵심 원리 - 기본편
기본편 완료시점 로드맵 질문드립니다 !
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다음으로 강의에서는 입문편까지만 완료하구 부트 JPA 활용으로 가는 루트로 말씀해주셨는데 유튜브 링크에는 스프링 로드맵을 끝까지 듣구 부트로 들어가길 권장하셔서 어떤걸 해야하는지 헷갈립니다.혹시 저때 스프링로드맵이 완성이 안돼있어서 저렇게 말씀하신거라면 저는 우선 프로젝트로 먼저 야생형코스로 하는게 더 잘 맞을거같아서 JPA 부트로 먼저 넘어갔다가 스프링 완전정복으로 다시 돌아올까했는데 좀 무리가 있을까요
-
미해결김영한의 실전 자바 - 중급 1편
id로 동일성을 판단하는 기능을 오버라이딩하는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]그냥 idEquals()이런 메서드로 새로 만들지 않고, 오버라이딩을 사용하는 이유가 무엇인가요?
-
미해결스프링 핵심 원리 - 기본편
interface가 왜 bean에 등록이 되나요? (재등록)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 프로젝트 압축파일 :https://drive.google.com/file/d/1JuIfXWrbMbE0SuppC6Pnd36vSqKkp2aX/view?usp=drive_link강의를 보면서 allTest를 하니 강의에 없는 오류가 나와서 질문드립니다. CoreApplicationTest -> contextLoads 부분 오류 내용은 다음과 같습니다expected single matching bean but found 2: memoryMemberRepository,memberRepository즉, 하나의 빈을 찾아야하는데 2개의 빈을 찾았다는 뜻입니다.그래서 "MemberServiceImpl"의 생성자에 @Qualifer 어노테이션을 사용하니 오류가 사라졌습니다.@Autowired public MemberServiceImpl(@Qualifier("memoryMemberRepository") MemberRepository memberRepository) { this.memberRepository = memberRepository; }하지만 궁금증이 남았습니다. @Component 어노테이션을 사용하지도 않은 interface가 빈으로 등록이 되는걸까? 궁금해서 contextLoads 함수에서 MemberRepository.class의 빈을 찍어봤습니다.다음과 같이 interface도 빈으로 등록이 되어 있음을 확인했습니다. 추상 클래스라 생성도 하지 못 하는데 왜 빈에 올라가 있는 것인지 의아하여 gpt에게 질문을 해보니"인터페이스를 구현한 클래스가 빈으로 등록될 때, 해당 인터페이스의 이름도 빈의 별칭(alias)으로 자동 등록됩니다. 이 빈 객체는 두 개의 이름("memoryMemberRepository"와 "memberRepository")으로 참조될 수 있습니다."라는 답변을 받았습니다. 만약 해당 답변이 옳다면1. 굳이 왜 alias가 필요했던 것인가?2. alias이면 같은 것을 참조하는데 컴파일러는 왜 고민을하고 에러를 띄운것인가?3. @Qualifier의 사용이 필연적인가? 강의에서는 왜 그렇지 않았는데 해당 오류가 없었나?이렇게 3가지 질문을 드리고 싶습니다.
-
미해결스프링 핵심 원리 - 기본편
스프링으로 전환시 로그 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]해당 pdf 자료 참고하여 src/main/resources/logback.xml 파일에 해당 내용복사하여 만들었으나 memberApp 과 OrderApp 실행시 로그가 보여지지 않습니다
-
미해결스프링 핵심 원리 - 기본편
주문과 할인 도메인 개발에서 궁금한 점 있습니다.
제가 부족한 탓이지만, GPT에 물어봐도 해결되지 않아 이렇게 글로 남깁니다. package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository = new MemoryMemberRepository(); private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } }이 코드에서 Member로 선언한 member가 질문인데, 생성자로 3개의 변수를 받는 것으로 설정되어있습니다. 근데 해당 코드를 보면 memberId만 대입하기에, 2개의 값이 불안정한 상태가 될 것이라고 생각하여 에러가 날 줄 알았는데, 그러지 않습니다. 이러한 이유를 알 수 있을까요?형편없는 질문을 해서 죄송합니다..
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
if문과 switch문에서의 return, break 사용례
안녕하세요.method 마지막 문제풀이중 질문이 있어 남깁니다! MethodEx4인데요,문제를 띄워놓고 먼저 풀이한 후에 강사님 풀이와 비교를 해보니아래와 같이 저는 if문으로 풀었는데break용법이 switch문과 차이가 있는 것같아 문의드립니다. *switch에서는 while문으로 돌아갈 때 사용*if문에서는 while문을 완전히 종료할 때 사용 예제 보여주시는 것을 보며 if문에도 break와 return을 모두 적용했는데완전히 종료되는것을 보았습니다. 이해한 부분이 맞는지 궁금합니다 :)
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
스크롤에 아이템을 선택했을때 강조하는 효과는 어떻게 구현하면 될까요?
안녕하세요.인벤토리 스크롤 영역에 선택한 아이템을 강조하는 효과는 어떤식으로 구현하면 될지 궁금합니다.강의를 본 뒤 선택한걸 강조하는 내용이 있나 돌아봤는데 해당 내용은 없는것 같아서요.아이템을 선택하면 선택된 아이템을 강조하는 효과의이미지를 활성화 시키려고 했는데 오브젝트를 재활용하는거다 보니 엉뚱한 오브젝트에 이미지가 활성화 되는데어떤식으로 해야 좋은 구조로 선택표시를 할 수 있을지 알려주실 수 있으실까요?
-
미해결스프링 핵심 원리 - 기본편
영한님처럼 application.properties에 한줄 추가해도 CoreApplication 안되는 상황
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영한님처럼spring.main.allow-bean-definition-overriding=true를 추가하고 정상실행이 되길 바라는데 안돼서요. 여러 자주묻는 질문 및 검색을 통해-parameters 추가 및 out폴더 삭제 후 실행Gradle로 변경심지어 Gradle 최신 버전으로 변경까지 다 해봤는데 안돼서 묻습니다.아래는 에러화면입니다.현재 스프링부트 버전이 3.3.3인데 그래서 그런걸까요? ***************************APPLICATION FAILED TO START***************************Description:Parameter 1 of constructor in hello.core.order.OrderServiceImpl required a single bean, but 2 were found: - rateDiscountPolicy: defined in file [C:\Users\sungwoo\OneDrive\study\core\build\classes\java\main\hello\core\discount\RateDiscountPolicy.class] - discountPolicy: defined by method 'discountPolicy' in class path resource [hello/core/AppConfig.class]This may be due to missing parameter name informationAction:Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumedEnsure that your compiler is configured to use the '-parameters' flag.You may need to update both your build tool settings as well as your IDE.(See https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-6.x#parameter-name-retention)Execution failed for task ':CoreApplication.main()'.> Process 'command 'C:\Program Files\JAVA\jdk-17\bin\java.exe'' finished with non-zero exit value 1* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.10.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 2s3 actionable tasks: 1 executed, 2 up-to-date
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
Yield 를 사용한 후 currentThread
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. public void run() { while (!Thread.interrupted()) { if (jobQueue.isEmpty()) { Thread.yield(); continue; } ... }위에 코드에서 Yield 를 사용하면 그 쓰레드가 양보를 해서 다시 스케쥴러로 들어간다고 하셨는데, 그러면 Thread.yield(); 가 실행이 된 후에, 다시 CPU 가 이 쓰레드를 실행시키기 전까지 그 다음 줄의 continue 코드는 실행되지 않고 멈춰있는 상태라고 생각하면 될까요? 그렇다면 쓰레드는 CPU 가 다시 실행시킬 시점에 몇번째 라인까지 실행을 했는지 기억하고 있다가 CPU 에게 알려주는 건가요? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
request scope 강의에서 Negative matches 가 뜨면서 무한 로딩이 걸립니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요, 현재 request scope 부분 강의를 들으면서 HTTP request 부분을 provider로 대체하면 실행이 된다고 하셔서 시도했는데 아래와 같은 메시지가 뜨면서 CoreApplication이 무한로딩이 걸립니다. 스프링 3.0이상의 버전을 써서 이렇게 나는걸까요? Negative matches 가 뜨면서 무한 로딩이 걸림Negative matches:-----------------ActiveMQAutoConfiguration:Did not match:- @ConditionalOnClass did not find required class 'jakarta.jms.ConnectionFactory' (OnClassCondition)AopAutoConfiguration.AspectJAutoProxyingConfiguration:Did not match:- @ConditionalOnClass did not find required class 'org.aspectj.weaver.Advice' (OnClassCondition)22:52:01.283 [main] INFO hello.core.CoreApplication --Started CoreApplication in 1.236 seconds (process running for 1.548)22:52:01.284 [main] DEBUG o.s.b.a.ApplicationAvailabilityBean --Application availability state LivenessState changed to CORRECT22:52:01.285 [main] DEBUG o.s.b.a.ApplicationAvailabilityBean --Application availability state ReadinessState changed to ACCEPTING_TRAFFIC
-
해결됨스프링 핵심 원리 - 기본편
초기화 콜백 쓰지말고 setUrl을 설정하고 나서 connect를 호출하면 되지않나여?
dfs package core.basic.lifecycle; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; public class BeanLifeCycleTest { //configurable-> @Test public void lifeCycleTest(){ //ApplicationContext>ConfigurableApplicationContext>AnnotationConfigApplicationContext ConfigurableApplicationContext ac = new AnnotationConfigApplicationContext(LifeCycleConfig.class); NetworkClient client=ac.getBean(NetworkClient.class); ac.close(); } @Configuration static class LifeCycleConfig{ @Bean//(initMethod = "init",destroyMethod = "close") public NetworkClient networkCilent(){ NetworkClient networkCilent = new NetworkClient(); networkCilent.setUrl("http://hello-spring.dev"); networkCilent.connent(); return networkCilent; } } }LifeCycleConfig에서 초기화 콜백 안쓰고도setUrl을 설정하고 나서connect를 호출하면 url이 잘호출되는데 ,,,초기화호출을 쓰는 이유가 있나요? connect호출시점이 setUrl다음에 오기만 하면 되니깐 이렇게 작성해도될거같아서요
-
해결됨김영한의 실전 자바 - 기본편
기본형은 immutable, 참조형은 mutable?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]결국, 기본형은 immutable, 참조형은 mutable 인건가요?
-
해결됨김영한의 실전 자바 - 중급 1편
Instant.now() 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.Instant.now() 메서드가 1970년 1월 1일 0시 0분 0초(UTC 기준)부터 현재까지 경과한 초(나노초)를 갖는 Instant 객체를 생성해서 참조를 반환한다고 보면 될까요?
-
미해결김영한의 실전 자바 - 중급 1편
날짜와 시간 Instant에 대한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.제가 만약에 글로벌한 서비스를 시작해서 미국에서 접속하면 미국의 시간을 보여주고 한국에서 접속하면 한국의 시간을 보여줄 때는 ZonedDateTime을 쓰고서버에서 로그를 (미국에서 접속하든 한국에서 접속하든) 일관되게 남기고 싶다면 이때 Instant를 쓰면 되는 걸까요?만약 미국 사람은 미국 시간으로 로그를 남기고, 한국 사람은 한국 시간으로 로그를 남긴다고 하면 로그의 순서를 따져야 할 때 미국 시간을 한국 시간으로(또는 한국 시간을 미국 시간으로) 변환 해서 순서를 비교해야 하기 때문에 Instant를 사용하는게 좋다는 걸까요?