안녕하세요. 12.7 강의를 보고 클래스 설계에 관하여 질문드립니다. 추상클래스 예제로 Animal 을 이용해 예제를 보여주셨는데요. 인터페이스 클래스로 구성하면 string을 새로운 클래스에다가 넣고, IAniamal 클래스에 speak() 함수만 넣어놓고 구성할 수 있자나요. - 인터페이스 + 상속 이용 - 추상클래스를 이용한 설계 이런식으로 그렇다면, 추상클래스로 설계하는 것이 좋을까요? 인터페이스 형식으로 설계하는 것이 좋을까요??
void swap(int* xp, int* yp); void printArray(int arr[], int size); void selectionSort(int arr[], int n); int main() { int arr[] = { 64, 25, 12, 22, 11 }; int n = sizeof(arr) / sizeof(arr[0]); selectionSort(arr, n); // ascending order printArray(arr, n); return 0; } void swap(int* xp, int* yp) { int save = *xp; *xp = *yp; *yp = save; } void selectionSort(int arr[], int n) { while (n) { int i = 1; int* min_idx = arr; while (i < n) { min_idx = (*min_idx < *(arr + i)) ? min_idx : &arr[i]; i++; } swap(arr, min_idx); arr++; n--; } } void printArray(int arr[], int size) { for (int i = 0; i < size; i++) printf("Sort = %d\n", arr[i]); } 코드 안보고 나름 깔끔하게 해봤습니다. 한시간걸렸네요. 확실히 전 강의에서 strlen()함수부터 strpbhr(), strstr()까지 직접 구현해보면서 공부해보니 나름 정리가 되는 느낌이네요. 삼항연산자 처음에 배운 뒤로 잘 쓴 적 없어서 복습겸 넣어봤습니다. 최솟값 등을 구할 때 제일인 것 같아서요. 최대한 포인터를 이용하려고 했고, 결과물은 잘 나온 것 같아요. 좋은 코드가 아니라면 피드백 부탁드립니다.
안녕하세요! 좋은강의 감사드립니다. import promiseMiddleware from 'redux-promise'; import ReduxThunk from 'redux-thunk'; import를 할 때 어떤건 소문자로 시작하고, 어떤 건 대문자로 시작하는데, 지키면 좋은 규칙등이 있는 걸까요?? 파일명도 마찬가지로 소문자로 시작하기도하고 대문자로 시작하기도 하는데, 구분 방법이 있는지 궁금합니다! 감사합니다!!
강사님 덕분에 강의 열심히 들으면서 방학을 알차게 보내고 있습니다! 다만 이번 강의는 좀 어려웠던지 오류가 발생해서 처음으로 질문드립니다. 다른 질문도 찾아보고 구글링을 해서 왜 오류가 생기는지는 알았는데 정확하게 어떻게 해결하고 방지해야할지 몰라서 질문드려요. 강의 : 주문목록 조회 및 취소 발생상황: orders를 조회 후 템플릿에 넘기는 상황 오류메시지: 오류 원인 추정(디버깅): Transacitonal인 서비스에서 객체가 Lazy 객체는 따로 조회하지 않아 해당 값은 null또는 지연연결로 인해 값이 없어서 나타나는 현상이라고 이해했습니다. 구글링 검색으로는 컨트롤러에서는 transactional이 걸려있지 않아 서비스에서 섹션이 종료되어 컨트롤러에서는 따로 영속성객체를 조회할수 없다고 이해했는데 맞는지는 잘 모르겠습니다 ㅜㅜ 질문 1. 제 짧은 소견으로는 엔티티 구성상 당연하게 LazyInitializationException이 나타날 수 밖에 없게 설계가 된 것같은데 강사님은 예제에서 이런 오류가 안나오더라구요. 왜 제 파일에서는 이러한 예외가 나왔는지 알고싶습니다. 2. LazyInitializationException의 해결방법(설계 지향점)을 알고싶습니다. 3. 제가 뭘 빼놓고 적은줄 알고 소스파일을 싹다 예제파일로 바꿨는데도 오류가 났는데 이상하게 리소스파일을 전부 바꾸니까 정상 작동했습니다. 위에 나온 디버깅상황에서는 설계 구성상 미스인줄 알았는데 템플릿파일에서 문제가 있는 것처럼 나오니까 뭐가 맞는지 잘 모르겠습니다. ㅜㅜ 여태 들은 강의는 Spring 핵심 기본 / MVC 1편 / 실용 JPA 1편 들었습니다.
안녕하세요 김영한 선생님 지난 강의에서 이미 배운 내용이라 조금 부끄러운 질문이지만, 구글링 후에도 명확한 답을 얻지 못하여 이렇게 남깁니다. 이번 영상의 테스트 케이스에서, @Autowired MemberRepository memberRepositiry; 위와 같이 의존관계를 주입하셨습니다. <스프링 컨테이너가 관리하는 스프링 빈이어야 @Autowired를 통해 자동으로 의존관계를 주입할 수 있다>고 기억하고 있는데요, 이번 코드에서는 빈이 생성되지 않은 것 같은데, 제가 어느 부분을 놓치고 있는 것인지 궁금합니다 ㅜㅜ 늘 즐겁게 배우고 있습니다 감사합니다 :)
ordersV6의 스트림식에서 orderQuerydto를 키로 하고 orderitemquerydto의 list를 밸류로 한것 같은데 multivaluemap이 아닌 그냥 map은 키가 같을때 밸류를 덥어씌우는것으로 알고 있는데 어떻게 밸류가 list<orderquerydto>형태로 저장될수 있는지 궁금합니다.
import { Injectable } from '@nestjs/common' ; import { AuthGuard } from '@nestjs/passport' ; @ Injectable () export class JwtAuthGuard extends AuthGuard ( 'jwt' ) {} AuthGuard를 상속받으니 해당 클래스 내에서 Strategy를 찾아서 validate 함수를 실행하는 것 같긴 한데 jwt.guard에는 인자로 직접 의존성을 주입하지 않고도 jwt.strategy의 클래스를 어떻게 찾아내는지 잘 모르겠습니다.
로그인은 되는데 글쓰기 기능은 버튼을 눌러도 아무 일이 일어나지 않습니다. BoardWriteActivity.kt 코드입니다. build.gradle(:Module) 입니다. build.gradle(:Project) 입니다. Androidmanifest 입니다. 강사님 코드와 비교해봤을때 다른점은 없는데 로그인은 되는데 글쓰기 기능이 동작하지 않습니다. 로그를 보니 2021-08-15 16:52:45.697 23215-27862/com.example.mysampleapp W/PersistentConnection: pc_0 - Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Database lives in a different region. Please change your database URL to https://mysampleproject-2f2b2-default-rtdb.asia-southeast1.firebasedatabase.app 이렇게 되어있어서 해당 주소로 realtime database의 위치를 바꾸고 진행해도 동일하게 글쓰기를 눌러도 아무 일이 일어나지 않습니다...
CompletableFuture 2 강의 중에 09:16쯤에 allof 후에 thenApply 시점에서 모든 작업이 끝난 상태라고 하셨는데 그러면 allof는 invokeAll과 같이 모든 작업이 끝날 때까지 기다리는 것 같은데 그러면 블록킹 콜이 되는 것이 아닌가요?? 하지만 11분 53초에서는 아무것도 블록킹이 되지 않는다고 하셔서 헷갈려서 질문 드립니다. 제가 블록킹 콜에 대한 의미를 잘못 알고 있는 것일까요?? 관련 키워드도 함께 알려주시면 공부해보겠습니다.
10:30분쯤 코드 강의에서 포인터로 선언된 변수의 size는 컴파일러에 따라 런타임시에 결정된다고 보았습니다. VS code에서 아래와 같이 작성하면 int의 sizeof는 4 byte인데 int type의 pointer의 size는 8 byte입니다. 4byte라면 int type이니까 그런가보다 할거 같은데 왜 gcc에서의 int type pointer size는 8 byte일까요?