묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결함수형 프로그래밍과 JavaScript ES6+
함수형 프로그래밍 심화 강의 자료 추천
좋은 강의 덕분에 함수형 프로그래밍에 더 관심을 가지게 됐습니다. 😊함수형 프로그래밍을 더 깊에 배우고 싶은데 추천해주실만한 책이나 강의가 있을까요?
-
해결됨프론트엔드 마스터클래스
학습자료는 따로 공유가 안되는건가요?
그 전까지는 크게 불편함이 없었는데 이번 장에 위에 설명이 건너뛰기가 돼서 놓치게 되네요. 다양한 학습자료 제공에 miro형식 파일이라고 강의 소개에 적혀있긴한데, 따로 첨부파일이나 링크는 등록이 안돼있는것 같아서요.
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
디폴트 메서드를 사용한 리펙토링
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요! 최근 프로젝트를 진행하며 코드 구조를 정리하는 과정에서 궁금한 점이 생겨 질문드립니다.현재 상황PostStrategy 인터페이스를 만들고 3개의 구현체를 두어, 홈 피드에 게시글을 조회하는 전략을 분리했습니다.인터페이스에는 homePosts() 관련 메서드가 여러 버전으로 존재합니다. (homePosts, homePostsV2, homePostsV3 등)public interface PostStrategy { boolean isExecutable(UserContext userContext); boolean requiresAuthentication(); PostSummaryResponse homePosts(int size, Long cursorPostId, String username); PostSummaryResponse homePostsV2(int size, Long cursorPostId, String username); PostSummaryResponse homePostsV3(int size, Long cursorPostId, UserContext userContext); ... } 문제 상황구현체 중 ForYouPostStrategy만 V2와 V3를 실제로 사용하고 있고, 나머지 구현체에서는 homePosts()만 호출하는 식으로 처리하고 있습니다. 처음엔 단순했는데 버전이 늘어나면서 인터페이스가 점점 커지고 불필요한 코드가 많이 생긴 상황입니다. 궁금한 점PostStrategy 인터페이스에 default 메서드를 정의해 공통 로직을 담고, 특정 전략에서만 필요한 부분을 오버라이드하는 방식으로 해도 괜찮을지 궁금합니다.또는 인터페이스가 아닌 다른 방식으로 리팩토링하는 것이 더 적절할지 궁금합니다.
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
실무에서의 커스텀 Collector 사례 여부
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요!현재 Stream API Collector 65강까지 수강 완료한 수강생입니다.먼저 강사님 덕분에 자바에 대해서 계속 공부하는 시간이 정말 즐겁니다! 감사합니다! 아래와 같은 질문 사항이 있어 남깁니다!실무에서 Collector를 직접 구현해야 하는 상황은 어떤 경우가 많나요?직접 Collector를 구현해야 하는 상황이 생긴다면 병렬 스트림에서도 안전하게 동작하도록 어떤 설계 포인트를 가장 중요하게 봐야 할까요? 다소 정답이 없는 질문이지만 방향성과 강사님의 생각이 궁금합니다! 😃감사합니다.
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
IntelliJ 한글 깨지는 현상 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이전에 Spring MVC 강의에서는 한글이 잘 나왔었는데, Java 강의 시 설정을 잘 못 헀는지.. 추가 설정이 필요한건지,한글이 깨지는 현상이 있어서, 처리법이 따로 있는지 문의 드립니다.Java는 강의 따라하면서 21로 설정 한 상태입니다.
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
함수형 프로그래밍 적용 범위/원칙
질문 1. 자바는 인터페이스와 클래스로 설계와 구현을 나눠 유지보수의 효율성을 높이는 언어인데, 함수형 프로그래밍은 언제 쓸까요? 실무에서 함수형을 적용하는 범위/원칙(불변, 부작용 분리 등)가 궁금합니다! 질문 2. stream vs for-loop 선택 기준이 궁금합니다. 가독성을 위해서 또는 단순 변환 및 집계일 때 이외에도 스트림을 사용하는지, 성능적으로는 어떤 것이 더 좋은지 등도 궁금합니다.
-
미해결코틀린 함수형 프로그래밍 - 입문편
git 업로드 가능한가요?
강의 들으며 학습하는 내용(강의 관련 코드)를 개인 git에 업로드 하여도 되나요?
-
미해결함수형 프로그래밍과 JavaScript ES6+
함수형 자바스크립트 프로그래밍 책
안녕하세요 강의 잘 보고 있습니다 🙂 멀티패러다임 프로그래밍 책을 최근에 보고 더 자바스크립트 근간을 공부할 필요가 있구나 싶어서 이 강의도 듣게 되었습니다. 다름이 아니라 '함수형 자바스크립트 프로그래밍'이라는 책도 출간이 되어 있는 걸로 알고 있는데, 혹시 강의와 같은 내용일까요?
-
해결됨프론트엔드 마스터클래스
이벤트 루프 실행 관련
저는 풀스택 주니어입니다.특수 목적을 위해 바닐라js에서 ,document.innerHTML이나 element.remove(), element.append() 등으로 html element의 생성과 삭제가 빈번한로직을 다루고 있습니다.이 때 종종 브라우저 렌더링의 실행 완료에 대해 명확하게 알지 못해서 찝찝한 채로 브라우저에 렌더링 일을 시키고 있습니다. 그러던 중 이벤트 루프 관련 3개 강의(16,17,18강) 를 듣고 복습차, 17강으로 다시 돌아와서 보는 2분18초 경에 브라우저 랜더링에 대해 궁금한게 생겼습니다. 예를 들면const mySchedule = async () => { await randeringPipelineTask(); //랜더링파이프라인 await macroTask(); // 매크로태스크(); }으로 구성된 mySchedule 메서드가 있다고 가정하겠습니다.macroTask()는 renderingPipelineTask()의 브라우저 페인트까지 모두 완료를 확인한 후에 실행될까요? 아니면 JS엔진이라는 것은, 페인트는 브라우저에 렌더링을 해달라고 부탁까지만하고 macroTask()를 실행할까요?('실행의 시작'과 '실행의 끝'을 나눠서 생각해서 그런지 생각하면 할수록 햇갈립니다.)
-
해결됨프론트엔드 마스터클래스
Map 강의 누락된 것 같습니다.
안녕하세요! 강의가 누락된 것 같아 글 작성합니다. 확인부탁드릴게요! 30강 Map 강의로부터 31강까진 문제없이 연결되는데, 32. WeakRef + FinalizationRegisty 강의시작부터 연결이 매끄럽지 못합니다. 뜬금없이 대안?에 대해서 나오는데 Map 예제부분과 WeakMap 부분이 누락된것같습니다.
-
해결됨김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
스트림에 대해서 질문(float)은 사용하는지
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 기본형 특화 스트림 을 공부 하다가 갑자기 float가 생각나서 질문을 드립니다. 저가 코드를 쳐보니 스트림을 이용해서 스트림<Float>을 만들 수 있다는 것을 확인하였습니다.현재 개발에서 float 및 스트림<Float>을 사용할까 입니다. double형도 있지만 float도 있어서 사용 할수 도 있겠다 싶어서요. 그래서 질문은현시점에서 스트림<Float>및 Float 를 만들어서 어느 정도 사용하는지 알고 싶습니다. 답변 부탁 드립니다.
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
[자료 패키지 누락] 2.람다 자료에서 문제 패키지명 생략 (25page)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 문제 2. 값매개변수화 - 다양한단위를매개변수로받기 ( 2. 람다 자료 25page)예시코드 부분에서 다른 문제에서는 패키지가 import 되어 있는 방면 25 page에 있는 예시문제에서는 package lambda.ex1; 없어서이렇게 남기게 되었습니다!
-
해결됨프론트엔드 마스터클래스
Variable Object 질문
안녕하세요, 좋은 강의 감사합니다.실행 컨텍스트 부분에서 궁금한 점이 있어서 질문드립니다. 강의에서 Variable Object를 설명해주셨는데, 제가 개인적으로 찾아본 자료들에서는 ES2015부터 실행 컨텍스트가 Lexical Environment, Variable Environment, this binding으로 구성된다고 나와 있더라고요.Variable Object는 그 이전 스펙에서 사용되던 용어인 것 같은데, 혹시 강의에서 이 개념을 선택해서 설명하신 특별한 교육적 의도가 있으셨을까요?제가 아직 깊이 이해하지 못해서 그런데, 두 방식 중 어떤 것이 JavaScript 동작 원리를 학습하는 데 더 도움이 되는지, 또는 어떤 차이점들이 있는지 알려주시면 감사하겠습니다.
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
지연 평가
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]지연평가를 하는 이유 중 하나가 메서드 뒤의 괄호 부분에서 계산 등을 하면 먼저 즉시 평가되어 안 써도 되는 cpu의 사용량을 쓰게 한다고 하셨고,그를 개선하기 위해 람다를 매개변수로 설정하여 if문 안에서 get(apply 등)메서드를 실행 전까지 계산을 안하기 때문에 지연 평가하여 쓸 데 없는 cpu 낭비를 하지 않는다고 하셨습니다.여기서 궁금한게 메서드를 콜할 때 매개변수에 람다를 저장하는 것과 원시값이나 참조값을 저장하는 것 중 어떤게 더 메모리를 잡아먹나요?람다를 저장하는게 더 많이 잡아먹는다면 cpu 낭비와 비교했을 때 어느 것이 더 손해인지 알고싶습니다.
-
해결됨프론트엔드 마스터클래스
메모이제이션 뒷부분 짤린건가요?
103강 메모이제이션과 104강 가상화가 매끄럽게 이어지지 않고 끊긴 느낌이라 질문드립니다!
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
쿠폰 유효기간이 경과했다고 하네요 ㅠㅠ
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 안녕하세요 다트언어 강의 듣고 플러터 초급으로 넘어가려고 하는데, 강의 중에 적어주신 쿠폰으로 강의 수강신청을 하려고 하니까 쿠폰이 유효기간이 지났다고 사용이 안된다고 하네요 ㅠㅠ.혹시 쿠폰 사용이 안되는걸까요? - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
메서드 시그니처
메서드 시그니쳐는 메서드 이름과 매개변수의 타입(순서 갯수 포함)이 들어가지만 반환타입은 포함되지 않는다고 알고 있습니다.교재에 2. 람다 부분 p.8에서는 메서드 시그니처 + 반환타입으로 하던가 어떤 주석이 있는게 혼동을 피할수 있지 않을까 합니다. (문맥상 무슨의미인지 알겠으나 처음 배우시는 분들은 헷갈리실 수 있어서 좀 더 명확하게 하는게 낫지 않을까 합니다.) 오피셜 다큐먼트를 찾아보았습니다. https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.4.2 감사합니다.
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
고급편 우선순위
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 이제 중급까지 듣고 고급편을 들어야되는데생각보다 람다식이 스프링이나 다른곳에서 함수형을 많이 쓰는것 같은데 시간이 많이 없으면 고급 1,2편보다 람다식,스트림인 고급3편을 들어도 괜찮을까요?고급 1,2편을 안봐도 문제없을까요??
-
미해결코틀린 고급편
SuperTypeSafeCage에 대해 질문드립니다
val superTypeToken = object:SuperTypeToken<List<GoldFish>>(){} val superTypeSafeCage = SuperTypeSafeCage(); superTypeSafeCage.putOne(superTypeToken,listOf(GoldFish("금붕어1"),Carp("새"))) superTypeSafeCage.getOne(superTypeToken).forEach(::println)superTypeToken은 List<GoldFish> 전용토큰인데 실제 Carp를 putOne 하여도 데이터가 삽입이 됩니다. 또한 superTypeSafeCage.getOne(superTypeToken) 입력 시 Carp까지 조회되네요.해당 부분에 대한 유효성 검사를 각각 진행해야 되는건가요?
-
해결됨김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
스프링 데이터 JPA 인터페이스에서의 default 메서드 사용
영한님 강의를 들으면서 인터페이스의 default 메서드는 하위 호환성을 위해서만 사용하고 일반적인 애플리케이션 개발시에는 사용할 일이 없다고 생각했었습니다. 그러나 프로젝트를 하던 도중에 스프링 데이터 JPA를 사용하는 Interface에서 Service에서 매번 Optional을 꺼내기 번거로우니 default 메서드를 사용해서 .orElseThrow(() -> new 예외 발생) 처럼 메서드를 작성하고 이렇게 해도 된다고 이야기를 들었습니다. 저는 이런 예외 발생도 Service 계층에서 하는 것이 맞는것 같기도 하면서, 사실 매번 Optional을 꺼내는 것이 귀찮기도 했던것이 사실이라 이렇게 사용하는 것이 일반적으로 정상적인 패턴인지 궁금해서 질문 드렸습니다. 디폴트 메서드의 올바른 사용법에서 '공통으로 쓰기 쉬운 간단한 로직'에 이정도의 상황이 부합되는지 궁금합니다.