묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
2024 최신버전으로 프로젝트 설정하기 오류
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의자의 로드맵대로 따라 강의를 순차적으로 진행하고있습니다. 로드맵에서 추천해주신대로 실전!스프링 부트와 JPA 활용1 을 선 수강하고 이번 기본편을 수강하려고 하는데 이전 강의인 활용1편에서 H2 DB와 intellij를 최신버전으로 설치해두어 그대로 사용하려고 하는데 오류가 발생해서 문의 드립니다.프로젝트의 내용은 학습자료인 2024 최신버전으로 프로젝트 생성하기의 소스코드를 open project 하여 진행하였으며 h2 데이터베이스의 설정도 프로젝트 생성 설명에 나와있는대로 진행하였습니다. 2월 05, 2024 6:14:22 오후 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformationINFO: HHH000204: Processing PersistenceUnitInfo [name: hello]2월 05, 2024 6:14:22 오후 org.hibernate.Version logVersionINFO: HHH000412: Hibernate ORM core version 6.4.2.Final2월 05, 2024 6:14:22 오후 org.hibernate.cache.internal.RegionFactoryInitiator initiateServiceINFO: HHH000026: Second-level cache disabled2월 05, 2024 6:14:23 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configureWARN: HHH10001002: Using built-in connection pool (not intended for production use)2월 05, 2024 6:14:23 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001005: Loaded JDBC driver class: org.h2.Driver2월 05, 2024 6:14:23 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001012: Connecting with JDBC URL [jdbc:h2:tcp://localhost/~/test]2월 05, 2024 6:14:23 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001001: Connection properties: {password=****, user=sa}2월 05, 2024 6:14:23 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001003: Autocommit mode: false2월 05, 2024 6:14:23 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>INFO: HHH10001115: Connection pool size: 20 (min=1)2월 05, 2024 6:14:23 오후 org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl constructDialectWARN: HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)2월 05, 2024 6:14:23 오후 org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateServiceINFO: HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)2월 05, 2024 6:14:23 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PoolState stopINFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/test]오류 메세지입니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
맞왜틀! 반례가 궁금합니다!ㅠㅠ
http://boj.kr/91c2421aa3ef471eac5950368d3428c1이렇게 코드를 작성하였더니 주어진 테케가 잘 돌아가는데 틀린 이유가 궁금합니다ㅜㅜ 반례도 생각해보았는데 다 잘 돌아가서 뭐가 문젠지 모르겠어서요ㅠㅠ항상 잘 듣고 있습니당 감사합니다 ㅎㅎ
-
해결됨따라하며 배우는 HTML, CSS
a-button:hover , active에 다음과 같은 에러 메시지가 뜹니다.
-
해결됨STM32 FreeRTOS 구현
max3232 관련 질문입니다.
제가 시리얼포트를 이용한 디버깅이 처음이라.. 소자를 구매하려고 하는데 배송기간이 연휴와 겹쳐 늦어져서 질문 드립니다! Max3232와 rs232 to usb를 사용하시는데 바로 그냥 uart to usb 소자를 사용하면 안되나요..?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
프록시 관련 질문이 있습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.김영한 선생님. 선생님의 강의를 잘 듣고 있습니다.현재 AOP 적용 부분에서 프록시 부분에 대한 설명을 듣고 있었는데요, 선생님께서는 프록시가 컨트롤러 내부에서 형성되어 그 프록시가 실질적인 서비스 부분으로 요청을 넘겨주고 처리해 줄 것이다. 이런 느낌으로 말씀해주셨던 것 같습니다.여기서 조금 궁금했던 부분이 있습니다. 만약 다른 컨트롤러 파일 내부에서 같은 서비스에 대해서 AutoWired를 통해 의존성 주입을 받게 될 경우, 서비스를 연결하는 프록시가 컨트롤러마다 생길지에 대해서 궁금했었습니다.제가 생각하기에는 다른 프록시가 서로 나올 거 같은데, 로그를 찍어보았을 때는 두 컨트롤러가 같은 프록시를 공유하였습니다.혹시 프록시의 생성 기준은 서비스일까요 컨트롤러일까요? 또한 AOP를 사용하지 않는 경우 해당 파일은 프록시를 전혀 사용하지 않을까요? 그것이 궁금합니다.
-
미해결
사업자등록증 요청 건
회사에서 인프런 수강하기 위해 사업자등록증이 필요합니다.메일도 전화도 안되서 여기에 남깁니다.
-
미해결
클라우데라 설치
클라우데라 직접 설치를 해야 하는 상황이라 강의보며 진행 중인데 다운로드가 되지 않습니다. 다운로드 되는 경로 최신화 부탁드립니다
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
4-8. 지표 정의하기 연습문제
안녕하세요! 지표 정의하기 연습문제를 풀어봤습니다. 피드백해주시면 학습을 이어가는 데 도움이 될 것 같습니다 😀 #1. 기능이 잘 동작하고 있는지 확인하려면 배너 영역1) 목적 정의: 배너 영역을 통해 사용자가 배너의 상세 페이지로 유입되는가?2) 지표 정의: 배너아이템별 클릭률(CTR) = 배너아이템별 클릭수 / 홈 화면 조회수3) 멘탈 시뮬레이션CTR ⬆: 사용자의 흥미를 끌어 배너 클릭을 유도했다는 가설이 검증되므로 '배너 상세 페이지'의 목적을 달성하는지(a. 쿠폰 다운로드 b. 매장상세페이지 조회 c. 추천 상품 구매 등)를 파악하기 위한 이후 액션을 결정 → 예상 지표: 배너의 목표 액션 전환율(CVR) = 배너페이지 내 a or b or c 액션 수/배너 클릭수CTR ⬇: 사용자가 배너 영역에 대한 충분한 유인을 얻지 못했다고 판단하고 UX/UI 혹은 컨텐츠를 개선할 방안을 찾는 액션을 결정UX/UI: 배너의 개수, 배너의 크기, 배너당 지속 시간컨텐츠: 카피라이팅, 이미지 퀄리티 메뉴 카테고리1) 목적 정의: 메뉴 카테고리를 통해 사용자가 상품 목록 페이지로 유입되는가?2) 지표 정의Main: 메뉴카테고리별 클릭률(CTR) = 메뉴카테고리별 클릭수 / 홈 화면 조회수Sub: 메뉴 상품 목록 페이지 체류시간(Duration Time)3) 멘탈 시뮬레이션CTR ⬆, Duration Time 5초 미만: 메뉴 카테고리에 대해 기대하는 상품 목록이 아닐 경우 체류시간이 많이 짧을 수 있으므로 이후 메뉴 분류 변경과 같은 액션 결정CTR ⬇: 상품 사용자가 메뉴 아이템을 클릭할 유인이 부족했으므로 배너와 마찬가지로 UX/UI 측면을 고려하거나, 특정 메뉴의 클릭률만 낮다면 해당 메뉴의 사용자 세그먼트별 클릭률, 시간별 클릭률을 파악하여 유지 여부 결정 이런 음식 어때요1) 목적 정의: 이런 음식 어때요 영역을 사용하여 사용자가 상품 상세 페이지로 유입되는가?2) 지표 정의: 이런 음식 어때요 상품 클릭률(CTR) = 이런 음식 어때요 상품 클릭수 / 홈 화면 조회수3) 멘탈 시뮬레이션CTR ⬆: 사용자가 추천을 통해 상품 상세 페이지 조회까지 유도했다는 가설이 검증되므로 상품 주문 전환율을 분석해 이후 액션을 결정 → 지표: 상품 주문 전환율(CVR) = 이런 음식 어때요로 진입한 사용자의 상품 주문수 / 이런 음식 어때요 상품 클릭수CTR ⬇: 추천 기능의 성능 문제인지 판단하기 위해 가로 스크롤 이벤트를 발생시킨 사용자의 클릭 전환율(CVR)과 발생시키지 않은 사용자의 클릭 전환율(CVR)을 분석 → 1. 스크롤 이벤트를 발생시키지 않았는데 클릭 전환율이 높다면 상위 추천 항목 노출 성능이 유효하다고 판단 → 2. 스크롤 이벤트를 발생시켰는데 클릭 전환율이 낮다면 추천 성능이 유효하지 않다고 판단 동네 맛집1) 목적 정의: 동네 맛집 영역을 통해 사용자가 매장의 상세 페이지로 유입되는가?2) 지표 정의: 매장 카드 클릭률(CTR) = 매장 카드 클릭수 / 홈 화면 조회수3) 멘탈 시뮬레이션CTR ⬆: 이런 음식 어때요 기능과 유사하게 상품 주문 전환율을 고려하여 다른 조건과의 비교를 통한 후속 액션 도출 (검색을 통한, 메뉴를 통한, 배너를 통한, 이런 음식 어때요를 통한 CVR과 비교) → 지표: 상품 주문 전환율(CVR)= 동네 맛집으로 진입한 사용자의 상품 주문수 / 동네 맛집 카드 클릭수CTR ⬇: 내용 측면에서 동네의 범위가 적절한지, UX/UI의 측면에서 불편함이 있는지 검증하는 후속 액션 수행 #2. 검색 만족도 지표1) 문제 정의: 검색 기능을 통해 선호도가 높은 상품을 발견할 수 있는가?2) 지표 정의: 스크롤 깊이별 클릭률(CTR) = 최종 스크롤 깊이가 얕을수록 가중치 * 클릭수 / 검색 결과 페이지 조회수만족도를 정의하기 위해 반대로 검색에 불만족해 문제의식을 가지는 경우, 상세페이지를 조회할 정도로 관심이 있는 상품을 발견하기까지 스크롤을 많이 하거나 시간이 몇 분이상 소요되는 경우를 떠올릴 수 있습니다.좋은 상품이 많아 어떤 것을 클릭할지 고민하는 시간이 길 수 있기 때문에 체류시간은 비례하기 어렵지만 스크롤 깊이가 깊다면 상단에 원하는 검색 결과가 노출되지 않았다고 유추할 수 있기 때문에 더 실험효과가 좋은 지표라고 생각합니다.3) 멘탈 시뮬레이션CTR ⬇: 사용자별 개인 구매 데이터를 통한 알고리즘 고도화 #3. 검색 필터 기능의 활성화 지표1) 문제 정의: 사용자는 검색 필터 기능을 적극적으로 활용해 원하는 결과를 조회하는가?2) 활성화 지표 정의메인 지표: 검색 필터 기준별 클릭률(CTR) = 기준별 검색 필터 내 '적용하기' 버튼을 클릭한 사용자 수 / 검색하기 액션을 한 사용자수서브 지표: 검색 필터 기준별 검색결과 조회 전환율(CVR) = 검색 결과 가게 클릭수 / 검색 필터 적용수메인 지표로 검색 필터가 얼마나 '많이' 사용되고 있는지, 서브 지표로 검색 필터가 '잘' 사용되고 있는지 판단합니다.3) 멘탈 시뮬레이션CTR⬆ CVR⬇: 검색 필터 자체의 사용률은 높으나 검색 필터의 결과가 사용자의 마음에 들지 않는다는 판단을 할 수 있다. 기준별로 검색 필터가 적용된 결과 데이터의 적합성을 판단해 데이터 라벨링 및 정렬 가중치 등을 개선한다.CTR⬇ CVR⬆: 검색 필터의 UI를 변경해야 할 수 있다. 검색 필터 내 UI별 클릭률을 통해 후속 액션을 결정한다. 너무 작거나 다른 버튼과 차별화되지 않아 사용자의 눈에 띄지 않거나 '적용하기'를 누르기까지 필터 내부의 사용자 동선을 개선한다. #4. 배달 서비스에서 가장 중요한 지표1) 목적 정의비즈니스 관점: 소비자의 주문건을 증가시켜 매출을 증대시킬 수 있을까?이유) 배달 서비스의 Revenue Stream은 광고 수익, 배달 대행 수수료, 결제 수수료이므로 결제건을 증가시켜야 광고, 결제 수수료를 통한 수수료를 증대시킬 수 있다.사용자(가게, 판매자) 관점: 소비자의 주문건을 증가시켜 플랫폼을 통해 얻는 주문 매출을 증대시킬 수 있을까?2) 지표 정의메인지표: 기간별 주문건수서브지표: 기간별 주문전환율(CVR) = 총 주문 수 / 서비스 총 방문자 수이유) 배달 서비스 플랫폼과 판매자 모두에게 필요한 소비자의 최종 행동은 '주문'이기 때문이다.3) 멘탈 시뮬레이션: 어떻게 하면 기간별 주문건수를 증가시킬 수 있을까?서비스 사용성 관점: 주문에 이르기까지 활성화, 리텐션 퍼널별 전환율을 증가시킨다.마케팅 관점: 최초의 퍼널인 유입을 증가시킨다. #5. 추천 알고리즘의 성능 지표1) 문제 정의: 알고리즘이 순위기반으로 추천한 상품에 만족할까?2) 지표 정의: MAP사용자가 원하는 아이템을 얼마나 상위권에 올려 놓는지 평가: 1000개의 추천리스트에 사용자가 원하는 상품이 있는 것과 10개의 추천리스트에 사용자가 원하는 상품이 있는 것은 확연히 다르다. 따라서 추천시스템에서는 precision과 recall을 precision@k, recall@k와 같이 상위 k개의 추천에 대한 평가지표로 표현한다.precision@k = K 개 내의 추천 항목 중 유관 항목의 수 / K 개 내의 추천 항목 수예측한 것중에 정답의 비율recall@k = (K 개 내의 추천 항목 중 유관 항목의 수) / (전체 유관 항목 수)찾아야 할 것중에 실제로 찾은 비율추천리스트 내의 rank에 따른 평가: K개의 추천리스트에서 순위도 중요하다. 사용자가 원하는 상품을 첫 번째로 보여 주는 것이 10 번째로 보여 주는 것보다 좋은 평가를 받아야 한다.→MAP(Mean Average Precision): precision@k에서 k를 점점 늘려가며 얻게되는 precision score를 평균내고 User별 전체 평균을 낸다 6. 자주 사용하는 서비스 'Duolingo'의 지표1) 문제 정의: 더 많은 사용자가 서비스에 만족하여 구독 서비스에 가입할 수 있을까?듀오링고는 수익의 70%를 '슈퍼 듀오링고'라는 서비스 구독료로부터 얻는다. 이미 활성사용자를 충분히 확보한 상태에서 플랫폼 입장에서 현재 가장 중요한 문제는 더 많은 구독자를 만드는 일일 것이다.2) 지표 정의메인 지표: 구독 서비스 결제 전환율(CVR) = 구독서비스 결제 수 / 서비스 방문자 수그 외 지표: 연속 학습 리텐션, 이탈율활성사용자수를 유지하지 위해 사용자가 결제까지 도달하지 않고 이탈하는 이유를 판단하거나 지속적으로 연속 학습을 이어갈 수 있는 유인을 마련하기 위한 보조 지표를 측정한다. 7. 퍼널 개선 프로젝트1) 문제 정의: 가입 퍼널에 온보딩을 진행함으로서 가입자를 증가시킬 수 있을까?2) 지표 정의:가입 전환율(CVR) = 회원가입 수 / 온보딩 진행 완료 수일별 리텐션: 온보딩 과정 삽입 이전 대비 삽입 이후, 회원가입 완료자의 일별 서비스 유지율이유) 온보딩을 진행함으로써 1. 회원가입까지 완료하여 서비스를 이용하고 싶어지는지, 2. 실제로 서비스의 가치가 홍보되어 회원가입 이후 서비스 이용이 지속되는지 두 가지 가설을 확인해 기대효과가 충족되는지 확인한다.
-
미해결카프카 완벽 가이드 - 코어편
Confluent Kafka 라이센스
Confluent Kafka의 커뮤니티 버전은아파치 카프카처럼 회사에서도 사용해도 문제없나요?
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
학습시 epoch 횟수
모델 트레이닝 할때 epoch 을 최소 몇 정도로 넣어주고 학습을 시켜야 괜찮은 모델이 나오나요? 추가로 loss 는 최소 어느정도 까지 떨어져야 괜찮을 모델이 나올까요? 물론 모델마다 차이가 있겠지만 일반적인 지표가 어느정도 되는지 궁금합니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
리소스를 관리하는데 shared_ptr를 써야되는가 RawPointer를 써야되는가 weak_ptr를 써야되는가?
한 GameObject 내부에서 선언되는 Parent, Children와 한 MeshRenderer 내부에서 선언되는 Mesh, Material 등등과 같은 리소스들은 각각 Scene과 ResourceManager내부에서 관리(생성, 파괴)되기 때문에 이런 관리해주는 클래스 에서만 shared_ptr로 생성해주고 다른 클래스 에서는 weak_ptr로 전해받았었습니다.그런데 문뜩 든 생각이 결국 다른 클래스에서 이런 객체들을 사용하기 위해 프레임마다 weak_ptr::lock을 사용하여 shared_ptr로 만들어서 사용할텐데 이러면 비용 부담이 너무 많이되어 배보다 배꼽이 큰 상황이 발생하는 것 같다는 생각이 들었고 이럴바엔 그냥 왠만한 클래스에선 리소스를 shared_ptr로 선언하고 사용한 후 관리해주는 클래스(Scene, ResourceManager)들에서 삭제될때 여기서도 동시에 shared_ptr를 지워버리는식으로 관리를 해주는게 더 좋을 것 같다고 생각을했는데 과연 옳은 생각인 건가요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장 부탁드립니다..!
안녕하세요.생각보다 자바 공부가 길어져서 이제야 AWS를 공부하게 되었는데 수강 기간이 거의 끝나가네요.송구스럽지만 수강 기간 연장을 요청 드립니다.감사합니다.
-
미해결[2024년 출제기준] 웹디자인기능사 실기시험 완벽 가이드(HTML+CSS+JQUERY)
익스텐션 설치 질문이요
시험준비자는 익스텐션 auto rename taghtml to css autocompletiomhtmltagwrapbracket pair colorizer 2indent-rainbowmaterial themehtml css supportbeautifycolor pickerliveserver 전부 설치하면 안되나요? 그리고 color picker 없으면 색깔이 안뜨는데 그러면 색이름만 적나요?
-
해결됨Flutter 중급 3편 - 의존성 주입 가이드
remote data source impl
안녕하세요. 강의 잘 보고 있습니다. remote data source impl 관련해서 질문이 있습니다. @prod @Singleton(as: CommunityRemoteDataSource) class CommunityRemoteDataSourceApiImpl implements CommunityRemoteDataSource { final _dio = Session().dio; @override Future<CommunityResponseDTO> fetchCommunities() async { Response<dynamic> response = await _dio.get('get/community/path'); final responseDto = CommunityResponseDTO.fromJson(response.data); return responseDto; } } CommunityRemoteDataSource 의 구현체 CommunityRemoteDataSourceApiImpl 를 만들어서 사용중입니다.ApiImpl 은 실제 서버와 통신중 이며,http 라이브러리 Dio를 사용하고 있습니다. 여기서 테스트를 위해 DioMock 객체를 만들어서 사용하고자 합니다. 원래 CommunityRemoteDataSourceApiImpl 에 final _dio = Session().dio; 로 싱글턴으로 dio를 내부에 객체를 생성하고 있는데 이거를 주입받는 식으로 변경하여 테스트 시만 CommunityRemoteDataSourceApiImpl(DioMock()) 을 넣는 것인지, 아니면 CommunityRemoteDataSourceApiMockImpl 를 새로 또 만드는지 궁금합니다.만약 CommunityRemoteDataSourceApiImpl(DioMock()) 로 주입을 받는 식이라면Response<dynamic> response = await _dio.get('get/community/path'); final responseDto = CommunityResponseDTO.fromJson(response.data); 해당 코드들이 Dio() 일 때, DioMock() 일 때 달라야 할 것 같은데 어떻게 처리하는 것이 맞는지 궁금합니다. 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. resolverException이 빈 ModelAndView객체를 반환하는 이유가 이해가 가지 않습니다. 왜 빈 객체를 반환하는 것인가요? 만약 객체를 반환하지 않으면 어떻게 되는 것인지 궁금합니다. 추가로,package hello.exception.resolver; import com.fasterxml.jackson.databind.ObjectMapper; import hello.exception.exception.UserException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import java.io.IOException; import java.util.HashMap; import java.util.Map; @Slf4j public class UserHandlerExceptionResolver implements HandlerExceptionResolver { private final ObjectMapper objectMapper=new ObjectMapper(); @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try{ if(ex instanceof UserException){ log.info("UserException resolver to 400"); String acceptHeader = request.getHeader("aceept"); //헤더를 꺼냄 response.setStatus(HttpServletResponse.SC_BAD_REQUEST); // 상태코드 400으로 변경 if("application/json".equals(acceptHeader)){ log.info("Start to change json"); Map<String,Object> errorResult=new HashMap<>(); errorResult.put("ex",ex.getClass()); errorResult.put("message",ex.getMessage()); String result = objectMapper.writeValueAsString(errorResult); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().write(result); return new ModelAndView(); } else{ log.info("Start to text"); return new ModelAndView("error/500"); } } }catch(IOException e){ log.error("resolver ex",e); } return null; } }이렇게 작성하였는데 결과가 자꾸 text.html로 나옵니다. 로그를 찍어보니 if문이 안나오고 else문으로 나오게 됩니다. 포스트맨 출력 결과는 이렇습니다원인을 알 수 있을까요?
-
미해결Next + React Query로 SNS 서비스 만들기
MSW 오류가 발생해서 도움 부탁드립니다
서버 컴포넌트에서 Server Actions 사용하기 강의까지 그대로 따라하고 오류때문에 다시 반복해봐도 오류가 발생해서 코드 남깁니다.<SignupModal.tsx>import style from "./signup.module.css"; import { redirect, useRouter } from "next/navigation"; import { ChangeEventHandler, FormEventHandler, useState } from "react"; import BackButton from "./BackButton"; export default function SignupModal() { const submit = async (formData: FormData) => { "use server"; if (!formData.get("id")) { return { message: "no_id" }; } if (!formData.get("name")) { return { message: "no_name" }; } if (!formData.get("password")) { return { message: "no_password" }; } if (!formData.get("image")) { return { message: "no_image" }; } let shouldRedirect = false; try { const response = await fetch( `${process.env.NEXT_PUBLIC_BASE_URL}/api/users`, { method: "post", body: formData, credentials: "include", //쿠키를 사용하여 로그인 여부를 파악하기 위함 } ); console.log(response.status); // if (response.status === 403) { // return { message: "user_exists" }; // } // 이미 유저가 존재할때 403 보내주기로 약속 console.log(await response.json()); shouldRedirect = true; } catch (err) { console.log(err); } if (shouldRedirect) { redirect("/home"); //try/catch문 안에 있으면 안됨. } }; return ( <> <div className={style.modalBackground}> <div className={style.modal}> <div className={style.modalHeader}> <BackButton /> <div>계정을 생성하세요.</div> </div> <form action={submit}> <div className={style.modalBody}> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="id"> 아이디 </label> <input id="id" name="id" className={style.input} type="text" placeholder="" required /> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="name"> 닉네임 </label> <input id="name" name="name" className={style.input} type="text" placeholder="" required /> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="password"> 비밀번호 </label> <input id="password" name="password" className={style.input} type="password" placeholder="" required /> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="image"> 프로필 </label> <input id="image" name="image" className={style.input} type="file" accept="image/*" required /> </div> </div> <div className={style.modalFooter}> <button type="submit" className={style.actionButton}> 가입하기 </button> </div> </form> </div> </div> </> ); } ><handlers.ts>http.post("/api/users", async ({ request }) => { console.log("회원가입"); // return HttpResponse.text(JSON.stringify('user_exists'), { // status: 403, // }) return HttpResponse.text(JSON.stringify("ok"), { headers: { "Set-Cookie": "connect.sid=msw-cookie;HttpOnly;Path=/", }, }); }),>이런식으로 강의와 똑같이 작성했고, 질문글중 회원가입 코드에 Path부분 빼라고 해보셔서 해봤는데 안됩니다.실행하고, 가입하기 버튼을 눌렀을때 redirect가 안되고, 헤더 200, 페이로드는 뜨지만 미리보기, 응답이 뜨지 않습니다.그리고 에러코드에 TypeError: fetch failed<cause: Error: getaddrinfo ENOTFOUND loalhost at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) at GetAddrInfoReqWrap.callbackTrampoline (node:internal/async_hooks:130:17) { errno: -3008, code: 'ENOTFOUND', syscall: 'getaddrinfo', hostname: 'loalhost' }}>이런 에러가 떠서 검색도 해봤지만 해결이 안되서 질문 드립니다.
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 문자열,리스트,조건문 활용1 공부하다 문의요
중간쯤에 나오는 문제인데요(1번)data1=int(input())if 100>=data1>=81: print("A")elif 80>=data1>=61: print("B")else: print("C")(2번)data1=int(input())if data1<=100 and data1 >=81: print("A")elif data1<=80 and data1>=61: print("B")else: print("C") 전 위의 1번 방식으로 풀었는데 강사님은 2번방식으로 하더라고요위의 2개가 차이가 있을까요??? 답은 동일하게 나오는데요~
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
이런 방식으로 로또 번호를 생성하는 것도 랜덤이라고 볼 수 있을까요?
void ChooseLotto(int numbers[], int count) { // 랜덤으로 1~45 사이의 숫자 6개.... 중복 없이 int lotto[45]; for (int i = 0; i < 45; i++) { lotto[i] = i + 1; } // 공을 섞는 과정 for (int i = 0; i < 1000; i++) { int randNum1 = rand() % 45; int randNum2 = rand() % 45; Swap(&lotto[randNum1], &lotto[randNum2]); } for (int i = 0; i < count; i++) { numbers[i] = lotto[i]; } }안녕하세요, 강의 잘 보고 있습니다. 저는 실습 풀이를 이렇게 했는데요.로또 추첨을 할 때 커다란 통에 공을 집어넣고 6개의 번호가 쓰인 공을 꺼낸다고 하면, 한 번 꺼낸 공은 다시 추첨기에서 나오지 않아야 한다고 생각했습니다.따라서 1~45의 값이 들어있는 배열을 선언하고, 해당 배열을 rand()와 swap()을 이용해 계속 반복하여 섞어주고, 마지막에 0번~5번 인덱스까지 6개의 수를 numbers 배열에 담아주었습니다.이런 방식으로 로또 번호를 생성하는 것도 랜덤으로 번호를 생성한 것이라고 볼 수 있을까요?
-
해결됨Flutter로 SNS 앱 만들기
댓글 입력 후 FeedCardWidget의 FeedCcount 업데이트 관련
안녕하세요 댓글 입력 후 메인 화면 코멘트카운트가 업데이트 되지 않고 있습니다. CommentScreen에 callback 멤버 추가해서 하면 될것 같은데. 잘안되네요.. 도움 부탁드리겠습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
eTag 캐시 제어
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]last-modified를 테스트 해봤을 때 캐시가 만료되어서 다시 요청을 하면은 304 상태코드를 알아서 응답했는데eTag를 사용했을 때는 알아서 304를 응답하지 않고 200을 응답하더라구요. 그래서 직접 비교를 하는데 eTag 설명에서 캐시 제어 로직을 서버에서 완전히 관리한다 라는 말이 이렇게 개발자가 직접 관리 한다는 뜻인가요? 아니면 원래 알아서 304를 반환하는데 뭔가를 잘못한 것인가요?