[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
appbar부분에서 AppBar위젯을 사용해야 한다는 것을 어떻게 알 수 있을까요? 다른 위젯을 사용할 때도 적용시킬 수 있을지 자신이 없습니다. 해당 경우엔 상위에서 usage를 찾아봐도 해당 내용이 나오지 않는 듯 해서요. 혹시 사용예시나 용례를 찾아볼 수 있는 방법이 있을까요?
Windows IOCP(I/O Completion Port) 모델을 사용하여 서버를 개발하고 있으며, WSASend 호출의 처리 순서에 대해 명확히 알고 싶습니다. 1. WSASend 호출 순서 보장 - 서버에서 연속적으로 WSASend를 3번 호출할 경우, Windows 내부에서 정확히 호출된 순서대로 처리되는지? - TCP의 순서 보장과는 별개로, IOCP 모델 자체의 내부 처리 순서는 어떻게 되는지? 2. 클라이언트 측 완료 통지 순서 - 서버에서 WSASend를 3번 호출했을 때, 클라이언트가 GetQueuedCompletionStatus(GQCS) 함수를 호출하면 서버의 호출 순서와 동일한 순서로 완료 통지가 수신되는지?
안녕하세요, 1강에서 ConstructorHelpers로 find class 할 때는, 에셋 경로 위치에서 /Game 전에 있는 경로는 지우고 데이터를 읽어 왔습니다. 이번에 2강에선 find object할 때 는 따로 경로를 수정하지 않으시더라구요. 둘다 인자로 받는것도 TEXT 주소값이고, 컴파일 과정에서는 에러 안나는거보면 엔진이 초기화 되다가 일어나는 문제인데 '/Game' 앞에 있는 저 경로가 ConstructorHelpers에 find object / class를 사용 함에 있어서 어떤 영향을 주고 왜 다르게 써야 하는지 궁금합니다. 감사합니다.
재귀함수에서 보통 베이스 케이스에 리턴이 있는 경우를 많이 봤는데 베이스 케이스 부분에 return 안쓰는거랑 return 쓰고 그 뒤에 비워놓는거랑 같은 건가요?? 예를 들어 이 두개가 같은건가요? (함수 안 부분 띄어쓰기해도 질문등록하면 다 왼쪽으로 정렬되서 보이네요ㅠ) 함수1: def function() for _ in range(N): ... 함수 2: def function() return for _ in range(N): ...
강의 정말 도움 많이 되었습니다!! 강의 내용 중에 동시성인지 병렬성인지 헷갈리는게 있어 질문드립니다..! 7:35에 일반 def 함수 라우터로 작성한 ThreadPool(병렬) 방식은 매번 요청시 ThreadPool에서 유휴 Tread를 찾아 동작하고 i/o wait가 발생할때 context switch를 해가면서 작업하는 것으로 이해했는데...이게 맞다면..! 완벽한 병렬성이 아니라 동시에 작업하는 것 처럼 보이는 동시성으로 동작하는 건가요?
@Bean public Advisor logTraceAdvisor(LogTrace logTrace) { LogTraceAdvice logTraceAdvice = new LogTraceAdvice(logTrace); DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor(pointcut(), logTraceAdvice); return advisor; } @Bean public Pointcut pointcut() { NameMatchMethodPointcut pointcut = new NameMatchMethodPointcut(); pointcut.setMappedNames("request*", "order*", "save*"); return pointcut; } @Bean public OrderControllerV2 orderControllerV2(LogTrace logTrace) { OrderControllerV2 target = new OrderControllerV2(orderServiceV2(logTrace)); ProxyFactory proxyFactory = new ProxyFactory(target); // 이걸 넣었더니 되네요 proxyFactory.setProxyTargetClass(true); // proxyFactory.addAdvisor(logTraceAdvisor(logTrace)); return (OrderControllerV2) proxyFactory.getProxy(); } @Bean public OrderServiceV2 orderServiceV2(LogTrace logTrace) { OrderServiceV2 target = new OrderServiceV2(orderRepositoryV2(logTrace)); ProxyFactory proxyFactory = new ProxyFactory(target); proxyFactory.addAdvisor(logTraceAdvisor(logTrace)); return (OrderServiceV2) proxyFactory.getProxy(); } @Bean public OrderRepositoryV2 orderRepositoryV2(LogTrace logTrace) { OrderRepositoryV2 target = new OrderRepositoryV2(); ProxyFactory proxyFactory = new ProxyFactory(target); proxyFactory.addAdvisor(logTraceAdvisor(logTrace)); return (OrderRepositoryV2) proxyFactory.getProxy(); } proxyFactory.setProxyTargetClass(true); 이 없더라도 자동으로 ProxyFactory가 인터페이스 기반이 아닐경우 cglib으로 프록시를 생성해야하는데 위의 주석사이의 코드가 없을 경우 다음과 같은 에러가 뜹니다.(jdk로 하려다가 실패하는 모양인데 이 말은 자동으로 cglib으로 proxyfactory가 돌리지 못했다... Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [ hello.proxy.app .v2.OrderControllerV2]: Factory method 'orderControllerV2' threw exception; nested exception is java.lang.ClassCastException: class jdk.proxy2.$Proxy50 cannot be cast to class hello.proxy.app .v2.OrderControllerV2 (jdk.proxy2.$Proxy50 is in module jdk.proxy2 of loader 'app'; hello.proxy.app .v2.OrderControllerV2 is in unnamed module of loader 'app') 강제로 setProxyTargetClass(true)로 하여금 설정해준다면 자동 설정기능을 사용하지 않은 것이라.. 왜 이런지 궁금하네요. 제 코드가 실습 실제 코드와 약간 달라 실습 코드를 복사해서 쳐봐도 동일한 증상이 나타났어요. 또한 setPorxyTargetClass를 지정해줘야 한다면 왜 컨트롤러에서만 해도 다 되는지도 의문입니다.
import "./App.css"; import { Routes, Route } from "react-router-dom"; import Home from "./pages/Home"; import Diary from "./pages/Diary"; import New from "./pages/New"; // 1. "/" : 모든 일기를 조회하는 Home 페이지 // 2. "/new" : 새로운 일기를 작성하는 New 페이지 // 3. "/diary" : 일기를 상세히 조회하는 Diary 페이지 function App() { return ( <Routes> <Route path="/" element={<Home />} /> <Route path="/new" element={<New />} /> <Route path="/diary" element={<Diary />} /> </Routes> ); } export default App; const Home = () => { return <div>Home</div>; }; export default Home; 이렇게 작성했고, 오타도 없는 것 같은데 화면에 home이라는 글자가 안 뜹니다. router도 6.28. 으로 설치됐습니다.
http://boj.kr/7606eba320de41679c31fffb9ff36d31 이 코드는 맞은 코드이고 http://boj.kr/44198150718f45fbaa3c3bee07710833 이 코드는 틀린 코드입니다. 두 코드에서 다른 부분이라고는 58번줄 if문에서 "n - m == 1" 이라는 조건이 들어가냐 마냐의 차이인데 저러한 조건이 없어도 모든 노드가 연결되기 위해서는 당연히 n - m == 1 조건이 만족되지 않나요? 만족하지 않는다면 애초에 모든 노드가 연결 안되지 않나요?
채팅실습을 시작해서 BufferData 구조체를 삭제하고 빌드를 하게 되면 파일은 복사가 되어서 다른 패킷아이디들이 생성되는데 지웠던 BufferData가 계속해서 BufferData가 없다는 에러가 발생하고 실제로 Protocol.pb.h에 남아있는 현상이 발견됩니다.. 이런 증상 겪으신분 있으실까요?
안녕하세요 SQLD 준비하고 있는 전진호 학생입니다. 강의 2:47에서 'PRIOR PK = FK' PK (부모)-> FK(자식) 순방향 전개 'PRIOR FK = PK' FK (자식)-> PK(부모) 역방향 전개 이렇게 나와야 하는 슬라이드에서 'PRIOR PK = FK' PK (부모)-> FK(자식) 순방향 전개 'PRIOR FK = PK' FK (자식)-> FK(부모) 역방향 전개 FK -> PK가 FK -> FK로 바뀐 거 같습니다. 감사합니다. 전진호 드림.
안녕하세요. 강의를 마지막까지 공부하고, 에디터에서 실행할시에 잘 동작 함을 확인 했습니다. 그런데, 안드로이드 빌드를 해보면 빌드 실패도 하지 않습니다. 생성된 APK 를 핸드폰에도 넣어보고, 녹스플레이어, 블루 스택에서 넣어서 실행해보면 파란 에디터에서 보이는 최초 파란 화면만 뜨고, 게임씬이 동작 하지 않고 있습니다. 혹시나 해서, UI_TextMeshPro 에서Text 를 넣고, 테스트하던중 에디터 실행할때는 bbb 가 출력되고, 게임도 잘 돌아가는데, 안드로이드 플레이어나, 모바일 기기에서는 aaa 까지만 출력되고 다음줄이 실행 되지 않습니다. 비동기를 디버그 해보려고 노력했는데, 에디터에서는 오류가 나지 않고, F11 눌러서 한단계씩 들어가다보면 "모듈에 프레임 없음" 페이지가 나오고, 어드레서블에 있는 목록이 Resource 에 채워지는 것을 확인 하기가 어렵습니다. 비동기 이후에는 Resource 에 22개 딕셔너리가 채워진것을 확인 가능하긴 하더군요. 해결이 몇일째 안되고 있는데, 도움 부탁드립니다. public TextMeshProUGUI textComponent; // Start is called before the first frame update void Start() { textComponent.text = "aaa"; // "F:\p4v\TangTang\Assets\Scripts\Scenes\GameScene.cs" Managers.Resource.LoadAllAsync<Object>("PreLoad", (key, count, totalCount) => { Debug.Log($"로딩바 추가 {key}, {count}/{totalCount}"); if (count == totalCount) { textComponent.text = "bbb"; // Debug.Log("test"); // StartLoaded(); } }); }
1) Weekly Retention을 구하는 쿼리를 바닥부터 스스로 작성해보세요 WITH base AS ( SELECT DISTINCT user_id, user_pseudo_id, event_name, DATETIME(TIMESTAMP_MICROS(event_timestamp), "Asia/Seoul") AS event_datetime, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), "Asia/Seoul")) AS event_date FROM `advanced.app_logs` ), first_week_and_diff AS ( SELECT *, DATE_DIFF(event_week, first_week, WEEK) AS diff_of_week FROM ( SELECT DISTINCT user_pseudo_id, DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week, DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week FROM base ) ) SELECT diff_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt, ROUND(SAFE_DIVIDE((COUNT(DISTINCT user_pseudo_id)), (FIRST_VALUE(COUNT(DISTINCT user_pseudo_id)) OVER(ORDER BY diff_of_week))), 3) AS retention FROM first_week_and_diff GROUP BY diff_of_week ORDER BY diff_of_week 2) Retain User를 New+Current+Resurrected+DormantUser로 나누는 쿼리를 작성해보세요. 유저 구분 기준은 제품이나 서비스에 따라 다르겠지만 applogs 데이터는 주단위로 했을때 총 24주치 데이터가 있었고, 유저별로 평균 구매 주기와 방문 횟수를 구해보았을 때 6주를 기준으로 유저를 구분하면 될 것이라 생각함. New : 첫 방문한 신규 유저 Current : 방문 횟수 2회 이상이면서 6주 이내 재 방문 이력 있는 유저 Resurrected : 방문 횟수 2회 이상 & 직전 방문 경과 7주 이상이면서 6주 이내 재방문 이력 있는 유저 Dormant : 직전 방문 경과 7주 이상이면서 6주 이내 재방문 없는 유저 (사실 이렇게 나누는게 맞는지 모르겠지만, 나름의 논리적인 기준을 찾아보려고 노력하였음. 😫 과제 기한 연장에도 개인적인 사정으로 시간이 부족하여 깊이 탐구하지 못했고, 쿼리 작성을 완성하지 못했습니다 😩 추후에 완성하면 보완하도록 하겠습니다. ) 3) 주어진 데이터에서 어떤 사람들이 리텐션이 그나마 높을까요? 찾아보세요 미완성으로 추후에 완성하면 보완하겠습니다 ! 4) Core Event를 “click_payment” 라고 설정하고 Weekly Retention을 구해주세요 WITH base AS ( SELECT DISTINCT user_id, user_pseudo_id, event_name, DATETIME(TIMESTAMP_MICROS(event_timestamp), "Asia/Seoul") AS event_datetime, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), "Asia/Seoul")) AS event_date FROM `advanced.app_logs` ), first_week_and_diff AS ( SELECT *, DATE_DIFF(event_week, first_week, WEEK) AS diff_of_week FROM ( SELECT DISTINCT user_pseudo_id, DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week, DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week FROM base ) ) SELECT diff_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt, ROUND(SAFE_DIVIDE((COUNT(DISTINCT user_pseudo_id)), (FIRST_VALUE(COUNT(DISTINCT user_pseudo_id)) OVER(ORDER BY diff_of_week))), 3) AS retention FROM first_week_and_diff GROUP BY diff_of_week ORDER BY diff_of_week