구현은 끝나서 swagger 만들고 있는데, 계속 swagger가 보내는 json을 못찾는것같습니다. request의 body에도 아무 값이 안나오네요. 도와주세요ㅠㅠ API 코드 app.post("/users", async (req, res) => { const newUser = req.body.newUser; // 여기에서 오류가 납니다. if ((await isAuthPhone(newUser.phone)) === true) { if (checkValidationEmail(newUser.email) === true) { const og = await makeOG(newUser.prefer); console.log(og); const securePersonal = secure(newUser.personal); const user = new UserCollection({ name: newUser.name, email: newUser.email, personal: securePersonal, prefer: newUser.prefer, pwd: newUser.pwd, phone: newUser.phone, og: og, }); await user.save(); await sendWelcomeTemplateToEmail(newUser); console.log( `✅: "${user.name}" 사용자가 신규 가입에 성공했습니다.` ); res.send(user._id); } else { res.status(422).send("NotValidationEmail"); } } else { res.status(422).send("NotAuthPhone"); } }); Swagger 코드 (yaml 파일은 복붙하니까 이상하게 나와서 이미지로 첨부할게요) (+ 이미지에선 parameter의 name이 body로 되어있지만, 위 API 코드에 맞춰서 name을 newUser로 설정했었지만 같은 에러가 떴었습니다.) 에러 메시지 Swagger parameter 화면 아무리 찾아도 방법을 모르겠어서 올립니다ㅠㅠ.... 도와주세요.....
제로초 쌤 강의 잘들으면서 구현하고 있다가 갑자기 머리가 꼬여서 복습 확인 차 질문 올립니다! (reduxjs/toolkit 사용하고 있어서 제로초쌤 강의에서 saga를 바꿔보면서 하고 있습니다) (wsl 문제는 mysql안에서 명령문 익히면서 진행하고 있습니다) 컴포넌트에서 어떤 액션을 디스패치 해줄때 안에 dispatch안의 콜백함수의 인자가 액션이 백엔드 주소에 데이터를 요청할때 들어가는 data 값의 형태로 들어가서 그게 백엔드에선 req.body로 들어가고(동적라우팅은 주소에 ${data} 로 넣어준 부분이 백엔드의 req.params.(동적라우팅변수)로 들어가는거고) 그 후에 백엔드의 작업이 끝나면 res.json() 안의 인자가 결국 최종적으로 action.payload로 들어오는게 맞나요!? 이 문제는 로그아웃하고 난 뒤에 regenertion 문제가 생겨서 소스코드도 보고 로직에 문제가 있나 싶어서 돌려보고 해당 문제로 저랑 같이 질문하신 분의 답글도 봤는데 한번 안보이니까 너무 안보이더라구요. 한번만 봐주시면 감사하겠습니다 로그아웃시 코드도 사진 따로 첨부하겠습니다(그 외 기능은 전부 잘 돌아갑니다! 로그아웃 하고 난 뒤에만 오류가 나요..) 항상 질 좋은 강의 답변해주셔서 감사합니다! next.js부분도 화이팅하면서 듣겠습니다~
안녕하세요 해당 강의를 통해서 OAuth2 로그인을 따라해보면서, 궁금한 점이 생겨서 질문 드립니다. 만약에 기존 유저에 OAuth2 로그인을 적용시키려면 어떻게 하는 지 궁금하네요.. 요즘 여러 서비스에서, OAuth2를 도입하고 기존 계정에 Toggle 버튼 같이 네이버, 카카오 등을 On, Off 할 수 있는 기능들을 제공합니다 하지만 Spring Security OAuth2 Login 기능으로 기존 계정에 on,off 처럼 연결이 가능할까 의문도 들고 생각도 해봤지만 도저히 떠오르지 않더라구여 더군다나 기존 계정에 JWT 로 인증을 하고 있었다면 불가능하지 않나 생각이 들었습니다. 너무 막연하게 질문을 드렸는데, 정확하게 알고 싶은 것은 유저 상세 페이지에서 토글 버튼 같은 것으로 네이버 연동을 시도하여 네이버 로그인을 시도했을 때, OAuth2UserService 에서 기존 유저에 대한 정보를 알 수 있는 방법이 있는 지 궁금합니다
조회 대상 빈이 2개 이상일 때 해결 방법으로 @Autowired 로면 필드 이름, 파라미터 이름으로 빈 이름을 추가 매칭한다 고 하셨는데 파라미터로 매칭하는 경우 private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceimpl(MemberRepository memberRepository, DiscountPolicy fixDiscountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = fixDiscountPolicy; } 이거는 이해가 갑니다. 근데 필드명으로 매칭하는 경우가 헷갈리는게 강사님께서 말씀하신 필드명으로 매칭하는 방법은 private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired private DiscountPolicy rateDiscountPolicy; @Autowired public OrderServiceimpl(MemberRepository memberRepository, DiscountPolicy fixDiscountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = fixDiscountPolicy; } 이거는 rateDiscountPolicy가 그냥 사용되지 않아서 돌아 가는 거 아닌가요? rateDiscountPolicy를 사용해서 필드 명으로 매칭하려면 private final MemberRepository memberRepository; @Autowired private DiscountPolicy rateDiscountPolicy; public OrderServiceimpl(MemberRepository memberRepository, DiscountPolicy rateDiscountPolicy) { this.memberRepository = memberRepository; this.rateDiscountPolicy = rateDiscountPolicy; } 이렇게 바꾸고 createOreder 메소드에 discountPolicy를 rateDiscountPolicy로 다바꿔야 돌아가던데 @Override public Order createOreder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); // 기존 코드 // int discountPrice = discountPolicy.discount(member, itemPrice); // 바꾼코드 int discountPrice = rateDiscountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } 코드가 잘 작동되긴한데 이게 강사님이 말씀하신 방법이 맞는지 의문이 들더군요...ㅠㅠ 답변 주시면 정말 감사하겠습니다.
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
[9장] signed에 대한 질문 맛비님 안녕하세요, 9장 강의를 듣고 질문사항이 생겨서 올립니다. signed a= 4'b1000 라는 변수가 있을때 해당 값은 -8이라고 알고 있습니다. 이때 궁금한 점은 2의보수를 취할때 MSB도 1->0 or 0->1로 바꿔져야 하는지 의문입니다.
안녕하세요! 먼저 좋은 강의 감사드립니다~ 이제 실무에 TypeScript를 적용해보려던 중 질문사항이 생겨 여쭙습니다. 방대한 nodeJs 프로젝트에서 Typing이 꼭 필요한 특정 파일에만 먼저 TypeScript를 적용 하고 싶은데요. 이런 경우, tsconfig 설정이나 컴파일 설정을 어떻게 하면 될까요? 감사합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
죄송하지만, 어제 질문을 남겼는데 제가 제대로 궁금한 사항을 전달하지 못한 거 같아 다시 질문드립니다. paginate함수에서 왜 꼭 final pState = state as CursorPaginationFetchingMore<T>; 해주어야만 하는지 잘 이해를 못하겠습니다. 강의에서 처럼, final resp = await repository.paginate(paginationParams: paginationParams); if (state is CursorPaginationFetchingMore) { final pState = state as CursorPaginationFetchingMore<T>; // 기존 데이터에 새로운 데이터 추가 state = resp.copyWith( data: [ ...pState.data, ...resp.data, ], ); 이 아닌, final resp = await repository.paginate(paginationParams: paginationParams); if (state is CursorPaginationFetchingMore) { state as CursorPaginationFetchingMore<T>; // 기존 데이터에 새로운 데이터 추가 state = resp.copyWith( data: [ ...state.data, ...resp.data, ], ); 으로 하게 되면 왜 data가 자동완성이 안되는 걸까요? state의 상태를 CursorPaginationBase로만 인식을 해서 안되던데, CursorPaginationFetchingMore extends CursorPaginationBase를 했으니, state as CursorPagination<T>이라고 해도 .data를 인식해야 하는거 아닌가요?
앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
안녕하세요. 강의 잘 보고있습니다. 좋은 강의 감사합니다. 질문이 있는데 Main.storyboard에서 View Controller 안에 TodoCell안에 Content View안에 Background View가 있는데 이것도 플러스 버튼을 눌러서 따로 View를 생성을 하신건가요?? 그럼 플러스 버튼 눌러서 View를 생성하고 그 안에 스택뷰(레이블과 뷰를 묶은)를 넣은 형태인지 여쭤보고 싶습니다. 플러스 버튼 눌러서 Background View를 만든것이라면 이름이 왜 Background View로 설정이 되는건가요?? 답변 부탁드리겠습니다!
localStorage에 저장을 하려면 숫자, 문자로 변환해야 저장할 수 있습니다. 하지만, 배열은 string함수를 써서 문자로 변환할 수가 없어서 JSON 함수를 활용하여 문자로 저장한다고 하셨는데, 왜 배열은 문자로 변환할 수 없나요? 구글링 해보니깐 tostring은 문자를 변환할 수 있다고 하고... 이해가 잘 안갑니다.
1.6강 10페이지에서, 최소 2개의 vector가 linearly dependent할때, 최소 1개의 vector는 다른 vector들의 linear combination이 되어야 한다. 는 이해를 했습니다. 그런데 반대로, 최소 1개의 vector가 다른 vector들의 linear combination이 될 때, 최소 2개의 vector가 linearly dependent하다. 도 맞나요? 해당 페이지에서 세번째,네번째 수식을 보면 v1에 대해서는 coefficient가 nonzero임을 증명할 수 있지만, v1이 아닌 vector에 대해서는 coefficient가 nonzero임을 증명할 수가 있는건가 해서요.
안녕하세요 수업듣다가 github권한에 대해서 문의드립니다. 저번에 질문남겨주셨을때도 들어간 링크가 404로 떠서 private 레포로 되어있는것 같은데, 권한 요청을 드려야하나요? 다른 수업자료들도 전부 private으로 되어있는것 같아요! 이렇게 1개의 레포만 확인할 수 있습니다..!
import "./App.css"; function App() { const count = 0; const increaseCountState = () => { count++; }; return ( <div className="App"> <p>State : {count}</p> <button onClick={increaseCountState}>State 올려</button> </div> ); } 안녕하세요 1. useRef 를 공부하고 있는데 리액트의 변수를 관리할 때 state랑 useRef 를 사용하는 것은 알겠습니다. 그런데 왜 그냥 일반 변수에서 값을 수정하면 되는데 복잡하게 useRef를 사용할까요? 렌더링 그런것을 떠나서 useRef랑 일반 변수를 사용할 때 차이가 궁금합니다. 2. 리액트에서 저 코드가 왜 작동이 안될까요?