inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

vscode postgresql extension이 실행되지 않습니다.

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

강사님께서 설명해주신대로 입력해서 vscode extension 설치 후에 진행하려고 하는데 role "postgres" does not exist 라는 오류와 함께 extentsion 진행이 되지 않습니다. 혹시 무엇이 문제인지 알 수 있을까요?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
임수현 댓글 3 좋아요 0 조회수 546

제목과 영상이 다른것 같아요~

해결됨

Airflow 마스터 클래스

Task 실패시 email 발송하기 sla 로 task 수행현황 감시하고 email 발송하기 이 두개의 영상이 바뀐것 같아 보입니다 확인 해봐주세요~

  • python
  • 데이터-엔지니어링
  • airflow
qkswl6253 댓글 1 좋아요 0 조회수 263

java scanner 오류

미해결

txt파일에는 아래와 같이 저장되어 있습니다. 점수가 가장 높은 학생의 이름을 출력해야하고 점수가 동일할 경우 모두 출력하는 프로그램입니다. 김일번 64 김이번 83 김삼번 26 김사번 36 김오번 78 김육번 54 김칠번 60 김팔번 85 김구번 45 김십번 85 프로그램을 실행했을 때 Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor ( Scanner.java:94 7 ) at java.base /java.util.Scanner.nex t ( Scanner.java:160 2 ) at java.base/java.util.Scanner.nextInt ( Scanner.java:226 7 ) at java.base/java.util.Scanner.nextInt ( Scanner.java:222 1 ) 이렇게 오류가 발생합니다. 해결방법 아시는 분 가르쳐주세요!!ㅜㅜ package kh; import java.io.*; import java.util.Scanner; class Student { //int id; String name; int grade; Student(String name, int grade) { //this.id=id; this.name=name; this.grade=grade; } } class StudentTable{ Student[] st; StudentTable(int size) { st=new Student[size]; } void maxStudent() { int maxGrade=0; for(Student student : st) { if(student.grade > maxGrade) { maxGrade = student.grade; } } System.out.println("최고 점수를 가진 학생:"); for(Student student : st) { if(student.grade == maxGrade) { System.out.println(" " + student.name + " " + student.grade); } } } } public class homework05{ public static void main(String[] args) { StudentTable stable; try { FileInputStream fin=new FileInputStream("C:\\Users\\user\\Desktop\\student_score.txt"); Scanner scanner = new Scanner(fin); int size=scanner.nextInt(); stable=new StudentTable(size); for(int i=0; i<stable.st.length; i++) { //int id=scanner.nextInt(); String name=scanner.next(); int grade=scanner.nextInt(); stable.st[i]=new Student(name,grade); System.out.println(" "+name+" "+grade); } scanner.close(); stable.maxStudent(); } catch(FileNotFoundException e) { System.out.println("file not exist"); } } }

  • java
dkfma0799 댓글 1 좋아요 0 조회수 275

사용하시는 vscode 테마가 무엇이죠?

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

사용하시는 vscode 테마가 무엇이죠?

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
매력적인홍홍홍 댓글 1 좋아요 1 조회수 547

error_code : Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.ts(2339)

미해결

탄탄한 백엔드 NestJS, 기초부터 심화까지

안녕하세요! 저와 같은 수강생 여러분, 반갑습니다. 분명 저와 같은 에러를 겪고 분투하는 사람을 위해서 제 경험을 공유 드립니다. 저 같은 경우 선생님 코드를 그대로 따라 진행을 했었는데요. 특히나 CustomDecoration 부분에 있어서 그대로 따라 진행을 했습니다. 정확히 이 부분에서 에러가 발생을 하더라구요. return request.user as CatCurrentDto; 에러의 내용은 아래와 같습니다. Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.ts(2339) 해결방안은 선생님이 보여주신 nestJS의 공식문서를 참고해서 다시 적어보았는데요. Request를 제거해주시면 저 부분이 잡힙니다. 버전이 자꾸 바뀌기때문에 매개변수, 메소드, 각각의 요구되는 필드값 또한 바뀌는것 같습니다. 무언가 잘 안될때는 제공해주신 공식문서 찾는것도 좋은 방법인거 같습니다. 저와 같은 에러를 만나신분에게 조금이나마 도움이 되었음좋겠습니다. 아래는 전체 로직 입니다. [user.decorator.ts] -> 제공된 소스코드 수정한 코드 import { CatCurrentDto } from './../../cats/dto/cats.current.dto'; import { createParamDecorator, ExecutionContext } from '@nestjs/common'; export const CurrentUser = createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); return request.user as CatCurrentDto; }, ); [user.decorator.ts] -> 제공된 소스코드 import { CatCurrentDto } from './../../cats/dto/cats.current.dto'; import { Request } from 'express'; import { Cat } from '../../cats/cats.schema'; import { createParamDecorator, ExecutionContext } from '@nestjs/common'; export const CurrentUser = createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request: Request = ctx.switchToHttp().getRequest(); return request.user as CatCurrentDto; }, );

  • express
  • nestjs
