묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
검색어로 노래 목록 필터링이 안되는 문제
안녕하세요, 진석 님. '01-03 검색 지원' 강의를 듣다가 문제가 생겨 질문을 올립니다. 검색어 입력폼을 구현한 후,검색어로 '악뮤'를 입력하고 검색하면 필터링이 되지 않고 song_list 전체 목록이 뜹니다. 쿼리 값을 사용해서 song_list 필터링을 못하는 것 같은데... 원인을 파악하지 못한채 진석 님 코드로 덮어 쓰기에는 제가 너무 답답해서, 진석 님 코드랑 제 코드도 비교를 해보았는데 코드 까막눈이라 어디서 잘못된지 못 찾겠습니다... 우선 제 코드들과 검색 창을 캡처한 이미지를 같이 첨부했습니다. 도움 부탁 드립니다! <mydjango.py># mydjango.py import sys import django import requests from django.conf import settings from django.core.management import execute_from_command_line # from django.http import HttpResponse from django.shortcuts import render from django.urls import path settings.configure( ROOT_URLCONF=__name__, DEBUG=True, SECRET_KEY="secret", TEMPLATES=[ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": ["templates"], } ], ) django.setup() def index(request): # qurery 있으면 가져오고, 없으면 빈 문자열로 가져오기 # => 사전에 지정 키가 없더라도 KeyError 예외를 발생시키지 않고 디폴트값 반환 query = request.GET.get("query", "").strip() # 검색어 json_url = "https://raw.githubusercontent.com/pyhub-kr/dump-data/main/melon/melon-20230906.json" response = requests.get(json_url) ''' #예외 발생 처리 코드 .ok 속성이 내부에서 raise_for status 함수를 사용하지만. 예외 발생이 아닌 True/False를 반환 - True: 서버 응답의 상태코드가 400 미만일 경우 - False: 서버 응답 상태코드가 400 이상, 600 미만일 경우 ''' if response.ok: song_list = response.json() else: song_list = [] if query: song_list = filter( lambda song: query in song["가수"], song_list, ) response.raise_for_status() song_list = response.json() return render(request, "index.html", {"song_list": song_list}) urlpatterns = [ path("", index), ] execute_from_command_line(sys.argv) <index.html>{# 장고 템플릿 엔진 주석 문법 : templates/index.html 경로의 파일 #} <!doctype html> <html lang="ko"> <head> <meta charset="UTF-8" /> <title>Melon List</title> <style> body { width: 400px; margin: 0 auto; } table { width: 100%; border-collapse: collapse; } table, th, td { border: 1px solid black; } form { margin-bottom: 10px; } form input { width: 100% } </style> </head> <body> <h1>Melon List</h1> <form action="" method="get" autocomplete="off"> <input type="text" name = "query" placeholder="검색어를 입력해주세요." autofocus/> </form> <table> <thead> <tr><th>곡명</th><th>가수</th></tr> </thead> <tbody> {% for song in song_list %} <tr> <td>{{ song.곡명 }}</td> <td>{{ song.가수 }}</td> </tr> {% endfor %} </tbody> </table> </body> </html> <main01.py># 더 많은 노래를 보여주고 싶어요. import requests # pip install requests from pprint import pprint # 가독성좋게 출력하기 위한 모듈 json_url = "https://raw.githubusercontent.com/pyhub-kr/dump-data/main/melon/melon-20230906.json" response = requests.get(json_url) response.raise_for_status() # 비정상 응답을 받았다면, HTTPError를 발생시킵니다. song_list = response.json() print(type(song_list), len(song_list), type(song_list[0])) pprint(song_list) <검색어에 '악뮤' 입력 시, 나오는 화면>
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
자막(자동자막?) 오류
영상에 자막 기능이 생겨셔 켜놓고 보다보니대부분읜 괜찮은데 가끔 버전 등 숫자가 다르게 나온다던가 하는 부분이 보이더군요.이 자막은 자동자막으로 만들어진건가요?만약 상이한 부분이 있으면 피드백을 드려야 할지, 아니면 자동 자막이라 어쩔 수 없는 것인지문의드립니다~
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
00-02 맥 개발환경 설치 영상 잘못 업로드?
00-02 맥 개발환경 설치 영상이 3분3초로 되어있고실행하면 00-05 PyCharm Professional 체험계정 활성화 영상이 나옵니다.영상이 잘못 업로드 된 것 같다는 생각이 듭니다. 확인 부탁드려요~
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
6개월 리딤코드 신청 방법
안녕하세요, 진석님.즐거운 설 보내세요 ^^ '00-05 Pycharm Professional 체험계정 활성화' 강의를 듣다가 수강생 혜택으로 6개월 리딤코드를 받을 수 있다는 점을 알게 되었습니다. 하지만 어디서 신청하는지 모르겠습니다 ㅠㅠ 강의 설명을 참고하여 신청해달라고 하셔서 강의 중에 하시는 말씀도 들어보고, 강의안에 링크가 있는지도 보았지만 어디서 신청하는지 못 찾겠습니다 ㅠㅠ 혹시나 영상 하단에 있는 수업 노트를 말씀하시는 것인가 하여 봤지만 해당 강의에는 수업 노트가 없는 것 같고, 또 '새소식' 게시판을 봤는데도 결국 찾지 못해 도움을 요청드립니다 ㅜㅜ 부족한 질문이라도 언제나 성심성의껏 답변해주시는 진석 님께 늘 감사드립니다. ^^ 행복한 설 연휴 보내시길 바랍니다. 😀
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
기존 강의 진행중이던 사람은 다 듣고 복습용으로 듣는게 좋을까요?
기존 강의랑 맥락은 비슷하지만 새롭게 추가된게 많아보여서요기존강의 30%밖에 안되긴 했는데 새로운 강의를 처음부터 보는게 나을지..추천하는 방법이 있을까용??
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
리뉴얼 복습용 쿠폰 감사합니다.
지난번 듣고 있던 django 강의의 리뉴얼 강의 쿠폰 잘 받았습니다. 쿠폰 다운로드용 이메일 조회 잘되는것 같아요. 다시 복습 시작합니다. 감사합니다!!!
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
pyenv local 3.11.6을 실행했음에도 버전 확인 시, python 3.11.7로 뜨는 문제
안녕하세요, 진석 님.이전 질문들에 친절하고, 쉽게 해답을 주셔서 감사합니다.덕분에 빠르게 원인을 파악하고 문제들을 해결할 수 있었습니다. 감사합니다 :-) '00-2 맥 개발환경 설치' 강의에서 'pyenv global 3.11.6으로 파이썬 기본 버전 설정을 하였음에도, python3 --version으로 버전 체크해보면 python 3.11.7 버전이 뜹니다. 이리저리 찾아봤는데도(구글, chatgpt) 명확한 해답을 못 찾겠어서 진석 님께 도움을 요청 드립니다. <진행 내용>'pyenv install 3.11.6' 버전 파이썬 설치 완료'pyenv global 3.11.6'로 파이썬 기본 버전 3.11.6으로 세팅'python3 --version' 실행 시, python 3.11.6이 아닌 python 3.11.7 출력'python --version' 명령어로 실행 했는데 not found가 떠서 찾아보니, 파이썬 3.x 버전을 쓰면 뒤에 3을 붙인 python3로 실행하라고 해서 'python3 --version' 명령어로 실행 <질문 사항>python --version과 python3 --version 명령어의 차이가 무엇인지? (구글 및 chatgpt에서는 python 버전에 따라 뒤에 3을 붙여야 한다고 하지만, 진석 님께서도 마찬가지로 파이썬 3.x버전을 쓰시는데 3을 안 붙인 "python --version" 명령어 자체로도 실행이 잘 되길래 제가 알아본 내용과는 달라서 두 명령어의 차이를 명확히 이해하고 넘어가고 싶습니다!) => 왜 뒤에 3을 붙여야 하는지조차 제대로 이해 못한 상태 pyenv global 3.11.6으로 기본 버전을 세팅하였음에도 파이썬 버전 체크 시, 3.11.7이 뜨는 이유 이렇게 두 가지 질문 드립니다. 더불어, 즐거운 설날 되세요! 😀
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
강사님 Swagger에 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. springfox 버전의 스웨거는 2020년 이후로 업데이트가 종료된 후로 springdoc의 스웨거를 사용하는데 (업데이트 지속) 어떤걸 의존성 추가해야하는게 맞는것일지 고민이 됩니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
nvm --version 실행 시, not found
안녕하세요, 진석 님.이전에 발생한 문제는 덕분에 수월하게 해결했습니다! 하지만 ''nvm --version" 명령어 실행 시, not found가 뜹니다 ㅠㅠ<진행과정>brew 명령어로 5가지 팩키지 다운로드 완료(iterm2, ..., nvm)'ls -a ~' 명령어로 nvm 존재 여부 확인 혹시나 해서 mkdir ~/.nvm 명령어 입력했으나, 'File exist' 확인code ~/.zshrc 명령어 실행 후, vscode로 명령행 붙여넣기 하고, 저장 완료vim ~/.zshrc로도 실행하려 했으나, 붙여 넣은 후 어떤 단축키를 눌러야 하는지 모르겠어서 vscode에 붙여넣기 함.(어떤 단축키를 입력해야 명령행이 반영되는지 모르겠습니다 ㅠㅠ) 터미널에서 새 창열고, nvm --version 명령어 입력하였으나 'command not found'가 뜸 vscode에 있는 .zshrc를 재저장하고 nvm 명령어 실행했는데 같은 문제 발생 vscode에 있는 .zshrc 파일을 닫아서 그러는 건가 싶어서 파일을 열어 놓은 채로 nvm -version 실행했는데도 같은 결과 발생영상을 계속 보면서 반복적으로 재시도를 하였으나 계속 같은 결과(not found)가 나와 질문 올립니다! 감사합니다!
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
맥 Homebrew 설치가 안되는 문제
안녕하세요, 우선 리뉴얼 강의 오픈을 축하드립니다 :-)첫 질문부터 너무 쉬운 것을 여쭤보는 것 같아 민망하네요... ㅎㅎ 우선! '00-02 맥 개발환경 설치' 강좌를 듣다 homebrew 설치가 잘 안되어 질문 드립니다. terminal에 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 위 명령을 수행한 후, Press RETURN/ENTER to continue or any other key to abort:라고 떠서 키보드는 ENTER를 눌렀습니다. 이후, 캡처본에 있는 여러 문장이 주루륵 나오고 brew --version으로 버전 체크를 해보니 command not found가 나왔습니다. 어떻게 해결해야 할 지 몰라 질문 남깁니다.언제나 친절하고, 상세한 답변 주셔서 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
An unhandled exception has occured. See browser dev tools for detail.
blazor ranking app #3을 하던 도중에 스크린샷과 같은 에러가 나타났습니다.콘솔창에는 아래와 같은 에러 메세지가 떠서 제 입력이 userId가 null인 것으로 입력된 것 같습니다.문제가 있을 수 있어 하단에 제가 작성한 ranking.razor와 RankingService.cs의 코드를 첨부하지만 강의의 내용에서 작성한 코드와 동일하게 작성하였습니다.ranking.razor@page "/ranking" @using RankingApp.Data.Models @using RankingApp.Data.Services @inject RankingService RankingService <h3>Ranking</h3> @*LoginDisplay.razor의 내용 참조*@ <AuthorizeView> <Authorized> @*로그인한 경우*@ @if (_gameResults == null) { <p><em>Loading...</em></p> } else { <table class="table"> <thead> <tr> <th>User</th> <th>Score</th> <th>Date</th> </tr> </thead> <tbody> @foreach (var gameResult in _gameResults) { <tr> <td>@gameResult.UserName</td> <td>@gameResult.Score</td> <td>@gameResult.Date.ToString()</td> </tr> } </tbody> </table> @*데이터 추가하기*@ <p> <button class="btn btn-primary" @onclick="AddGameResult"> Add </button> </p> @if (_showPopup) { <div class="modal" style="display:block" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-Header"> <h3 class="modal-title">Add/Update GameResult</h3> <button type="button" class="close" @onclick="ClosePopup"> <span area-hidden="true">X</span> </button> </div> <div class="modal-body"> <label for="UserName">UserName</label> <input class="form-control" type="text" placeholder="UserName" @bind-value="_gameResult.UserName"> <label for="Score">Score</label> <input class="form-control" type="text" placeholder="Score" @bind-value="_gameResult.Score"> <button class="btn btn-primary" @onclick="SaveGameResult"> Save </button> </div> </div> </div> </div> } } </Authorized> <NotAuthorized> <p>You are not Authorized</p> </NotAuthorized> </AuthorizeView> @code { List<GameResult> _gameResults; bool _showPopup; GameResult _gameResult; protected override async Task OnInitializedAsync() { _gameResults = await RankingService.GetGameResultsAsync(); } void AddGameResult() { @*팝업 띄워주기*@ _showPopup = true; _gameResult = new GameResult() { Id = 0 }; } void ClosePopup() { _showPopup = false; } async Task SaveGameResult() { if(_gameResult.Id==0) //새로 데이터를 추가하는 작업, 이때는 id가 없지만 db에 넣어지면id 자동 생성 { _gameResult.Date=DateTime.Now; var result = RankingService.AddGameResult(_gameResult); @*AddGameResult는 rankingService.cs에 있다*@ } else { //TODO } _gameResults = await RankingService.GetGameResultsAsync(); @*다시 바뀐 데이터 다시 가져오기*@ } } RankingService.csusing RankingApp.Data.Models; namespace RankingApp.Data.Services { public class RankingService { ApplicationDbContext _context; public RankingService(ApplicationDbContext context) { _context = context; } //Create public Task<GameResult> AddGameResult(GameResult gameResult) { _context.GameResults.Add(gameResult); _context.SaveChanges(); //db에도 저장 return Task.FromResult(gameResult); } //Read public Task<List<GameResult>> GetGameResultsAsync() { List<GameResult> results = _context.GameResults .OrderByDescending(item => item.Score) .ToList(); return Task.FromResult(results); } //Update //Delete } }
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
kakao token 발급 시 에러
안녕하세요 ! 강의 수강 중에 에러난 부분이 해결되지 않아 질문 남깁니다.지금 '카카오 토큰 발급 구현(2) - 토큰 받기' 강의 마지막까지 코드 작성 후 api 실행 했는데결과{"errorCode":"500 INTERNAL_SERVER_ERROR","errorMessage":"Could not extract response: no suitable HttpMessageConverter found for response type [class com.app.web.kakaotoken.dto.KakaoTokenDto$Response] and content type [text/html]"}로 나오고 있습니다.콘솔창의 에러는feign.codec.DecodeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.app.web.kakaotoken.dto.KakaoTokenDto$Response] and content type [text/html] at feign.InvocationContext.proceed(InvocationContext.java:40) ~[feign-core-11.10.jar:na] at feign.AsyncResponseHandler.decode(AsyncResponseHandler.java:116) ~[feign-core-11.10.jar:na] at feign.AsyncResponseHandler.handleResponse(AsyncResponseHandler.java:89) ~[feign-core-11.10.jar:na] at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:141) ~[feign-core-11.10.jar:na] at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:91) ~[feign-core-11.10.jar:na] at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:100) ~[feign-core-11.10.jar:na] at com.sun.proxy.$Proxy109.requestKakaoToken(Unknown Source) ~[na:na] at com.app.web.kakaotoken.controller.KakaoTokenController.loginCallback(KakaoTokenController.java:39) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[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:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.20.jar:5.3.20] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.63.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.20.jar:5.3.20] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.63.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.20.jar:5.3.20] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.20.jar:5.3.20] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.20.jar:5.3.20] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.app.web.kakaotoken.dto.KakaoTokenDto$Response] and content type [text/html] at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:126) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.cloud.openfeign.support.SpringDecoder.decode(SpringDecoder.java:75) ~[spring-cloud-openfeign-core-3.1.8.jar:3.1.8] at org.springframework.cloud.openfeign.support.ResponseEntityDecoder.decode(ResponseEntityDecoder.java:61) ~[spring-cloud-openfeign-core-3.1.8.jar:3.1.8] at feign.optionals.OptionalDecoder.decode(OptionalDecoder.java:36) ~[feign-core-11.10.jar:na] at feign.InvocationContext.proceed(InvocationContext.java:36) ~[feign-core-11.10.jar:na] ... 57 common frames omitted 코드를 여러 번 봐도 강사님이랑 다른 부분이 없는 거 같아서 여쭤봅니다.감사합니다 !!
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
아직 초반부분인데 질문이있습니다.
제가 타임리프말고 Vue를 사용하려고합니다 그리고 시큐리티를 사용하려고하는데 해당 강좌에 시큐리티가 없는건지요?궁금한게 시큐리티를 적용안하고 보통 프로젝트를 만드나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
EFCore 포렌키 설정 관련 질문(Entity Framework Code First One-to-Many Relationship)
public class UserData { //public int Id { get; set; } [Key] public string UserId { get; set; } public string? Token { get; set; } [MaxLength(32)] public string? UserName { get; set; } public DateTime? CreateTime { get; set; } public BanData BanData { get; set; } public List<MailData> MailDatas { get; set; } public List<GetMailData> GetMailDatas { get; set; } } public class BanData { public int Id { get; set; } public DateTime Start { get; set; } public DateTime End { get; set; } public int State { get; set; } public string DescKey { get; set; } // Foreign Key ////1:1 방향일 경우 한쪽이 아이디까지 물고 있어야함 public string UserDataUserId { get; set; } [JsonIgnore] public UserData UserData { get; set; } } public class MailData { /// <summary> 우편물 구분 값 </summary> public int Id { get; set; } /// <summary> 발송일 </summary> public DateTime SendDate { get; set; } /// <summary> 우편물 받아야하는 기간 </summary> public DateTime EndDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserDataUserId { get; set; } [JsonIgnore] public UserData UserData { get; set; } } 이렇게 코드가 있을 경우 MailData -> UserData로 연동은 잘 됩니다다만 DB 테이블에 MailData가 생성되는데 제가 원하는 것은 UserData 테이블에 MailDatas 가 생성되는 것입니다 다만 위 코드처럼 처리를 할 경우 MailData 테이블에 모든 유저들의 메일 정보가 저장되고 UserData에서 긁어오는 것으로 파악되는데 맞을까여?만약 이렇게하여 모든유저들의 정보를 처리하는게 더 좋은 방식인지 UserData 테이블에 JSON으로 메일을 처리하는것이 좋은 방식인지 궁금합니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
DB 설정 관련해서 질문 드립니다
[Table("UserTable")] public class UserData { [Key] public string UserId { get; set; } public string? Token { get; set; } [MaxLength(32)] public string? UserName { get; set; } public DateTime? CreateTime { get; set; } public BanData? Ban { get; set; } public ICollection<MailData> OwnMails { get; set; } public ICollection<GetMailData> GetMails { get; set; } } [Serializable] public class BanData { public DateTime Start { get; set; } public DateTime End { get; set; } public int State { get; set; } public string DescKey { get; set; } // Foreign Key public string UserId { get; set; } public UserData User { get; set; } } public class MailData { /// <summary> 우편물 구분 값 </summary> [Key] public long Id { get; set; } /// <summary> 발송일 </summary> public DateTime SendDate { get; set; } /// <summary> 우편물 받아야하는 기간 </summary> public DateTime EndDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserId { get; set; } public UserData User { get; set; } } /// <summary> 우편물 획득 시 </summary> public class GetMailData { /// <summary> 우편물 구분 값 </summary> [Key] public long Id { get; set; } /// <summary> 우편물 시간제한에 의한 삭제 </summary> public bool IsTimeOut { get; set; } /// <summary> 받은 날 </summary> public DateTime GetDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserId { get; set; } public UserData User { get; set; } }이렇게 SharedData.Models 정의를 해서 사용을 하고자 합니다 UserData에서만 DB 컬럼으로 활용을 하고싶습니다 ApplicationDbContext.csprotected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Ignore<BanData>(); modelBuilder.Ignore<MailData>(); modelBuilder.Ignore<GetMailData>(); }에는 DB로 만들어지지 않았으면 해서 예외처리를 추가했습니다 UserTableUserIdTokenUserNameCreateTimeBanData BanICollection<MailData> OwnMailsICollection<GetMailData> GetMails이런식으로 생성하게 하려면 어떻게해야 하나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
10분 48초 부근에 안 되는 사람들 참고하세요
css 파일도 필요할 확률이 높습니다(기본적으론 생성 안 됨).최신 버전으로 공부하고 있는데 거의 숨은 그림 찾기네요.버전이 바뀌면 달라질 수도 있습니다.
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
socialLoginApiService map 주입
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. @Servicepublic class SocialLoginApiServiceFactory {private static Map<String,SocialLoginApiService> socialLoginApiServices;public SocialLoginApiServiceFactory(Map<String,SocialLoginApiService> socialLoginApiServices) {SocialLoginApiServiceFactory.socialLoginApiServices = socialLoginApiServices;}public static SocialLoginApiService getSocialLoginApiService(MemberType memberType){String socialLoginApiServiceBeanName = "";if(MemberType.KAKAO.equals(memberType)){socialLoginApiServiceBeanName = "kakaoLoginApiServiceImpl";}return socialLoginApiServices.get(socialLoginApiServiceBeanName);}} 여기서 생성자로 socialLoginApiServices 를 주입해서 사용 하는 것 같은데 주입하는 부분이 보이지 않아서 질문 드립니다 어디서 주입 되는 것일까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
ArgumentException: Keyword not supported: 'trust server certificate'.
처음 appsettings.json에서 DefaultConnection의 값을 이름만 바꿀경우는 저 에러가 뜨지 않는데속성에서 연결 문자열의 값을 복사해서 붙여넣을 경우프로그램 실행 후 Register 할 경우 저 에러가 계속 뜹니다어떻게 해결해야 하나요 ?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
Need Summary 부분 질문있습니다!
먼저FetchData.razor 에서 <EditForm Model="_addForecast" OnInvalidSubmit="SaveForecast"> @* Form Validation 기능 ON*@ <DataAnnotationsValidator /> @* 에러가 있으면 메시지 상세 출력*@ <ValidationSummary /> <label for="TemperatureC">TemperatureC</label> <InputNumber class="form-control" placeholder="TemperatureC" @bind-Value="_addForecast.TemperatureC" /> <label for="Summary">Summary</label> <InputText class="form-control" placeholder="Summary" @bind-Value="_addForecast.Summary" /> <br /> <button class="btn btn-primary" type="submit">Save</button> </EditForm>WeatherForecast에서 public class WeatherForecast { public DateTime Date { get; set; } [Required(ErrorMessage = "Need TemperatureC!")] [Range(typeof(int),"-100","100")] public int TemperatureC { get; set; } public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); [Required(ErrorMessage = "Need Summary!")] [StringLength(10, MinimumLength = 2, ErrorMessage = "2~10")] public string Summary { get; set; } } 이렇게 해주었는데Need Summary가 뜨지 않는데 이유를 알수 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
계속 똑같은 에러가 뜹니다 ㅠㅠ
An unhandled exception occurred while processing the request.InvalidOperationException: The view 'Index' was not found. The following locations were searched:/Views/Home/Index.cshtml/Views/Shared/Index.cshtml 라고 계속 뜨는데저는 Shared폴더 자체도 없는데 계속 다른곳에서 파일을 찾는것 같은데 어떻게 해결해야하나요?