inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

split_debug 질문입니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 큰돌님 split_debug 를 보면서 궁금한 점이 생겼는데요 while ((pos = input.find(delimiter)) != string::npos) { longlong pos = input.find(delimiter); cout << "POS : " << pos << '\n'; if (pos == string::npos)break; token = input.substr(0, pos); ret.push_back(token); input.erase(0, pos + delimiter.length()); } ret.push_back(input); return ret; while문의 조건으로 (pos = input.find(delimiter)) != string::npos 가 있는데 if(pos == string::npos) break 를 하는 이유가 궁금합니다.

  • C++
  • 코테 준비 같이 해요!
유재형 댓글 1 좋아요 0 조회수 197

ErrorPage를 참조하는 건 누군인가요?

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 내용] 안녕하세요 강의를 보다가 ErrorPage객체를 참조하는 주체가 누구인 지 궁금해서 질문 올리게 되었습니다! 예외가 발생했을 때 WAS까지 넘어오면 WAS가 ErrorPage 객체를 참조해서 에러페이지에 대한 재요청을 보내는 것인가요 아니면 WAS가 DispatcherType을 Error로 해서 재요청을 보내면 프론트 컨트롤러에서 ErrorPage를 참조해서 Controller를 호출하는 건가요?

  • MVC
  • spring
공부용 댓글 1 좋아요 0 조회수 442

미로탐색(DFS) 질문드립니다

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

미로탐색(DFS) 문제 풀이중 DFS함수내에 if(nx>=1 && nx<=7 && ny>=1 && ny<=7 && board[nx][ny]==0) 가 있는데 if(board[nx][ny]==0 && nx>=1 && nx<=7 && ny>=1 && ny<=7) 로 변경하면 범위오류가 발생합니다 앤드조건임에도 순서를 고려해야할까요..

  • java
  • 코테 준비 같이 해요!
김도엽 댓글 1 좋아요 0 조회수 226

position 질문

해결됨

HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)

