이전에 service 메소드 작성할떄 유사한 질문을 드렸었는데요 ( https://www.inflearn.com/questions/607828 ) 이 강의에서는 req, resp를 쓰면 오류가나고 request, response라고 써야 오류가 안나던데.. 왜 req, resp는 못쓰는걸까요?
강의 너무 잘 듣고 있습니다. 강의 듣던 중 궁금한 점이 있는데 Model의 생명 주기가 어떻게 되는지 검색을 해봐도 원하는 검색이 안나오네요. Model의 생명주기가 궁금합니다. 34번째줄 @RequestMappint("/save")를 호출할때 model이 없어 model.addAttribute("member", member);할 때 value가 넣어지는 거 같은데 model이 존재하고 key가 같다면 member가 덮어쓰기되는 식인가요?
Exception in thread django-main-thread: Traceback (most recent call last): File "C:\Users\lee\.conda\envs\askcompany\lib\threading.py", line 973, in _bootstrap_inner self.run() File "C:\Users\lee\.conda\envs\askcompany\lib\threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\utils\autoreload.py", line 53, in wrapper fn(*args, **kwargs) File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\core\management\commands\runserver.py", line 117, in inner_run self.check(display_num_errors=True) File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\core\management\base.py", line 392, in check all_issues = self._run_checks( File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\core\management\base.py", line 382, in _run_checks return checks.run_checks(**kwargs) File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks new_errors = check(app_configs=app_configs) File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config return check_resolver(resolver) File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver return check_method() File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\urls\resolvers.py", line 407, in check for pattern in self.url_patterns: File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\utils\functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\urls\resolvers.py", line 588, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\utils\functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\urls\resolvers.py", line 581, in urlconf_module return import_module(self.urlconf_name) File "C:\Users\lee\.conda\envs\askcompany\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "C:\Dev\askcompany\askcompany\urls.py", line 41, in <module> path('__debug__/', include('debug_toolbar.urls')), File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\urls\conf.py", line 34, in include urlconf_module = import_module(urlconf_module) File "C:\Users\lee\.conda\envs\askcompany\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\debug_toolbar\urls.py", line 5, in <module> urlpatterns = DebugToolbar.get_urls() File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\debug_toolbar\toolbar.py", line 145, in get_urls for panel_class in cls.get_panel_classes(): File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\debug_toolbar\toolbar.py", line 126, in get_panel_classes panel_classes = [ File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\debug_toolbar\toolbar.py", line 127, in <listcomp> import_string(panel_path) for panel_path in dt_settings.get_panels() File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\django\utils\module_loading.py", line 17, in import_string module = import_module(module_path) File "C:\Users\lee\.conda\envs\askcompany\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "C:\Users\lee\.conda\envs\askcompany\lib\site-packages\debug_toolbar\panels\settings.py", line 7, in <module> get_safe_settings = get_default_exception_reporter_filter().get_safe_settings AttributeError: 'SafeExceptionReporterFilter' object has no attribute 'get_safe_settings' 구글에 검색해봤는데 정확히 무슨 내용인지 모르겠네요...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 강의를 듣다 궁금한점이 있어서 질문드립니다! file.transferTo(new File(fullPath)) 이렇게 해주면 fullPath 경로에 파일이 저장된다고 하셨는데 어떻게 파일이 저장되는 걸까요? @RequestParam MultipartFile file 이렇게 file을 처음에 컨트롤러에서 받는데 이 file 객체에 현재 첨부한 파일이 들어있는거고 file.transferTo()를 하면 ()안의 경로에 file 객체가 가지고 있는 파일이 저장이 되는거라고 생각하면 될까요? 그리고 new File() 이 무슨 역할을 하는지 혹시 알수있을까요?
강의 너무 잘보고 있습니다. 여기서 Model추가 -v3에서 한 가지 부분이 이해가 안됩니다. ModelView클래스에는 model값을 넣어주기 위해 생성자에서도 값을 넣어주지않고 setter를 통해서도 넣어주지 않는데 아래 코드의 44번행 view.render(mv.getModel(), request, response);에서 mv.getModel()을 해서 request.setAttribute(key,value)부분에서 값이 들어가는게 이해가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 이번에 스프링부트를 공부해보려고 이사이트에 찾았습니다. vscode가 친숙해서 vscode로 개발을 진행하는데 자바파일 실행시 아래와 같은 오류가 계속 뜨게됩니다... 어떻게 해야 해결할 수 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. MemberServiceTest에서 memberRepository를 사용하여 afterEach메서드를 통해 초기화 시켜주는데 memberService 안의 memberRepository가 final 하기 때문에 건드리지 못해서 밖에서 memberRepository 오버로딩을 통해 초기화 해주는건가요?? 맞다면 final 키워드가 붙어있는 memberRepository를 밖에서 오버로딩할수 있는건가요? MemberService안에 있는 memberRepository는 private final인데 그 밖에서 선언한 memberRepository를 초기화해주는것으로 어떻게 초기화가 되는거인지 궁금합니다...!!
안녕하세요, askcompany 프로젝트 폴더 설정하는 부분에서 몇가지 질문이 있습니다. 1. DEBUG 모드일때만 프로젝트 폴더의 urls.py에 media 관련 url을 추가해주는 이유가 있을까요? 해당 url은 어떤 역할을 하게 되는 것인가요? 2. 프로젝트 폴더의 urls.py에서 사용한 from django.conf import settings과 django github의 django.conf.global_settings.py의 차이가 궁금합니다. 3. 2번의 settings와 프로젝트 폴더에 자동으로 생성된 settings.py의 차이가 궁금합니다. 4. settings를 개발과 운영으로 나눴는데 그렇다면 settings/prod.py에 DEBUG=False와 같은 설정을 바꿔야 하는게 아닌지 궁금합니다. 감사합니다.
안녕하세요 단순한 질문이긴 한데.. 제가 뭔가 착각하고 있나 싶어 질문 드립니다 ㅠ @Component 어노테이션을 붙이면 빈으로 등록이 되죠 그리고 등록될 때 이름을 지정하지 않으면 해당 클래스 이름의 첫글자를 소문자로 바꿔 등록된다고 이해하고 있는데요 강의 1분 24초에 HelloBean 이라는 클래스를 하나 만들어서 빈으로 등록해 사용하는데 이 때 @Component static class HelloBean{ } 이렇게만 등록해도 helloBean 이라는 이름으로 빈이 등록되 않나요? @Conponent("helloBean") 이라고 이름을 지정해 주어야만 정상적으로 코드가 동작하고 이름을 지정해 주지 않으면 빈을 찾을 수 없다는 에러가 발생하던데 결과적으로 빈의 이름을 지정하지 않아도 타임리프에서 사용된 빈의 이름과 일치할 텐데 빈 이름을 지정해야 코드가 정상적으로 동작하는 이유를 모르겠습니다..
안녕하세요! ML공부하면서 강의 정말 많이 도움이 되고 있습니다^^ ㅇ skew를 사용한 왜곡도 제거부분에서(강의 8:00~10:00 부분) 1. skew 대신 standardscaler를 사용해 표준화 시키는 것은 단점이 있나요? (정규분포를 만들어주기 때문에 skew보다 더 정리를 잘해줄것 같은 생각이 듭니다.) 2. 또한 log를 씌워 정규분포와 비슷하게 만들어준다고 하셨는데, 이부분 또한 standardscaler를 적용하면 안되는 걸까요? ㅇ GrLivArea 이상치를 제거하는 부분에서(강의 14:00~18:00 부분) 1. 다른 이상치 제거방법(사분위수)을 써도 되는지? 2. 이상치 제거할 때 테스트 데이터에 이상치가 있는지 확인하고 제거하라고 하셨는데 학습검증단계에서 테스트 데이터를 참고해도 되는건가요? ㅇ 전처리 과정 순서를 기본전처리(null, 범주형 변환 등) → standardscaler → 이상치제거(IQR 등) → minmaxscaler 이렇게 기본틀로 잡고 머신러닝을 진행하고 있었는데 돌리는 모델이나 데이터별로 달라져야할까요? ㅇ 마지막으로, house price 타켓 컬럼을 log변환해서 학습을 진행을 하셨는데, 타겟값만 log를 씌워주고 다른 값들은 log를 안씌운 상태에서 학습을 하게되면 오류(수치상의 차이 기반)가 발생할 가능성은 없을까요? 질문이 난잡하긴 한데 간략하게나만 답변 주시면 감사하겠습니다! 감사합니다.
강좌에서는 자바 11로 하라고 하셨는데, 혹시 자바17로 해도 되는걸까요? Build.grade 의 sourceCompatibility 에 자바 17 버전이라고 돼있습니다 . Preference 의 gradle JVM 은 Project SDK corretto-17 Project settings 에서 SDK 는 corretto-17 Amazon Corretto version 17 입니다 . 그리고 혹시 JVM 에 원래 선택 돼있는 Project SDK corretto-17 말고 corretto-17 Amazon Corretto version 17.0.4 도 있는데 , 이걸로 바꿔야 하나도 궁금합니다 .
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 강사님 타임리프 부분이 가물가물해서 복습하고 있는 수강생입니다. 다름이 아니라 '타임리프 - 스프링 통합과 폼' 챕터 '입력 폼 처리' 강의에 질문이 있어서 글을 남깁니다. 지금 저는 JPA를 사용하면서 MVC 2 강의를 복습하고 있고, 기본 생성자의 접근 제한자를 모두 protected로 두고 사용하고 있습니다. 강의 내용 중, addForm을 Get으로 불러올 때, 빈 객체를 넘기셔서 일단 강의대로 적용하기 위해 public으로 접근 레벨을 변경하였으나, 여기서 문제가 발생하였습니다. 질문이 몇개 있어서 번호를 붙여서 질문하겠습니다!! 1. 기본 생성자를 사용하여 진행 시, save 및 update가 정상 작동하지 않습니다 (id를 제외한 모든 값이 null로 들어갑니다) 이 경우, 제가 생각하기에 flush가 동작하지 않아 그런 것 같은데, 정확한 버그 발생 이유와 해결 방안이 너무 궁금합니다!!ㅠㅠ 2. 결국 엔티티에서 빈 객체 생성자를 public으로 두고 싶지 않아, ItemDTO를 따로 만들어서 빈 객체를 생성하여 넘겨줬는데, 이렇게 해도 기능 자체는 정상 작동했습니다. 혹시 이 경우, 문제가 되는 점이 있을까요? (DTO => 엔티티 변환 과정 하나도 없이 그냥 ItemDTO만 전달했습니다) 바쁘실텐데 질문 읽어주셔서 감사합니다!! 또 항상 좋은 강의 제공해주셔서 강사님과 인프런 모든 분들에게 너무 감사드립니다!
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ---------- ---------- # 감사의 인사 안녕하세요! 먼저 좋은 강의 만들어주셔서 감사합니다. 파이썬 문법을 기본적인 것을 떼고 프레임워크와 함께 무언가 만들어볼라고 하던 찰나 FastAPI와 함께 크롤링까지 학습할 수 있어서 좋은 강의인 것 같습니다 : ) 스크랩핑의 경우, json.load 관련하여 학습하다보니 serialize 개념에서 시작하여 json.dump와 json.loads 등등 과 parser 개념에 대해 학습할 수 있어서 너무 좋았습니다. 이것저것 학습하다보니 하루가 쑤욱 갔네요... ---------- ---------- # 질문 1 먼저 구글링을 하고 나서 질문드립니다. 1) 아래 코드에서 response 앞에 await이 올 수 있는 이유 async def fetch(session, url): print(f"{os.getpid()} | {threading.get_ident()} thread | url: {url}") async with session.get(url) as response: return await response.text 공식 문서에 따르면 await 뒤에는 코루틴, 태스크 또는 퓨처가 와야한다고 하는데, 위 코드에서 await이 올 수 있던 것은 여기서 response가 async with session.get(url)의 alias 여서 가능한건가요??? 만약 그렇다면 with문은 context manager인 걸로 알고 있습니다. 자원을 할당해주고 다 사용하면 반환하는 역할인 것으로요. 그러면 이 with문이 어째서 코루틴에 속하는지 잘 모르겠습니다. ------- # 질문 2 2) html.parser 이 질문은 제가 이해한 게 맞는 건지 여쭤보는 질문입니다. beautifulsoup(html, "html.parser") code 부분에서 html을 구문분석할 parser를 "html.parser"로 정한다는 의미인가요? 그리고, HTML parser란 HTML 코드를 읽고 취해서 DOM tree 구조를 생성하는 프로그램이라 이해하면 되나요?? 이 부분은 구글링하여 학습했으나, 강사님의 내포하는 지식과 일치하는지 확인받을려는 질문입니다. ------- # 질문 3 3) await을 넣는 위치 코루틴이란 진입점과 탈출점이 여러 개인 routine인 것으로 이해했고, 그 포인트들이 await과 return으로 만들어진다고 강의를 통해 이해했습니다. 그런데, 왜 이 위치에 await을 썼는가? 라는 의문에는 쉽게 답이 나오지 않는 것 같습니다. from bs4 import BeautifulSoup import asyncio import aiohttp async def fetch(session, url): async with session.get(url) as response: html = await response.text soup = BeautifulSoup(html, 'html.parser') cont_thumb = soup.find("div", "cont_thumb") for cont in cont_thumb: print(cont.find("p", "text_thumb")) 위 코드에서 await은 response.text 앞에 있는데요. await의 위치는 작성자가 임의로 위치할 수 있는 건인지, 아니면 별도로 제가 모르는 내용이 있는 건지 알고 싶습니다. ------- #질문 4 4) config.py의 get_secret() 질문 get_secret function 매개변수 3개를 key, default_value, json_path 를 입력하셨습니다. json_path의 경우, BASE_DIR를 전역변수로 입력하셨기 때문에 함수 인자로 입력하지 않아도 인식된다고 이해하면 될까요? 또한, EnvironmenError의 내용을 보면 이 Error 설명을 보면 Base class for I/O related Errors 나와있는데, 왜 I/O 관련 에러인지 모르겠습니다. 이 Error는 key에 대한 대체값인 default_value가 없는 경우 발생되는 걸로 이해했습니다. CPU가 이 값을 읽는건데 I/O 인가요? 그리고, get_secret() 같은 함수를 작성하실 때 어떠한 흐름으로 작성하시는지 궁금합니다. 작성을 하면서 수정하시는 건지, 아니면 처음부터 이 function은 이 역할을 하고, 이 역할을 위해서 별도의 function을 만들고 라는 방식으로 하시는 건지 입문자로서 궁금합니다. ------- # 질문 5 5) 마지막 질문입니다. 이건 학습 관련 질문입니다. 이번 강의를 마치고, 운영체제와 네트워크 공부를 다시 복습하고, 자료구조와 알고리즘 공부를 할려고 하는데, 프레임워크에 대해서 학습하고 싶습니다. FastAPI를 깊이 공부할지, 아니면 Django를 학습할지 고민입니다. 인프런의 Django 강의를 결제하여 듣고 있으나, 너무 꼼꼼하셔서 그런지 강의가 heavy하네요..ㅠㅠ 어떻게 학습하시는 걸 추천하시나요??? ------- ------- ------- ------- 질문 읽어주셔서 감사합니다.