express 로 GraphQL 사용하였을 때 코드는 아래와 같습니다. const typeDefs = `#graphql input CreateBoardInput { writer: String title: String contents: String } type Mutation { createBoard(createBoardInput: CreateBoardInput!): String } `; const resolvers = { Mutation: { createBoard: (parent, args, context, info) => { ... return "게시글 등록 성공" } } 위 내용을 Nest.js - GraphQL 에 적용하였을 때 아래와 같이 구현했습니다. @Mutation(() => String) createBoard( @Args('createBoardInput') createBoardInput: CreateBoardInput, ): string { // 1. 브라우저에서 보내준 Data 확인하기 console.log(createBoardInput.writer); console.log(createBoardInput.title); console.log(createBoardInput.contents); // 2. DB접속 후, 데이터 저장 => 데이터 저장했다고 가정 // 3. DB에 저장된 결과를 브라우저에 응답(response) 주기 return '게시글 등록 성공'; } @InputType() export class CreateBoardInput { // export 추가 및 클래스 이름 변경 @Field(() => String) writer: string; @Field(() => String) title: string; @Field(() => String, { nullable: true }) contents: string; } @InputType() 데코레이터: CreateBoardInput 클래스에 @InputType() 데코레이터를 적용하여, 이 클래스가 GraphQL 스키마에서 입력 타입으로 적용되게 되는데요. InputType 데코레이터의 경우 class 파일 위에 존재해야 한다고 합니다. 지금처럼 InputType이 늘어날때마다 class 를 추가하나요? 실무에서는 어떻게 사용하나요?
커머스 서비스로 배우는 NestJS 실전 개발 (w. Prisma, Docker, Redis, Kafka)
모듈 래포지토리 등록 방식이 제가 알고 있던 방식과 달라 질문드립니다. 1.providers에 직접 등록 이 방식은 래포지토리를 새로운 인스턴스로 만들어서 사용하는 방식으로 알고 있습니다. 2. 다른 모듈을 imports에 등록 이 방법은 싱글톤으로 동일한 인스턴스가 공유하는 방식으로 알고 있습니다. 2가지 방식 중 1번을 선택하신 이유와 실무에서는 어떤 방식을 사용하는지 궁금합니다!
업캐스팅의 원칙 자식에 이름이 같은 메서드가 있으면 우선 작동한다. 부모에 자식과 같은 메서드가 있으면, 자식을 호출한다. -> 2개 똑같은 말인가요? -> "자식이 오버라이딩한 메서드가 있다면 그것을 우선한다." 이것은 업캐스팅과 관련없이 적용되는것 아닌가요? (업케스팅이 아닌 상황에서도)
기출 2023년 2회 코드해석 문제 26분 C언어 정렬 문제 질문있습니다 정답은 오름차순 정렬해야 해서 부등호 > 입니다 그런데 부등호 <를 써서 내림차순 정렬해도 문제 없는 코드 아닌가요?? 오름차순을 만들어야 하는 이유는 뭔가요? 내림차순 정렬을 할 수 도 있지 않나요???ㅜㅠㅠ
2024년 2월 기출문제 질문드리고 싶어 여쭤봅니다 ! 동영상강의 1:05:22초 부분에서 가장 하단의 for ( int i = 0; i<10; i++){ printf("%c", str2[i]); } 부분에 대해 질문드리고 싶은데, 이 부분이 제 컴퓨터에서는 first ring이 아닌 firstring으로 strcopy함수의 \0을 인식하지 못하는 것 같더라고요, 이 부분이 윈도우 비주얼 스튜디오에서는 어떻게 찍히는지 모르겠는데, 맥의 xcode ide에서는 사진처럼 출력이 되네요 .. 이런건 ide의 문제인지 여쭤보고 싶습니다 ..! 이런 뉘앙스가 되면 시험 출제 시 전체 정답 처리가 될 가능성이 있을까요 ? 강의 영상 너무 잘 보고 있습니다 ! 좋은 강의 제공해주셔서 감사드립니다 !
10:29초에 Class B extends A{ public B(){ - 이쪽 부분이 상속이 된다고 알려주셨는데 8:12초에 class B extends A{ public void pain() { - 에서는 왜 상속이 안되는지 차이점을 잘 모르겠습니다 본인이 태어나기 전에 부모의 기본 생성자를 호출한다"라고 이해를 했는데 왜 8:12초에는 부모 생성자를 호출을 안하는 건가요? 혹시 생성자 B()가 있어야 부모를 호출할 수 있는건가요?
안녕하세요. 12:40초 경에 찾는 숫자가 배열에 있는지 확인하는 함수를 2번 방법으로 구현할 때 찾는 숫자 : 1, 배열 : arr = [2, 3, 4, 5] 이런식으로 배열에 찾는 숫자보다 큰 값들만 있으면 cur이 -1이니까 arr[cur] == num에서 out of index 에러가 발생할 것 같은데 일반적인 이분탐색을 매개변수 탐색 방법으로 구현하려고 하면 cur = -1인 부분에 대해서는 따로 예외처리를 해주면 될까요? 아니면 좀 더 깔끔한 구현 방법이 있을까요?
안녕하세요! 기업 코딩테스트의 환경이 pycharm이랑 같은지 궁금합니다. 구글 코랩환경은 하나씩 행마다 빠르게 코드를 확인해보면서 볼 수 있는데 pycharm은 한꺼번에 돌려야 하고 함수 안에 print를 넣어서 간접적으로 확인해야하니 불편해 여쭤봅니다..! ctrl + R을 누르면 pycharm에서 실행이 된다고 하는데 저는 pycharm에서 실행 버튼의 단축키가 ctrl +f5로 뜹니다,,! 단축키로 쓰기에는 너무불편한데, ctrl+R로 단축키를 바꾸신건지 저는 해당 단축키로는 실행이 되지 않아 여쭤봅니다! 코랩이 아닌 pycharm으로 수업을 진행하신 특별한 이유가 있으신지도 궁금합니다!! 감사합니다.
안녕하세요, 추상 클래스와 추상 메서드에 관련한 코드를 보다가 궁금한 점이 있어 질문을 남깁니다. abstract class Vehicle { String model; // 생성자 Vehicle(String model) { this.model = model; } // 추상 메서드 abstract void startEngine(); void stopEngine() { System.out.println(model + "엔진 멈췄다."); } } class Car extends Vehicle { // 생성자 Car(String model) { super(model); } // abstract 였던 메소드를 구현 void startEngine() { System.out.println(model + "엔진 켜졌다."); } } public class Main { public static void main(String[] args) { Car car = new Car("Toyota"); car.startEngine(); car.stopEngine(); } } 제가 이해한 코드 흐름은 다음과 같습니다. Car 이라는 객체(인스턴스)를 생성 super(model) 코드를 통해 "Toyota" 라는 String 변수 값이 Car의 부모 클래스 Vehicle의 생성자 함수 에 들어감 Vehicle 생성자 함수를 통해 Vehicle의 인스턴스 변수인 model에 "Toyota" 라는 값 이 들어가게 됨 car.startEngine() => 자식 클래스에서 startEngine() 함수 실행 car.stopEngine() => 자식 클래스에서는 없는 함수이므로 부모 클래스에 있는 stopEngine() 함수를 실행 이 때, 4번에서 궁금했던 점은 model 이라는 변수는 부모 클래스에 있는 인스턴스 변수인건데, 상속을 하게 된다면 자식 클래스에서도 model 이라는 변수에 접근이 가능한건가요?
풀 라우트 캐시 조건에 http 요청에서 쿠키나, 헤더값등을 얻어오는 동적함수를 사용하거나 props에서 searchParams 를 꺼내오는 등의 조건들이 동적 페이지로 선정되는 기준이라고 하셨는데요. components/searchbar.tsx 에서 useSearchParams() 훅 사용도 같은 맥락인것 같은데, 이친구는 왜 빌드시에 체크된걸까요? 빌드 과정 중 정적 코드 분석을 통한 경고성 오류일까요? (with-searchbar)/page.tsx 가 static page로 선정되어, 그 내부에 포함되어 있는 컴포넌트이기 때문에 components/searchbar.tsx 까지 빌드하려다가 발생한 오류일까요? useSearchParams() 훅은 dynamic page 선정조건에 포함되지 않은걸까요? 궁금합니다! 만약 수업 내용 중 있었는데, 제가 놓친거라면 죄송합니다~
안녕하세요. 얕은복사와 깊은복사에 대해 질문합니다. 제가 알기론 지금 예시를 든 let person1 = {firstName:'짐', lastName:'코딩'}; let person2 = {...person1}; person1.firstName = 'GYM' console.log('person1: ', person1); console.log('person2: ', person2); 이거를 깊은 복사라고 하셨는데 얕은 복사 아닌가여?? 값이 원시값이라서 참조 공유 문제가 안생기는거 아닌가요?? 깊은 복사는 모든 깊이까지 값 자체를 완전하게 복사해야되는걸로 알고 있어서 cloneDeep이나 JSON.parse(JSON.stringify(person1)) 이런식으로 써야되는걸로 알고 있거든여. const items = [...todos] 도 얕은 복사지만 새로운 배열 주소를 만들어서 리액트에서는 변화가 생겼다고 판단하고 리렌더링이 되는걸로 알고 있는데 아닌가요??