묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! Redis 활용
Sliding Window Rate Limiter에 대한 질문
예시 그림을 보면 새로운 요청을 add할때 ZADD 1.1.1.1 1693494130 1693494130 형식으로 add를 하던데 이러면 혹시 동일한 timestamp에 여러번 요청이 올 경우는 어떻게 구분하나요? 가령 1693494130에 3번의 요청이 동시에 발생한다면 스코어는 1693494130로 하고 item을 1693494130_0이런식으로 index를 추가해야할 것 같아서요
-
미해결Flutter 초입문 왕초보편
000강 뒤에 있는 소스코드 어떻게 받는거죠?
000강 뒤에 있는 소스코드 깃허브에서 어떻게 받는거죠 깃허브에서 exe형태나 zip 형태는 받아 봤는데 이런형태는 첨이라 그런데 모르겠습니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Integer.MIN_VALUE
max = Integer.MIN_VALUE로 초기화해주는 이유가 따로 있나요??
-
미해결스프링 핵심 원리 - 기본편
코드를 똑같이 따라쳤는데 사용자 등록 빈 전체가 안 나와요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]직접 등록한 빈에서 이렇게만 나옵니다.AppConfig 설정 정보의 모든 메서드들이 나오지 않고 클래스만 나오네요.name = appConfig object=hello.core.AppConfig@3cce5371
-
미해결파이썬 무료 강의 (활용편4) - 업무자동화 (RPA)
시트 이름 지정하려는데 title 명령이 안 먹혀요
기본 명령어인 것 같은데 어째서 title만 어트리뷰트가 없다고 에러 뜰까요? 프로그램을 껐다 켜봐도 이렇습니다..파이선 3.8.6 버전 쓰고 있고 비주얼 스튜디오 코드는 1.83.1 버전 쓰고 있는 것 같네요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
form 안에 form이 있을 경우 vo를 어떻게 사용해야 할까
<form th:action=@"{/board/create}" th:object="${board}"> <input type="text" th:field="*{name}"> <button type="button" th:onclick="boardSubmit">글작성</button> <form th:action=@"{/board/create2}" th:object="${notice}"> <input type="hidden" th:field="*{boardId}"> <input type="text" th:field="*{title}"> <button type="button" th:onclick="noticeSubmit">글작성</button>위에 적은 소스는 샘플로 간단하게 Vo 안에 하나의 필드들만 들어갔을 경우를 예로 작성한 내용입니다.현업에서 작업을 하다보면 글 작성 form 안에 여러개의 form 이 들어가야 하는 경우가 한번씩 발생이 됩니다. 이럴 경우에는 어떤식으로 구조를 잡아야 할지 궁금합니다.@Getter @Setter public class RequestBoard{ private String name; private RequestNotice Notice; @Getter @Setter private static class RequestNotice { private String notice } }위와같이 innerClass를 이용해서 작성을 했는데 잘 안됩니다. 구현하고자 하는 기능은.boardSubmit을 클릭했을 때는 board의 name값이 저장되고,noticeSubmit을 클릭했을때는 title이 저장이 되게 하고 싶습니다.javascript에서 값을 받아서 ajax로 넘겨서 저장을 할려고 하면 input 값들이 많이 있을 경우에는 해당 vo도 만들어야하고, script에서도 그 값들을 일일히 받아서 컨트롤러로 넘겨줘야 하는데.. 타임리프를 이용해서 할 수 있는 방법이 있을까요?
-
미해결선형대수학개론
Theorem 4 질문입니다
b가 R^m에 해당된다고 했을때, Ax=b has a solution이랑The columns of A span R^m이 왜 같은말인지 이해가 안됩니다. 예시로 설명 부탁드려도 될까요?
-
해결됨포트폴리오 초간단 배포하기
질문
안녕하세요 자바는 사용해본적은 없어서 문의드립니다.저는 파이썬기반 flask를 사용중인데, 리눅스 서버에 어떻게 올려야하나요? flask 는 빌드가 필요가 없는것 같은데요,1, 프로그램 을 리눅스서버에 올리면 되나요?일단 프로그램을 올린후 , nginx 웹서버와 상관없이 작동이 되는 건가요?
-
미해결스프링 시큐리티 OAuth2
Session id가 인가 코드와 access token을 교환하는 도중에 변경됩니다.
안녕하세요. 강의 잘 듣고 있습니다.제목에서처럼, session id가 access token을 교환하는 일련의 과정 중에 변경되어 다음과 같은 오류가 브라우저 상에서 보여집니다.해당 에러 메시지를 내뱉는 로직이 OAuth2LoginAuthenticationFilter 클래스의 attemptAuthentication 메소드에 있음을 확인하였습니다. 제가 찾은 원인은 OAuth2AuthorizationRequestRedirectFilter에서 AuthorizationRequest의 저장까지는 성공적인데, OAuth2LoginAuthenticationFilter에서 AuthorizationRequest를 Repository에서 꺼내오려고 시도할 때 바뀐 session id값 때문에 이전의 AuthorizationRequest 객체를 가져오지 못하고 null을 반환하는 것이었습니다. 이렇게 session id가 바뀌는 원인이 무엇인지 알려주시면 감사하겠습니다 ㅠㅠ
-
미해결vue.js 실전 프로젝트(트위터 클론)
쪽지에서 메세지를 쓰면 상대방에게 즉시 나타나게 하려면 어떻게 해야 할까요?
쪽지에서 메세지를 쓰면 쪽지를 받는 상대방은 이름을 선택해 주어야 새로운 메시지가 나타나네요.메시지를 쓰면 상대방에게 즉시 나타나게 하려면 어떻게 해야 할까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Asio 기반 서버 멘토링
안녕하세요 루키스님. 질문할 곳을 찾지 못해 이 곳에 질문하게 되었습니다.이번 Asio 기반 C++서버 멘토링을 일단 신청은 해놨는데, 선수 지식으로 part4 게임서버 정도까지의 수강이 필요할까요 ? 요구되는 수준을 알려주시면 감사하겠습니다 !
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
개발환경과 배포환경시 다른 의존성을 주입하는 예제
질문보다는 코드 리뷰에 가까운데 강의 내용중에 나온 테스트 코드와 실제 배포시 다르게 적용할 경우 예제를 작성해 보았습니다.이해한 내용이 맞는지 또는 보안이나 수정할 만한 내용이 있는지 알려주시면 감사합니다.//app.service.ts import { Injectable } from '@nestjs/common'; export interface IAppService { getSecret(): string; } @Injectable() export class AppService implements IAppService { getSecret(): string { return '실제 배포 환경'; } } @Injectable() export class Test_AppService implements IAppService { getSecret(): string { return '개발 테스트 환경'; } } //app.module.ts import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService, Test_AppService } from './app.service'; import { ConfigModule } from '@nestjs/config'; @Module({ imports: [ConfigModule.forRoot({ isGlobal: true })], controllers: [AppController], providers: [ { provide: 'AppService', useClass: process.env.NODE_ENV === 'production' ? AppService : Test_AppService, }, ], }) export class AppModule {} //app.controller.ts import { Controller, Get, Inject } from '@nestjs/common'; import { IAppService } from './app.service'; @Controller() export class AppController { constructor(@Inject('AppService') private readonly appService: IAppService) {} @Get() getHello(): string { return this.appService.getSecret(); } }
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
의존성 주입시 객체가 반복적으로 생성될 수 있다고 했는데 해결방법이 어떻게 되는건가요?
강의 내용중 어떤것들은 DI 때마다 객체가 생성될수가 있고그럴 경우 웹소캣 객체같은 경우 문제가 생길수 있다고 하셧는데Nest 에서 그것을 해결하기 위해 자동으로 Module 단에서 Provider에 추가시 자동으로 객체를 하나만 만든후 재사용하여 (싱글톤과 유사하게 작동) 등을 통해 해결을 해주는것인지아니면 직접 해당 Class에서 싱글톤으로 생성을 해줘야 하는건지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
강의 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 강의를 들으며 헷갈리는 부분 질문 남깁니다. 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다.회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정)먼저 회원은 가입하고 조회할 수 있는 기능이 있고 이를 역할과 구현으로 구분하기 위해 역할인 MemberService와 구현인 MemberServiceImpl을 생성했다고 이해했습니다. 그 다음부터 헷갈리기 시작하는데요. 여기서부터 질문입니다. MemberRepository 라는 interface를 생성했는데. 일단 저는 Repository를 현업에서 거의 사용한 적이 없어서 명칭부터가 익숙치 않았는데요. 제가 이해하기로는 주로 외부와의(DB) 통신을 담당하는 친구로 DAO와 유사한 역할을 하는 것으로 이해했습니다. 맞나요? 다만, 자체 DB를 구축할지 외부시스템과 연동할지 정해지지 않았기 때문에 Interface로 생성한거고, 만약 정해져 있다면 굳이 Interface로 생성하지 않아도 될 것 같은데 맞나요? 제가 현업에서 일하면서 Service와 DAO를 연결할때는 보통 같은 기능명칭을 사용했는데 여기서는 join을 save로, findMember를 findById로 사용하더라구요. 명칭을 다르게 하는 이유가있나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
핸드폰에 전송이 안 되네요 ㅜㅜ
강의랑 똑같이 따라한 것 같은데.. postman에서는 오류가 발생하지 않고 인증완료라고 뜨긴 하는데요,vscode의 터미널을 보면 발신번호 미등록이라고 뜨고 .. 핸드폰에 전송이 안 되네요.뭐가 문제일까요? coolsms, mysms, API key랑 API secret도 cSpell 오류가 뜨길래 상위 폴더에서 .cspell.json 파일 만들어서 오류 안뜨게 했는데.. 여기서부터 문제였던 걸까요? 참고로 yarn add coolsms-node-sdk도 했고.. 분명 다 한 것 같은데ㅜ 어디서부터 잘못된건지 정말 모르겠어요..혹시 제가 코드 이상하게 작성하거나 잘못된 부분이 있나 해서.. 코드도 붙여봅니다 ㅜㅜ꼭 성공하고 싶은데 제가 아직 코린이라 ㅜㅜ 다 어렵기만 하네요 ㅜㅜ { "name": "04-01-rest-api-with-express", "version": "1.0.0", "main": "index.js", "license": "MIT", "type": "module", "scripts": { "dev": "nodemon index.js" }, "dependencies": { "coolsms-node-sdk": "^2.0.1", "cors": "^2.8.5", "express": "^4.18.2", "nodemon": "^3.0.1", "swagger-jsdoc": "^6.2.8", "swagger-ui-express": "^5.0.0" } } import coolsms from "coolsms-node-sdk"; export function checkValidationPhone(myPhone) { if (myPhone.length !== 10 && myPhone.length !== 11) { console.log("에러 발생!!! 핸드폰 번호를 제대로 입력해 주세요!!!"); return false; } else { return true; } } export function getToken() { const myCount = 6; if (myCount === undefined) { console.log("에러 발생!!! 갯수를 제대로 입력해 주세요!!!"); return; } else if (myCount <= 0) { console.log("에러 발생!!! 갯수가 너무 적습니다!!!"); return; } else if (myCount > 10) { console.log("에러 발생!!! 갯수가 너무 많습니다!!!"); return; } const result = String(Math.floor(Math.random() * 10 ** myCount)).padStart( myCount, "0" ); return result; // console.log(result) } export async function sendTokenToSMS(fff, ggg) { // console.log(fff + "번호로 인증번호" + ggg + "를 전송합니다!!"); const mysms = coolsms.default; const messageService = new mysms( "NCSESSQG0X1RZAGF", "2OFMQEDM5YCL59ICURBSPJGD08R1FQOG" ); const result = await messageService.sendOne({ to: fff, from: ggg, text: `[코드캠프] 안녕하세요?! 요청하신 인증번호는 [${ggg}] 입니다.`, }); console.log(result); } import { checkValidationPhone, getToken, sendTokenToSMS } from "./phone.js"; import express from "express"; import swaggerUi from "swagger-ui-express"; import swaggerJsdoc from "swagger-jsdoc"; import { options } from "./swagger/config.js"; import cors from "cors"; const app = express(); app.use(cors()); app.use(express.json()); app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerJsdoc(options))); app.get("/boards", (req, res) => { //1. 데이터를 조회하는 로직 => DB에 접속해서 데이터 꺼내오기 const result = [ { number: 1, writer: "철수", title: "제목1", contents: "내용1" }, { number: 2, writer: "맹구", title: "제목2", contents: "내용2" }, { number: 3, writer: "훈이", title: "제목3", contents: "내용3" }, ]; //2. 꺼내온 결과 응답 주기 res.send(result); }); app.post("/boards", (req, res) => { // 1. 데이터를 등록하는 로직 => DB에 접속해서 데이터 저장하기 // 프론트엔드로부터 데이터 받아오기 // 콘솔로 찍어서 확인 해보기 console.log(req.body); // 2. 저장 결과 알려주기 res.send("게시물 등록에 성공하였습니다."); }); app.post("/tokens/phone", (req, res) => { const myPhone = req.body.aaa; // 1. 휴대폰번호 자릿수 맞는지 확인하기 const isValid = checkValidationPhone(myPhone); if (isValid) { // 2. 핸드폰 토큰 6자리 만들기 const myToken = getToken(); // 3. 핸드폰번호에 토큰 전송하기 sendTokenToSMS(myPhone, myToken); res.send("인증완료"); } }); app.listen(3000, () => { console.log(`Example app listening on port ${3000}`); });
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
TypeORM @PrimaryGeneratedColumn 관련 질문
@PrimaryGeneratedColumn() 데코레이터에 인자로 전달할 수 있는increment와 identity에 따라서 어떤 차이가 있는지 궁금합니다.찾아봐도 알기가 어려워서 질문드립니다.
-
해결됨[코드캠프] 훈훈한 Javascript
locallhost
제 창 주소는 이렇게 뜨는데 왜 강사님은 다르게 뜨는 건가요 로컬호스트 강의 0:40 부분
-
미해결스프링 핵심 원리 - 기본편
컴포넌트 이름을 같게 해도 에러가 뜨지 않아요 ㅠ (자동)
MemberServiceImpl, OrderServiceImpl 이름을둘다 service로 이름을 설정했는데AutoAppConfigTest 에서 돌려봐도 테스트가 통과하고에러가 뜨질 않네요왜 이럴까요? 영한님 강의 너무 잘 듣고 있습니다 좋은 강의 찍어주셔서 감사합니다!
-
미해결
페이지 색인을 생성할 수 없음: 사이트 전반의 문제로 인해 이용 불가
이틀 전부터 갑자기 서치콘솔에 색인요청하면 저렇게 나오는데 왜 이러는걸까요?혹시 알려주실수 있으실까요?잘되던게 갑자기 이래서...
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
HW 가속기 설계 강의를 위한 FPGA 보드 사용
안녕하세요!완강 후 다음 강의인 FPGA 들을려고 합니다제가 FPGA Cora Z7를 가지고 있는데 이 보드로 HW 가속기 설계 강의 들을 수 있을까요??https://digilent.com/reference/programmable-logic/cora-z7/start