댓글 1 좋아요 0 조회수 618

알고 있던 내용과 달라서 조금 혼동됩니다.

해결됨

김영한의 실전 자바 - 기본편

안녕하세요 영한님. 자바를 복습하고 있는 학생입니다. 이번 파트 정말 이해가 잘 되게 설명해주셔서 내용을 이해하는데는 어려움이 없었는데 기존에 알고 있던 지식때문인지 혼동되는 부분이 있어 질문드립니다. 기존에 알고 있는 지식은 자식 인스턴스 생성시 '부모의 필드 값과 가상 메서드 테이블 등의 메타 정보를 포함하는 하나의 인스턴스 생성' 이었습니다. 그런데 이번 강의 내용에선 '외부에서 볼때는 하나의 인스턴스를 생성하는 것 같지만 내부에서는 부모와 자식 모두 생성되고 공간도 구분' 이라고 하셨습니다. 그렇다면 이 문장을 ' 부모부터 자식 클래스까지의 모든 인스턴스를 생성 ' 이라고 봐야하나요? 아니면 '부모부터 자식까지의 모든 메타 정보를 포함하는 하나의 인스턴스 를 생성' 이라고 봐야하나요? 뒤에서 배울 super()를 통해 자식 인스턴스 생성시 부모 생성자를 필수로 호출하므로 '모든 인스턴스'를 생성하는 것도 말이 될 거 같지만 만약 모든 인스턴스를 메모리에 생성한다면 메모리가 비효율적으로 사용되는 것도 같아 이 부분이 좀 헷갈립니다.

  • java
  • 객체지향
TH Kwon 댓글 1 좋아요 0 조회수 452

\ <-이 작대기 작성 키는 무엇인가요??

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

\ <-이 작대기 작성 키는 무엇인가요??

  • python
재원정 댓글 2 좋아요 0 조회수 291

ctrl + shift + enter 단축키 질문

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 비교 연산자 강의 8분 30초 경에 세미콜론이 없는 문장에서 커서가 괄호 안에 있는 경우 윈도우 환경 기준 ctrl + shift + enter 를 사용하면 세미콜론이 생기면서 커서가 문장 맨 뒤로 간다고 말씀해주셔서 동일하게 따라해봤는데 작동하지 않습니다. 단축키가 변한건가요? 한영키도 눌러봤습니다.

  • java
  • 인텔리제이
최용욱 댓글 2 좋아요 0 조회수 1239

파일명 짓고 구분하기가 어렵습니다

미해결

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

수업 거의 다 듣고 포트폴리오 만드는 중에 질문드립니다. fetchBoards로 게시판을 불러올때 리턴 객체명을 어떻게 해야할지 모르겠습니다. 예를 들어, board[], paging 값이 두개 리턴이 된다고 했을때 dto폴더에 select-board.output.ts 객체 파일을 만들어주면 될까요? 아니면 board[], paging 형태로 내보내는것은 나쁜 방식일까요? 웬만하면 프론트가 아니라 백에서 처리해서 내보내려고 합니다. 이런식으로 폴더 구분이랑 파일 이름 짓기가 모호한 경우가 많은데 여기에 초점을 맞춘다고 시간을 허비하지말고 구분만 잘해놓는게 좋을까요?

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
MJ 댓글 2 좋아요 0 조회수 268

