묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
상속관계 오류
Book.javaItem상속관계에서 오류가 발생했습니다..
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
viewResolve 실행되는 위치가 render() 안에 있는게 맞나요?
PDF를 보면서 복습을 하는데1. 핸들러어댑터호출핸들러어댑터를 통해 new-form 이라는 논리뷰 이름을 획득한다.2. ViewResolver 호출new-form 이라는뷰 이름으로 viewResolver를 순서대로호출한다.BeanNameViewResolver 는 new-form 이라는 이름의스프링 빈으로등록된 뷰를찾아야하는데 없다. InternalResourceViewResolver 가 호출된다.3. InternalResourceViewResolver이뷰 리졸버는 InternalResourceView 를반환한다.4. 뷰 - InternalResourceViewInternalResourceView 는 JSP처럼포워드 forward() 를호출해서 처리할수 있는경우에 사용한다.5. view.render()view.render() 가호출되고 InternalResourceView 는 forward() 를사용해서 JSP를실행한다.그런데 코드를 찾아보니까render()가 실행되면서 resolveViewName()로 viewResolver를 순회하던데이때 InternalResourceViewResolver가 호출되는게 맞나요 ?
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
정상 작동하다가 SwC를 내릴때 소리가 안납니다. TIM3->PSC = 1000;를 추가해야 합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. if (failsafe_flag == 1 || failsafe_flag == 2 || low_bat_flag == 1 || iBus.SwC == 2000) { TIM3->PSC = 1000;
-
미해결
장고 운영환경과 개발환경에서 json 파일 업데이트 시간차 오류
안녕하세요.장고에서 보안이 필요한 SECRETKEY 등의 내용은 .gitignore로 설정한 json 파일에 따로 저장하여 사용하고 있습니다.csrf token 값도 이렇게 저장하고 업데이트 하여 필요에 따라 json 파일로 부터 가져오거나, 업데이트하여 사용 중에 있습니다.개발환경에서는 어느 뷰함수에서 새로운 값으로 업데이트 한 후에, 다른 뷰함수에서 이 값을 가져오면 당연히 업데이트 한 값이 나타나는데, 문제는 운영환경(AWS)에서는 업데이트 되어 있지 않고 이전의 저장된 값이 나타난다는 점입니다.json 파일에 대한 컨트롤은 기존의 settings.py를 환경에 따라 셋으로 분리한 모듈 중 하나인 settings/base.py에서 처리하고 있습니다. 공통 요소는 base.py, 운영 환경은 prod.py, 개발 환경은 local.py에 각각 설정하였습니다.base.py 에서 다음과 같이 json 파일을 다루고 있습니다.#settings/base.py secret_file = os.path.join(BASE_DIR, 'secrets.json') with open(secret_file) as f: secrets = json.loads(f.read()) # key가 setting인 value 가져오기 def get_secret(setting, secrects=secrets): try: return secrets[setting] except KeyError: error_msg = "Set the {} environment variable".format(setting) raise ImproperlyConfigured(error_msg) # key/value 신규 저장 또는 기존 값 업데이트 def update_secret(key, value): secrets[key] = value with open(secret_file, 'w') as outfile: json.dump(secrets, outfile, indent=1) SECRET_KEY = get_secret('SECRET_KEY')그리고 base.py 의 get_secret 함수 또는 update_secret함수를 views.py 에서 호출하여 필요한 값을 가져오고 있습니다.개발 환경에서는 이러한 값들을 업데이트 하고 가져오면, 너무나도 당연히 그 업데이트 된 값으로 나타나지만, 운영 환경에서는 이전에 저장되었던 값이 나타납니다.예를 들면 다음과 같습니다.# 개발환경 / views.py from config.settings import base def view_1(request): ... # 새로운 csrf_token 값('bbb') 받아오기 csrf_token = request.POST.get('csrfmiddlewaretoken') # csrf_token 값 업데이트(기존 값 'aaa') base.update_secret('csrf_token', csrf_token) ... def view_2(request): ... # 업데이트 된 csrf_token 값 가져오기 csrf_token = base.get_secret('state') # 개발환경 : 업데이트 된 값 'bbb' 가져옴 # 운영환경 : 이전의 저장된 값 'aaa' 가져옴희한하게 운영 환경에서도, view_1에서 csrf_token을 업데이트한 시점에 json 파일을 열어보면 업데이트 된 값으로 바뀌어 있다는 점입니다. 그런데도 어디서 이전의 값을 참조하는 건지 도무지 알 수가 없어서 너무나 답답합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
localhost:8080/hello 접속 시 Whitelabel Error Page
안녕하세요! spring 부트 3.0.3 버전에서 자바 17을 이용해서 강의 내용을 따라하는 중에 HelloServlet을 만들고 localhost:8080/hello에 접속을 시도했으나 localhost:8080페이지와 같은 Whitelabel Error Page가 뜨네요.다른 질문 들을 참고하여 @ServletComponentScan이나 세팅에서 자바로 실행하도록 설정을 변경하였으나 같은 문제가 발생합니다.도움을 주신다면 정말 감사합니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
user 과 auth에서 인증 부분
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.user.ts하고auth.ts에서이 부분이 같은데user.ts는 유저정보를 가져오기위한 미들웨어이고auth.ts는 인증을 위한 부분인데if(!user)이 둘다 있는 이유가 있을까요?그저 user.ts가 user정보를 가져오는데 조건에 해당하는 user정보가 없으면 안되니까(null) user.ts에 if(!user)이 있는건가요??제가 제대로 이해하고 있는지 헷갈려서요 ㅠㅠㅠ
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
User mode와 관련하여 질문있습니다.
선생님 수업 잘 듣고 있습니다!선생님의 컴퓨터 공학 기초 강의를 듣고 운영체제 강의로 넘어왔습니다.컴퓨터 공학 기초 강의에서는 보지 못했던 User mode에서 App과 Service 계층에 대해 궁금한게 있습니다.App Layer에 있는 Process가 Service Layer에 있는 API를 호출한다고 하셨습니다.c언어에서 printf같은 함수들이 모여있는 lib 폴더가 있는 곳을 Service Layer로 보면 되는건가요?그리고 App과 Service Layer가 너무 생소한데 그냥 무조건 User mode에 저런게 있다고 외우면 될까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
listener, session 간의 차이
안녕하세요, listener, session 코드간 차이점에 대해서 질문이 있습니다. 1, listener에서는 OnRecvCompleted()와같은 메서드에서 socketerror가 발생했을 때, disconnect를 하지 않았는데, session에서는 왜 disconnect를 하는 건가요? 2.listener 에서는 registerRecv() 와같은 함수를 OnRecvCompleted의 if, else와 상관없이 실행한거같은데, 왜 session에서는 if(args.Bytes.Transferred > 0 && ~~~) 을 만족해야 OnRecvCompleted를 실행하는건가요? using System; using System.Collections.Generic; using System.Net.Sockets; using System.Text; namespace ServerCore { class Session { Socket _socket; public void init(Socket socket) { _socket = socket; SocketAsyncEventArgs recvArgs = new SocketAsyncEventArgs(); recvArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnRecvCompleted); //userTocken으로 추가적인 정보를 아무거나넘겨줄 수 있다(object를 받기 때문) recvArgs.SetBuffer(new byte[1024],0,1024); RegisterRecv(recvArgs); } void RegisterRecv(SocketAsyncEventArgs args) { args.AcceptSocket = null; bool pending = _socket.ReceiveAsync(args); //바로 성공했으면 if(pending == false) { OnRecvCompleted(null, args); } } void OnRecvCompleted(object obj, SocketAsyncEventArgs args) { //BytesTransferred == 몇바이트 받았는지 if (args.BytesTransferred>0 && args.SocketError == SocketError.Success) { try { string recvData = Encoding.UTF8.GetString(args.Buffer, args.Offset, args.BytesTransferred); Console.WriteLine($"[from client] : {recvData}"); RegisterRecv(args); } catch(Exception e) { Console.WriteLine($"onrecvcompleted failed {e}"); } } else { //TODO Disconnect } } } }
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Listener, Session 에서의 콜백메서드 질문
안녕하세요, listener, session 클래스를 구현할 때, 콜백메서드에 대해 질문이 있습니다. 아래와 같은 코드에서, using System; using System.Collections.Generic; using System.Net.Sockets; using System.Text; namespace ServerCore { class Session { Socket _socket; public void init(Socket socket) { _socket = socket; SocketAsyncEventArgs recvArgs = new SocketAsyncEventArgs(); recvArgs.Completed += new EventHandler<SocketAsyncEventArgs>(OnRecvCompleted); //userTocken으로 추가적인 정보를 아무거나넘겨줄 수 있다(object를 받기 때문) recvArgs.SetBuffer(new byte[1024],0,1024); RegisterRecv(recvArgs); } void RegisterRecv(SocketAsyncEventArgs args) { args.AcceptSocket = null; bool pending = _socket.ReceiveAsync(args); //바로 성공했으면 if(pending == false) { OnRecvCompleted(null, args); } } void OnRecvCompleted(object obj, SocketAsyncEventArgs args) { if (args.SocketError == SocketError.Success) { string recvData = Encoding.UTF8.GetString(args.Buffer, 0, args.Buffer.Length); Console.WriteLine($"[from client] : {recvData}"); } else { Console.WriteLine(args.SocketError.ToString()); } RegisterRecv(args); } } } 해당 RegisterRecv()메서드에서 pending이 false인 경우 바로 OnRecvCompleted()를 호출해주는거고, true인 경우 콜백메서드로 OnRecvCompleted가 호출되는 형식이라고 이해를 했는데, void RegisterRecv(SocketAsyncEventArgs args) { args.AcceptSocket = null; bool pending = _socket.ReceiveAsync(args); //바로 성공했으면 if(pending == false) { OnRecvCompleted(null, args); } }그렇다면, pending이 false인 경우에는 if(pending == false) { OnRecvCompleted(null, args); }여기서 OnRecvCompleted() 호출되고 또 콜백메서드에서 또 한번 호출되는 것 아닌가요? 콜백메서드가 false인 경우에 2번호출되지 않는다는 것을 어떻게 이해하면 될까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
포트폴리오 - modal에서의 오류
주소입력창 까지 잘 진행되었는데 비밀번호 모달창을 만들면서 부터 오류가 나기 시작했습니다. 어디서부터 잘 못된 것인지 잘 모르겠는데.. 계속 이런 오류가 뜹니다. 어떻게 해결해야 할까요?
-
미해결C++ 로 배우는 자료구조와 알고리즘
강의자료 소스 코드 부탁드립니다.
영상에 나오는 코드가 잘려서 코딩할수가 없네요 소스코드 파일 부탁드립니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
광고 상품 표기 추가문의
안녕하세요. 문의드립니다.광고 상품 대신에 로켓상품도 표기하고자 합니다. if len(link.select(".ad-badge-text")) > 0: print("광고상품")를 아래와 같이 수정하면 될까요?해봤는데 아무표기가 안되서요. if len(link.select("span.badge rocket")) > 0: print("로켓상품") 그리고 광고상품 로켓상품 둘다 표현하고자 하면아래와 같이 표기하면 될까요? if len(link.select(".ad-badge-text")) > 0: print("광고상품")elif len(link.select("span.badge rocket")) > 0: print("로켓상품")
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
설정 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이렇게 오류가 나서 해결이 안되는데 방법이 있을까요?
-
미해결Blender(블렌더) 3.0 3D 그래픽의 입문 Part. 1
텐키리스 키보드 쓰는데
블렌더는 단축키를 숫자키쪽에 쓰는 방식이 초반에 몇개 나와서 당황스럽네요ㅠㅠ숫자키쪽 단축키 쓸일이 많지 않기를...
-
해결됨[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
광고상품 표기외에 상품명도 보려고 하는데요. 에러가나네요.
광고상품 광고상품 표기외에 상품명도 보고자하는데요.아래와 같이 에러가 납니다.상품명도 보려면 어떻게 해야 할까요?https://www.coupang.com//vp/products/7119405125?itemId=17821748239&vendorItemId=84985642101&sourceType=srp_product_ads&clickEventId=f08dcc16-7eb1-4918-979f-8e4d3e2f2314&korePlacement=15&koreSubPlacement=1&clickEventId=f08dcc16-7eb1-4918-979f-8e4d3e2f2314&korePlacement=15&koreSubPlacement=1<div class="name">디엑스 DX320QHD 32인치 QHD 75Hz IPS 고성능 게이밍 컴퓨터 모니터, DX320QHD(일반)</div>Traceback (most recent call last):line 45, in <module>print(ad_name).textAttributeError: 'NoneType' object has no attribute 'text'print(ad_name).text에서 text를 빼고 실행시켜보았는데 다른 상품인데 아래와 같이 모두 상품명이 동일하게 나옵니다. <div class="name">인터픽셀 60.5cm FHD 75Hz IPS 평면 게이밍 모니터 화이트, IP2422(무결점)</div>광고상품https://www.coupang.com//vp/products/6070742312?itemId=11207404701&vendorItemId=78484994606&sourceType=srp_product_ads&clickEventId=2981eff0-533f-432a-ace7-a9dbbc8cf39b&korePlacement=15&koreSubPlacement=12&clickEventId=2981eff0-533f-432a-ace7-a9dbbc8cf39b&korePlacement=15&koreSubPlacement=12<div class="name">인터픽셀 60.5cm FHD 75Hz IPS 평면 게이밍 모니터 화이트, IP2422(무결점)</div>광고상품https://www.coupang.com//vp/products/1955685399?itemId=3323143682&vendorItemId=71310006110&sourceType=srp_product_ads&clickEventId=8ab74e64-bccb-400c-968d-9fe175da93a9&korePlacement=15&koreSubPlacement=15&clickEventId=8ab74e64-bccb-400c-968d-9fe175da93a9&korePlacement=15&koreSubPlacement=15<div class="name">인터픽셀 60.5cm FHD 75Hz IPS 평면 게이밍 모니터 화이트, IP2422(무결점)</div>광고상품 for link in links: print(ad_name).text <-이부분 때문에 에러가 나는것 같습니다. 어떻게 표기를 해야 할까요?
-
미해결스프링 핵심 원리 - 기본편
getBean()의 파라미터
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]getBean() 함수를(1번 코드)MemberService memberService = applicationContext.getBean("memberService", MemberService.class);이렇게 사용을 해주셨는데 인텔리제이에서 자동완성 기능을 사용했더니(2번 코드)MemberService memberService = applicationContext.getBean(MemberService.class);이런 식으로 나오더라구요. (1번 코드)처럼 파라미터를 두개로 사용할 때, bean 이름과 파라미터 name 값이 다르면 오류가 생겨요. 그러면 애초에 name 파라미터 값이 필요한 이유가 있는걸까요??그리고 또 궁금한 것이 (2번 코드)로 사용을 안하고 왜 (1번 코드)로 사용을 하는 것인지 궁금해요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ItemType[] 과 List<DeliveryCode> 의 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@ModelAttribute() 에서 regions() 는 map을 사용했고itemTpyes()는 배열을 사용했고deliveryCodes()는 리스트를 사용하셨는데 각각을 이렇게 사용하신 이유가 따로 있을까요??
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉터 활용 방법 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 좋은 강의 잘 듣고 있습니다. 감사합니다.다름이 아니라 제가 혼자서 토이프로젝트를 만드는중에 ADMIN / USER 권한을 분리하고 인터셉터를 통해서 권한이 없으면 /admin/**이 포함된 url에는 접근을 못하도록 코드를 구현했습니다. 포스트 맨으로 확인을 해 보았을 때, 실제로 권한이 없으면 원하는 값이 나오지 않지만 HTTP 상태코드가 200(OK)로 나옵니다. 제가 이해한게 맞다면, 인터셉터의 역할은 올바른 요청일 땐 정상 흐름으로 작동하고 잘못된 요청(return false;)일 땐 리다이렉트 처리해서 흐름을 바꿔주는(?) 것으로 알고 있습니다. 혹시 인터셉터를 통해서 상태코드도 변환할 수 있는 방법이 있는지 궁금합니다! 혹시 안된다면 다른 방법이 있는지도 궁금합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
OSIV의 트랜잭션과 영속성컨텍스트
OSIV의 옵션이 true 일때는 동작이 다음과 같다고 하셨습니다.클라이언트의 요청이 들어오면 서블릿 필터나, 스프링 인터셉터에서 영속성 컨텍스트를 생성한다. 단 이 시점에서 트랜잭션은 시작하지 않는다.서비스 계층에서 @Transeactional로 트랜잭션을 시작할 때 1번에서 미리 생성해둔 영속성 컨텍스트를 찾아와서 트랜잭션을 시작한다.서비스 계층이 끝나면 트랜잭션을 커밋하고 영속성 컨텍스트를 플러시한다. 이 시점에 트랜잭션은 끝내지만 영속성 컨텍스트는 종료되지 않는다.컨트롤러와 뷰까지 영속성 컨텍스트가 유지되므로 조회한 엔티티는 영속 상태를 유지한다.서블릿 필터나, 스프링 인터셉터로 요청이 돌아오면 영속성 컨텍스트를 종료한다. 이때 플러시를 호출하지 않고 바로 종료한다.즉 영속성 컨텍스트는 뷰 렌더링 범위까지 존재하나 트랜잭션이 존재하는것은 아니다. 하지만 영속성 컨텍스트가 존재하는데 트랜잭션이 존재하지 않는것이 신기해 GPT에게 한번 더 질문을 했더니 아래 사진과 같았습니다. '요청이 발생하면' 이라는 말이 애매해서 다시 질문한 결과 클라이언트에서 요청을 보낸때 라고 답변을 줬습니다.요약하면 HTTP 요청이 들어오면 트랜잭션이 바로 생겨나고 엔티티매니저도 그때부터 생성되는걸로 이해했습니다. OSIV 옵션이 켜져있으면 엔티티매니저 뿐아니라 트랜잭션도 범위가 더 커지는건지 궁금합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
onlogotap함수의 video nullable관련질문
void onLogoTap() async { final video = await ImagePicker().pickVideo(source: ImageSource.gallery, );if (video != null) {setState(() {this.video = video; });}}여기에서 if문을 안쓰고 setstate를 해줘도 동일하지 않나요?설명은 이미지피커에서 비디오를 고르지않고 빠져나오지않을경우 video가 null이 될수있다 라고하셨습니다.onLogoTap은 비동기 함수여서 pickvideo까지 기다린다음에 setstate가 실행될텐데 이미지를 고르지 않고 이미지픽커를 빠져나오면 await부분이 만족되지않아서 onlogotap안의 다음코드를 실행하지않기때문에, video가 null인 상황은 없지않을까요?