inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

배열에서 사용하는 length는 무엇인기 궁금합니다.

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

안녕하세요, 배열에서 당연하게 쓰고 있다가 문득 궁금증이 생겨서 질문을 드립니다. 배열을 생성하고 해당 배열의 길이를 알고 싶을 때, 자주 쓰던 length가 어디서 나온 것인기 궁금합니다. String 객체 같은 경우 String a = "example"; int length = a.length(); 다음과 같이 length() --> 메서드임을 알 수가 있는데 배열에서 사용하는 length 같은 경우는 int[] a = new int[5]; int length = a.length; 다음과 같이 소괄호() 없이 사용을 하게 되는데, 이게 뭔지 궁금해서 IDE 에서 command 클릭을 해도 해당 메서드의 출처를 알 수 가 없어 질문을 드립니다. 배열에서 사용하는 length 같은 경우 자바 자체적으로 있는 static 메서드 같은 존재인가요?

  • java
  • 객체지향
노동준 댓글 1 좋아요 1 조회수 119

출력값

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

반복문 + 조건문 문제풀이 14분 쯤에 printf("%\n", sum);을 출력 할 때 출력값: 135 이렇게 적어주시는데 그냥 숫자만 답이 되는 거죠? 출력값:은 코드에 따로 적혀있지않아서요 ..!

  • python
  • java
  • c
  • 정보처리기사
SS0615 댓글 2 좋아요 0 조회수 140

css 파일 작성시 > 표시 여부

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

안녕하세요. 투두리스트 ui 구현 중 질문이 생겨 댓글 남깁니다 "Header.css" 파일은 h1 태그에 접근 시 ".Header > h1" 과 같이 > 표시를 사용하는데 "Editor.css" 파일은 > 표시 없이 그냥 ".Editor input" 로 작성하시더라구요 이 둘의 차이가 뭔가요? 좋은 강의와 친절한 답변 항상 감사드립니다 :) 🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • javascript
  • react
  • node.js
황유나 댓글 1 좋아요 0 조회수 296

배수

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

반복문+조건문 문제풀이 9:31초 부분 질문입니다. 2의 배수 3의 배수를 구하고 6의 배수를 제외할 때 2의 배수와 3의 배수에서 겹치는 부분은 빼고 그 뺀 수들 중에서 6의 배수들을 제거 해야하나요? 처음 문제에서 2의 배수 3의 배수를 or 해서 중복이 되는 숫자를 제거하고 그 중에서 6의 배수의 개수를 빼서 개수를 적었던 문제가 있었는데 동일하게 작용하는 지 궁금합니다!

  • python
  • java
  • c
  • 정보처리기사
SS0615 댓글 2 좋아요 0 조회수 104

로컬스토리지

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

