java.util
해결됨
깡샘의 쌩초보 안드로이드 One Day Class – Part2 코틀린 이해하기
java.util은 무엇인가요 이것도 파일 명인가요?
- android
- kotlin
- lambda
- kotlin-companion
- nullsafe
172만명의 커뮤니티!! 함께 토론해봐요.
해결됨
깡샘의 쌩초보 안드로이드 One Day Class – Part2 코틀린 이해하기
java.util은 무엇인가요 이것도 파일 명인가요?
해결됨
깡샘의 쌩초보 안드로이드 One Day Class – Part2 코틀린 이해하기
3-1에서 import는 왜 필요하고 /뜻은 무엇인가요 { }
해결됨
[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
강의 수강중인데 koreanjson.com 참고사이트가 사이트에 연결할 수 없음이라고 뜨네요 다른 방법이 있을까요?
해결됨
김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 정보] 질문 내용의 위치: 3. 함수형 인터페이스.pdf _ 문제와 풀이 _ 문제1 - FilterExampleEx2 제가 작성한 소스코드: https://inf.run/GQrVP 질문 요약: 1) Predicate 말고도 추가적으로 filter() 메서드도 BiFunction 함수형 인터페이스로 대체했는데, 이 정도까지 (메서드까지) 대체하는 것은 너무 과한 행동인지 궁금합니다. 2) BiFunction.apply() 를 호출하여 필터링 하는 방식은 filter() 메서드로 필터링하는 방식보다 직관성이 떨어지기 때문에 권장되지 않는지 또는 그냥 사용해도 되는지 궁금합니다. [질문 내용] 안녕하세요. 기존 FilterExampleEx2 의 모든 부분을 자바가 제공하는 함수형 인터페이스로 대체하는 문제로 잘못 이해해서 filter(리스트, Predicate) 메서드까지 BiFunction<리스트, Predicate, 리스트> 함수형 인터페이스로 대체를 했습니다. 이때 제가 생각했을 때는 크게 두 가지 부분이 문제가 될 수도 있겠다고 생각을 했는데, 실제로도 문제가 될 위험이 있는지 궁금해서 질문드립니다. (필터링 결과는 동일합니다.) (제가 추측한) 문제 상황1. 너무 과한 대체 메서드까지 함수형 인터페이스로 대체하는 것은 너무 과하다. (제가 추측한) 문제 상황2. 직관성의 저하 (영한님 답안의 경우) filter() 메서드를 호출하는 방식의 경우 메서드명이 filter 로 직관적이다. (제 답안의 경우) BiFunction.apply() 를 호출하는 방식의 경우 apply() 라는 메서드명만 보고는 "필터링한다"라는 느낌을 받을 수 없어 직관적이지 못하다. 제가 작성한 소스코드는 [질문 정보] 부분에 구글 드라이브 링크를 첨부했으나, 혹시 몰라 질문글에도 작성해봅니다. package lambda.ex3; import java.util.ArrayList; import java.util.function.BiFunction; import java.util.function.Predicate; import java.util.List; // 내 풀이 public class FilterExample { public static void main(String[] args) { List<Integer> numbers = List.of(-3, -2, -1, 1, 2, 3, 5); System.out.println("원본 리스트: " + numbers); // predicate까지 parameter로 받으면 더 유연하다. BiFunction<List<Integer>, Predicate<Integer>, List<Integer>> listFilter = (numberList, predicate) -> { ArrayList<Integer> filteredList = new ArrayList<>(); for (Integer number : numberList) { if (predicate.test(number)) filteredList.add(number); } return filteredList; }; // 조건 1. 음수(negative)만 골라내기 Predicate<Integer> isNegative = n -> n < 0; List<Integer> negatives = listFilter.apply(numbers, isNegative); System.out.println("음수만: " + negatives); // 조건 2. 짝수(even)만 골라내기 Predicate<Integer> isEven = n -> n % 2 == 0; List<Integer> evens = listFilter.apply(numbers, isEven); System.out.println("짝수만: " + evens); } }
해결됨
[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)
프로젝트 생성 시 이제 npx create-next-app@latest next-tutorial 를 하면 이제 강의 만들던 시기의 설정과 다르게 되는 부분이 꽤나 있는데, 해당 부분에 대해서 강의 노트 업데이트를 해주실 수 있으실까요 ?ㅠ tailwind 설정이나 , latest 로 설정되는 라이브러리들의 버전에 따라 설정 방식이 다른 것 같습니다 ✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다.
해결됨
한 입 크기로 잘라먹는 Next.js
2.2 강의를 들으면서 실습하려고 프로젝트를 실행했는데 npm run dev로 입력해도 서버가 열리지 않은 건지 경로로 들어가면 404: This page could not be found. 라고 화면에 띄어져 있습니다. 프로젝트 실행이 어려워 진도가 막혔는데 어떻게 해결해야 될까요...? ㅠㅠ 아래는 터미널에 출력된 글이고 처음에는 Ready in 2.7s 까지 작성되어 있다가 위의 Local 경로로 접속한 뒤에 컴파일 에러 문구가 출력되었습니다! 비슷한 오류가 있나 질문답변 글을 찾아봤을 때 .next 파일을 지우고 다시 실행하는 글을 발견하여 여러 차례 지우고 실행할 때는 아래 사진처럼 나왔습니다!!
해결됨
3시간 만에 끝내는 Cursor 완벽 가이드
안녕하세요, 수강중인 학생입니다. 강사님께서 만들어주신 영상에서 대부분이 현재 기능이 바뀌어서 따로 하나하나 찾아가며 공부하고 있습니다. 때문에 많이 불편하다고 느낍니다. 특히 rules for ai는 한참을 찾다가 결제까지 했는데 알고보니 기능이 바뀌었더군요, 이 부분이라도 현재 어떻게 사용해야 하는지 알고싶습니다.!
해결됨
김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
[오타 제보] 대상 강의록: 3. 함수형 인터페이스.pdf 대상 위치: #특화 함수형 인터페이스 - ##Operator를 제공하는 이유 - 1. 의도(목적)의 명시성 중 세 번째 글머리 대상 페이지: p.23 오타 내용 수정 전: 만약 모두 Function <T, R> 나 BiFunction<T, T, T>만으로 처리한다면, ... 수정 후: 만약 모두 Function <T, T> 나 BiFunction<T, T, T>만으로 처리한다면, ... 입력과 리턴이 같은 XxxOperator 와 비교하는 문장이기 때문에 BiFunction<T, U, R> 을 BiFunction<T, T, T> 으로 표현했으니 Function<T, R> 도 Function<T, T> 으로 표현해야 될 것 같아서 제보합니다! 앞서 배웠던 제네릭이랑 연관된 부분을 배우니 특히 더 재밌습니다!!
미해결
한 입 크기로 잘라먹는 Next.js
해당 화면에서 강의와 비슷하게 검색기능을 누르거나 엔터키를 치면 search결과가 나오도록 코드를 짰는데, 에러도 나오지 않고 아무것도 나오지않아. 이리저리 해보다가 우선 문의를 남깁니다! 파일 구조는 아래와 같습니다! index.tsx import SearchableLayout from "@/components/searchable-layout"; import { ReactNode } from "react"; export default function Home() { return <h1>ONEBITE CINEMA</h1>; } Home.getLayout = (page: ReactNode) => { return <SearchableLayout>{page}</SearchableLayout>; }; searchable-layout.tsx import { useRouter } from "next/router"; import React, { ReactNode, useEffect, useState } from "react"; import style from "./searchable-layout.module.css"; export default function SearchableLayout({ children, }: { children: ReactNode; }) { const router = useRouter(); const [search, setSearch] = useState(""); const q = router.query.q as string; useEffect(() => { setSearch(q || ""); }, [q]); const onSubmit = () => { router.push(`/search?q=${search}`); }; const onChangeSearch = (e: React.ChangeEvent<HTMLInputElement>) => { setSearch(e.target.value); }; // Enter 키 입력 이벤트 const onkeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => { if (e.key === "Enter") { onSubmit(); } }; return ( <div> <div className={style.searchbar_container}> <input value={search} onChange={onChangeSearch} placeholder="영화를 입력해주세요..." onKeyDown={onkeyDown} /> <button onClick={onSubmit}>검색</button> </div> {children} </div> ); } global-layout import Link from "next/link"; import { ReactNode } from "react"; import style from "./global_layout.module.css"; export default function GlobalLayout({ children }: { children: ReactNode }) { return ( <div className={style.container}> <header className={style.header}> <Link href={"/"}>ONEBITE CINEMA</Link> </header> <main className={style.main}>{children}</main> </div> ); } search - index.tsx import SearchableLayout from "@/components/searchable-layout"; import { useRouter } from "next/router"; import { ReactNode } from "react"; export default function Page() { const router = useRouter(); const { q } = router.query; return <h1>검색결과 {q}</h1>; } Page.getLayout = (page: ReactNode) => { return <SearchableLayout>{page}</SearchableLayout>; }; 위와 같이 구성되어있고, 도저히 제가.. 찾지 못하여 문의드립니다 후.. 아마 input쪽이나 search.tsx에 문제가 있는거 같은데 좀 자괴감이 드네요.. 일어나서 다시한번 살펴볼 예정입니다! 다른분들 git도 궁금해서 봤는데 코드는 너무 똑같은데 대체 뭐가 다른 지 모르겠네요..
해결됨
김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
[오타 제보] 대상 강의록: 2. 람다.pdf 대상 페이지: p.40 의 main() 코드 블록 오타 내용 변경 전(1): // 1. 합 구하기 ( 초기값 0, 덧셈 로직) 변경 후(1): // 1. 합 구하기 ( 초깃값 0, 덧셈 로직) 변경 전(2): // 2. 곱 구하기 ( 초기값 0, 곱셈 로직) 변경 후(2): // 2. 곱 구하기 ( 초깃값 0, 곱셈 로직) 코드 블록 에서는 초기값 이라고 되어 있고, 바로 밑에 용어 - reduce, fold 부분에서는 초깃값 이라고 되어 있어서 저도 궁금해서 검색해봤는데 초깃값 으로 표기하는 것으로 확인됩니다. 이런 맞춤법은 명확한 기준이 없이 국립국어원 마음대로 정하기는 하던데 혹시 강의록에서 단어를 통일하실 때 도움이 될까 해서 제보합니다. 출처1: IT 글쓰기와 번역 노트 - 5.1. 맞춤법 - 값 <- 여기서 페이지 조금 내리다 보면 d. 사전에 ‘-값’으로 등재된 단어 부분에 있습니다. 출처2: 초기값 - TTA 정보통신 용어사전 - "초기값은 ... => 규범 표기는 '초깃값'이다." 출처3: 국립국어원 답변 - "'최댓값', '최솟값', '초깃값'이 표준어입니다 ..."
해결됨
[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 강의처럼 개인 개발자 비즈 앱 전환 버튼이 뜨지 않고 카카오 비즈니스 통합 서비스 약관 동의로 표시되어있는데,, 어떻게 해야 이메일 필수항목도 넣을 수 있을까요?
해결됨
[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. supabase에서 가입된 유저를 강제로 로그아웃 시키는 방법이 궁금합니다.
해결됨
한 입 크기로 잘라먹는 Next.js
갑자기 500에러가 뜨면서 강의랑 코드가 틀린게 없는데 뜨길래 뭐지 싶어서 찾아봤는데, .next쪽에 손상이 있어서 그럴 수 있다고 하여, .next를 없애고 다시 'npm run dev'로 빌드했더니, 강의대로 잘 작동하였습니다! 참고하실분들, 참고하시길..!
해결됨
[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 제목 그대로 DB에는 채팅이 잘 남고 있는데 화면에는 보이지 않습니다 console로 찍어봐도 빈배열을 반환하는데 이유가 뭘까요?? 강의를 돌려보고 gpt를 써도 원인을 못찾겠어요. 제가 생각했을때 채팅 목록을 나타내는 코드를 캡쳐해서 보내고 현재까지 문제생긴 부분을 커밋해둘테니 캡쳐사진으로 확인이 안되시면 제 깃헙에서 확인해주세요! 깃헙 링크
해결됨
김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
[질문 내용] 아래 사진과 같이 섹션1의 제목이 기본값으로 설정되어 있습니다. [사진: 자바 고급3편의 '커리큘럼' 목록에서 보이는 섹션들] .
해결됨
한 입 크기로 잘라먹는 Next.js
2.8 페이지별 레이아웃을 설정하는 방법을 듣고있는 학생입니다! getLayout이란 메서드를 레이아웃을 적용할 컴포넌트 객체에 생성해서 _app.tsx 파일에서 메서드를 통해 레이아웃을 적용시키는 방법이라는건 이해했습니다. 그런데 여기서 궁금했던 점이 특정 레이아웃을 적용하기 위해 페이지 마다 따로 코드를 작성해줘야 하는 방식이라면 그냥 레아이웃 컴포넌트를 적용시킬 컴포넌트의 최상위 요소로 감싸주는게 app.tsx에 추가로 코드를 작성할 필요도 없어 더 좋지 않나요? 그리고 리액트 라우터에서는 특정 레이아웃을 적용시킬 컴포넌트들을 <Route element={<Layout/>}><Route/> 이런 path가 없는 컴포넌트 안에서 감싸주는 방식을 사용하는걸로 알고 있습니다. 지금 배우는 방식보다 더 직관성이나 코드 길이 등에서 리액트 라우터가 더 좋은거 같은데 Next는 페이지별 레이아웃 설정방식이 getLayout로 설정하는것 밖에 없는건가요? 유지보수 할 때 특정 레이아웃이 적용된 페이지를 찾기 위해 getLayout을 사용한거라 보기에도 뭔가 애매하게 느껴지고 app.tsx에서 타입을 추가로 만들어줘야 해서 코드가 더 복잡해 보이는거 같습니다.
해결됨
김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 매개변수 전달관련 예제 출력할때 오타가 약간있는거 같습니다. System.out.println("person.introduceWithNumber = " + fun2.apply(person, 1)); // fun2로 변경
해결됨
한 입 크기로 잘라먹는 Next.js
안녕하세요! 이번 강의에서 동적 함수(쿠키, 헤더, 쿼리스트링)을 사용하는 컴포넌트가 포함된 페이지는 다이나믹 페이지라고 이해했습니다. 글을 찾아보니 middleware 에서 쿠키를 처리할 수 있다고 했습니다. 찾아보니 Middleware에서 쿠키를 처리할 수 있다 는 글을 봤는데, 이를 활용하면 동적 함수의 영향을 제거하여 정적 페이지로 만들 수 있는지 궁금합니다. 또한, 클라이언트 컴포넌트 측으로 뺴면 정적인 페이지로 만들 수 있는지 궁금합니다.
해결됨
한 입 크기로 잘라먹는 Next.js
안녕하세요. 클라이언트 컴포넌트 안에, 서버 컴포넌트를 import 할 수 없다 라는 주의 사항에 대해 궁금한 점이 있습니다. Next.js 공식문서에는 아래와 같이 클라이언트 컴포넌트 안에 서버 컴포넌트를 직접 Import해 사용할 수 없다 고 나와 있는데요. 공식문서 강의에서 실습했을 때는, 클라이언트 컴포넌트 안에서 서버 컴포넌트가 사용되는 경우, 자동으로 클라이언트 컴포넌트로 바뀌는 것을 확인했습니다. 그렇다면, 서버 컴포넌트가 클라이언트로 바뀔 수 있는 경우는 해당 패턴을 사용해도 되는 건가요? 아래와 같이 서버 컴포넌트의 기능을 사용한다면, 에러는 나지 않지만 fetch 요청이 여러 번 되는 등, 정상적인 동작이 되지 않는 것을 확인했습니다. 이런 경우에 한해 지양하면 될까요? 결과적으로, 서버 컴포넌트가 클라이언트 컴포넌트로 바뀔 수 있는 경우, 제대로 동작하지만, 지양하자 는 것으로 이해하면 될까요? // 클라이언트 컴포넌트 "use client"; import ServerComponent from "@/components/server-component"; export default function ClientPage() { console.log("클라이언트"); return ( <div> <h1>클라이언트</h1> <ServerComponent /> </div> ); } // 서버 컴포넌트 export default async function ServerComponent() { const res = await fetch("https://jsonplaceholder.typicode.com/todos/1"); const value = await res.json(); console.log(value); return ( <h1>서버 컴포넌트</h1> ); } 감사합니다.
해결됨
한 입 크기로 잘라먹는 Next.js
안녕하세요! 다이나믹 페이지에서 데이터 패칭이 오래 걸리는 문제를 해결하기 위해, Next에서 임시로 로딩 UI를 보여주고, 추후 패칭이 완료되면 스트리밍으로 업데이트하는 것으로 이해했습니다. 로딩 UI는 데이터 패칭이 느릴 때 유용하지만, 패칭이 빠른 경우 오히려 깜빡거리는 느낌이 들어 사용자 경험 측면에서 안 좋을 수 있다고 느꼈습니다. 물론 제가 생각했을 때 가장 베스트는 API 속도를 측정하여 특정 시간 이상인 경우에 스트리밍 기술을 적용하고, 그 외에는 안하는 것이 좋다고 생각을 했지만, 측정하기도 힘들 뿐더러, 사용자 네트워크도 신경을 써야 하기 때문에 이러한 방법은 어렵다고 생각을 했습니다. 이러한 문제에서 강사님의 생각을 듣고 싶어 질문드리게 되었습니다.