묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트 시큐리티 & JWT 강의
UsernamePasswordAuthenticationToken 질문 !
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword()); 여기서 사용한 Token 은 그저 로그인 정보를 담아서 authenticationManager에 담기 위한 토큰인가요 ??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
제가 빌드 이후에 대한 것들을 좀 찾아봤는데 질문이 하나 있습니다.
패키지 빌드 디버깅 | 언리얼 엔진 커뮤니티 위키 (unrealcommunity.wiki) shipping 빌드 이후 실행파일 디버그 하는 방법에 대한 내용 같은데요.제가 빌드한 것에는 tbb라는 이름의 pdb 밖에 없어서 모듈 연결을 할 수 없었습니다. shipping모드의 실행파일의 pdb를 얻는 법이 따로 있을 까요? shipping은 최적화된거라 사실 디버그 잘 안 될것 같긴한데 방법이 있다고하니 따라해 보려 했지만 잘 모르겠습니다...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 입문강의 질문이요
김영한선생님 스프링입문강의10강 회원 도매인과 리포지토리테스트2:50초 나오는 코드 똑같이 쳤는데 오류가 나오네요 원인이 무엇인가요?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
.env 파일 추가 후 빈 화면이 뜹니다.
ConfigModule 사용하기(dotenv 진화판) 부분에서 4분 쯤에 .env 추가하셔서 설정하시는 부분에서 막혔습니다. @nestjs/config모듈은 설치된 상태입니다.import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ConfigModule.forRoot()], controllers: [AppController], providers: [AppService], }) export class AppModule {} app.controller.tsimport { Controller, Get } from '@nestjs/common'; import { AppService } from './app.service'; @Controller() export class AppController { constructor(private readonly appService: AppService) {} @Get() getHello() { return this.appService.getHello(); } } .envSECRET=안녕하세요packge.json{ "name": "a-nest", "version": "0.0.1", "description": "", "author": "", "private": true, "license": "UNLICENSED", "scripts": { "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "nest start", "start:dev-backup": "nest start --watch", "start:dev": "nest build --webpack --webpackPath webpack-hmr.config.js --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json" }, "dependencies": { "@nestjs/common": "^10.0.0", "@nestjs/config": "^3.1.1", "@nestjs/core": "^10.0.0", "@nestjs/platform-express": "^10.0.0", "reflect-metadata": "^0.1.13", "rxjs": "^7.8.1" }, "devDependencies": { "@nestjs/cli": "^10.0.0", "@nestjs/schematics": "^10.0.0", "@nestjs/testing": "^10.0.0", "@types/express": "^4.17.17", "@types/jest": "^29.5.2", "@types/node": "^20.3.1", "@types/supertest": "^2.0.12", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "dotenv": "^16.3.1", "eslint": "^8.42.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.0", "jest": "^29.5.0", "prettier": "^3.0.0", "run-script-webpack-plugin": "^0.2.0", "source-map-support": "^0.5.21", "supertest": "^6.3.3", "ts-jest": "^29.1.0", "ts-loader": "^9.4.3", "ts-node": "^10.9.1", "tsconfig-paths": "^4.2.0", "typescript": "^5.1.3", "webpack": "^5.89.0", "webpack-node-externals": "^3.0.0" }, "jest": { "moduleFileExtensions": [ "js", "json", "ts" ], "rootDir": "src", "testRegex": ".*\\.spec\\.ts$", "transform": { "^.+\\.(t|j)s$": "ts-jest" }, "collectCoverageFrom": [ "**/*.(t|j)s" ], "coverageDirectory": "../coverage", "testEnvironment": "node" } } 코드 작성 후 서버를 재실행 시켰고, 빈 하얀 화면이 출력되는 상태입니다. 제가 놓친 부분이 있을까요?
-
미해결스프링 핵심 원리 - 기본편
섹터5질문입니다.
싱글톤 패턴강의에서 질문있습니다.(싱글톤 컨테이너 강의 SingletonTest.class파일에서나옴) ApplicationContext ac= new AnnotationConfigApplicationContext(Appconfig.class); 웹 애플리케이션과 싱글톤강의 SingletonTest class 에서 나옴Appconfig appConfig=new Appconfig();컨테이너에 등록된 모든 빈 조회강의 ApplicationContextBasicFindTest class에서 나옴AnnotationConfigApplicationContext ac =new AnnotationConfigApplicationContext(Appconfig.class);3가지 차이가 뭐에요?세개 다 Appconfig.class를 참조하는것 같은데요. 2.강의 자료 싱글톤 컨테이너2번째 장에 아래와 같이 나왔는데요.고객 트래픽이 초당 100이 나오면 초당 100개 객체가 생성되고 소멸된다! 메모리 낭비가 심하다.해결방안은 해당 객체가 딱 1개만 생성되고, 공유하도록 설계하면 된다. 싱글톤 패턴public class SingletonService { private static final SingletonService instance = new SingletonService(); public static SingletonService getInstance(){ return instance; } private SingletonService(){ } public void logic(){ System.out.println("싱글톤 객체 호츌"); } } 위에께 강의 자료 3페이지에 나온 코드인데 해당 객체가 딱 1개만 생성되었는데요.2페이지에 나온 코드(스프링 없는 순수한 DI 컨테이너 테스트코드)가 메모리 낭비가 심하니까 위코드로 인해 메모리가 절약하는걸로 이해해도 되나요? 3.강의 자료 싱글톤 컨테이너4번째 장에 아래와 같이 나왔는데요.의존관계상 클라이언트가 구체 클래스에 의존한다. DIP를 위반한다.(클라이언트가 구체 클래스에 의존해서 OCP 원칙을 위반할 가능성이 높다.dp랑 ocp가 어디가 위반되었다는건가요? 혹시 인텔리제이에서 SingletonService 이렇게 작성하길 원할 때 대문자가 자동으로 변환되는건가요?아니면 시프티키 눌러서 대문자로 직접 변환하고 소문자로 변환하는건가요? 강의 자료 싱글톤 컨테이너에서 10페이지와 11페이지에 걸쳐진 테스트 코드에서 질문입니다. MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class);위부분을 MemberServiceImpl memberService = ac.getBean("memnberService", MemberServiceImpl.class);이렇게 바꿔쓰면(이름부분에m추가하면)no bean이라고 컴파일 에러가 나옵니다. 근데 MemberServiceImpl.class파일에 memberService 이런 함수명이 없는데(강의자료에도 없음) 컴파일할 떄 어디서 참조되는건가요? 6.@Configuration과 싱글톤8분에 강의 중에 memberRepository가 5번 호출됬다가 3번 호출됬다가 그러시는데MemberServiceImpl.class에서public MemberRepository getMemberRepository(){return memberRepository;}이거 호출되는것 같은데 appconfig파일에@Beanpublic MemberService memberService(){return new MemberServiceImpl(memberRepository());}이부분이 왜 호출되는거에요?그리고 @Beanpublic MemberRepository memberRepository() {return new MemoryMemberRepository();} 이부분이 어떻게 5번이 호출되는건가요? @Configuration과 바이트코드 조작의 마법 7분 41초에 memorymemberrepasitory가 등록이 되어있어서 한번만 호출되어있다고 하셨는데 그 코드상에서 언제 등록이 된건가요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
postman message 항목 안나옴
postman 에서 요청할때 json반환값에 message에 대한 정보가 없습니다 스프링 버전차이일까요 ?
-
미해결왕 초보 자바스크립트
undefiend을 반환하는 이유
function showError(){ alert('에러가 발생했습니다'); } const result = showError(); console.log(result);여기서 showError() 함수만 실행했을 때와 다르게 result에 입력해서 실행하고 나서 undefined 가 나오는 출력되는 이유는 무엇인가요?제가 추측하기엔 변수가 함수와 인자까지 같이 실행시켜야하는데 인자가 존재하지않아 undefined 가 나오는 것이라고 추측하고 있습니다만,정확하게 모르겠습니다
-
해결됨독하게 시작하는 C 프로그래밍
정수와 실수 출력에 관하여...
#include <stdio.h> int main(void) { int fee=1000; printf("%d\n", fee * 0.75); int fee2 = 1000 * 0.75; printf("%d", fee2); return 0; }섹션 11의 버스요금 계산 문제를 풀면서 궁금한 점이 생겼습니다. 예제를 작성할때 첫번째 방법으로 풀었더니 출력이 0이 나와서 두번째 방법으로 해보니 정상적으로 750이 출력되었습니다. 이 두 가지 방법의 차이점이 무엇인가요?
-
해결됨코딩테스트 [ ALL IN ONE ]
전자책 교재
교재 전자책을 어떻게 받을수 있나요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
CRUD에 따른 ResponseDto를 보내는 유형 및 ResponseDto 구성 방식에 대한 질문
안녕하십니까 영한님.영한님 덕분에 JAVA Spring 기반 백엔드 개발의시작을 할 수 있었고,이제는 5개월 차 스타트업 백엔드 개발자로써 커리어를 시작하게 되었습니다. 현업에 와서는 오히려 취준생 때 보다 더 많은 고민을 하게 되느데요, 질문 1. 그중 최근에 CRUD의 각 상황별 API 응답을 어떻게 보내는게 적절할지, 질문 2. 그리고 ResponseDto를 어떻게 구성하는것이 적절할지에 대한 고민을 팀장님과 함께 하고있어서, 영한님의 생각을 여쭙고자 질문글을 올리게 되었습니다.답변 해주시면 정말 감사할 거 같습니다! Q1. 생성, 조회 , 수정, 삭제 API의 응답을 각각 어떻게 보내시는지 여쭤보고 싶습니다. 가장 먼저 조회의 경우는 말 그대로 path의 Entity 및 관련된 Entity 정보를 조합하여 응답 DTO로 변환하여 보내고 있습니다. 그런데 나머지 Write Operation에 대한 응답을 어디까지 보내야 하냐가 이슈 입니다.예를들면 엔티티의 생성의 경우 엔티티의 응답 DTO를 보내면 - 프론트에서 별도의 조회 API 호출 없이 바로 프론트가 화면에 뿌려줄 수 있으니깐 저는 생성의 경우에도 조회와 마찬가지로 Entity의 정보를 조합하여 응답 DTO로 변환하여 보내고 있었습니다. 그런데 이러한 부분이 Command Query Sperate 원칙에 어긋나는것 같아, 영한님께서는 혹시 생성한 Entity의 Key만 보내시는지, 아니면 Entity의 정보를 DTO로 변환하여 보내시는지 궁금합니다. 만약 Entity의 Id만 보내신다면 이후에 별도로 조회API를 호출해야 하고 그 또한 비용일텐데 이러한 부분은 어떻게 하시는지 여쭤보고 싶습니다. 이제 수정 API인데요,제가 다룬 비즈니스 로직의 경우 수정 비즈니스 로직이 다양하고 , 각 비즈니스 로직의 경우 다뤄지는 Entity의 종류가 다른 경우였습니다. (중심 Entity는 동일하지만, 연관된 Entity를 누구까지 건드리냐의 차이) 그래서 하나의 통일된 응답으로 보내기 모호한 점이 첫 번째 이유이고,애초에 수정 후에 프론트 화면에서 그 엔티티의 정보를 보여줄 필요가 없어서 라는 두번째 이유에 의해서 에초에 엔티티의 Id값도 보내지 않고 있었는데요,이 수정 API의 응답을 영한님은 어떻게 진행하지는지 그 이유가 궁금합니다. 마지막으로 삭제의 경우는 정말, 프론트에게 보낼 응답이 없어도 되는 경우 라고 생각했는데요,팀장님의 의견은 만약에 나중에 삭제한 Entity를 복구하는 요구사항이 추가되는것을 고려하여Id 정도는 넘기자는 의견을 내어주셨습니다.마찬가지로 삭제의 경우도 어떤식으로 수행하시는지 그 이유가 궁금합니다. Q3. 마지막으로 Entity의 ResponseDto의 필드를 어떤식으로 구성하시는지 궁금합니다 예를들면 저의 경우는 API는 프론트와 서버 간의 스펙이라고 생각하고, Entity의 단건조회의 경우는 단건 조회용 ResponseDto를, 전체조회의 경우는 전체 조회용 SummaryResponseDto를 별도로 만들어서 사용하고 있었습니다. 저희 팀장님 께서는 프론트쪽도 일을 해오시다가 , 백엔드쪽 분야로 전향하신 케이스 인데요,그렇다 보니 어떻게 해야 프론트의 생산성이 올라가는지를 고려하시는 분이셨고,팀장님의 생각은 서버에서 넘겨주는 응답에 일관성이 있어야 그 응답을 사용하는 프론트 측도 학습이 되고 놓치는 부분 없이 생산성이 올라간다는 의견이셨습니다. 그래서 Entity별로 당장 사용하지 않더라도 가능한 모든 필드를 담은 ResponseDto를 하나만 만들고,해당 ResponseEntity의 조합으로 각 API별 응답 Dto를 만들어서 사용하면 ,프론트 측 에서는 일관성 있는 응답값을 사용할 수 있다는 의견이셨습니다.물론 이 방법이 네트워크 패킷의 양을 쓸데없이 증가시킨다는 것을 알고 계시면서도,생산성에 큰 영향을 미치는 부분이라고 생각하셨습니다. 예를들어 다음과 같이 각 Entity의 응답 Dto의 조합별로 API의 ResponseDto를 만들 수 있습니다.ResponseDto{ UserDto{id : 1,name : “aaa”… // User엔티티의 거의 모든 필드} ItemDto{ id : 2,name : “bbb”,… // Item엔티티의 거의 모든 필드}} 저는 이러한 부분에 대해 생각해 본 적이 없이,그냥 제가 “해당 API를 호출하는 화면에서 필요한 정보들만을 담아 (혹은 여러 화면에서 쓰인다면 여러개를 고려) ResponseDto를 각각 만들어서” 넘겼는데요 영한님께서는 이러한 ResponseDto를 구성하는 부분에 있어서상황별로 필드를 재구성 하여 ResponseDto를 정의하여 사용하시는 편 인지 (SummaryResponseDto 등의 별도 Dto에 사용될 Entity의 필드들을 풀어서 정의하시는지)아니면 생산성을 고려하여 각 Entity별 Dto를 만들고, 이들을 조합하여 ReponseDto를 정의하시는 편 이신지 ,혹은 다른 규칙이 있으신지 궁금합니다. 물론 그렇다고 , 팀장님의 의견에서 전체조회시 사용하는 DTO와 단건조회시 사용하는 DTO가 동일하더라도,전체조회 후 단건조회를 할때 단건조회 API를 호출하지 말고 기존 Front가 가지고 있는 값을 쓰지는 말자는 의견 이십니다 (단건조회API는 별도로 호출해야 한다)그저 핵심은 프론트가 다루는 ResponseDto의 일관성을 위해서 입니다 (결론은 생산성을 위해) 긴글 읽어주셔서 감사합니다.항상 건강하셨으면 좋겠고,다음 강의들도 손꼽아 기다리고 있습니다!
-
미해결파이썬/장고로 결제 시작하기 (Feat. 아임포트) - 기본편
수량
여기서 testproduct 아래에 수량 창이 하나더 뜨나요?코드에서 어디부분때문에 그런건가요?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
이분탐색 강의 13분 20초 (나무자르기 문제 마지막 print값이 e인 이유)
제목그대로 나무자르기 문제에서 마지막 return이 e가 되어야하는 이유가 좀 와닿지 않습니다.코드에서 잘라서 얻은 나무가 m보다 크거나 같을 경우, s를 mid + 1로 하기 때문에 이는 "절단기 설정 높이를 높이는 행위"이고, 문제에서 요구하는 것이 "절단기에 설정할 수 있는 높이의 최댓값" 이기 때문에 마지막에는 s를 print해야하는 것 아닌가? 싶어서 헷갈리는 것 같습니다.그리고 문제마다 e를 return하는 경우와 s를 return해야하는 경우가 나뉘는건지 좀 헷갈립니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안스에 location custom
지도 강의에 features-custom location 가서 경도 위도 바꾸는 게 있는데안스에서는 이런걸 찾을 수 가 없네요.아래와 같이 이유를 얘기하는데 저는 해당되는게 하나도없고 File > Settings에서Appearance & Behavior > System Settings 가봐도 location 이 없네요ㅜ 안드로이드 스튜디오의 버전이 너무 낮습니다.안드로이드 스튜디오를 설치할 때 Location 옵션이 비활성화되어 있습니다.안드로이드 스튜디오의 위치 서비스가 비활성화되어 있습니다.안드로이드 스튜디오의 설정에서 Location 옵션이 숨겨져 있습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
에셋 다운로드
수업에서 사용한 에셋을 다운로드하고싶은대.. 어디에있나요? 구름표시가 안보여요...
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
실전문제풀이4 21번 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 문제에서 EC2 인스턴스는 NAT 게이트웨이 아웃바운드 인터넷 엑세스를 사용하지만~ 이라는 구절이 있습니다.그렇기에 이미 EC2 보안그룹에서 인터넷으로 가는 아웃바운드 규칙은 잘 설정 되어있다고 생각했는데요 정답이 E. EC2 인스턴스에 대한 보안 그룹 연결에 대한 아웃바운드 규칙이 잘못 구성되었습니다여서 왜 정답이 되는지 궁금해서 질문 남깁니다.
-
해결됨독하게 되새기는 C 프로그래밍
함수호출이랑 쓰레드
안녕하세요. 배운 내용을 한번 확인 및 함수호출과 쓰레드의 관계에 대해서 질문 드립니다! main함수에서 다른 함수를 호출할 때는 쓰레드가 생성되는게 아니고 하나의 main 쓰레드가 끝날때까지 진행 되는건가요?그리고 그 실행된 메인 쓰레드는 호출 된 함수로 이동하여 계산 또는 값을 수정 등을 하고 다시 반환하여 메인 함수로 가는 건가요? 만약 동시에(싱글코어로 가정하면) 이러한 실행을 하기 위해서는 쓰레드를 추가하는 것이라고 이해하면 될까요? 싱글코어로 가정한 쓰레드들은 OS가 동기화를 통해 쓰레드들간에 진행을 통제 하는건가요?
-
미해결따라하며 배우는 리액트 A-Z
create-react-app 관련
npx create-react-app 이렇게 만들면 src폴더 없이 만들어지더라구요 그래서 그냥 npx 없이 만드니까 정상적으로 잘 만들어지는데 npx가 있는거와 없는거의 차이점이 뭔지 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
괄호 안 내용
선생님 여쭤볼게 있는데요 model = RandomForestRegressor()model.fit(X_tr, y_tr)pred = model.predict(X_val) 하실때 (X_val)이랑 fromsklearn.metrics import mean_squared_errordef rmse(y_true, y_pred): returnmean_squared_error(y_true, y_pred)**0.5rmse(y_val, pred) 여기서 괄호에 들어가는 (y_val, pred) 이 값이뭘 뜻하는건지 궁금합니다,,ㅠㅠ
-
미해결[웹 개발 풀스택 코스] Vue.js 프로젝트 투입 일주일 전 - 기초에서 실무까지
Event 다음 extra 부분 질문 있습니다.
안녕하세요, 수업 잘 듣고 있습니다.다름이 아니라 event 수업 듣고 다음으로 넘어왔는데 3_extra부분에 RenderingIf랑 RenderingShow부분 없이 바로 Computed 부분으로 스킵되어 있는데, event부분과 비슷한 내용이거나 별로 중요하지 않아서 일부러 넣지 않으셨는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회 작업형2 라벨인코딩
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요원핫인코딩 말고 라벨인코딩으로 하면 에러가 뜨던데.. 라벨인코딩으로는 작업코드가 어떻게 되나요?타겟데이터 pop하고 검증데이터 분리 전에 라벨인코딩 진행했는데 이런 에러가 뜹니다,,# print(train.shape, test.shape) # train = pd.get_dummies(train) # 전체를 넣으면 train에서 object값만 인코딩하고 수치형 데이터는 그대로 둚 # test = pd.get_dummies(test) # print(train.shape, test.shape) cols = train.select_dtypes(include='object').columns from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols: train['col'] = le.fit_transform(train['col']) test['col'] = le.transform(test['col'])--------------------------------------------------------------------------- KeyError Traceback (most recent call last) /usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3801 try: -> 3802 return self._engine.get_loc(casted_key) 3803 except KeyError as err: 4 framespandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: 'col' The above exception was the direct cause of the following exception: KeyError Traceback (most recent call last) /usr/local/lib/python3.10/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3802 return self._engine.get_loc(casted_key) 3803 except KeyError as err: -> 3804 raise KeyError(key) from err 3805 except TypeError: 3806 # If we have a listlike key, _check_indexing_error will raise KeyError: 'col'