[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요! 간단한것 같지만 참 아리송한 문제로 긴 삽질 끝에 질문 드립니다 선생님..! StatInfo& monster_2 = *(monsters + 2); 위의 코드중 '*' 참조 하는 부분이 이해가 잘 되지 않습니다.! 위의 코드는 배열의 3번째 요소를 monster_2 로 사용하고 싶은 목적이라고 생각이 듭니다.! 그러면 StatInfo& monster_2 = (배열의 3번째 요소의 주소) 일텐데. 그러면 참조를 할 필요 없이 배열명은 배열의 시작 주소이기 때문에 monsters + 2는 이미 배열의 3번째 요소의 시작 주소이고 따라서 참조를 하지 않아야 맞는게 아닌가 라는 생각이 절 괴 롭고 미치게 합니다...ㅜ 오히려 참조를 하면 주소 monsters + 2 안에 들어있는 값으 로 이동을 하려 할테고 그러면 세그먼트 오류가 나야 맞다고 생각이 드는데.. 살려주세요 선생님
비즈랩 유튜브를 통해서 보았던 강의들을 인프런에서도 동일하게 서비스 하고있는 줄 이제야 알았습니다. 초기 개념적립 시, 많은도움이 되어 항상 감사한 마음을 가지고 있습니다! 다만, 아직은 국내에서 생소한? 프로그램이다보니, 간혹 질문사항이 생겼을때 해당사항을 어디에 질문을 하고 답을 얻어야 할지 막막할때가 많습니다. (찾아본바로는, 페이스북 태블로코리아 그룹 / 태블로 공홈 코리아 커뮤니티 등 이 있지만, 활발하게 질/답 행위가 적어보임) 선생님께서 추천해주실만한 질답 or 커뮤니티가 있으실까요 ?
좋은 강의 감사합니다. 응용 하던 중에 Bean 등록 시점에 애러가 나버렸어요. AuthManager 주입을 받기위해 이런 시도를 해봤습니다 AjaxLoginProcessingFilter 를 @Component 로 등록할 될 경우 Auth...Manager 를 필요로 하기때문에 서버 기동이 안됩니다. 때문에 SecurityConfig 에서 참조가능한 AuthManager 를 아래와 같이 @Bean 으로 등록 후, 외부에서 주입받도록 했었습니다. public class AjaxSecurityConfig extends WebSecurityConfigurerAdapter { @Bean @Override public AuthenticationManager authenticationManagerBean () throws Exception { return super . authenticationManagerBean () ; } } 결과 : Config < > AjaxFilter 순환참조가 발생했습니다 -`서버기동 실패` 그래서 이 방법은 적용하지 않았습니다 일관적이게 코딩하려다 보니, SecurityConfig 자원들을 생성자 DI 로 주입받다가 갑자기 @Bean 으로 등록하는 것이 잘 하는건지 잘모르겠습니다만, 지금 은 실습 예제와 같이 설정 후 정상작동 중이긴 합니다. public class AjaxSecurityConfig extends WebSecurityConfigurerAdapter { ... @Bean public Filter ajaxLoginProcessingFilter () throws Exception { final AjaxLoginProcessingFilter filter = new AjaxLoginProcessingFilter () ; filter . setAuthenticationManager ( authenticationManagerBean ()) ; return filter ; } } 질문입니다. 제가 시도한 방법으로는 반드시 Config 내부에 @Bean 등록을 거쳐야 Filter 등록이 가능한데요, AuthManager 를 `순환 참조없이` 외부에서 DI 받는 방법은 없나요? 읽어주셔서 감사합니다
안녕하세요! 강의 정말 잘 듣고 있습니다! 그런데 퀵정렬 마지막 부분에 조금 이해가 안되는 부분이 있어서 질문드립니다. pivot을 low로 했을때, 잘 정렬된 리스트 일수록 퀵 정렬의 성능이 나빠진다고 하셨는데, 코드를 보면 잘 정렬된 리스트라도 무작위로 정렬된 리스트와 길이가 같다면 단위 연산의 실행횟수는 똑같을것으로 보이는데 왜 성능이 나빠진다고 하는지 궁금합니다. 잘 정렬된 리스트에 수행하지 않아도될 정렬 알고리즘이 수행되어서 비효율적으로 보여서 성능이 나빠졌다고 표현하신건지 궁금합니다!
Instance = GameObject.Find("@Managers"). GetComponent<Managers>(); 이렇게 호출하는것과 GameObject go = GameObject Find("@Managers"); Instance = go.GetComponent<Managers>(); 이렇게 호출하는 것 두가지 방법의 장단점이 있나요 제가생각했을 때에는 go라는 새로운 클래스는 @Managers 안의 Managers 클래스를 찾기위해서만 쓰이는 것 같은데 @Managers라는 전체 클래스를 계속 저장하고 있는것이 조금 손해를 보는 느낌이고 밑의 경우에는 만약 나중에 @Managers클래스를 다시 접근해야할 상황이 있을 때 위의 방법보다 접근이 용이한 장점이 있는 것 같습니다. 제가 이해하고 있는것이 맞는지, 그리고 제가 미처 생각하지 못한 다른 장단점이 있는지 질문드립니다.
안녕하세요, 최근 안드로이드를 입문한지 얼마안됬고 IDE도 많이 다뤄보지 못해서 모를는 것이 많습니다. 아래 이미지는 제 안드로이드 스튜디오 화면인데요, 강사님의 레이아웃 미리보기와 다르게 제 미리보기 화면은 그냥 흰 백지만 보이고 있습니다. 웬만하면 구글링을 통해 스스로 해결해보고 싶었는데 정보가 바로 나오지않아서 여쭤봅니다. 강사님처럼 레이아웃 미리보기 화면에 상단 네비게이션이 보이게끔 하려면 어떻게 설정해야하나요?
안녕하세요 강의 들으며 따라하고 있는데 사용 환경은 mac 이고 safari 로 라이브서버 켜서 코드 확인하고 있습니다 그런데 제 결과창에 있는 placeholder 모양이 이상해서 질문드립니다 ..ㅠㅠ 첫번째 사진은 .item input 을 모두 주석처리하니 저런 스타일이 나왔고 2) .item input 주석을 풀면 꼭 창문 틀처럼 저렇게 placeholder 테두리가 액자같은 유격?이 생겨있네요... 강사님이랑 똑같은 코드로 작성했는데.. 저거 없애려면 어떡하면 좋을까요? 혹시 크롬이나 다른 환경에서 켜서 확인해봐야할까요?
이제 강의 막바지네요! 근데 질문이 있습니다! 강의 초반쯤에 배운거 같은데 원래 스프링이 bean을 생성할때 바이트코드를 조작해서 cglib를 통해 생성하는거 아니였나요? 영상 4분정도에 설명하시는 것은 마치 이때까지는 우리가 직접만든걸로 직접 등록이 된거지만 프록시를 이용한 경우에만 특수한경우로 cglib를 통한다 처럼 들려서요... 제가 헷갈린것인지 바로잡고 싶습니다 ㅠㅠ
안녕하세요 교수님! 질문 있습니다! Q1. 부모의 상황에 따라서 다음과 같이 흐름을 잡아 보았습니다. 이와 같은 생애 주기를 갖는 것이 맞을까요? 1. 부모가 기다리는 경우 부모 - running - fork() - wait() - interrupt - ready - running - terminated 2. 부모가 계속 실행되는 경우는 어떻게 표현 될런지요? Q2. 1번째의 경우에는 기다리고 있던 부모가 자식이 종료되고 자식의 interrupting을 통해 사용한 리소스를 회수 하도록 허락 한다면, 부모가 계속 실행되는 경우에는 어떻게 회수 되나요?
import sys from collections import deque sys.stdin = open("input.text", "rt") input = sys.stdin.readline n = int(input()) mat = [list(map(int, input().split())) for _ in range(n)] dp = [[0]*n for _ in range(n)] dp[0][0] = mat[0][0] que = deque() que.append((0, 0)) while que: y, x = que.popleft() for dy, dx in zip([0, 1], [1, 0]): ny, nx = y+dy, x+dx if 0 <= ny < n and 0 <= nx < n: # 범위 확인 if dp[y][x]+mat[ny][nx] < dp[ny][nx]: # 최소 에너지가 존재하는 경우 dp[ny][nx] = dp[y][x]+mat[ny][nx] que.append((ny, nx)) elif not dp[ny][nx]: # 처음 초기화되어 있는 곳(0) dp[ny][nx] = dp[y][x]+mat[ny][nx] que.append((ny, nx)) print(dp[n-1][n-1]) 이 문제를 bfs 방식으로 풀었을 때 시간 복잡도의 큰 손해가 존재하는지 궁금합니다. 테스트케이스는 통과를 하였습니다.
안녕하세요. https://github.com/browserslist/browserslist#queries 참고해보면 지원가능한 브라우저나 지원 하고싶은 브라우저 설정이 많잖아요. 근데 그냥 모든 브라우저 지원으로 설정해두면 편한데 굳이 따로 설정을 하는 이유는 성능 문제인가요?