묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
Next.js API Route를 이용한 API 통합이 BFF 패턴에 해당하는지 궁금합니다
안녕하세요. 프론트엔드 취준생입니다.최근 대시보드 페이지를 리팩토링하면서 Next.js의 API Route를 사용해 여러 API 호출을 하나로 통합했습니다. 이 방식이 BFF(Backend for Frontend) 패턴을 올바르게 적용한 것인지, 혹은 제가 오해한 부분이 있는지 궁금해서 질문을 올립니다. AS-IS (기존 방식)기존 대시보드 페이지에서는 두 개의 다른 API를 직접 호출했습니다.이로 인해 다음과 같은 문제들이 있었습니다.프론트엔드에서 두 번의 개별 네트워크 요청이 발생했습니다.두 API에서 받은 데이터를 프론트엔드에서 직접 조합 후 가공 했습니다. TO-BE (개선한 방식)문제를 해결하기 위해 Next.js의 API Route를 도입했습니다.프론트엔드는 이제 새로 만든 엔드포인트 하나만 호출합니다.Api Route 내에서 Promise.all을 사용해 기존의 두 API를 서버 사이드에서 병렬로 호출합니다.두 API의 응답을 서버에서 조합하고 데이터 가공 로직까지 수행합니다.프론트엔드에는 렌더링에 즉시 사용할 수 있는 가공된 단일 JSON 객체를 반환합니다.-> 코드양 약 47% 감소했으며 데이터 가공 로직을 컴포넌트에서 제거 질문제가 위에서 적용한 방식(Next.js의 API Route를 중간 레이어로 사용하여 API를 통합하고 데이터를 가공)이 BFF 패턴을 올바르게 구현한 사례가 맞을까요?만약 맞다면, 이런 방식의 장점을 극대화하기 위해 추가로 고려하면 좋을 점이 있을까요?만약 잘못된 접근 방식이라면, 어떤 점을 오해하고 있는지 궁금합니다.현업 전문가분들의 조언을 부탁드립니다. 감사합니다!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
에뮬레이터와 시뮬레이터 동시 실행 관련 문의드려요
안드로이드 에뮬레이터와 ios 시뮬레이터를 동시 실행한 후 핫 리로드를 했을 때 두 기기에 모두 반영이 되도록 하는 방법이 있을까요?
-
미해결
코드 해설 강의 쿠폰 관련 문의
안녕하세요? 밑바닥부터 만들면서 배우는 LLM 완독 챌린지 수강생입니다.해설강의 쿠폰이 발행된 줄 모르고 이제야 메일을 확인했는데쿠폰기간이 만료가 되었는지 다운받아지질 않습니다.죄송하지만 다시 한번 발송해 주실 수 있을까요?번거로우시겠지만 부탁드리겠습니다~!!
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
역할 및 발생 시점에 따른 엔티티 분류
역할 및 발생 시점에 따른 엔티티 분류를 설명하는 파트에서 궁금한 점이 있습니다. 지난 강의까지 주문 엔티티는 사건 발생의 결과물(즉, 주문 이력)이 기록되는 엔티티라고 이해했었는데요."엔티티 분류1" 강의에서는 기본, 중심, 행위 엔티티로 나눠서 생각해볼 수 있다고 했습니다. 그때 중심 엔티티에서도 예시가 주문으로 나와있고, 행위 엔티티에서도 주문 이력으로 나와 있는데, 이 두 개가 다른 경우인가요? 중심 엔티티의 주문과 행위 엔티티의 차이가 무엇인가요? 감사합니다.
-
미해결절대강좌 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
Warrior의 InputHandler.cs 의 OnEnable(), OnDisable() 메서드 부분에서 공격에 문제가 있는 것 같아요.
Warrior의 공격에 문제점 발견마우스 왼쪽 버튼 Down 할 때 공격 애니메이션 동작마우스 왼쪽 버튼 Up 할 때 공격 애니메이션 동작마우스 한번 클릭(Down, Up) 동작에서 두 번의 공격 동작을 함.이 부분에서 canceled 부분==>마우스 Up 에서 애니메이션이 발생함.수정 전 코드attackAction.preformed += HandleAttack; attackAction.canceled += HandleAttack;수정 후 코드attackAction.started += HandleAttack; //attackAction.canceled += HandleAttack;이렇게 수정하면 정상적으로 마우스 한 번 클릭에 한 번 공격함.전체 수정 코드private void OnEnable() { inputActions.Enable(); // 이벤트 연결 moveAction.performed += HandleMove; moveAction.canceled += HandleMove; attackAction.started += HandleAttack; // attackAction.canceled += HandleAttack; // 버튼을 뗄 때 공격이 발생하는 문제를 막기 위해 제거 }private void OnDisable() { inputActions.Disable(); // 이벤트 해제 moveAction.performed -= HandleMove; moveAction.canceled -= HandleMove; attackAction.started -= HandleAttack; // attackAction.canceled -= HandleAttack; }
-
미해결
브라우저의 SOP 정책의 실효성 질문
Same Origin Policy가 CSRF 공격을 막기 위해 필요하다고 배웠습니다. 그런데 정말 SOP가 꼭 필요한지가 의문입니다. SOP가 없더라도, 쿠키의 SameSite=Strict 옵션을 사용하고, 타 사이트 localstorage에 접근하는 것을 차단하기만 한다면, 다른 사용자의 자원을 탈취하는 것을 막을 수 있을 것 같은데요. 그 외의 자원에 대한 SOP는 어차피 브라우저 주소창에 주소를 입력하기만 하면 누구나 접근할 수 있는 데이터에 대한 접근을 막을 뿐이지 않나요?
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
새일기쓰기하고 새로고침하면 새로쓴일기가 사라져요
🚨 필독) 질문하시기 전에 꼭 읽어주세요 (10초 소요)제목을 구체적으로 작성해 주세요✅ 좋은 예 : 감정일기장 Home 구현중 xx 이슈가 발생합니다.⛔️ 나쁜 예 : 이거 왜 안되나요?, 오류나요 도와주세요 등비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요! 코드의 이슈는 전체 프로젝트를 "링크 형태"로 올려주셔야 원인을 파악할 수 있습니다.깃허브, 구글드라이브 등의 수단을 통해 링크 형태로 전달해주세요직접 실행해보며 원인을 파악해야 하기 때문에 텍스트 형태로 붙여넣는건 삼가해주세요 https://drive.google.com/drive/folders/1lRO0fOAae3cWJUtuNK7L5atrGTgFFRWO?usp=drive_link 답변이 도움이 되셨다면 답글 or 해결완료 버튼을 클릭해주세요비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요!제 답변이 여러분께 도움이 되었는지 저도 알고 싶어요 강의 내용에 궁금한 점이 있다면 몇 챕터의 몇 분 몇 초인지 알려주시면 더 좋아요더 빠른 답변이 가능합니다!
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
spotbug + @NonNullApi 로만 Null 방어가 될까요?
안녕하세요, nullable 프라퍼티가 없다면 null를 방어하는 방식에 대해 궁금한 점이 있어 질문남깁니다.14. Member 도메인 로직 개발 - 생성자에 requireNonNull() 사용15. 스프링을 이용한 널(null) 안정성 확보 - SpitBugs 플러그인 - package-info 에서 @NonNullApi이렇게 세가지 방법을 배웠는데요, SpitBugs 플러그인이 "빌드과정에서 정적 분석을 하여 애노테이션 의미와 부합하지 않으면 에러를 내준다" 라는 말씀에 "그럼 도메인에 Nullable 프라퍼티가 없으면 requireNonNull() 사용 없이 단순히 @NonNullApi + SpotBug만 사용해도 되지 않을까..? "의문이 들었습니다.3가지 모두 사용하는게 Null 방어에 괜찮을까요? 아니면 제가 이해한 대로 SpotBug 플러그인 + @NonNullApi 로만 사용해도 충분할까요?
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 심화편
GetRandomPointInNavigableRadius 함수가 없어요
안녕하세요. 언리얼 5.6으로 따라가는 중인데 Context Sensitive를 끄고 검색해봐도 GetRandomPointInNavigableRadius 함수가 없습니다. 대신 GetRandomReachablePointInRadius 함수를 사용하니까 똑같이 동작은 하는데 이걸 사용해도 되는건가요?
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
이미지가 없다고 에러가 계속 떠요
apiVersion: v1 kind: Pod metadata: name: spring-pod spec: containers: - name: spring-container image: spring-server ports: - containerPort: 8080 imagePullPolicy: IfNotPresentspring-pod.yaml파일을 작성을 한뒤 kubectl delete pod spring-pod 명령어로 pod를 삭제하고kubectl apply -f spring-pod.yaml 명령어를 입력했는데 계속 사진처럼 ErrImagePull이 됩니다.이미지를 pull로 당겨오지 못해서 발생하는 오류인것 같은데 이미지는 있는것으로 확인 됩니다. 뭐가 문제인걸까요?
-
미해결유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
로컬 알림과 다국어 지원에 대해 궁금합니다.
안녕하세요. 유니티 시스템 프로그래밍 파트 1, 파트 2 강의 잘 듣고 있습니다. (두개 모두 번갈아 가며 필요한 부분 먼저 듣고 있는 상태입니다. ) 모바일 게임 서비스에 중요한 요소중에 하나로 로컬 알림과 서버 알림이 있는데 이 중에서도 로컬 알림에 대한 강의는 없는 것 같습니다. 혹시 제가 못 찾은 건지 아니면 이 강의가 없다면 추가로 강의를 만들어주실 수 있으신지 궁금합니다. 다국어 부분에서 CSV 파일을 로드해서 각 나라에 맞게 언어를 바꾸고 있긴 한데 CSV 파일 내 문자열에서 , 가 포함되어 있는 경우는 문제가 되지 않을까 싶습니다. 혹시 이런 경우일 때 어떻게 처리를 하실지 궁금합니다. 이상입니다. 유용한 강의 감사드립니다~
-
미해결코드 5줄의 마법, 5줄 머신러닝 PyCaret: 데이터 분석 프로젝트에 AutoML 날개 달기
13강 질문
안녕하세요, 13강에서 2개 질문 있습니다.ch =1로 레이블 되어있던데, shap값이 높으면 음수가 되니까 loyalch가 높을 수록 0으로 분류하는 것 아닌가요? 아래 코드에서 오류가 나는데 어떻게 수정해야 하나요?print("\n--- 4. Local Interpretation (SHAP Reason Plot) ---") interpret_model(tuned_lgbm, plot='reason', observation=0)
-
미해결데이터 분석 SQL Fundamentals
rollup시 null값 매출 라벨링
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.selectcoalesce(to_char(b.order_date, 'yyyy'), '총매출') asyear, coalesce(to_char(b.order_date, 'mm'), '연매출') asmonth, coalesce(to_char(b.order_date, 'dd'), '월매출') asday, sum(a.amount) assum_amountfromnw.order_itemsajoinnw.ordersbona.order_id = b.order_idgroupbyrollup(to_char(b.order_date, 'yyyy'), to_char(b.order_date, 'mm'), to_char(b.order_date, 'dd'))orderby1, 2, 3;case when 안쓰고 coalesce 해도 괜찮을것 같아요!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인라인 코드가 인텔리제이 IDE 에서 오류라고 표기되고 있습니다.
서버를 켜서 소스코드를 보면 의도된 대로 잘 작동하는것 같긴 한데,인텔리제이에서 아래처럼 오류 표기가 계속떠서 혹시 설정을 건드려야 하는 부분이 있는지 궁금합니다 .참고로 현재 Ultimate 버전 사용 중입니다.
-
해결됨QGIS 지도 시각화 A to Z (벡터/기초편)
qpt 파일 연결프로그램 문의
안녕하세요.공유해주신 qpt 파일을 열어보려고 기본프로그램으로 pdf를 설정햇는데 열리지가 않습니다. 보통 qpt파일 연결프로그램은 어떤 프로그램으로 디폴트 설정을 해두나요?
-
미해결한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
영상 편집 관련 문의
혹시 5:50 초 쯤 인사 후 뒤 영상은 편집이 덜 된걸까요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
공유 캐시 관련 질문 드립니다.
안녕하세요.https://inf.run/j6Fso위 질문과 답변이 제가 궁금했던 내용과 유사하여 글을 읽어보게 되었습니다.그리고 추가로 궁금한 점이 있어 질문을 드리고 싶습니다.먼저 제가 이해한 내용은 다음과 같습니다.공유 캐시는 클라이언트와 서버 사이에 있으며 사용자간에 공유할 수 있는 응답을 저장할 수 있고, 공유 캐시는 중간 프록시 서버에 저장하는 건데, 이 프록시의 종류는 forward proxy와 reverse proxy가 있다. 그리고 reverse proxy의 경우는 대표적으로 nginx서버가 있다.그리고 질문드리고 싶은 내용은,nginx의 경우는 서버 앞단에 있기 때문에 ip 주소를 알아야지 접근할 수 있다고 알고 있습니다. 그래서 위에서 말씀하신 '브라우저 캐싱과 공유 캐싱이 DNS캐시보다 먼저 수행됩니다.' 의 뜻은 '브라우저 캐싱과 공유 캐싱(forward proxy, CDN 캐시)이 DNS캐시보다 먼저 수행되고, 공유 캐싱(reverse proxy)이 수행된다.'로 이해하면 되는지 여쭙고 싶습니다.질문 읽어주셔서 감사합니다.
-
미해결<밑바닥부터 만들면서 배우는 LLM> 완독 챌린지
해설 쿠폰 관련 문의
안녕하세요.밑바닥부터 만들면서 배우는 LLM 완독 챌린지 수강생입니다. 메일이 스팸함으로 분류되어 쿠폰을 확인하지 못해 현재 등록이 어려운 상황입니다.혹시 쿠폰 재발급이 가능할지 확인 부탁드립니다. 감사합니다.
-
미해결Spring Boot TDD - 입문부터 실전까지 정확하게
테스트 시나리오 유효하지 않은 경우는 언제 도출하나요?
테스트 시나리오 유효하지 않은 경우는 언제 도출하나요?테스트 시나리오를 작성하기 전에 모든 경우의 수를 고려해서 작성해야할지 고민입니다.제가 개발하는 도메인을 명확하게 잘 모르면 이걸 도출해내기가 쉽지도 않고 시간이 너무 소요되더라구요. 어느정도 limit 시간을 잡으시고 점진적으로 못찾은 부분을 도출하시는지 의견이 궁금합니다.
-
미해결AI 도구와 피그마를 활용한 앱 서비스 기획
실제로 개발할때 IA, 페르소나만 있으면 되나요?
제가 앱을 하나 개발중인데요. 저 혼자 1인 개발로 하고 있습니다. 일단 생각나는데로 페이지 하나씩 개발하다보니 페이지 다 만들고나서 기능 추가, 수정을 위해 갈아 엎는 경우가 계속 생기더라구요.AI에 물어보니, 혼자서 개발할 때의 적용 순서 (요약)"대참사"를 막기 위한 가장 이상적인 생각의 흐름은 다음과 같습니다."누구를 위한 앱이지?" -> 유저 페르소나를 간단히 정의한다.(예: "30대 초반의 이직 준비생, 김코딩")"김코딩은 지금 어떤 어려움을 겪고 있지?" -> 유저 저니맵을 그려본다.(예: "강의 정보가 흩어져 있어 비교하기 힘들다"는 Pain Point 발견!)"좋아, 이 문제를 우리 앱으로 어떻게 해결해 줄까?" -> 핵심 기능들의 유저 플로우를 그린다.(예: "강의 비교하기" 플로우, "수강 신청" 플로우를 그려보며 필요한 화면들을 구체화한다.)"그래서 우리 앱은 총 몇 개의 화면이 필요하고, 메뉴는 어떻게 구성할까?" -> IA를 정리한다.(예: 엑셀에 필요한 페이지 목록과 메뉴 구조를 쭉 적는다.)"각 화면의 레이아웃은 어떻게 잡고, 흐름은 자연스러운가?" -> 와이어프레임/프로토타입을 만든다.(예: Figma로 간단히 화면들을 그리고 연결해서 직접 클릭해본다.)"오케이, 이대로 만들면 되겠다!" -> 이제 개발을 시작한다.이 과정을 거치면, 개발 단계에서는 이미 구조가 다 정해져 있기 때문에 '뭘 만들어야 하지?'를 고민하는 대신 '어떻게 잘 만들지?'에만 집중할 수 있습니다. 라우팅이 꼬이거나 페이지를 뒤엎을 확률이 극적으로 줄어들게 됩니다. 위와같이 얘기해주는데요. 유저 저니맵과 유저 플로우는 따로 할 필요가 없나요? 선생님 강의에 내용이 없는거 같아서요. 그리고 와이어프레임과 프로토타입은 같은거에요?