묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
크롤링 html 구조? 질문 있습니다.
크롤링 강의를 듣고나서 연습겸 식단의 중식메뉴를 크롤링 해보려는 시도를 하고 있습니다.네이버 실시간검색어 크롤링하는거에서 조금만 고쳐서 가져오려고 하니 내용을 제대로 못가져오는데 그 이유를 알수 없어 질문 남깁니다.차이점이라곤 #text 붙어 있다는 것인데 이것의 의미하는 것이 무엇인지 궁금하고 이 부분을 출력하려면 어떻게 해야되는지 궁금합니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
인자 전달 질문드립니다
a,b,c 라는 파라미터를 controller에서 dto로 받았습니다. 그리고 a,b,c를 이용해서 d,e라는 새로운 값을 만들어냅니다. Db 쿼리 조회시 필요한 인자는 a,d,e의 값인데 그럼 이 상황에서 인지를 남길때 a,d,e로 보내는게 나을지 dto에 d,e라는 변수도 만들어 이 값까지 셋팅하고 dto를 보내서 쿼리실행하는것이 나을까요?
-
미해결React로 NodeBird SNS 만들기
address in use 에러 관련 질문입니다..
events.js:187 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE: address already in use :::7001 at Server.setupListenHandle [as _listen2] (net.js:1300:14) at listenInCluster (net.js:1348:12) at Server.listen (net.js:1436:7) at Function.listen (C:\Users\zepet\Desktop\lecture\react-nodebird\ch1\back\node_modules\express\lib\application.js:618:24) at Object.<anonymous> (C:\Users\zepet\Desktop\lecture\react-nodebird\ch1\back\index.js:16:5) at Module._compile (internal/modules/cjs/loader.js:956:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10) at Module.load (internal/modules/cjs/loader.js:812:32) at Function.Module._load (internal/modules/cjs/loader.js:724:14) at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10) at internal/main/run_main_module.js:17:11 Emitted 'error' event on Server instance at: at emitErrorNT (net.js:1327:8) at processTicksAndRejections (internal/process/task_queues.js:80:21) { code: 'EADDRINUSE', errno: 'EADDRINUSE', syscall: 'listen', address: '::', port: 7001 } [nodemon] app crashed - waiting for file changes before starting... 해당코드이며 현재 mysql --version 결과 mysql Ver 14.14 Distrib 5.7.28, for Win64 (x86_64) 사용중입니다. root 계정에 처음에 설치할 떄 ip를 7001로 설정하고 진행을 하였고 react 소스에 7001로 하면 저런 에러가 떨어지고 다른 계정은 root계정과 비번이 안맞다고 나옵니다.. 해당 에러 문의드립니다.
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
early_stopping의 eval_set 질문
안녕하십니까. 책 p.252와 p.255에 각각 XGBoost와 LightGBM의 early_stoping 적용 코드가 있습니다. XGBoost에선 eval_set = [(X_train, y_train), (X_test, y_test)]이지만 LightGBM에선 eval_set = [(X_test, y_test)]입니다. 검증 세트이기 때문에 X_test, y_test만 있으면 될 것 같은데 XGBoost에선 왜 eval_set = [(X_train, y_train), (X_test, y_test)] 이렇게 설정이 되는 것인지 궁금합니다. 감사합니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
파이썬 버전
버전 숫자가 제일 높은건 3.8.0 인데 이건 10월 14일날 출시고가장 최근인 11월 2일날 출시한건 3.5.9 인데 넘버링이 클수록 최신이 아닌가요?
-
해결됨Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
vuejs와 궁합이 찰떡인 DB는 어떤걸 사용하면 될까요?
강의를 듣고있는데 DB활용 부분도 해보려 하는데.. ㅎㅎ 어떤 DB를 사용하면 좋을까 해서 질문남깁니다~!
-
해결됨파이썬 데이터시각화 분석 실전 프로젝트
marathon_2017_clean.Year = ‘2017’
이라고 하면 에러가 나지도 않고 .head() 해봐도 컬럼이 추가가 되지 않는데 저 명령어는 어떻게 해석이 되는건가요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
엑셀파일로 저장시 오류 문제
안녕하세요 강의를 듣고 똑같이 따라 했는데, 파일 저장 경로에서 클릭해보니 아래처럼 뜨네요. 인코딩이 잘못 된건지 전 강의에서 나온 에러인듯 한데 어떻게 해야할까요?에러코드는 맨아래사진처럼 나옵니다. from urllib.request import urlopen from bs4 import BeautifulSoup import openpyxl xl_file = openpyxl.Workbook() xl_sheet = xl_file.active for index in range(1,6): res = urlopen("https://www.seeko.kr/zboard4/zboard.php?id=mainnews&page=" + str(index) + "&select_arrange=headnum&desc=asc&category=&sn=off&ss=on&sc=off&keyword=&sn1=&divpage=10") soup = BeautifulSoup(res, "html.parser") data = soup.find_all("td", "article_subject") for item in data: #print(item.get_text()) xl_sheet.append([item.get_text()]) xl_file.save("IT.xlsx") xl_file.close()
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
앱 꺼짐
안녕하세요 앱 빌드 후 구글 로그인 화면을 누르면 앱이 꺼지는데 왜그런건가요? run 화면에 아래와 같이 나옵니다. Build fingerprint: 'google/sdk_gphone_x86_arm/generic_x86_arm:9/PSR1.180720.117/5875966:userdebug/dev-keys' Revision: '0' ABI: 'x86' pid: 13878, tid: 13878, name: 111_02_min_inst >>> com.min19102901.flutter_191111_02_min_inst <<< signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- Abort message: '[FATAL:flutter/shell/platform/android/platform_view_android_jni.cc(76)] Check failed: CheckException(env). ' eax 00000000 ebx 00003636 ecx 00003636 edx 00000006 edi 00003636 esi 00000070 ebp ffc64dc8 esp ffc64d68 eip f08a8b39 backtrace: #00 pc 00000b39 [vdso:f08a8000] (__kernel_vsyscall+9) #01 pc 0001fdf8 /system/lib/libc.so (syscall+40) #02 pc 00022ed3 /system/lib/libc.so (abort+115) #03 pc 01115f65 /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000) #04 pc 0110443b /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000) #05 pc 01102202 /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000) #06 pc 011622ad /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000) #07 pc 01114729 /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000) #08 pc 01116ce8 /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000) #09 pc 01116c2a /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000) #10 pc 0111d678 /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000) #11 pc 0111d6a6 /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000) #12 pc 00012a77 /system/lib/libutils.so (android::SimpleLooperCallback::handleEvent(int, int, void*)+39) #13 pc 00013896 /system/lib/libutils.so (android::Looper::pollInner(int)+998) #14 pc 0001340b /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+43) #15 pc 000e415b /system/lib/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long long, int)+59) #16 pc 003ddb28 /system/framework/x86/boot-framework.oat (offset 0x3ca000) (android.media.MediaExtractor.seekTo [DEDUPED]+136) #17 pc 005f0a02 /system/lib/libart.so (art_quick_invoke_stub+338) #18 pc 000a2f4e /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+222) #19 pc 0029bb22 /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+338) #20 pc 00293cc8 /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1048) #21 pc 005bd926 /system/lib/libart.so (MterpInvokeDirect+342) #22 pc 005e2ca1 /system/lib/libart.so (ExecuteMterpImpl+14497) #23 pc 00aeaf50 /system/framework/boot-framework.vdex (android.os.MessageQueue.next+38) #24 pc 00266096 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3007865774+598) #25 pc 0026c61c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220) #26 pc 00293cab /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019) #27 pc 005bc353 /system/lib/libart.so (MterpInvokeVirtual+691) #28 pc 005e2ba1 /system/lib/libart.so (ExecuteMterpImpl+14241) #29 pc 00aea9fc /system/framework/boot-framework.vdex (android.os.Looper.loop+128) #30 pc 00266096 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3007865774+598) #31 pc 0026c61c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220) #32 pc 00293cab /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019) #33 pc 005bdb1f /system/lib/libart.so (MterpInvokeStatic+207) #34 pc 005e2d21 /system/lib/libart.so (ExecuteMterpImpl+14625) #35 pc 00384cd2 /system/framework/boot-framework.vdex (android.app.ActivityThread.main+214) #36 pc 00266096 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3007865774+598) #37 pc 0026c50e /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+126) #38 pc 005a93fd /system/lib/libart.so (artQuickToInterpreterBridge+1277) #39 pc 005f6aed /system/lib/libart.so (art_quick_to_interpreter_bridge+77) #40 pc 005f0bd2 /system/lib/libart.so (art_quick_invoke_static_stub+418) #41 pc 000a2f5f /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+239) #42 pc 004d3209 /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+89) #43 pc 004d4eee /system/lib/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned int)+1422) #44 pc 00449643 /system/lib/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+83) #45 pc 0011d778 /system/framework/x86/boot.oat (offset 0x114000) (java.lang.Class.getDeclaredMethodInternal [DEDUPED]+168) #46 pc 005f0a02 /system/lib/libart.so (art_quick_invoke_stub+338) #47 pc 000a2f4e /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+222) #48 pc 0029bb22 /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+338) #49 pc 00293cc8 /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1048) #50 pc 005bc353 /system/lib/libart.so (MterpInvokeVirtual+691) #51 pc 005e2ba1 /system/lib/libart.so (ExecuteMterpImpl+14241) #52 pc 00c0b966 /system/framework/boot-framework.vdex (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22) #53 pc 00266096 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3007865774+598) #54 pc 0026c50e /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+126) #55 pc 005a93fd /system/lib/libart.so (artQuickToInterpreterBridge+1277) #56 pc 005f6aed /system/lib/libart.so (art_quick_to_interpreter_bridge+77) #57 pc 00badc2c /system/framework/x86/boot-framework.oat (offset 0x3ca000) (com.android.internal.os.ZygoteInit.main+3100) #58 pc 005f0bd2 /system/lib/libart.so (art_quick_invoke_static_stub+418) #59 pc 000a2f5f /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+239) #60 pc 004d3209 /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+89) #61 pc 004d2e8d /system/lib/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, char*)+429) #62 pc 003a770d /system/lib/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+925) #63 pc 000d90f3 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, char*, art::Primitive::Type, art::InvokeType)+2867) #64 pc 000c6ba9 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+73) #65 pc 0007098e /system/lib/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+62) #66 pc 00073e88 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+744) #67 pc 00001bb2 /system/bin/app_process32 (main+1506) #68 pc 000c0f54 /system/lib/libc.so (__libc_init+100)
-
미해결스프링 프레임워크 핵심 기술
이 예제 설명의 진짜 의도를 모르겠습니다.
12:25에서 사용한 예제에 대한 질문입니다. bookrepository를 목킹하셔서 널이 아니라 북을 리턴하도록 바꾸셔서 단위 테스트를 하셨잖아요. 이 때 bookrepository를 빈으로 등록해서 의존성 주입이 가능하게 만들었기 때문에 테스트가 용이해진다. 라는 정보를 알려주고자 이 예제를 설명해주신건가요? 그렇다면 빈에 등록이 되어야만 목킹이 가능한건가여? bookrepository를 new로 선언한 뒤 목킹?해서 테스트하면 안되는건가요? 그냥 이 예제를 설명하심으로써 정확히 어떤 핵심내용을말씀하시고자 하는지 제대로 이해가 안되서 질문드립니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
[주문 조회 V6: JPA에서 DTO로 직접 조회, 플랫 데이터 최적화] 출력 문의
안녕하세요. 강의 내용과 관련 없는 내용이라 질문을 해야 하나말아야하나 고민하다가 돌려보시는 분들도 이게 정상적으로 결과가 나오지 않을 거 같아서... 질문 드립니다. 올려주신 강의 자료 파일(pdf)의 List<OrderFlatDto>로 만든 부분을 List<OrderQueryDto>로 변환하는 소스는 아래과 같은데요. return flats.stream() .collect(groupingBy(o -> new OrderQueryDto(o.getOrderId(), o.getName(), o.getOrderDate(), o.getOrderStatus(), o.getAddress()), mapping(o -> new OrderItemQueryDto(o.getOrderId(), o.getItemName(), o.getOrderPrice(), o.getCount()), toList()) )).entrySet().stream() .map(e -> new OrderQueryDto(e.getKey().getOrderId(), e.getKey().getName(), e.getKey().getOrderDate(), e.getKey().getOrderStatus(), e.getKey().getAddress(), e.getValue())) .collect(toList()); 이렇게 되면 OrderQueryDto가 Key이고, List<OrderItemQueryDto>가 Value로 맵을 만들어 다시 OrderQueryDto를 생성하는 식으로 되는 것 같은데... 저는 결과가 2개의 OrderQueryDto로 합쳐지지않고, 4개의 OrderQueryDto로 나오더라구요. 그래서 아래와 같이 바꿔봤습니다. return new ArrayList<>(flats.stream() .collect(toMap(OrderFlatDto::getOrderId, o -> { // Key : OrderId, Value : OrderQueryDto (OrderItemQueryDto 1건 포함) OrderQueryDto orderQueryDto = new OrderQueryDto(o.getOrderId(), o.getName(), o.getOrderDate(), o.getOrderStatus(), o.getAddress()); orderQueryDto.getOrderItems().add(new OrderItemQueryDto(o.getOrderId(), o.getItemName(), o.getOrderPrice(), o.getCount())); return orderQueryDto; }, (e1, e2) -> { e1.getOrderItems().addAll(e2.getOrderItems()); return e1; })).values()); 뭐 좀 별로인 부분도 있지만 이렇게 수정하니 원하는 결과 (OrderQueryDto가 2개)가 나왔습니다. 다른 방법도 많고 JPA의 중요한 부분도 아니고 강의 들으시는 분들은 어떻게 출력되어야 하는지 이미 다 알고 계시겠지만... 혹시나 저처럼 다 돌려보고 확인해야 하는 사람에겐 중요할 것 같아서.... 제가 잘못한거거나 이미 수정하신 부분이시라면 죄송합니다.
-
블록체인 이더리움 부동산 댑(Dapp) 만들기 - 기본편
송금 문제
삭제된 글입니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Serializable 관련 문의입니다!
다른 분들의 소스를 보다보면 Entity 클래스에 Serializable 을 구현한걸 볼 수 있습니다. 왜 Serializable 를 구현하는지 강의에선 Serializable 을 사용하지 않은 이유가 있으신지 궁금합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
(해결완료) 주문을 하면 배송준비중으로 되어있어야 되는거 맞나요?
h2 database 테이블 하나씩 확인해봤는데 delivery 테이블의 status 컬럼의 데이터 값이null값이 있는걸 확인했습니다.. 혹시 setStatus 이게 필요하지 않을까 생각이 듭니다..
-
미해결워드프레스 제대로 개발하기 - 어드민 편
영상대로 따라가면.. 신규 글쓰기 하면 에러 납니다.
모모 내용 추가하는거 스킵하시고.. 바로 functions.save 만드는걸 보여 주시는대.. 영상따라 갈라고 모모내용 책 추가 하기 누르면.. 만들어진 액션으로 연결 되면서 에러떠서 새책 추가를 못해요.. 놓치기 쉬울수도 있는대 강의듣는 입장에선 힘든 상황이 나오니 언급을 해주시는게 좋을거 같습니다.
-
미해결워드프레스 제대로 개발하기 - 어드민 편
강의노트 좀 상세히 작성해 주시면 감사 하겠습니다.
강의할때 적으시는 강의노트 강의 아래에 좀더 자세히 적어 주시면 편할꺼 같습니다. 이전꺼가 기억이 안날때 영상 돌려 볼라면 힘들어서요 강의하신걸 좀더 자세히 문서로 요약해 주시면 정말 좋을거 같아요
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
트랜잭션 질문 드립니다
@Service가 서비스단에서서함수를 실행할 때 db를 이용한 로직이 없고 자바안에성 오직만 실행되면 @Transactional을 붙여주지 않아도 되는거죠?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
시계열 관련 부분은 책에서 어디를 보면 좋나요?
1. 시계열 관련 부분은 책에서 어디를 보면 좋나요? 2. submission 횟수가 제한된 대회에 참가중인데 (RMSE) 보통 이런경우 성능개선을 위해서는 저자님은어떻게 하시나요? (RMSE 코드 짜서 넣어도 RMSE 지표로는 향상되었지만, 제출시 오히려 지표가 낮게 나오는 경우가 있어서요) 3. ARIMA, MA 같은 시계열 관련 kernel이나 사이트 아시는 곳 있으시면, 알려주시면 큰 도움 될거 같습니다. 감사합니다.
-
미해결스프링 프레임워크 핵심 기술
수강강좌 질문 과 쿠폰질문
안녕하세요 강사님 최근 취업을 해서 스프링시큐리티를 통해서 인증/인가 개발은 담당하게된 주니어 개발자 입니다. 회사에서 업무에 빠른 적응을 위해서 파일럿 프로젝트라고 개인에게 준건데 제가 스프링을 잘몰라서 주말 과 비는 시간을 활용해서 계속해서 스프링공부를 하려고 합니다 다만 스프링 핵심 기술을 듣고 뭐를 듣는게 가장 좋을까요? 스프링을 오랫동안 깊게 공부해본적이 없어서 강의순서를 조금이라도 알려주시면 정말 감사하겠스빈다. 강의는 스프링 웹 mvc 스프링부트개념과 활용 스프링데이터 jpa 스프링 기반 rest api 스프링 security 있는데 강의순을 추천해주시면 좋겠습니다.! 부트를 하는데 mvc도 듣는게 좋을지도 알려주세요!! 그리고 강사님 강의를 들으면 20% 짜리 쿠폰을 주시는걸로 아는데 혹시 20% 할인 이벤트가 없을까요 금전적 부담이 있어서 질문드립니다. 저 강의를 전부다 구매 할 생각 이라서요. 그리고 항상 유투브로 좋은 강의 개발자로써 좋은이야기를 많이 해주셔서 감사합니다! 그럼 이 두가지 질문에 답변해 주시면 정말 감사하겠습니다.!
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
크롤링 질문입니다.
제가 크롤링을 배우기로 결심한 이유는 구글 검색 결과로 나오는 링크의 웹사이트를 하나하나 들어가서 그곳에 있는 특정 정보를 수집하기 위함이었습니다. 여기저기 질문을 하며 얻게된 결론은 정형화되어있지 않은 결과에서는 매우 힘들다는 것이 었는데 이게 아예 불가능 한지 궁금합니다. 제가 추출하고자 하는 정보가 브라우져에서 보이는 한 페이지 않에 있지 않고 각각의 링크안에 있다면, 그 링크안에서 정보를 파싱해서 찾아오는게 어떻게 가능할까요? 그리고 구글 같은 경우는 캡차가 있는 것이 또 하나의 걸림돌이라고 들었는데요. 조언좀 부탁드립니다.