묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
개인적인 질문입니다ㅠㅠ
강의를 수강하고 토이프로젝트를 해보던 중에 막히는 부분이 있어서 질문 드립니다ㅠㅠ 이런 식으로 중간 부분만 router-view를 이용하여 변경하려고 합니다. 현재 이 부분이 라우터가 '/'일때의 화면입니다. propsdata로 잘 받아와집니다. 그리고 수정페이지에서 정보를입력하고 제출하면 app.vue에서 변경이 됩니다. 근데 여기서 문제가 있습니다ㅠㅠ 1. 제출할 때 router-link로 to='/' 넘기면서 함수를 실행하여 emit으로 제출하려고 하는데 v-on:click을 넣으면 실행이 안됩니다.. 2. app.vue에서 변경된 데이터가 화면에 반영이 되지 않습니다. v-on으로 받아온 함수에서 console로 찍었을 때 변경이 되는건 확인을 했는데, 화면을 봤을 때는 반영이 안됩니다ㅜㅜ 도와주시면 감사하겠습니다..
-
미해결홍정모의 따라하며 배우는 C++
16:17
Fraction one_thirds=Fraction{1,3}; 이거랑 Fraction one_thirds(1,3) ; 이랑 임시객체 생성되고 안되고 차이가 있나요? 둘이 똑같은 과정을 거치는건가요?
-
미해결
Seeking A Permanent Remedy To Fix Sbcglobal Email Not Working Problem
Sbcglobal Email Not Working issue is a common one that can take place at anytime due to several reasons. However, you don’t need to worry if you are not capable of handling your problems on your own. Simply make a connection with the experts and you will get a feasible solution to tackle it down.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
vue3에서 slot, slot-scope이 deprecated 되었는데...
안녕하세요. Vue3를 적용해서 코드 작성을 연습하고 있는데 Vue3에서는 공식적으로 slot, slot-scope가 deprecated 된걸로 압니다. 그렇다면 알려주신 renderless component 개념은 vue3에서 사용이 안되는걸까요? 아니면 deprecated 됨에도 불구하고 다른 속성(?), api(?)를 사용해서 구현해야 하나요? 이후에도 많이 사용되는 구현 방법일지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
7강 마무리 코드가 aws에서 이상한 동작을 합니다.
7강 마무리 서버코드를 받아서 릴리즈로 실행하기 위한 작업을 몇가지 한뒤에, 로컬에서 돌려서 정상작동하는걸 확인하고, aws에 올려서 테스트 했습니다만, 서버쪽에선 이상한 곳에서 함수 동작이 멈춰버리고, 클라쪽에선 접속하고 캐릭터가 스폰되지 않아 배경만 덩그러니 있습니다. 멀티스레딩 비동기 프로그래밍에 익숙하지 않은 저로선 전혀 예상이 안가는 이상한 동작을 하여 질문드립니다. aws에서 인바운드규칙 설정하였고, public IP DNS로 Liseten걸어놨습니다. 1) 클라쪽 동작 로그 2) 서버쪽 동작 로그 3. 이상 동작을 확인하기위해 함수 한줄마다 Log를 찍어놨습니다. public void EnterGame(GameObject gameObject) { int checkCount = 0; Console.WriteLine($"EnterGame{++checkCount} int checkCount = 0;"); if (gameObject == null) return; Console.WriteLine($"EnterGame{++checkCount} if (gameObject == null)"); GameObjectType type = ObjectManager.GetObjectTypeById(gameObject.Id); if (type == GameObjectType.Player) { Console.WriteLine($"EnterGame{++checkCount} if (type == GameObjectType.Player)"); Player player = gameObject as Player; Console.WriteLine($"EnterGame{++checkCount} Player player = gameObject as Player"); _players.Add(gameObject.Id, player); Console.WriteLine($"EnterGame{++checkCount} _players.Add"); player.Room = this; Console.WriteLine($"EnterGame{++checkCount} player.Room = this;"); Map.ApplyMove(player, new Vector2Int(player.CellPos.x, player.CellPos.y)); Console.WriteLine($"EnterGame{++checkCount} Map.ApplyMove"); // 본인한테 정보 전송 { Console.WriteLine($"EnterGame{++checkCount} ---------- me -----------"); S_EnterGame enterPacket = new S_EnterGame(); Console.WriteLine($"EnterGame{++checkCount} new S_EnterGame()"); enterPacket.Player = player.Info; Console.WriteLine($"EnterGame{++checkCount} enterPacket.Player = player.Info"); player.Session.Send(enterPacket); Console.WriteLine($"player.Session.Send(enterPacket); {enterPacket.Player}"); S_Spawn spawnPacket = new S_Spawn(); Console.WriteLine($"S_Spawn spawnPacket = new S_Spawn(); {enterPacket.Player}"); foreach (Player p in _players.Values) { if (player != p) spawnPacket.Objects.Add(p.Info); } Console.WriteLine($"EnterGame{++checkCount}"); foreach (Monster m in _monsters.Values) spawnPacket.Objects.Add(m.Info); foreach (Projectile p in _projectiles.Values) spawnPacket.Objects.Add(p.Info); player.Session.Send(spawnPacket); } } else if (type == GameObjectType.Monster) { Monster monster = gameObject as Monster; _monsters.Add(gameObject.Id, monster); monster.Room = this; Map.ApplyMove(monster, new Vector2Int(monster.CellPos.x, monster.CellPos.y)); } else if (type == GameObjectType.Projectile) { Projectile projectile = gameObject as Projectile; _projectiles.Add(gameObject.Id, projectile); projectile.Room = this; } // 타인한테 정보 전송 { Console.WriteLine($"EnterGame{++checkCount} ---------- other -----------"); S_Spawn spawnPacket = new S_Spawn(); spawnPacket.Objects.Add(gameObject.Info); Console.WriteLine($"EnterGame{++checkCount} spawnPacket.Objects.Add(gameObject.Info);"); foreach (Player p in _players.Values) { if (p.Id != gameObject.Id) p.Session.Send(spawnPacket); } } }
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
concat tolist 사용 오류 문의
안녕하세요 5.1 업종테마주수집 과정을 좀 변형해서 네이버금융의 "시가총액" 메뉴의 종목을 여러페이지 크롤링했습니다. 첫페이지 50개 만 가져오면 괜찮은데 이후 2번째 페이지부터 추가해서 가져오면 아래 코드 실행시 오류가 납니다 df_item_info = pd.concat(result.tolist()) TypeError: first argument must be an iterable of pandas objects, you passed an object of type "Series" 페이지 크롤링하는 부분은 아래와 같습니다 raw = pd.DataFrame() for page in range(1,3): url = f"https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page={page}" table = pd.read_html(url, encoding="cp949") oneraw = table[1] oneraw = oneraw.dropna(how="all").dropna(axis=1, how="all") raw = raw.append(oneraw) time.sleep(1) 머가 문제인지 잘 모르겠습니다 확인 부탁드립니다 - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결구글 스프레드시트로 배우는 업무 자동화(직장인 코딩)
함수문의
안녕하세요 이제 강의 약 50% 정도를 듣고 있는데, 강의 내용은 따라하는데 활용을 해보려니 막상 어렵네요 문의드리고자 하는 내용은 다음과 같습니다. 예와 달리 실시간으로 입력이 되면 위 예시와 같이 아래 위로 나란히 있는 경우는 거의 없습니다. 출장일과 입력자가 같은 경우 출발과 도착이 다른 행에 있어 총운행거리를 구하기 어려운데, 이런 경우 1) 새로운 시트에 위 2개의 행을 하나로 합치는 방법 2) 아니면 출장일과 입력자가 같은 행의 경우, 총운행거리 셀에 도착 - 출발을 한 숫자 기록 저는 개인적으로 1) 이 좋을 것 같은데 가능한 방법 있을까요? 물론 하나씩 필터 걸어서 할 수 는 있겠지만 편리한 자동화를 한 번 구현해보고 싶어서 그럽니다. 데이터가 적으면 문제가 없겠지만 많은 경우를 대비하여 자동화 해보려고 하는 겁니다. 감사합니다
-
미해결자바스크립트 비기너: 튼튼한 기본 만들기
코딩시간 2문제
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. use strict구문에서는 with구문을 아마도 포함하지 않아서 에러가 생기는 것 같네요 with 자체는 {}에 묶어서 사용을 하면 document참조할때는 되게 편한 함수 같네요
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Next.js 스크롤 관련 질문 드립니다.
Next로 블로그를 만드는 프로젝트를 진행하고 있습니다. 이게 메인 페이지인데, 다른 페이지를 갔다가 다시 메인페이지로 돌아오면 스크롤이 유지가 안되고 가장 맨 위로 이동하는 문제가 발생합니다. redux + redux-saga로 메인페이지에 다음과 같이 작성했는데 문제되는 부분이 있나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다 설계 이렇게 하면 될까요?
1. 다대다 맵핑을 직접 해보고 이해할려고 다이어 그램을 만들었습니다. 2. 회원은 여러개의 상품을 가질수 있다. 3. 그렇다면 회원 도 여러개의 상품을 가지고 상품도 여러개의 회원을 가지니까 N:M 으로 구현하는게 맞을까요? 4. 위를 기반으로 아래 처럼 만들어 봤습니다. 5. COUNT 는 회원이 상품을 총 몇개 주문했는지 가지고 있는걸 표현했습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
링크드리스트 Remove 삭제 질문입니다
MyLinkedList.AddLast로 노드의 마지막에요소를 추가하는거는 이해가 되었어요!그리고 삭제할 요소가 있다면MyLinkedListNode node = MyLinkedList.AddLast(데이터)이렇게 노드에 집어넣고MyLinkedList.Remove(node);로 삭제하는것도 이해가 되었는데그럼 링크드리스트의 경우 중간에 삭제해야하는 데이터가 있다면 처음에 여러데이터를 AddLast로 추가하면서 삭제할 데이터만 미리MyLinkedListNode에 넣으면서 AddLast로 추가하는것인지궁금합니다
-
미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
혹시 외부에서도 웹을 볼 수 있게 작동 하려면 어떻게 해야할까요?
혹시 외부에서도 웹을 볼 수 있게 작동 하려면 어떻게 해야할까요?
-
미해결AWS(Amazon Web Service) 입문자를 위한 강의
VPN 관련 질문
안녕하세요 수업을 열심히 들은 학생입니다!! 정확히 VPN에 대해서는 설명해주시지 않고 간단히만 설명해주셔서 직접 VPN에 대해서도 공부해봤는데요. VPN의 public subnet에서는 인터넷과 연결이 필요한 ec2를 배치하고 private subnet에서는 외부와의 노출이 차단되어야하는 DB나 백엔드와 같은 부분을 넣어야 한다고 배웠습니다. 그러나 여러 실습 과정들을 보면 private subnet에 ec2를 넣어주는 것을 볼 수 있는데 ec2를 private에 넣는 경우는 어떤 경우인지 알려주실수 있나요?
-
미해결YOLO 구현으로 배우는 딥러닝 논문 구현 with TensorFlow 2.0
backbone network에 대해서 질문 있습니다.
논문에서는 backbone network로 darknet을 사용했는데, 강의 code에서는 keras의 inceptionV3를 사용되어 질문 올립니다. 혹시 darknet을 사용하려면 어떻게 가져와야 하는지 설명해주실 수 있으신가요? 참고할만한 링크라도 남겨주시면 감사드립니다.
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
camel & snake case 질문드립니다!
일반적(?)으로,코드상에서 존재하는 변수들이나 코드들은카멜케이스로 작성, 외부 요청 (API 통신)을 때에는snake case 형식으로 통신을 하는 것으로 알고 있습니다.물론 상관없다라는 이야기가 나올 수 있지만,협업관계에서는 되도록 일반적인, 익숙한 약속을 서로맞춰 사용하는 것이 낫고 최대한사소한 부분이나 스타일 관련해서는충돌을 피하는 것이 낫다고 생각하기에,응답할때에는 snake case 로 보내고 싶습니다.tpyeorm 을 작성하면서 find나,dto 작성이나,엔티티 작성때에서 camel case 형식으로변수가 작성되는 것 같은데,혹시 이들을 응답할때 snake 로 자동변환해주는어떤 방법이나,또는 어떤방식으로 사용하고 계신지 궁금해서 질문드립니다!
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
12장 웹소켓 질문드립니다!
ws.on('message', (message) => { // 클라이언트로 부터 메시지 console.log(message); }); 로 사용했는데 콘솔로그에 버퍼로 로그가 찍힙니다. .toString() 하면 한글로 나오긴 하는데 왜그런가요?
-
해결됨구글이 만든 Golang, 기초부터 배우자 - 입문편
1:16 구간에서 질문
전 강의에서는 for i := 0; i<5; i++ {fmt.Println(i)}이런 식의 코드를 짰습니다. 그래서 0부터 시작해 증감식을 통해 4에서 끝나는 것을 알 수 있었습니다. 이번 강의에서는a := 1for a <= 2 { fmt.Println(a)}였습니다. 여기서 알고 싶은 것은 '변수의 위치'와 '왜 무한적으로 1이 생성되는 가' 입니다. a := 1 이라고 선언을 한다고 하셨는데 전 강의에서의 i := 0 은 for 다음에 type되었지만, 지금 강의에서 a := 1 은 for 이전에 type되어있는데그 이유를 알고 싶고 1은 2보다 작기 때문에 2에 도달할 일이 없다 해서 왜 1이 무한적으로 출력이 되는 것인지 알고 싶습니다.(증감식이 없어서 그런건가요?)
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Data, @AllArgsConstructor
안녕하세요. 강의 잘 듣고 있습니다. @Data 어노테이션이 Getter Setter, toString을 한 번에 해줘서 평소에 자주 사용하고 있었는데요. 아래와 같이 해줬는데 insternal server error가 뜨는데, 왜 이런 에러가 뜨는지 잘 이해가 안 됩니다. @AllArgsConstructor 어노테이션을 지워주고 실행하면 잘 되기는 하는데, @RequiredArgsConstructor와 @AllArgsConstructor가 어느 지점에서 에러가 나는 걸까요? @AllArgsConstructor는 모든 멤버 변수에 대해서 생성자를 만들어주고 @RequiredArgsConstructor는 final이나 @NonNull이 붙은 멤버 변수만 가지고 생성자를 만들어주니 딱히 중복되는 건 없어보이는데... 잘 모르겠습니다 ㅜㅜ @Data@AllArgsConstructorpublic class HelloData { private String username; private int age;}com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `hello.servlet.basic.HelloData` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) at [Source: (String)"{"username": "kang","age": 25}"; line: 1, column: 2] at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1764) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1209) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1415) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:362) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:195) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4593) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3548) ~[jackson-databind-2.12.4.jar:2.12.4] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3516) ~[jackson-databind-2.12.4.jar:2.12.4] at hello.servlet.basic.request.RequestBodyJsonServlet.service(RequestBodyJsonServlet.java:27) ~[classes/:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
while 문 2번씩 반복 오류
코드는 강의 따라 잘입력한거 같은데 getchar() 함수 이후 아무값이나 입력하고 나면 무조건 2번 반복되서 실행됩니다.. 대체 왜이런 현상이 일어나는건가요?? ㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName 메소드 작성 질문 있습니다.
안녕하세요. 제가 람다랑 optional, 컬렉션 그런부분을 아직 잘몰라서 자바 공부가 더 필요한데요. 이 부분 듣다가 궁금증이 있어서 질문 남기게 됐습니다. - 중점적인 내용은 `findName 메소드를 findById메소드 처럼 구현하면 안되냐`입니다. -> 다른 질문글을 통해 id는 유일한 기본키로 사용되서 중복이 없고, 이름은 중복이 있을 수 있다고 하셨습니다. 제가 코드는 정확히 모르겠지만 영한님의 강의를 들어보며 추측해보면 -> store - 객체 -> , values() - 값들중 -> . stream() - 모두 돌리는데 -> .filter() - 가로안에 있는 조건에 해당하는 값이 걸리면 -> .findAny() -리턴해라 이런 의미의 식 같습니다. 또 filter 안에 있는 람다표현식?은 member를 받아서 받은 멤버 객체의 name이 findByName 메소드 호출시 매개변수로 받은 name과 같은지를 체크한 것 같구요. 여기서 궁금한점이 store의 member를 하나씩 쭉 돌리는데 우리가 매개변수로 넘겨준 name과 같은 member를 모두 optional에 담아서 반환하는건가요? 즉, findById는 중복 없이 Optional에 하나의 Member 객체만 담아서 반환되어 코드를 저렇게 짠 것이고 findByName은 중복이 있을 수 있어, 매개변수로 받은 name과 같은 모든 member 객체를 optional에 담아 반환해주는 코드인건가요?