섹션3 브루트포스 알고리즘 1342 문제 풀이 강의에서 풀이1 질문이 있습니다. for i in range(ord('a'), ord('z') + 1) : ans //= fact(S.count(chr(i))) 이렇게 fact로 나눠주라고 하셨는데, 왜 나눠주는 지 이해가 잘 안됩니다. 같은 문자가 있을 때 나눠주는 건 알고있습니다. 근데 그건 경우의 수를 구할 때고, 이건 인접한 문자가 같은 지 아닌 지를 구하는 건데 왜 나눠줘야 하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 왜 새로운 객체(MemoryMemberRepository memberRepository = new MemoryMemberRepository();)를 써서 clear을 하죠?? 멤버서비스를 통해 join한 멤버리포지토리랑 새로만든 멤버리포지토리가 달라서 clear안되는 거 아닌가요?? 결과적으로 클리어 되기는 했어요
내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)
import requests res = requests.get(" https://www.marketwatch.com/investing/stock/aapl/financials/cash-flow/quarter ") res.text 위 코드를 실행하니 <html lang="en"><head><title> marketwatch.com </title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style></head><body style="margin:0"><p id="cmsg">Please enable JS and disable any ad blocker</p><script data-cfasync="false">var dd={\'rt\':\'c\',\'cid\':\'AHrlqAAAAAMAh8Qu9qw4o5AAeZGKYw==\',\'hsh\':\'D428D51E28968797BC27FB9153435D\',\'t\':\'bv\',\'qp\':\'\',\'s\':47891,\'e\':\'c294f466cf1fc364ded3ee7825542c1f3981642dddce927e5f11a3c23d8562c7\',\'host\':\' geo.captcha-delivery.com \',\'cookie\':\'cKcsNHb~i3N0ubHsvh1SU41idmHgtXrG3MIr84AsSXM8dmhMHFBZ_SDJgc_fPcFDnPl66WhkZTCTtkxK4IxLoKIgEyZat25gsG5q7IDMkMwFhpZEai47m4N4I1c0WP9G\'}</script><script data-cfasync="false" src=" ">https://ct.captcha-delivery.com/c.js"></script></body></html> 이렇게 출력이 나왔습니다. 구글링을 해보니 해당 marketwatch 사이트에서 크롤링을 막고있는 거 같더라구요. 이런 상황에서는 requests를 통해서는 해당 강의를 진행하지 못한다는 거 맞나요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Pyside6 배경색이 디폴트가 다크모드로 나오는것 같은데 너무 어두워서 밝게 하고 싶으나 방법을 잘 모르겠어요 색상을 변경하고 싶은데 어떻게 해야 하나요?
실습소스를 스프링부트 3버전에서 진행중입니다. 아래와 같은 오류가 스프링부트 구동중에 발생하는데요. 서버구동은 잘 진행되나 Exception로그가 출력됩니다. 테스트는 잘 통과됩니다. java.lang.Exception: exception just for purpose of providing stack trace at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.markRollbackOnly(JdbcResourceLocalTransactionCoordinatorImpl.java:309) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.internal.AbstractSharedSessionContract.buildNamedQuery(AbstractSharedSessionContract.java:1141) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.internal.AbstractSharedSessionContract.createNamedQuery(AbstractSharedSessionContract.java:1019) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.internal.AbstractSharedSessionContract.createNamedQuery(AbstractSharedSessionContract.java:143) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:568) ~[na:na] at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:364) ~[spring-orm-6.2.2.jar:6.2.2] at jdk.proxy3/jdk.proxy3.$Proxy117.createNamedQuery(Unknown Source) ~[na:na] at org.springframework.data.jpa.repository.query.NamedQuery.hasNamedQuery(NamedQuery.java:114) ~[spring-data-jpa-3.4.2.jar:3.4.2] at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$DeclaredQueryLookupStrategy.getCountQuery(JpaQueryLookupStrategy.java:208) ~[spring-data-jpa-3.4.2.jar:3.4.2] at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$DeclaredQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:175) ~[spring-data-jpa-3.4.2.jar:3.4.2] at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:256) ~[spring-data-jpa-3.4.2.jar:3.4.2] at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:99) ~[spring-data-jpa-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:116) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.mapMethodsToQuery(QueryExecutorMethodInterceptor.java:104) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$new$0(QueryExecutorMethodInterceptor.java:92) ~[spring-data-commons-3.4.2.jar:3.4.2] at java.base/java.util.Optional.map(Optional.java:260) ~[na:na] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.<init>(QueryExecutorMethodInterceptor.java:92) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:440) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.RepositoryFactoryBeanSuppo ... 생략 어떤 부분에서 에러가 난 것인지 스택트레이스만 보고서 파악하기 어렵네요. AI인턴 도와주세요!
안녕하세요. 스프링부트3 버전으로 실습소스를 구동하려고 합니다. https://drive.google.com/drive/folders/1dXaF4sqO4De0_A3ECZT155dTUjH4--mn?usp=sharing (위 경로에서 프로젝트 소스를 확인하실 수 있습니다.) 구동결과 에러 로그 Parameter 0 of constructor in hello.itemservice.config.MyBatisConfig required a bean of type 'hello.itemservice.repository.mybatis.ItemMapper' that could not be found. 위와 같은 에러가 발생합니다. 스프링버전 2일 때는 잘 구동되는 것을 확인했습니다. 도움 부탁드립니다ㅠㅠ
finally { if ( rs != null ) try{rs.close();}catch(Exception e){} if ( pstmt != null ) try{pstmt.close();}catch(Exception e){} if ( conn != null ) try{conn.close();}catch(Exception e){} } 자원을 해제하는 도중 예외가 발생하면 나머지 자원이 해제되지 않을 수 있기에 다음과 같은 try 문으로 감싸주어야 한다고 이해했습니다. 그러면 예외가 발생해 해제에 실패한 자원에 대해서는 다시 close() 를 하거나 다른 조치를 취하지 않아도 메모리 누수나 다른 문제가 없는 건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. fail(); 부분에서 오류가 뜨고 이텔릭체로 바뀌지 않습니다. 왜 그런가요? package hello.hello_spring.service; import hello.hello_spring.domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemberService memberService = new MemberService(); // 테스트케이스에서는 메서드명 한글로 적어도 된다 @Test void 회원가입() { // given Member member = new Member(); member.setName("hello"); // when long saveId = memberService.join(member); // then(검증) Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test // 예외처리(테스트케이스에서는 정상적으로 작동하는거도 좋지만 예외 처리가 더 중요하다) public void 중복_회원_예외() { // given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); // when memberService.join(member1); try { memberService.join(member2); fail(); } catch (IllegalStateException e) { } // then } @Test void findMembers() { } @Test void findOne() { } }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 영한님 강의를 보고 사이드 프로젝트를 하며 성장 하고 있습니다. 관련된 내용을 찾아 보다가 인사이트를 얻기 어려워 조언을 얻고자 질문을 남깁니다. 테스트에 트랜잭션이 걸려있고, ExecutorService submit을 통해 단순히 데이터를 저장 할때 PessimisticLockingFailureException 예외가 발생 합니다. 테스트 트랜잭션이 락을 가지고 있고 커밋 되지 않아서 문제가 발생 한다고 하는데 멀티 스레드는 트랜잭션 전파와 연관이 없기 때문에 별도의 물리 트랜잭션이라고 생각 하고 있습니다. 하지만 왜 이런 예외가 발생 하는지 모르겠습니다 ㅠㅠ 힌트라도 알려 주시면 감사합니다 @Transactional @DisplayName("멀티 스레드에서 모임을 저장 한다.") @Test void saveEventWhenMultiThread() throws InterruptedException { //given ExecutorService executorService = Executors.newFixedThreadPool(2); int taskCount = 3; CountDownLatch countDownLatch = new CountDownLatch(taskCount); //when //then for(int i = 0; i < taskCount; i++) { int testNum = i; executorService.execute(() -> { try { eventRepository.save(createEvent("멀티 테스트" + testNum , "테스트 모임", 30)); } finally { countDownLatch.countDown(); } }); } countDownLatch.await(); executorService.shutdown(); } Exception in thread "pool-2-thread-2" Exception in thread "pool-2-thread-1" org.springframework.dao.PessimisticLockingFailureException:
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 문제: 강의를 진행하다가 index.html의 코드를 바꾸고 서버를 재시작해도 적용이 안되는 현상이 발생 발생 오류: 발생한 오류 코드는 o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header 등등 해결 방법: 크롬 브라우저의 인터넷 사용 기록 삭제후 해결
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. AOP는 핵심 로직이 아닌 부가적인 로직을 처리할 때 주로 사용한다고 알고있습니다. 보통 많이 사용하는 경우는 로그추적, 트랜잭션 등이 있다고 하셨는데 권한을 체크할 때도 사용할 수 있나요? 만약 사용자들은 방을 생성해서 그 방안의 참여자들만 글을 쓸 수 있을 때, 이 유저가 참여자인지 확인하는 로직이 필요하다면 이 로직을 AOP를 활용하여 작성해도 되는지 궁금합니다. 여러 메서드들에서 사용하기 때문에 공통 관심사라는 생각이 들긴 합니다. 직접 서비스단에서 매번 확인하면 중복 코드가 발생할 것 같아서 AOP를 활용하고 싶은데 이런 경우도 사용이 가능한지 궁금해 질문남깁니다. 감사합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 영상보며 차근차근 따라하는데 스프링부트 프로젝트만들고 build.gradle 오픈하니 사진과 같이 에러가 뜹니다. 질문전 다른 분들의 같은 문제를 보았는데 저는 제 어떤 부분이 문제인지 잘모르겠습니다ㅠ..환경변수하고 체크해봤는데 제 눈에는 문제를 잘모르겠어요. 혹시나해서 오류 및 프로젝트 설정, 환경 변수등의 사진들을 올려봅니다. <오류> <Project Structure - Project> 위 사진에서 처음에는 <No SDK>로 설정되어있어서 이것문제인가 싶어 open-jdk로 변경했지만 그대로더군요ㅠ <Project Structure - SDKs> <스프링부트 프로젝트 설정> <환경변수 설정> 이상입니다. 도움좀 주세요ㅠ 스프링 공부하고싶어여
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @GetMapping("/login") public String login(@ModelAttribute("login") LoginDto loginDto) { return "login/login"; } @PostMapping("/login") public String loginForm(@Validated @ModelAttribute("login") LoginDto loginDto, BindingResult bindingResult, HttpServletRequest request) { if (bindingResult.hasErrors()) { return "login/login"; } 이렇게 작성하였을 때는 유효성 검사에 실패하면 제대로 처리가 되는데, @GetMapping("/login") public String login(Model model) { model.addAttribute("login", new LoginDto()); return "login/login"; } 이런 식으로 변경하면 Caused by: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'login' available as request attribute 이런 식으로 오류가 나게 됩니다. 동작 방식에서 어떤 차이가 있는 것인지 궁금하여 질문 남깁니다.
*ptr++의 경우에는 arr의 값도 증가 시키고 포인터 위치도 변경시키는거고, ++*ptr 일경우에는 바라보고 있는 포인터위치는 변하지 않고 arr의 값만 증가 시키고 끝나는건가요? 제가 지금 이해하고 있는건 *ptr 의 앞에 "++"이 붙으면 값만 선증가시키고, "++"이 뒤에 붙이면 값을 후증가시키고 메모리값도 증가시킨다. 인데 이게 맞나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 현재 cmd에서 C:\Users\choiminseok>cd study C:\Users\choiminseok\study>cd hello-spring C:\Users\choiminseok\study\hello-spring>gradlew 이렇게 쳐서 build successful이 나왔고 C:\Users\choiminseok\study\hello-spring>gradlew build 이렇게 입력해서 마찬가지로 build successful이 나왔습니다. 이제 여기서 java -jar hello-spring-0.0.1-SNAPSHOT.jar 이런게 보이는 쪽으로 가야하는데 뭘 입력하면 되나요? 강사님은 ls -arlth를 입력해 뭔가 나오는데 저는 ls를 입력하면 'ls'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고 나옵니다. 해결방법 알려주세요 참고로 윈도우입니다.