import { Route, Routes } from "react-router-dom"; import { useReducer, useRef, createContext, useEffect, useState } from "react"; import Home from "./pages/Home"; import New from "./pages/New"; import Diary from "./pages/Diary"; import Notfound from "./pages/Notfound"; import Edit from "./pages/Edit"; const mockData = [ { id: 1, createdDate: new Date("2024-10-01").getTime(), emotionId: 1, content: "1번일기 내용", }, { id: 2, createdDate: new Date("2024-10-10").getTime(), emotionId: 2, content: "2번일기 내용", }, { id: 3, createdDate: new Date("2024-09-09").getTime(), emotionId: 3, content: "3번일기 내용", }, { id: 4, createdDate: new Date("2024-10-04").getTime(), emotionId: 3, content: "3번일기 내용", }, ]; function reducer(state, action) { let nextState; switch (action.type) { case "INIT": { return action.data; } case "CREATE": { nextState = [...state, action.data]; break; } case "UPDATE": { nextState = state.map((item) => item.id === action.data.id ? action.data : item ); break; } case "DELETE": nextState = state.filter((item) => item.id !== action.id); break; default: return state; } localStorage.setItem("diary", JSON.stringify(nextState)); return nextState; } export const DiaryStateContext = createContext(); export const DiaryDispatchContext = createContext(); function App() { const [isLoading, setIsLoading] = useState(true); const [data, dispatch] = useReducer(reducer, []); const idRef = useRef(0); useEffect(() => { const storedData = localStorage.getItem("diary"); if (!storedData) { setIsLoading(false); return; } const persedData = JSON.parse(storedData); if (!Array.isArray(persedData)) { setIsLoading(false); return; } let maxId = 0; persedData.forEach((item) => { if (Number(item.id) > maxId) { maxId = Number(item.id); } }); idRef.current = maxId + 1; dispatch({ type: "INIT", data: persedData, }); setIsLoading(false); }, []); const onCreate = (createdDate, emotionId, content) => { dispatch({ type: "CREATE", data: { id: idRef.current++, createdDate, emotionId, content, }, }); }; if (isLoading) { return <div>데이터 로딩중입니다...</div>; } const onUpdate = (id, createdDate, emotionId, content) => { dispatch({ type: "UPDATE", data: { id, createdDate, emotionId, content, }, }); }; const onDelete = (id) => { dispatch({ type: "DELETE", id, }); }; return ( <> <DiaryStateContext.Provider value={data}> <DiaryDispatchContext.Provider value={{ onCreate, onUpdate, onDelete }}> <Routes> <Route path="/" element={<Home />} /> <Route path="/new" element={<New />} /> <Route path="/diary/:id" element={<Diary />} /> <Route path="/edit/:id" element={<Edit />} /> <Route path="*" element={<Notfound />} /> </Routes> </DiaryDispatchContext.Provider> </DiaryStateContext.Provider> </> ); } export default App; 질문폭탄 죄송합니다ㅠㅠㅠ 왜 저는 새로고침하면 빈배열로 화면에 나타날까요? 로컬스토리지에 저장은 되더라구요 그리고 let nextState; 이렇게 저장하면 state값이 바뀔 때 nexState도 초기화 되지 않나요? 초기화 되고 나서 값을 저장한 후 사용해서 상관이 없는건가요?

  • javascript
  • react
  • node.js
2145007 댓글 2 좋아요 0 조회수 255

다크모드 적용

해결됨

손에 익는 Next.js - 블로그 만들기

선생님 혹시 next-theme 사용 안 하시는 이유가 있을까요? 궁금합니다...!!

  • react
  • 블로그
  • next.js
youre8090 댓글 2 좋아요 1 조회수 400

PDF 수업 자료 오타 제보

미해결

김영한의 실전 자바 - 중급 1편

8. 중첩 클래스, 내부 클래스 2의 30페이지 소제목에 오타가 있습니다 람다(lamba) -> 람다(lambda) 사소한 오타지만 수정되면 좋을 것 같습니다. 강의 재밌게 듣고 있습니다. 감사합니다

  • java
  • 객체지향
이무준 댓글 1 좋아요 0 조회수 128

undefined일 경우

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

