묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher. 해결법을 모르겠습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.잘 따라가다가'13. Firebase로 이메일 로그인 기능 구현' 강의 수강 중pubspec.yaml 파일에flutterfire_ui: ^0.4.3+20 을 추가 하니The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher.The following dependencies do not satisfy the required version:project ':sign_in_with_apple' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50라고 오류가 떠서 못넘어가고 있습니다 ㅠㅠ 어떻게 해결해야할까요?구글링도 해봤으나 적절한 답을 찾지 못했습니다ㅠㅠ
-
미해결퍼블리셔 개인 포트폴리오 홈페이지 제작 완벽 가이드(PDF)
취업시 포폴을 제출할 때
궁금한점이 있습니다. 취업시 포트폴리오를 작성한 것을 제출할 때프로젝트 배포한것을 계속 유지한체 링크를 포폴에 올려줘야나요 아니면 배포했을 때 모습을 이미지로 보여주는 건가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
1차캐시와 SQL 쓰기지연 저장소에 저장되는 시점이 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]섹션3을 듣고 나서 영속성 컨텍스트에 대해서 이해가 되지 않아서 질문드립니다./* 비영속 / Member member = new Member(); member.setId(101L); member.setName("HelloJPA"); / 영속 / em.persist(member); Member findMember = em.find(Member.class, 101L); / 변경 감지 */ findMember.setName("HelloJPA dirty checking"); tx.commit();영속성 컨텍스트의 동작원리에 대해 이해하려다 보니 이상한? 코드가 작성되었는데 양해 부탁드립니다.Member 객체를 persist하면 영속성 컨텍스트에 저장되고 em.find를 하면 그 객체를 다시 가져오게 이때 영속성 컨텍스트에 저장된 객체는 1개그 객체의 value를 다시 변경하면 dirty checking에 의해 1차캐시에 저장된 객체에 반영 로그를 확인했을 때 commit 시점에 insert쿼리와 update쿼리가 둘다 나감. 트랜잭션이 commit되는 시점에 sql 쓰기지연 저장소에서 insert문 하나만 나갈 것으로 예상했는데 둘다 나가서 의아질문 드립니다.도중에 flush되는 시점이 없고 sql쓰기지연저장소에 쌓이는 시점 때문인거 같긴한데, 변경감지해서 쓰기지연저장소에 쌓이는 시점이 commit할 때가 아닌건가요? 아니라면 어느시점에 쌓이는 건지 궁금합니다. 또한 그래서 1차캐시가 sql 쓰기지연 저장소와 동기화가 되지 않는다고 이해하면 될까요?실제로 이렇게 코드가 작성되지는 않겠지만 영속성 컨텍스트가 어떤 메커니즘으로 작동하는지 궁금해서 여쭤봅니다. 강의 너무 잘듣고 있어요.!! 감사합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
상태코드
1.13:09 부분을Integer statusCode = (Integer)request.getAttribute(ERROR_STATUS_CODE)위와 같이 해도 될텐데, RequestDispatcher를 사용하신 이유가 궁금합니다.2.log.info("1 : " + request.getAttribute(ERROR_STATUS_CODE));log.info("2 : " + request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE));getAttribute의 반환 타입이 Object여서 위와 같이 로그 출력을 하면 Object안에 데이터가 출력될 줄 알았는데 500이 출력 됩니다.이건 왜 그런건가요? 타입 자동 변환 그런것이 있는 건가요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
github
제 깃헙 아이디를 만들어서푸시를 해야 이 섹션 진행 할 수 있는건가요?vscode와 git 연결을 해야하는건지답변 부탁드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
맥 OnRecvCompleted transferredBytes 에러
구글 프로토 버퍼 연동을 하던중서버에서는 패킷을 보내도 클라쪽에서 recvArgs 는 받은 바이트배열이 하나도 없는데 구글 프로토버프 패킷 형식이나 그냥 바이트 배열을 보내봐도 똑같습니다.분명히 socketError == SocketError.Success인데 받은 바이트가 없다는게 이해가 안됩니다ㅠ혹시 왜 그런지 알 수 있을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Google Map 강의 내용 관련
Google Map 관련된 내용을 학습하고 있는데, 재미있으면 댓글을 남겨주면, 관련된 내용을 좀 더 준비하시겠다고 해서 댓글 남깁니다." 재미 있음 "사용자가 특정 앱을 통해 본인의 위치를 조작할 수 없도록 하는 것에 대해서 코딩 강의를 해 주시면 좋을 것 같습니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
가장 간단한 Bean 검증이 안되고 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요.Bean Validation 가장 처음에 나오는 간단한 예제를 Item 클래스에 적용해 보았는데 오류 검증로직이 수행되지 않고 있습니다. 어디서 잘못된 것인지 조언 부탁드립니다.제가 만든 프로젝트는 아래 주소에 있습니다.https://drive.google.com/file/d/1QPoMqciIcKlqDc1jQFtRPTu55orNfEOs/view?usp=share_link감사합니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
기초적인 질문 질드려요 vscode에서 clear 명령어 사용
강의 영상중에서 5분 27초 보면vscode 터미널 내용지울땐, 선생님께서clear 라는 입력하시고 엔터 누르시면, 터미널 내용이 사라집니다.저는 clear라고 하면, 'clear'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.위와 같이 나옵니다. 그래서 찾아보니, cls라고 하면 지워진다고 하는데,선생님처럼 clear 명령어를 사용하고 싶습니다. 선생님께서는 터미널 단축키를 수정하신건지아니면 다른 터미널을 사용하신건지 궁금합니다. 이게 간단한거 같으면서도, 검색으로는 더이상 알아낼수가 없네요 알려 주시면 감사하겠습니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
주문 목록 API 호출 시 500 에러 (undefined (reading '0'))
주문 목록 실행 시 서버쪽 로그에서 아래와 같은 에러가 발생합니다. [Nest] 89380 - 04/14/2023, 5:33:24 PM ERROR [ExceptionsHandler] Cannot read properties of undefined (reading '0')TypeError: Cannot read properties of undefined (reading '0')at /cf-flutter-lv2-server/src/order/order.service.ts:35:39 호출 API 는 아래처럼 보내집니다.http://127.0.0.1:3000/order/?count=20 혹시 위 현상에 대해서 어떤 이유가 있을까요? 아래 서버 로그 추가로 올립니다. { basket: [ { productId: '76e4ddb0-0a4c-44c2-be91-b35fdd3e32a9', count: 1 }, { productId: 'faea6be9-f5ca-4005-9922-98c04ff2c89d', count: 2 } ]}PatchMeBasketDto { basket: [ { productId: '76e4ddb0-0a4c-44c2-be91-b35fdd3e32a9', count: 1 }, { productId: 'faea6be9-f5ca-4005-9922-98c04ff2c89d', count: 2 } ]}{ basket: [ { productId: 'faea6be9-f5ca-4005-9922-98c04ff2c89d', count: 2 } ]}PatchMeBasketDto { basket: [ { productId: 'faea6be9-f5ca-4005-9922-98c04ff2c89d', count: 2 } ]}{ basket: [ { productId: 'faea6be9-f5ca-4005-9922-98c04ff2c89d', count: 1 } ]}PatchMeBasketDto { basket: [ { productId: 'faea6be9-f5ca-4005-9922-98c04ff2c89d', count: 1 } ]}{ basket: [] }PatchMeBasketDto { basket: [] }
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
script 속성 defer 질문드립니다.
안녕하세요.<script> 태그를 넣는 위치에 대해 질문드립니다.<script> 태그를 </body> 바로 위에 넣어야 <body> 태그 안에 있는 html 내용들이 전부 파싱 된 이후에 script 가 실행된다고 하셨는데, 그렇다면 </head> 바로 위에 넣고 나서 script 태그의 속성으로 defer 를 넣으면 <body> 태그 안에 있는 html 내용들이 전부 파싱될때까지 <script> 태그 내용들이 실행을 기다렸다가 <body> 태그 안에 있는 html 내용들이 전부 파싱된 후에 실행된다고 알고 있는데,defer 속성을 쓰고, </head> 바로 위에 script 태그를 넣으면 안되는걸까요?2번 방법을 쓰게 된다면 아마 즉시실행함수를 만들어야 하는거 같은데, defer 속성을 쓰게 되면 즉시실행함수를 굳이 만들지 않아도 될것 같은데 defer 속성을 쓰면 안되는건가 해서 궁금해서 질문 드립니다!!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터, 인터셉터 흐름
1. 5:29부분에 "인터셉터와 중복으로 처리되지 않기 위해 앞의 logFilter() 의 @Bean 에 주석을 달아두자" 라고 하신거는 로그에 필터와 인터셉터 로그가 나와서 그런건가요?2. FilterRegistrationBean에 있는 @Bean을 제거 해서 doFilter로는 안가는데, 이 경우에는 filter가 없는거라 이해하면 되나요? 아니면 내분에 필터가 따로 있어서 그 필터가 적용되는 건가요?3. 필터에서 dispatchType=REQUEST로 설정해두는 부분이 아래 부분에서filterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ERROR);이 부분이 맞나요??public FilterRegistrationBean logFilter() { FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); filterRegistrationBean.setFilter(new LogFilter()); filterRegistrationBean.setOrder(1); filterRegistrationBean.addUrlPatterns("/*"); filterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ERROR); return filterRegistrationBean;}4. 3번이 맞다면 dispatchType은 REQUEST, ERROR로 설정이 된것이 맞나요?5. 4번이 맞다면 6:37 쯤에서 설명하시는 내용인 4번은 어떻게 진행이 되는 건가요?dispatchType이 REQUEST로 되어 있으면 ERROR의 경우에는 해당 필터가 호출되지 않는다고 하셨는데, 이 경우에는 호출이 되는 건가요?6. 필터, 인터셉터는 개발자가 코드를 작성해야만 적용이 되는 건가요? 아니면 내부에(?) 필터, 인터셉터가 알아서 처리되는 부분도 있는 건가요?
-
미해결파이썬을 활용한 머신러닝 딥러닝 입문
셔플 시, target과 데이터가 섞일 때
제가 강의를 들으며 사이킷런에 iris 샘플을 가지고 data와 target을 나누고 있는 와중에 문득 궁금한 점이 생겼습니다.train_test_split을 통해 train셋과 test셋을 나누게 되는데 shuffle이 True로 되어 있기 때문에 자동적으로 shuffle이 수행되지않습니까? 이 때 샘플데이터와 타겟은 짝을 지어서 셔플이 되는 건가요? 아니면 샘플데이터도 타겟 데이터도 둘 다 아무렇게나 섞이는 건가요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
복습하고 있는데,,,
import win32com.client as win32hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")단순하게 이 코드를 실행하는데 아래와 같은 에러가 발생합니다 pip install도 안되고 pip install --upgrade도 안됩니다 ㅜㅜ --------------------------------------------------------------------------- ImportError Traceback (most recent call last) Cell In[1], line 1 ----> 1 import win32com.client as win32 3 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") 5 hwp.XHwpWindows.Item(0).Visible = True File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\__init__.py:8 5 import os 6 import sys ----> 8 import pythoncom 9 import win32api 11 # flag if we are in a "frozen" build. File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\pythoncom.py:2 1 # Magic utility that "redirects" to pythoncomxx.dll ----> 2 import pywintypes 4 pywintypes.__import_pywin32_system_module__("pythoncom", globals()) File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32\lib\pywintypes.py:126 122 sys.modules[modname] = old_mod 123 globs.update(mod.__dict__) --> 126 __import_pywin32_system_module__("pywintypes", globals()) File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32\lib\pywintypes.py:52, in __import_pywin32_system_module__(modname, globs) 47 raise ImportError( 48 "Module '%s' isn't in frozen sys.path %s" % (modname, sys.path) 49 ) 50 else: 51 # First see if it already in our process - if so, we must use that. ---> 52 import _win32sysloader 54 found = _win32sysloader.GetModuleFilename(filename) 55 if found is None: 56 # We ask Windows to load it next. This is in an attempt to 57 # get the exact same module loaded should pywintypes be imported (...) 66 # That shouldn't really matter though, so long as we only ever 67 # get one loaded. ImportError: DLL load failed while importing _win32sysloader: 지정된 모듈을 찾을 수 없습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
Next.js 버전
이 수업에 대한 질문은 아니지만,next.js의 버전이 올라갔는데가르쳐주시는 버전으로 배워도취업하는데에 문제가 없을까요??
-
미해결스프링 배치
JdbcCursorItemReader ,JdbcBatchItemWriter한개의 db에서 데이터 전환
안녕하세요 JdbcCursorItemReader 와 JdbcBatchItemWriter를 이용해 기존 데이터를 변환해서 다른 테이블로 이관하는 테스트를 진행하고 있습니다. 근데 JdbcCursorItemReader 에서 select는 잘되는데 JdbcBatchItemWriter에서 insert쿼리를 날릴때 무한대기 현상이 발생하는거 같습니다.@Bean public Job transferDBJob(JobRepository jobRepository, Step transferBookStep){ return new JobBuilder("transferDBJob",jobRepository) .start(transferBookStep) .build(); } @Bean public Step transferBookStep(JobRepository jobRepository, PlatformTransactionManager tm, JdbcPagingItemReader<TransSpecies> pagingSpeciesReader, ItemProcessor<TransSpecies, Species> transItemProcessor, JdbcBatchItemWriter<Species> transItemWriter) { return new StepBuilder("transferBookStep",jobRepository) .<TransSpecies,Species>chunk(10,tm) .reader(pagingSpeciesReader) .processor(transItemProcessor) .writer(transItemWriter) .build(); } @Bean public JdbcPagingItemReader<TransSpecies> pagingSpeciesReader(DataSource dataSource,PagingQueryProvider createQueryProvider) { return new JdbcPagingItemReaderBuilder<TransSpecies>() .name("transSpeciesReader") .pageSize(10) .fetchSize(10) .dataSource(dataSource) .rowMapper(new BeanPropertyRowMapper<>(TransSpecies.class)) .queryProvider(createQueryProvider) .build(); } @Bean public PagingQueryProvider createQueryProvider(DataSource dataSource) throws Exception { SqlPagingQueryProviderFactoryBean queryProvider = new SqlPagingQueryProviderFactoryBean(); queryProvider.setDataSource(dataSource); queryProvider.setSelectClause("SPECIESKEY,AUTHOR,TITLE"); queryProvider.setFromClause("FROM TRANSSPECIES"); Map<String, Order> sortKeys = new HashMap<>(1); sortKeys.put("SPECIESKEY", Order.ASCENDING); queryProvider.setSortKeys(sortKeys); return queryProvider.getObject(); } @Bean public ItemProcessor<TransSpecies,Species> transItemProcessor(){ return transSpecies ->{ Species species = new Species(); species.setRecKey(transSpecies.getSpeciesKey()); species.setTitle(transSpecies.getTitle()); species.setAuthor(transSpecies.getAuthor()); return species; }; } @Bean public JdbcBatchItemWriter<Species> transItemWriter(DataSource dataSource){ return new JdbcBatchItemWriterBuilder<Species>() .sql("INSERT INTO SPECIES VALUES (:recKey, :author, :title)") .beanMapped() .dataSource(dataSource) .build(); }현재 작성한 간단하 코드이며로그에는 현재 이렇게 무한대기 상태에 놓이게 됩니다.확인 부탁드립니다 ㅠㅠ
-
해결됨Confluence를 활용해서 효과적으로 지식 관리와 프로젝트 협업하기
지켜보는 사람에게 알림 강제화
페이지 편집, 업데이트 시 "지켜보는 사람에게 알림" 이라는 체크 박스를 강제화하는 방법이 있을까요? 중요 내용 페이지라 변경 내용을 꼭 받고 싶은데. Watch에 넣어놔도 작성자들이 체크 박스를 강제로 uncheck하는 경우가 많아서요
-
해결됨자동차 SW - UDS 진단통신 정복하기
메세지 바이트가 8 바이트 초과시 전송 방법 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.서비스 ReadDTCInformation : DTC 기록 읽기 - SnapShot Data 수업 듣다가 데이터 크기가 8바이트 넘으면 CAN 또는 LIN은 전송을 어떻게 하는지 의문이 들어서 문의 드립니다.강의 내용 중 예를 들어Snapshot Record Num 이 많으면 뒤에 붙는다고 하셨는데 그럼 데이터 바이트 크기가 8 바이트 넘어 어떻게 전송이 되는걸까요?
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
국비를 듣고 나서 개인 공부 중인데 조언 부탁드려도 될까요
안녕하세요.현재 8개월 짜리 국비 강의를 수료하고 학교 졸업과 취준을 준비하고 있는 강의생입니다.저는 국비 다닐 때 나름 열심히 개인 공부도 했다고 다른 학우분들과 비교해봐도 못하는 수준은아니었어서 수료 후서비스 회사를 목표로 포폴을 쌓아야겠다는 생각에 외부에서 스터디도 구하고, 프로젝트도 진행해보고 있습니다.그런데 국비에서 배운 것이 얼마나 얄팍한 지식이었는지 깨달았습니다. Spring Boot도 아니고 Spring legacy를 수업에서 사용했었고, API는 들어보지도 못하고 기본적인 CRUD만 작성하여 JSP에 뿌리는 법을 배워서 그걸 응용한 프로젝트 만든 것이 끝이었더라고요.외부에서 다른 사람들은 AWS, Swagger이런 것을 다룰 때 8개월간 공부한게 허송세월인 것 같아서 너무 혼란스럽습니다.지금이라도 SpringBoot와 JPA같은 최신 기술을 공부하면서 어찌저찌 CRUD기능은 구현할 수 있도록 만들어놓았는데 계속 찾아보니 백엔드로는 채팅서비스, 위치기반 서비스 이런 것도 프로젝트로 구현하는 것을 보았습니다. 겨우 CRUD만 구현할 줄 아는 제가 감히 서비스 기업을 노려도 되는지 자신이 없어집니다. 사실 SI도 제게 감지덕지인게 아닌가 싶고...지금 할 수 있는 최선이 무엇일까요? 기존에는 취준에 집중하려고 CS공부, 코딩테스트 공부에 집중하려고 했는데, 쌓아놓은게 없다는 사실 때문에 뭐부터 해야할지 감도 안옵니다. 조언 부탁드려도 될까요?
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
지표 정의하기 연습문제
강의를 듣고 해야지 해야지 했는데 드디어 풀었네요! 풀고나서 피드백을 들으면 저의 생각 확장에 도움이 될것 같아 인프런 질문 게시판에 올려봅니다! 미리 감사드립니다:)#1. 기능이 잘 동작하고 있는지 확인하려면?(메인 화면의 모든 영역이 에러없이 잘 보인다는 가정하에)Click이라는 절대적 수치 → (단순히 기능이 잘동작하는지만 확인하려면) Click 이라는 이벤트가 각 영역에서 일어나고 있는지 그리고 얼마나 많이 일어나고 있는지 해당 기능이 잘 동작하고 있다는 것을 볼 수 있음해당 지표가 전체 영역에대해 증가되면 잘 동작하는 것(보조)CTR : (각 영역의 클릭수) / (해당 홈화면에 들어오는 유저 수) → 클릭율이 높은 영역을 통해 우리 앱 내 서비스에서 어떤 영역이 인기가 있는지 알 수 있음(부가적) 각 영역에서 다음 페이지로의 전환율(CVR) → 각 영역에서의 클릭수가 증가하고 각 영역에서의 구매 전환이 전반적으로 상승한다면 잘 동작한다고 볼 수 있을것 같음 → 퍼널이 길어서 정확하게 부합하는 지표는 아니고 추가로 같이 볼 수 있지 않을까?비즈니스 질문우리 홈화면에서 각 영역의 버튼 기능이 잘 동작하고 있어?각 영역의 클릭수 확인 : 해당 메인 페이지에 들어온 유저 대비 몇명이 클릭수를 남기는지 비교 함으로써 클릭이라는 이벤트가 잘 쌓이는지도 확인 가능어떤 영역을 통해 우리 유저들이 구매로 넘어갈까?각 영역의 CTR : 어떤 부분에 더 초점을 맞춰야 하는지 어떤 영역이 죽어가는 영역인지 알 수 있을 것으로 예상#2. 검색 만족도 지표검색 만족도 지표(검색 기능에 만족했는지 알기위해) 퍼널: 검색페이지 → 검색 결과 페이지(plp) → 제품 상세 페이지(pdp)아래 두 지표가 높아지면 좋음(메인) CTR : 검색 결과 plp페이지에서 pdp페이지로의 클릭율로 확인(보조) CVR: 검색을 통해 pdp 페이지 클릭 후 해당 페이지에서 구매 전환이 일어난 경우재검색율: 한 유저가 검색을 몇번이나 다시 하는지상황 시뮬레이션검색 결과 페이지를 만족했을 경우상품 상세 페이지로 넘어가고 plp페이지로 나오고를 반복 후 마음에 드는 음식점에서 음식을 구매 할 것임불만족 했을 경우상단에 보이는 몇개의 결과물들을 본 후 다시 검색 시도몇개의 상품 페이지에 들어갔다가 다시 검색 시도엣지)처음 검색어에 만족했는데 유저의 마음이 변심해서 새로 또 검색하는 경우 (재검색이지만 사실 검색 만족도가 잘 되지 않았다고 보기는 어려움) → 그래서 아닌 재검색율을 메인지표로 쓰기엔 어렵고 보조 지표로는 볼 수 있을 것 같음 #3. 검색 필터 기능의 활성화 지표검색 필터 기능의 활성화 지표검색 필터 기능은 잘 사용되고 있을까요? 전체 검색을 활용하는 유저중 얼마나 많은 유저가 검색 필터 기능 버튼을 클릭하는지 확인필터 기능의 활성화 지표 정의필터 기능 버튼의 클릭율(CTR)필터 기능 버튼 클릭 수 / 검색을 이용한 유저 수검색 필터를 활용하는 사람이 구매를 정말 더 잘 일으키는 가?필터를 하면서까지 무언가를 검색하려는 목적이 분명한 유저?검색 필터 이후 구매 하기까지 pdp페이지 조회(혹은 구매전까지의 시간)를 더 단축했는지도 해당 기능이 잘 작용하고 있는지의 중요한 부분일 것 같다.필터를 하는 이유는 나의 조건에 맞는 애들만 적합하게 보기 위함이기 때문(로그 설계)필터 기능 버튼들 중 각 버튼에 대한 클릭 로그를 기록해두어야 함필터 기능 중에서도 어떤 기능을 많이 쓰는지 부가적으로 알 수 있으면 해당 영역을 앞으로 배치하는 등 순서를 새로 정렬 할 수 있음#4.배달 서비스에서 가장 중요한 지표는?배달 서비스에서 가장 중요한 지표는 무엇일까요? (MECE)배달 건수왜? 배달 건수가 결국 해당 어플에서의 거래액을 만들어내고 매출액이 거래액에서 몇 %의 비중으로 떨어질 것이라고 생각해서 매출과 가장 직결된 지표라는 생각어떻게 배달 건수를 늘릴 수 있을까?(MECE)주문자(유저)주문 건수추가로 해당 어플을 사용하는 유저의 수를 늘릴 수 있도록 노력한다.프로모션, 광고 등 신규 유저의 유입 혹은 기존 유저가 재주문 할 수 있도록 유도한다.보통 주문이 몰리는 점심,저녁이 아닌 아침이나 야식 혹은 간식과 같은 카테고리에 대해 프로모션을 진행해서 주문이 적은 시간에 주문을 늘릴 수 있도록 해본다.배달이라는 코어를 중심으로 유저 중심에서 언제 배달을 주문하게 될지 고민후 서비스를 개발한다비마트. 배민스토어 등등셀러(공급자)음식점의 평점해당 서비스의 카테고리별 셀러 수유저가 선택할 수 있는 선택지인 음식점을 다양하고 많이 제공한다.배달원(중간 다리)배달원 한명당 배달에 걸리는 평균 시간한 배달원이 하루에 처리하는 배달 건수배달원의 배달 만족도 평점배달원을 증가 시킴으로써 더 빠른 배달이라는 배달의 질을 높여 유저의 만족도를 높이고 해당 만족도를 기반으로 배달 건수를 늘려볼 수 있지 않을까? #5.추천 알고리즘의 성능 지표추천 알고리즘의 성능 지표추천 알고리즘의 목표: 유저에게 추천이 잘 동작해서 유저가 그 추천 제품을 클릭하게 만드는 것.(관심) 한 단계 더 나아가면 구매 전환을 일으킬 상품까지도 잘 추천했는가?CTR: 직관적으로 상품에 관심이 가면 그 상품을 클릭하게 될테니 상품의 노출대비 클릭이 어느 정도 되었는가로 추천 알고리즘의 성능을 확인할 수 있을것으로 판단된다.CTCVR(ctr*cvr): 추천한 상품이 마음에 들면 유저는 추천 알고리즘을 통해 나온 상품을 구매하게 될테니 추천한 상품이 유저에게 노출대비 얼마나 실제로 구매까지 전환이 되었는지 고려AUC-ROC#6.자주 사용하는 서비스의 지표내가 자주 사용하는 서비스의 지표(지그재그)쇼핑몰 어플의 특성상 구매가 잘 일어나는것도 중요하지만 유저들이 한번 탐색 혹은 경험 후 얼마나 다시 들어와서 탐색 혹은 구매를 다시 일으키는가도 매우 중요한 요소 중 하나임재방문 횟수 : 처음 가입한 유저가 한달이내에 몇 번 들어오는가리텐션: 3일 혹은 7일 등 해당 데이터를 살펴본 후 평균 유저의 재방문 주기를 파악하여 해당 일자 기준으로 N-day 리텐션을 계산해본다.체류시간 : 어플에 머무르는 시간(분단위)세션 아이디를 수집할 수 있다면 세션 시작 로그와 마지막의 로그 사이의 시간 차를 계산하는 것이 가장 좋음조건: 중간에 1시간 이상의 차이가 있을 경우 한 세션 안에 그룹을 나눠 체류시간을 계산구매 건 수: 구매 총 함계 액의 몇 % 비중으로 수수료를 받는것으로 알 고 있음. 단순히 체류하고 자주 방문하는 유저로 부터 구매가 많이 일어나야 좋은 서비스이므로 해당 지표도 같이 봐보자.#7. 퍼널 개선 프로젝트가입 퍼널 개선 프로젝트(쏘카 케이스 스터디랑 유사하게)가입 퍼널 프로세스의 전환율: 가입페이지에(A)들어와서 가입을 완료하는 유저의 비율해당 온보딩 페이지를 추가 한 후 가입 전환율이 개선되었는지 보면 될것 같다.(대조군)현재 가입 퍼널: A → C(가입 정보 기입) → D (가입 완료 페이지) (실험군)온보딩 추가 가입 퍼널: A → B(추가) → C → DC → D로 넘어가는 유저의 비율을 보면 온보딩의 효과를 할 수 있을것 같음(가드레일) 실험군과 대조군의 A → D의 전환율(예약 페이지의 전환율) : 해당 기능을 추가함으로써 현재 프로세스 전환율에는 크게 영향을 주면 안됨(가드레일)이탈률: 이거 계산 어떻게 할 수 있지? 1 - (B페이지에서 C로 가는 유저의 비율)멘탈 시뮬레이션실험군과 대조군의 A → D의 전환율(예약 페이지의 전환율)에 차이가 크다(온보딩 페이지 추가했더니 이탈률이 급중함) 이럴 경우 실험 중단이탈률에 큰 차이가 없다면)C → D로 넘어가는 유저의 비율이 실험군에서 더 높다면 실험 성공적낮다면 유저 세그멘테이션을 쪼개서 생각해보기