묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
non_field.errors 결과가 뜨지 않습니다.
강의내용 3:47에서 비밀번호를 다르게 입력하였을시 다른 오류가 출력이 됩니다.react-router-dom 6버전에 simple-jwt를 사용한다는 점을 제외하면 똑같이 따라했는데 이런 오류가 발생하네요.
-
미해결애플 웹사이트 인터랙션 클론!
#scroll-section-3
#scroll-section-3 부분에 패딩을 줄이고 싶은데 그냥 css 패딩값만 줄이면 동작이 이상해져서 혹시 다른것도 건드려야하는지 궁금합니다!
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
컨트롤러에서 enum 파라미터 받을 때 궁금점
data class BookRequest( val name: String, val type: BookType,) 웹에서 폼에 책이름, 타입을 컴퓨터로 선택해서 요청을 보내면컨트롤러에서 BookRequest에 enum 타입인 type에 자동으로 값이 받아지는건가요?별도로 converter를 구현안해줘도 되는것인지 궁금합니다
-
미해결스프링 시큐리티 OAuth2
OAuth2AuthorizationService / OAuth2Authorization 이해 및 활용
10:21 쯤에서 OAuth2Authorization 구조 강의에서 제일 윗 사진과 오른쪽 사진의 필드들이 다른데 이것은 왜 그런것인가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
10분 15초 즘 에서 DateTime 질문
DateTime selectedDay = DateTime( DateTime.now().month, DateTime.now().day, );이 부분에서 DateTime.now().year 는 생각하는데 정상 실행되는 이유는 어떤것인가요?그리고 DateTime selectedDay = DateTime.now();라고 정해주면 안되나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품 수정 5:50
updateItemFrom.html<form th:object="${form}" method="post">th:action 프로퍼티가 없습니다.수정버튼을 누르셨잔아요.items/1/edit 로요청이 가는데 rest url 을 명시해준적도 없잔아요.items/1/edit 가는 요청이라는 것을어떻게 인식하는거죠?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
게이트웨이 오류
안녕하세요 유레카에 랜덤 포트로 first-service 2개 등록을 했습니다. - Postman 이용해서 api를 날려보면 Connection refused가 발생하는데 어디를 고쳐야할까요?게이트웨이의 application.yml은 위와 같습니다.eureka yml은 위와 같습니다.First-service.yml입니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Column의 가로(crossAxis) 크기 관련
영상에서 의문이 드는 부분이 있어서 문의드립니다.제가 제대로 공부하지 않고 질문드리는 것일 수도 있어서 걱정되네요..Container( color: Colors.black, width: MediaQuery.of(context).size.width, child: Column( ... ), )에서 Container의 width를 변경한 것인데 왜 Column의 가로크기가 변한 건가요?..저는 width를 늘리면,화면만 검정색으로 칠해지고 Column 영역을 같을 것이라 생각했습니다.Column의 crossAxis는 부모 위젯에 종속적이여서 그런건가요?하지만 만약 그렇다면 자식의 크기가 부모 위젯에 종속적이라면 Scaffold 영역 크기는 화면 전체이기 때문에Scaffold( backgroundColor: Colors.black, body: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( color: Colors.yellow, height: 50, width: 50, ) ], ), );이런 코드의 Column의 가로 길이는 화면 전체의 가로 길이여야 하는게 아닌가요..
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Javax Jakarta 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]jpa를 import하면 import javax.persistence.* 이 아니라 import jakarta.persistence.*로 되어 있는데 이거는 상관 없는 건가요??
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
강사님 질문 네개있어요!!
import axios from 'axios'; import Link from 'next/link'; import { useRouter } from 'next/router'; import React, { FormEvent, useState } from 'react'; import InputGroup from '../components/InputGrout'; // 1. 타입 명시안해줘도 괜찮은걸까요? // InputGrout.tsx에는 const InputGroup: React.FC<InputGroupProps> .. 이런식으로 명시해주셨는데 // 여기에는 타입 들어갈 만한게 없어서 작성을안해주신걸까요? // 있는게 불편하지않다 싶으면 const Register:React.FC = ()=> {} 이정도로만 해줘도 괜찮을까요? const Register = () => { // email,username,password의 useState도 타입명시를 해줘도되고 안해줘도될까요? const [email, setEmail] = useState(''); const [userName, setUserName] = useState(''); const [password, setPassword] = useState(''); const [errors, setErrors] = useState<any>({}); // 3. const 대신 let을 사용해주신 이유가 궁금합니다! let router = useRouter(); // 4. 코드가 몇줄 안되서 handleSubmit함수에서 비동기통신을해주고 사용해주시는데 이부분을 그냥 모듈(?)처럼 따로 빼서 사용해도될까요? // 강사님은 어떤 방식을 추천하시는지 궁금합니다. const handleSubmit = async (e: FormEvent) => { e.preventDefault(); try { // 4번질문의 코드부분 const res = await axios.post('/auth/register', { email, userName, password, }); console.log('res', res); router.push('/login'); } catch (error: any) { console.log('error', error); setErrors(error.response.data || {}); } }; return ( <div className='bg-white'> <div className='flex flex-col items-center justify-center h-screen p-6'> <div className='w-10/12 mx-auto md:w-96'> <h1 className='mb-2 text-lg font-medium'>회원가입</h1> <form onSubmit={handleSubmit}> <InputGroup placeholder='Email' value={email} setValue={setEmail} error={errors.email} /> <InputGroup placeholder='Username' value={userName} setValue={setUserName} error={errors.email} /> <InputGroup placeholder='Password' value={password} setValue={setPassword} error={errors.email} /> <button className='w-full py-2 mb-1 text-xs font-bold text-white uppercase bg-gray-400 border-gray-400 rounded' > 회원 가입 </button> </form> <small> 이미 가입하셨나요? <Link href='/login' legacyBehavior> <a className='ml-1 text-blue-500 uppercase'>로그인</a> </Link> </small> </div> </div> </div> ); }; export default Register; 강사님 질문이 네개있는데 코드랑 같이 질문드리고싶어서 주석으로 질문 드렸습니다!타입스크립트 기초지식이 없어서 좀 버벅이네요!ㅠㅠ항상 친절하게 설명해주셔서 정말 감사합니다..
-
미해결다양한 사례로 익히는 SQL 데이터 분석
pk 보는 법
안녕하세요, 강의 완강하고 복습하고 있는 중에 궁금한 점이 있어 질문 남깁니다!ga_sess 테이블에 sess_id가 pk라고 강사님에 설명을 듣고 알았습니다.모든 테이블을 강사님 설명을 듣고 pk 가 무엇인지 알게 되었는데,제가 새로운 테이블을 봤을 때 어떤 컬럼이 pk인지 볼 수 있는 방법이 궁금합니다!벤다이어그램만 보고 pk가 다중컬럼인지 단일컬럼인지 이해할 수 없어 질문남깁니다!
-
미해결애플 웹사이트 인터랙션 클론!
#scroll-section-3 부분 질문입니다!
#scroll-section-3 부분이 나오기 전에 강의예제는sticky 에서 sticky로 넘어가잖아요근데 제가 변형시켜서 normal로 바꾸고 그안에비디오를 넣어주었습니다!근데 #scroll-section-3 부분의 패딩값때문인지너무 뒤늦게 #scroll-section-3신이 등장을 하여 여백이 너무 커서normal부분에 나오는 비디오 부분을 scrollRatio로 지정해서픽스해주고 opacity로 자연스럽게 없어지고 #scroll-section-3이 자연스럽게 나올수 있게 하였는데모바일화면에서 기기별로 뚝뚝 끊겨서 픽스가 되어버려서 scrollRatio 를 만져줘야하는지 어디부분을 손데어야 하는지 도무지 모르겠어서 질문 남깁니다!제 설명이 이상해서 그부분 소스를 올려보겠습니다!case 4: // 비디오 고정되는 부분 if (scrollRatio <= 0.37) { $('.tetest').removeClass("fix-test"); } else { $('.tetest').addClass("fix-test"); } if (scrollRatio <= 0.06) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); } if (scrollRatio <= 0.99) { objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); } if(scrollRatio >= 0.65) { console.log('닿기전'); const objs = sceneInfo[5].objs; const values = sceneInfo[5].values; const widthRatio = window.innerWidth / objs.canvas.width; const heightRatio = window.innerHeight / objs.canvas.height; let canvasScaleRatio; if (widthRatio <= heightRatio) { //캔버스보다 브라우저 창이 홀쭉한 경우 canvasScaleRatio = heightRatio; } else { //캔버스보다 브라우저 창이 납작한 경우 canvasScaleRatio = widthRatio; } objs.canvas.style.transform = `scale(${canvasScaleRatio})`; objs.context.fillStyle = 'white'; objs.context.drawImage(objs.images[0], -370, -170); //캔버스 사이즈에 맞춰 가정한 innerWidth와 InnerHeight const recalculatedInnerWidth = document.body.offsetWidth / canvasScaleRatio; const recalculatedInnerHeight = window.innerHeight / canvasScaleRatio; const whiteRectWidth = recalculatedInnerWidth * 0.15; values.rect1X[0] = (objs.canvas.width - recalculatedInnerWidth) / 2; values.rect1X[1] = values.rect1X[0] - whiteRectWidth; values.rect2X[0] = values.rect1X[0] + recalculatedInnerWidth - whiteRectWidth; values.rect2X[1] = values.rect2X[0] + whiteRectWidth; //좌우 흰색 박스 그리기 // objs.context.fillRect(values.rect1X[0], 0, parseInt(whiteRectWidth), objs.canvas.height); // objs.context.fillRect(values.rect2X[0], 0, parseInt(whiteRectWidth), objs.canvas.height); // 좌우 흰색 박스 그리기 objs.context.fillRect( parseInt(values.rect1X[0]), 0, parseInt(whiteRectWidth), objs.canvas.height ); objs.context.fillRect( parseInt(values.rect2X[0]), 0, parseInt(whiteRectWidth), objs.canvas.height ); } break; -------------------------------------------case 5: // #scroll-section3 console.log('닿은후'); // 가로/세로 모두 꽉 차게 하기 위해 여기서 세팅(계산 필요) let step = 0; const widthRatio = window.innerWidth / objs.canvas.width; const heightRatio = window.innerHeight / objs.canvas.height; const gradient = objs.context.createLinearGradient(0, 0, 0, 1000); let canvasScaleRatio; if (widthRatio <= heightRatio) { //캔버스보다 브라우저 창이 홀쭉한 경우 canvasScaleRatio = heightRatio; } else { //캔버스보다 브라우저 창이 납작한 경우 canvasScaleRatio = widthRatio; } objs.canvas.style.transform = `scale(${canvasScaleRatio})`; objs.context.fillStyle = 'white'; objs.context.drawImage(objs.images[0], -370, -170); //캔버스 사이즈에 맞춰 가정한 innerWidth와 InnerHeight const recalculatedInnerWidth = document.body.offsetWidth / canvasScaleRatio; const recalculatedInnerHeight = window.innerHeight / canvasScaleRatio; if (!values.rectStartY){ // values.rectStartY = objs.canvas.getBoundingClientRect().top; values.rectStartY = objs.canvas.offsetTop + (objs.canvas.height - objs.canvas.height * canvasScaleRatio) / 2; console.log(values.rectStartY); values.rect1X[2].start = (window.innerHeight / 2) / scrollHeight; values.rect2X[2].start = (window.innerHeight / 2) / scrollHeight; values.rect1X[2].end = values.rectStartY / scrollHeight; values.rect2X[2].end = values.rectStartY / scrollHeight; } //좌우 박스 크기 const whiteRectWidth = recalculatedInnerWidth * 0.15; values.rect1X[0] = (objs.canvas.width - recalculatedInnerWidth) / 2; values.rect1X[1] = values.rect1X[0] - whiteRectWidth; values.rect2X[0] = values.rect1X[0] + recalculatedInnerWidth - whiteRectWidth; values.rect2X[1] = values.rect2X[0] + whiteRectWidth; //좌우 흰색 박스 그리기 // objs.context.fillRect(values.rect1X[0], 0, parseInt(whiteRectWidth), objs.canvas.height); // objs.context.fillRect(values.rect2X[0], 0, parseInt(whiteRectWidth), objs.canvas.height); // 좌우 흰색 박스 그리기 objs.context.fillRect( parseInt(calcValues(values.rect1X, currentYOffset)), 0, parseInt(whiteRectWidth), objs.canvas.height ); objs.context.fillRect( parseInt(calcValues(values.rect2X, currentYOffset)), 0, parseInt(whiteRectWidth), objs.canvas.height ); // Add three color stops gradient.addColorStop(0, "rgba(13, 12, 17, 0)"); gradient.addColorStop(0.3, "rgba(13, 12, 17, 0)"); gradient.addColorStop(0.5, "rgba(13, 12, 17, 0.1)"); gradient.addColorStop(0.6, "rgba(13, 12, 17, 0.3)"); gradient.addColorStop(0.8, "rgba(13, 12, 17, 0.7)"); gradient.addColorStop(1, "rgba(13, 12, 17, 1)"); if (scrollRatio < values.rect1X[2].end){ step = 1; // console.log('캔버스 닿기 전'); objs.canvas.classList.remove('stickyy'); } else { step = 2; // console.log('캔버스 닿을때'); // imageBlendY: [ 0, 0, { start: 0, end: 0 }] values.blendHeight[0] = 0; values.blendHeight[1] = objs.canvas.height; values.blendHeight[2].start = values.rect1X[2].end; values.blendHeight[2].end = values.blendHeight[2].start + 0.2; const blendHeight = calcValues(values.blendHeight, currentYOffset); // Set the fill style and draw a rectangle objs.context.fillStyle = gradient; objs.context.fillRect(0, objs.canvas.height - blendHeight, objs.canvas.width, blendHeight, 0, objs.canvas.height - blendHeight, objs.canvas.width, blendHeight); objs.canvas.classList.add('stickyy'); objs.canvas.style.top =`${-(objs.canvas.height - objs.canvas.height * canvasScaleRatio) / 2}px`; if (scrollRatio > values.blendHeight[2].end){ objs.canvas.classList.remove('stickyy'); objs.canvas.style.marginTop = `${scrollHeight * 0.2}px`; } else { objs.canvas.style.marginTop = 0; } // index2 추가 코드 values.messageA_opacity_in[2].start = values.rect1X[2].end; values.messageA_opacity_in[2].end = values.blendHeight[2].start + 0.1; values.messageA_opacity_out[2].start = values.messageA_opacity_in[2].end + 0.1; values.messageA_opacity_out[2].end = values.messageA_opacity_out[2].start + 0.1; if (scrollRatio < values.messageA_opacity_in[2].end + 0.05) { objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); } else { objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); } } // index2 추가 코드 if (scrollRatio <= values.messageA_opacity_in[2].start) { objs.messageA.style.opacity = values.messageA_opacity_in[0]; } if (scrollRatio >= values.messageA_opacity_out[2].end) { objs.messageA.style.opacity = values.messageA_opacity_out[1]; } // section-7 그라데이션 클래스 주기 if (scrollRatio <= 0.93) { $('.linear1').removeClass("linear-1"); $('.linear1').removeClass("linear1-1"); $('.tetest').removeClass("fix-test"); } else { $('.linear1').addClass("linear-1"); $('.linear1').addClass("linear1-1"); } break;
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
y값 다를시 충돌이 안되어 재질문..
앞전에 질문은 너무 장황하게 해서 답변을 못해주신거같아서 다시 질문드려요 ㅠ각 오브젝트의 y축이 다를경우충돌이 일어나지 않는데요이럴떈 영상처럼 카메라 세팅가서 투영모드를 Orthographic로 바꾸고Ortho Width의 값을 수정하면 된다고 하는데저는 이상하게 수정을 해도 충돌이 안되더라구요찾아보면서 다른 강의를 봐도영상처럼 하면 충돌이 되던데 왜 저만 안되는 걸까요?
-
미해결더 자바, Java 8
Map의 가장 큰 특징이 key는 null이 아니다
안녕하세요Optional 소개 강의 13분쯤에 "Map의 가장 큰 특징이 key는 null이 아닙니다"라고 하셨는데 HashMap은 key값으로 null이 가능한 것으로 알고 있는데, (Hashtable은 key로 null이 불가능하고요) 혹시 제가 뭔가 잘못 알고 있는걸까요?
-
미해결실전 인공지능으로 이어지는 딥러닝 개념 잡기
알아두기 2.3.8 이진 교차 엔트로피 함수 식 괄호 여부 질문
안녕하세요. 알아두기 2.3.8 이진 교차 엔트로피 함수의 손실을 나타내는 식에서 마지막 괄호가 짝이 없는데 뒤에 나오는 차랑 보유 유무 문제 예시에서 유추해 보았을 때 식에서 시그마 뒤에 여는 괄호가 누락 된 건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8주차 개념강의 - 3653번 질문입니다.
http://boj.kr/4bf036e939474a3a89f75c5f0163382c같은 로직의 코드여도 벡터를 넘겨서 트리를 만들면 시간 초과가 발생합니다.벡터를 선언하고 초기화하는 게 시간복잡도에 영향을 많이 미치나요?
-
해결됨실전! 스프링 데이터 JPA
changeTeam ... ArrayList [9:11]
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]생각해봤는데 예제라서 상관은없지만 Team에 @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>();이 부분에서 하나의 팀에 똑같은 회원이 중복안되도록 Set<Member>로 하는것도 괜찮을까요?아니면 제가 모르는 뭔가 때문에 상관 없을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
BasicItemController 질문입니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]basic/items.html 을 동적으로 수정하는 과정에서 저장된 아이템 목록이 뜨지 않습니다.이게 컨트롤러 부분이고이게 html입니다.컨트롤러 부분의 PostMapping 부분이 동작해야 아이템이 추가될거라 생각해서 포스트맨으로 post 요청을 보내보니 아이템 목록에 itemA와 itemB가 뜨더군요하지만 영한님의 강의 영상에선 바로 뜨던데 post 요청이 어떻게 들어간건가요? 제가 빼먹은 부분이 있는건지 궁금합니다
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
PRG 패턴에서 리다이렉트 하는 이유?
이유가 무엇인가요 ?post 후에 redirect가 아니라 서버에서 응답으로 201 상태코드와 함께 get 메소드로를 이용해서 PG패턴으로 만들 수는 없는건가요?
-
미해결입문자를 위한, HTML&CSS 웹 개발 입문
최상위 태그 html 태그
검색해도 여러 태그들만 나오는데.. 혹시 스타일 태그 맨 위에 선언한 html 태그는 무슨 태그인가요?이 html 태그에 스타일을 적용하면 html 파일에 있는 전체가 바뀌는 형식인건가요?<html>태그가 궁금합니다!!