array, struct 연습문제 4번에 대한 질문입니다. 위 사진처럼 카일스쿨님과 동일한 쿼리를 작성했는데, 출력 결과가 다르게 나와서 문의드립니다. 질문1: 사진에 보시듯이 user_id 컬럼에 NULL이 들어간 행들이 있는데, 제가 뭔가 잘못한 걸까요? 만약 NULL이 나오는 게 정상이라면 그 이유도 궁금합니다! 질문2: 만약 NULL이 나오는 게 정상이라면, 실무에서도 이렇게 id 컬럼에 null이 허용되는지 궁금합니다. 보통 이런 id 값은 primary key로 쓰는 줄 알았어서요..! 질문3: 연습문제 뒤에 추가로 COUNT 출력해보는 것도 결과(cnt)가 다른데, 이것도 정상인지 확인부탁드립니다. 혹시 카일스쿨님이 강의 찍으실 때 쓰신 데이터셋과 변동사항이 있나요?
Vue js와 UI를 한번에 학습/Nuxt3 + OpenWeatherMap 으로 실시간 날씨 앱 제작
일단, nuxt 를 최신버전 기준으로 설치하였습니다. 디폴트로 실행시키면 localhost:3000 에서 아래처럼 화면이 나오고, app.vue는 아래와 같습니다. (강의와 다르게 app.vue 는 app 폴더 아래에 자동 생성이 되어 있습니다.) 강의처럼 pages 폴더에 index.vue를 만들고 동일하게 수정하였습니다. 그럼 localhost:3000 으로 접근하면 브라우저는 그냥 빈 화면만 나옵니다. 전체 프로젝트 구조는 아래와 같습니다.
databinding 관련 세팅 이후 실행시 매번 같은 에러가 발생하고 있습니다. gradle, xml을 조금씩 바꿔보아도 직전까진 잘 되는데 데이터바인딩 관련 코드가 들어가면 아래와 같은 에러가 발생하네요..ㅠㅠ 왜 이런걸까요 Github Link : https://github.com/Hwangseok-Paris/Kotlin_Study_1/tree/databinding# ------ 추가 ------ 이것저것 테스트 많이 해 봤는데 build.gradle.kts 에서 dataBinding { enable = true} 또는 buildFeatures { dataBinding = true }을 넣고 sync 이후에 run 시 문제가 발생하고 있습니다.(다른 파일은 초기 상태 그대로인 상태) 저걸 지우고 다시 싱크를 한 다음 실행시키면 아무 일 없었다는 듯 정상 실행이 되네요.. 도움이 될까 싶어 build.gradle.kts 파일 내용 첨부드립니다. plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) } android { namespace = "com.example.test" compileSdk = 36 defaultConfig { applicationId = "com.example.test" minSdk = 24 targetSdk = 36 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" } } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) implementation(libs.androidx.activity) implementation(libs.androidx.constraintlayout) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) }
강의 내에서 궁금한 점들은 거의 대부분 해소를 하였으나, 검색을 통해 찾기 어려운 부분이 있어 질문드립니다! API Key값을 하드코딩하면 보안상에 문제가 있다는 점을 알게 되었고, 그 대안으로 파이어베이스 클라우드 펑션을 통해 서버와 연결하라는 답변을 받은 적이 있습니다! 저는 서버에는 감이 아예 없어서, 이 기능을 구현하는 과정을 조금 설명해주실 수 있으실지 여쭤봅니다!
3-13 리텐션 과제 제출합니다! https://www.notion.so/13-22f60e878b2580c097eaf0e1eb15d73c?source=copy_link 혼자 쿼리를 쓰다가 고객 정의를 내리고 나니 너무 어려워 AI의 도움도 받고, 여러 방법으로 좀 접근을 해봤습니다만.. 정의를 너무 어렵게 내린 것 같아 시간이 오래 걸렸네요ㅠㅠ 서비스나 업종마다 다르겠지만, 일반적으로 신규, 활성, 복귀, 휴면 유저에 대한 정의는 어떻게 내리고, 분석을 어떤 식으로 진행하는 건가요? 과제를 진행하긴 했으나 쿼리가 제대로 작성된 게 맞는지 분석을 올바르게 한 게 맞는지 너무 어렵군여ㅠ
안녕하세요, 로그를 분석해서 글로 작성해보았습니다. 혹시 가능하시다면 한번 보시고 개선하면 좋을 점을 알려주시면 공부를 이어가는 데 많은 도움이 될 것 같습니다! 🙇♂ 노션 페이지 링크 남깁니다. https://www.notion.so/inflearn-app_logs-24eceb39ae70805f81abfee9aa86ebc2?source=copy_link 고민되었던 부분 장황하게 이것저것 설명은 했지만, 결국 도출한 결론은 '결제 경험이 있는 사용자의 재방문을 발생시켜서 결제 건수를 높여보자 ' 입니다. 재방문 사용자가 유입되도록 하고 행동을 지켜보자는 것인데,, 이러한 액션이 특별히 효과적일 것이라는 것을 로그로부터 미리 확인할 수 있는 방법이 있을까요..? 구체적으로 어떤 집단에 액션을 수행하자는 결론을 도출하고 싶었는데 잘 되지 않은 것 같습니다
7월에 강의 들으면서는 모두 잘 되고 성공했었습니다. 그런데 1달여만에 다시 진행을 하니까, user collection이나 post collection의 text나 시간 등은 잘 나오는데, 두 개의 컬렉션에서 모두 photo는 못 불러오고, 새로 저장도 안 됩니다. (파일 탐색기는 뜨는데 선택하고 버튼 눌러도 동작을 안 해요) 에러는 다음과 같습니다.
weekly retention 구하기 과제 해 봤습니다. 처음에 알려주신대로 두 가지 방법 1) EXTRACT 과 2) DATA_TRUNC 을 써서 각각 해 봤는데 일을 자르는 기준이 달라서 그런지 첫 데이터는 값이 같은데 1주가 차이나는 시점부터 데이터들의 값이 미세하게 차이가 나더라구요. 그리고 차이를 계산할 때도 INT 타입이라 DIFF_DATE 대신 그냥 컬럼끼리 빼는 방법으로 계산해야 됐습니다. 만약 이게 동일 년도 내에서만 해야하는 분석이라면 어떤 방법이 더 좋은지 궁금합니다. WITH base AS( SELECT DISTINCT user_id, user_pseudo_id, event_name, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime FROM `advance.app_logs` WHERE event_date BETWEEN '2022-08-01' AND '2022-11-03' ) , first_week_data AS( SELECT *, MIN(week_date) OVER(PARTITION BY user_pseudo_id) AS first_week FROM ( SELECT user_pseudo_id, event_date, -- DATETIME_TRUNC(DATE(event_date), WEEK(MONDAY)) AS week_date, EXTRACT(WEEK FROM event_date) AS week_date FROM base ) ), week_diff_data AS ( SELECT *, -- DATE_DIFF(week_date, first_week, WEEK) AS week_diff (week_date-first_week) AS week_diff FROM first_week_data ), first_week_value_data AS( SELECT *, FIRST_VALUE(user_cnt) OVER (ORDER BY week_diff) AS first_week_value FROM( SELECT week_diff, COUNT(DISTINCT user_pseudo_id) AS user_cnt, FROM week_diff_data GROUP BY ALL) ORDER BY week_diff ) SELECT *, ROUND(SAFE_DIVIDE(user_cnt, first_week_value),3) AS retention FROM first_week_value_data