묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 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 } ] ] }
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
MongoParseError: options usecreateindex, usefindandmodify are not supported
mongoose 6 버전을 사용하시는 분들은 강사님의 설명과 다르게 해야 해서 공유드립니다! 수정전 mongoose .connect(URI, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false, }) .then(() => console.log('MongoDB Connected...')) .catch((e) => console.log('MongoDB error: ', e)); 수정후 mongoose .connect(URI) .then(() => console.log('MongoDB Connected...')) .catch((e) => console.log('MongoDB error: ', e)); 참고한 글: 스택오버플로우 바로가기
-
미해결야곰의 iOS 프로그래밍
todo앱 User Notification에서 질문이 있습니다
안녕하세요? todo앱을 new project를 열어서 강의를 따라하다 보니 AppDelegate에서 막혔습니다. if let navigationController: UINavigationController = self.window?.rootViewController as? UINavigationController, 구문에서 Type of expression is ambiguous without more context라는 에러가 떠서 이런저런 검색을 해보니 iOS 13부터인가 window에 대한 선언이 SceneDelegate.swift에 있다고 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {} 에서 window를 통해 rootViewController를 지정할 수 있다고 알게 되었습니다. 그런데 또 어떤 글은 앱이 완전히 구동하기 전에 User Notification Delegate 설정을 해줘야 한다고 AppDelegate.swift의 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {} 에서 delegate 설정을 완료해야 한다고 되어 있어서요. [질문 1] UNUserNotificationCenter.current().delegate = todosTableViewController 구문을 어디에 작성해야 되는지 궁금합니다. SceneDelegate에 있는 var window: UIWindow?를 AppDelegate에 선언을 해서 해결해도 될까요? [질문 2] 또한 UNUserNotification의 delegate는 앱에서 하나만 존재해야 하고 존재할 수 밖에 없는지요? todo앱에서 배운대로 조금씩 변경해 보고 있는데요. todosViewController에서와는 다른 유저 알림을 추가로 구현하고 싶다면 UNUserNotificationCenter.current().delegate = myViewController 이런 식으로 delegate를 해야 할 거 같은데 설정해야 위치가 AppDelegate 또는 SceneDelegate에서 설정해야 한다고 하니 UNUserNotificationCenter.current().delegate는 객체가 아니라 타입 프로퍼티(표현이 맞는 건지 모르겠네요)라서 앱별로 하나만 구현할 수 밖에 없는 건지도 궁금합니다. 강사님 강의 듣고 궁금한 것은 알려주신대로 도큐먼트랑 인터넷 검색해서 찾아보고 있는데 위에서 질문드린 부분들은 잘 못 찾겠어서 질문 드립니다.
-
미해결스프링 시큐리티
getAttributes() null 리턴과 PermitAllFilter
안녕하세요 강사님 강의를 보면 로그인 없이 /mypage에 접근하면 getAttributes()에서 null를 리턴하여 에 접근하게 됩니다. 의문이 드는 건 1. /mypage 접근할 때 인증 처리 후 인가 처리가 되어야 하는게 아닌지.. security config의 .anyRequest().authenticated() 도 무시되는 건가요? /mypage 및 DB에서 관리하지 않는 자원에 접근 시 인증 체크가 먼저 되어야 하지 않나요? 2. DB에서 관리하지 않는 자원이면 접속 가능한데 PermitAllFilter 가 왜 필요한지. PermitAllFilter 는 인가 처리의 앞단에서 다음 인가 프로세스로 넘어가지 않도록 하는 목적인가요? 3. 정적 자원 인가 getAttributes() 메서드에 값을 확인해보면 아래 로그처럼 정적 자원에 대한 인가 체크를 하고 있습니다. web.ignoring().requestMatchers(PathRequest.toStaticResources().atCommonLocations()); 설정으로 정적 자원은 security 처리 과정에서 무시되는 것이 아닌지요? 감사합니다.
-
미해결파이널 코딩테스트 : 프론트엔드
build failed
4강(MusicPlayer)에서 commit하고 push하는데, node_modules의 README.md파일 build failed 나오는데 어떻게 해결하면 될까요
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실제 현업에서도 저런 간단한 내용의 코드들도 Test코드로 작성하나요?
실제 현업에서도 저런 간단한 내용의 코드들도 Test코드로 작성하나요?
-
미해결백엔드 프레임워크 만들기 (개정판)
개정 이전 버전 질문도 여기에 올려도 되는지 궁금합니다.
생각해볼 문제는 답을 달아두신 것을 확인할 수 있었습니다. 지금 암호화쪽 보고 있는데 해당 부분에 질문을 개정판에 남겨도 될까요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
git 권한 요청드립니다.
인프런 아이디 :hyomi625 인프런 이메일 : hyomi625@naver.com 깃헙아이디 : hyomi625@naver.com 깃헙 Username : popory625
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
값타입과 엔티티 차이 고민
강의 39분10초에 "엔티티는 값을 마음껏 수정할 수 있다" 는 말씀에 이해를 못하고 있습니다. 아래에는 제가 정리한 값타입의 특징과, 한 예시에 대해서 값타입/엔티티를 적용했을 때 상황을 고려해봤습니다. 마지막에 내린 결론이 올바른지 궁금합니다. [값 타입의 특징] - 서로 다른 두 엔티티 Member A, B는 한 값타입객체를 공유하지 말 것 - 엔티티의 필드로서 값타입(Address)에 대하여 값타입의 필드(city)를 수정하고 싶을 땐, new Address(..)로 새로운 객체를 사용할 것 - 혹여나 공유하는 실수를 했을 때 컴파일러로 찾아내기 어렵다. 따라서 대응책으로 setter메소드 없는 불변객체로 설계한다. (예시) 서로 다른 회원 A, B가 한 가족이라 같은 주소에 살고있다. 그런데 A가 독립해서 주소를 옮겼다. 1.값타입 경우) - 두 회원이 동일한 Address 값타입의 인스턴스를 공유하지 않고 각 회원별로 Address인스턴스가 달라야함. - 따라서, memberA.getAddress( ).setCity('xxx') 로 직접 수정해도 B의 address인스턴스에 부작용 없지만, 코딩을 할 때 실수로 동일 Address객체를 공유하도록 코드를 작성 할 수 있기에, 이를 방지하기 위해 값타입에 setter메소드정 의 안함 - 즉, setCity( )메소드를 못 쓰니까 도시속성을 바꿀 수가 없음. 따라서 memberA.setAddres(new Address( ~~) )로 새 객체를 만들어 교체해줌 2.엔티티 경우) - 엔티티의 본래 특성상 parent엔티티 A, B가 같은 child엔티티C를 공유가능함(예. 동아리A, B는 같은 학생C를 회원으로 받을 수 있음) - 그러나 위 (예시)의 비즈니스 특성상 엔티티도 공유하면 안됨(한 명이 이사한 주소로 다른 한 명도 주소가 변경되는 문제) - 엔티티 또한 아래 코드와 같이 공유하게 되면 addEntity.setCity('성남', '분당구') 로 A, B모두 주소가 변경됨 AddressEntity addrEntity = new AddressEntity('서울', '강남구'); memberA.setAddressEntity( addrEntity ); memberB.setAddressEntity( addrEntity ); memberA.getAddress().setCity('성남', '분당구'); - 따라서, 엔티티의 경우도 setCity와 같은 setter메소드가 있으나 회원A의 address를 얻어와 개발자 마음껏 setter수정을 할 수 없을것 같다 !? 강의의 39분10초 설명 "엔티티는 값을 마음껏 수정할 수 있다"에 반하는 결론이라 어디가 틀렸는지 짚어주셨으면 좋겠습니다. 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
BaseEntity상의 @Temporal
BaseEntity에서 LocalDateTime같은거를 집어넣을 때 @Temporal 어노테이션을 안붙여줘도 되나요?