묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
API가 무엇이고 종류는 뭐고 어떤 장단점이 있는 지 알려주세요 그리고 어떤 언어로 만든 지도 알려주세요
restAPI를 이용하면 python이랑 java랑 교환이 가능 한데 어떻게 만든는 것예요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
8번퀴즈 speedCam 객체의 Setter가 궁금합니다
안녕하세요 매번 강의 잘 듣고 있습니다.8번 퀴즈를 풀면서 궁금한게 생겨 글써봅니다.앞선 Interface 강의에서는 FactoryCam의 객체를 만들었을때FactoryCam factoryCam = new FactoryCam(); factoryCam.setDetector(advancedFireDetector); factoryCam.setReporter(videoReporter); factoryCam.detect(); factoryCam.report();setDetector()와 setReporter()의 인수로 위에서 정의한Reportable videoReporter = new VideoReporter(); Detectable advancedFireDetector = new AdvancedFireDetector();두 객체를 지정하셨는데 퀴즈 8번에서는 이렇게 인스턴스 객체를 만들고 인수에 집어넣는게 아닌SpeedCam speedCam = new SpeedCam(); speedCam.setDetector(new AccidentDetector()); speedCam.setReporter(new VideoReporter());new AccidentDetector(), new VideoReporter() 인스턴스를바로 인수로 집어넣는것이 import만 쓰면 가능하다는걸 보여주시려고 작성한건지 궁금해서 여쭤봅니다.1회차로 강의를 보는중이라 기본적인 용어의 혼동이나 이전 강의들의 개념도 아직 제대로 정립되지않아 질문하기를 망설였지만 답변받으면서 얻는 정보도 있을거라 생각하여 질문드려봅니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hashMap 저장순서
hashMap에서는 값이 저장되는 순서가 보장이 되지 않는 다고 알고 있습니다. Map인터페이스의 values()메서드 또한 맵에 저장된 값들을 반환하지만 순서가 유지되지 않는 다고 알고 있는데요 그런데 전체 클래스 테스트시 findAll(), findByName(),save()순으로 실행이 되는 데 findAll()과 findByName() 에서 각 멤버 인스턴들이 save가 다 되고 난 후 System.out.println(repository.findAll());추가해 이를 통해 저장된 값들을 확인해 본 결과 findAll()의 System.out.println(repository.findAll()); 에서는 [hello.hellospring.domain.Member@589b3632, hello.hellospring.domain.Member@45f45fa1] findAll()이후에 실행된 findByName()의 System.out.println(repository.findAll()); 에서는 [hello.hellospring.domain.Member@589b3632, hello.hellospring.domain.Member@45f45fa1, hello.hellospring.domain.Member@67a20f67, hello.hellospring.Member@57c758ac] 값이 나왔는데 이 처럼 메소드가 실행된 순서와 각 인스턴스들이 save된대로 저장값의 순서 유지가 되서 출력값으로 나오는데 원래라면 hashMap과 values()메서드가 저장 순서를 보장하지 않으므로 System.out.println(repository.findAll()); 실행시 마다 Map에 저장된 값들을 저장순서 상관없이 랜덤하게 출력되야 되는 거 아닌가요? 제가 어떤 부분을 잘못알고 있는 지 궁금합니다.class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @Test public void save(){ Member member = new Member(); member.setName("spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); assertThat(member).isEqualTo(result); } @Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring1").get(); System.out.println(repository.findAll()); assertThat(result).isEqualTo(member1); } @Test public void findAll(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); //hashMap 함수로 key로 id value로 member(id,name) 인스터스 저장 Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); List<Member> result = repository.findAll(); System.out.println(repository.findAll()); assertThat(result.size()).isEqualTo(2); } }
-
해결됨빅데이터 파이프라인 마스터; 성공을 위한 도구와 기술
수강신청 프로모션 신청했습니다 ㅎㅎ
예전에 취준생 프로모션으로 현재 수업 잘듣고 있습니다ㅎㅎ 일년기한 연장 프로모션도 연 것 같아 구글설문지에 신청했습니다 10월이면 기한이 종료될 예정이라 연장부탁드립니다~~
-
미해결선형대수학개론
ONTO와 One to One 질문
안녕하세요 선생님, 질문들이 조금 많아 정리해서 여쭙고 싶습니다. One to One은 수학에서의 '일대일 함수'와 같은 개념으로 이해했슨데,ONTO의 경우 수학에서의 '일대일 대응'과는 다른 의미인가요? One to One은 서로 다른 x에 대해 무조건 서로 다른 image가 대응되어야 한다고 알고 있습니다.다만 ONTO는 단지 codomain과 range가 (공역 = 치역) 같아야 한다고 알고 있는데,혹시 ONTO도 '일대일대응'과 같이 '공역 = 치역' 이라는 조건과 동시에 '일대일 함수'의 조건 또한 만족해야 하나요? 아니면 단지 공역 = 치역 이기만 하면 되는건가요? ONTO와 One to One을 구별하는 방법 중에 ONTO의 경우 각 Row 마다 pivot이 존재해야 하므로: 행 개수 < 열 개수인 가로로 긴 행렬One to One의 경우 각 Column마다 pivot이 존재해야 하므로: 행 개수 > 열 개수인 세로로 긴 행렬 라는 것을 교재에 수록된 문제 솔루션에서 봤습니다. 이렇게 이해해도 되는건가요? 만약 된다면, Row마다 pivot / Column마다 pivot이 존재해야 한다는 뜻을 정확히 모르겠습니다. 이를 어떻게 다른 조건과 동치로 해석해야 하나요?그리고 맞을 경우에, 행 개수 = 열 개수인 정사각행렬은 ONTO인지 One to One인지 어떻게 판단하나요? ONTO를 판단하는데 있어서, Columns of A가 R^{m} space를 span하는 것이 필충조건이라고 배웠습니다. 그런데 Theroem 4 - (d)에서 A가 각 Row 마다 pivot position이 존재하는 것과 동치라고 알고있습니다. 이는 [0 0 0 ... 0 b]와 같은 행이 존재하지 않는다는 의미인데요, T와 같은 standard matrix의 경우 coefficient matrix이기 때문에 [0 0 0 ... 0 b] 가 아니라 [0 0 0 ... 0 ]의 형태로 b가 빠지는 것으로 알고 있습니다.그렇기 때문에 저는 이를 영행 으로 판단하고 ONTO의 필요충분 조건은 '영행이 없기만 하면 된다'라고 판단했는데 혹 이렇게 판별해도 문제가 있을까요? 선생님, 강의가 공부하는데 정말 큰 힘이 되고 있습니다. 긴 질문글 다 읽어주셔서 정말 감사합니다! 날씨도 더운데 고생 많으십니다 ㅜㅜ
-
해결됨팀 개발을 위한 Git, GitHub 입문
수업 자료 부탁드립니다!!
깃이 너무 어려웠는데 차근 차근 잘 보고 있습니다.감사합니다. 저도 강의자료 부탁드려도 될까요!!cielo_u@naver.com입니다!
-
해결됨하루만에 배우는 ChatGPT API
배포목록에 netlify가 없어요.
다음과 같은 양식으로 남겨주세요.질문을 한 배경 : 배포목록에 netlify가 없어요. 질문내용 : codeSandbox에서 react 키워드가 들어간 모든 템플릿을 찾아봤는데, netlify가 나오지 않습니다. 앞서 2분이 동일한 내용으로 글 작성해주신 걸로 아는데, 어떻게 정리가 된 걸까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
unity 강의에서 singleton 패턴 강의
8:00 instance에 자기 자신을 누군가 채워야한다? 라고 하신거 같은데 무슨 뜻인지 잘 모르겠습니다 왜 해야 하는 건가요???
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
게시글 등록,삭제시 실시간 반영되지 않습니다.
안녕하세요 제로초님 강의듣고 리덕스, 사가 대신 툴킷과 내장 썽크를 사용해서 다시 만들어보는 중인데 게시글 등록시 글은 정상적으로 등록이 되는데 게시글 갯수가 실시간으로 바뀌지 않고 새로고침 해야 반영이 됩니다. 삭제할때도 정상적으로 삭제는 되는데 새로고침해야 삭제된 결과가 반영이 됩니다. 백엔드 부분은 강의와 같이 js로 작성했고 게시글 작성 툴킷은 다음과 같이 코드작성했습니다. // toolkit/post.ts export const initialState: PostState = { // 기본값 mainPosts: [], imagePaths: [], postAdded: false, // 게시글 로딩 loadPostLoading: false, loadPostDone: false, loadPostError: null, // 추가 로딩 hasMorePosts: false, // 게시글 작성 addPostLoading: false, addPostDone: false, addPostError: null, // 게시글 삭제 removePostLoading: false, removePostDone: false, removePostError: null, export const addPostAction = createAsyncThunk( 'post/addPost', async (data: FormData) => { const response = await axios.post('/post', data); return response.data; } ); export const removePostAction = createAsyncThunk( '/post/delete', async (data: number) => { const response = await axios.delete(`/post/${data}`); return response.data; } ); extraReducers: (builder) => { builder // 게시글 추가 .addCase(addPostAction.pending, (draft) => { draft.addPostLoading = true; draft.addPostDone = false; draft.addPostError = null; }) .addCase(addPostAction.fulfilled, (draft, action) => { draft.addPostLoading = false; draft.addPostDone = true; draft.mainPosts.unshift(action.payload); }) .addCase(addPostAction.rejected, (draft, action) => { draft.addPostLoading = false; draft.addPostError = action.error.message; }) // 게시글 삭제 .addCase(removePostAction.pending, (draft) => { draft.removePostLoading = true; draft.removePostDone = false; draft.removePostError = null; }) .addCase(removePostAction.fulfilled, (draft, action) => { draft.removePostLoading = false; draft.removePostDone = true; draft.mainPosts = draft.mainPosts.filter( (v) => v.id !== action.payload ); }) .addCase(removePostAction.rejected, (draft, action) => { draft.removePostLoading = false; draft.removePostError = action.error.message; }) 이해가 안가는 부분이 post에서 게시글 삭제, 입력등의 작업을 하고 user에서 회원가입,로그인,로그아웃, 팔로우 등의 작업을 하게 나눠놨는데 게시글 입력할때 mainPosts의 값이 추가될때마다 그 값이 컴포넌트에서 불러와져서 화면의 게시글 갯수 부분이 바뀌는건 이해가 가는데 // pages/index.ts const Home = () => { const { mainPosts, hasMorePosts, loadPostLoading } = useSelector( (state: RootState) => state.post ); {me && <PostForm />} {mainPosts.map((post) => ( <PostCard key={post.id} post={post} /> ))} 이 부분에서/component/UserProfile.tsx const UserProfile = () => { const { me, logOutLoading } = useSelector((state: RootState) => state.user); return ( <> <Card actions={[ <div key='twit'> 짹짹 <br /> {me?.Posts.length} </div>, <div key='follower'> 팔로워 <br /> {me?.Followings.length} </div>, <div key='following'> 팔로잉 <br /> {me?.Followers.length} </div>, ]} > me는 툴킷의 user.ts 의 me를 참조하는거 아닌가요? 게시글 입력,삭제시 post.ts를 통해 post.ts의 mainPosts 값이 바뀌는데 user.ts를 참조하는 컴포넌트에서 me.Posts.length 값이 바뀌는 부분이 잘 이해가 가질 않습니다. 그리고 댓글 삭제기능을 추가하고 싶은데요. //pages/index.ts const { mainPosts, hasMorePosts, loadPostLoading } = useSelector( (state: RootState) => state.post ); {mainPosts.map((post) => ( <PostCard key={post.id} post={post} /> ))} //component/PostCard.tsx const { removePostLoading } = useSelector((state: RootState) => state.post); const onRemovePost = useCallback(() => { dispatch(removePostAction(post.id)); }, []); // post.ts export const removePostAction = createAsyncThunk( '/post/delete', async (data: number) => { const response = await axios.delete(`/post/${data}`); return response.data; } ); .addCase(removePostAction.fulfilled, (draft, action) => { draft.removePostLoading = false; draft.removePostDone = true; draft.mainPosts = draft.mainPosts.filter( (v) => v.id !== action.payload ); }) //back/routes/post router.delete('/:postId', isLoggedIn, async (req, res, next) => { try { await Post.destroy({ where: { id: req.params.postId, UserId: req.user.id }, }); res.status(200).json({ PostId: parseInt(req.params.postId, 10) }); } catch (err) { console.error(err); next(err); } }); 게시글을 삭제할때는 post.id로 해당하는 글의 id를 바로 보내서 삭제할수 있는건 이해가 가는데 comment의 경우 [{댓글1}, {댓글2}] 형식으로 각 댓글의 값이 들어있어서 이부분을 어떻게 해야할지 감이 잡히지 않습니다.
-
미해결3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]
저는 지금 자바 11.0.18버전을 사용하는데 11.0.2로 바꿔야할까요?
많이 차이가 나는지 질문드립니다
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
실전문제풀이 16번문제
서로 다른 리전의 s3버킷을 같은 오리진 그룹으로 설정할 수 있나요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
강의 20 부분에서
이렇게 뜨면서 안되네요 ...... .9월 16, 2023 4:43:21 오후 org.apache.catalina.core.StandardWrapperValve invoke심각: 경로 [/MVC01]의 컨텍스트 내의 서블릿 [kr.bit.controller.MemberInsertController]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [not insert]을(를) 발생시켰습니다.javax.servlet.ServletException: not insert at kr.bit.controller.MemberInsertController.service(MemberInsertController.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) 너무 답답해요 ㅠㅠㅠㅠ
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
중급반 섹션6 <Dio onError Interceptor 작업하기> 질문입니다.
중급반 섹션6 <Dio onError Interceptor 작업하기>강의 8분 정도에 onError작업하는 과정에서에러사항 처리하는 과정에서refresh토큰으로 accessToken 요청경로가 아래 같은 경로로 설정하셨는데,final isPathRefresh = err.requestOptions.path == '/auth/token'; restaurnatRepository 에서 baseUrl을 이렇게 설정하셨는데 강의처럼 설정하면 http로 시작안하면 baseUrl이 온다고 나와있어서'http://$ip/restaurant'/// If the `path` starts with 'http(s)', the `baseURL` will be ignored, otherwise, /// it will be combined and then resolved with the baseUrl.'http://$ip/restaurant/auth/token'이 이렇게 되는게 아닌지 궁금합니다. +그리고 Riverpod pdf자료 추가 안되어있는거 같은데 이것도 확인한번부탁드릴게요~ㅎ
-
미해결운영체제 공룡책 강의
피터슨 알고리즘과 compare_and_swap 명령어 질문입니다
WSL2 환경에서 자바를 설치하고 컨슈머 프로듀서 예제를 설명하신 AtomicBoolean으로 flag값을 그리고 turn을 static 영역에 할당하고컨슈머 프로듀서의 잡을 각기 다른 두 개의 쓰레드로 실행시켰습니다turn이나 flag값이 클럭단위로 문맥교환하는 경우를 가정해서 뜯어보며 경우의 수를 따져봤지만 딱히 문제되는 경우는 없어보였습니다 while의 조건문을 고려해도 딱히 문제는 없어보였구요 그런데 count값은 이상하게도 0이 항시적으로 나오지 않았고 예상된 값을 벗어났습니다리눅스라 에러가 생기는건가 싶지만 JVM에서 가동되는 환경이라 딱히 다를것은 없다고 생각했고 실제로도 윈도우즈 환경에서도 똑같은 동시성문제가 발생했습니다도대체 무엇이 문제일까요
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
Set 자료형 사용
혹시 Set 자료형으로 중복을 제거하고 문자열로 만들어주는 방식으로 작성했는데 괜찮을까요 ?? <html> <head> <meta charset="UTF-8" /> <title>출력결과</title> </head> <body> <script> function solution(s) { let answer = ""; answer = [...new Set(s)].join(""); return answer; } console.log(solution("ksekkset")); </script> </body> </html>
-
미해결홍정모의 따라하며 배우는 C언어
visual studio code shell 설정
visual studio code 에서 Shell 검색을 하였을 때 다음과 같이 shell관련 항목이 나오지 않습니다.사전에 mingw도 설치하였고 path도 설정하였습니다. 해결 방법을 알고 싶습니다.
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
리액트에서 post img불러오기
저는 html대신 react를 사용해서 프로젝트를 진행중인데요.단순히 html로 프로젝트를 진행할 때는 아무 이상없이 미리보기 이미지도 잘 나오고 이미지 정보도 db에 저장이 잘됩니다.그런데 react를 사용해서 하면 미리보기 이미지가 불러와지지 않습니다.그래서 구글링해본 결과 파일 경로 앞에 http://localhost:8005를 붙어야 한다, encodeURI함수를 이용해서 경로를 변환시켜줘여 한다. 등 나와있는 정보대로 해보았지만 다 안되네요..그러다가 FileReader를 사용해서 파일 경로를 데이터URI형식으로 변환해야 한다고 해서 해봤는데 이걸 사용하며는 img가 잘나오더군요. 문제는 FileReader를 사용하여 파일을 변환하면 파일의 경로가 너무 길어져 413에러가 발생합니다..그래서 리액트에서는 대체 어떻게 img를 다뤄야 할지 잘 모르겠습니다..아래 코드들은 리액트에서 다양한 방법으로 경로 설정을 하고 그 후 개발자 도구에서 복사해온 태그들 입니다.물론 한개도 제대로 나온 이미지는 없습니다1.html로 프론트를 다뤘을때랑 같은 코드(실행은 리엑트에서 하고 단순히 html로 실행하면 아래 태그는 잘 나옴)<img id="image-preview" src="img/áá ³áá ³á á µá«áá £áº%202023-08-31%20áá ©áá ®%201.54.471694844382032.png" alt="미리보기" />2.local주소 붙이고 encodeURI로 경로 변환<img id="image-preview" src="http://localhost:8005/img/%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%8F%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%85%C3%A1%C2%85%C2%B5%C3%A1%C2%86%C2%AB%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%A3%C3%A1%C2%86%C2%BA%202023-08-31%20%C3%A1%C2%84%C2%8B%C3%A1%C2%85%C2%A9%C3%A1%C2%84%C2%92%C3%A1%C2%85%C2%AE%201.54.471694844547805.png" alt="미리보기"></img>이런식으로 encodeURI랑 로컬주소 고려해서 경우의 수 4가지 다 해봤는데 안됐습니다.
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
문제로 남겨주신 uuid에 대한 코드는 없는건가요 ?
UUID에 대해 제가 작성한 로직의 방향이 맞는지 확인해 보고싶은데, 문제관련 코드는 어디에 있나요 ?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
18:50초에 나오는 mongooses 문법 질문이요
const user = await User.findOneAndUpdate({_id: req.user._id, "cart.id": req.body.productId },{ $inc: {"cart.$.quantity": 1} } },{new: true {)여기서 "cart.$.quantity":1 $는 왜 붙인건가요?무슨 문법인거죠?
-
미해결Flutter 초입문 왕초보편
SDK룰 찾을 수 없고 연결 할수도 없다고 합니다
SDK를 찾을수 없고 연결을 할수가 없다고 합니다.