묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
SetCanvas에는 Stack Push를 안해도 되나요?
SetCanvas 함수에서 true 일 때 _order++ 은해서_order값은 올라 가는데 Stack에는안올라 가는거 같은데 별로 상관 없는 걸까요?
-
미해결BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
[빠짝스터디] 3주차 리텐션 과제
Notion 링크로 대체합니다.https://colney4844.notion.site/3-13a59b98d5db80438b7fcef0146771f6?pvs=4
-
미해결
Encase 해상도 문제 해결 ㅠㅠ
안녕하세요 디포전 자격증 준비중인 사람입니다. Encase v8.05를 사용하여 이미징 파일을 주로 분석하고 있는데 raw 이미지 파일을 불러오거나 할때 열리는 창이 너무 커서? 즉, 해상도가 안맞는 문제가 발생하여 하단의ok버튼을 누를 수가 없습니다. 창 최대화나 이동도 안되고요. 그럴 때마다 디스플레이 옵션을 가로에서 세로로 변경하여 매우 귀찮게 일일이 ok 버튼을 누르고 있는 실정인데... 해당 문제 해결 방법이 간곡히 필요합니다..![인케이스 창]하단의 ok/ cancel 부분이 보이지 않습니다...
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
빈도정렬 코드 질문있습니다
http://boj.kr/9cd107f1e26541b9b11c0840518d53a7큰돌님 강의를 듣고 며칠 지나서 복습 삼아서 혼자 작성했는데 좀 다르지만 통과했습니다. 혹시 가독성이나 효율 이런 측면에서 안 좋은 코드인지 궁금해서 질문드립니다 ..!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품 수정 form이 안열립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]섹션8: 상품수정강의에서 1:51부분이 상품 수정 form이 안열립니다. @PathVariable("itemId")이렇게 고쳤고, 설정에 gradle도 인틀리제이에서 gradle로 바꾸고 했는데도 안됩니다..어떻게 해야 할까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
영속성 컨텍스트 1차캐시 질문
안녕하세요! 질문이 생겨 질문글 남깁니다 :) 영속성 컨텍스트는 트랜잭션을 사용하면 생겨난다 라고 말씀 해주셨는데요. 이중에 1차 캐시 부분에 대한 내용이 궁금해서 코드를 작성하던중에 의아한점이 생겼습니다. @Transactional public List<UserResponse> getUsers() { User user = userRepository.findById(4L).orElseThrow(); user.updateName("test"); userRepository.findById(4L); userRepository.findById(4L); return userRepository.findAll() .stream() .map(UserResponse::new) .toList(); }우선은 위 내용인데요, updateName을 호출한 시점에 변경 감지가 되어서 update문이 호출 되었는데, 이후에 로그로 찍히는 select문이 없더라구요. 1차캐시가 진행되면 그 이후에 객체의 값이 변경 되더라도 그 내용까지 다시 반영해서 캐싱 해주는걸까요? public List<UserResponse> getUsers() { userRepository.findById(4L); userRepository.findById(4L); userRepository.findById(4L); return userRepository.findAll() .stream() .map(UserResponse::new) .toList(); }그리고 두번째 질문은 코드를 이런식으로 트랜잭션 어노테이션 없이 작성했을 때 인데요.제 추측은 트랜잭션 어노테이션이 없으니 영속성컨텍스트가 생성되지 않을것이고 그에따라 select문이 3번 호출될것이다. 였는데 실행해보니 select문은 한번만 호출되더라구요.나름대로 왜일까 고민해본 결론은 findById가 구현된 SimpleJpaRepository클래스에 붙어있는 Transactional이 영향을 주는건가? 싶긴 한데 명확한 답은 모르겠습니다 ☹1차캐시에 한해서는 트랜잭셔널과는 독립되게 영속성컨텍스트가 동작하는걸까요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
1987번 관련 질문입니다.
1987번 제 풀이가 선생님의 리스트 풀이와 비슷하다고 생각해서 제출을 해봤는데 시간 초과가 나는 것 같습니다. 이상하다고 생각해서 선생님께서 작성해주신 예시코드도 복붙해봤는데 똑같이 시간 초과가 나는 것 같아서요... 혹시 뭐가 문제일까요? 컴퓨터마다 시간이 달라서 그런걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회사 PC로 구글드라이브 접속이 안되어서...
혹시 학습용 CSV 파일을 메일로 받아볼수 있을까요?
-
미해결BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
[빠짝스터디 3주차 과제] 리텐션 연습문제
1. Weekly RetentionWITH base AS ( SELECT DISTINCT DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, DATE_TRUNC(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul'), WEEK(MONDAY)) AS event_week, DATE_TRUNC(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul'), MONTH) AS event_month, user_id, user_pseudo_id, event_name, platform, event_params FROM advanced.app_logs ), user_visit_base AS ( SELECT user_pseudo_id, MIN(event_week) OVER (PARTITION BY user_pseudo_id) AS first_visit_week, event_week AS visit_week FROM base ), user_visit_weekdiff AS ( SELECT first_visit_week, DATE_DIFF(visit_week, first_visit_week, week) AS week_diff, COUNT(DISTINCT user_pseudo_id) AS visit_users FROM user_visit_base GROUP BY ALL ) SELECT first_visit_week, week_diff, visit_users, SAFE_DIVIDE(visit_users, FIRST_VALUE(visit_users) OVER (PARTITION BY first_visit_week ORDER BY week_diff ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)) AS retention FROM user_visit_weekdiff 2. Retain User → New User, Current User, Resurrected User, Dormant User-- 한 달(30일)을 기준으로 구분하였다. -- 신규 유저: 최근 한 달 이내 새로 방문 -- 기존 유저: 최근 한 달 이내 재방문, 그 이전 한달에도 방문 -- 복귀 유저: 최근 한 달 이내 재방문, 그 이전 한달에는 방문 X -- 휴먼 유저: 최근 한 달 이내 재방문 X WITH base AS ( SELECT DISTINCT DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, user_pseudo_id FROM advanced.app_logs ), user_first_last AS ( SELECT user_pseudo_id, MIN(event_date) AS first_date, MAX(event_date) AS last_date FROM base GROUP BY user_pseudo_id ), last_event_date AS ( SELECT MAX(event_date) AS current_date FROM base ), user_activity AS ( SELECT user_pseudo_id, event_date, LEAD(event_date) OVER (PARTITION BY user_pseudo_id ORDER BY event_date) AS next_event_date, CASE WHEN DATE_DIFF(LEAD(event_date) OVER (PARTITION BY user_pseudo_id ORDER BY event_date), event_date, DAY) > 30 THEN 1 ELSE 0 END AS dormant_history FROM base ), user_types AS ( SELECT u.user_pseudo_id, u.first_date, u.last_date, led.current_date, MAX(us.dormant_history) AS dormant_history, CASE WHEN DATE_DIFF(led.current_date, u.last_date, DAY) > 30 THEN 'dormant_user' WHEN DATE_DIFF(u.last_date, u.first_date, DAY) <= 30 THEN 'new_user' WHEN MAX(us.dormant_history) = 1 THEN 'resurrected_user' ELSE 'current_user' END AS user_type FROM user_first_last AS u CROSS JOIN last_event_date AS led LEFT JOIN user_activity AS us ON u.user_pseudo_id = us.user_pseudo_id GROUP BY u.user_pseudo_id, u.first_date, u.last_date, led.current_date ), first_week_and_diff AS ( SELECT ut.user_type, fw.user_pseudo_id, fw.event_date, DATE_DIFF(DATE_TRUNC(fw.event_date, WEEK(MONDAY)), DATE_TRUNC(ut.first_date, WEEK(MONDAY)), WEEK) AS diff_of_week FROM base AS fw JOIN user_types AS ut ON fw.user_pseudo_id = ut.user_pseudo_id ), user_cnt_by_type_and_week AS ( SELECT user_type, diff_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM first_week_and_diff GROUP BY user_type, diff_of_week ), retention_base AS ( SELECT user_type, diff_of_week, user_cnt, FIRST_VALUE(user_cnt) OVER (PARTITION BY user_type ORDER BY diff_of_week) AS first_user_cnt FROM user_cnt_by_type_and_week ) SELECT user_type, diff_of_week, ROUND(SAFE_DIVIDE(user_cnt, first_user_cnt), 2) AS retention_rate FROM retention_base ORDER BY user_type, diff_of_week 3. retention이 높은 그룹?current user: 최고 0.41 (4~5주차)new user: 최고 0.11 (1,3주차)resurrected user: 최고 0.14 (9~12주차)dormant user: 최고 0.09 (3주차)리텐션이 그나마 높은 그룹: current usercurrent user, resurrected user 리텐션 분포의 경우 상승세 → 하강세 경향성을 보여 피크를 찍을 때 즈음 어떤 이벤트가 있었다고도 추측할 수 있다. 4. click_payment 이벤트를 중점으로 본 Weekly Retention?WITH base AS ( SELECT DISTINCT DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime, event_name, user_id, user_pseudo_id FROM advanced.app_logs WHERE 1=1 AND event_name = "click_payment" ), event_week_and_first_week AS ( SELECT DISTINCT DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week, user_pseudo_id, DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id ORDER BY event_date), WEEK(MONDAY)) AS first_week FROM base ), retention_base AS ( SELECT *, FIRST_VALUE(user_cnt) OVER(ORDER BY day_of_week) AS total_user FROM ( SELECT DATE_DIFF(event_week, first_week, WEEK) AS day_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM event_week_and_first_week GROUP BY day_of_week ) ) SELECT day_of_week, ROUND(SAFE_DIVIDE(user_cnt, total_user), 2) AS retention FROM retention_base ORDER BY day_of_week
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
3085번 사탕 게임에서 제 풀이가 왜 틀린걸로 처리되는지 잘 모르겠습니다.
안녕하세요 선생님. 백준 3085번 풀이2와 제 풀이가 비슷한 것 같은데 제 풀이는 틀린 것으로 나오는데 어떤 부분이 잘못됐는지 잘 모르겠습니다. 제가 어떤 부분을 놓치고 있는지 알려주시면 감사하겠습니다!import sys from itertools import combinations def input(): return sys.stdin.readline().rstrip() def get_max(i,j): global data, n ser1 = data[i] ser2 = [data[k][j] for k in range(n)] return max(count_max(ser1), count_max(ser2)) def count_max(ser): count = 0 bef = '.' for idx in range(len(ser)): if bef != ser[idx]: count = 1 else: count += 1 bef = ser[idx] return count n = int(input()) data = [] for _ in range(n): data.append(list(input())) dx = [0,1,-1,0] dy = [1,0,0,-1] cur_max = 0 for i in range(n): for j in range(n): if i == j: cur_max = max(cur_max, get_max(i, j)) for di, dj in zip(dx,dy): ni = i + di nj = j + dj if not ((0 <= ni < n) & (0 <= nj < n)): continue if (data[ni][nj] == data[i][j]): continue data[i][j], data[ni][nj] = data[ni][nj], data[i][j] cur_max = max(cur_max, get_max(i, j)) data[i][j], data[ni][nj] = data[ni][nj], data[i][j] print(cur_max)
-
미해결스프링 핵심 원리 - 고급편
오타 제보....
안녕하세요 강사님강의 잘 듣고 있습니다.수업 내용을 정리하다가 별거 아니지만....오타 제보 입니다! 창구 지원 -> 창구 직원
-
해결됨독하게 시작하는 C 프로그래밍
realloc 질문
예제 파일을 보고 있던중에 들은 생각인데요, free(pszBuffer) 를 하지 않는 이유는 무엇인가요
-
해결됨독하게 시작하는 C 프로그래밍
동적 메모리 할당 관련 질문 있습니다.
개발자 님께서 제공해주신 예제 파일에 제 맘대로 주석을 달아봤습니다.18 행에 오류 확인을 위해 의도적으로 해제하지 않음 이라는 주석이 처음부터 달려있었는데메모리 해제를 하지 않아도 런타임 오류는 발생하지 않더라구요. 18 행 주석의 의도가 무엇인지 궁금합니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
ddl-auto 관련 질문.
안녕하세요,24강 수강중에 궁금한점이 생겨 문의 남깁니다.야믈파일에 설정한 ddl-auto옵션 관련해서 validate로 값을 바꾼 뒤 몇가지 테스트를 해보았습니다. age필드를 완전히 제거name필드를 named 명칭으로 변경.name필드의 column()안에 들어가는 속성값들을 변경.이렇게 3가지를 해보았는데 실질적으로 테이블과 일치하지 않는다 라며 서버를 실행하지 않는 경우는 2번 name필드가 다른 명칭으로 변경되었을 때 한가지 경우더라구요. age는 nullable이라 아에 필드가 명시되지 않아도 일치한다고 판단하는걸까요?column 어노테이션 안에 들어가는 값들은 감지하지 못하는게 맞나요?
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
스레드 종료 순서
안녕하세요. 강의 재밌게 잘 듣고있습니다.예제 코드에서 WaitForSingleObject(g_threadexit01);WaitForSingleObject(g_threadexit02);로 되어있는데이 경우에 thread1이 끝나기 전까지 thread2는 작업이 끝나도 wait상태로 있는걸까요?
-
해결됨디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
Encase 및 autopsy중 더 효율적인 툴이 궁금합니다!
안녕하세요, 이제 막 시험준비를 시작한 학생입니다.다름이아니라 autopsy를 이용한 강의를 듣던도중 해당툴은 제공되는 기능이 더적고 이미징시간도 훨씬 오래걸린다는점을 알게되었습니다..ㅠㅠ( 섹션 8 autopsy 1의 이미징돌리는데 30분이지나도 49%입니다..)궁금한점이,섹션8 이미징시간이 원래 이렇게 오래걸리는게 맞나요?23.10월이후 encase 질문은 안받는다고하셨는데(그래서 시험준비시 autopsy를 선택한것이기도 합나다) 그이유를 알수있을까요?제목과 같이, 두개의툴을 모두사용할수있는 상황인데 autopsy와 encase 중 어떤 툴이 더 시험보기에 편한지 궁금합니다.둘다 평소에 사용하지않은툴이고 이제배워나가야하기에 현실적으로 시험에서 더편한 툴을 알고싶습니다!강의에서 최근 사례는 autopsy를 이용한 툴밖에없어서 고민됩니다..ㅠㅠ
-
미해결블렌더 기초 : 3D그래픽 여행 아이콘을 만들며 배우는 블렌더 애니메이션 기초 과정
컨트롤 p 누르면 자꾸 empty 속으로 들어가요.
개별 개체로 되는 것이 아니라 EMPTY속으로 자꾸 들어가네요 ㅠㅠ
-
해결됨Azure Native로 나만의 GPT 만들기
400 연결 오류
안녕하세요, 강의 너무 잘 듣고 있습니다.잘 따라가고 있던 와중 프론트 코드에 URL 상수를 지정하는 과정들을 거치고 UI가 있는 창에서 개발자 도구를 열어도 연결 완료 문구가 뜨지 않아 글 남깁니다.저와 같은 문제로 질문 주신 커뮤니티의 다른 분께 프론트 파일과 주소를 남겨달라고 하셔서메일로 프론트 파일과 주소를 보내드린 상태입니다.한 번만 확인해 주신다면 감사드립니다.
-
해결됨디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
시나리오 4번 삭제파일 질문있습니다.
우선 시나리오4 만드시고 강의하시느냐 고생 많으셨습니다. 개인적으로 스스로 수준을 검토하고 부족한 부분을 파악하기에 좋은 연습문제였다고 생각합니다. 다시한번 양질의 교육자료와 강의를 주신 강사님께 감사드립니다. 풀이 중 한가지 궁금한 점이 있어 문의드립니다. 시나리오 상 토렌토를 통해 받은 파일 중 첫번째 list.torrent 파일의 확인내용입니다. Log tracker로 확인시 해당 파일은 $RZ42HMH.torrent로 자동변경되어 휴지통으로 들어갔고 이내 삭제되었습니다. 삭제된 파일은 Autopsy 분석 삭제파일에서도 찾을 수 없었습니다.이렇게 삭제된 파일에 대해서는 파일을 확인 할 수 없는 것인지 궁금합니다. 이때 Deleted File에서 복구하여 확인할 수 있는 파일과의 차이점도 궁금합니다.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
FetchPost 에서 form(ref)에 값 전달시
// form.value = { ...data }; form.value = data;두개의 차이점이 궁금합니다.