[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터와 배열 기반 문자열과 둘의 차이에 대해, 제가 이해한 것이 맞는지 확인 해 주실 수 있으신가요? 항상 감사드립니다. [ 포인터 vs 배열 ] 포인터를 이용한 문자열 const char test1 = “Hello World”; * “Hello World”는 데이터 영역(.rodata)에 배열의 형태로 할당된다. 포인터 test1은 원본 배열 첫 번째 요소인 ‘H’의 주소를 가진다. .rodata에 존재하므로 문자열의 각 요소를 수정할 수 없다. 배열을 이용한 문자열 char test2[ ] = “Hello World”; 미리 데이터 영역에 할당된 “Hello World”의 요소를 각각 복사하여 새로운 배열이 할당된다. 배열 이름 test2는 복사된 배열 첫 번째 요소인 ‘H’의 주소를 가진다. 복사된 배열이므로 문자열의 각 요소를 수정할 수 있다. 결론, 포인터와 배열의 차이 배열과 포인터는 본질적으로 다르다. 배열의 이름이 포인터처럼 사용되지만, 포인터가 오직 어떠한 대상을 가리키는 고정 크기의 주소만 가지고 있는 반면, 배열은 이름이 포인터로 동작할 수 있을 뿐 본질은 변수의 모임이라는 여러 바구니로 이루어져 있기 때문이다. 따라서 배열의 크기는 포인터와 달리 타입과 길이에 의해 달라진다.
MemberServiceV3_3Test에서 다음과 같이 TestConfig에 빈을 등록해주었습니다. @Bean PlatformTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource()); } 하지만 transactionManager를 주석처리를 하고 다시 돌려보니 정상적으로 실행되는 것을 확인했습니다. 트랜잭션 AOP는 스프링 빈에 등록된 트랜잭션 매니저를 찾아서 사용한다고하는데 주석 처리를 했음에도 작동이 왜 되는 걸까요?
특정 라이브러리의 타입이 없다고 할 경우.. 직접 declare module chart.js로 하게 되면 내부의 구조를 모를 것 같은데요 타입 파일이 없어서 개인이 대응해서 만든다고 할 경우 구조를 일일이 추가하지 않으면 타입의 구체적인 형태 선언하지 않았으니.. 힌트들이 나오지 않을 건데요.. 이럴 땐 그냥 없는 체로(?) 써야 하는건지 다른 방식으로 대응해 가는 방법이 있는지 궁금합니다. 예시) declare module 'chart.js' 위 처럼 선언 했는데 내부 내용을 선언하지 않아서 적당한 힌트가 없는 경우 어떻게 해야 하는지에 대한 문의 입니다 글로 쓰기 어렵네요^^;
export default function* userSaga() { yield all([fork(watchLogin), fork(watchHello)]); } export default function* rootSaga() { yield all([call(userSaga), call(postSaga)]); } userSaga에서는 순서가 없기 때문에 fork를 썻다고 하셧는데 rootSaga에서는 call을 쓰는 이유가 있나요? rootSaga도 실행하는데 순서가 크게 중요할 것 같지 않아서 call을 써야 하는 이유가 있는지 궁금합니다.
let origin = { name: "otter", age: 25, favoriteFood: { first: "sushi", second: "hamburger" } }; const copy = JSON.stringify(origin); const deepCopy = JSON.parse(copy); 강의에서 깊은 복사할 때 위 코드처럼 JSON.stringify(), JSON.parse()를 사용해서 복사를 해주셨는데 아래의 코드처럼 복사해주어도 문제가 없을까요? 물론 객체 안에 객체들이 많아진다면 JSON 명령어를 사용해서 복사해주는 것이 좋다고 생각합니다! 하지만 예시처럼 객체가 하나거나 적은 경우에 저는 개인적으로 아래처럼 해주는 게 편한 것 같아서 아래처럼 복사해줘도 괜찮은건지 질문드립니다! let origin = { name: "otter", age: 25, favoriteFood: { first: "sushi", second: "hamburger" } }; const myCopy = {...origin, favoriteFood: {...origin.favoriteFood}}
강의에서는 H2를 사용하였는데 DB로 MySql, PostgreSql같이 다른 RDBMS를 사용해보려고 합니다. AWS에 올릴 경우 application.properties에 작성한 DB설정 내용과 gradle이 가져오는 라이브러리를 제외하고는 모든 것이 똑같이 하면 되는 걸까요?
아폴로 캐시 데이터를 직접 수정하고 싶어서 질문 드립니다. 포인트 충전 시 변경된 포인트를 refetchQueries 사용하지 않고, 캐시를 수정해서 화면에 보여주려 하는데요. 두번째 사진에서 캐시에 저장된 fetchUserLoggedIn.userPoint.amount를 직접 수정하고 싶은데 어떻게 수정해야 할지 모르겠습니다. 강의에서 cache.modify를 이용해 배열에 아이템 목록을 추가하거나 삭제하는 예시만 알려주셔서요. 캐시 데이터를 직접 수정하는 방법이 있을지 여쭙고 싶습니다.
안녕하세요 선생님, 수업 정말 잘 듣고 있습니다. 자기 서버에 원격 저장소 만들기 (My Server) 파트에서 초반에 ssh git@13.124.42.13 으로 @ 뒤에 숫자들을 입력하셨는데요. 이 숫자들을 제 컴퓨터에서는 어디서 찾아야 하는지 몰라서 질문 드립니다. 깃허브 세팅의 SSH 부분을 봐도 못 찾겠습니다. 다음 강의도 여기서 계속 이어지는 것이라 진행이 안 되고 있습니다.
저는 이때까지 상위클래스-하위클래스의 관계를 가지고 있으면 상위 클래스의 변수와 로직을 하위클래스에서 끌어 쓸 수 있다고만 알고 있었는데요. 테스트를 해 보니 상위 클래스의 이벤트 그래프의 로직을 하위 클래스에 복사 붙여넣기 하지 않아도 하위클래스의 객체가 이 로직을 그대로 실행하더군요. 상위클래스의 이벤트 그래프의 로직을 하위클래스의 이벤트 그래프에 복사 붙여넣기 해주지 않아도 하위클래스로 만든 객체가 상위 클래스의 로직을 자동으로 실행하는게 맞는지 확인하고 싶습니다.