만약에 m이 3이고 치킨집이 5개면 5C1인 경우 5C2, 5C3인 경우의 조합들을 다 구해서 각각의 경우에 대한 치킨 거리를 계산한 후 최종적인 최솟값을 구하는 문제인 줄 알았습니다. 예시) 5C1 이면 m=3이니까 {0} -> 각 집들의 치킨 거리를 구한 후 더한 값 {1} 위와 같음 {2} 위와 같음 {3} 위와 같음 {4} 위와 같음 5C2 이면 {0,1} {0,2} {0,3} . . . 이렇게 전부의 경우에 대한 거리 값을 구한 후 최소를 찾는 건 줄 알았는데 위의 방법이 아니라 그냥 m=3이면 5C3의 조합들 중에서 최소가 나오는 경우를 구하면 되는 건가요?? 제가 문제를 잘 이해를 못하는 것 같아서 질문 드립니다!!
ReadonlyArray<T>에서 T가 어떤 타입인지 찾으실때 질문있습니다. ReadonlyArray의 타입을 살펴볼려고하면 이렇게 여러가지 타입이 있습니다. 어디로 들어가서 확인해야하는지를 알 수 있는 방법이 있을까요? ReadonlyArray 이외에도 es5에 있던 타입들이 오버로드되서 esNext에도 있는 것들을 보면 어느 파일으 것을 확인해야 할지를 잘 모르겠습니다. 하나씩 다 보면서 찾는게 맞는건가요??
Tally랑 연결해서, 게시물 작성하는 링크를 embed하고, 영상강의에 따라, tally의 custom code를 웹플로우 New product 페이지에 넣었는데, 계속 Hidden Fields값에 공란으로 나옵니다. 여러번 강의를 돌려서, 강사님 가르쳐준대로 똑같이했는데, 제가 만든 clone 사이트에서 게시물올리면 hidden fields값이 공란으로 나오네요.. Tally Form에서 URL 주소 + "name=이름"을 넣으서 시도해보면, 잘 나오는데, 웹플로우에서 반영하고 페이지에서 작성하면 뜨지가 않습니다. 혹시 방법이 있는지 알 수 있을까요?
Imagine a long queue behind you at Walmart, just waiting for you to finish your payment process. Some are making different sounds and passing comments on your way to pay fast and leave the cash counter. And guess what, when you check your pocket, you forget to carry your wallet is empty. Now what? No money means no groceries. Now imagine a Cash App card in this story. You forget cash but have your Cash App card, which you swipe and pay for your things in Walmart. Read the full blog to know about what a Cash App card is, its benefits, simple hacks to activate Cash App card and many more. What is a Cash App Card? You have $50 in your Cash App account and want to buy a new book online. Instead of using your bank card, you can use your Cash App Card to pay for the book directly from your Cash App balance. This way, you don't need to transfer money to your bank account first. Cash App Card is like a special debit card to use money from your Cash App account. It lets you spend money from your Cash App balance in stores or online, like a regular bank debit card. We know Cash App is not a bank, but on the search of Cash App bank name , you will find Cash App partner bank names - Lincoln Savings Bank and Sutton Bank. Sutton Bank is the Cash App partner bank that issues Cash App cards. Who activates Cash App card? Activation of a Cash App card is the task accomplished by the user who receives it. Once you receive the physical Cash App Card, you need to activate it using the Cash App mobile application. The activation process typically involves scanning the QR code on the card or entering the card details manually in the app. After successful activation, the card becomes linked to the user's Cash App account, allowing them to use it for purchases and withdrawals where shop owners accept Visa debit cards. What are the simple hacks to activate Cash App card? Download and install the Cash App mobile application from the App Store (iOS) or Google Play Store (Android). Open the Cash App and log in to your account using your registered mobile number or email address. Tap the profile icon or the three horizontal lines in the top-left corner to access the "Settings" menu. Click the "Cash Card." Look for the "Activate Cash Card" option. If your Cash App card has a QR code, use your phone's camera to scan it. Alternatively, you can enter the card details manually if there's no QR code. Verify your identity for security purposes. Congratulations, you have activated Cash App card successfully. Can I activate my cash app card before it arrives? It is impossible to activate your Cash App card before it arrives. The activation process requires information from the physical card, such as the QR code or card details, accessed once you have the physical card in your possession. Once you receive the card, you can easily activate it through the Cash App mobile application. How to activate Cash App card with a scanner? Login into a Cash App account. Click the profile icon. Select "Activate Cash Card" from the options. Use your phone's camera to scan the QR code on the Cash App card. When you scan your Cash App card, it activates within a second. What are the benefits to activate a Cash App card? Activating a Cash App card offers several benefits. You can spend money in your Cash App account with a physical debit card. You can use the card for purchases at stores or online and withdraw cash from ATMs. Activating the card provides enhanced security, as you can easily monitor and control your transactions through the Cash App mobile app. The card also enables you to earn rewards and discounts through Cash App's Boost program, which offers cashback on selected purchases. Activating a Cash App card expands the usability of your Cash App account and makes managing your finances more accessible and rewarding. What are the disadvantages of a Cash App card? While a Cash App card offers convenience and benefits, it also has drawbacks. Not all accept Cash App cards compared to traditional bank cards, limiting their use in certain places. Using the card for ATM withdrawals may incur fees, and international transactions might involve additional charges. Customer support may be slower than traditional banks, causing delays in resolving issues. Cash App may have limitations on transaction amounts and frequency, restricting larger or more frequent transactions. Cash App card scams These are some common Cash App card scams. Don't share your personal information, like card details, etc. Scammers may use phishing emails or fake customer support to deceive users. They may alter QR codes to divert funds to their accounts. Fraudulent investment schemes and fake prizes are also common tactics. What are the other popular features of Cash App? Cash App offers cashback rewards called "Boosts" when users purchase at eligible merchants using their Cash App card. Users can set up Cash App direct deposit to receive paychecks or payments directly into their Cash App account. Cash App users can buy, sell, and send Bitcoin directly from the app. Cash App provides a feature called Cash App Investing that allows users to invest in stocks and buy fractions of shares. This feature lets users pay merchants who accept Cash App Pay using smartphones. Cash App offers features for business accounts, including a separate interface for managing business transactions. Users can earn extra cash back rewards using their Cash App card for specific purchases with Cash App's partners. Can you use a Cash App card on Amazon? You cannot use your Cash App card directly on Amazon for online purchases. Amazon requires traditional debit or credit cards for transactions on their website. However, you may link your Cash App card to a PayPal account and use PayPal as the payment method on Amazon to indirectly use your Cash App balance for purchases. Does eBay accept a Cash App card? eBay does not directly accept Cash App cards for purchases. Like Amazon, eBay requires traditional debit or credit cards and PayPal as the primary payment method for transactions on their platform. However, similar to using a Cash App card on Amazon, you can link your Cash App card to a PayPal account and use PayPal as the payment method on eBay to indirectly use your Cash App balance for purchases. eBay has not set up a connection with Square Cash App to accept payments from this source.
안녕하세요 큰돌님 1 - M 3986 좋은 단어 문제를 deque 를 이용해 deque 이 비거나 하나만 남을 때까지 반복하면서 back 과 다음 back 이 같은 경우 두 개의 back 을 모두 제거하고 아닌 경우 첫번째 꺼낸 back 을 다시 front로 push 하는 방식으로 풀고자 했습니다!! 제 생각으로는 deque 의 최대 반복 되는 수가 처음 문자열의 크기를 넘지 않을 것 같아서 시간초과에 문제 없을 줄 알았는데 시간 초과가 나옵니다 어떠한 이유에서 시간초과가 나오게 되었는지 여쭤보고자 질문 드립니다!! 감사합니다! 코드 https://www.acmicpc.net/source/64697159
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 실행후 에러가 나는데 혹시 원인이 어떤걸까요...?? 전체 코드와 에러 첨부합니다...ㅠㅠ package hello.core.singleton; import hello.core.AppConfig; import hello.core.member.MemberRepository; import hello.core.member.MemberServiceImpl; import hello.core.order.OrderServiceImpl; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import static org.assertj.core.api.Assertions. assertThat ; public class ConfigurationSingletonTest { @Test void configurationTest(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class); OrderServiceImpl orderService = ac.getBean("orderService", OrderServiceImpl.class); MemberRepository memberRepository = ac.getBean("memberRepository", MemberRepository.class); MemberRepository memberRepository1 = memberService.getMemberRepository(); MemberRepository memberRepository2 = orderService.getMemberRepository(); System. out .println("memberService -> memberRepository1 = " + memberRepository1); System. out .println("orderService -> memberRepository2 = " + memberRepository2); System. out .println("memberRepository = " + memberRepository); assertThat (memberService.getMemberRepository()).isSameAs(memberRepository); assertThat (orderService.getMemberRepository()).isSameAs(memberRepository); } @Test void configurationDeep(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); AppConfig bean = ac.getBean(AppConfig.class); System. out .println("bean = " + bean.getClass()); } } "C:\Program Files\Java\jdk-11\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.4\lib\idea_rt.jar=60814:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\Lets Go Rust\.m2\repository\org\junit\platform\junit-platform-launcher\1.8.2\junit-platform-launcher-1.8.2.jar;C:\Users\Lets Go Rust\.m2\repository\org\junit\platform\junit-platform-engine\1.8.2\junit-platform-engine-1.8.2.jar;C:\Users\Lets Go Rust\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\Lets Go Rust\.m2\repository\org\junit\platform\junit-platform-commons\1.8.2\junit-platform-commons-1.8.2.jar;C:\Users\Lets Go Rust\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.4\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.4\plugins\junit\lib\junit5-rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.4\plugins\junit\lib\junit-rt.jar;C:\core (1)\core\out\test\classes;C:\core (1)\core\out\production\classes;C:\core (1)\core\out\production\resources;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-test\2.7.13\c937a5716d02d8dcd64f742d12607993873e7a5a\spring-boot-starter-test-2.7.13.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\2.7.13\5617ca04b06778877fb80d146dd2d0dd6adb23a8\spring-boot-starter-2.7.13.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-test-autoconfigure\2.7.13\1de71639f25f4948cbe50904a1118e060c91f6a5\spring-boot-test-autoconfigure-2.7.13.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-test\2.7.13\be93829dcb79b788678654deefbb675045a60fb0\spring-boot-test-2.7.13.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework\spring-test\5.3.28\3a6ce360d853c9083f82196e0a4ced4ab2fe5c6b\spring-test-5.3.28.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\5.3.28\5b7ec246fef72fdfbb0b4123956715ca89cc6ddf\spring-core-5.3.28.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\com.jayway.jsonpath\json-path\2.7.0\f9d7d9659f2694e61142046ff8a216c047f263e8\json-path-2.7.0.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\jakarta.xml.bind\jakarta.xml.bind-api\2.3.3\48e3b9cfc10752fba3521d6511f4165bea951801\jakarta.xml.bind-api-2.3.3.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.assertj\assertj-core\3.22.0\c300c0c6a24559f35fa0bd3a5472dc1edcd0111e\assertj-core-3.22.0.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest\2.2\1820c0968dba3a11a1b30669bb1f01978a91dedc\hamcrest-2.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter\5.8.2\5a817b1e63f1217e5c586090c45e681281f097ad\junit-jupiter-5.8.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.mockito\mockito-junit-jupiter\4.5.1\f81fb60bd69b3a6e5537ae23b883326f01632a61\mockito-junit-jupiter-4.5.1.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.mockito\mockito-core\4.5.1\ed456e623e5afc6f4cee3ae58144e5c45f3b3bf\mockito-core-4.5.1.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.skyscreamer\jsonassert\1.5.1\6d842d0faf4cf6725c509a5e5347d319ee0431c3\jsonassert-1.5.1.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.xmlunit\xmlunit-core\2.9.1\e5833662d9a1279a37da3ef6f62a1da29fcd68c4\xmlunit-core-2.9.1.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\2.7.13\1b6b9605b1b116e32c372f3b9e15abf7bb17038c\spring-boot-autoconfigure-2.7.13.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\2.7.13\d009fa51c7792c9e510da7e69329baf39591707d\spring-boot-2.7.13.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\2.7.13\8a5e9bd6fa8341193a977d408b9a44faaa684c8d\spring-boot-starter-logging-2.7.13.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\1.3.5\59eb84ee0d616332ff44aba065f3888cf002cd2d\jakarta.annotation-api-1.3.5.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.30\8fde7fe2586328ac3c68db92045e1c8759125000\snakeyaml-1.30.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\5.3.28\d67e8b213aa08a0f3d71e547fb4345372d819d36\spring-jcl-5.3.28.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\net.minidev\json-smart\2.4.11\cc5888f14a5768f254b97bafe8b9fd29b31e872e\json-smart-2.4.11.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\1.7.36\6c62681a2f655b49963a5983b8b0950a6120ae14\slf4j-api-1.7.36.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\jakarta.activation\jakarta.activation-api\1.2.2\99f53adba383cb1bf7c3862844488574b559621f\jakarta.activation-api-1.2.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-params\5.8.2\ddeafe92fc263f895bfb73ffeca7fd56e23c2cce\junit-jupiter-params-5.8.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-api\5.8.2\4c21029217adf07e4c0d0c5e192b6bf610c94bdc\junit-jupiter-api-5.8.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy\1.12.23\d470526e8c4566c04e9ae5d3ccb62d1a7aa58986\byte-buddy-1.12.23.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.12.23\1cba11fdb72c383edacb909f79ae6870efd275e4\byte-buddy-agent-1.12.23.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\com.vaadin.external.google\android-json\0.0.20131108.vaadin1\fa26d351fe62a6a17f5cda1287c1c6110dec413f\android-json-0.0.20131108.vaadin1.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\5.3.28\edf8ebfd637e3e10ec7fed697eb69f2a5229748a\spring-context-5.3.28.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.2.12\d4dee19148dccb177a0736eb2027bd195341da78\logback-classic-1.2.12.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.17.2\17dd0fae2747d9a28c67bc9534108823d2376b46\log4j-to-slf4j-2.17.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\1.7.36\ed46d81cef9c412a88caef405b58f93a678ff2ca\jul-to-slf4j-1.7.36.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\net.minidev\accessors-smart\2.4.11\245ceca7bdf3190fbb977045c852d5f3c8efece1\accessors-smart-2.4.11.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.apiguardian\apiguardian-api\1.1.2\a231e0d844d2721b0fa1b238006d15c6ded6842a\apiguardian-api-1.1.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.junit.platform\junit-platform-commons\1.8.2\32c8b8617c1342376fd5af2053da6410d8866861\junit-platform-commons-1.8.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.opentest4j\opentest4j\1.2.0\28c11eb91f9b6d8e200631d46e20a7f407f2a046\opentest4j-1.2.0.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\5.3.28\aada0ea72a3efee5f02f264f90329f7eddedf321\spring-aop-5.3.28.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\5.3.28\4d232acbb7031963688cf28b1b34134937892c4f\spring-beans-5.3.28.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\5.3.28\d049216b1a73b939b36bbf5cc7ce734cace7b245\spring-expression-5.3.28.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.2.12\1d8e51a698b138065d73baefb4f94531faa323cb\logback-core-1.2.12.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.17.2\f42d6afa111b4dec5d2aea0fe2197240749a4ea6\log4j-api-2.17.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\9.3\8e6300ef51c1d801a7ed62d07cd221aca3a90640\asm-9.3.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-engine\5.8.2\c598b4328d2f397194d11df3b1648d68d7d990e3\junit-jupiter-engine-5.8.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.objenesis\objenesis\3.2\7fadf57620c8b8abdf7519533e5527367cb51f09\objenesis-3.2.jar;C:\Users\Lets Go Rust\.gradle\caches\modules-2\files-2.1\org.junit.platform\junit-platform-engine\1.8.2\b737de09f19864bd136805c84df7999a142fec29\junit-platform-engine-1.8.2.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 hello.core.singleton.ConfigurationSingletonTest,configurationTest 14:44:00.952 [main] DEBUG org.springframework.context.annotation.AnnotationConfigApplicationContext - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@5d7148e2 14:44:00.986 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor' 14:44:01.350 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerProcessor' 14:44:01.356 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerFactory' 14:44:01.358 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor' 14:44:01.371 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.springframework.context.annotation.internalCommonAnnotationProcessor' 14:44:01.405 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'appConfig' 14:44:01.447 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'memberService' call AppConfig.memberService 14:44:01.512 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'memberRepository' call AppConfig.memberRepository 14:44:01.514 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'orderService' call AppConfig.orderService 14:44:01.517 [main] DEBUG org.springframework.beans.factory.support .DefaultListableBeanFactory - Creating shared instance of singleton bean 'discountPolicy' memberService -> memberRepository1 = hello.core.member.MemoryMemberRepository@74a6a609 orderService -> memberRepository2 = hello.core.member.MemoryMemberRepository@5a411614 memberRepository = hello.core.member.MemoryMemberRepository@5a411614 java.lang.AssertionError: Expecting actual: hello.core.member.MemoryMemberRepository@5a411614 and actual: hello.core.member.MemoryMemberRepository@74a6a609 to refer to the same object at hello.core.singleton.ConfigurationSingletonTest.configurationTest( ConfigurationSingletonTest.java:32 ) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod( ReflectionUtils.java:725 ) at org.junit.jupiter.engine.execution.MethodInvocation.proceed( MethodInvocation.java:60 ) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed( InvocationInterceptorChain.java:131 ) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept( TimeoutExtension.java:149 ) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod( TimeoutExtension.java:140 ) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod( TimeoutExtension.java:84 ) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0( ExecutableInvoker.java:115 ) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0( ExecutableInvoker.java:105 ) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed( InvocationInterceptorChain.java:106 ) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed( InvocationInterceptorChain.java:64 ) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke( InvocationInterceptorChain.java:45 ) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke( InvocationInterceptorChain.java:37 ) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke( ExecutableInvoker.java:104 ) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke( ExecutableInvoker.java:98 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7( TestMethodTestDescriptor.java:214 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod( TestMethodTestDescriptor.java:210 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:135 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:66 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:151 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) at org.junit.platform.engine.support .hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) at org.junit.platform.engine.support .hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs( JUnit5IdeaTestRunner.java:57 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:232 ) at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:55 ) Process finished with exit code -1
spring boot project 에서 hbase 를 사용하려고 하는데요, 영한님 강의를 들어보니 data-jpa 를 적용해보고 싶어졌습니다. 구글링해보니 apache-phoenix 구현체(JPA 인터페이스 구현체) 를 활용하면 된다는 이야기도 있긴하지만, 활용 사례가 많지 않아서 정보를 얻기 어려웠는데요~ 혹시 추천해주실 만한 hbase-JPA best practice가 있을까요?
안녕하세요 제로초님. 저는 현재 프로젝트 중간에 투입된 경우인데, 이번에 새로 코드 푸시를 도입을 하기로 했습니다. 강의를 보면서 차근차근 적용중에 있는데, 몇가지 질문을 드리고 싶습니다. 질문이 네 가지 있습니다. target 질문 제 프로젝트는 앱의 버전이 iOS 와 android 가 서로 상이합니다. 예로 들어 ios 의 버전은 4.0.0 대라면, android 는 2.0.0 대 입니다 두 가지의 버전을 맞춰주는게 좋은가요? 다음 앱 배포시엔 둘다 5.0.0 으로 올려준다던지 하는 방법으로요. 다시 타겟 질문입니다만, minor 버전을 올릴 때 제가 이해한게 맞는지 확인차 질문드립니다. "3.2.9" -> "3.3.0" 버전으로 올라갈때 code push 의 버전이 "3.2" 타겟이기 때문에 "3.2" 타겟의 코드 푸시가 적용되지 않는다. 만약 이후에 "3.3.1" 버전으로 올리고 싶다면 code push target 을 "3.3" 으로 올리고 "codepush:build" 스크립트 명령어를 실행한다. 그러면 "3.3.0" 버전에 반영이 된다 제가 이해한게 맞을까요? sentry와 함게 사용할때 의 질문. 다른 분이 질문을 올린것을 봤습니다만, 저는 아직 잘 이해가 안되어 재질문드립니다 ㅠㅠ Sentry.init 에 들어가는 release 부분에서 패키지제이슨버전만 적어주신다고 하신건지 궁금합니다. release: "3.1.0" 처럼 간단하게 버전만 입력한다는 말씀이실까요? 만약 맞다면 다시 1번 질문으로 돌아가서 Android, iOS 버전이 서로 다를땐 release: ANDROID ? '2.0.1' : '3.0.1', 이런식으로 안드로이드 일땐, 2.0.1, iOS 일 땐 3.0.1 로 작업하면 되는걸까요? dist 값 마찬가지로 sentry에 관련된 질문입니다. 제로초님은 dist 는 "dist값은 자기가 스스로 만드는 겁니다." 라고 답변을 달아주셨는데 dist 는 제가 스스로 타겟처럼 규칙을 정해서 만들어주면 되는걸까요? 센트리 공식문서를 봐도 헷갈리네요 ㅠㅠ 질문은 이상입니다. 언제나 뭐든지 처음 세팅하는게 힘드네요. ㅠㅠ
예를 들어 옷 쇼핑몰에서 관리자가 상품을 등록 할 때 체크 박스로 흰색, 검정색을 선택한 뒤 등록하면 회원이 해당 옷을 구매하려고 들어가서 색상 옵션을 고를 때 흰색, 검정색만 뜨도록 구현하려고 합니다. 어떤 식으로 만들어야 할지 감이 안 잡혀서 질문 글을 작성하게 됐습니다 ㅜㅜ option_category 테이블에 각 옵션 카테고리 코드 별로 옵션 이름과 옵션 값을 넣어주고 product_option 에서 상품 코드와 옵션 카테고리 코드를 외래 키로 받아서 예를 들면 상품 옵션 코드 : 1 상품 코드 : 3 옵션 카테고리 코드 : 5 (흰색 카테고리 코드) 상품 옵션 코드: 2 상품 코드 : 3 옵션 카테고리 코드 : 6 (검정색 카테고리 코드) 상품 옵션 코드: 3 상품 코드: 3 옵션 카테고리 코드 : 7 (갈색 카테고리 코드) 이런 식으로 해서 3번 상품에 5, 6 ,7 의 옵션을 넣어줘서 상품 구매 시 옵션 선택지가 5, 6, 7만 뜨도록 하려고 합니다. mapper문 작성 시 insert into product_option ( product_code, option_category_code ) values ( #{product_code}, #{option_category_code} ); 이렇게 작성하면 3번 상품에 5, 6, 7 세 가지의 옵션을 넣으려면 5번 넣고 6번 넣고 7번 넣고 3번을 반복해야 하는 거 같은데.. 한 번에 5, 6, 7의 옵션을 넣는 방법이 있을까요? 상품 등록 시 옵션 카테고리를 체크 박스로 골라서 등록을 해주면 product_option 테이블에 상품 옵션 코드 : 1 상품 코드 : 3 옵션 카테고리 코드 : 5 (흰색 카테고리 코드) 상품 옵션 코드: 2 상품 코드 : 3 옵션 카테고리 코드 : 6 (검정색 카테고리 코드) 상품 옵션 코드: 3 상품 코드: 3 옵션 카테고리 코드 : 7 (갈색 카테고리 코드) 이런 식으로 등록되도록 하고 싶습니다. 그리고 혹시 products, option_category, product_option 3개의 테이블 각각 Vo를 따로따로 만들어 줘야하는지도 궁금합니다. 위에 insertBoard와 write_process는 List<Integer> option_codes로 체크 박스 선택된 애들의 value를 받아와서 사용자가 상품 구매 시 고를 수 있는 옵션 선택지에 넣어주려고 했는데 <option> </option> 여기에 어떻게 넣어줘야 할지 모르겠습니다. mapper 작성을 어떤식으로 해야할까요? 2. 각 테이블 별로 vo를 따로 만들어줘야 하나요? 3.상품 등록 때 체크 박스들을 통해 넣어준 값들을 상품 구매 페이지에 있는 옵션에 넣어주려면 어떻게 해야할까요? 공부를 계속 해보고 있는데 감이 잘 안 잡혀서 질문 드립니다.. 너무 다 떠먹여달라는 느낌이라 염치없지만 도와주시면 감사하겠습니다!!
생각보다 각 문제별로 주저리주저리.. 적는 게 많아 따로따로 질문 올릴게요! 시간되실 때 피드백 부탁드리겠습니다 ㅎㅎ! 문제 정의 홈화면 메인 기능 사용성 개선 지표 정의 지표 - CTR(특정 영역 클릭수/조회수) (질문) 이때 조회수를 홈에 진입한 PV로 정의할 수 있을까요? 아니면 UV? CTR이 높다는 건 사람들이 관심있게 봤다는 뜻이기 때문에 홈에 진입한 사용자들 중 특정 영역 클릭률이 높다면, 그만큼 해당 기능을 잘 사용하고 있다는 뜻. 멘탈 시뮬레이션 배너 CTR이 높다면? 효과적인 프로모션을 배치하여, 배너 상세 화면에서 구매 전환율 높이는 작업을 하자. 클릭률이 가장 높은 프로모션을 첫번째 순서로 광고하고, 이후 마케팅 소재에 대한 인사이트로 써먹을 수 있을 것 같음. 그렇다면 효과적인 프로모션을 어떻게 찾지? 여러 배너들 중 CTR이 가장 높은 배너가 가장 사람들에게 후킹되는 소재라는 뜻. 다만, 홈에 가장 처음 접속했을 때 보여지는 배너가 다른 배너에 비해 조회수가 높을 수 있어 각 프로모션들이 첫번째 오도록 a/b테스트를 진행하여, 각 페이지별로 조회수와 클릭수를 따져서 클릭률을 판단함. 메뉴 카테고리 CTR이 낮다면? 아이콘이 직관적인 지 UI 점검 너무 카테고리가 적거나 많은 지 점검 (실제 사용자들의 검색 키워드들을 확인해서 자주 찾는 음식 데이터들끼리 카테고리화 하거나, 카테고리를 제일 첫번쨰, 윗 줄에 배치하기) 이런 음식은 어때요? CTR이 낮다면? 추천해주는 메뉴가 시원찮을 수 있다는 뜻. ‘사람들에게 가장 인기 있는 메뉴’, ‘지금 사람들이 찾는 메뉴’ 등 후킹이 될 수 있는 문구로 바꾸고, 추천 알고리즘도 사람들이 많이 찾는 음식들로 데이터를 점검해봐야 할 듯. 동네 맛집 CTR이 낮다면? 사용자의 위치에 맞게 맛집을 잘 추천해주고 있는지 (엉뚱한 위치를 잡고 추천해주지는 않는지) 별점말고도 리뷰같은 보다 구체적인 신뢰성 정보를 기획해보거나, 1.2km보다, 사는 동네(ex. 서울특별시 연남동)같이 직관적인 정보로 바꿔보거나 해볼 듯.