묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
페이지 컴포넌트에 props를 함수 모드로 전달할 때!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.router 설정 시 페이지 컴포넌트에 props를 전달할 수 있다는 부분을 학습했고, boolean 뿐만 아니라 함수 모드도 가능하다고 알려주셨습니다.{ path: '/posts/:id', name: 'PostDetail', component: PostDetailView, // props: true, props: route => ({ id: parseInt(route.params.id) }), },함수를 정의하는 부분에서, route를 인자로 두고 route.params.id를 값으로 하는 id를 return하는 것을 작성했습니다.이 때, route를 미리 정의하지 않아도 이런 식으로 쓸 수 있는건가요?router/index.js에도 route는 정의되어 있지 않습니다.이를 테면, const route = useRoute()로 선언이 되어 있어야 route.params.id와 같은 접근이 가능한거 아닌가.. 생각했습니다.혹은 이 props를 사용하는 PostDevailView.vue에는 route가 미리 정의되어 있어야 한다고 생각했는데, 그것도 아니네요. 어느 부분을 더 학습하면 올바른 이해를 할 수 있을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
await initializeDateFormatting(); 에러 문의
강의를 보면 await initializeDateFormatting(); 코드를 추가하라고 나와있는데 실행하면 아래와 같이 변수를 할당하지 않았다고 에러가 나옵니다. 찾아들어가면 하나는 locale이고 하나는 url를 추가하라고 하는데 url에는 무었을 넣어야 하나요 lib/main.dart:8:33: Error: Too few positional arguments: 2 required, 0 given.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
RouterLink 사용 시 to와 :to
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요,강의 중 router.replace()를 설명하는 부분에서<RouterLink to=“/nested/one”> 를<RouterLink :to=“{ name: ‘NestedOne’, replace: true}”> 로 대체하면서 v-bind를 사용했습니다. 이 때 v-bind는 어떤 의미일까요? 단순 text와 객체의 차이가 v-bind 사용 유/무에 영향을 준 것일까요? 항상 충분한 설명이 담긴 답변 주셔서 감사합니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Intelli J 사용관련
안녕하세요. _Quiz_07.java를 만들어 Run시키면 Chapter 9의 Inteface관련 Package쪽 에러가 있다고 합니다. Run Configuration에 Quiz07.java를 지정해도 동일한 에러가 반복됩니다. 마치 Intelli J는 프로젝트 전체를 Build하면서 특정 부분에 에러가 있으면 Run이 안되는 것 같습니다. 어떻게 해결할 수 있을까요?이 외에도 Intelli J를 잘 활용하고 싶은데, 좋은 방법 있으면 추천 부탁 드립니다.
-
미해결코딩테스트 [ ALL IN ONE ]
강의 교재 질문드립니다.
강의 교재 [노션 공유] 에 대해 궁금하여 질문 남깁니다.- 구글 폼을 이용하여 신청을 하였는데 노션을 해당하는 메일과 인프런 계정 이메일에도 메일 수신을 확인이 안되어 어떤 경로로 보내주시는 건지 궁금하여 글 남김니다 .
-
미해결Svelte.js [Core API] 완벽 가이드
강의 소스 코드
안녕하세요,혹시 깃허브 같은 저장소에서 강의에서 사용하는 소스 코드를 다운받을 수 있나요?있다면 어디에서 받을 수 있을까요?감사합니다.
-
미해결메타스플로잇(Metasploit) 활용한 취약점 분석(초중급과정)
스캐너 종류가 엄청많던데...
meatsploit에 있는 스캐너들의 설명이 나와있는 페이지가 있나요?? 스캐너마다 장단점이 있을거라 생각하는데... 어떠한 환경에선 이 스캐너가 좋다...이런 설명이 나와있는 페이지가 있나요??
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
7:31초 데이터 표에서 질문있습니다
안녕하세요 코딩테스트전에 기본 개념을 알고자 이렇게 강의 듣게 되었습니다 :) 그림으로 쉽게 설명해주셔서 덕분에 이해가 빨리됩니다! 덕분에 운영체제도 들어볼까하는데 ㅎㅎ 기대가 됩니다.해시테이블구현 - 7:31초에 hashTable.set()으로 선수들의 데이터 값을 저장했습니다. 저장시, 인덱스 1에서 이운재 선수가 먼저 연결리스트에 저장되고 후에 박지성 선수가 저장되면 그림상 데이터에서 박지성선수가 먼저오고 다음 이운재가 되어야 된다고 생각하는데 반대인 이유가 궁금합니다. set(key,value){ this.arr[this.hashFunction(key)].insertAt(0, new HashData(key, value)) }여기서 index를 0으로 지정한 이유가 가장 앞부분부터 삽입하기 위해서라고 생각했습니다. remove 함수에서 console.log(currentNode)를 확인하면서 하는데 제가 처음 공부하는거라 확신도 없고 아리송합니다. 답변주시면 정말 감사하겠습니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Spring Boot 3.X distinct 관련
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화Spring Boot 3.2버전에서 실습 중에, distinct 옵션을 사용하지 않고도 distinct 옵션을 넣은 것처럼 Row가 2줄 출력됩니다. 이것저것 코드를 확인하다가 Spring Boot를 2.x 버전으로 내린 후에 다시 확인해보았는데, 그제서야 강의에 나오는 것처럼 중복 데이터 4개가 나옵니다. 혹시 이것 관련해서 jpa에서 업데이트가 된 것인지요..? 검색 능력이랑 문서 능력 찾아보는 능력이 딸려, 한참 찾아보다 여기에 질문합니다 ㅜㅜ 실례가 안된다면 이러한 내용을 어떻게 찾는지도 알게 될 수 있다면 좋을거 같습니다!
-
미해결
홍정모의 따라하며 배우는 C++ 강의자료 없나요?
예제는 스스로 해보고 있는데 강의 자료 없나요 ppt 같은거요
-
미해결실전! Querydsl
QueryDSL 에서 leftJoin & fetchJoin 후 lazy loading 이 되는 현상
영한님 안녕하세요, QueryDSL 공부 중 막히는 부분이 있어 질문드립니다.1:N 연관관계를 가지고 있는 두 엔티티 Team 과 Member 가 있을 때, QueryDSL 로 leftJoin & fetchJoin 으로 두 테이블을 조인하여 Member 목록을 조회하고 싶은데, 만약 Team 테이블에 FK 에 해당하는 row 가 존재하지 않는 경우에는 Member.team 에 그냥 null 이 들어있고 객체에 접근하더라도 추가적인 select 쿼리가 실행되지 않도록 하고 싶습니다. 그런데 제 바람과는 달리 Member.team 을 참조하는 시점에 lazy loading 이 되면서 select 쿼리가 실행되더라고요.실제 코드를 바탕으로 설명해보겠습니다.아래와 같이 1:N 연관 관계를 갖는 Team 과 Member 라는 엔티티가 있습니다.@Table(name = "member") @Entity class Member( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Int = 0, @Column(name = "team_id") var teamId: Long? = null, @Column(name = "name") var name: String? = null, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id", insertable = false, updatable = false, foreignKey = ForeignKey(name = "none")) val team: Team? = null, ) @Table(name = "team") @Entity class Team( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long = 0, @Column(name = "name") var name: String? = null, )여기서 아래의 코드로 left outer join 쿼리를 실행합니다.val members = from(member) .leftJoin(member.team, team).fetchJoin() .fetch()DB 는 아래와 같이 데이터가 저장되어 있습니다.// team +----+-------+ | id | name | +----+-------+ | 1 | team1 | +----+-------+ // member +----+---------+------+ | id | team_id | name | +----+---------+------+ | 1 | 2 | John | +----+---------+------+그럼 저는 아래와 같은 Member 객체 하나로만 이루어진 List 를 얻을 수 있을 거라고 생각했고, team 변수에 접근할 때 select 쿼리 실행 없이 null 만을 반환할 것이라고 기대했습니다.{ "id": 1, "team_id": 2, "name": "John", "team": null }하지만 아래와같이 member 테이블을 lazy loading 하는 로그가 찍히네요.Hibernate: insert into team (id, name) values (default, ?) Hibernate: insert into member (id, name, team_id) values (default, ?, ?) Hibernate: select member0_.id as id1_7_0_, team1_.id as id1_9_1_, member0_.name as name2_7_0_, member0_.team_id as team_id3_7_0_, team1_.name as name2_9_1_ from member member0_ left outer join team team1_ on member0_.team_id=team1_.id Hibernate: select team0_.id as id1_9_0_, team0_.name as name2_9_0_ from team team0_ where team0_.id=?그런데 만약 DB 의 데이터 중 member 의 team_id 만 1로 변경하니 쿼리 후 member.team 에 접근하더라도 아래와 같이 lazy loading 하는 로그가 찍히지 않았습니다.Hibernate: insert into team (id, name) values (default, ?) Hibernate: insert into member (id, name, team_id) values (default, ?, ?) Hibernate: select member0_.id as id1_7_0_, team1_.id as id1_9_1_, member0_.name as name2_7_0_, member0_.team_id as team_id3_7_0_, team1_.name as name2_9_1_ from member member0_ left outer join team team1_ on member0_.team_id=team1_.id테스트에 사용한 코드는 아래와 같습니다.@DataJpaTest @Import(MemberService::class) // MemberService.listMembers() 에서 QueryDsl 로 쿼리를 합니다. class MyTest( private val sut: MemberService, private val em: EntityManager, ) : FunSpec( { beforeEach { val team = Team(name = "team1") em.persist(team) val member = Member( name = "John", teamId = team.id + 1, // 이것만 team.id 로 바꾸면 team 접근 시 select 로그가 찍히지 않습니다. ) em.persist(member) em.clear() } test("my test") { val members = sut.listMembers() members.shouldNotBeEmpty() val team = members.first().team println(team) } }, )어차피 조회한 엔티티에 변경을 가하지는 않을 것이라, Member 엔티티를 detach 시키고 team 에 접근하면 lazy loading 이 안될까 싶어서 해보았는데 여전히 lazy loading 이 되더라구요 ^^;일단 @QueryProjection 을 붙인 별도의 DTO 를 정의해 아래와같이 쿼리하는 식으로 해결하려고 하는데 더 좋은 방법은 없을까요?class MemberDto @QueryProjection constructor( val id: Int, val teamId: Long? = null, val name: String? = null, val teamName: String? = null, ) @Service @Transactional(readOnly = true) class MemberService : QuerydslRepositorySupport(Member::class.java) { private val member = QMember.member private val team = QTeam.team fun listMembers(): List<MemberDto> { val members = from(member) .select(QMemberDto(member.id, member.teamId, member.name, team.name)) .leftJoin(member.team, team) .fetch() return members } }감사합니다.
-
해결됨만들면서 배우는 리액트 : 기초
강의 6분 후반부~7분 부분에서 handleFormSubmit의 검증전 에러메시지초기화(setErrormessage)에 대한 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.setErrormessage가 handleFormsubmit함수 안에 있게 되면,만약한글로 입력창에 "나나나" 이렇게 치면 에러메시지가 "한글은~"이라고 뜰 것입니다.이 때 따로 한글로 인풋이 들어간다고해서 전송이 안되는게 아니니까 이 상태로 전송하면,setErrormessage(handleFormsubmit)에 의해 초기화 될 것입니다. 이후 글자를 하나라도 지우면 handleInputchange에 따라서 검증되고, "한글은~"메시지가 뜰 것입니다. 여기서 질문이와 같이 동작하는 게 맞을까요?이러한 동작이 맞다면 handleFormSubmit안의 setErrormessage는 사용하는 이유가 없고, 오히려 없는게 자연스러워 보이는데 (없게 되면 한글만 입력하고 전송버튼 눌러도 에러메시지("한글은 입력할 수 없습니다")가 남아있음) .. 제가 어느 부분을 놓치고 있는 걸까요?
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
깊게 파려면 어떤 지식들이 더 있을까요?
혹시 본 강의에서 다루고있지 않지만 필수적인 web 3D 지식들이 있다면 뭐가있을까요?최적화에 관한 부분이나 깊게 파고들만한 부분이 더있는지 궁금합니다
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
'멀티스레드 컨슈머 애플리케이션' 편을 보고 질문드립니다~
안녕하세요 데브원영님. 수준높은 강의 항상 잘보고있습니다. 다름아니라, '멀티스레드 컨슈머 애플리케이션' 강의를 듣고 관련 내용을 찾아보던 와중에 '메세지 역전현상' 이라는 이슈를 찾았습니다.멀티 스레드 혹은 멀티 프로세스로 동작할경우, 파티션이 하나더라도 스레드의 작업종료 시간이 전부 다르기때문에 순서보장이 필요한 시스템에 치명적이라는 내용이였습니다. 이 문제를 해결하기 위해 메세지에 key와 partioner 인터페이스를 구현하더라도 파티션 수와 스레드 수가 1:1 매칭이 아닐 경우 순서가 틀어지거나, Key 설계를 잘못할 경우 특정파티션으로 데이터가 몰리게되어 scale-out을 한 의미가 퇴색 될 것 같아서요.'순서보장 + (다중 파티션 + 다중 컨슈머 설계로 성능확보)' 가 필요한 시스템에서 '메세지 역전현상' 문제를 해결 할수 있는 방법이 있을까요?.. 발행된 메세지가 DB에 적재되있을 경우, 최종 일관성(순서보장문제)을 DB에 조회하여 해결할 수 있을 것 같은데요!.. 저장소에 적재되지 않는 메세지일 경우 해당문제를 어떻게 풀어야될지 잘 모르겠네요 ... 관련하여 답변 부탁드리겠습니다!.. 확인 감사합니다.~
-
미해결핸즈온 리액트 네이티브
시뮬레이터 (개발자 메뉴)새로고침
ios 시뮬레이터 (개발자 메뉴)새로고침 하는 창 띄우는 법을 모르겠습니다인터넷에 쳐보니 cmd + m cmd + d 둘중 하나하면 된다고하는데 안됩니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
ArrayList, LinkedList, HashMap 등 및 이들의 메소드들 add(), set() 등에 대해 깊이있게 알고싶습니다...ㅎ
안녕하세요, 나도코딩 선생님...ㅎ 어제 나도코딩 자바편에서 남은 나머지 강의인 Thread 부분과 섹션 10. 제네릭스 (Java Collections Framework)를 다 듣고 완강한 다음 복습 중에 궁금증이 생겨 이렇게 질문을 남깁니다. 나도코딩 파이썬 강의를 완강한 이후로 또 다른 강의를 다 끝내고 나니 기분이 매우 좋습니다 ㅎㅎ(1) 우선 add와 set과 관련된 질문입니다. Java documentation을 보면서 java.util.List에서 add는 object를 추가하는 것 외에도, add(int index, object e)를 통해 특정 위치(index)에 특정 객체(object)를 넣기도 가능하고, set도 마찬가지로 set(int index, object e) 형태로 같은 역할을 수행하는데, add와 set를 따로 나눈 것은 add는 단순하게 리스트 안에 객체를 넣는 것이 초점인 반면, set는 리스트 안에 들어있는 '기존 데이터들이 가진 순서 변경의 목적'이라서 그런건가요?(2) 지금까지 제네릭스를 공부하고 제가 이해한 바로는 LinkedList랑 ArrayList 두 가지 리스트 모두 데이터 순서를 가지고, ArrayList는 데이터를 쓰고 저장하는 것은 알고리즘 시간 복잡도상 O(n)이기 때문에 속도가 느리지만, 읽기(O(1))는 빠른 반면, LinkedList는 데이터를 읽는 속도(O(n))는 느리지만, 리스트 중간에 데이터를 쓰고 저장하는 것(O(1))은 빠르다면, 이 둘의 특성들을 어느 때 쓰는 것이 가장 적합한가요?또한 ArrayList와 LinkedList를 각각 '메모가 많은 공책', 예전에 있었던 '포털 사이트 실시간 검색어 순위'로 비유해서 개념을 이해하는 것도 괜찮을까요? - 제 스스로 이해를 돕기위해 나름 저만의 비유를 적어봤습니다...ㅎ메모가 많은 공책 (ArrayList) : 책 한 장안에 많은 메모들을 볼 수 있어서 읽기는 빠르지만, 메모를 쓰려면 최소 6-7장은 넘겨야 한다.실시간 검색어 순위 (LinkedList) : 순위가 주기적으로 (주로 1시간 단위) 변해서 자료들을 빨리 반영하기는 힘들지만, 실시간 순위인 만큼 빠른 자료 수집 및 추가는 확실하다.(3) HashMap도 또한 일반적으로 어디에 가장 적합 한가요? 이를 테면 제가 원하는 특정 문자에, 특정 정수(Integer) 값을 할당하는 용도로 HashMap을 써도 괜찮을까요? 혹시 몰라 아래처럼 제 나름대로 코드를 적어봤습니다...ㅎ... // 이미 import java.util.Map; 되어있음. HashMap<String, Integer> gameMoves = new HashMap<>(); gameMoves.put("R", 0); // gameMoves.remove("R"); 이렇게 키도 삭제 가능 gameMoves.put("D", 1); gameMoves.put("L", 2); gameMoves.put("U", 3); System.out.println(gameMoves.size()); // 4그리고 위의 예시 처럼 remove("R");을 통해 키 값을 없애면 (HashMap gameMoves에 저장된 String), HashMap gameMoves의 value값은 그대로 살아있는가요? 아니면 null로 처리가 되나요? 스스로 공부하면서 얼핏 본 바로는 key값이 사라지더라도 map의 value는 계속해서 쓸 수 있다고 본거 같은데, 이 부분도 확실하게 제 스스로 짚고 넘어가고 싶습니다! 추가적으로 강의를 들으면서 제네릭스 전반적인 개념을 제 나름대로 그림도 그려가면서 이해를 해봤습니다...ㅎ 제대로 이해했는지 알고 싶어서요...ㅎ 앞으로도 강의 많이 찍어주세요!...ㅎ 항상 감사합니다!
-
미해결실전! 스프링 데이터 JPA
스프링 데이터 JPA의 구현체 질문
안녕하세요 김영환 강사님 항상 잘 듣고 있습니다. 다름이 아니라 스프링 데이터 JPA의 구현체 분석 파트 중 질문 사항이 있습니다.페이징에 대해서 처리할 때 마지막 파라미터로 Pageable 를 넘기게 되면 해당 정보로 자동으로 페이징 처리를 하게 된다고 알고 있습니다.어떻게 이게 가능한 것입니까? 이를 구현한 구현체를 찾아보려 하지만 찾지 못해 질문드립니다.!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080/hello 오류에 관해 질문 드립니다
index까지는 되는데 /hello 열면 화이트라벨 에러가 발생합니다 왜 그런지 모르겠습니다
-
미해결스프링 핵심 원리 - 기본편
java.lang.IllegalStateException: Failed to load ApplicationContext
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)java.lang.IllegalStateException: Failed to load ApplicationContext 라고 계속 뜨는데 왜 실패하는 지 모르겠습니다.. 어떤걸 해결해야 테스트가 완료될까요?
-
미해결홍정모의 따라하며 배우는 C++
과제 괜찮은지 확인 부탁드립니다~
잘 모르는 부분은 조금씩 참고해서 하긴 했지만, 이런식이면 괜찮을까요? #include <iostream>using namespace std;int sum1(int a,int b){ int s1 = a + b; return s1;}int sum2(int c,int d){ int s2 = c * d; return s2;}int sum3(int e,int f) { int s3 = e / f; //밑에서 입력받은 e,f를 나눠준뒤, s3에 저장한다. return s3; //계산된 s3를 밑의 main에 return 시켜준다. 그 뒤에 바로 출력된다.}void textPint(){ cout << "코드가 종료되었습니다." << endl; return; }int main(){ int a,b; cout << "더할 두 숫자를 입력하세요." << endl; cin >> a >> b ; cout << "두 수의 합은 : " << sum1(a, b) << " 입니다."<< endl; int c,d; cout << "곱할 두 수를 입력하세요." << endl; cin >> c >> d ; cout << "두 수의 곱은 : " << sum2(c, d) << " 입니다."<< endl; int e,f; //cint에서 입력받을 값을 미리 지정 cout << "나눌 두 숫자를 입력하세요." << endl; cin >> e >> f ; //값을 입력 받는다. cout << "두 수룰 나눈 값은 : " << sum3(e, f) << " 입니다."<< endl; //sum3에 입력받은 e,f를 저장 textPint(); return 0;}