묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
@MappedSuperclass 에 기본키를 명시해도 되나요?
안녕하세요.User, Company class 에서 모두 BasicColumn 을 상속받아 사용할때에둘다 sId 라는 기본키를 가진다고 하면 해당 컬럼도 BasicColumn 내에 작성해도 되는지 궁금합니다!공통된 컬럼을 @MappedSuperclass에 작성할 때에 기본키/외래키에 관계없이 작성해도 되는건가요?User.java@Entity public class User extends BasicColumn { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="S_ID", updatable=false) private Long sId; ... } Company.java@Entity public class Company extends BasicColumn { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="S_ID", updatable=false) private Long sId; ... }BasicColumn.java@MappedSuperclass public abstract class BasicColumn { ...// 이부분에 sId작성 후 User/Company 내에서 제거해도 되나요? }
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
socialLoginApiService map 주입
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. @Servicepublic class SocialLoginApiServiceFactory {private static Map<String,SocialLoginApiService> socialLoginApiServices;public SocialLoginApiServiceFactory(Map<String,SocialLoginApiService> socialLoginApiServices) {SocialLoginApiServiceFactory.socialLoginApiServices = socialLoginApiServices;}public static SocialLoginApiService getSocialLoginApiService(MemberType memberType){String socialLoginApiServiceBeanName = "";if(MemberType.KAKAO.equals(memberType)){socialLoginApiServiceBeanName = "kakaoLoginApiServiceImpl";}return socialLoginApiServices.get(socialLoginApiServiceBeanName);}} 여기서 생성자로 socialLoginApiServices 를 주입해서 사용 하는 것 같은데 주입하는 부분이 보이지 않아서 질문 드립니다 어디서 주입 되는 것일까요?
-
미해결스프링 핵심 원리 - 기본편
Extract Method 저는 다른 단축키였군요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Geforce Experience 앱 삭제해봐도 안되고 별 검색 다 해보다가 오른쪽 마우스 클릭하니 refactor 가 떡하니 있었어요 alt + shift + m 이었네요 왜 저만 다른걸까요? 설정을 해야하는건가요?
-
해결됨클론코딩에서 알려주지 않는 것들 (보안, DDD, 마이크로서비스) 2편
성능상의 불이익
이전 강의에서 Product 와 Brand 를 join 하지 않고 각각 Select 함으로서 성능상의 불이익이 있었는데 Aggregate 단위로 묶여있었기 때문이군요. 데이터의 일관성을 위해 Aggregate Root 를 통해 접근가능하도록 연습 많이 해보도록 하겠습니다!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
#20 리액트 라우터 돔
라우터 돔 사이트에서 베이직이 안보이는데 어떤걸 복사하면되는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출문제 작업형2 질문드립니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요unamed:0 칼럼에 대해 질문드립니다. (사진에서 첫번째 칼럼)unamed:0 칼럼은 시험 때 제출해야할 ID와 관련된 것이 아닌가요? ㅜㅜ 중간에 test_id 안 만드셔서 의문점이 들었어요.
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
pm2 error
const express = require("express"); const cookieParser = require("cookie-parser"); const morgan = require("morgan"); const session = require("express-session"); const router = express.Router(); const path = require("path"); const dotenv = require("dotenv"); const passport = require("passport"); const app = express(); const passportConfig = require("./passport"); const redis = require("redis"); const RedisStore = require("connect-redis").default; dotenv.config(); const redisClient = redis.createClient({ url: `redis://${process.env.REDIS_HOST}:${process.env.REDIS_PORT}`, password: process.env.REDIS_PASSWORD, legacyMode: false, }); redisClient.connect().catch(console.error); const authRouter = require("./routes/auth"); const pageRouter = require("./routes/page"); const postRouter = require("./routes/post"); const userRouter = require("./routes/user"); const commentRouter = require("./routes/comment"); const updateRouter = require("./routes/update"); const deleteRouter = require("./routes/delete"); const helmet = require("helmet"); const hpp = require("hpp"); const { sequelize } = require("./models"); const logger = require("./logger"); passportConfig(); app.set("port", process.env.PORT || 8005); sequelize .sync({ force: false }) .then(() => { console.log("데이터베이스 연결 성공"); }) .catch((err) => { console.error(err); }); if (process.env.NODE_ENV === "production") { app.use( helmet({ contentSecurityPolicy: false, crossOriginEmbedderPolicy: false, crossOriginResourcePolicy: false, crossOriginOpenerPolicy: false, originAgentCluster: false, }) ); app.use(hpp()); app.use(morgan("combined")); } else { app.use(morgan("dev")); } app.use(express.json({ limit: "10mb" })); var cors = require("cors"); const { deepStrictEqual } = require("assert"); app.use(cors()); app.use("/img", express.static(path.join(__dirname, "uploads"))); app.use("/profileImg", express.static(path.join(__dirname, "profileImg"))); app.use(express.json()); app.use(express.urlencoded({ limit: "10mb", extended: false })); app.use(cookieParser(process.env.COOKIE_SECRET)); const sessionOption = { resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, store: new RedisStore({ client: redisClient }), }; if (process.env.NODE_ENV === "production") { sessionOption.proxy = true; } app.use(session(sessionOption)); app.use(passport.initialize()); app.use(passport.session()); app.use(express.static(path.join(__dirname, "prototype-client/build"))); app.get("/", (req, res) => { res.sendFile(path.join(__dirname, "prototype-client/build/index.html")); }); app.use("/page", pageRouter); app.use("/auth", authRouter); app.use("/post", postRouter); app.use("/user", userRouter); app.use("/comment", commentRouter); app.use("/update", updateRouter); app.use("/delete", deleteRouter); //react에서 react-router-dom으로 다룰 수 있게 app.get("*", function (req, res) { res.sendFile(path.join(__dirname, "/prototype-client/build/index.html")); }); //에러 처리 담당 app.use((req, res, next) => { const error = new Error(`${(req, method)} ${req.url} 라우터가 없습니다.`); error.status = 404; logger.info("hello"); logger.error(error.message); next(error); }); app.use((err, req, res, next) => { console.error(err); res.locals.message = err.message; res.locals.erorr = process.env.NODE_ENV !== "production" ? err : {}; res.status(err.status || 500); res.render("error"); }); module.exports = app;이렇게 코드를 실행하면 sudo pm2 monit의 server log에 2가지 에러가 나옵니다. server > [Error: ENOENT: no such file or directory, stat │ ││ server > errno: -2, │ ││ server > code: 'ENOENT', │ ││ server > syscall: 'stat', │ ││ server > path: '/home/bitnami/Whats-up/prototype-client/bu ││ ││ server > expose: false, │ ││ server > statusCode: 404, │ ││ server > status: 404 │ ││ server > } 에러 메시지를 봤을때 해당 경로에 대한 파일을 찾을 수 없다고 하는데 ls를 입력했을때 잘 있는걸 확인 할 수 있는데 왜 이런 에러가 발생하는지 모르겠습니다..2번쨰는 server > Error: No default engine was specified and no ││ server > at new View (/home/bitnami/Whats-up/node_module │ ││ server > at Function.render (/home/bitnami/Whats-up/node │││ server > at ServerResponse.render (/home/bitnami/Whats-u │ ││ server > at /home/bitnami/Whats-up/app.js:127:7 │ ││ server > at Layer.handle_error (/home/bitnami/Whats-up/n │ ││ server > at trim_prefix (/home/bitnami/Whats-up/node_mod │ ││ server > at /home/bitnami/Whats-up/node_modules/express/ ││ server > at Function.process_params (/home/bitnami/Whats 이런 에러가 발생합니다. 에러 메세지를 봤을떄는 view engine관련된 에러같은데 react랑 express연동할때는 따로 view engine 설정을 주지 않고 express.static으로 리액트 코드를 전달하면 되는거 아닌가요?
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
게시글 묶음(?)별 선택 질문
안녕하세요.현시점 섹션5. vue3 내장 컴포넌트 -> Modal까지 시청했습니다.다른건 이상없이 다 되는데.. 3개씩 보기? 6개씩 보기 선택시 반응이 없습니다.공부겸 해결해보고 싶은데 어디파일로 가서 해결해 볼 수 있을까요?components > posts > PostFilter.vue 파일에서 해결해보면 될까요?
-
미해결Verilog FPGA Program 1 (Arty A7-35T)
SPI master testbench 질문
안녕하세요! SPI contoller ch.5 소스 코드에서 궁금한 점이 있어 질문 남깁니다.timing 규격상 sck_index 값이 48일 때 send -> done 로 transition이 일어난다고 알고 있는데요49까지 count 되는 경우에 delay 문제가 없는지 궁금합니다.감사합니다.
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
그래프 초기화
안녕하세요. 선생님 덕분에 멋진 강의를 듣고 있는 학생입니다.이제 유형 1을 다 수강했는데, graph를 초기화할 때 보통 N의 개수가 적으면 불리언 2차원 배열로 선언하고, N의 개수가 많으면 빈리스트로 구성된 2차원 리스트로 선언하는데요.그냥 모든 문제에 빈리스트로 구성된 2차원 배열을 선언하지 않는 이유가 N의 개수가 적으면 배열로 선언하고 조회하는 게 더 빠르기 때문인지 여쭤봐도 될까요?
-
해결됨클론코딩에서 알려주지 않는 것들 (보안, DDD, 마이크로서비스) 2편
소스코드
안녕하세요 😀혹시 강의 때 사용하신 코드 제공이 가능할까요?아직 Service 와 useCase 와의 경계에 대해 감이 안잡혀서 코드로 확인해 보고 싶습니다PS. 강의에서 Service class 와 useCase 모두 Repository 를 참고하고 있어서 어떠한 다른점이 있는지도 질문드립니다
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
12신살은 어떻게 구할까요?
비견 겁재 등등 이런 거 말고 지살, 년살, 월살, 망신살, 장성살, 반안살 등등 십이신살을 구하는 방법이 있을까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
여성인 확률을 물어볼 경우 문의 (roc_auc)
혹시 질문에서 여성(0값)일 확률을 물어볼 경우, pred[:,0]으로 roc_auc_score이나 DataFrame 결과값 때 값을 넣으면 될까요??
-
해결됨OpenStack을 활용한 클라우드 환경 구축하기
오픈스택 인스턴스 로그인 불가 문제 (6강 15분 41초)
openstack을 설치하고 알려주신 링클에 따라서 이미지를 다운받았습니다. focal-server-cloudimg-amd64.img 2023-08-23 22:18 611M QCow2 UEFI/GPT Bootable disk image이미지를 실행하여 인스턴스를 생성했는데 버전이 달라서 그런가요?root : kaisec123으로 접속이 안되네요 ㅜ 제가 비밀번호가 틀렸나요?
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
숫자야구 코드를 짜 봤는데 뭔가 이상합니다.
# v2: 안 보고 만들기 (23.11.21)from random import randintfrom os import systemanswer = []num = str(randint(0, 9))for i in range(3): while num in answer: num = str(randint(0, 9)) answer.append(num)strikes = 0balls = 0system('cls')while strikes < 3: user_input = str(input("3자리 숫자를 입력해 주세요.")) if len(user_input) != 3: print("3자리 자연수를 입력해주세요.") continue if not user_input.isdigit(): print("문자 말고 숫자를 입력해주세요.") continue if user_input[0] == user_input[1] or user_input[1] == user_input[2] or user_input[0] == user_input[2]: print("중복된 숫자 없이 입력해주세요.") continue strikes = 0 balls = 0 # 숫자 비교 for i in user_input: for j in answer: if i in answer and i == j: strikes += 1 if i in answer and i != j: balls += 1 if strikes != 3: print(f"{strikes} 스트라이크, {balls} 볼") else: print("성공!") 37, 39에서 저는 i in answer를 써 봤는데요. 막 2 스트라이크 4 볼이 나오고 그런 현상이 생깁니다ㅠㅠ
-
해결됨Microservice 설계(with EventStorming,DDD)
도메인 영역에 대한 질문
클린 아키텍처와 헥사고날 아키텍처 모두 개발자가 비즈니스에 집중할 수 있도록 하는 구조인데, 이때 도메인 모델을 풍부한 도메인 모델이 아닌 빈약한 도메인 모델로 가져가고, 트랜잭션 스크립트 패턴을 사용해도, 클린 아키텍처와 헥사고날 아키텍처라고 할 수 있는건가요?
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
PatchMeBasketDto 서버 에러 급합니다.
안녕하세요. 섹션 16 -> Postman API 테스트 부분을 듣고 있는 수강생입니다.하나씩 강의 영상대로 따라하면서 공부하고있습니다.로그인 요청을 보내서 로그인 토큰을 받고GET /restaurant 으로 레스토랑 리스트 받아오고받아온 레스토랑 id를 기반으로 restaurant/:rid 에 rid 키로 상세 페이지를 요청하였습니다.그 후 user/me/basket의 productId 상세페이지에서 나온 id를 입력했는데 서버에서 아래와 같은 오류가 나옵니다. 강사님의 빠른 답변 기다리겠습니다. 좋은 강의 감사합니다. ==== 포스트맨 에러{ "statusCode": 500, "message": "Internal server error" } ==== NextJS 에러 {}PatchMeBasketDto {}[Nest] 6648 - 2023. 11. 21. 오후 4:21:06 ERROR [ExceptionsHandler] Cannot read properties of undefined (reading 'map')TypeError: Cannot read properties of undefined (reading 'map') at UserService._mapBasketDtoToProduct (D:\FlutterProject\restapi\src\user\user.service.ts:74:21) at UserService.addToBasket (D:\FlutterProject\restapi\src\user\user.service.ts:66:24) at UserController.patchMeBasket (D:\FlutterProject\restapi\src\user\user.controller.ts:87:29) at D:\FlutterProject\restapi\node_modules\@nestjs\core\router\router-execution-context.js:38:29 ==== 단계별 스크린샷1. 레스토랑 리스트 요청2. 상세 레스토랑 정보 요청3. PATCH 장바구니 요청4. 서버 에러
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
2번만 RuntimeError가 뜨는데요
package twopointers; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class CommonElements { static ArrayList<Integer> solution(int n, int m, int[] arr, int[] arr2) { ArrayList<Integer> list = new ArrayList<>(); Arrays.sort(arr); Arrays.sort(arr2); int p1 = 0; int p2 = 0; while (p1 < n && p2 < m) { if (arr[p1] == arr2[p2]) { list.add(arr[p1]); p1++; p2++; } else if (arr[p1] < arr2[p2]) { p1++; } else { p2++; } } return list; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } int m = sc.nextInt(); int[] arr2 = new int[n]; for (int i = 0; i < m; i++) { arr2[i] = sc.nextInt(); } for (int result : CommonElements.solution(n, m, arr, arr2)) { System.out.print(result + " "); } } } 뭐가 문제일까요??
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
학습 순서 문의
컴퓨터 구조 부분을 학습하지 않고 운영체제부터 학습 가능한가요??
-
미해결[Pytorch] 파이토치를 활용한 딥러닝 모델 구축
IMDBDataset 파일 다운로드가 안되는데 어떻게 받을 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.IMDBDataset 파일 다운로드가 안되는데 어떻게 받을 수 있을까요? > !gdown https://drive.google.com/uc?id=1RFs-jV18dy9I3cWQ2M80kHfON-fDCerg ------------------------------------------- Access denied with the following error: Cannot retrieve the public link of the file. You may need to change the permission to 'Anyone with the link', or have had many accesses. You may still be able to access the file from the browser: https://drive.google.com/uc?id=1RFs-jV18dy9I3cWQ2M80kHfON-fDCerg