선생님 안녕하세요. 햄버거 메뉴 만들 때 label에 position: relative label span 에 position: absolute 이렇게 포지션값을 주었는데, 사이드바 만들면서 label의 position: relative 를 absolute로 바꿔주게 되는데 그럼 label span 의 position: absolute 의 relative는 무엇이 되는 건가요?? label의 포지션을 앱솔루트로 바꿨는데도, label span에는 영향이 없는 이유가 궁금합니다 label[for=trigger] { /* border: 1px solid red; */ width: 30px; height: 20px; display: block; position: absolute; cursor: pointer; right: 10px; top: 50%; transform: translateY(-50%); transition: 0.5s; } label[for=trigger] span { position: absolute; height: 2px; background-color: #000; width: 100%; left: 0; transition: 0.3s; } /* sidebar */ .sidebar { background-color: #000; width: 300px; height: 100vh; position: fixed; right: -300px; transition: 0.5s; }

  • jquery
  • HTML/CSS
녜녜 댓글 2 좋아요 1 조회수 379

타임리프 파싱 오류

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

https://drive.google.com/file/d/19kE1MqjQqEW--lxC_1x8EprFxsnAtWRB/view?usp=sharing 주문 목록까지는 나오는데 ORDER로 해놓고 검색을 하면 이렇게 파싱이 안됩니다. 경로도 맞는데 어디서 문제가 있는지 모르겠습니다. 거의 다왔는데 마지막에 애먹네요 ㅠㅠ

  • spring
  • java
  • spring-boot
  • JPA
  • 웹앱
ko 댓글 2 좋아요 0 조회수 812

infinite scroll에서 scroll 위치 기억하는 법에 대해 질문드립니다.

미해결

[리뉴얼] React로 NodeBird SNS 만들기

infinite scroll을 하다가 게시글을 누르면 해당 게시글로 이동하고, 뒤로가기를 누르면 원래 보던 scroll 위치로 이동하도록 만들고 싶습니다. 마치 인스타그램 게시글들을 보다가 프로필을 누르면 프로필 페이지로 이동하고 뒤로가기를 누르면 원래 보던 위치로 돌아가는 것처럼 구현하고 싶습니다. 시도한 방법 scroll 위치는 localStorage를 이용해서 저장했습니다. 문제는 게시글들인데 게시물들은 아래와 같이 ssr을 이용해서 미리 불러왔습니다. export const getServerSideProps = wrapper.getServerSideProps( (store) => async ({ req, query, resolvedUrl, res }) => { // login const cookie = req.headers?.cookie; axios.defaults.headers.Cookie = ""; if (cookie) { axios.defaults.headers.Cookie = cookie; } store.dispatch({ type: CHECK_LOGIN_REQUEST, }); // board if ( store.getState().board.previousUrl === null || store.getState().board.previousUrlType !== query.type ) { store.dispatch({ type: SAVE_PREVIOUS_URL_TYPE, data: query.type, }); store.dispatch({ type: SAVED_POSTS_INITIALIZE, }); store.dispatch({ type: LOAD_BOARD_REQUEST, data: { type: resolvedUrl }, }); } store.dispatch(END); await store.sagaTask.toPromise(); } ); 게시글 페이지로 이동하면 지금까지 본 게시글들이 사라지고, 다시 돌아오면 load되면서 scrollHeight가 localStorage에 저장된 scroll 위치보다 작아지면서 이동하지 않는 현상이 발생합니다. 어떻게 하면 되는지 조언 부탁드립니다.

  • Next.js
  • react
  • express
  • nodejs
  • redux
바스니카 댓글 4 좋아요 1 조회수 2809

queue를 배우다가 궁금한게 생겨서 질문드립니다.

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

응급실 문제를 풀고 강의를 듣고 왔는데요 큐에서는 왜 get 매서드를 지원하지 않나요? FIFO에 어긋나나요? stack의 경우 vector를 확장해서 쓰기때문에 lifo에 어긋난다라는 글을 본적이 있어서 검색해보니 lifo는 삽입과 삭제의 경우에 해당하는거 같아서요 조회에는 해당하지 않는거 같은데 해당하나요? 아 물론 그냥 얘네가 그렇게 제공을 했다!! 하는거면 그런거겠지만요. 뭔가 그 개념적인? 이유가 있는지 궁금합니다 왜 궁금하냐면!! 어떻게보면 api?에서 제공하지 않는 get을 class를 만들어 편법?적으로 접근하신거같아서 입니다!! 조금 무례한 질문 죄송합니다

  • java
  • 코테 준비 같이 해요!
영환 댓글 1 좋아요 0 조회수 460

querydslConfig

해결됨

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요 강사님. build.gradle을 build.gradle.kts로 변경하고 QuerydslConfig 를 확인해보니 @Configuration data class QuerydslConfig( private val em: EntityManager ) { @Bean fun querydsl(): JPAQueryFactory { return JPAQueryFactory(em) } } -> em 부분에 빨간색 밑줄이 뜨고 Could not autowire. No beans of 'EntityManager' type found. 에러가 뜨더라구요. 어떤 부분을 변경해야 빨간 밑줄이 삭제될까요?

  • spring-boot
  • kotlin
  • java
  • spring
  • refactoring
하하하 댓글 1 좋아요 2 조회수 674

코드 제공

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

익숙한 내용은 강의를 보면서 코드를 따라치기 번거로워서 그런데 강의하시는 코드를 깃허브로 제공받을 수 있을까요?

  • Kafka
  • msa
  • JPA
  • architecture
  • spring-cloud
  • spring-boot
khss4008 댓글 1 좋아요 0 조회수 624

predict 와 predict_proba 차이

해결됨

한 방에 끝! 빅데이터분석기사 실기 작업형

predict 와 predict_proba 차이 강의자료에 짧게 있지만 잘 이해가 안되서요 자세하게 차이를 알고 싶습니다! 그리고 다중분류일때 사용하는법도 알고 싶습니다! 다중분류일때 predict_proba 를 사용해서 값이나오면 그값이 의미하는것이 무엇인지요~

  • bigdata
mouse 댓글 1 좋아요 0 조회수 11599

디자인 패턴 자바 문의

해결됨

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

안녕하세요 좋은 강의 감사합니다! 디자인 패턴은 JS로만 제공되는건가요?

  • 기술면접
  • 운영체제
  • 면접
심야 댓글 1 좋아요 0 조회수 327

공용계정 생성 문의

미해결

3명이서 하나의 계정으로 관리 및 강의결제 하려고 하는데 이용방법이 있을까요?

이준수 댓글 0 좋아요 0 조회수 485

채널 생성시 channelData.map is not a function

미해결

Slack 클론 코딩[실시간 채팅 with React]

채널생성 클릭하면 channeldata.map is not a function이라고 에러가 뜨는데 channelData뿌려지는곳에 ?옵셔널도 줬고.. 아래처럼 잘 작성한것같은데 어딜 놓쳤는지 모르겠습니다. 새로고침하면 추가된 채널명이 출력됩니다. workspace import fetcher from '@utils/fetcher'; import axios from 'axios'; import React, { FC, useCallback, useState } from 'react'; import { Navigate, useParams } from 'react-router-dom'; import useSWR from 'swr'; import { AddButton, Channels, Chats, Header, LogOutButton, MenuScroll, ProfileImg, ProfileModal, RightMenu, WorkspaceButton, WorkspaceModal, WorkspaceName, Workspaces, WorkspaceWrapper, } from './styles'; import gravatar from 'gravatar'; import Menu from '@components/menu'; import { Link } from 'react-router-dom'; import { IChannel, IUser, IWorkspace } from '@typings/db'; import { Button, Input, Label } from '@pages/signup/styles'; import useInput from '@hooks/useInput'; import Modal from '@components/modal'; import { toast } from 'react-toastify'; import CreateChannelModal from '@components/createChannelModal'; const Workspace: FC = ({ children }) => { const { workspace, channel } = useParams<{ workspace: string; channel: string }>(); const { data: userData, error, mutate } = useSWR<IUser | false>('/api/users', fetcher, { dedupingInterval: 2000 }); const { data: channelData } = useSWR<IChannel[]>(userData ? `/api/workspaces/${workspace}/channels` : null, fetcher); if (!userData) { return <Navigate to="/login" />; } const [showUserMenu, setShowUserMenu] = useState(false); const [newWorkspace, onChangeNewWorkspace, setNewWorkspace] = useInput(''); const [newUrl, onChangeNewUrl, setNewUrl] = useInput(''); const [showWorkspaceModal, setShowWorkspaceModal] = useState(false); const [showCreateChannelModal, setShowCreateChannelModal] = useState(false); const [showCreateWorkspaceModal, setShowCreateWorkspaceModal] = useState(false); //functions const onLogout = useCallback(() => { axios .post('/api/users/logout', null, { withCredentials: true, }) .then((res) => { mutate(res.data); }); }, []); const onClickUserProfile = useCallback(() => { setShowUserMenu(!showUserMenu); }, [showUserMenu]); const onClickCreateWorkspace = useCallback(() => { setShowCreateWorkspaceModal(true); }, []); const onCreateWorkspace = useCallback( (e) => { e.preventDefault(); if (!newWorkspace || !newWorkspace.trim()) return; if (!newUrl || !newUrl.trim()) return; //trim ->띄어쓰기 하나도 통과 돼버리는걸 막는다. axios .post( '/api/workspaces', { workspace: newWorkspace, url: newUrl, }, { withCredentials: true, }, ) .then((res) => { mutate(res.data); setShowCreateWorkspaceModal(false); setNewWorkspace(''), setNewUrl(''); }) .catch((err) => { console.dir(err); toast.error(error.response?.data, { position: 'bottom-center' }); }); }, [newWorkspace, newUrl], ); const onCloseModal = useCallback(() => { setShowCreateWorkspaceModal(false); setShowCreateChannelModal(false); }, []); const toggleWorkspaceModal = useCallback(() => { setShowWorkspaceModal(!showWorkspaceModal); }, [showWorkspaceModal]); const onClickAddChannel = useCallback(() => { setShowCreateChannelModal(true); }, []); return ( <div> <Header> <RightMenu> <span onClick={onClickUserProfile}> <ProfileImg src={gravatar.url(userData.email, { s: '28px', d: 'retro' })} alt={userData.nickname} /> {showUserMenu && ( <Menu style={{ right: 0, top: 38 }} onCloseModal={onClickUserProfile} show={showUserMenu}> <ProfileModal> <img src={gravatar.url(userData.email, { s: '28px', 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: IWorkspace) => { 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> {channelData?.map((v, idx) => ( <div key={idx}>{v.name}</div> ))} </MenuScroll> </Channels> <Chats> {children}</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} /> </div> ); }; export default Workspace; createChannelModal import Modal from '@components/modal'; import useInput from '@hooks/useInput'; import { Button, Input, Label } from '@pages/signup/styles'; import { IChannel, IUser } from '@typings/db'; import fetcher from '@utils/fetcher'; import axios from 'axios'; import React, { useCallback, VFC } from 'react'; import { useParams } from 'react-router-dom'; import { toast } from 'react-toastify'; import useSWR from 'swr'; interface Props { show: boolean; onCloseModal: () => void; setShowCreateChannelModal: (flag: boolean) => void; } const CreateChannelModal: VFC<Props> = ({ show, onCloseModal, setShowCreateChannelModal }) => { const [newChannel, onChangeNewChannel, setNewChannel] = useInput(''); const { workspace, channel } = useParams<{ workspace: string; channel: string }>(); const { data: userData } = useSWR<IUser | false>(`/api/users`, fetcher); const { data: channelData, mutate } = useSWR<IChannel[]>( userData ? `/api/workspaces/${workspace}/channels` : null, fetcher, ); const onCreateChannel = useCallback( (e) => { e.preventDefault(); axios .post( `/api/workspaces/${workspace}/channels`, { name: newChannel, }, { withCredentials: true }, ) .then((res) => { setShowCreateChannelModal(false); mutate(res.data); setNewChannel(''); }) .catch((err) => { console.dir(err); toast.error(err.response?.data, { position: 'bottom-center' }); }); }, [newChannel], ); return ( <Modal show={show} onCloseModal={onCloseModal}> <form onSubmit={onCreateChannel}> <Label id="channel-label"> <span>채널</span> <Input id="channel" value={newChannel} onChange={onChangeNewChannel} /> </Label> <Button type="submit">생성하기</Button> </form> </Modal> ); }; export default CreateChannelModal;

  • 웹팩
  • typescript
  • react
  • Socket.io
  • babel
  • 클론코딩
soh308 댓글 3 좋아요 0 조회수 647

가감속 테이블

미해결

HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌

안녕하세요 선생님 PWM 주기 변경을 보고 가감속 테이블을 만들어서 테스트를 진행할려고 하는데 속도가 너무 빨라서 그런지 몰라서 점점 빨라지다가 동작이 멈춰버리는데 혹시 요령이나 방법을 알 수 있을까요?

  • 드론-개발
  • iot
  • c
백승호 댓글 1 좋아요 0 조회수 456

상품이 아래로 나열되요 ㅜ

해결됨

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

똑같은 css파일인데 왜 다르게 나타날까요 ㅠㅠ 위가 처음에 react없이 그냥 html로만 만든거구요 아래가 react로 만든건데 같은 index.css파일인데 왜 다르게 나타날까요 ㅠㅠ

  • javascript
  • nodejs
  • react-native
  • 머신러닝 배워볼래요?
  • express
  • HTML/CSS
  • react
  • tensorflow
thhwang 댓글 1 좋아요 0 조회수 366

작동이 안되네요....ㅠㅠ

미해결

처음 만난 리액트(React)

Line 4:8: 'App' is defined but never used no-unused-vars 이러한 내용으로 에러가 뜨고 에러 라인 옆에 // eslint-disable-next-line << 주석도 달아봤는데 해결이 안됩니다..

  • HTML/CSS
  • react
  • javascript
김우람 댓글 4 좋아요 0 조회수 492

RSA 검증 기능 구현 - PublicKey.txt 에 의한 검증 46:20

미해결

스프링 시큐리티 OAuth2

/api/user get 요청시 JwtAuthorizationRsaPublicKeyFilter#doFilterInternal 코드를 블록에서 에러가 발생합니다. Jwt jwt = jwtDecoder.decode(getToken(request)); String username = jwt.getClaimAsString("username"); 디버깅으로 따라가봤습니다. JwtAuthenticationFilter#getToken 리턴값으로 (토큰값에서 Bearer를 없애고 리턴한 값) Jwt jwt = jwtDecoder.decode(getToken(request)); 위 코드를 실행했었어야 했는데 자꾸 프로그램이 종료가 됩니다? 원인을 알 수 가없습니다. 깃 클론 링크입니다. git@github.com :InSuChoe/spring-security-oauth2.git

  • java
  • spring-boot
  • spring
  • oauth
bigger 댓글 3 좋아요 0 조회수 664

WSASend

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

좋은 강의 감사드립니다. ::WSASend(_socket, wsaBufs.data (), static_cast<DWORD>(wsaBufs.size()), OUT &numOfBytes, 0, &_sendEvent, nullptr)) 전체적인 소스에서 데이터가 일부만 보내진 경우에 대한 처리가 안되어 있는것 같은데요, 일부만 보내지는 경우가 거의 희박하여 구현하지 않으신건지, 아니면 구현되어 있으나 제가 잘못 이해하고 있는건지 궁금합니다.

  • network
  • windows-server
  • MMORPG
달타냥 댓글 1 좋아요 0 조회수 421

SQL 인젝션 advance 마지막강의에

미해결

취미로 해킹#3(WebGoat)

나오는 첫번째 방법 혹시 따로 알려주실 수 있나요?

  • 모의해킹
  • webgoat
고대현 댓글 1 좋아요 0 조회수 369

인기 태그

인프런 TOP Writers

주간 인기글