안녕하세요. 강사님 말씀대로 todo app 에서는 composition API의 재사용성 장점을 느끼기가 어려운데요. 중대형 사이즈의 프로젝트에서 options API 방식과 비즈니스 로직만 별도 .js 파일로 분리해 사용하는 것이 가독성과 재사용성 측면에서 더 나은 선택이지 않을까 생각이 됩니다. 강사님께서 Composition API를 적용한 경험과 Options API와 비즈니스 로직을 .js 파일로 구성하는 방식에 대한 견해를 알고 싶습니다. 감사합니다.
안녕하세요 강의 재밌게 잘 보고있는 1인입니다~ 숙제 설명듣기전에 풀어봐야겠다고 해서 3시간 걸려 풀었습니다. 설명듣고나니 방법이 좀 다른거같은데, 의도에 좀 벗어난 것일까요? 또한 포문마다 조건이 달라 이해하기 더 어려운 코드가 된건 아닌지에 대해서도 널널한개발자님의 의견이 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! 강의 잘 보고 있습니다. 세션이 삭제되는 시점에 대해서 의문점이 생겨서 질문드립니다. 영한님께서 HTTP는 비연결성이기 때문에 서버에서 세션데이터를 언제 삭제해야하는지 모른다고 하셨습니다. 사용자의 마지막 요청을 기준으로 30분 이후에 세션이 삭제된다고 했을 때 서버는 30분이 지났는지 어떻게 아는건가요? 제가 생각했을 때는 서버에서 자체적으로 계속 30분이 지났는지 확인을 하거나 사용자 요청이 들어올 때 먼저 30분이 지났는지 확인하고 세션을 삭제해줄 수 있을 것 같습니다. 스프링에서는 어떤 방법으로 확인하는지 궁금합니다!
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 플러터 빌드 실행 시 무한 로딩 현상이 있습니다. 플러터 초급 강의의 영상통화 파트입니다. 혹시 어느 부분이 문제일까요? 코드팩토리 디스코드 https://bit.ly/3HzRzUM Flutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
RemoveNode를 직접 먼저 구현한 후 강의를 듣게 되었는데요, 저는 RemoveNode 안에 Search하는 코드를 통합해서 짰는데 SearchToRemove가 RemoveNode를 실행시키기 위해서만 필요하다면 굳이 분리를 해야 할까 하는 의문이 들었습니다. 하나의 함수는 하나의 동작만 실행해야 해서 분리가 된 것일까요? 아니면 SearchToRemove가 나중에도 사용이 될 가능성이 있어서 분리된 것일까요? 제가 작성한 코드를 첨부합니다. void RemoveNode(const char* pszName) { USERDATA* pTmp = g_pHeadNode; USERDATA* previousNode = NULL; bool isFound = false; // 노드 찾기 while (pTmp != NULL) { if (strcmp(pTmp->name, pszName) == 0) { isFound = true; break; } previousNode = pTmp; pTmp = pTmp->pNext; } // 노드 찾기 실패 if (isFound == false) { printf("\"%s\" : Not Found, remove failed.\n", pszName); return; } // 헤드인 경우 if (g_pHeadNode == pTmp) { g_pHeadNode = pTmp->pNext; free(pTmp); printf("\"%s\" : Found, remove successed.\n", pszName); return; } // 헤드가 아닌경우 previousNode->pNext = pTmp->pNext; free(pTmp); printf("\"%s\" : Found, remove successed\n", pszName); }
C공부 시작하고 강의 정말 재밌게 듣고 있는 수강자입니다~ 영상 9분 34초입니다. 교차 예상 결과값 아래이지만 1 2 3 4 5 10 9 8 7 6 .... 강의에선 아래와 같이 값이 나왔습니다. 1 4 3 2 5 10 7 8 9 6 ... flag를 이중 반복문 안쪽에 기입해서 생긴 오류였던거 같습니다. 다른 분들 헷갈리지 않으시길 바라며 남겨봅니다. 오류가 맞나요? 아니면 제 오해인지요?확인해주시면 정말 감사하겠습니다~
9:57 보시면 51 라인 Account account = accountRepository.findByEmail(email); 이 순간 account 객체는 Persistent 상태이고, 이 코드 이후로 account 이건 다시 detach 상태가 되는데 63라인 accountService.completeSignUp(account); 이 코드로 인하여 다시 Persistent 로 상태가 만들어진다고 생각하면 될까요 ?? (왜냐하면 accountService.completeSignUp(account);에는 트랜잭션어노테이션이붙어있어서)
탑다운 방식인데 위에 그림처럼 바텀업처럼 문제를 아래서 부터 해결해 나가서요. 강의에서는 피보나치가 탑다운 방식으로 푸는 경우가 있는데 바텀업 방식처럼 문제를 아래서(위에 그림 빨간색표시처럼) 부터 해결한다고 하셨는데요. 혹시 계단 문제도 피보나치처럼 탑다운 방식인데 문제를 아래서 부터 해결해나가는 스타일인건가요? 문제를 읽고 탑다운으로 풀지 바텀업으로 풀지 어떻게 알아요?
안녕하세요 맥 실리콘칩 m2 를 사용하고 있습니다. ssh server 를 설치하려고 docker pull edowon0623/docker-server:m1 설치하고 실행했는데 docker 상태가 계속 exit가 나옵니다 원인을 알 수 있을가요? docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker-server:m1 /usr/sbin/init 명령어를 사용하였습니다
안녕하세요 강의를 다 듣고 추가로 구현하고 싶은것이 있어서 질문 남겨요! 게시글을 작성하고 입력버튼을 누르면 원래는 제목,내용,시간 부분만 자취톡부분에 나오게 구현하셨는데 아래처럼 이미지까지 추가해서, 게시글을 작성했을때 선택했던 이미지와 똑같은 이미지를 리스트뷰에도 똑같이 표현하고 싶습니다 즉, 게시글을 작성하고 입력버튼을 눌렀을때 나오는 리스트뷰에 내가 작성한 제목,내용,시간뿐만아니라 이미지까지 표현하고 싶습니다! 그래서 제가 구현해본 것이 BoardModel의 데이터모델에 url을 추가해줬고 package com.example.mysololife.board data class BoardModel( val title : String = "", val content : String = "", val uid : String = "", val time : String = "", val url : String = "" // 이미지 url ) BoardWriteActivity에서 아래와 같이 url데이터도 일단은 빈값으로 추가해주었습니다 // 데이터 집어넣기 FBRef.boardRef .child(key) .setValue(BoardModel(title,content,uid,time,"")) 그리고 BoardListLVAdapter에서 내가 선택한 이미지가 해당레이아웃에 적용되게 아래와 같이 코드를 짜주었습니다 // 내가 넣어준 이미지가 imageView에 적용되게 imageView에 선언 val imageView = view?.findViewById<ImageView>(R.id.imageView) // 이미지 보이게 적용 Glide.with(context) .load(boardList[position].url) .into(imageView!!) 그래서 이렇게 코드를 작성하고 파이어베이스를 봤더니 이런 구조로 나왔습니다 현재까지는 url부분에 아무것도 없어서 이미지가 뜨지 않지만 이 url부분에 파이어베이스 스토리지에 있는 이 이미지url을 복사해서 붙여넣으니깐 리스트뷰에 이미지가 잘 뜨는것을 확인할수있었습니다 그래서 제 생각에는 이 url을 넣는 부분에 파이어베이스에 업로드해논 이미지url을 넣어줘야될것같은데 이걸 어떻게 하는지 모르겠습니다.... 파이어베이스 스토리지 공식문서 (url을 통해 데이터 다운로드) 부분을 참고해도 어느 부분에다가 집어넣어야되는지 감도 안오고 잘 되지 않아서 질문드립니다.... // 데이터 집어넣기 FBRef.boardRef .child(key) .setValue(BoardModel(title,content,uid,time,"")) 이미지를 추가하는 코드를 제외하고는 강의에 나온 코드들과 전부 동일합니다!
안녕하세요, 먼저 좋은 강의 만들어주셔서 감사합니다 ^^ 강의&실습을 진행하다가 Windows 10 Home 환경에서 실습 예제가 잘 실행되지 않는 문제가 있어서 문의드립니다. easydocker/leafy에서 07-compose 브랜치( docker-compose.yml 완성된 브랜치 )로 체크아웃 후, docker compose up -d로 도커 컴포즈를 실행하면 front 쪽에서 아래와 같은 오류가 발생하고 컨테이너 실행이 되지 않습니다. exec /usr/local/bin/ docker-entrypoint.sh : no such file or directory 혹시 해결방법이 있을지 문의드려요~ 윈도우 개행문자 처리 관련 문제일 것 같아서 git config -- global core.autocrlf true 설정 후 다시 git clone을 받아도 안되고 구글링을 해봐도 딱히 해결방법이 안나오네요 ㅠㅠ 이미 완성된 07-compose 브랜치로 실행했을 때도 동작하지 않긴 하지만 혹시나 해서 docker-compose.yml & 프론트쪽 Dockerfile 부분 첨부드립니다. 감사합니다.
안녕하세요 3주 차 코드로 공부하고 있는 중 spine 을 animator controller로 교체하려고 하는데요. Creature.cs 의 public virtual void SetInfo(int templateID) { . . SkeletonAnim.skeletonDataAsset = Managers.Resource.Load<SkeletonDataAsset>(CreatureData.SkeletonDataID); SkeletonAnim.Initialize(true); // Register AnimEvent if (SkeletonAnim.AnimationState != null) { SkeletonAnim.AnimationState.Event -= OnAnimEventHandler; SkeletonAnim.AnimationState.Event += OnAnimEventHandler; } 부분에서 SkeletonAnim.skeletonDataAsset = Managers.Resource.Load<SkeletonDataAsset>(CreatureData.SkeletonDataID); 는 캐릭터 간 다른 애니메이션을 사용하기 위해 json에서 읽어온 animator 파일을 지정하는 걸로 이해하고 Animator Controller로 교체했는데요. BaseObject.cs public Animator SkeletonAnim { get; private set; } Creature.cs public virtual void SetInfo(int templateID) { . . SkeletonAnim.runtimeAnimatorController = Managers.Resource.Load<RuntimeAnimatorController>(CreatureData.SkeletonDataID); // Animator Controller로 교체 // Register AnimEvent if (SkeletonAnim.AnimationState != null) { SkeletonAnim.AnimationState.Event -= OnAnimEventHandler; SkeletonAnim.AnimationState.Event += OnAnimEventHandler; } SkeletonAnim.AnimationState.Event -= OnAnimEventHandler; SkeletonAnim.AnimationState.Event += OnAnimEventHandler; 이 부분은 왜 사용하는지 어떻게 수정해야 되는지 모르겠습니다.
13:33 부분 출력 결과입니다. File "c:\workspace\mydjango02\main02.py", line 13 cursor.execute(sql, __parameters: [param, param]) ^ SyntaxError: invalid syntax 다음과 같이 수정하니 됩니다. cursor.execute(sql, [param, param]) 참조하세요.