묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
미들웨어 커스텀해서 만들때 질문 드립니다!
안녕하세요 제로초님 강의 잘 듣고 있습니다!다름이 아니라 이 강좌를 듣고 플젝에서 Middleware을 좀 변환해서 사용해보고 있는데요.컨트롤러에서 @Param()으로 넘기는 값을 Middleware을 거칠때, req.params[''] 만 안되던데 혹시 이유가 있나요? 그리고 이 문제를 사용하셨던 request.get()으로 해결이 가능한가요?예를 들어 @Query()로 넘기면 쿼리스트링 값을 req.query[]로 하면 가져와지고 @Headers()로 넘겨도 req.headers로 가져와지는데 params()만 안돼서 질문드립니다!
-
미해결[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
인코딩 문제
첨부해주신 코드파일을 다운받아 압축풀고pycharm 으로 .py파일을 열었는데, 인코딩이 깨져서 나옵니다!utf-8 , euc-kr 로 해봤는데 똑같네요 ㅠㅠ 해결방법이 없을까요?
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
실습 과정에서 ORACLE 궁금한점이 있습니다.
[실습6-3 ]ORACLE ERROR-BASED 공격실습과정에서 ORACLE은 게시글을 선택해서 idx 파라미터 값에서 인젝션을 하셨는데요.게시글 검색란에서 인젝션을 수행할 때의 페이로드는 어떻게 해야할까요??idx 파라미터 값에는 CTXSYS.DRITHSX.SN(1,(select+global_name+from+global_name)) 으로 해서 오류에 버전이 잘 나왔는데 검색 기능에는 도저히 페이로드가 생각나지 않아서 쓰게 되었습니다.
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
공부 방향성과 진로
1현재 25살에 공부한지는 이제 혼자서 두달 정도 된것 같습니다. 자바스크립트 보면서 노드 js도 하는데 백쪽으로 방향을 잡고 공부를 하려구하는데 어떤분은 노드하구 리엑트로 넘어가서 next.js 쪽으로 공부 해보라구 하구 아니면 타입배우고 nest.js로 넘어가라고 하시던데 백쪽으간다 하면 네스트로 넘어가는게 맞나요? 그리구 네스트의 대한 전망이나 그런것도 궁금합니다 [제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA 질문입니다.
안녕하세요 김영한님! 다름이 아니라 김영한님 JPA책을 읽으면서 궁금한게 생겨서요.db read commtied + JPA 1차 캐시를 사용하면 repeatable read가 가능한데 JPA 락은 더 높은 격리 수준이 필요하면 건다고 하셨는데 serializable 격리 수준이 필요하면 해결 할 수 있는 락이 없는데 JPA 락을 왜 쓰는지 모르겠습니다
-
미해결비전공 기획자 및 관리자를 위한 IT 필수 지식
강의 자료 요청드립니다.
안녕하세요?강의 자료 요청드립니다.oof1213@kakao.com감사합니다~
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
개발자 도구 ⇒ 크롬 “개발자 도구” 샘처럼 직관적으로 어떻게 보이게 하나요?
안녕하세요 🙋♂️개발자도구 선생님처럼 나오게 어떻게 하는 걸까요?지금 리액트 "props"편 2:56 듣고 있습니다.왼쪽은 선생님 개발자도구이고 오른쪽은 제 개발자 도구입니다.(참고 이미지 2개 첨부합니다.)
-
해결됨실전! 스프링 데이터 JPA
페이징 했을때 발생하는 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세여 영한님 강의 너무 잘 보고있습니다.다름이 아니라 JPA 관련 강의를 모두 듣고 사이드 프로젝트에JPA를 적용하던 중에 문제가 발생하여 질문드립니다.문제 상황현재 Issue 라는 엔티티가 member와 milestone이라는 엔티티와 @ManyToOne 관계를 맺고 있는 와중에 Issue의 상태에 따라 Issue를 조회 하는 로직을 만들고 있었습니다.문제 코드@Query(value = "select i from Issue i left join fetch i.member m left join fetch i.milestone mi where i.status = :status") Page<Issue> findIssues(Pageable pageable, @Param("status") IssueStatus status);위에 코드가 상태에 따라 Issue를 조회 하는 코드인데, 우선 N+1 문제를 해결하기 위해 left join fetch 를 사용하고 Issue의 상태에 따른 조회를 위해 where 문을 사용하였습니다. 작성한 코드가 크게 문제가 있다 생각하지 않았는데 막상 실행을 해보니 query specified join fetching, but the owner of the fetched association was not present in the select list 라는 문구의 예외가 발생하였습니다.다행히 구글에 검색하여https://stackoverflow.com/questions/12459779/query-specified-join-fetching-but-the-owner-of-the-fetched-association-was-not해당 글을 보고 따로 count query를 작성하여 해결을 하긴 했는데, 왜 여기서 따로 count query를 작성해야 하는지 의문이 들었습니다. 페이징을 하면 count query를 알아서 날려주는 것으로 생각했는데 여기서는 왜 그렇게 동작하지 않는걸까요??해결 코드@Query(value = "select i from Issue i left join fetch i.member m left join fetch i.milestone mi where i.status = :status", countQuery = "select count(i) from Issue i left join i.member left join i.milestone where i.status = :status") Page<Issue> findIssues(Pageable pageable, @Param("status") IssueStatus status);
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
em.find()와 영속성 컨텍스트 관련 질문
안녕하세요!em.find()와 영속성 컨텍스트 관련해서 학습테스트를 작성하던 도중 의문이 생겨 질문을 남깁니다.em.find() 작업은 1차 캐시에 데이터가 존재한다면 영속성컨텍스트의 데이터를 반환하고, 1차 캐시에 데이터가 존재하지 않을 경우 DB에 select 쿼리문을 보내는 것으로 알고 있습니다. 위 선행지식을 바탕으로, 아래의 학습테스트 경우처럼 1차 캐시가 비어있고 DB에 데이터가 있는 경우에서 delete 메서드를 호출하고 EntityManager를 flush()하지 않은 상태로 테스트하여 delete 쿼리문을 DB에 보내지 않고 쓰기지연 저장소에 남겨둔 상태를 테스트해보도록 했습니다.(여기서 delete는 Spring Data JPA의 delete문입니다! 이 delete 메서드에선 해당 JpaRepository의 구현체를 타겟 프록시로 하는 SimpleJpaRepository에서 em.find() 작업 후 em.remove() 작업을 해주는 것으로 알고 있습니다.)학습 테스트 @Test @DisplayName("1차 캐시가 비어있고 쓰기지연 저장소에 delete 쿼리가 있는 상태에서 em.find()를 할 경우 결과를 확인한다") void test7() { // 영속성 컨텍스트, DB에 모두 member 저장 (IDENTITY 전략) final Member member = new Member("kth990303", "kth990303@naepyeon.com", Platform.KAKAO, "1"); final Long memberId = memberRepository.save(member) .getId(); // 영속성 컨텍스트는 비워줌 em.flush(); em.clear(); System.out.println("==========================="); // delete 쿼리는 쓰기지연저장소에 존재하고 아직 sql로 찌르지는 않음 memberRepository.delete(member); System.out.println("============================================="); // 1차캐시에 Member는 존재하지 않으므로 select 쿼리가 이 때 나갈 줄 알았으나 안나감. em.find(Member.class, memberId); em.flush(); em.clear(); }저는 위 테스트에 대한 결과 예측을 아래와 같이 했습니다.insert문을 DB에 날린다이후 em.clear()로 영속성 컨텍스트를 비워주어 1차 캐시에는 데이터 존재 X======delete 메서드 호출한다. 1차 캐시에 데이터가 존재하지 않아 select 쿼리문 후 delete 쿼리문을 날려야 함. (SimpleJpaRepository) 이 쿼리문들은 쓰기지연 저장소에 저장돼서 아직 날라가지 않음.=======em.find()를 호출하고, 1차 캐시에 데이터가 존재하지 않아 select 쿼리문이 쓰기지연저장소에 쌓임.em.flush()를 해주어 쓰기지연저장소에 있던 select, delete, select가 나갈 것이라 예측.결과적으로 insert -> ==== -> ===== -> select, delete, select 가 나갈 것이라 생각했습니다.하지만 실제 쿼리는 아래와 같았습니다.실제로는 위와 같이 insert -> ==== -> select -> ===== -> delete 만 나가게 됐습니다.이에 대한 이유가 궁금합니다!감사합니다. 참고1. SimpleJpaRepository의 delete 메서드@Override @Transactional @SuppressWarnings("unchecked") public void delete(T entity) { Assert.notNull(entity, "Entity must not be null!"); if (entityInformation.isNew(entity)) { return; } Class<?> type = ProxyUtils.getUserClass(entity); T existing = (T) em.find(type, entityInformation.getId(entity)); // if the entity to be deleted doesn't exist, delete is a NOOP if (existing == null) { return; } em.remove(em.contains(entity) ? entity : em.merge(entity)); }참고2. 해당 질문에 대한 상황을 정리한 노션https://clean-nutria-44b.notion.site/JPA-em-find-1-34fa1ba3df914e24ba9dd9a143f28c8c
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
docker compose timezon 변경방법..?
안녕하세요 강의 너무 잘보고 있습니다! 감사합니다.디비의 타임존을 변경하고 싶은데 어떤 방법이 있을까여..?docker-compose.yml에서 environment TZ 로 설정하고 "data" 폴더 지우고 다시 docker compose up 했는데 잘 안되네요..; 뭔가 방식이 잘못된걸까요..?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
OrderService.order에서 RuntimeException이 발생했을 때, INSERT 쿼리가 실행되지 않은 이유
강의 시점으로 22:00쯤에 INSERT 쿼리가 실행되지 않은 이유를 JPA가 가진 자체 기능이라고 말씀해주셨는데요. 그 기능이 어떤 것인지 구체적으로 알고 싶어요. JPA 기본편 강의에서 언급된 내용이었나요? 아니면 JPA 책에 있는 내용인가요?@Transactional 어노테이션이 붙은 OrderService.order 메소드에서 예외가 발생하면, 롤백한다고 어렴풋이 이해하기엔 뭔가 아쉬워서 질문합니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
타입스크립트 질문
첫번째 사진의 빨간색 타입스크립트 코드와 두번째 사진의 <number[]>([])가 무슨 뜻인지 알려주실 수 있을까요,,,두번째는 숫자객체 타입라는 것 같은데 ([])는 왜붙어있는걸까요,, 그리고 타입 찾는게 너무 헷갈리는데 어떻게 공부해야할까요? 타입을 안적으면 자꾸 에러가 나서요 ㅜ
-
미해결Slack 클론 코딩[실시간 채팅 with React]
axios.post에서 로컬호스트 주소를 지우면 404 에러가 나옵니다
제로초님 처럼 axios에서 http://localhost:3095 를 지우니 404에러가 뜹니다.그리고 제로초님이 프록시 부분에 주석처리를 해서 보여주시는 부분은 따라하지 않았습니다 콘솔에서 나오는 에러입니다백엔드 터미널에서는 에러가 뜨지 않는거 같습니다코드 입니다import React, { useState, useCallback } from "react"; import axios from "axios"; import { Success, Form, Error, Label, Input, LinkContainer, Button, Header } from "./SignpStyles"; import useInput from "@hooks/useInput"; const SignUp = () => { const [ email, onChangeEmail, setEmail ] = useInput(""); const [ nickname, onChangeNickname, setNickname ] = useInput(""); const [ password, setPasswrod ] = useState(""); const [ passwordCheck, setPasswordCheck ] = useState(""); const [ mismatchError, setMismatchError ] = useState(false); const onSubmit = useCallback( (e) => { e.preventDefault(); axios .post("/api/users", { email, nickname, password }) .then((response) => { console.log(response); }) .catch((err) => { console.log(err.response); }); }, [ email, nickname, password, passwordCheck ] ); const onChangePassword = useCallback( (e) => { setPasswrod(e.target.value); setMismatchError(e.target.value !== passwordCheck); }, [ passwordCheck ] ); const onChangePasswordCheck = useCallback( (e) => { setPasswordCheck(e.target.value); setMismatchError(e.target.value !== password); }, [ password ] ); return ( <div id="container"> <Header>slack</Header> <Form onSubmit={onSubmit}> <Label id="email-label"> <span>이메일 주소</span> <div> <Input type="email" name="email" id="email" value={email} onChange={onChangeEmail} /> </div> </Label> <Label id="nickname-label"> <span>닉네임</span> <div> <Input type="text" name="nickname" id="nickname" value={nickname} onChange={onChangeNickname} /> </div> </Label> <Label id="password-label"> <span>비밀번호</span> <div> <Input type="password" name="password" id="password" value={password} onChange={onChangePassword} /> </div> </Label> <Label id="password-check-label"> <span>비밀번호 확인</span> <div> <Input type="password" name="password-check" id="password-check" value={passwordCheck} onChange={onChangePasswordCheck} /> </div> {mismatchError && <Error>비밀번호가 일치하지 않습니다</Error>} {!nickname && <Error>닉네임이 비어있습니다</Error>} {!email && <Error>이메일이 비어있습니다</Error>} </Label> <Button type="submit">회원가입</Button> </Form> </div> ); }; export default SignUp; 혼자서 해결해 보고 싶었는데 어디서 문제가 생기는 건지 모르겠어서 이렇게 질문을 남깁니다
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
강의 내용 추가 문의 드립니다
선생님 혹시 다음 두가지에 대해서 수업으로 다뤄주실 수 있으신가요? 면접 답변용 수준으로요. 1. 네트워크 장애발생 시 트러블 슈팅 방법 2. 데이터 전송이 어떤 식으로 진행되는가?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jar 종료
터미널에서 build 하고 난 뒤입니다.. 종료하고싶은데 이상태에서 하는건 아닌거같고..어떻게 나가야하나요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
npm run test:e2e
수강생분들의 질문을 기다립니다! - 에러에 해당하는 질문은 "에러가 발생한 상황에 대한 충분한 설명", "에러 메세지", "에러가 난 코드 스크린샷"을 함께 첨부해주세요. - 언어에 해당하는 질문은 구글링 및 서치 후에 구체적으로 질문해주시면 좋습니다. - 간단한 진로 및 방향성에 대한 질문은 메일로 보내주세요.- 패키지 버전 관리은 실무 환경과 트랜드에 맞추어 강의를 업데이트 하고 있습니다. 강의를 그대로 따라갔는데 에러가 발생한다면 패키지 버전을 강의에서 사용하는 버전과 동일하게 맞춰주세요!- 강의 노트, QA 목록, 공지 사항을 먼저 확인해주세요.- 논리적이고 구체적인 질문은 학습 효과를 올립니다 :) 강의를 보시다가 혹시나 npm run test:e2e 를 돌려봤는데 npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! amamov.com@1.8.0 test:e2e: jest --config ./test/jest-e2e.jsonnpm ERR! Exit status 1npm ERR! npm ERR! Failed at the amamov.com@1.8.0 test:e2e script.npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:npm ERR! /Users/anhyeongjun/.npm/_logs/2022-10-13T13_02_17_408Z-debug.log이런 error를 맞이하신다면 { "moduleFileExtensions": ["js", "json", "ts"], "rootDir": ".", "testEnvironment": "node", "testRegex": ".e2e-spec.ts$", "transform": { "^.+\\.(t|j)s$": "ts-jest" }, "moduleNameMapper": { "^src/(.*)$": "<rootDir>/../src/$1" } } moduleNameMapper이부분이 들어가있는지 확인하신 후 없으면 넣어주면 test가 성공적으로 진행될 수 있습니다. 다만 윤상석 선생님 추가해서 test를 돌려보면 Jest did not exit one second after the test run has completed.This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with --detectOpenHandles to troubleshoot this issue. 이런 오류가 나는데 이유가 무엇일까요?
-
미해결[입문] Qt 6 프로그래밍 1편
'"ui_widget.h"file not found' 오류
“섹션 2. Qt 프로그래밍의 시작/Designer를 사용해 GUI 프로그램 구현”에서설명하신 방법을 따라했는데도 #include "ui_widget.h"에 오류발생("ui_widget.h" file not found error) 하네요....어찌해야하나요???
-
미해결iOS SwiftUI AR 증강현실
3D 모델 셋팅 강좌 질문있습니다!
강사님과 똑같이 코드를 적었는데 이런 에러가 떴습니다!혹시 원인을 알수있을까요??파일은 메일로 보내드렸습니다!
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
url prameter당 요청제한
nestjs - throttler를 이용해 요청제한을 구현 중입니다.답변 해주신 것 처럼 ip를 제대로 확인 후 실행하니 ip 구분이 되는 것은 확인 했습니다 감사합나다.요청제한은 1분에 1회입니다.문제는 url 주소는 refresh/{summonername} 으로 되어있고 사용자 1이 해당 주소 a 라는 파라미터 값으로 요청을 보냈고 다시 b라는 파라미터 값으로 요청을 보내면 이미 1회를 보냈기에 429 에러가 뜹니다.구현해야할 기능은 파라미터값을 구분해서 파라미터값이 a,b,c ... 으로 구분을 해서 a에 요청 1번 b에 요청 1번 c에 요청 1번 이런식으로 구현을 하려 하는데 throttler로 api에서 파라미터값을 구분해서 해당 사용자가 어떤 파라미터로 요청을 했는지 구별이 가능 한가요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
if (answer === 'YES') return; 으로 해도 됩니당
.... function dfs(lv, sum) { if (answer === 'YES') return; // if (lv === n) { ...flag 선언 필요없이 저렇게 해주면 flag 선언한것과 동일하게 동작합니다. 디버깅 해서 콜스택 확인 해봤습니당