VScode postgresql 익스플로러 'Cannot get password' 에러

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

안녕하세요 강의 잘 보고 있습니다! 다름이 아니고 VScode에서 postgres 익스플로러로 DB연결을 해주려는데 자꾸 오른쪽 밑에 'Cannot get password'라는 에러가 발생해서 연결이 되지 않습니다... yaml파일이랑 app.module도 잘 확인했는데 해당 에러때문에 DB 연결이 안됩니다. 확인 부탁드릴게요,, 캡쳐본입니다. post로 바꿔고 해봐서 현재 post입니다.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
태훈 댓글 2 좋아요 0 조회수 327

H2 초반 연결문제

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 연견을 누르면 아래와같은 오류가 나옵니다

  • java
  • spring
  • mvc
  • spring-boot
백종원 댓글 2 좋아요 0 조회수 584

String str = "Hello, Java! Welcome to Java";과 String str1 = str.concat("!!!");의 객체값 비교

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. package lang.String.method; public class StringChangeMain1 { public static void main(String[] args) { String str = "Hello, Java! Welcome to Java"; //x001 Object object = new Object(); String str1 = str.concat("!!!"); //x002 System.out.println(str); System.out.println(str1); str = object.toString(); str1 = object.toString(); System.out.println(str1.equals(str)); System.out.println(str1==str); System.out.println(str); System.out.println(str1); } } 결과로 Hello, Java! Welcome to Java Hello, Java! Welcome to Java!!! true false java.lang.Object@b4c966a java.lang.Object@b4c966a 가 나오는데, 배운 내용대로라면 str1은 str과 다른 새로운 객체값니간, str이랑 다른 객체값이 나올거라 생각했는데, str과 같은 객체값이 출력이 되어서 질문드립니다. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.

  • java
  • 객체지향
김동현 댓글 1 좋아요 0 조회수 315

Enum 내부에 인스턴스 생성 불가

해결됨

김영한의 실전 자바 - 중급 1편

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Enum 타입이 생성자를 private로 하여 외부 생성을 막은 클래스와 거의 동일하다고 하셨는데 그 부분에 이해가 안되는 부분이 생겨 질문 드립나다. public class Grade { public static final Grade BASIC = new Grade(); public static final Grade GOLD = new Grade(); public static final Grade DIAMOND = new Grade(); private Grade() { } //자기 자신의 클래스에서 새로운 인스턴스 생성 (가능) public static Grade generate() { return new Grade(); } } 위의 코드처럼 class로 만든 경우 private으로 외부 인스턴스 생성을 막아도 자신 클래스 내부에서는 새로운 인스턴스 생성하는 코드에 빨간줄이 나타나지 않았습니다. public enum Grade { BASIC, GOLD, DIAMOND //자기 자신의 클래스에서 새로운 인스턴스 생성 (불가능) public static Grade generate() { return new Grade(); } 강의에서 위의 코드와 거의 동일한 코드라고 해주셨던 Enum타입으로 클래스를 만들경우는 아래의 generate 메서드에서 새로운 인스턴스를 만들 수 없다며 빨간줄이 생깁니다. 위의 코드와 아래 코드의 어떤 부분에서 이러한 차이가 생기는지 궁금합니다. 단순히 private으로 외부 인스턴스 생성만 막은 경우라면 자기 자신 안에서는 인스턴스 생성이 가능해야 할 것 같은데 어째서 Enum에서는 자기 자신 내부에서 생성이 불가능한 건가요? private으로 외부 생성을 막더라도 저런식의 generate 메서드를 만들면 외부에서 인스턴스 생성이 가능해 지지 않을까 하는 생각에 만들다가 이런 차이를 발견해 질문 드립니다.

  • java
  • 객체지향
오스즈 댓글 2 좋아요 0 조회수 439

서버 실행 실패

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

> Task :LibraryAppApplication.main() FAILED . ____ _ /\\ / ___'_ __ ( _)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.6) 2024-04-04 17:09:40.815 INFO 12468 --- [ main] c.g.libraryapp.LibraryAppApplication : Starting LibraryAppApplication using Java 17.0.9 on KONG with PID 12468 (C:\Project\project\library-app\build\classes\java\main started by jinju in C:\Project\project\library-app) 2024-04-04 17:09:40.819 INFO 12468 --- [ main] c.g.libraryapp.LibraryAppApplication : No active profile set, falling back to 1 default profile: "default" 2024-04-04 17:09:41.422 INFO 12468 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2024-04-04 17:09:41.474 WARN 12468 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'userRepository' defined in com.group.libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot register bean definition [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in com.group.libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration] for bean 'userRepository': There is already [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=userConfiguration; factoryMethodName=userRepository; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [com/group/libraryapp/config/UserConfiguration.class]] bound. 2024-04-04 17:09:41.505 INFO 12468 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2024-04-04 17:09:41.521 ERROR 12468 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: The bean 'userRepository', defined in com.group.libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration, could not be registered. A bean with that name has already been defined in class path resource [com/group/libraryapp/config/UserConfiguration.class] and overriding is disabled. Action: Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true Execution failed for task ':LibraryAppApplication.main()'. > Process 'command 'C:/Program Files/Java/jdk-17/bin/java.exe'' finished with non-zero exit value 1 찾아본 결과 이 문제는 Spring 애플리케이션의 빈(bean) 정의 중에 중복이 발생하여 발생한 것으로 보입니다. 에러 메시지에 따르면 userRepository 빈이 이미 UserConfiguration 클래스에서 정의되어 있으며, 또한 Spring Data JPA가 자체적으로 해당 빈을 생성하려고 시도하고 있는 것으로 보인다고 합니다. 혹시 UserConfiguration 부분에 변경이 적용 안된게 있어서 그런걸까요? 저 bean 부분을 지워도 .UserServiceV1 때문에 컴파일 에러가 발생하더라구요,.,..

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
댓글 3 좋아요 0 조회수 629

git에서 커밋을 했는데, 계속 진행해도 되는지의 여부

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

40강. git 기초사용법을 듣고 있습니다. 코드를 github에 올리는 과정에서 처음에는 git add . 작성 시 아래와 같이 에러가 나타났습니다 위와 같은 과정을 거쳤고, 커밋이 반영된듯 싶으면서도 fatal: unknown write failure on standard output이라는 문구가 떠 다음 과정을 진행하기 찝찝합니다. 이전에 git add .시 실행은 된 것 같지만 warning이 난것도 나중에 문제가 될것 같습니다..감사합니다.

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
송우석 댓글 2 좋아요 0 조회수 2072

Oracle12cDialect 오류 해결 방법

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

(사진)

  • java
  • jpa
강프로그래머 댓글 1 좋아요 0 조회수 370

NodeJS 는 왜 싱글 스레드라고 불리는가요?

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

안녕하세요! 개발을 시작한지 얼마되지 않은 개발자입니다. 수업의 내용을 조금 인용하면 "nodeJS 는 싱글 스레드 모델이고, 이벤트 룹이 앞단에서 nonBlocking 요청 빠르게 수행하고 만일 Blocking 요청이 들어온다면 워커 스레드에 넘긴다. " 라고 이해했습니다. 하지만 워커 스레드를 사용하게된다면 그것이 싱글 스레드라는 이름에 맞는건지 의구심이 듭니다. 단순히 이벤트 룹이라는 특정 스레드가 앞단에서 Blocking 요청과 nonBlocking 요청을 구분해서 처리를 하기에 싱글 스레드라는 말이 나온건가요? 그리고 이벤트 룹이 Blocking 요청과 nonBlocking 요청을 나누는 기준 또한 궁금합니다. 마지막으로 구글링을 하며 본 정보에 의하면 JavaScript 가 싱글 스레드 기반의 언어이고, NodeJS는 스레드 풀을 미리 생성하여 워커 스레드들을 미리 생성해 둔 뒤, 각 워커 노드에서 JavaScript 를 실행하여 멀티 스레드를 가능하게 한다는 글을 보았는데 이 내용이 맞다면 NodeJS 는 싱글 스레드 기반 프레임워크가 아닌것으로 받아드려도 괜찮을까요?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
차형석 댓글 1 좋아요 1 조회수 839

pdf 파일 12_SQLALCHEMY_ADVANCE 소스파일이 다릅니다

미해결

처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]

가장 첫번째 페이지 데이터 검색 (읽기) 에 나와있는 코드와 링크를 누르고 깃허브에 들어가서 나오는 코드가 다릅니다 . 수정부탁드립니다

  • python
  • mvc
  • sqlalchemy
  • FastAPI
  • backend
대성 댓글 2 좋아요 0 조회수 272

에러가 뜨네요 수강 강의 내용에도 전체 내용이 없어서 안되네요 전체 코드는 제공이 안되나요??

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

import { ApolloServer } from '@apollo/server' import { startStandaloneServer } from '@apollo/server/standalone' const typeDefs = `#graphql input CreateBoardInput { writer: String title: String contents: String } type MyResult { number: Int writer: String title: String contents: String } type Query { #fetchboards: MyResult #객체 1개를 의미 fetchboards: [MyResult] # 배열 안에 객체 1개 이상을 의미! } type Mutation { # createBoard(writer: String, title: String, contents: String): String createBoard(createBoardInput: CreateBoardInput!): String }`; const resolvers = { Query: { fetchBoards: (parent, args, context, info) => { // 1. 데이터를 조회하는 로직 => DB에 접속해서 데이터 꺼내오기 const result = [ { number: 1, writer: '철수', title: '제목입니다~~', contents: '내용이에요@@@', }, { number: 2, writer: '영희', title: '영희 제목입니다~~', contents: '영희 내용이에요@@@', }, { number: 3, writer: '훈이', title: '훈이 제목입니다~~', contents: '훈이 내용이에요@@@', }, ]; // 2. 꺼내온 결과 응답 주기 return result; }, }, Mutation: { createBoard: (_, args) => { // 1. 브라우저에서 보내준 데이터 확인하기 console.log(args); console.log("=========================") console.log(args.createBoardInput.writer) console.log(args.createBoardInput.title) console.log(args.createBoardInput.contents) // 2. DB에 접속 후, 데이터를 저장 => 데이터 저장했다고 가정 // 3. DB에 저장된 결과를 브라우저에 응답(response) 주기 return "게시물 등록에 성공하였습니다!!"; }, }, }; const server = new ApolloServer({ typeDefs: typeDefs, resolvers: resolvers, cors: true, // 모든 사이트 허용하고 싶을 때 // cors: { origin: ["https://naver.com", "https://daum.net"] } // 특정 사이트만 지정하고 싶을 때 }); startStandaloneServer(server) // 4000 node_modules/@graphql-tools/schema/esm/addResolversToSchema.js:62 throw new Error(`${typeName}.${fieldName} defined in resolvers, but not in schema`); at file:///Users/youssipro/Desktop/project/backend/class/section03/03-06-graphql-api-apollo-server-board/index.js:78:16

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
김동호 댓글 2 좋아요 0 조회수 427

자바 메모리 구조에 대해 질문드립니다.

미해결

김영한의 실전 자바 - 기본편

안녕하세요 영한님. 항상 양질의 강의로 지식을 공유해주시는점에 우선 감사하다는 인사부터 올리겠습니다. 자바 메모리 구조에 대해 강의를 들으면서 문득 궁금한 점, 스스로 지식 정리가 되지 않는 부분이 있어 질문드립니다. 우선 제가 알고 있는 사실입니다. JDK 스펙에서 메소드 영역의 구현 방식에는 제한하지 않기에 벤더마다 상이하다 Java8 이전 오라클 핫스팟에선 이를 Permgen(Permanent Genration) 이라 명하였고 힙 메모리 안에 위치시켰다. 우리가 일반적으로 아는 static 변수 및 메소드, 클래스 정보, 런타임 상수 풀, String Pool 등이 이 메소드 영역 (Permgen)에 저장되었다. 하지만, Java8 이후 Permgen 의 고정된 메모리 이슈로(잦은 OOME) metaspace 라는 새로운 대체 공간을 만들고 이를 os영역인 Native memory 쪽에 두었다. java8 이후 현재, 기존의 Permgen 에 저장되던 클래스 메타 정보들 (constant pool)은 대체된 metaspace안에 저장되고 static 변수 및 메소드, String Pool(리터럴 String 및 interned String 저장 pool) 들은 Heap 영역으로 저장되게 변경되었다. 우선 제가 옳게 이해하고 있는지, 지식에 오류가 없는지 궁금하며 몇 가지 문의사항이 있습니다. 위 내용중 2)에서 Permgen을 힙 메모리 안에 두었다고 하지만 heap / non-heap 으로 구분하여 Permgen 은 non-heap 에 속한다 라고 설명하는 레퍼런스가 많습니다. Permgen이 non-heap 이라고 하는 이유가 비록 Permgen 이 논리적으로는 힙 메모리 안에 위치하지만, 일반적으로 gc 대상에선 제외되기 때문에 그런건지 아니면 실제로 물리적으로 분리된 공간이어서 non-heap 이라는건지 궁금합니다. (+ 지속적으로 찾아보니 Permgen 은 Heap 영역안에 특별한 공간 정도로 이해하면 될 듯 합니다. GC(major/full GC) 또한 동작한다고 하네요..! 이것과 별개로 metaspace의 경우도 더이상 사용하지 않는 클래스에 대해 메모리 회수가 일어난다고 합니다. 근데 이 metaspace 는 navtive 영역에 있는데 이걸 "gc가 동작하여 최적화한다" 라고 말할 수 있는 건지 아니면 그냥 Metaspace 자체에서 메모리관리를 한다고 봐야할지 궁금합니다..!) 궁극적으로 궁금한 부분인데요 메소드 영역 이라는 것에 대해 어떻게 이해하면 좋을지 의문입니다. 두 가지 정도로 생각하고 있는데, 1. 메소드 영역 이라는 것은 JDK spec 에서 정의하고있는 하나의 추상화된 공간(인터페이스)이다. 이것이 과거엔 힙에 위치한 permgen으로 구체화 되었고 현재는 native 메모리에 위치한 metaspace로 구체화 되어 대체되었다. (메소드 영역이 상위 개념이다) 2. 옛날 permgen, 현재의 metaspace 안에 특정한 데이터(클래스 메타데이터 같은)를 저장하는 별도의 공간이 있고 이를’ 메소드영역’ 이라고 한다. (메소드 영역이 하위 개념이다) 메소드 영역과 permgen, metaspace 이들간의 카테고리 상 포함관계가 어떻게 되는지 개념이 궁금합니다.(1 번과 2번중에 어떤게 맞는지) 또한 현재 메소드 영역을 담당하는 metaspace 기준으로, static 변수, string pool 등은 Heap 영역에 저장되고(static 변수의 경우 heap 영역안의 static pool 안에) 클래스 정보, 런타임 상수 풀(constant pool) 등은 Metaspace 에 저장이 되는데 “메소드 영역에는 클래스정보, static 변수, 런타임 상수 풀이 저장된다” 라는 개념이 아직도 유효하고 옳은 개념인지 문의드립니다. 이게 말이 되려면 메소드영역이란 heap 영역의 일부 + metaspace 가 되어야 하기 때문입니다. 감사합니다.

  • java
  • 객체지향
이상진 댓글 1 좋아요 5 조회수 776

인기 태그

인프런 TOP Writers

주간 인기글