Util 스크립트에서 만든 FindChild() 함수를 UI 오브젝트가 아닌 다른 오브젝트에서도 사용하고 싶어 사용하던 중 문제가 발생하여 질문이 있습니다. FindChild() 함수의 리턴 값이 null이 되면 이후의 코드들이 실행이 안되던데 이유를 모르겠습니다. void OnEnable() { partToRotate = Util.FindChild(gameObject, "PartToRotate", true).transform; firePoint = Util.FindChild(gameObject, "FirePoint", true).transform; // 이후의 코드들 } 위의 partToRotate와 firePoint 변수는 OnEnable() 함수에서는 사용되는 일이 없고 Update() 함수에서 사용됩니다. Update 함수에서 변수 값이 null로 인해 오류가 나는 거면 이해를 하겠는데, OnEnable() 함수에서 FindChild() 함수의 리턴 값이 null이 되면 왜 이후의 코드들이 실행이 안되는지 모르겠습니다. 널 조건 연산자인 ?로 해결은 했으나, 왜 안되는지 이유가 궁금합니다.
안녕하세요. 코딩테스트를 1년간 준비중인 취업 준비생입니다. 강사님의 친절한 코딩테스트 강의에 감탄하며 잘 듣고있습니다. 펠린드롬 첫번째 문제에서요. 홀수인 Key의 개수로 푸는 문제라는건 전혀 생각하지 못한 부분이라 동기부여가 많이 되었습니다. 강사님의 오티에서처럼 처음에 15분 스스로 풀어보고 안돼면 강의 보고 복습하면서 사고력을 키우라고 말씀하셨는데 그렇게 해봐도 사고력 때문인지 새로운 문제에 도전하면 할 수록 안풀리고 그러는데 조언 좀 부탁드려도 됄까요? 그리고 강사님꼐서 풀어주신 방법 말고 문자열의 개수를 세어서 전체 개수가 홀수 인지 짝수인지를 가지고 물론 예외가 있다는것을 알지만 풀었다고 강의를 수강하긴 했었습니다. 전체 개수가 홀수면 True 짝수면 False 이런식으로요. 조언 부탁드립니다 강사님.
pdf 자료주신 것 처럼 $ docker pull tomcat:latest $ docker run -d --name tomcat -p 8080:8080 tomcat:9.0 으로 tomcat 을 설치하면 도커 컨테이너에 tomcat을 설치하게 되는것이고 실제 제 desktop 에는 없는 게 되는게 아닌가요?? 강의중 visual code 를 통해 들어가셨던 tomcat-user.xml 파일에 어떻게 접근하는지 모르겠습니다. 부록파트에 tomcat 설치, 설정파트를 따라가면 된다고 하셨는데 제공해주신 pdf 에는 없어서 질문드립니다.. --- 수정 드립니다.--- 섹션 8부분에 tomcat 설치 부분이 있었네요! 찾았습니다. 다른 질문이 생겼는데 도커 컨테이너는 VM 이라고 생각하고 있어서 컨테이너에 tomcat 서버를 설치한다는 것은 제 윈도우에 깔린 tomcat 과는 별개의 서버가 되는것이 아닌가요??? 만약 제가 이해한게 맞다면 별개의 서버인데 어떻게 윈도우에 설치한 톰캣설정이 컨테이너에 있는 다른 톰캣 설정과 같아질 수 있는 건가요?? 제가 잘못이해 하고 있다면 (윈도우 톰캣과 컨테이너 톰캣이 같다면) 굳이 컨테이너에 톰캣을 올리는 이유는 뭔가요?? 그냥 윈도우에서 실행한 톰캣서버에 배포하면 되는게 아닌지 궁금합니다!
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
이 상황과 관련해서 몇 가지 같이 질문드려봅니다... 두 번째 for문(-> 주석 '//PK당해서 랜덤으로 일부 아이템 드랍' 부분)에서 스코프 내 지역변수가 최적화되어 사용할 수 없다는 메시지와 함께 내용을 알 수 없다고 나옵니다. 비슷한 경우를 포폴 작업하면서 몇 번 마주한 적이 있었는데요, 혹시 왜 이런 걸까요?_? (참고 사진) 이 질문이 본론이기는 한데, if문으로 RemoveItem 호출 후 반환되는 bool값에서 계속 false가 반환되는 듯 합니다. 1번 질문에 남긴 이유 때문에 디버깅으로 정확한 원인을 파악하지 못했습니다(ㅠㅠ) 그리고 같은 부분을 강의에서 코드가 정상 작동 되는지 확인해주셨었는데요(50:33), 이 때 if문 끝에 세미콜론이 붙어 조건문의 내용으로 적었던 출력 부분이 반드시 작동되도록 처리 되었더라구요. 강의를 여러 번 반복해서 보며 제가 잘못 작성한 부분이 있는지 확인해보았으나 발견하지는 못했습니다.. 혹시 정상 작동 시키려면 어떻게 수정해야 하는 걸까요?
코드에 대한 질문이 있습니다. 아래는 제가 짠 코드입니다. 다른 부분은 볼 필요 없이 dfs(i, j) 이 부분에 대한 궁금증이 있습니다. 저는 dfs(i, j) ... void dfs(int y, int x)이런식으로 짰는데 강사님 코드를 보면 dfs(i, j, v) ... void dfs(int y, int x, vector<pair<int,int>> &v) 이런식으로 줬습니다. 이렇게 짜야하는 이유가 궁금합니다. 이에 대한 제 예상 해답은 벡터에 call by reference를 적용했기 때문인데 왜 call by reference를 적용해야하는지를 모르겠습니다. 벡터에 call by reference를 적용한다고 치면 void dfs 안에 있는 다른 변수들(sum, cnt) 같은 변수들도 dfs(i, j, sum, cnt) 이런식으로 줘야하는것이 아닌가요? call by value, call by reference 부분 교안을 봐도 이해가 되지 않아서 질문드립니다. 자세한 답변 부탁드립니다 #include <bits/stdc++.h> using namespace std; const int dy[4] = { -1 ,0, 1, 0 }; const int dx[4] = { 0, 1, 0, -1 }; int n, l, r, a[55][55], visited[55][55], sum, cnt; vector<pair<int, int>> v; void dfs(int y, int x) { visited[y][x] = 1; for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= n || nx < 0 || nx >= n) continue; if (visited[ny][nx]) continue; if (abs(a[y][x] - a[ny][nx]) >= l && abs(a[y][x] - a[ny][nx]) <= r) { v.push_back({ ny, nx }); sum += a[ny][nx]; cnt++; dfs(ny, nx); } } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> l >> r; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j]; } } int ret = 0; while (true) { int flag = 0; fill(&visited[0][0], &visited[0][0] + 55 * 55, 0); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (visited[i][j]) continue; v.clear(); visited[i][j] = 1; v.push_back({ i, j }); cnt = 1; sum = a[i][j]; //1. 왜 여기 dfs에서 dfs(i, j, v)로 줘야하는지? //2. 만약 이에 대한 해답이 call by reference 이면 //위에 따로 빼놓은 dfs 함수 부분에서 //sum, cnt 이런 변수들도 똑같이 dfs(i, j, sum, cnt) 이런식으로 넣어줘야 하는 것이 아닌지? dfs(i, j); if (cnt == 1) continue; for (pair<int, int> b : v) { a[b.first][b.second] = sum / cnt; flag = 1; } } } if (!flag) break; ret++; } cout << ret << '\n'; return 0; }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이렇게 오류가 나는데 혹시 왜그런지 알 수 있을까요?
1. itemName이 존재하지 않을 때 bindingFailure를 false로 하고 bindingResult에 FieldError를 넣어줍니다. 궁금한 부분은 값이 들어오지 않는 경우도 binding 자체는 성공적으로 이루어졌다는 이야기인가요? 데이터 바인딩이라는 것에 대해 자세히 설명해주시면 감사하겠습니다. @ModelAttribute Item파라미터를 받을 때 바인딩이 실패할 경우 스프링에서 bindingResult에 BindFailure가 true 로 한 후 FieldError를 저장하는 건가요? 바인딩을 정확히 받아드리지 못하고 있어서 이런저런 궁금증이 생기네요.. 감사합니다. 4. 예를들어 Price의 경우 "qqq"등으로 바인딩이 실패하면 Null값으로 Item객체가 파라미터로 들어오나요? 5. 바인딩이 되는 시점이 정확히 궁금합니다.
안녕하세요, 강의 정말 잘 듣고있습니다. 다름이 아니라 Entity 반환에 대해서 질문 있습니다. 영한님께서 보안적인 문제, API 유지보수 문제 등 때문에 DTO로 변환하여 반환 하여한다고 하셨는데, 만약 RestApi가 아니라 view로 직접 전달할 때 받아온 Entity를 DTO로 변환 하지 않고 그대로 model에 담아서 보낸다면 어떠한 문제들이 있을까요? 질문 드리기 전에 제가 먼저 생각 해봤을 때 장점은 굳이 새로운 dto 객체를 만들지 않아도 된다는 장점이 있고 단점으론 불필요한 데이터도 반환 되는 문제와 api의 확장 가능성이 힘들다 정도 있다고 생각되는 더 많은 단점이 있을까요?
안녕하세요 강사님 현재 회사에서 진행중인 프로젝트에서 ControllerTestSupport를 생성하여 controllerTest시 스프링부트를 띄우는 횟수를 줄이기 위해 사용하였는데 테스트 속도가 줄어들거나 하지 않고 거의 똑같더라구요,, 그래도 스프링부트를 띄우는걸 최소화 하는게 나을까요? ControllerTestSupport 사용해야하는 더 나은 이점이 있는지 궁금합니다!