묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Delete 'CR' eslint 표시 없애기 공유(windows사용자)
windows에서 vscode에서 typescript를 사용하시다 보면아래와 같이 delete 'cr'이라고 계속 빨간 글씨가 떠서눈에 거슬리는 경우가 있습니다.해결책 : eslintrc.js파일에 가셔서 아래와 같이rules에 추가한 후 저장해 주시면 됩니다.긁어서 eslintrc.js파일의 하단의 rules에 추가해 주세요 'prettier/prettier': [ 'error', { endOfLine: 'auto', }, ],
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
조언 부탁드립니다. mini-project
현재 puppeteer-crawling해서스타벅스메뉴와 이미지는 잘 긁어 왔는데요.자꾸 MongoDB에 저장되어 있는 img를 불러올 때 에러가 발생하는데, 성공하신 분 있나요?스키마에서 이미지 형식을 Buffer했습니다.import mongoose from "mongoose"; const StarbucksSchema = new mongoose.Schema({ name: String, img: Buffer, }); export const Starbucks = mongoose.model("Starbucks", StarbucksSchema); //이미지 URL로부터 이미지 다운로드 if (!fs.existsSync("img_crawling")) { fs.mkdirSync("img_crawling"); } let fileName = `img_crawling/${menuName}.jpg`; request(menuImage).pipe(fs.createWriteStream(fileName)); console.log(`이미지 ${fileName} 저장 완료`); 저는 fs모듈과 request모듈을 추가로 사용했는데,이미지의 주소를 MongDB에 저장하고,이미지는 별도의 폴더에 저장되게 만들었습니다.질문 요약1. MongDB에 이미지 저장할 때 fs라이브러리와 request라이브러리를 사용하게 맞나요?2. 이미지를 저장은 잘 됐는데, 화면에 뿌려 줄려고 하는데 자꾸 에러가 나요.3.몽고DB에 접속해서 이미지 주소를 가져와서, 그 주소를 기반으로 뿌려줘야 되는지4.아니면 몽고DB에 접속해서 그 메타주소(?)를 기반으로 현재 컴퓨터에 저장된 이미지를 화면에 뿌려줘야 하는지자꾸 구글링하면 몽고DB에 이미지파일을 직접적으로저장하는 것은 DB에 무리를 일으킨다. 그래서 어떠한라이브러리를 사용해서 DB에는 메타주소(?)만을 저장하고,이미지파일을 별도의 localStorage에 저장한다.또한 이미지를 그냥 가져(load) 올 수 없어서 인코딩을 해줘야 한다. 뭔 말인지 모르겠어요 ㅠ.ㅠ
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
[해결완료]nginx root 경로 변경 404 not found
경로 설정은 잘 된거같은데not found가 나오네요 ㅠnginx restart도 해봤습니다.문제가 뭘까요?https://github.com/memilmooki/FoodMap
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
혹시 테스트 결제 잘 되나요??
여러 방면으로 시도 중인데,error_code: "NOT_READY"error_msg: "등록된 사용자가 아니거나, 아임포트 관리자 페이지에 설정된 PG정보가 없습니다."해당 에러가 뜨면서 계속 실패하네요;;혹시 하신 분들은 어떻게 성공하셨는지 궁금합니다.일단 제가 예상한 것으로는 강의 화면이랑 제 구 관리자콘솔의 시스템 관리 탭이 다른 점에 눈이 가는데, 이걸 어떻게 처리해야되는지 어디를 찾아봐도 안나오네요...강의에서는 여러 탭이 있는데 저는 두 개의 탭 밖에 보이지 않습니다. 해결 방법을 찾고 싶어도 어디서 찾아야 되는 지 감이 안잡히네요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Connection 부분 질문
따라하고있는데 Connection부분이 저렇게 줄이 찍 가져있고 사용되지않음으로 표시된다고 뜹니다. import부분도 그렇구요. 무엇때문에 이럴까요?
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
git 내부에서 secret.js 삽입 후 node index.js 에러
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 현상은 다음과 같이 나오고 있습니다. secret.js에는 다음과 같이 잘 들어가있습니다. 저의 git에도 database라는 js파일이 존재합니다.왜그럴까요! 에러메세지 첨부합니다.root@ip-172-31-85-206:/home/ubuntu/FoodMap/back# node index.js internal/modules/cjs/loader.js:818 throw err; ^ Error: Cannot find module '../../back/config/database' Require stack: - /home/ubuntu/FoodMap/back/src/controllers/indexController.js - /home/ubuntu/FoodMap/back/src/routes/indexRoute.js - /home/ubuntu/FoodMap/back/config/express.js - /home/ubuntu/FoodMap/back/index.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15) at Function.Module._load (internal/modules/cjs/loader.js:667:27) at Module.require (internal/modules/cjs/loader.js:887:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.<anonymous> (/home/ubuntu/FoodMap/back/src/controllers/indexController.js:1:18) at Module._compile (internal/modules/cjs/loader.js:999:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Module.require (internal/modules/cjs/loader.js:887:19) { code: 'MODULE_NOT_FOUND', requireStack: [ '/home/ubuntu/FoodMap/back/src/controllers/indexController.js', '/home/ubuntu/FoodMap/back/src/routes/indexRoute.js', '/home/ubuntu/FoodMap/back/config/express.js', '/home/ubuntu/FoodMap/back/index.js' ] }
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
인증 실패 시 HTTP Satuts code 200
안녕하세요. 강의 보면서 따라하다가 궁금한 점 하나가 생겨서 질문드립니다.아이디 혹은 비밀번호를 일부러 틀리게 입력 시 stuatus code가 200이 출력되는데 강의에서는 401로 출력되더라고요. 제가 생각해도 200 ok는 아닌 거 같은데.. 따로 설정해줘야 하나요? SecurityConfig.javapackage com.example.restfulwebservice.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; @Configuration public class SecurityConfig { @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("test") .password("{noop}test1234") .roles("USER"); } } CustomizedResponseEntityExceptionHandler.java@RestController @ControllerAdvice // 모든 컨트롤러가 실행될 때 이 어노테이션이 붙은 Bean이 사전에 실행되도록 한다. public class CustomizedResponseEntityExceptionHandler extends ResponseEntityExceptionHandler { @ExceptionHandler(Exception.class) // 이 메서드가 ExceptionHandler 라는 걸 알려주는 어노테이션 public final ResponseEntity<Object> handleAllExceptions(Exception ex, WebRequest request) { ExceptionResponse exceptionResponse = new ExceptionResponse(LocalDateTime.now(), ex.getMessage(), request.getDescription(false)); return new ResponseEntity(exceptionResponse, HttpStatus.INTERNAL_SERVER_ERROR); } // user 클래스 전용 @ExceptionHandler(UserNotFoundException.class) public final ResponseEntity<Object> handleUserNotFoundException(Exception ex, WebRequest request) { ExceptionResponse exceptionResponse = new ExceptionResponse(LocalDateTime.now(), ex.getMessage(), request.getDescription(false)); return new ResponseEntity(exceptionResponse, HttpStatus.NOT_FOUND); } @Override protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { List<FieldError> list = ex.getBindingResult().getFieldErrors(); ExceptionResponse exceptionResponse = new ExceptionResponse(LocalDateTime.now(), "Validation Failed : " + list.get(0).getField(), ex.getBindingResult().toString()); return new ResponseEntity(exceptionResponse,HttpStatus.BAD_REQUEST); } } application.ymlserver: port: 8088 logging: level: org.springframework : DEBUG spring: messages: basename: messages mvc: pathmatch: matching-strategy: ANT_PATH_MATCHER security: user: name: username password: test1 management: endpoints: web: exposure: include: "*" build.gradle// security implementation 'org.springframework.boot:spring-boot-starter-security' 확인 부탁드립니다.. 감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
혹시 윈스턴으로 로거 저장하는 파트는 따로 없나요?
윈스턴이던뭐던 로그를 저장하는파트는 따로 없나요? 따라서 만들다보니 로그를 저장할 필요가 있을것같아서 시도중인데 nest는 방법을 잘 모르겠어서혹시 강의에 포함이된부분이있나해서요.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
Startup.cs 파일생성방법
지난번 1월 16일차로 Startup.cs 파일이 없어서 문의 드렸습니다만, 답변이 없으셔서 다시 글을 남깁니다.현재 Part6: 웹 서버Blazor 미니프로젝트 #1 강의 수강중인데요RankingApp Blazor 서버웹 프로젝트 생성하였습니다Blazor 미니프로젝트 #1 강의 2분24초쯤의 강의 캡처사진과 제 개인프로젝트 사진을 비교해서 보내드립니다.(강의 수강중 캡처) (개인 프로젝트 캡처) 위의 캡처사진과 같이 Startup.cs 파일이 자동생성되지않아서 강의를 따라갈 수 없습니다.현재 .NET CORE 3.1이 더이상 지원이되지않아서 비쥬얼스튜디오 2022로 다시설치후.NET CORE 6.0 으로 실행 >> HelloRazor, HelloWebAPI, HelloEmpty 등의 파일을 생성하였습니다만, Startup.cs 파일이 자동생성되지않았습니다.Startup.cs 파일생성관련해서 어떻게해야 생성이되는지 조언 부탁드립니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
M:N 등록/조회 API 작성에서 Typescript 문제 질문드립니다.
안녕하세요. 제가 찾고 기다리던 내용의 강의라 매우 만족하며 수강하고 있는 수강생입니다! ㅎproducts.service.ts 파일에서 create와 update 메서드 작성할 때 typescript 에러에 대해 질문드립니다.products.service.ts 파일 create 메서드에서 productTags를 등록하는 과정에const result2 = [] 부분을 const result2: string[]로 작성하면 await productRepository.save(...) 에서 No overload matches this call이 뜨고update 메서드에서 updateProductInput에 UpdateProductInput로 타입을 지정하면 위와 마찬가지로 await productRepository.save(newProduct)에서 No overload matches this call이 뜹니다.두 경우 모두 Type 'string' is not assignable to type 'ProductTag' 문제로 product.entity.ts에서는 productTag를 아래와 같이 등록하고 @Field(() => [ProductTag]) @JoinTable() @ManyToMany(() => ProductTag, (productTags) => productTags.products) productTags: ProductTag[]; createProduct.input.ts에서는 CreateProductInput에서 productTag를 아래와 같이 등록해서 발생하는 문제라고 추측했습니다.@Field(() => [String]) productTags: string[];두 경우 모두 타입을 지정하지 않고 any로 두면 문제는 사라지긴 합니다. any로 두고 사용할 수밖에 없는 것인지 아니면 타입 지정을 해서 사용하는 방법이 있는지 궁금합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
mysql 데이터베이스 연결 안되는 문제 Unable to connect to the database
yarn start:dev 실행 하고 나면 아래와 같이 나오면서 에러가 뜨고 있어요 ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)...아래 코드도 정상적으로 기입 했는데, 계속 접속 오류로 연결이 되지가 않습니다.import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo' import { Module } from '@nestjs/common' import { GraphQLModule } from '@nestjs/graphql' import { TypeOrmModule } from '@nestjs/typeorm' import { BoardsModule } from './apis/boards/boards.module' import { Board } from './apis/boards/entities/board.entity' @Module({ imports: [ BoardsModule, GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', port: 3306, username: 'root', password: 'test1234', database: 'myproject03', entities: [Board], synchronize: true, logging: true, }), ], // controllers: [AppController], // providers: [AppService], }) export class AppModule {} 현재 brew 확인시 Mysql 서버도 정상적으로 켜져 있는것을 확인 할 수 있어요 디비버에서도myproject03 이라고 정확하게 만들었습니다.선생님의 강의하고 다른부분을 못 찾았는데,데이터 베이스가 연결이 안될 때는 어느부분을 더 점검 해 봐야 할지요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
http://localhost:3000/graphql 실행 후 query > getHello 시 오류
http://localhost:3000/graphql 실행 후 query > getHello 시 오류가 있습니다.코드는 오타 없이 동일 한데, 저는 실행시 http://localhost:3000/graphql 여기서 아래와 같은 오류가 뜨는데 어떤 상황인지 파악이 잘 되지가 않습니다.{ "errors": [ { "message": "Cannot return null for non-nullable field Query.getHello.", "locations": [ { "line": 2, "column": 3 } ], "path": [ "getHello" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "stacktrace": [ "Error: Cannot return null for non-nullable field Query.getHello.", " at completeValue (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/graphql/execution/execute.js:594:13)", " at /Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/graphql/execution/execute.js:486:9", " at processTicksAndRejections (node:internal/process/task_queues:95:5)", " at async Promise.all (index 0)", " at execute (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/apollo-server-core/src/requestPipeline.ts:501:14)", " at processGraphQLRequest (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/apollo-server-core/src/requestPipeline.ts:407:22)", " at processHTTPRequest (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/apollo-server-core/src/runHttpQuery.ts:436:24)" ] } } } ], "data": null } app.module.ts 에도 정상적으로 연결 해 두었습니다.import { Module } from '@nestjs/common' // import { AppController } from './app.controller'; // import { AppService } from './app.service'; import { BoardsModule } from './apis/boards/boards.module' import { GraphQLModule } from '@nestjs/graphql' import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo' @Module({ imports: [ BoardsModule, GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), ], // controllers: [AppController], // providers: [AppService], }) export class AppModule {}
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
건의사항
제가 잘못 본건지는 모르겠지만,Node.js API구현 중 퍼사드 패턴 47:31초에서function getToken() { const myconunt =6 if(mycount === undefined){ console.log("에러발생!!! 갯수를 제대로 입력해주세요!!!") return ~~~}좌측 인강화면을 보시면 01-04-token-count-api-facade 폴더에 들어있는index.js파일에서 function getToken() 함수에서 매개변수를 지우고, const mycount = 6 으로 대체하였습니다. 하지만, 우측 노션에 학습자료 퍼사드 패턴에서는 function getToken(count) { ~~} 라고 해서 count매개 변수가 존재합니다.count를 여전히 매개변수로 사용하고 있습니다. 즉 "노션에 있는 자료가 수정되어야 한다고 생각합니다."노션 자료 중 호출하는 부분에서 createTokenOfPhone('01012345678', 6);매개변수 6도 삭제되어야 합니다. "REST-API 실습 강의"에서 postman으로 학습시 "휴대폰 번호 전송"이 안되서 순간적으로 당황했습니다.확인하시고, 답글 달아주시면 감사하겠습니다.해당강의는 Node.js API구현 중 퍼사드 패턴 47:31초입니다. 노션은 학습 자료 / 퍼사드 패턴 입니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
수업중 나온 깃허브 저장소가 없는 이유
수업중 나온 깃허브 저장소가 없는 이유가 궁금합니다.현재 스크린샷처럼 되어 있는 주소가 없어요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
mongodb 설치에 문제가 있습니다.
현재 Ubuntu 운영체제를 듀얼부팅으로 22.04.01 버전으로 사용하고 있고, 강의를 듣기 위해 mongodb 설치를 진행하려고 합니다.그러나 현재 강의의 notion에서 올려주신 설치 과정을 그대로 진행했는데 6번 명령어를 실행 후 이와 같은 오류가 발생했습니다. 설치과정sudo apt-get install gnupgwget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -lsb_release -dcecho "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list (jammy버전이라 fosal에서 jammy로 변경했습니다.) +추가(jammy가 아닌 forsal로도 진행을 해 봤고, 6.0버전으로도 진행해봤는데 같은 에러가 떴습니다...)sudo apt-get updatesudo apt-get install -y mongodb-org 오류 메시지몇몇 패키지를 설치할 수 없습니다. 요청한 상황이 불가능할 수도 있고,불안정 배포판을 사용해서 일부 필요한 패키지를 아직 만들지 않았거나,아직 Incoming에서 나오지 않은 경우일 수도 있습니다.이 상황을 해결하는데 다음 정보가 도움이 될 수도 있습니다:다음 패키지의 의존성이 맞지 않습니다:mongodb-org-mongos : 의존: libssl1.1 (>= 1.1.1) 하지만 설치할 수 없습니다mongodb-org-server : 의존: libssl1.1 (>= 1.1.1) 하지만 설치할 수 없습니다mongodb-org-shell : 의존: libssl1.1 (>= 1.1.1) 하지만 설치할 수 없습니다E: 문제를 바로잡을 수 없습니다. 망가진 고정 패키지가 있습니다. 구글링 해본 결과 libssl1.1이 깔려있지 않아서 그렇다는 걸 확인했는데 우분투 22.04 버전은 libssl3이 이미 깔려있어 중복 설치는 좋은 해결 방법이 아니라는 것을 확인했습니다.그래서 또 다르게 설치할 수 있는 방법이 있을지 질문드립니다.
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
node-sass를 했을 때 에러가 발생합니다.
yarn add node-sass를 실행했을 때 gyp 에러가 발생합니다.
-
미해결스프링 기반 REST API 개발
maven으로 생성한 docs파일(index.html)에서의 not found 오류 질문
안녕하세요. 백기선님 강의 덕분에 성장 중입니다. 강의 항상 감사합니다. 다름이 아니라, 인텔리제이의 maven 메뉴에 있는 package로 생성된 index.html 에 있는 내용들이not found operator:: 라면서 오류가 납니다.pom.xml, test에 있는 createEvent(), EventController 에서 틀린 부분이 있는지 찾아봤는데도 분명 소스는 같은데 왜 틀리는지 잘 모르겠습니다.제가 아직 not found operator:: 이 부분이 무슨 뜻인지 몰라서일까요...테스트는 일단 잘 돌아갑니다(?)현재 사용 중인 버전은아파치 메이븐 3.8.1 (약 2018년 버전으로 예상)스프링 부트 2.6.13입니다. 도와주시면 감사드리겠습니다🙇♂️소스는 링크로 걸어놓겠습니다. (pom.xml 외 다른 소스들은 실습 중이라 달라질 수 있습니다)EventControllerhttps://github.com/intrager/Spring-STUDY2/blob/main/restfulHan/src/main/java/me/brucehan/restfulhan/events/EventController.java RestDocsConfigurationhttps://github.com/intrager/Spring-STUDY2/blob/main/restfulHan/src/test/java/me/brucehan/restfulhan/common/RestDocsConfiguration.java EventControllerTestshttps://github.com/intrager/Spring-STUDY2/blob/main/restfulHan/src/test/java/me/brucehan/restfulhan/events/EventControllerTests.java pom.xmlhttps://github.com/intrager/Spring-STUDY2/blob/main/restfulHan/pom.xml index.adochttps://github.com/intrager/Spring-STUDY2/blob/main/restfulHan/src/main/asciidoc/index.adoc
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
mongodb connect
await mongoose.connect(MONGO_URI, {useNewUrlParser : true , useUnifiedTopology:true , useCreateIndex:true}); useCreateIndex:true}이부분을 추가시 mongodb 6.0이상 버전에서MongoParseError: option usecreateindex is not supported위와 같은 에러가 발생합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
@마다 빨간줄이 그어지네요
razor 와 cshtml파일의 @ 부분에 빨간줄이 그어집니다.근데 실행에는 문제가 없어요 해결 방법이 있나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
OnGet 하고 OnPost가 어떻게 호출될수 있죠?
OnGet, OnPost는 override가 아니라서 cshtml 기준에선 이 함수가 있다고 판단할수없습니다(제 생각). reflection 으로 메소드 찾아서 매번 invoke 하는거라면 이해하겠는데.. PageModel class에 virtual로 만들면 장점이 더 많을거같은데 이해가 안되네요. Unity Update같은것도 이런 방식이던데 작동되는 방식이랑 장점을 알고싶습니다.