묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[R] KOSPI/KOSDAQ 전 종목 데이터 수집 및 관리
한국거래소에서 전종목 코드를 받는 기존 메뉴는 사라졌습니다.
한국거래소를 타고서 예전에는 받을 수 있었던 것 같은데,현재는http://data.krx.co.kr/contents/MDC/MDI/mdiLoader/index.cmd?menuId=MDC0201020303이 곳으로 들어가야 종목코드를 다운받을 수 있게 바뀌었네요.. 초보라 한참 찾았습니다. 그리고 강의하시는 제목 "stock R"이 사실은 다운로드 받은 자료의 "naver증권크롤링_예제.R"이네요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6 - F
http://boj.kr/798b9379c3254770abccef965fd8ee87몬스터 때리는 부분을 제외하면 작성해주신 정답 코드랑 유사해보이는데 어디가 잘못됐는지 잘 모르겠습니다.
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
searchBooks() 에서 북 검색 입력을 너무 빨리 할 경우 마지막 글자로 검색이 안돼요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아래 코드를 private fun searchBooks() { var startTime = System.currentTimeMillis() var endTime: Long binding.etSearch.text = Editable.Factory.getInstance().newEditable(searchViewModel.query) binding.etSearch.addTextChangedListener { text: Editable? -> endTime = System.currentTimeMillis() if (endTime - startTime >= SEARCH_BOOKS_TIME_DELAY) { text?.let { val query = it.toString().trim() if (query.isNotEmpty()) { searchViewModel.searchBooksPaging(query) searchViewModel.query = query } } } startTime = endTime } }아래처럼 바꿔봤는데 입력 시마다 runnable을 매번 생성하는데 문제 되진 않을까요? 코틀린에 익숙치 않아서 더 좋은 방법이 있다면 알고 싶습니다. private var handler: Handler = Handler(Looper.getMainLooper()) var runnable: Runnable? = null private fun searchBooks() { binding.etSearch.addTextChangedListener { text: Editable? -> if (runnable != null) { handler.removeCallbacks(runnable!!) } // 텍스트 입력 후 N 초 간 입력 없으면 검색 실행 runnable = Runnable { text?.let { Log.d(TAG, "text:$it"); val query = text.toString().trim() if (query.isNotEmpty()) { bookSearchViewModel.searchBooks(text.toString()) bookSearchViewModel.query = query } } } handler.postDelayed(runnable!!, Constants.SEARCH_BOOKS_TIME_DELAY) } }
-
미해결2시간으로 끝내는 코루틴
코루틴 취소 관련 질문
fun main(): Unit = runBlocking { val job = launch { var i = 1 var nextPrintTime = System.currentTimeMillis() while (i <= 5) { if(nextPrintTime <= System.currentTimeMillis()){ printWithThread("${i++}번째 출력!") nextPrintTime += 1_000L } } } delay(100L) job.cancel() }수업 때 예시로 보여주신 코드인데 이 코드는 "5번째 출력!"까지 출력하고 끝이 나는데요. 반면에 아래 코드는 한번만 출력하고 끝이 납니다.fun main(): Unit = runBlocking { val job = launch { var nextPrintTime = System.currentTimeMillis() repeat(5) { if (nextPrintTime <= System.currentTimeMillis()) { printWithThread("${it + 1}번째 출력!!") nextPrintTime += 1_000L } } } delay(100L) job.cancel() }이는 단순히 repeat문이 무한루프가 아니어서 나오는 차이일까요?
-
미해결스프링 핵심 원리 - 기본편
web 라이브러리 추가 시 CoreApplication 무한 로딩
안녕하세요. request 스코프 예제를 시작하려다가 web 라이브러리를 다음과 같이 추가하고,CoreApplication에서 main method를 실행하였는데요.무한 로딩 되는 현상이 발생합니다. 체크 표시가 뜨지 않고계속 이 상태에서 돌아가는데 왜이런지 알 수 있을까요..? 어떻게 해결하면 좋을까요ㅜㅠ
-
미해결엑셀기초 실무핵심만 뽑아 3시간에 끝내기
강의 자료 다운 안됩니다
강의 자료 안보이네요.. 어디서 다운 받을 수 있나요?메일로 보내주시면 감사하겠습니다! dk.kate2@gmail.com
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
팔로잉, 팔로워 목록은 잘 불러왔으나 콘솔에 Warning: Failed prop type: The prop `data` is marked as required in `FollowList`, but its value is `undefined`. 에러가 발생합니다!
안녕하세요 제로초님!! 해당 강의 영상을 끝까지 수강한 수강생 입니다!항상 강의 영상 잘 보고 있습니다. 복잡한 질문에도 친절히 답해주셔서 감사합니다~! 첫 번째 에러를 번역해보니 'FollowList'에 prop 'data'가 필요한 것으로 표시되어 있지만 값은 'undefined'입니다. 라고 뜹니다.문제가 생긴 profile.js 에서 console.log(data)를 해보니 역시 data가 undefined 가 나옵니다.FollowList.js의 data가 profile.js로 전달이 되지 않은 것인가요? 만약 그렇다면 어디를 봐야 하는지 힌트 부탁 드립니다!(data의 프롭타입은 배열입니다!)https://github.com/ZeroCho/react-nodebird/blob/master/ch6/front/pages/profile.js질문을 올리기 전에 제로초님 깃허브를 꼼꼼히 참고하고 스스로 구글링 해보았지만 해결이 어려워 질문 올립니다!포기하지 않고 끝까지 완강을 목표로 하겠습니다! 아래 사진은 상단 이미지에서 잘린 에러 전체입니다.감사합니다!
-
해결됨HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
disabled 디자인 이렇게 하면 될까요?
안녕하세요... 강의 3분 8초에 나오는 체크된 부분 퍼블리싱에 대해 질문드립니다.. 라이브 서버로는 되는 것 같기는 한데혹시 더 낫게 하는 방법이나 실무에서 더 선호되는 방법이 있다면 알려주시면 감사하겠습니다... <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="https://kit.fontawesome.com/c0fe093804.js" crossorigin="anonymous"></script> <link rel="stylesheet" href="02.fontawesome-active.css"> </head> <body> <form> <input type="checkbox" id="chk1" checked> <label for="chk1">HTML</label> <input type="checkbox" id="chk2"> <label for="chk2">CSS</label> <input type="checkbox" id="chk3"> <label for="chk3">Javascript</label> <input type="checkbox" id="chk4" disabled> <label for="chk4">UIKit</label> </form> </body> </html> /* Google Web Fonts CDN Raleway */ @import url('https://fonts.googleapis.com/css?family=Raleway&display=swap'); /* Google Web Fonts CDN Noto Sans KR */ @import url('https://fonts.googleapis.com/css?family=Noto+Sans+KR:300,400,500,700,900&display=swap'); @import url('https://kit.fontawesome.com/c0fe093804.js" crossorigin="anonymous'); body{ font-family: 'Raleway', sans-serif; /* font-family: 'Noto Sans KR', sans-serif; */ color: #222; line-height: 1.5em; font-weight: 300; margin: 0; font-size: 30px; display: flex; justify-content: center; align-items: center; height: 100vh; } a{ color: #222; text-decoration: none; font-size: 12px; } form input[type=checkbox]{ display: none; } form label{ display: block; margin-bottom: 3px; } form label:before{ content: '\f00c'; text-align: center; line-height: 30px; font-family: fontawesome; margin-right: 8px; border: 1px solid #292929; color: transparent; display: inline-block; width: 30px; height: 30px; vertical-align: middle; padding: 2px; border-radius: 3px; font-size: 30px; transition: 0.2s; } form input[type=checkbox]:checked + label:before{ background-color: crimson; color: #fff; border: 1px solid crimson; /* border-color: transparent; */ } /* 눌리는 효과 */ form input[type=checkbox] + label:active:before{ transform: scale(0); } form input[type=checkbox]:disabled + label:before{ border: 1px solid rgba(220, 20, 60, 0.233); background-color: rgba(220, 20, 60, 0.233); color: #fff; } form input[type=checkbox]:disabled + label:active:before{ transform: scale(100%); }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 질문있습니다
if(isVowel(idx)) mcnt++, scnt = 0, is_include_v = 1;else scnt++, mcnt = 0;if(mcnt == 3 || scnt == 3) flag = 1;이 부분이 제가 이해하고 있는 것이 맞는지 궁금합니다.예제 입력에 ptoui를 예를 들어보겠습니다.for문에서 ptoui라는 문자열을 알파벳 하나하나 받아주면서p -> vcnt++, lcnt = 0 => vcnt = 1, lcnt = 0t -> vcnt++, lcnt = 0 => vcnt = 2, lcnt = 0o -> lcnt++, vcnt = 0 => vcnt = 0, lcnt = 1u -> lcnt++, vcnt = 0 => vcnt = 0, lcnt = 2i -> lcnt++, vcnt = 0 => vcnt = 0, lcnt = 3 다음 if문에서 lcnt == 3이므로 flag = 1이 되고,flag = 1일 때는 not acceptable 출력.이게 맞나요???
-
해결됨ARM Cortex-M 프로세서 프로그래밍
s202 LED 점등 예제 실행시 에러
안녕하세요 iar 사용자 현정호입니다. STM32CUBE IDE는 처음 사용하는데 s202 강의처럼 New Project를 실행하려니 아래의 에러메시지가 나옵니다. software package를 받으려면 어떤 경로로 해서 Cube ide를 설치해야 하나요? st.com에서 제공하는 cube ide를 설치했는데도 저런 메세지가 나온 거면 버젼을 다른 것을 받아서 나오는 메세지 인가요?
-
해결됨실전! 스프링 데이터 JPA
findAll() 여러개 정의하기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]만약 어떤 경우엔 @EntityGraph를 쓰고 어떤 경우엔 안쓰고 싶어서 원본 findAll()를 그대로 두고 새로운 findAll()과 같은 동작을 하는 메소드를 정의한다고 하면 어떻게 만들수 있나요?
-
미해결스프링부트 시큐리티 & JWT 강의
jwt에 관해 질문이 있습니다.
좋은 강의 감사합니다.강의를 모두 들었는데 궁금점이 생겨서 질문을 남기게 되었습니다.1. postman으로 했을 때에는 JSON 타입으로 값을 넣어주고 이후의 요청에서는 헤더에 있는 토큰을 직접 넣어줬었는데 실제 웹에서 요청할 때에는 postman처럼 헤더를 넣지 못하니까 자동으로 넣어지게 되나요?아니면 이거에 관련한 코드나 설정이 추가로 필요한가요?2. 이전의 시큐리티에서 세션을 사용해서 OAuth 코드랑 jwt에서의 OAuth 코드는 다르다 하셨는데 jwt를 쓸 때에는 OAuth를 사용하지 않는 편인가요?아니라면 세션과 약간 다르기는 하지만 비슷하게 코드를 짜면 jwt 로그인과 OAuth를 같이 사용할 수 있는지 궁금합니다!
-
해결됨스프링 핵심 원리 - 기본편
섹션 6, 7 AutoAppConfig Spring Container에서 에러발생
섹션 6, 7 AutoAppConfig.class파일을 활용하여 AutoAppConfigTest.class에서 Spring Container에서 에러발생합니다.Spring Container에 Bean이 등록이 안되는것같은데, Component와 Autowired 설정은 제대로 한것같은데도 Bean으로 등록이 안되는것같습니다 . 제 core 코드를 압출하여 링크로 첨부합니다.https://we.tl/t-a2UUbo53a8 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [Z:\ㄴㅇ\Study_Workdir\spring\1_spring_core_principle\core\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1354) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1191) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:960) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93) at hello.core.scan.filter.AutoAppConfigTest.basicScan(AutoAppConfigTest.java:14) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1880) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1406) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) ... 17 more
-
해결됨독하게 되새기는 C 프로그래밍
문자열 관련 질문 드립니다
우선 예제 코드를 먼저 보여드리겠습니다. char arr[13] = "Hello World\n";char* arrr = "Hello World\n"; printf("%p\n", &("Hello World\n"));printf("%p\n", arrr);printf("%p\n", arr); "Hello World\n" 과 arrr이라는 포인터 변수의 대상이 완전히 일치한다는 것은 이해했습니다.그래서 4행과 5행의 출력 결과는 같다는 것을 실습으로 확인했습니다.그런데 6행의 출력 결과는 앞의 두 경우와 다르게 나왔습니다. 질문은 총 4가지입니다. 포인터 변수를 통해 직접 메모리 주소를 가져오는 것과배열을 통해 지역변수를 선언하여 문자 배열의 정보를 담는 것은 전혀 다른 것인가요?그렇다면 1행의 정보는 stack 영역에 저장되는 것인가요?배열도 상수화된 포인터이기에 1행과 2행이 같은 메모리 주소를 가리켜야 되는 것이 아닌가요?2행에서 선언된 포인터 변수의 경우 배열 연산자로 접근하여 쓰기를 시도할 경우 엑세스 위반의 예외를 알려주는데 읽고 쓰는 권한 때문에 다른 메모리 주소를 가리키게 되는 것인가요?
-
해결됨실전! 스프링 데이터 JPA
게시판에서 삭제된 댓글을 보여주기 위해 Spring Data JPA에서는 어떻게 접근해야 할까요?
상황 설명기본적인 게시판을 만들고 있어요.해당 게시판에는 게시물를 달 수 있고 해당 게시물에는 댓글을 달 수 있어요.댓글과 관련한 요구사항들은 다음과 같습니다.댓글 Create, Update, Delete각 게시물은 몇 개의 댓글이 달렸는지 확인이 가능하다.게시판에서는 전체 댓글이 몇 개가 달렸는지 확인이 가능하다.게시물에 달려 있는 모든 댓글들을 확인할 수 있다. 다만, 삭제된 댓글의 경우 "삭제된 댓글입니다" 라는 메세지로 보여준다. 내 접근 방법(Where 어노테이션을 사용)우선은 4번 조건 때문에, 그리고 실무에서 관리를 위해 데이터를 잘 삭제하지 않는다는 걸 근거로 Soft-Delete를 적용했습니다.그리고 Comment 엔티티를 아래와 같이 작성했습니다.@Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @SQLDelete(sql = "UPDATE Comment SET deleted = true where comment_id = ?") @Where(clause = "deleted = false") public class Comment extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "comment_id") private Long id; private boolean deleted; ... 생략 ... } Comment 엔티티를 조회하는 대부분의 요청(1개 제외)은 deleted 필드가 false인걸 찾아와야 합니다. 그래서 디폴트 속성으로 deleted=false를 적용하면 편하겠다고 생각하여 Where 어노테이션을 사용했는데요. 문제점이 방식의 문제는 4번 요구사항을 구현할 수 없다는 것입니다.Spring Data JPA의 기본 메서드는 물론이고, JPQL, QueryDsl 을 사용한 모든 Comment 조회 쿼리에도 "deleted=false" 속성이 기본으로 달라붙어 deleted가 true인 Comment를 가져올 수 없습니다.(확실하지는 않지만, Native Query를 사용하면 하이버네이트 구현체의 영향을 안받고 제가 원하는 기능을 구현할 수 있을 거 같습니다. 그런데 Native Query를 쓰는게 최선일까 자꾸 꺼려지더라구요.) 임시 방안저는 어쩔 수 없이 Where 어노테이션을 제거하고, Comment에 관련한 모든 조회 쿼리를 JPQL로 만들어줬습니다.하지만 고작 한 개의 메서드에서 삭제된 메서드를 보여주기 위해 전체 Comment 조회 메서드를 변경하는 게 마음에 들지 않습니다. 관리를 어렵게 만든다는 생각이 들어요.실제로 저는 "게시판에서는 전체 댓글이 몇 개가 달렸는지 확인이 가능하다." 요구사항을 구현할 때, where deleted=false 조건을 붙이는 걸 깜빡해서 삭제된 댓글들의 개수까지 전부 보여줬습니다. 이러한 상황에서는 코드를 어떻게 작성하는 게 좋을까 계속 고민을 하고 있는데요,,, 함께 고민해주실 수 있을까 하여 이렇게 질문을 남깁니다. 감사합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
컨트롤러에서 html 파일로 바로가기가 안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.인텔리제이 Ultimate를 구매한 상태로 사용 중인데요. 영한님 강의 내에서는 (cmd + 클릭)으로 해당 html 파일로 바로가기가 되는데, 저는 안되네요. 구글링 해보아도 명확한 답을 얻지는 못해서 별도 설정 방법이 있는건지 여쭤봅니다!
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
https 적용 후에 이미지 주소에서 에러가 발생합니다.
http일 때는 문제가 없었는데 https 적용 후에 문제가 발생합니다.강의에서 알려주신 대로 하면 에러가 나와서 제로초 님 블로그 보고 cerbot이랑 nginx 설치했습니다.아래 코드만 강의와 다르게 했습니다.sudo snap install certbot --classic sudo apt-get install nginxsudo certbot --nginxhttps://www.zerocho.com/category/NodeJS/post/5ef450a5701d8a001f84baeb 에러 내용은 다음과 같습니다.https 적용 전https://abc.s3.ap-northeast-2.amazonaws.com/original/1705127046450_china.jpg https 적용 후https://abc/https:/abc.s3.ap-northeast-2.amazonaws.com/original/1705127046450_china.jpghttp://abc/ 이 부분을 없애는 방법을 알고 싶습니다. nginx.conf는 아래와 같습니다.server { // 실제로는 구매한 도메인 넣었습니다. server_name abc; location / { proxy_set_header HOST $host; proxy_pass http://127.0.0.1:3000/; proxy_redirect off; } }server { // 실제로는 구매한 도메인 넣었습니다. server_name api.abc; location / { proxy_set_header HOST $host; proxy_pass http://127.0.0.1:3000/; proxy_redirect off; } }
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
9-6. 아이콘 만들기 _ 해상도를 고려한 아이콘 Export하기의 내용에서 선을 면 <-> 면을 선으로 바꿀 수 있나요?
9-6. 아이콘 만들기 _ 해상도를 고려한 아이콘 Export하기의 내용에서 선을 면으로 바꾸면 수정시 원본이 없는 건데, 바꾼 면을 다시 선으로 바꿀 수 있나요? 있다면 방법을 알려주시면 감사하겠습니다!혹은 백업해놓고 바꿔 사용하는 게 더 효율적인지도 궁금합니다.
-
미해결FreeRTOS 프로그래밍
멀티태스킹
안녕하세요 강사님! 해당 강의에서 LCD펌웨어를 멀티태스킹가능하도록 만드는 방법에 대해서 공부하였습니다.만약에 모터를 제어하는 펌웨어를 멀티태스킹 가능하게 task로 만들면 해당 task가 멀티태스킹 되면서 PWM duty cycle이 낮아질 수도 있나요??아니면 pwm 장치는 cpu와 독립적으로 동작해서 다른 task에게 선점당하여도 똑같은 출력을 유지하는지 궁금합니다!
-
해결됨Flutter로 SNS 앱 만들기
Firebase StreamBuilder 사용은 왜 안 하나요?
댓글 불러오는 과정을 보고 있는데, 지금까지 각 모델(feed, comment) 전부 Firebase에서 전체 document 받아와서 list로 변환 후, update 하고나면 Firebase에 업로드하는데 그와 동시에 screen에 반영하기 위해 새로 get하여 list를 만들어서 표시해주는 것 같습니다. Firebase StreamBuilder를 사용하면 실시간으로 모든 변화들이 바로 업데이트 되어서 기존에 많이 썼는데, 혹시 이렇게 하지 않는 이유가 있을까요? (데이터 통신이 불필요하게 많이 일어나서 트래픽/요금 등의 문제가 있다든지 하는 현실적인 이유가 있는지 궁금했습니다)