묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 DB 접근기술에 대한 전반적인 내용 질문있습니다
회원가입때 넣은 정보들을 (1)순수jdbc이든, (2)jdbc Template이든, (3)JPA이든 다 저장할 방법은 있는데, 1에서 2로 넘어갈땐 중복코드를 많이 지워주고, 2에서 3으로 넘어갈땐 더 코드가 짧고 간결해진다. 라고 이해했는데 맞나요??jpa가 저장하는 방법은,, 회원정보 들어오면, hibernate가 그 정보가지고 알아서 select, insert문 만들어서 db에 자동으로 저장해준다 인가요? 코드가 간결하다는 것 외에 jpa가 앞선 2개의 방법과는 다른게 무엇인가요?? JPA가 정확히 어떤건지 잘 감이 안옵니다... 서버와 DB를 연결해주는 3가지 방법중 하나인데, 그중에서 sql을 직접 작성하지 않는 가장 간결한 방법인가요??
-
미해결스프링 핵심 원리 - 기본편
강의 로드맵 관련해서 질문이 있습니다.
열심히 해서 안될 내용을 알려주시지는 않겠지만 이제 막 자바를 배운 학생이 제시된 로드맵 '우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복' 에 제시된 순서대로 수강을 하여도 이해 하기에 적합한 수준의 내용인지 궁금합니다.스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근기술을 수강하고 넘어온 단계인데 다른 분들이 남겨주신 질문이나 강의에서 매끄럽게 진행되는 것에 반해 설명을 듣기는 하지만 따라치기의 레벨밖에 안되는 것 같아서 고민이 많이 됩니다.아니라고 한다면 자바를 더 공부를 하고 수강을 하는 것이 맞을까요?
-
미해결쉽고 자연스럽게 배워보는 Javascript 입문 - 코드스쿼드 마스터즈 코스 레벨1
submit때마다 print된 구구단을 지우고 싶어요..
구현은 했는데... 새로운 값을 입력 할 때 기존 print된 값들을 없에주는 기능의 힌트를 얻을 수 있을까요..? 남는거 너무 싫어서 다음 수업을 못넘어 가겠어요 ㅠㅠ
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
오류좀 봐주세요
CreateView - 폼(form)으로 포스트 작성 페이지 만들기 강의에서여기까지왔는데요 이런오류가 뜨네요 python manage.py runserverWatching for file changes with StatReloaderPerforming system checks...Exception in thread django-main-thread:Traceback (most recent call last): File "C:\Program Files\Python310\lib\threading.py", line 1016, in bootstrapinner self.run() File "C:\Program Files\Python310\lib\threading.py", line 953, in run self._target(*self._args, **self._kwargs) File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\core\management\commands\runserver.py", line 134, in inner_run self.check(display_num_errors=True) File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\core\management\base.py", line 475, in check all_issues = checks.run_checks( File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\core\checks\registry.py", line 88, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\core\checks\urls.py", line 14, in check_url_config return check_resolver(resolver) File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\core\checks\urls.py", line 24, in check_resolver return check_method() File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\urls\resolvers.py", line 494, in check for pattern in self.url_patterns: File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\utils\functional.py", line 57, in get res = instance.__dict__[self.name] = self.func(instance) File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\urls\resolvers.py", line 715, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\utils\functional.py", line 57, in get res = instance.__dict__[self.name] = self.func(instance) File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\urls\resolvers.py", line 708, in urlconf_module return import_module(self.urlconf_name) File "C:\Program Files\Python310\lib\importlib\__init__.py", line 126, in import_module return bootstrap.gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in gcdimport File "<frozen importlib._bootstrap>", line 1027, in findand_load File "<frozen importlib._bootstrap>", line 1006, in findand_load_unlocked File "<frozen importlib._bootstrap>", line 688, in loadunlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in callwith_frames_removed File "C:\github\do_it_django_inflearnb_2022\do_it_django_prj\urls.py", line 23, in <module> path('blog/', include('blog.urls')), File "C:\github\do_it_django_inflearnb_2022\venv\lib\site-packages\django\urls\conf.py", line 38, in include urlconf_module = import_module(urlconf_module) File "C:\Program Files\Python310\lib\importlib\__init__.py", line 126, in import_module return bootstrap.gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in gcdimport File "<frozen importlib._bootstrap>", line 1027, in findand_load File "<frozen importlib._bootstrap>", line 1006, in findand_load_unlocked File "<frozen importlib._bootstrap>", line 688, in loadunlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in callwith_frames_removed File "C:\github\do_it_django_inflearnb_2022\blog\urls.py", line 6, in <module> path('tag/<str:slug>/', views.tag_page),AttributeError: module 'blog.views' has no attribute 'tag_page'
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
저는 왜 이렇게 나오는 걸까요?
선생님이랑 코드를 같게 작성 했는데 쓰레드가 시작되고stop이 트루니까 빠져나와서 바로 쓰레드 종료가 나와야 하는데stop호출이 나와버립니다.이건 제가 작성한 코드에요
-
미해결평생 써먹는 데이터 기반 투자법 with 파이썬 퀀트 투자
2-5 리밸런싱 기법 강의자료 오류 질문
안녕하세요2-5 리밸런싱 기법에서 실전데이터 적용할때 getCloseData 함수 활용해서 spy와 ief 데이터 불러오는 부분이 오류가 발생합니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
파이썬 버전 문의
반드시 executable installer 설치를 해야 하는걸까요?최근 3.10.7 버전의 64비트 버전을 다운로드 받아서 강의를 진행중인데 문득 궁금증이 생겨 문의드립니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
선생님처럼 똑같은 코드를 썼는데 사진출력이 안돼요
제가 코드 쓴 부분이에요, 저 위에 img 부분은 선생님 강의 노트에서 그대로 복사해서 붙여넣은 거구요,그런데 출력화면에선 이렇게 사진 출력이 안돼요, 이유를 알 수 있을까요???
-
미해결Slack 클론 코딩[실시간 채팅 with React]
value,setValue 에러
ts가 변수와 함수는 타입을 유추할 수 있는 줄 알았는데 밑 에러가 나는 이유는 타입을 정의해주지 않아서 그런가요,,? 똑같이 any도 써보고 <T>도 써보았는데 해결이 되지 않습니다. 어떻게 해야하나요?
-
미해결블렌더 처음 시작부터 로우폴리 3D 애니메이션 까지
마우스 왼쪽 클릭으로 오브젝트 선택하기
안녕하세요. 강의에서 왼쪽 클릭으로 오브젝트 선택을 할 수 있다고 나오는데요. 저 같은 경우는 왼쪽 클릭하면 아무런 변화도 없습니다. 선택하려면 꼭 shift키를 눌러야 하는데요. 혹시 무엇이 문제일까요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
9장 질문 있습니다
안녕하세요441쪽 routes/user.js if (user) { await user.addFollowing(parseInt(req.params.id, 10)); res.send("success");parseInt(req.params.id, 10)req.params.id가 숫자인데 parseInt를 사용하는 이유가 궁금합니다 :)
-
미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
bulkCreate 사용법 질문 (해결)
https://sequelize.org/docs/v6/other-topics/upgrade/#modelbulkcreate공식문서에서 검색한 내용입니다.이하는 공식문서에서 설명*bulkCreate()이 메서드는 이제 Bluebird.AggregateError 대신 Sequelize.AggregateError를 발생시킵니다. 이제 모든 오류가 오류 키로 노출됩니다.설명이 이렇게 나와있어서 샘플데이터를 넣는다고 생각하기 어려운데 어떻게 찾으신건가요? 꼭 알고싶습니다자문자답입니다https://sequelize.org/docs/v6/core-concepts/model-querying-basics/Creating in bulk처음 튜토리얼에 나와있었습니다.
-
미해결Nuxt.js 시작하기
CORS 오류
콘솔에서 이렇게 나오는 오류는 어떻게 해결해야할까요?
-
미해결팀 개발을 위한 Git, GitHub 입문
질문이있습니다.
그러면 체크아웃은 어떤 기능을하는건가요?master에서 개발을하다가 feat/home을 개발을해서 master에 붙여 넣고 개발을 계속하다가 오류가나서 예전버전으로 바꾸고싶어서 체크아웃을하고 개발을하면 master는 따라오지않고, head가생겨서 쭉가다가 다시master를 더블클릭하면 head가 사라지던데, 그러면 체크아웃이 하는 일은무엇인가요?
-
미해결스프링 핵심 원리 - 기본편
@Scope의 인자
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]빈을 프로토타입으로 지정하려면 @Scope에 문자열 "prototype"를 인자로 넘겨주는데, 왜 문자열을 넘겨주나요? 오타가 날 수도 있고, 컴파일 타임에 해당 오류를 잡아주지 않고 런타임에 에러를 던지는데, 타입이 아닌 문자열로 되어 있는 이유가 궁금합니다.
-
미해결비전공 기획자 및 관리자를 위한 IT 필수 지식
강의 자료 요청
삭제된 글입니다
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
Jest 에러 테스트 관련해서 질문드립니다.
expect({ ...new HttpException('dg', 400) }).toMatchObject({ ...new HttpException('dg', 500), }); expect(new HttpException('dg', 400) }).toMatchObject( new HttpException('dg', 500), ); 위에 테스트는 통과가 되지만 아래코드는 통과가 되지않는데 그이유를 알수있을까요.. 또 service단 unit테스트를 진행할때 예를들어 async getUser({ id }: Pick<Parameter, 'id'>) { const user = await this.userRepository.find({ where: { status: 'ACTIVE', id, }, }); if(!user){ throw new HttpException("존재하지않는 유저입니다.", 400); } return user; }이것에대한 테스트중 유저가 존재하지않을 경우를 테스트하고싶은데 try catch 이용하는것말고는 방법이 없을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트 오류
강의 영상을 쭈욱 똑같이 따라왔는데 테스트를 찾을 수 없다는 오류가 뜹니다. 뭐가 문제일까요?
-
미해결시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
오류 확인 부탁드릴게요
intel cpu 사용중이고 vt-d랑 virtualization쪽 가상화 옵션은 전부 on인 상태인데 virtual box에서 vt-d를 지원 안한다는 메세지가 뜨네요 ㅠㅠ ==> cent1: Booting VM...There was an error while executing VBoxManage, a CLI used by Vagrantfor controlling VirtualBox. The command and stderr is shown below.Command: ["startvm", "b8759987-e51e-488b-bb98-0bc272f83de4", "--type", "headless"]Stderr: VBoxManage: error: VT-x is not available (VERR_VMX_NO_VMX)VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
[SequelizeEagerLoadingError]: Post is not associated to Post! 에러 질문드립니다.
좋아요한 게시글을 마이페이지에서 확인하고 싶어서 기능을 구현했는데 다음과 같이 Post끼리는 관계가 없다고 에러가 발생하더라고요처음에 구현하고나서는 잘 동작했는데 갑자기 재실행하니까 다음과 같은 오류가 발생하더라고요router쪽에서 발생하는 에라같은데 혹시 이유에 대해서 알 수 있을까요? 에러 로그SequelizeEagerLoadingError: Post is not associated to Post! at Function._getIncludedAssociation (C:\Users\Administrator\OneDrive\Desktop\Recipe.io\prepare\back\node_modules\sequelize\lib\model.js:565:13) at Function._validateIncludedElement (C:\Users\Administrator\OneDrive\Desktop\Recipe.io\prepare\back\node_modules\sequelize\lib\model.js:502:53) at C:\Users\Administrator\OneDrive\Desktop\Recipe.io\prepare\back\node_modules\sequelize\lib\model.js:421:37 at Array.map (<anonymous>) at Function._validateIncludedElements (C:\Users\Administrator\OneDrive\Desktop\Recipe.io\prepare\back\node_modules\sequelize\lib\model.js:417:39) at Function.findAll (C:\Users\Administrator\OneDrive\Desktop\Recipe.io\prepare\back\node_modules\sequelize\lib\model.js:1118:12) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async Function.findOne (C:\Users\Administrator\OneDrive\Desktop\Recipe.io\prepare\back\node_modules\sequelize\lib\model.js:1228:12) at async C:\Users\Administrator\OneDrive\Desktop\Recipe.io\prepare\back\routes\post.js:122:18 PATCH /post/15/like 500 7.755 ms - 1344 postcardconst onLikePost = useCallback(() => { dispatch(likePostRequestAction(post.id)); message.success('게시글이 스크랩에 추가되었습니다.', 3); }, []); const unLikePost = useCallback(() => { dispatch(unLikePostRequestAction(post.id)); message.error('게시글이 스크랩에서 제거되었습니다.', 3); }, []);reducercase LIKE_POST_SUCCESS: { const post = draft.mainPosts.find((v) => v.id === action.data.id); post.Likers.push({ id: action.data.UserId }); draft.likePostLoading = false; draft.likePostDone = true; break; } case LIKE_POST_FAILURE: draft.likePostLoading = false; draft.likePostError = action.error; break; case UNLIKE_POST_REQUEST: draft.unLikePostLoading = true; draft.unLikePostDone = false; draft.unLikePostError = null; break; case UNLIKE_POST_SUCCESS: { const post = draft.mainPosts.find((v) => v.id === action.data.PostId); post.Likers = post.Likers.filter((v) => v.id !== action.data.UserId); draft.unLikePostLoading = false; draft.unLikePostDone = true; break; } case UNLIKE_POST_FAILURE: draft.unLikePostLoading = false; draft.unLikePostError = action.error; break; case SCRAP_ADD_POST_TO_ME: draft.me.Liked.unshift(action.data); break; case SCRAP_REMOVE_POST_OF_ME: draft.me.Liked = draft.me.Liked.filter((v) => v.id !== action.data.id); break;sagafunction likePostAPI(data) { return axios.patch(`/post/${data}/like`); } function* likePost(action) { try { const result = yield call(likePostAPI, action.data); yield put({ type: LIKE_POST_SUCCESS, data: result.data, }) yield put({ type: SCRAP_ADD_POST_TO_ME, data: result.data, }) } catch(err) { yield put({ type: LIKE_POST_FAILURE, data: err.response.data }) } } function unLikePostAPI(data) { return axios.delete(`/post/${data}/like`); } function* unLikePost(action) { try { const result = yield call(unLikePostAPI, action.data); yield put({ type: UNLIKE_POST_SUCCESS, data: result.data, }) yield put({ type: SCRAP_REMOVE_POST_OF_ME, data: result.data, }) } catch(err) { yield put({ type: UNLIKE_POST_FAILURE, data: err.response.data }) } }routerrouter.patch('/:postId/like', isLoggedIn, async (req, res, next) => { // likePostAPI / PATCH /post/1(게시글번호)/like try { const post = await Post.findOne({ where: { id: req.params.postId }, include: [{ model: Post, include: [{ model: Image, }, { model: Comment, include: [{ model: User, attributes: ['id', 'nickname'], }], }, { model: User, attributes: ['id', 'nickname'], }, { model: User, as: 'Likers', attributes: ['id'], }] }], }); if (!post) { return res.status(403).send('게시글이 존재하지 않습니다.'); } await post.addLikers(req.user.id); res.status(200).json(post); } catch (error) { console.error(error); next(error); } }); router.delete('/:postId/like', isLoggedIn, async (req, res, next) => { // unLikePostAPI / DELETE /post/1(게시글번호)/like try { const post = await Post.findOne({ where: { id: req.params.postId }, }) if (!post) { return res.status(403).send('게시글이 존재하지 않습니다.'); } await post.removeLikers(req.user.id); res.json({ PostId: post.id, UserId: req.user.id }); } catch (error) { console.error(error); next(error); } });