RELEASE-20260511#204
Conversation
- Simplified the navigation push logic in the interview result page for better readability. - Improved client IP retrieval in server-side props for guest interview reports, adding a console log for debugging purposes. - Updated Nginx configuration to restore the actual client IP with appropriate settings for real IP handling.
- Added a console error log to capture and stringify errors occurring during the guest interview report process for better debugging.
There was a problem hiding this comment.
Code Review
This pull request introduces a guest interview feature, allowing unauthenticated users to experience a limited demo of the AI mock interview service. Key changes include updating middleware to allow public access to interview routes, implementing guest-specific API endpoints, and adding UI components such as the GuestInterviewModal and demo-specific banners. The PR also refactors the CreateInterviewForm and RankCard for improved UX, integrates Google AdSense, and restricts result visibility for guest users. Feedback focuses on improving error handling in the guest API, removing sensitive IP logging from production code, and utilizing the newly created GoogleAdSenseComponent to reduce code duplication.
| .catch((error) => { | ||
| if (isAxiosError(error)) { | ||
| if (error.response?.status === 400) { | ||
| throw new Error(error.response.data.message); |
| (context.req.headers["x-real-ip"] as string) || | ||
| context.req.socket.remoteAddress || | ||
| ""; | ||
| console.log("clientIp for guest interview report", clientIp); |
| } | ||
| }; | ||
| } catch (error) { | ||
| console.error("error for guest interview report", JSON.stringify(error)); |
There was a problem hiding this comment.
JSON.stringify(error)는 Error 객체의 정보를 제대로 출력하지 못하는 경우가 많습니다(빈 객체 {} 반환). 에러 객체 자체를 로그로 남기거나 error.message를 사용하는 것이 디버깅에 더 도움이 됩니다. 또한 운영 환경에서는 상세한 에러 로그 노출을 최소화해야 합니다.
| console.error("error for guest interview report", JSON.stringify(error)); | |
| console.error("error for guest interview report", error); |
| import GuestInterviewModal from "@/domains/interview/components/guestInterviewModal"; | ||
| import { useModal } from "@kokomen/utils"; | ||
| import Image from "next/image"; |
There was a problem hiding this comment.
GoogleAdSenseComponent를 사용하기 위해 임포트를 추가해야 합니다.
| import GuestInterviewModal from "@/domains/interview/components/guestInterviewModal"; | |
| import { useModal } from "@kokomen/utils"; | |
| import Image from "next/image"; | |
| import GuestInterviewModal from "@/domains/interview/components/guestInterviewModal"; | |
| import { useModal } from "@kokomen/utils"; | |
| import Image from "next/image"; | |
| import { GoogleAdSenseComponent } from "@/domains/ads/googleAdsenseComponent"; |
| <ins | ||
| className="adsbygoogle" | ||
| style={{ display: "block" }} | ||
| data-ad-client="ca-pub-9998347148036420" | ||
| data-ad-slot="4601910391" | ||
| data-ad-format="auto" | ||
| data-full-width-responsive="true" | ||
| ></ins> |
🛠️ Build SummaryStatus: ✅ SUCCESS 📋 Build Output (마지막 45줄)🤖 Generated by GitHub Actions at Mon May 11 12:59:26 UTC 2026 |
🚀 Lighthouse Report for TEST1📅 Date: 5/11/2026
📊 Performance Details
🚀 Lighthouse Report for TEST2📅 Date: 5/11/2026
📊 Performance Details
🚀 Lighthouse Report for TEST3📅 Date: 5/11/2026
📊 Performance Details
🚀 Lighthouse Report for TEST4📅 Date: 5/11/2026
📊 Performance Details
🚀 Lighthouse Report for TEST5📅 Date: 5/11/2026
📊 Performance Details
|
RELEASE-20260511