묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결선형대수학개론
3-3 24:12
선생님 안녕하세요, 강의 듣다가S=s_1*b_1 + s_2*b_2로 평행사변형이 표현된다는 부분이 잘 이해가 안됩니다. 제가 이전 강의에서 다뤄주신 어느 부분을 놓친 건가요? 아니면 제가 벡터에 대한 기본적인 이해가 부족한 건가요? 어느 부분을 참고해야 이해할 수 있을지 궁금합니다..양질의 강의에 늘 감사드립니다!조성은 드림 + 수정아, 혹시 S 라는 영역 내부에 있는 모든 벡터를 s_1 과 s_2 라는 가중치를 이용해서 b_1 벡터와 b_2 벡터의 선형결합으로 나타낼 수 있다는 의미인가요?
-
해결됨팝스타 공식 뮤비 제작 & 유튜브 2천만 뷰 크리에이터의 애니메이트 X 이모티콘 클래스
페인트가 되지 않아요ㅠㅠ
페인트가 되지 않아 다른 분들이 질문하신거 검색해봤는데도 해결이 안되어 질문올립니다. 페인트가 아예 사용이 안되네요 ㅠㅠ새파일을 만들어서 사용을 해서 안되고 그냥 아예 되지 않습니다.현재 설정에서 잘못된 부분을 찾을 수 있을까요??해결방법을 찾아주시면 정말 기쁠거 같아요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
logoutUser 질문입니다
이렇게 떠서 구글링, 유튜브를 보는데 안나와가지고 혹시 방법을 여쭤봐도 될까요 ㅠ
-
해결됨스프링 핵심 원리 - 기본편
CannotLoadBeanClassException
스프링 빈 설정 메타 정보-BeanDefinition 강의 실습 중에 마지막에 xml 파일로 beanDefinition을 만들게 하니까 이런 오류가 뜨더군요그리고 이전에 만들었던xmlAppContext에서도 같은 오류가 발생했는데요 pdf파일의 예시 코드를 복붙해서 돌렸는데도 같은 오류가 나서질문 드립니다 org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [hello.core.member.MemberServiceImpl] for bean with name 'memberService' defined in class path resource [appConfig.xml]; nested exception is java.lang.ClassNotFoundException: hello.core.member.MemberServiceImplappConfig.xml<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="memberService" class="hello.core.member.MemberServiceImpl"> <constructor-arg name="memberRepository" ref="memberRepository"/> </bean> <bean id="memberRepository" class="hello.core.member.MemoryMemberRepository"/> <bean id="orderService" class="hello.core.order.OrderServiceImpl"> <constructor-arg name="memberRepository" ref="memberRepository"/> <constructor-arg name="discountPolicy" ref="discountPolicy"/> </bean> <bean id="discountPolicy" class="hello.core.discount.RateDiscountPolicy"/> </beans> MemberServiceImpl.java package member; public class MemberServiceImpl implements MemberService{ private final MemberRepository memberRepository; public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } }
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
printf 구현할때 쓰는 _write함수
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 자주 묻는 질문에 혹시 답이 있을 수 있어요.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. int _write(int file, char * p, int len){ HAL_UART_Transmit(&huart1, (uint8_t *)p, len, 10); return len;}***** printf함수 구현할때 복사하시는 write함수는(화면창에서 잘 안보이는데) 어느 파일에서 복사해 오시는걸까요? utils.c인가요? 경로가 궁금합니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
사용자 초대 모달에서 에러가 발생했습니다.
import fetcher from '@utils/fetcher'; import axios from 'axios'; import React, { VFC, useCallback, useState } from 'react'; import { Redirect, Route, Switch, useParams } from 'react-router'; import useSWR from 'swr'; import { Header, ProfileImg, RightMenu, WorkspaceWrapper, WorkspaceName, Workspaces, Channels, Chats, MenuScroll, ProfileModal, LogOutButton, WorkspaceButton, AddButton, WorkspaceModal, } from './styles'; import gravatar from 'gravatar'; import loadable from '@loadable/component'; import Menu from '@components/Menu'; const Channel = loadable(() => import('@pages/Channel')); const DirectMessage = loadable(() => import('@pages/DirectMessage')); import { Link } from 'react-router-dom'; import { IChannel, IUser } from '@typings/db'; import Modal from '@components/Modal'; import { Button, Input, Label } from '@pages/SignUp/styles'; import useInput from '@hooks/useInput'; import { toast } from 'react-toastify'; import CreateChannelModal from '@components/CreateChannelModal'; import InviteWorkspaceModal from '@components/InviteWorkspaceModal'; import InviteChannelModal from '@components/InviteChannelModal'; // import ChannelList from '@components/ChannelList'; import DMList from '@components/DMList'; import ChannelList from '@components/ChannelList'; // FC타입안에 children이 알아서 들어있음 // children 안쓸거면 VFC const Workspace: VFC = () => { const [showUserMenu, setShowUserMenu] = useState(false); const [showCreateWorkspaceModal, setShowCreateWorkspaceModal] = useState(false); const [showInviteWorkspaceModal, setShowInviteWorkspaceModal] = useState(false); const [showInviteChannelModal, setShowInviteChannelModal] = useState(false); const [newWorkspace, onChangeNewWorkspace, setNewWorkspace] = useInput(''); const [newUrl, onChangeNewUrl, setNewUrl] = useInput(''); const [showWorkspaceModal, setShowWorkspaceModal] = useState(false); const [ShowCreateChannelModal, setShowCreateChannelModal] = useState(false); const { workspace } = useParams<{ workspace: string }>(); // 사용자 데이터 가져오기 const { data: userData, error, revalidate, mutate, } = useSWR<IUser | false>('/api/users', fetcher, { dedupingInterval: 2000, }); // channel 데이터 가져오기 const { data: channelData } = useSWR<IChannel[]>(userData ? `/api/workspaces/${workspace}/channels` : null, fetcher); // 워크스페이스에 있는 멤버 데이터 const { mutate: revalidateMembers } = useSWR<IUser[]>( userData ? `/api/workspaces/${workspace}/members` : null, fetcher, ); // 로그아웃 const onLogout = useCallback(() => { axios .post('/api/users/logout', null, { withCredentials: true, }) .then((response) => { mutate(response.data); // 기존에 받은 데이터를 mutate의 data에 담음 }) .catch((error) => { console.log(error); }); }, []); // 프로필 누르면 메뉴 보이기 const onClickUserProfile = useCallback(() => { setShowUserMenu((prev) => !prev); }, []); // 프로필 닫기 const onCloseUserProfile = useCallback((e) => { e.stopPropagation(); setShowUserMenu(false); }, []); // 워크스페이스 모달 열기 const onClickCreateWorkspace = useCallback(() => { setShowCreateWorkspaceModal(true); }, []); // 워크스페이스 모달 닫기 const onCloseModal = useCallback(() => { setShowCreateWorkspaceModal(false); setShowCreateChannelModal(false); setShowInviteChannelModal(false); setShowInviteWorkspaceModal(false); }, []); // 워크스페이스 생성 const onCreateWorkspace = useCallback( (e) => { e.preventDefault(); // trim() 안넣으면 띄어쓰기 넣으면 걍 통과됨 if (!newWorkspace || !newWorkspace.trim()) return; if (!newUrl || !newUrl.trim()) return; axios .post( '/api/workspaces', { workspace: newWorkspace, url: newUrl, }, { withCredentials: true, }, ) .then(() => { revalidate(); setShowCreateWorkspaceModal(false); setNewWorkspace(''); setNewUrl(''); }) .catch((error) => { console.log(error); toast.error(error.response?.data, { position: 'bottom-center' }); }); }, [newWorkspace, newUrl], ); // 워크스페이스 사용자 초대 const onClickInviteWorkspace = useCallback(() => { setShowInviteWorkspaceModal(true); }, []); // Channel // 토글 const toggleWorkspaceModal = useCallback(() => { setShowWorkspaceModal((prev) => !prev); }, []); // 채널 만들기 const onClickAddChannel = useCallback(() => { setShowCreateChannelModal(true); }, []); if (!userData) { return <Redirect to="/login" />; } return ( <div> <Header> <RightMenu> <span onClick={onClickUserProfile}> <ProfileImg src={gravatar.url(userData.nickname, { s: '28px', d: 'retro' })} alt={userData.nickname} /> {showUserMenu && ( <Menu style={{ right: 0, top: 38 }} show={showUserMenu} onCloseModal={onCloseUserProfile}> <ProfileModal> <img src={gravatar.url(userData.nickname, { s: '36px', d: 'retro' })} alt={userData.nickname} /> <div> <span id="profile-name">{userData.nickname}</span> <span id="profile-active">Active</span> </div> </ProfileModal> <LogOutButton onClick={onLogout}>로그아웃</LogOutButton> </Menu> )} </span> </RightMenu> </Header> <WorkspaceWrapper> <Workspaces> {userData?.Workspaces.map((ws) => { return ( <Link key={ws.id} to={`/workspace/${123}/channel/일반`}> <WorkspaceButton>{ws.name.slice(0, 1).toUpperCase()}</WorkspaceButton> </Link> ); })} <AddButton onClick={onClickCreateWorkspace}>+</AddButton> </Workspaces> <Channels> <WorkspaceName onClick={toggleWorkspaceModal}>Sleact</WorkspaceName> <MenuScroll> <Menu show={showWorkspaceModal} onCloseModal={toggleWorkspaceModal} style={{ top: 95, left: 80 }}> <WorkspaceModal> <h2>Sleact</h2> <button onClick={onClickInviteWorkspace}>워크스페이스에 사용자 초대</button> <button onClick={onClickAddChannel}>채널 만들기</button> <button onClick={onLogout}>로그아웃</button> </WorkspaceModal> </Menu> <ChannelList /> <DMList /> {/* {channelData?.map((v) => ( <div>{v.name}</div> ))} */} </MenuScroll> </Channels> <Chats> <Switch> <Route path="/workspace/:workspace/channel/:channel" component={Channel} /> <Route path="/workspace/:workspace/dm/:id" component={DirectMessage} /> </Switch> </Chats> </WorkspaceWrapper> <Modal show={showCreateWorkspaceModal} onCloseModal={onCloseModal}> <form onSubmit={onCreateWorkspace}> <Label id="workspace-label"> <span>워크스페이스 이름</span> <Input id="workspace" value={newWorkspace} onChange={onChangeNewWorkspace} /> </Label> <Label id="workspace-url-label"> <span>워크스페이스 url</span> <Input id="workspace" value={newUrl} onChange={onChangeNewUrl} /> </Label> <Button type="submit">생성하기</Button> </form> </Modal> <CreateChannelModal show={ShowCreateChannelModal} onCloseModal={onCloseModal} setShowCreateChannelModal={setShowCreateChannelModal} /> <InviteWorkspaceModal show={showInviteWorkspaceModal} onCloseModal={onCloseModal} setShowInviteWorkspaceModal={setShowInviteWorkspaceModal} /> <InviteChannelModal show={showInviteChannelModal} onCloseModal={onCloseModal} setShowInviteChannelModal={setShowInviteChannelModal} /> </div> ); }; export default Workspace; 이건 제가 작성한 WorkSpace 입니다.import Modal from '@components/Modal'; import useInput from '@hooks/useInput'; import { Button, Input, Label } from '@pages/SignUp/styles'; import { IUser } from '@typings/db'; import fetcher from '@utils/fetcher'; import axios from 'axios'; import React, { FC, useCallback } from 'react'; import { useParams } from 'react-router'; import { toast } from 'react-toastify'; import useSWR from 'swr'; interface Props { show: boolean; onCloseModal: () => void; setShowInviteChannelModal: (flag: boolean) => void; } const InviteChannelModal: FC<Props> = ({ show, onCloseModal, setShowInviteChannelModal }) => { const { workspace, channel } = useParams<{ workspace: string; channel: string }>(); const [newMember, onChangeNewMember, setNewMember] = useInput(''); const { data: userData } = useSWR<IUser>('/api/users', fetcher); const { revalidate: revalidateMembers } = useSWR<IUser[]>( userData ? `/api/workspaces/${workspace}/channels/${channel}/members` : null, fetcher, ); console.dir(channel); const onInviteMember = useCallback( (e) => { e.preventDefault(); if (!newMember || !newMember.trim()) { return; } axios .post(`/api/workspaces/${workspace}/channels/${channel}/members`, { email: newMember, }) .then(() => { revalidateMembers(); setShowInviteChannelModal(false); setNewMember(''); }) .catch((error) => { console.dir(error); toast.error(error.response?.data, { position: 'bottom-center' }); }); }, [channel, newMember, revalidateMembers, setNewMember, setShowInviteChannelModal, workspace], ); return ( <Modal show={show} onCloseModal={onCloseModal}> <form onSubmit={onInviteMember}> <Label id="member-label"> <span>채널 멤버 초대</span> <Input id="member" value={newMember} onChange={onChangeNewMember} /> </Label> <Button type="submit">초대하기</Button> </form> </Modal> ); }; export default InviteChannelModal; 이건 제가 작성한 InviteChannelModal입니다.xhr.js:210 GET http://localhost:3090/api/workspaces/sleact/channels/undefined/members 404 (Not Found) dispatchXhrRequest @ xhr.js:210 xhrAdapter @ xhr.js:15 dispatchRequest @ dispatchRequest.js:58 request @ Axios.js:108 Axios.<computed> @ Axios.js:129 wrap @ bind.js:9 fetcher @ fetcher.ts:18 eval @ use-swr.js:392 step @ use-swr.js:43 eval @ use-swr.js:24 eval @ use-swr.js:18 __awaiter @ use-swr.js:14 eval @ use-swr.js:344 softRevalidate @ use-swr.js:532 onFocus @ use-swr.js:550 revalidate_1 @ use-swr.js:73 eval @ use-swr.js:77 eval @ web-preset.js:29그런데 위와 같은 에러가 발생합니다.콘솔에 channel을 출력해도 undefined가 뜹니다.. 그런데 url을 보면 http://localhost:3090/workspace/sleact/channel/테스트채널 이렇게 채널 명이 표시가 되는데 도대체 뭐 때문에 undefined라고 뜨는지 모르겠습니다... 아무리 찾아봐도 알 수가 없어서 글 남깁니다... 분명 WorkSpace의 route에도 오타가 없고 url도 표시가 잘되는데 왜 undefined일까요...
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
0.3 이상이지만 Ground Truth가 아닌경우
안녕하세요! Svm classifier 를 통해 학습시킬떄 IOU가 0.3 이상이지만 Ground-Truth가 아닌 경우가 잘 이해가 되지 않아 질문을 남깁니다! IOU는 Group Truth와 Selective Search Predicted 영역간의 중복되는 사각형의 넓이로 이해하였는데 0.3 이상이지만 Ground-Truth가 아닌 경우가 어떤 경우가 있을까요!
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
UART로 printf를 구현해보자 2
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 자주 묻는 질문에 혹시 답이 있을 수 있어요.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. UART 통신에서 빵판을 안쓰고 보드와 UART 모듈을 직접 점프선으로TR RX GND를 연결해도 돼나요??
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
포트폴리오 프로젝트
안녕하세요,선생님 강의를 보며 열심히 백엔드 공부중입니다.혹시 포트폴리오 과제같은 경우는 프론트엔드 코스도 봐야 하나요? 아니면 백엔드 커리큘럼 한에서 만들기가 가능할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
OpenJDK 64-Bit Server VM warning
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.MemberServiceIntegrationTest 회원가입을 실행하는 과정에서 OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended이 오류를 어떡해야할지 모르겠어요
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
chapter_1 ./build에 관하여 여쭙고 싶습니다.
vivado를 직접 실행시키는 것은 문제가 없는데 ./build를 치면 이렇게 뜨는데 해결 방법을 알 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백준 입력을 터미널에 복붙할 때 출력이 되버리는 이슈
안녕하세요~좋은 강의 잘 보고 있습니다.1 - G를 풀 때, 백준 입력을 그대로 터미널에 붙여 넣는 경우(복사 버튼 사용)에 아래 캡처와 같이 출력이 함께 되어 버리는데 이 케이스를 해결하는 방법을 혹시 아실까요? 해당 이슈 때문에 백준 제출 시에는 문제가 없는데 VSC에서 정답인지 아닌지 출력을 제대로 확인할 수가 없네요...참고로 위 출력 이슈의 소스코드는 문제 해설의 소스코드와 동일합니다.
-
해결됨글로벌 개발자로 성장하는 < 코딩 실무 영어 /> 마스터 클래스
궁금한 점이 있으시면 언제든 편하게 말씀해 주세요!
안녕하세요 수강생 여러분,본 코딩 영어 클래스를 수강해 주셔서 정말 감사합니다.궁금한 점, 문의사항이 있으시면 언제든지 편하게 말씀해 주세요 :)긱하우스 장진호 드림
-
해결됨[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
Set 함수의 기능에 대한 질문입니다. (초보 질문 죄송..)
State 패턴 강의 중 궁금한게 생겨 질문 드립니다.Set(Skill) 노드는 Attack을 변수 설정하기 위한 노드,뒷 부분의 Set(Move) 노드는 공격 애니메이션을 해제, 즉 액션을 위한 노드로 이해하고 있습니다.제 가정이 맞다면 Set 노드의 기능은 변수 설정, 액션 2가지로 나눌 수 있다는 것인데,만약 같은 set 노드라도 변수 설정을 위한 노드와 액션을 하는 노드는 어떻게 구분하며 써야하는지 그 기준이 궁금합니다.
-
미해결Nuxt.js 시작하기
Vue 3 내용 추가 업데이트 관련 문의
Vue 3 내용도 추가로 업데이트 할 예정이라고 해주셨는데... 혹시 언제쯤 추가 업데이트 해주실 수 있는지 궁굼합니다. :)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
"연결이 비공개로 설정되어 있지 않습니다." 오류가 뜰 경우
ChatGPT의 도움을 받았습니다.아래와 같이 시도해보세용~
-
해결됨처음 시작하는 Infrastructure as Code: AWS & 테라폼
기존 레거시 resource와 테라폼을 혼용해서 쓰는 경우도 있나요?
물론 첨부터 깔끔하게 만드는게 best입니다만, 오랜 시스템 일수록 resource들이 엄청 섞여있는 경우가 더 많습니다. (IAM권한 여기저기, 라우팅테이블 일관성 없기, 다 따로노는 NACL등...) 이걸 다 엎을수도 없을테고 선진화 (테라폼 적용) 도 해야하는 경우가 실무에서 꽤 흔하지 않나요?혹시 이럴땐 어떻게 하시는 지요... 제 짧은 생각으로는 일부는 terraform import 로 끌어와서 쓰고 일부는 테라폼으로 제대로 구성해서 쓰고...이렇게도 하나요?
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
갱신 손실 문제가 일어날 것 같은 로직에는 무조건 동시성 제어를 해줘야할까요?
안녕하세요 선생님, 먼저 좋은 강의 감사드립니다.강의를 들으며 갱신 손실 문제를 해결하기 위한 여러 방법들을 학습하며 문득 이런 고민이 생겼습니다. 갱신 손실 문제가 일어날 것 같은 로직(예: 재고 감소)을 구현할 때, 구현 단계에서부터 동시성 제어를 처음부터 고려해야하는가? 고려한다고 했을 때, 트래픽이 얼마나 될지 모르는 상황에서 어떤 방법을 사용할 것인가?이에 대한 제 생각은 이렇습니다. 처음 로직을 작성할 때부터, 갱신 손실 문제가 운영 중에 발생한다면 큰 문제가 될 수 있으므로 반드시 구현 단계에서 부터 고려한다. 갱신 손실 문제가 아예 일어나지 않는 트래픽이더라도 어차피 성능상 손해보는 것은 없을 것이다.트래픽이 얼마가 될지 모르므로 우선 Optimistic Lock을 우선적으로 사용하고, 성능이 안 나오면 Pessimistic Lock 을 사용한다.저는 이렇게 생각했는데, 선생님께서는 위와 같은 상황이라면 어떻게 구현하실 건지 궁금합니다. 또 일단 갱신 손실 문제를 핸들링 하는 상황이라면 Redis나 Named Lock이 아닌 Optimistic Lock, Pessimistic Lock 을 가장 먼저 고려하실 건지도 궁금합니다.읽어주셔서 감사합니다. :)
-
미해결웹 개발의 혁신: C, C++, Rust로 시작하는 WebAssembly 마스터 클래스
clock 예제 빌드 오류
안녕하세요 두가지 에러문제로 질문드립니다1번째는 clock 예제를 시작하고 빌드를 하니까 qmake 스텝에서 오류가 나온다고 합니다그 전 강의에서 cmake 가 오류가 적다 말씀하셔서 그 부분을 의심하고 qmake를 cmake로 변경하기위해 구글링 해봤지만 설정을 어떻게 바꾸는지 못찾겠습니다..... 2번째는 include를 하는 곳에서 참조가 안된다하는데 추가로 다른 파일을 다운받아야하나요....? 강의에서 보여주신 qt maintenace에서 다운로드 해야하는것은 체크해서 다운받았는데 참조가 안된다고 하네요....
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
mapper 이용을 할 때 500 에러가 나고 있습니다.
controller 단에서 호출하는 mapper 가 오류가 나고 있습니다... 화면에서 crud 시킬때 500에러:Request processing failed; nested exception is java.lang.ClassCastException: java.lang.String cannot be cast to kr.board.entity.MemberUser근본이유:java.lang.ClassCastException: java.lang.String cannot be cast to kr.board.entity.MemberUser kr.board.controller.MemeberController.memRegister(MemeberController.java:118). controller에서 syso 찍어가며 넘어가야할 값들이 다 들어있는것을 확인했습니다.그런데도 매퍼 접근하려고하면 오류가 나고 있습니다.콘솔에서의 오류:Exception in thread "main" java.lang.NullPointerException at kr.board.controller.BoardRestController.wifiInfoInsert(BoardRestController.java:66)