묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[PY 0201] 인공지능을 위한 파이썬 레벨1
semester1,2 관련 질문입니다 ㅎㅎ
혹시 총 커리큘럼의 semester1,2에 대한 강의는 인프런에 탑재하실 생각은 없는지 여쭤보고 싶네요~
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
비즈니스 로직 담당 서비스
비즈니스 로직만을 담당하는 BookApplicationService 를 두는게 새롭고 좋은 구조 아닐까 생각이 들어서 제 생각이 맞는지 궁금해서 여쭙습니다. Query 이름의 서비스는 조회만을Command 는 등록, 수정, 삭제 담당하는 것이고 또한 이런 서비스 구조가 순환참조 발생 가능성도 줄일 수 있겠죠? p.s 강의 잘 듣고 있습니다. 처음 겪어보는 내용들이 많아서 재밌고 배울게 많네요. 강의 빨리 더 내주십시오.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
UseInAction에 대해서 질문드립니다.
제가 TargetSelectionTimingOption을 useInAction으로 했는데 SpawnSkillObjectAction클래스의 Apply부분에서 에러가 발생합니다.public override void Apply(Skill skill){foreach (var targetPosition in skill.TargetPositions) // 이 부분에서 에러 발생{var skillObject = GameObject.Instantiate(skillObjectPrefab).GetComponent<SkillObject>();skillObject.transform.position = targetPosition + (Vector3.up * 0.001f);skillObject.Setup(skill, targetSearcherForSkillObject, duration, applyCount, objectScale);}} 에러는 다음 오류가 발생합니다.NullReferenceException: Object reference not set to an instance of an objectSpawnSkillObjectAction.Apply (Skill skill) (at Assets/Scripts/Core/Skill/Action/SpawnSkillObjectAction.cs:25)Skill.Apply (System.Boolean isConsumeApplyCount) (at Assets/Scripts/Core/Skill/Skill.cs:643)InActionState.Apply () (at Assets/Scripts/Core/Skill/StateMachine/State/InActionState.cs:75)InActionState.Enter () (at Assets/Scripts/Core/Skill/StateMachine/State/InActionState.cs:23)StateMachine`1[EntityType].ChangeState (StateMachine`1+StateData[EntityType] newStateData) (at Assets/Scripts/Core/StateMachine/StateMachine.cs:88)StateMachine`1[EntityType].ChangeState (State`1[EntityType] newState, System.Int32 layer) (at Assets/Scripts/Core/StateMachine/StateMachine.cs:99)StateMachine`1[EntityType].TryTransition (System.Collections.Generic.IReadOnlyList`1[T] transtions, System.Int32 layer) (at Assets/Scripts/Core/StateMachine/StateMachine.cs:117)StateMachine`1[EntityType].Update () (at Assets/Scripts/Core/StateMachine/StateMachine.cs:135)Skill.Update () (at Assets/Scripts/Core/Skill/Skill.cs:396)SkillSystem.UpdateSkills () (at Assets/Scripts/Core/Skill/SkillSystem.cs:165)SkillSystem.Update () (at Assets/Scripts/Core/Skill/SkillSystem.cs:76)
-
미해결김영한의 실전 자바 - 중급 2편
변수 작명하신 부분에 궁금증이 있습니다!
<섹션 2 - 제네릭이 필요한 이유>부분인데요. IntegerBox 클래스는 set 메서드에 변수가 value로 작명 되어있습니다. 그러나,StringBox 클래스는 set 메서드에 변수가 object로 작명 되어 있습니다.StringBox에 set 함수 매개변수에, String str이 아니라, String object라고 하신 이유가 혹시 있는걸까요? String str이라고 해도 물론 되겠지만, 혹시 "String object"로 매개변수를 받도록 하신 특별한 의도가 있는건가 싶어서요.
-
미해결스프링 핵심 원리 - 기본편
충돌문제 강의실습과 다른 결과가 나타납니다.
06:03 부터 @SpringBootApplication어노테이션으로 스프링구동을 진행함으로서앞서 AutoAppConfigTest 를 했을 때 replace되어 정상구동되는 현상과 반대되는 결과를 보여주시고 계십니다. 스프링부트는 오류를 발생시키는 것을 저도 똑같이 확인하기 위해 실습을 했는데요. 결과메세지가 달랐습니다. Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined in file [C:\Users\eh\Desktop\Source\core\out\production\classes\hello\core\member\MemoryMemberRepository.class] - memberRepository: defined by method 'memberRepository' in class path resource [hello/core/AppConfig.class]강의에서는 AutoAppConfig에 작성한 수동빈과 @Compoent로 등록된 자동빈의 충돌을 다뤘으나, 저의 경우 AppConfig가 등장했습니다. 강사님도 AppConfig를 건들지 않으신것으로 알고있습니다. 다음과 같습니다.@Configuration public class AppConfig { public AppConfig() { System.out.println("AppConfig 생성자호출"); } // 서비스단 @Bean public MemberService memberService(){ System.out.println("call AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService(){ System.out.println("call AppConfig.orderService"); return new OrderServiceImpl( memberRepository(), discountPolicy()); } // Repository @Bean public MemberRepository memberRepository(){ System.out.println("call AppConfig.memberRepository"); return new MemoryMemberRepository(); } @Bean public DiscountPolicy discountPolicy(){ System.out.println("call AppConfig.discountPolicy"); return new RateDiscountPolicy();//return new FixDiscountPolicy(); } } 다음은 자동구성입니다.@ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig { public AutoAppConfig() { System.out.println("AutoAppConfig의 생성자호출"); } // [수동빈등록] // 자동등록 된 빈과 충돌이 발생하지 않으며 아래 수동등록 빈으로 덮어써짐 @Bean(name = "memoryMemberRepository") public MemberRepository memberRepository() { return new MemoryMemberRepository(); } }@Component public class MemoryMemberRepository implements MemberRepository{...} 총 3개의 코드가 충돌을 일으킬 후보를 추려봤습니다.AppConfig의 MemberRepository 수동등록 코드(name = "memberRepository")AutoAppConfig의 MemberRepository 수동등록 코드(name = "memoryMemberRepository")MemoryMemberRepository 자동등록 코드(name = "memoryMemberRepository") 강사님은 2,3이 충돌했는데저는 왜 1,3이 충돌한 걸까요ㅠㅠ
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
확장 프로퍼티 질문
안녕하세요, 확장 프로퍼티 관련하여 질문이 있습니다! 확장 프로퍼티를 생성자에 추가하는건 어려운 것 같고 내부프로퍼티로 활용하는 정도로 사용하는 것 같은데..이렇다면 확장 프로퍼티를 주로 사용하는게 isAdult같은 특정 프로퍼티를 이용해 새로운 값을 반환해주는 용도의 프로퍼티를 만드는것 위주로 사용하게 될까요?? 사용처가 와닿는게 없어서 실무에서 사용하는경우가 어떤게 있는지 알려주시면 감사하겠습니다!그리고 추가로 제가 KMan이라는 Person을 상속받는 클래스를 임의로 만들어서 거기에 test2라는 확장 프로퍼티를 만들었는데요,코드를 찍어보니 아래처럼 KMan에 받아온 value를 대입해주는 것 같은데 KMan이라는 클래스에는 test2라는 프로퍼티가 선언되있는게 없으니 역시나 에러가 나더라구요커스텀 프로퍼티에서 setter를 만들 수 있는건 그냥 ide에서 대응을 못할 뿐 사실상 불가능한게 맞는건가요? @_@.. public static final void setTest2(@NotNull KMan $this$test2, @NotNull String value) { Intrinsics.checkNotNullParameter($this$test2, "<this>"); Intrinsics.checkNotNullParameter(value, "value"); setTest2($this$test2, value); }
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
type했더니 dict가 나오는게 아니라 이상한게 나옵니다
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
findByItemNameLikeAndPriceLessThanEqual 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]스프링 데이터 JPA 적용1 강의에서findByItemNameLikeAndPriceLessThanEqual 라는 쿼리메서드는'select i from Item where i.price<= ?' 라는 JPQL이 실행된다 라고했는데 'select i from Item i where i.itemName like :itemName and i.price <= :price'가 맞는거 아닌가해서요LikeAnd가 붙었는데 기존과 동일하다고 설명되어있길래 질문드려요
-
해결됨한 입 크기로 잘라먹는 타입스크립트(TypeScript)
강의 영상이 나오지 않습니다.
섹션3 타입스크립트 기본타입 별칭과 인덱스 시그니처, Enum 타입, Any와 Unknown 타입, Void와 Never 타입 총 4개 음성은 나오나 영상은 나오지 않고 있습니다 확인 부탁 드리겠습니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
캐시를 기다리는 중. 질문드립니다
공통 컴포넌트 만들기 과정에서 Header left right버튼을 넣어서 수정하고 랜더링하는 과정에서 무한 대기로 빠집니다.Header를 삭제하면 랜더링이 잘 되는데, 동일하게 코드를 따라했음에도 Header를 넣으면 "캐시를 기다리는 중"이라는 문구와 함께 대기 상태로 접어듭니다원인을 잘 모르겠습니다
-
미해결한국에서 제일 쉬운 리눅스 커널 강의
set_ftrace 질문
안녕하세요. 커널 강의 잘 듣고있습니다. set_ftrace.sh 스크립트 실행하다가 오류가 발생했는데21 번째 줄 ttw_do_wakeup 이 available_filter_functions에 없는 것으로 판단 됩니다. do_wakeup 대신 do_activate로 바뀐 거 같은데 맞는 걸까요? 커널 버전은 6.6 입니다!
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
강의 관련
강의를 새로 구매하기에는 비용이 부담되어 현재 수강중인 것 기간만료 후 연장하고 싶은데, 방법이 있을까요?비용을 조금 추가하는 방법이라도 좋으니, 2주정도만 연장하고 싶습니다. 양해 부탁드립니다.
-
미해결김영한의 실전 자바 - 기본편
자바 메모리 구조 관련 질문입니다~
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. "자바 메모리 구조"라는 게, 자바 프로그램이 실행될 때 JVM이라는 가상 컴퓨터에서 항상 실행되고, 그 컴퓨터의 메모리 구조가 메서드영역 / 스택 영역 / 힙 영역 이렇게 구분된다고 받아드리면 될까요?그러면 이 JVM은 실제 컴퓨터의 물리적인 메모리의 일부를 할당받아서 사용한다고 보면 될까요?그리고 실제 컴퓨터의 메모리는 메서드영역 / 스택 영역 / 힙 영역 이렇게 구분되는 건 아닌거라고 생각하면 될까요?
-
미해결김영한의 실전 자바 - 중급 2편
arrayList 다운 캐스팅 오버헤드에 대한 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 영한님 강의 잘 수강하고 있습니다 😀 수강중 한가지 궁금한 점이 생겨 질문드립니다.arrayList에서 제너릭을 사용시 타입 이레이지에 의해 컴파일시 Obejct로 타입이 변경된다고 알고 있습니다. 당연히 그과정에서 값을 꺼내면 (예를들어 String을 꺼낸다고 가정) Object -> String으로 다운 캐스팅이 되어야 한다고 이해하고 있습니다.이렇게 되면 개발자의 의도와 다른 다운 캐스팅이 발생하게 되고 이런 캐스팅은 리스트와 같은 복수개의 데이터를 다루는 컬렉션에서 오버헤드를 크게 발생시킬수도 있겠다는 생각을 하게 되었습니다. 혹시 이러한 질문에 대한 내용이 맞는지와 맞다면 어떤방식으로 개선할 수 있을지 의견을 구할 수 있을까요??
-
해결됨C++로 만들면서 배우는 게임 개발과 알고리즘 with Windows API
PPT도 수업자료로 올려주실 수 있나요?
강의에 관련된 질문만 받습니다 !또한, 강의에 누락된 부분이나 부족한 부분이 있다면 알려주시면 감사드리겠습니다 ^_^
-
해결됨스프링 시큐리티
[해결 방법] MethodSecurityConfig.customMethodSecurityMetadataSource() 호출하지 않는 이슈
@EnableGlobalMethodSecurity 애노테이션이 설정되어있는 곳 모두 찾아서 주석 처리@Order(0) //@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true) @EnableWebSecurity @Configuration public class SecurityConfig2 extends WebSecurityConfigurerAdapter {@Order(1) @Configuration //@EnableGlobalMethodSecurity(securedEnabled = true) @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
STOP_WATCH vitis에서 run 실행 문제
안녕하세요 맛비님! 이전에도 같은 질문을 올렸습니다. 우선은 다음과 같은 오류가 발생합니다. 빌드 후 첫 번째 run을 실행하면 해당 오류가 뜨고있구요Memory write error at 0x100000. Cannot flush CPU cache. APB AP transaction error, DAP status 0xF0000021다시 한 번 실행하면 아래와 같이 오류가 발생합니다.Cannot reset APU. APB AP transaction error, DAP status 0xF0000021 보드를 리셋하고 다시 run을 실행하면 첫 번째 오류가 다시 뜹니다. run을 실행할때 보드가 연결되면 불이 들어오게 되어있는데 연결되었다고 뜨는 불은 잘 들어옵니다. 구글링을 통해서 시도를 해 본 몇가지 방법은 일단 vivado에서 DDR쪽의 딜레이는 0ns로 그대로 설정되어 있고 보드 딜레이를 0.25에서 0.5ns로 바꿔보고 다시 bitstream을 하여 바꿔서 실행해봤습니다. (별 다른 효과는 없었습니다.) 케이블 연결 불량 같아서 케이블을 재주문 해서 시도해보았으나 같은 오류가 계속 떴습니다. 혹시 보드가 망가졌다고 생각되어 간단하게 버튼으로 LED를 통제하는 (vivado에서 bitstream 후 보드 연결하고 바로 동작시켰습니다.) 간단한 프로그램으로 테스트를 해보았는데 정상 작동되었습니다. 그래서 보드가 망가진 건 아닌 거 같습니다. HW = SW 의 주소도 일치하는지 확인해보았구요. 혹시 vivado 및 vitis 업데이트와 관련이 있을까요? 해결방법 알고계시다면 답변 주시면 너무 감사하겠습니다 ㅠ.ㅠ board = Cora Z7 (xc7z007s)vivado & vitis version = 2023.2
-
미해결BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
[인프런 빅쿼리 빠짝스터디 2주차] 윈도우 함수, FRAME 설정, QUALIFY
연습 문제(1) 윈도우 함수-- 1) user들의 다음 접속 월과 다다음 접속 월을 구하는 쿼리를 작성해주세요. SELECT user_id, visit_month, LEAD(visit_month, 1) OVER (PARTITION BY user_id ORDER BY visit_month) AS after_visit_month_1, LEAD(visit_month, 2) OVER (PARTITION BY user_id ORDER BY visit_month) AS after_visit_month_2, FROM `advanced.analytics_function_01` ORDER BY user_idLEAD 함수와 적절한 수를 이용해 작성LEAD 함수에 들어가는 인자에 따라 다음인지 다다음인지 정할 수 있음따로 정해주지 않을 경우 1로 인식OVER의 뒷 내용이 생각보다 조금 복잡해 한번에 떠오르지는 않았음OVER의 ORDER BY의 기본은 오름차순 -- 2) user들의 다음 접속 월과 다다음 접속 월, 이전 접속 월을 구하는 쿼리를 작성해주세요. SELECT user_id, visit_month, LEAD(visit_month, 1) OVER (PARTITION BY user_id ORDER BY visit_month) AS after_visit_month_1, LEAD(visit_month, 2) OVER (PARTITION BY user_id ORDER BY visit_month) AS after_visit_month_2, LAG(visit_month) OVER (PARTITION BY user_id ORDER BY visit_month) AS previous_visit_month_1, FROM `advanced.analytics_function_01` ORDER BY user_idLAG 사용해 이전 값 구해봄LAG 안에 특별한 숫자를 주지않으니 1로 인식하는 것을 확인함LEAD 값이 NULL → 해당 값이 마지막 값LAG 값이 NULL → 해당 값이 첫번째 값-- 3) user의 다음 접속까지의 간격을 구하시오 SELECT user_id, visit_month, LEAD(visit_month, 1) OVER (PARTITION BY user_id ORDER BY visit_month) AS after_visit_month_1, (LEAD(visit_month, 1) OVER (PARTITION BY user_id ORDER BY visit_month) - visit_month) AS diff_month, FROM `advanced.analytics_function_01` ORDER BY user_idSELECT 절에서 만들어진 컬럼은 그대로 사용할 수는 없음하지만 위와 같이 할 경우 너무 길어지고 복잡해짐(중복됨) → 서브쿼리 사용 SELECT *, (after_visit_month_1 - visit_month) AS diff_month FROM ( SELECT user_id, visit_month, LEAD(visit_month, 1) OVER (PARTITION BY user_id ORDER BY visit_month) AS after_visit_month_1, FROM `advanced.analytics_function_01` ORDER BY user_id )쿼리를 최대한 덜 수정하는 방향으로 작성해 볼 것(2) QUALIFY-- amount_total : 전체 SUM -- cumulative_sum : row 시점에 누적 SUM -- cumulative_sum_by_user : row 시점에 유저별 누적 SUM -- last_5_orders_avg_amount : order_id 기준으로 정렬하고, 직전 5개 주문의 평균 amount SELECT *, SUM(amount) OVER() AS amount_total, SUM(amount) OVER(ORDER BY order_id) AS cumulative_sum, SUM(amount) OVER(PARTITION BY user_id ORDER BY order_id) AS cumulative_sum_by_user, AVG(amount) OVER(ORDER BY order_id ROWS BETWEEN 5 PRECEDING AND 1 PRECEDING) AS last_5_orders_avg_amount FROM advanced.orders ORDER BY order_idBETWEEN 앞에 ROWS를 빼먹어서 계속 오류를 냈음-- 1) 사용자별 쿼리를 실행한 총 횟수를 구하는 쿼리를 작성해주세요. -- 단, GROUP BY를 사용해서 집계하는 것이 아닌 query_logs의 데이터의 우측에 새로운 컬럼을 만들어주세요. SELECT *, COUNT(query_date) OVER(PARTITION BY user) AS cnt_by_user FROM advanced.query_logs데이터에 NULL값이 없으므로 어떤 열을 세던지 상관 없음-- 2) 주차별로 팀 내에서 쿼리를 많이 실행한 수를 구한 후, 실행한 수를 활용해 랭킹을 구해주세요. -- 단, 랭킹이 1등인 사람만 결과가 보이도록 해주세요 SELECT *, RANK() OVER(PARTITION BY team, week_key ORDER BY cnt_by_user DESC) AS rnk FROM ( SELECT user, team, IF(query_date < '2024-05-01', 1, 2) AS week_key, COUNT(user) AS cnt_by_user FROM advanced.query_logs GROUP BY ALL ) QUALIFY rnk = 1 ORDER BY team, week_key'주차별’에 대한 아이디어가 잘 떠오르지 않았음 → 데이터의 범위가 좁기 때문에 일단은 IF를 통해 주차를 구분해줌 → 날짜 범위가 넓어지면 어떻게 할지 아직은 모르겠음서브 쿼리 사용해봄PARTITION이 2개임(주차별, 팀별)QUALIFY 사용할 것(생각 못하고 LIMIT 쓰려다 막힘)-- 강의 코드 WITH query_cnt_by_team AS( SELECT EXTRACT(WEEK FROM query_date) AS week_number, team, user, COUNT(user) AS query_cnt FROM advanced.query_logs GROUP BY ALL ) SELECT *, RANK() OVER(PARTITION BY week_number, team ORDER BY query_cnt DESC) AS rk FROM query_cnt_by_team QUALIFY rk = 1 ORDER BY week_number, team, query_cntEXTRACT 함수 통해 ‘주차’ 추출GROUP BY 후 윈도우 함수 사용 → 유연하게 사용할 것-- 3) (2번 문제에서 사용한 주차별 쿼리 사용) 쿼리를 실행한 시점 기준 1주 전에 쿼리 실행 수를 별도의 컬럼으로 확인할 수 있는 쿼리를 작성해주세요 SELECT *, LAG(query_cnt) OVER(PARTITION BY user ORDER BY week_number) AS previous_week_cnt FROM query_cnt_by_team ORDER BY userWITH AS로 만든 테이블 그대로 사용-- 4) 시간의 흐름에 따라, 일자별로 유저가 실행한 누적 쿼리 수를 작성해주세요 SELECT *, SUM(query_cnt) OVER(PARTITION BY user ORDER BY query_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumul_cnt FROM ( SELECT user, team, query_date, COUNT(*) AS query_cnt FROM advanced.query_logs GROUP BY ALL ) ORDER BY user, query_dateGROUP BY한 서브쿼리 사용FRAME 사용이 그렇게 까다롭진 않았음FRAME의 defalut 값 → UNBOUNDED PRECEDING ~ CURRENT ROW-- 5) 다음 데이터는 주문 횟수를 나타낸 데이터입니다. 만약 주문 횟수가 없으면 NULL로 기록됩니다. -- 이런 데이터에서 NULL 값이라고 되어있는 부분을 바로 이전 날짜의 값으로 채워주는 쿼리를 작성해주세요 SELECT date, IF(number_of_orders IS NULL, LAG(raw_data.number_of_orders, 1) OVER(ORDER BY date), number_of_orders) AS number_of_orders FROM raw_data조건문 사용해서 IS NULL인 값들만 LAG 사용기존의 number_of_orders가 사라지는 문제가 있음마지막 날짜는 안채워짐(연속으로 NULL이라) -- 강의 코드 SELECT *, LAST_VALUE(number_of_orders IGNORE NULLS) OVER(ORDER BY date) AS last_value_orders FROM raw_dataLAST_VALUE + IGNORE NULLS 사용-- 6) 5번 문제에서 NULL을 채운 후, 2일 전 ~ 현재 데이터의 평균을 구하는 쿼리를 작성해주세요(이동 평균) SELECT *, AVG(last_value_orders) OVER(ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_average FROM ( SELECT *, LAST_VALUE(number_of_orders IGNORE NULLS) OVER(ORDER BY date) AS last_value_orders FROM raw_data서브쿼리 사용했지만 WITH로 정의해도 됨 → 문제에서는 WITH가 연속 두번 나오는데, WITH는 한번만 작성해도 됨(, 로 구분)-- 7) app_logs 테이블에서 Custom Session을 만들어 주세요. 이전 이벤트 로그와 20초가 지나면 새로운 Session을 만들어 주세요. -- Session은 숫자로 (1, 2, 3 ...) 표시해도 됩니다 WITH base AS( SELECT event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), "Asia/Seoul") AS event_datetime, event_name, user_id, user_pseudo_id, FROM advanced.app_logs WHERE (event_date = "2022-08-18") AND (user_pseudo_id = "1997494153.8491999091") ORDER BY event_timestamp ) SELECT *, SUM(diff_classification) OVER(ORDER BY event_datetime) + 1 AS session_id FROM ( SELECT *, IF(DATETIME_DIFF(event_datetime, before_datetime, second) > 20, 1, 0) AS diff_classification FROM ( SELECT *, LAG(event_datetime) OVER(PARTITION BY user_pseudo_id ORDER BY event_datetime) AS before_datetime, FROM base ) ) ORDER BY event_datetimetimestamp와 1초의 관계 : timestamp 1당 1초 아닌가? → 그렇다면 굳이 datetime으로 바꿀 필요가 있나서브쿼리 2번 중첩해서 사용IF문 사용해 20초 차이남 → 1 차이 안남 → 0 으로 파생해 누적합 + 1로 session_id 도출첫 행 before_datetime에 예외처리 해줄 것그런데 PARTITION BY 를 매 OVER 안에 무조건 써야 하나?EDA(2)요일별 접속자 수 + 기간 내 이벤트날요일별 접속자 평균을 내보자일 > 토 > 수 > 금 > 목 > 화 > 월 → 역시 쉬는날이 더 배달 수요가 많은건가? → 수요일은 왜 일까?2022-08-01(월) ~ 2023-01-20(금) 의 데이터주말(토, 일)이 아닌 공휴일 목록 → 네이버 캘린더 참조2022-08-15 월 : 광복절2022-09-09 금 : 추석연휴2022-09-12 월 : 추석연휴2022-10-03 월 : 개천절2023-01-23 월 : 설 연휴2023-01-24 화 : 설 연휴(대체공휴일)주요 이벤트 → 특정 사건이 있을 경우 배달 수요가 늘거나 줄지 않을까? / 위키 사이트 참조2022-08-02 화 : 코로나19 누적 감염자 2천만 명 돌파2022-08-08 월 : 수도권 기록적인 폭우 및 홍수2022-10-31 월 : 할로윈데이 / 2022-10-29 토에 이태원 압사 사고 발생2022-11-08 화 : 한국시리즈2022-11-17 목 : 2023학년도 대학수학능력시험2022-11-24 목 : 카타르 월드컵 vs 우루과이2022-11-28 월 : 카타르 월드컵 vs 가나2022-12-03 토 : 카타르 월드컵 vs 포르투갈2022-12-19 월 : 카타르 월드컵 결승2022-12-25 일 : 크리스마스등등…“특정 사건”의 중요도를 정성적으로 평가하기에는 어렵다고 느낌 → 오히려 반대로 갑자기 이용자 수의 변화가 급격하게 나타나는 날짜를 위주로 봐야하나? → 그런데 앱 이용자 수 성장 시기에는 항상 상승만해서 보기 애매할 듯 → 요일별 경향을 따져야 할 수도일요일 < 월요일(개천절) < 화요일 → 앱 이용자 수 상승 예시월드컵에 따른 이용자 수 변화는 뚜렷하지 않음수요일에 딱히 뭔가 보이진 않음 → 평일의 절반이 지남에 따른 보상 심리가 원인일수도?시간대에 따른 이용자 수마찬가지로 시간대별 평균 이용자 수 구해봄저녁 시간대(19시 ~ 22시)가 가장 이용자 수 많음점심 시간대(12시 ~ 14시)가 그 다음당연하게도 식사 시간에 배달 앱 수요가 많음시간대 별로 food_id 에 따른 수요가 다른지 확인해볼 것 → 시간대 별 이용자에게 추천해주는 음식 다르게 설정할 수 있음하루의 기준을 0시로 잡아도 되나?에 대한 의문이 생김(야식 수요) → 이거에 대한 기준을 다시 잡고 일별 이용자 수 다시 구해야 할수도
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
안드로이드 스튜디오 개발환경 세팅 이슈 문의
안드로이드 스튜디오 개발 환경 세팅이 안되고 있습니다.JDK 17, 2022.3.1 Canary 10 으로 해보다가 이것저것 설치를 계속 해보고 있는데 appcompat 1.7.0.jar 에서 java.lang.NullPointerException: Cannot invoke "String.length()" because "<parameter1>" is null 에러가 계속 발생합니다. 개발 환경을 한번에 세팅할 수 있게 가이드 해주는 내용은 없을까요?
-
미해결모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
STORM(Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking) 아키텍처 구현하기 강의에서 콜랩 url 이 안보입니다.
안녕하세요, 제가 잘 몰라서 그런지 확인차 물어봅니다. 강의명 "STORM(Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking) 아키텍처 구현하기 1" 나 "2" 강의를 보아도 관련 콜랩 url 이 안보이는거 같은데, 제가 잘 못본것일까요? 다른 강의의 콜랩 url 은 잘 보이는데, 이 강의에서만 해당 콜랩 url 이 안보여 문의드립니다. 이상입니다.감사합니다.