묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
이미지 업로드 error
안녕하세요 8강 수강 중입니다. 이미지 업로드 시 다음 두가지 error가 발생합니다. 1)GET http://localhost:3000/api/users/auth 504 2)Uncaught(in promise) Error: Request failed with status ,createError.js:16 code 504 어느 부분을 수정해야하는 지 알려 주시면 감사하겠습니다. Ben
-
미해결웹 게임을 만들며 배우는 React에 TypeScript 적용하기
npx webpack 에러 관련
npx webpack시 위와 같은 에러가 나오게 됩니다. package.json파일 입니다. 혹시 제가 버젼이 안맞아서 나는 에러일까요?
-
미해결스프링 핵심 원리 - 기본편
DiscountPolicy.discount 메소드
안녕하세요 영한님! public int discount(Member member, int price) { if (member.getGrade() == Grade.VIP) { return discountFixAmount; } else { return 0; }} 에서 price가 쓰이지 않고 있는데 추후 강의에 쓰이는 걸까요?
-
해결됨홍정모의 따라하며 배우는 C언어
부동소수점
부동소수점 32bit 중에서 exponent 를 표현하는 8bit를 signed 와 unsigned 로 모두 표현 가능하다고 하셨는데요. signed 일 때 -127~127이 되고 unsigned 일 때 -127 ~ 128이 되는데 맞나요? 11111111 = 255 255-127 = 128 그럼 signed일 때와 unsigned일 때 범위가 다르네요??
-
해결됨코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
슬랙초대 부탁드립니다.
dlrudtn108@gmail.com 입니다
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 선생님 `for`문을 사용하지 않고 풀어봤습니다.
항상 질 좋은 강의 감사드립니다. 다름이 아니라 이런 코드처럼 `for`문을 사용하지 않고 `cnt`를 누적시키면서 조건을 거는 방법도 괜찮은지 여쭤보고 싶습니다. let n = 8; let k = 3; console.log(solution(n, k)); function solution(n, k) { let princes = Array.from({ length: n }, (value, idx) => idx + 1); let cnt = 0; while (princes.length >= 2) { if (cnt === k - 1) princes.splice(0, 1), (cnt = 0); else princes.push(princes.shift()), cnt++; } return +princes; }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
BeanValidation 에서 에러메세지 응답해주고자 할때
BeanValidation 에서 에러메세지 출력해줄 때, 아래와 같이 검증 대상 객체 뒤에 BindingResult를 추가해 주고 bindingResult로부터 새로 에러 메세지를 작성한 뒤, 응답에 넣어 주면 될까요? ----- public ResponseEntity<SignUpResponseDTO> signUp( @Validated @ResponseBody SignUpRequestDTO requestDTO, BindingResult bindingResult ....... ) if(bindingResult.hasError()){ // new SignUpResponseDTO 생성 후 // 에러메세지를 위에 담아 응답 } //정상로직 정상로직 응답 = new SignUpResponseDTO(); return 정상로직 응답 ---- 그렇다면 정상로직일 경우와, 에러의 경우 응답 DTO가 같은데 정상 로직의 경우 message에 정상응답 메세지를 추가로 담아서 응답해주면 되는거겠죠? 1. 이런방식으로 밖에 안떠오르는데 혹시 다른 방법이 더 좋다거나 한지 알려 주실 수 있을까요? 2. 추가적으로 로그인에서 에러가 발생할 경우, (미인증사용자) 로그인 인터셉터 내에서 에러메세지를 출력해주고자 하면 response.getWriter()를 통해 에러메세지를 전달해주면 되겟죠? 3. 이건 마이너 한것일 수 있는데, 저는 이렇게 응답 객체 네이밍을 했는데 (SignUpResponseDTO)영한님은 어떻게 네이밍을 하시는지 또한 궁금합니다. ------ 추가로 ExceptionHandler 강의 듣고왔는데 컨트롤러에서는 exception을 터트리고, handler에서 예외를 처리하는데 여기서 RestEntity에 에러객체를 담아, json 형태로 에러 결과를 응답해줄수 있는건 알겠습니다. 그러면 위와 같은 validation에서 에러가 터질 때 ExceptionHandler를 통해 예외처리를 하고자 한다면, 입력값 4개중 2개의 필드에 벨리데이션에러가 터졌고, 각각의 필드에 대해 biningResult에 에러가 있을 경우, A. 어떤 익셉션을 터뜨리고 B. 그 익셉션 메세지에 bindingResult에 있는 에러들을 취합해서 넣는다 이런 스텝으로 예외 처리를 해야 하는건가요? @ExceptionHandler({MethodArgumentNotValidException.class})public ResponseEntity<ErrorResult> validationExHandler(MethodArgumentNotValidException e) throws JsonProcessingException { BindingResult bindingResult = e.getBindingResult(); List<FieldError> fieldErrors = bindingResult.getFieldErrors(); ValidationErrorMessage validationErrorMessage = new ValidationErrorMessage(); List<ValidError> validationErrors = validationErrorMessage.getValidationErrors(); for (FieldError fieldError : fieldErrors) { String defaultMessage = fieldError.getDefaultMessage(); String field = fieldError.getField(); validationErrors.add(new ValidError(field, defaultMessage)); } String errorMessage = objectMapper.writeValueAsString(validationErrors); ErrorResult errorResult = new ErrorResult("BAD_REQUEST", errorMessage); return new ResponseEntity<>(errorResult, HttpStatus.BAD_REQUEST);} @Data@AllArgsConstructor@NoArgsConstructorpublic class ValidationErrorMessage { private List<ValidError> validationErrors= new ArrayList<>(); public void addError(ValidError error){ validationErrors.add(error); }} @Data@NoArgsConstructor@AllArgsConstructorpublic class ValidError{ private String field; private String message;} @RestController@RequestMapping("/api/v1/accounts")@RequiredArgsConstructorpublic class AccountController { private final AccountService accountService; @PostMapping("/new") public ResponseEntity<SignUpResponseDto> signUp( @Validated @RequestBody SignUpRequestDto signUpRequestDto, HttpServletRequest request, HttpServletResponse response){ Account account = new Account( signUpRequestDto.getNickname(), signUpRequestDto.getPhone(), signUpRequestDto.getMail(), signUpRequestDto.getPassword()); Account result = accountService.signUp(account); SignUpResponseDto signUpResponseDto = new SignUpResponseDto( result.getNickname(), result.getPhone(), result.getMail()); return new ResponseEntity<>(signUpResponseDto, HttpStatus.OK); } 결과 { "code": "BAD_REQUEST", "message": "[{\"field\":\"password\",\"message\":\"8자 이상 20자 이하의 문자열이여야 합니다.\"},{\"field\":\"nickname\",\"message\":\"닉네임은 필수값입니다.\"},{\"field\":\"mail\",\"message\":\"이메일 형식이 아닙니다.\"}]" }
-
미해결타입스크립트 시작하기
return 타입
이건 강의 외적인 질문인데여 . 혼자 이것저것 테스트를 해보고있는데여. return 에 타입을 Promise<string> 으로 해야 잘 되던데 제가 그냥 보고 .. 생각한 바로는 Promise 니깐 Promise 객체가 인스턴스되서 넘어 가기때문에 return 타입에 넣어줘야하나 ?? 생각을 했지만 한편으론 그래도 어찌됬든 return 을 string 으로 주지 않나 ? 생각이 들기도 합니다. 조금.. 헤깔리는데.. 설명 부탁드리겠습니당 ㅎ 좋은 하루 되세여 !
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의질문
1. c언어에서 static 변수가 전역변수랑 동일하나 지역함수?에서만 쓰이고 프로그램시작과 동시에 할당되고 초기화도 한번 종료될때 소멸한다던데 이게 c#에서도 적용되나요? 2. 영상에서 static Managers s_Instance를 전역변수라고 하던데 staic 클래스 변수 아닌가요? 아니면 위처럼 전역변수랑 비슷한 거라서 전역변수라고 한건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
실제 폴더는 존재하는데
왜 인텔리제이 내부에서 model이라는 폴더가 안뜨는걸까요?
-
미해결vue.js 실전 프로젝트(트위터 클론)
git clone 후 npm run dev 시, 나타나는 에러
안녕하세요! 진수님, 먼저 최신 기술의 좋은 강의 올려주셔서 감사합니다. 전체적으로 프론트 강의 한번 진행 후, github에 있는 코드를 clone 받은 후 npm install 후 npm run dev 실행시, 아래와 같은 에러가 발생합니다. 구글링을 해도 정확한 해결 방안을 찾아내지 못해 이렇게 질문드립니다. 답변 부탁드립니다.
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
form에 대해 질문 있습니다.
개념이 확실히 서지 않아 확인차 질문드리는 점 양해부탁드리겠습니다..... 1. forms.py에서 클래스를 만드는 이유는 ModelForm을 활용해서 form을 더 편하게 사용하기 위해서 맞나요..? 2. form는 정보 요청 명세서라고 생각을 하면 되나요? 찾아보니, 게시판에 글을 남길때, 회원가입할때 등등 다양하게 사용된다고 하더라구요. 그럼 결국 articleapp에서도 form 커스터마이징 해서 사용하는 이유는 html에서 정보를 건네주기 위함이 맞을까요...? 개념이 확실치가 않네요... 매번 답변 진심으로 감사드립니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
상황별 값타입 컬렉션과 엔티티 구분
[질문1] 강의시간 28분24초에 치킨을 제거하고 한식을 추가한 경우 delete from FAVORITE_FOOD where MEMBER_ID=? and favoriteFoods=? 로 특정 행을 한 행만 제거했습니다. 반면, 컬렉션 값타입의 Address테이블에서는 delete from Address where MEMBER_ID=? 로 관련 행들을 모두 삭제했습니다. 왜 이런 차이를 보이는건지 고민을 해봤습니다. 후자인 Address테이블은 모든 컬럼의 조합이 pk제약조건을 구성하므로 WHERE MEMBER_ID=? and 컬럼1 = ? and 컬럼2 = ? and 컬럼3=..... 같은 방식으로는 추적하기 어려울 것 같습니다. 따라서 MEMBER_ID = ? 조건에만 관련된 모든 행 지웠다가 최종적으로 남아있는 값타입컬렉션의 요소만 Insert하는 방식을 채택한 것으로 보입니다. 반면, 전자인 FAVORITE_FOOD 테이블은 컬럼수가 FK인 MEMBER_ID를 제외하고 FOOD_NAME 하나이므로 WHERE절이 where MEMBER_ID=? and favoriteFoods=? 으로 가볍습니다. 따라서 FOOD_NAME을 조건으로 해당하는 행만 제거하는 것이 가능해 보입니다. 이런 원리라고 생각해도 되는 것인지 궁금합니다. [질문2] 값타입 컬렉션과 엔티티의 상황별 차이 "값타입컬렉션을 언제 사용하는가? 값이 바뀌어도 update칠 필요가 없을 때" (40분30초) "주소이력도 엔티티다, 값을 변경하지 않는다 하더라도 DB쿼리 자체를 그 쪽에서 부터 시작해서 가져올 수 도 있다" (41분00초 ) 위 두 설명에 대해 감을 못잡고 있습니다. 전자는 질문1에서 말씀 드린 것과 같이 컬렉션의 요소를 바꿔도 모든 요소 관련 행들을 DELETE한 후 남은 요소만 INSERT하는 방식이라 update sql문을 사용하지 않습니다. 그런데 표현을 "update칠 필요가 없을 때"라고 하는 부분이 이상하게 다가옵니다... 후자의 경우 추가로 41분30초에 예를 들어주셨습니다. "주소가 다 사라져도 이력은 남겨야 될 수 도 있는 상황" --> 엔티티로 설계해야함 이 부분은 상황자체를 이해하지 못했습니다... 선생님, 좀 더 자세한 설명 부탁드립니다. 감사합니다.
-
미해결CSS Flex와 Grid 제대로 익히기
flex의 align-content 질문
선생님 align-content가 flex-wrap이 wrap일때 넘치는 요소 처리 방법이잖아요 근데 align-content적용 했는데 왜 넘치지도 않았는데 flex-end를 쓰면 왜 밑으로 내려가나요?
-
미해결모의해킹 실무자가 알려주는, XSS 공격 기법
안녕하세요 강의 수강자입니다.
안녕하십니까 강의 너무나 유익하게 수강하고 있는 학생입니다. 강의 내용에 관한 것 리뷰나 일부 소스를 블로그에 정보공유의 목적으로 출처를 남기고 게재해도 될지 여쭤보고 싶습니다.
-
미해결파이널 코딩테스트 : 프론트엔드
[파코테 5 - 브래드크럼 스크립트] 자식 요소 추가에 대한 질문
Loading.js에서는 appendChild를 사용해서 자식 요소를 추가했었는데요. Breadcrumb.js에서는 append를 사용한 이유가 궁금합니다. // Loading.js loadingWrapper.appendChild(loadingContent); // Breadcrumb.js breadcrumbWrapper.append(breadcrumb);
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
안녕하세요 강사님! DataSourceUtils 관련 에러 질문입니다.
intelliJ를 쓰고 있고 build.gradle에 아래와 같이 해주었습니다. plugins { id 'org.springframework.boot' version '2.5.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java'}group = 'hello'version = '0.0.1-SNAPSHOT'sourceCompatibility = '11'repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test'}test { useJUnitPlatform()} apllication.properties에는 아래와 같이 해주었습니다. spring.datasource.url=jdbc:h2:tcp://localhost/~/testspring.datasource.driver-class-name=org.h2.Driver JdbcMemberRepository.java와 SpringConfig.java 둘 다 교본에 있는 것을 복사+붙여넣기를 했는데도 Run을 하면 아래와 같은 에러가 뜹니다ㅜㅜ C:\study\hello-spring\src\main\java\hello\hellospring\repository\JdbcMemberRepository.java:4:43 java: package org.springframework.jdbc.datasource does not exist java: cannot find symbol symbol: variable DataSourceUtils location: class hello.hellospring.repository.JdbcMemberRepository 컴퓨터 자체를 아예 껐다 켜보기도 하고, 인텔리제이를 껐다켜보기도 하고, gradle을 refresh 해보기도 하고, 프로젝트를 build.gradle로 열어보기도 했는데 왜 DataSourceUtils를 못 찾는지 모르겠습니다.. 어떻게 하면 실행할 수 있을까요?
-
해결됨Spring Boot JWT Tutorial
lombok 실무에서 고려해야 하는 점이 있는게 뭔가요?
안녕하세요. 강사님! 실무에서는 lombok을 사용할 때 고려해야할 몇가지 점이 잇어 주의해서 사용해야한다고 하셨는데 (4:58) 어떤 부분인가요?
-
미해결1. 웹개발 기초 [HTML, CSS]
행과 열
행과 열 부분이 잘 이해가 되질않아요ㅠㅠ 좀더 이해할수잇는 자료들이 잇을까요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
css 서버사이드 랜더링 적용이 되지 않아 질문드립니다.
크롬에서 disable javasrcript 하고 나서 새로고침을 하여 ssr css 확인을 해보았더니 css가 적용이 되어 있지 않아서 질문드립니다. 원인을 좀 찾아 보려고 서버사이드 랜더링시 디버깅을 하여 각각 값이 잘 들어오나 _document.js 쪽 확인을 해보았는데 style쪽이 빈 배열로 나오는데 혹시 이게 원인일까요..? 문제 스크린샷 network 스크린샷 디버깅한 값 스크린샷 소스코드 _app.js (/prepare/front/pages/_app.js) import 'antd/dist/antd.css' import Prototype from 'prop-types' import Head from 'next/head' import wrapper from '../store/configureStore'; const App = ({ Component }) => { return ( <> <Head> <meta charSet='utf-8'></meta> <title>NodeBird</title> </Head> {/* <div>공통메뉴</div> */} <Component /> </> ); } export default wrapper.withRedux(App); App.Prototype = { Component: Prototype.elementType.isRequired, } _document.js (/prepare/front/pages/_document.js) import React from 'react'; import Document, { Html, Head, Main, NextScript } from 'next/document'; import { ServerStyleSheet } from 'styled-components'; export default class MyDocument extends Document { static async getInitialProps(ctx) { const sheet = new ServerStyleSheet(); const originalRenderPage = ctx.renderPage; try { ctx.renderPage = () => originalRenderPage({ enhanceApp: App => props => sheet.collectStyles(<App {...props} />), }); const initialProps = await Document.getInitialProps(ctx); return { ...initialProps, styles: ( <div> {initialProps.styles} {sheet.getStyleElement()} </div> ), }; } catch (error) { console.error(error); } finally { sheet.seal(); } } render() { return ( <Html> <Head /> <body> <script src="https://polyfill.io/v3/polyfill.min.js?features=default%2Ces2015%2Ces2016%2Ces2017%2Ces2018%2Ces2019"></script> <Main /> <NextScript /> </body> </Html> ); } } 바벨 설정 (/prepare/front/.babelrc) { "presets": ["next/babel"], "plugins": [ [ "babel-plugin-styled-components", { "fileName": true, "displayName": true, "pure": true, "ssr": true, "preprocess": false } ] ] }