안녕하세요 궁금한 점이 있어 질문 드립니다. 아래 두 코드가 있는데 둘 다 알수 없는 구조의 객체를 매개변수로 받는 함수입니다. 첫번째는 매개변수의 값을 인덱스드 시그니처로 받았고 두번째는 객체 타입 그 자체로 받았습니다. 첫번째 코드는 문제없이 통과 되고 두번째 코드는 o[key] 부분에 오류가 나는데 에러 내용을 봐도 잘 모르겠어서 질문 드립니다. 제가 이해한건 object가 {}라고 하셨는데 {}는 전체타입(집합?)에서 null과 undefined를 제외한 나머지를 말한다 하셨습니다. 이때 object는 객체 뿐 아니라 문자열이나 숫자가 될수도 있기 때문에 에러가 난다 생각했습니다. 다른 글을 보니 코드에서 에러가 발생한 이유는 string literal 타입만 허용되는 곳에 string 타입을 사용했기 때문이라는데 object의 키는 문자열 리터럴 타입인데 반복문을 도는 key는 스트링 타입이라 그런건가요? 마지막으로 string으로 {}를 인덱싱 할수 없는데 왜 any 타입을 가지는 건지도 궁금합니다. 감사합니다! function hasTwelveLetterKey(o: { [key: string]: any }) { for (const key in o) { if (key.length === 12) { return true; } } return false; } function hasTwelveLetterKey(o: object) { for (const key in o) { if (key.length === 12) { console.log(key, o); console.log(key, o[key]); // Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{}' // No index signature with a parameter of type 'string' was found on type '{}'. return true; } } return false; }
안녕하세요. 그림부분에서 이해가 가지않아 질문 드립니다. a =[1,2,3] 으로 초기화를하면 array는 0,1,2 즉 배열 그림이 3칸([][][])만 있어야 하는게 아닌가요? 하지만 강의의 그림에서는 [1][2][3][][] 으로 0,1,2,3,4 까지 그려져 있습니다. (size가 3인데 말이죠) a.append(4) 를 했을때, 동적배열은 array로 구현이 돼어있기때문에 random access 가 가능하여 마지막 index를 찾을 수 있다고 하셨는데, 선언및 초기화 a = [1,2,3] // 그림 -> [1][2][3] 접근 a[0] // O(1) 수정 a[1] = 9 // 그림 [1],[9],[3] 추가 a.append(4) // 이때 Resizing 이 일어나 /* 그림 [1][9][3] // 값을 옮긴 후 삭제 [1][9][3][4][][] // 복잡도 O(n) */ 의 모양이 돼야하는게 아닌가요? 즉, 궁굼한 점은 선언 및 초기화 할때 배열의 size 는 3인데그림의 배열 size는 [][][][][] 5칸이냐는 것입니다.
#include <iostream> #include <string> using namespace std; class Friend1 { private: string name; friend void Friend2::set_name(Friend1& f, string s); friend void Friend2::show_name(Friend1& f); }; class Friend2 { public: void set_name(Friend1& f, string s) { f.name = s; } void show_name(Friend1& f) { cout << f.name << endl; } }; int main(void) { Friend1 f1; Friend2 f2; f2.set_name(f1, "abc"); f2.show_name(f1); return 0; } Friend2 의 멤버함수인 set_name과 show_name을 클래스 Friend1에 friend선언을 해 주려 합니다. 하지만 private한 name 변수에 접근할 수 없다는 이유로 작동하지 않습니다. 이런 구조로 코드를 작성하는 방법은 없을까요? 아니면 전역함수만 friend 선언이 가능한 걸 까요?
안녕하세요. 현재 패키지명을 바꾸려고 하고 있는데 다른 파일들은 다 있는 buck 파일이 없어서 패키지명을 바꾸는데 애를 먹고 있습니다. 혹시 buck 파일이 없는 이유를 아실까요? 처음부터 보면서 따라갔고 다시 돌려보았으나 혹시 제가 놓친 부분이 있어서 그러한 것인지 알고 싶습니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 빈 이름으로 조회하는 test를 작성할 때 강사님께서 "memberService가 MemberServiceImpl의 인스턴스 이면 성공" 이라고 하셨는데 1. AppConfig의 memberService 메소드가 실행되고 반환된 MemberServiceImpl이 memberService 객체에 저장됨 그러므로 memberService가 MemberServiceImpl의 인스턴스임 성공 의 의미가 맞을까요? 아니면 AppConfig의 memberService 메소드가 MemberServiceImpl의 인스턴스라는 걸까요..? 이건 말이 안 된다고 생각해서요..
안녕하세요 강의 잘듣고 있습니다. 실무적용하다가 궁금해서 질문드립니다. 1.현재 개발중인 서비스가 서버에서 데이터를 가져올때 요청한 갯수만큼 가져올수 있는데 만약 10개를 서버에 요청한다면 PagerConfig의 pageSize 인자도 10개로 맞춰줘야 하나요? 2.북서치예제에서 PAGING_SIZE 가 17이면 NPE가 발생해서 앱이 종료되는데 이유를 모르겠습니다. 3.현재 하단에 fragment 탭 4개가 있고 한개의 탭안에 2개의 자식 fragment가 중첩되는있는 구조인데 둘다 paging + stateflow 를 사용하고 있습니다. 그런데 다른 fragment 이동했다가 다시돌아오면 북서치예제처럼 스크롤이 마지막 포지션을 유지하는 것이 아니고 리스트를 새로 그려서 맨위로 올라갑니다. 스크롤을 유지하려면 어떻게 해야될까요? 그리고 리스트를 그려줄때 깜빡이는 현상이 있는데 북서치예제처럼 부드럽게 그려주려면 어떻게 해야될까요? 질문이 너무 중구난방이라 죄송합니다..
안녕하세요. <Q1>포인터 질문 (예시) char *string = "abcdefg"; char **ptr = string; string과 ptr은 메모리 구조에서 스택에 쌓이지만, abcdefg는 상수로서 data segment(읽기전용)에 저장되는 것이 맞나요? 따라서, abcdefg를 다른 문자로 변경하지 못하는 것이라고 이해하였는데, 제대로 이해했는지 궁금합니다. 또한, "abcdefg"가 한 뭉텅이로 저장되어있어서, ptr이 배열처럼 abcdefg에서 a의 주소를 가리키는 것이 아니라 abcdefg 자체를 가리키고 있는 것이어서, ptr + 1을 해도 b에 접근하는 것이 아니라 정의되지 않은 어떠한 메모리 주소에 접근하는 것이라고 보면 될까요? <Q2> 구조체 질문 (예시) struct student { char* name; int score; }; int main() { struct student* my_student = (struct name*)malloc(sizeof(struct name*)); ... return 0; } 1. student->name이 의미하는 것은 '주소'인가요 주소를 통해 접근한 '값'인가요? 감사합니다~
안녕하세요 캡틴판교님 -SignupForm.vue 위의 vue에서는 data.username으로 바로 받아왔는데 -LoginForm.vue 위의 vue에서는 data.user.username으로 받아오던데 F12눌렀을때 한번더 감싸있어서 그런거같은데 왜 감싸지는걸까요? 그리고 위아래 차이점은 왜 생기는건지 궁금해요
싱글톤 방식의 문제점 코드에서, @Test void statefulServiceSingleton() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); StatefulService statefulService1 = ac.getBean("statefulService", StatefulService.class); StatefulService statefulService2 = ac.getBean("statefulService", StatefulService.class); // 스레드 A: A 사용자가 10000원 주문 statefulService1.order("userA", 10000); // 스레드 B: B 사용자가 20000원 주문 statefulService2.order("userB", 20000); // ThreadA: A 사용자 주문 금액 조회 int price = statefulService1.getPrice(); //ThreadA: 사용자A는 10000원을 기대했지만, 기대와 다르게 20000원 출력 System.out.println("price = " + price); assertThat(statefulService1.getPrice()).isEqualTo(20000); } 다음과 같이 statefulService1, statefulService2 로 StatefulService의 참조 변수를 2개 선언해주는데 이렇게 선언해주신 이유가 뭔가요? 다른 스레드라도 어차피 같은 참조를 호출하게 되지 않나요..? 단순히 스레드의 개념을 보여주시기 위해 Service 참조변수를 여러개 선언하신 건가요?
안녕하세요 강의보던중 궁금한점 생겨서 질문드립니다. 9분 45초에서 Receive용으로 사용하는 SocketAsyncEventArgs의 버퍼를 설정해주는데요, 이때 이 버퍼가 [입출력버퍼, 슬라이딩 윈도우] 강의에서 설명해주셨던 입력버퍼가 되는걸까요? 아니면 입력버퍼에 들어온 데이터를 넘겨받는 버퍼로 사용되는걸까요?
function solution(need, plan) { let answer = 'YES'; let queue = []; for (let x of plan) { if (need.includes(x)) queue.push(x); } if (need !== queue.join('')) return 'NO'; return answer; } let a = 'CBA'; let b = 'CBDAGE'; console.log(solution(a, b)); 큐로 접근해서 문제풀이하고 싶었으나 비효율적(?)으로 풀어버렸습니다 😂 혹시 이렇게 풀이해도 괜찮은걸까요 ? 리뷰 부탁드립니다 !
안녕하세요. 피그마 토큰을 사용하여 디자인 토큰을 만들다 궁금한 점이 있습니다. 만약, 폰트 크기가 16px이고 폰트 굵기가 regular 인 타이포그래피를 body.md 라고 정의한다고 했을 때 body.md에 텍스트 데코레이션으로 밑줄(underline)을 주고자 할 때 토큰을 어떻게 설정할 수 있을까요? 처음에 생각했던 방법은 아래와 같습니다. body.md.default (font-size: 16, font-weight: regular) body.md.underline (font-size: 16, font-weight: regular, text-decoration: underline) 이렇게 했을 경우, 피그마 토큰에서 텍스트 데코레이션 여부에 따라 토큰을 만들어서 피그마에 로컬 스타일로 내보낼 수 있지만, 같은 폰트 크기와 굵기를 사용하는 경우 수많은 토큰이 생성되는 문제가 있습니다 (body.sm.default / body.sm.underline / body.sm.line-through 등) 제가 원하는 방향은 조금 더 깔끔한 디자인 시스템을 만드는 것입니다. (body.sm / body.md / body.lg 등) 그래서 찾은 방법은 pro 요금제에서 지원하는 composition tokens을 활용해봤습니다. composition tokens에서 typography.test 토큰을 만들어서 body.md(font-size: 16, font-weight: regular) + text.decoration(underline) 두개의 토큰을 속성으로 추가 했습니다. 문제는 composition tokens 으로 만든 토큰을 피그마 로컬로 내보냈을 때(creat styles) 로컬 토큰에 test 토큰이 생성되지 않는 문제가 생겼습니다. composition 토큰으로 타이포그래피를 만들었을 때 로컬 스타일로 내보내는 방법이 없을까요? 그리고 타이포그래피마다 텍스트 데코레이션을 다양하게 주고 싶을 때 디자인 시스템에서 어떻게 해결할 수 있을까요?