안녕하세요 강의를 듣던 중 궁금한 점이 생겨 질문드리게 되었습니다. 질문1) new List<int>() { }; 형식의 컬렉션 이니셜라이져는 IEnumerable인터페이스를 구현하고 Add 메소드를 정의한 클래스 대상으로 사용할 수 있는 문법이 맞나요? (앞선 강의에선 list 참조 변수의 Add함수를 호출하여 값을 넣는 것을 보여주셨는데, 같은 것인가요?) 질문2) new List<int>() {} 와 new List<int> {} 는 동일하게 동작하는 것인가요? (중괄호의 차이) 구글링한 내용이 맞는지 궁금합니다.
교수님 화면의 16번쨰 줄에 위치한 (*(parr + j))[i]부분이 잘이해가 안가네요. 저는 맨 바깥 괄호를 빼서 *(parr + j)[i] 이렇게 써도 분명 작동할거 같은데 실제 실행 시켜보면 오류가 납니다. *(parr + j)[i] 에서 연산자 우선순위를 따지면 []가 가장 높지만 parr+j가 괄호 안에 묶여있으니까 *(parr + j)[i]에서 가장 먼저 실행되는 것은 parr+j 일것입니다. 그러면 그이후 *() 부분이 실행이 되고 *(parr + j) 는 arr0 그리고 arr1이 될 것이며 그이후 [i] 부분이 실행이 될텐데 즉 arr0[0]과 arr1[1] 이될텐데 왜 정상 작동 하지 않을까요? 제가 연산자 우선순위를 잘못 생각하고 있는걸까요?
안녕하세요 제로초님 팔로워 팔로잉 기능을 유저와 포스트 관계로 응용하려 합니다. 그래서 User모델에 db . User . belongsToMany ( db . Post , { through : 'Follow' , as : 'Followings' , foreignKey : 'FollowerId' }); Post모델에 db . Post . belongsToMany ( db . User , { through : 'Follow' , as : 'Followers' , foreignKey : 'FollowingId' }); 이런식으로 해주고 LOAD_MY_INFO_REQUEST,액션으로인해 router . get ( '/' , async ( req , res , next ) => { // GET /user try { if ( req . user ) { const fullUserWithoutPassword = await User . findOne ({ where : { id : req . user . id }, attributes : { exclude : [ 'password' ] }, include : [ { model : Post , attributes : [ 'id' ], }, { model : User , as : 'Followers' , attributes : [ 'id' ], }, { model : Post , as : 'Followings' , attributes : [ 'id' ], } ] }) // console.log("fullUserWithoutPassword::::::::::::",JSON.stringify(fullUserWithoutPassword),"enddddddddddddd"); res . status ( 200 ). json ( fullUserWithoutPassword ); } else { res . status ( 200 ). json ( null ); } } catch ( error ) { console . error ( error ); next ( error ); } }); 라우터가 실행되면 백엔드에서 EagerLoadingError [SequelizeEagerLoadingError]: User is not associated to User! 유저와 유저가 연결되어 있지 않다고 뜹니다. 그래서 { model : User , as : 'Followings' , attributes : [ 'id' ], }, { model : Post , as : 'Followers' , attributes : [ 'id' ], } 이런식으로 바꿔줘도 오류는 똑같습니당.. 뭐가 잘못된걸까요... 밑에는 데이터베이스 형태입니다.
강의와는 크게 관련은 없는 질문이지만요.. 제가 웹사이트를 개발해서 최종적으론 앱으로 만들고 싶은데요 그럴려면 아마도 웹사이트+모바일페이지+앱 이렇게 세파트를 만들어야 하는데 react node mysql 에 추가적으로 무엇을 배워야 하나요? 모바일페이지를 만들고 react-native를 배우면 웹사이트를 앱처럼 그냥 쉽게 덮어씌운뒤 앱의기능(알림)등을 사용할 수있나요? 모바일페이지도 한번도 만들어본적이 없어서 막막하네요 ㅠ 혹시 관련 기술들의 커리큘럼 좀 알 수 있을까요
교수님께서 " *ptr 이int 기 때문에 이렇게 선언한다고 하셨는데요." 앞에서부터 강의를 계속 복습하면서 들었는데 처음 포인터를 선언하는 방법을 알려주실때는 그냥 int *ptr 처럼 포인터를 선언한다고 만 하셨구 왜 *ptr이 int인지 에대한 부분은 설명을 안해주셨었던거 같습니다. 해당부분에대한 설명을 알려주실수 있을까요? 9.12 강을 다시들어도 잘 설명이 되지 않은거 같습니다. 해당부분이 이해가 되지 않다보니 int (*(*pptr)) = &ptr;로 작동하는 부분도 잘 이해가 안되네요 ㅜㅜ;;;
안녕하세요 선생님 선생님 코드에서 int i; 를 DFS 함수와 main 함수 각각 따로 선언하지 않고 전역변수로 잡았더니 답이 13이 아니라 22가 나왔습니다. 저는 어차피 둘 다 i가 나와서 한번에 전역변수로 잡자고 생각했는데 안되네요. 왜 안되는지 설명부탁드립니다. #include<stdio.h> #include<vector> #include<algorithm> using namespace std; int map[30][30], ch[30], n, cost=2147000000; int i; void DFS(int v, int sum){ if(v==n){ if(sum<cost) cost=sum; } else{ for(i=1; i<=n; i++){ if(map[v][i]>0 && ch[i]==0){ ch[i]=1; DFS(i, sum+map[v][i]); ch[i]=0; } } } } int main(){ //freopen("input.txt", "rt", stdin); int m, a, b, c; scanf("%d %d", &n, &m); for(i=1; i<=m; i++){ scanf("%d %d %d", &a, &b, &c); map[a][b]=c; } ch[1]=1; DFS(1, 0); printf("%d\n", cost); return 0; }
제목과 같이 Application Patching 1 수업에서 한 것과 같이 패칭 후 바이너리를 바꿔서 앱을 다시 실행시키면 앱 로고가 뜬 후 바로 종료가 돼버리네요.. 무결성 검증을 하고 있는 것도 아닐텐데,, 왜 그런 것일까요..? ------------------------------------------------ ios 13.3 iPhone6s Unc0ver 탈옥 ------------------------------------------------
안녕하세요 강의를 듣던중 6분 50초 경에서 설명한 부분이 제가 생한 부분과 맞는지 헷갈려서 질문드립니다. 포인터로 선언한 변수에 배열명 또는 배열의 첫번째 주소를 넣어주면 포인터명도 배열을 사용하는 것과 똑같이 사용할수 있는 건가요? 2차원 배열 설명할때 한번 말씀해주신 부분인데 본강의와 같은 단순 1차원 배열에서도 똑같은지 헷갈리네요. 예를들어 double arr2[3] = { 1.0, 2.0, 3.0 }; double* pd = arr2; 이라고 하면 이제 pd[1] = 1.4; 와 같이 "포인터명 + [인덱스]"의 형태로 배열이 사용 가능 한건지요.
안녕하세요. 비전공자 백엔드 개발자 준비중입니다. 강사님 좋은 강의 덕분에 spring 공부에 큰 도움이 되고 있습니다. AppConfig에서 역할과 구현을 나누어 구현체를 쉽게 바꿀 수 있다는 원리는 이해하였습니다. 여기서 제가 궁금한게 어떻게 AppConfig에서 메소드를 만들어 구현체를 넣어주면 생성자를 통해 받을 수 있는지, 그 원리가 궁금합니다. 생성자에서 this.객체 = 객체 이런식으로 받는데, AppConfig에서 넣어준 값이 어떻게 해서 이런 원리로 주입이 되는건가요? 제가 생성자 개념이 부족해서 이해가 안되는 것 같기도 하네요... 그리고 Test에서는 AppConfig 인스턴스를 생성해서 넣어줬는데, 왜 실제로는 그렇게 해주지 않은건가요? 메모리 낭비 때문에 그런걸까요? 인스턴스 생성 해서 넣어주는 부분은 이해가 되는데, 생성자로 주입해주는 부분은 원리가 이해가 되질 않네요.
강의 초반 부분엔 get요청에 대한 컨트롤러를 만드시고 9분 40초쯤에는 저 formLogin().loginPage("경로") 설정으로 해당 경로에 post요청을 보내서 로그인이 된다고 하셨는데 그럼 formLogin().loginPage("경로") <- 이 설정은 get, post 경로 설정 두개를 다 해주는건가요?