const Diary = () => { const params = useParams(); const nav = useNavigate(); const currentDiaryItem = useDiary(params.id); if (!currentDiaryItem) { return <div>데이터로딩중</div>; } const { createdDate, emotionId, content } = currentDiaryItem; const Edit = () => { const nav = useNavigate(); const { onDelete, onUpdate } = useContext(DiaryDispatchContext); const params = useParams(); const currentDiaryItem = useDiary(params.id); Diary컴포넌트와 Edit컴포넌트 둘 다 useDiary로부터 currentDiaryItem을 받아오고 있는데, Diary는 undefined일 때경우를 처리해주고 있는데, Edit컴포넌트는 그렇지 않습니다. useEffect(() => { if (initData) { // undefined일 때 setInput({ ...initData, createdDate: new Date(Number(initData.createdDate)), }); } }, [initData]); 위코드는 Editor컴포넌트 안의 코드입니다. 여기서 undefined룰 걸려주기 때문에 Edit컴포넌트에서 처리를 안해도 되는 건가용?

  • javascript
  • react
  • node.js
2145007 댓글 2 좋아요 0 조회수 234

Diary.jsx

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

import { useContext, useState, useEffect } from "react"; import { DiaryStateContext } from "../App"; import { useNavigate } from "react-router-dom"; const useDiary = (id) => { const data = useContext(DiaryStateContext); const [currentDiaryItem, setCurrentDiaryitem] = useState(); const nav = useNavigate(); useEffect(() => { const currentDiaryItem = data.find( (item) => String(item.id) === String(id) ); if (!currentDiaryItem) { window.alert("존재하지 않는 일기입니다."); nav("/", { replace: true }); } setCurrentDiaryitem(currentDiaryItem); }, [id, data]); //data는 왜쓰는지? return currentDiaryItem; }; export default useDiary; 강의 내용코드입니다. 현재의 일기를 가져오는 커스텀훅입니다. 여기서 문제는 "존재하지 않는 일기입니다"라는 경고창이 2번뜹니다. http://localhost:5173/diary/1234 처럼 아무숫자나 입력했을 때 그리고 http://localhost:5173/ 으로 이동한 후에 경고창이 한번 더 뜹니다. useEffect가 id가 변함에 따라 계속 실행되어서라는 이유로 알고 있습니다. 그러면 왜 선생님코드에서는 경고창이 2번 뜨지 않았을까용? 그리고 의존성 배열에 [id, data] 2가지를 담는 이유가 궁금합니다. 현재 prams.id가 바뀔 때만 작동하게 해도 되지 않을까요? 사용자가 data를 수정하면서 페이지의 파라미터가 바뀌는 상황이 동시에 일어나지 않을 거 같아서요

  • javascript
  • react
  • node.js
2145007 댓글 1 좋아요 0 조회수 134

Order import 문제

미해결

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

<orderServiceTest> <OrderService> Order의 import를 domain에 있는 Order class로 했는데 왜 위와 같은 오류가 나는지 모르겠습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
gg 댓글 1 좋아요 0 조회수 85

로그인 인증 후 처리 질문입니다.

미해결

스프링 시큐리티 OAuth2

처음 로그인 인증처리받을때는 인가서버로부터 code를 받기 전에 유저의 동의가 필요하므로 유저가 아이디, 비밀번호를 입력하는 과정이 필요합니다. 그리고 이후 로그인 인증처리 완료되면 서버 세션에 SecurityContext 가 저장되고 인가서버에도 해당 유저의 세션이 저장되고 인증처리가 끝납니다. 근데 서버를 종료하고 재시작하면 서버의 세션이 초기화되므로 인증처리가 처음부터 다시 시작해야 될거같은데 서버 종료 후 다시 인증처리 받기 시작할땐 유저가 아이디, 비밀번호를 입력하는 과정 없이 authorizationEndpoint로 인가서버에 요청하기만 하면 인증과정이 성공합니다. 이유가 뭔가요?

  • java
  • spring
  • spring-boot
  • oauth
에욱 댓글 1 좋아요 0 조회수 119

인증성공 후 로직 질문입니다.

미해결

스프링 시큐리티 OAuth2

지금 처음 인증성공받을때 인가서버로부터 accessToken 발급받고 이 토큰으로 유저정보 가져와서 인증성공후 securityContext, 세션에 저장합니다. 그리고 인증성공받은 이후에는 그러면 인증받았는지 안받았는지는 세션에서 SecurityContext 객체를 가져와서 인증여부를 체크하는건가요? 그렇다면 OAuth2 사용하지않고 그냥 Spring Security만 사용했을때랑 차이가 처음 인증과정만 달라지는거고 이후에는 똑같이 인증객체를 세션에 저장해서 사용하는거니까 인증후에는 로직이 똑같은건가요?

  • java
  • spring
  • spring-boot
  • oauth
에욱 댓글 2 좋아요 0 조회수 339

logoutHandler 질문입니다.

미해결

스프링 시큐리티 OAuth2

로그아웃 api 설정에선 logoutSuccessHandler, invalidateHttpSession, clearAuthentication, deleteCookies 만 설정했는데 logoutFilter에 왜 인가서버에 로그아웃을 요청하는 logoutHandler가 있는건가요? OAuth2 라이브러리 의존성 추가하면 자동으로 추가되는건가요? 맞다면 logout api설정으로 먼저 클라이언트에서 세션, 쿠키, 인증 객체를 제거하고 이후 인가서버에서 해당 유저의 세션을 제거하는 logoutHandler가 호출돼서 인가서버에서 세션 삭제하고, 로그아웃 성공했으니 logoutSuccessHandler에서 설정한 RedirectUri로 이동하는건가요? 아니면 클라이언트에서 인증정보 제거후 logoutSuccessHandler에 설정한 객체가 호출돼고 이 Handler에서 인가서버에 세션제거하고 redirect하게 하는건가요?

  • java
  • spring
  • spring-boot
  • oauth
에욱 댓글 1 좋아요 0 조회수 202

MemberService 통합테스트에 MemberRepository 질문 입니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] MemberService 통합 테스트시 MemberService와 MemberRepository를 @Autowired로 의존성을 주입하는데요 여기서 MemberRepository를 주석처리 해도 테스트가 잘 되는데 SpringConfig에서 주입해주기 때문일까요?

  • java
  • spring
  • mvc
  • spring-boot
박기자 댓글 2 좋아요 0 조회수 194

개행

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

19.:12초에서 "Float: %.2f\n", fume): 이부분에서 \n을 소수점 다음에 바로 쓰고 fnum을 써도 출력하고 그 다음 개행한 후 다음 코드를 출력하는 것일까요? fnum보다 \n 이 먼저 쓰여도 그런 건지 궁금합니다!

  • java
  • c
  • 정보처리기사
SS0615 댓글 2 좋아요 0 조회수 159

C언어 배열(문자열) 포인터

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

int array[] = {10, 20, 30, 40, 50} int *ptr = array ; printf("%d\n", ptr); printf("%d\n", *ptr); 위와 같을 경우에는 출력값은 ptr > 주소 = 10 (이해됨) *ptr > 값 = 10 *ptr 이거는 값이 나와야하는데 왜 10이 나오는건가요?

  • python
  • java
  • c
  • 정보처리기사
ssssso 댓글 2 좋아요 0 조회수 187

노드와 연결1 - 질문

해결됨

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 궁금증이 생겨 질문을 남깁니다. 노드와 연결1 노드를 배우면서 스트링 빌더의 append메서드가 생각이 났습니다. 그래서 중급1편에 배운 append메서드에 대해서 찾아보고 작동 방법에 대해서 찾아보고 자기 자신을 참조해서 스트링 빌더가 돌아가는것을 확인을 할수가 있었습니다. 이런 것 을 보고 노드가 '스트링 빌더 에서 파생된 작품?(응용) 아닌가' 라는 생각이 듭니다. 그래서 여기서 질문이 첫 번째 노드가, 스트링 빌더나, 메서드 체인닝 기법에서 파생된 작품인가요? 두 번째 스트링 빌더의 apeend의 this와, node의 new의 차이점이라고 할까요? 이런 것이 어떻게 다른지 비교해서 가르켜 주시면 안될까요? 뭔가 대조 되는 게 있는 것 같아서, 혹 이 두가지 가 대조가 가능하다면 대조 설명을 해주시면 감사하겠습니다. 추가1 다음 강의 에서 toString할때 스트링 빌더 및 append메서드가 나와서.. 좀 당황스럽기는 한데. 이거 때문에. 생각 난 것은 아닙니다. 중급1편에서 스트링 빌더를 공부할 때 sb.append(내용).append(내용).append(내용); first.next.next = new Node("C"); 이거랑 비슷해서 생각이 난거 입니다. 그래서 중급1편의 코딩 내용들을 뒤져본거고, pdf도 뒤져봤습니다. 증거 사진 이요.. 답변 부탁 드립니다.

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
생각하는자 댓글 2 좋아요 0 조회수 207

수업 자료에 정말 사소한 오타가 있는데, 제보해도 되나요?

미해결

김영한의 실전 자바 - 기본편

1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] [1. 클래스와 데이터.pdf - 23P - 객체 vs 인스턴스 문단] 사진의 두번째줄 마지막 부분을 보시면, "클래스로부터 생성되다는 점을 명확히 하기 위해..." 라고 되어 있습니다. 저도 "~~님 도움"에 올라가고 싶어요. 이정도론 못올라갈까요

  • java
  • 객체지향
박상원 댓글 2 좋아요 0 조회수 191

does not provide an export named 'userReducer'

미해결

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

does not provide an export named 'userReducer' 라는 에러가 뜹니다. 맞게 작성한거 같은데... 설정을 잘못했을까요?

  • react
  • redux
  • node.js
  • 웹앱
  • mongodb
Seungjoo Lee 댓글 2 좋아요 0 조회수 235

인기 태그

인프런 TOP Writers

주간 인기글