묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
@AllArgsConstructor, @RequiredArgsConstructor 사용금지를 권하는 글을 보았습니다.
https://kwonnam.pe.kr/wiki/java/lombok/pitfall파라미터 선언 순서 변경에 따른 생성자에서 파라미터 순서로 변화로 인해 발생할 수 있는 치명적인 오류를 사전에 방지하기 위해 @AllArgsConstructor, @RequiredArgsConstructor 의 사용은 자제하는 것을 권하던데Spring 프로젝트에서도 마찬가지로 적용되는 경우가 있을까요?예를 들어, 컨테이너 안에 같은타입의 빈이 여러개인 충돌 문제가 아니라하나의 클라이언트에서 같은 타입의 의존성을 두개 주입을 요구할 경우가 있을까요? private final DiscountPolicy discountPolicyFirst; private final DiscountPolicy discountPolicySecond; 이렇게 될 경우, 순서가 중요할거 같지만@Qulifier 같은 방식을 사용하지 않으면 같은 의존성만 주입될거 같고@Qulifier를 사용하면 의존성을 요구하는 필드의 순서 문제가 자동으로 해결될거 같기도 하구요아니면 현실적으로 이런 방식을 쓰기보단Map이나 List를 사용하여 자체적으로 로직을 만들어 상속하는 같은 계열의 빈을모두 가져와서 선택적으로 여러개의 의존성을 사용하는게 맞을까요?추가적으로 궁금한 점이 있습니다.@Qualifier를 사용하여 같은 타입의 빈이 두개 이상 있을때 선택할 수 있다고 하셨는데@RequiredArgsConstructor를 사용한 경우엔 자동으로 생성자를 만들어줘서 @Qualifier를 사용하여 의존성을 주입할 수 없는건가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
mainPosts
제로초님 reducer 부분에서 변수이름으로 사용한 mainPosts 는 꼭 변수명이 mainPosts여야 하나요?? case ADD_COMMENT_SUCCESS: { ~나머지 코드들~ const mainPosts = [...state.mainPosts]; //이부분이요 mainPosts[postIndex] = posts; return { ...state, mainPosts, commentIsBeingAdded: false, commentIsAdded: true, }; } ㅇ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
영속성 컨텍스트 질문
이전 자바 ORM 표준 JPA - 기본 강의에서 EntityManagerFactory(이하 emf) 와 EntityManager(이하 em) 가 1:N로 관리되며, 당시에 제가 이해하기론 emf가 트랜잭션당 하나의 em을 생성해서 작동하는 것으로 이해했는데, 이번 강의에서보니 emf 인스턴스를 생성하지 않더라고요. 그래서 @PersistenceContext 어노테이션에서 가상의 emf를 생성해서 em을 관리해주나 싶어서 대충 찾아봤는데 @PersistenceUnit 이라는 어노테이션이 별도로 있고 이 어노테이션이 emf에 많이 붙히더라고요. 더 자세하게 찾아볼수있으면 좋겠지만, 아직 문서보는 능력이 부족해서 이해가 힘들었습니다. 이번 예제에서 emf가 어떻게 만들어지는지 em은 반드시 emf가 필요한건 아닌지 궁금합니다. 그리고 찾아보면서 별도로 궁금한게 생겼는데, Spring이 기본적으로 싱글톤 전략을 사용해서 속성값을 공유하므로 쓰레드간의 공유 문제가 em에서 발생할수 있다고 하더라고요. 그래서 @PersistenceContext 어노테이션이 em을 프록시 객체로 만들어서 이 문제를 해결한다는 내용을 봤습니다. 그런데 emf가 em과 1:N 관계라면 em은 쓰레드 동시 공유 문제를 신경써야하지만 emf는 그럴 필요가 없나요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
test에서의 imports, provider... 관련 질문입니다.
현재 저의 폴더 구조는 src - auth (directory) - users (direcotry) 이렇게 되어있고 users 폴더안에 users.repository.ts파일이 있습니다. 그리고 auth/auth.controller.ts파일에서 UserRepository를 사용하고 있는데요. 서버자체는 정상적으로 잘 돌아갑니다. (즉, 테스트 파일에서만 오류가 발생합니다.) 그런데 auth/auth.controller.spec.ts에서 테스트를 해볼때 에러가 나는데 설정관련해서 햇갈리는 부분이 있어서 질문드립니다. 우선 npm run test:watch를 했을 때 에러 내용은 TypeError: Cannot read property 'findOne' of undefined로 auth.controller.spec.ts파일에서 UserRepository가 제대로 안불러 와지는거 같은데요. spec.ts파일 같은 경우 auth.module.ts파일과는 전혀 개별적으로 작동하나요? auth.module.ts파일에서 여러 파일들을 설정했어도 spec.ts에서는 다 다시 설정해줘야 하는건가요? 아래 사진 첨부했는데 어떤걸 더 수정해야할까요?
-
미해결스프링 핵심 원리 - 기본편
주문 서비스 구현체 관련 질문 입니다!
영한님 강의 정말 재밌게 듣고 있고 많은 도움과 동기부여가 되고 있어요! 항상 감사 드립니다. 질문1) 주문 서비스 구현체에서 private final MemberRepository memberRepository = new MemoryMemberRepository();로 구현하였는데 아래 코드로 구현하는 것과 비교했을 때 어떤 것이 효과적일 까요? private final MemberServise memberService = new MemberServiceImpl(); 질문2) MemberServiceImpl과 OrderServiceImpl에 모두 MemberRepository memberRepository = new MemoryMemberRepository();가 등장하는데 만약 실행 프로그램에서 MemberService와 OrderService를 모두 사용하는 경우 2개의 memberRepository 객체가 생성되어 문제가 될 것 같은데 store가 static으로 선언되어 괜찮은 건가요?
-
미해결
Gmail Customer Service To Understand How To Add Safety Features
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비Take Don’t know how you can add safety features on your Gmail account to safeguard your account from security concerns, digital threats, cyber-attacks, other troubles? Instead of feeling helpless, it would be wise to get in touch with the experts through Gmail Customer Service number and get a feasible solution, in no time. https://www.contactphone-number.com/gmail-phone-number/스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결
How Can I Chat With Facebook Support? For resolving all the woes
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 How Can I Chat With Facebook Support? If you want to solve FB sign in and recovery method issues then feel free to connect techies instantly. To understand recovery method and Users ask- Can I Chat with Facebook Support. For this, they just need to dial the FB helpline number that is available 24 hours a day. Make sure to solve your FB account issues by speaking to the experts./ 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
로고 세부 지시사항에서
심벌 없이 로고명을 포함한 워드타입으로 디자인한다. "로고명은 Header 폴더의 제공된 텍스트를 사용한다" 이 부분 로고명이 과제명인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
category-item 중간 테이블 2개?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 강사님 강의 잘 보고 있습니다 강의 도중 애플리케이션 실행 후 데이터베이스에 있는 테이블들을 확인해봤는데 category_item, items_category 라는 중간 테이블 2개가 생성되었습니다. 강사님이 작성하신 코드와 다른점이 없었고 제가 마리아db를 사용중인데 혹시 데이터베이스 차이로 중간테이블이 2개 생성된 것인가요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
실행시 메인페이지 오류납니다 ㅠ
실행 시 메인페이지에서 오류납니다 ㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HttpHeaders 컨버터
컨트롤러에서 header 값들을 받아서 object로 저장하고 싶습니다. * Controller.java 의 메소드 convert(@RequestHeader MyHeader myHeader) * Converter 구현체 implement Converter<HttpHeaders, MyHeader> 로 작성하고해당 converter 구현체를 webConfig에 등록하였는데요. 작동을 하지 않습니다. 혹시 해결 방법이 있을까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
전방선언을 공부하다가
요새 언리얼 작업을 하면서 전방선언에 대해 조금 깊이 공부하고 싶어서 다시 이전 수업을 찾아와 복습을 하고 있습니다. 제가 궁금했던점은, 어차피 .cpp 정의부에서 헤더파일을 추가할거라면 헤더에 추가하는것과 무슨 차이가 있는지, 즉 전방선언을 함으로써 이득이 될 수 있는 부분이 무엇인지가 궁금해서 다시 찾아왔는데, 아쉽게도 해당 강의에서는 구체적인 설명이 없었던것 같아서 질문을 남깁니다. 구글링을 찾아본바론, 결국 컴파일 시간에서 이득을 보려고 하는것이 가장 큰 이유라고 알게 되었습니다. 빌드시간이 워낙 길어진다는건 언리얼 프로젝트를 조금만 진행해봐도 커피 한잔 타고 와야 할만큼이나 답답함을 느낍니다. 만약 정말 이러한 길고 긴 컴파일 시간, 빌드 시간을 줄이고자 하기 위함이었다면, 제가 언리얼과 같은 프로젝트(가벼운 개인 프로젝트)를 진행할때 웬만하면 거의 전부다 전방선언을 할 수 있도록 설계하는게 프로젝트 관리에 있어서 효율적인가 궁금합니다. 그리고 말씀드린대로, 참조하려는 헤더파일에 변경이 생겨도 헤더파일의 재컴파일이 이루어지지 않는 이점 때문에 전방선언을 애용하는건지, 제가 개념을 제대로 이해했는지도 궁금합니다.
-
미해결웹 게임을 만들며 배우는 React
SocketClient is not a constructor 오류
아랫분과 동일하게 Cannot get / 메세지가 계속 떠서 제로초님 공지글에 있는 4버전 깃허브 소스로 다 바꿨는데 SocketClient is not a constructor 에러 뜨면서 화면 로딩이 안됩니다. "dependencies": { "react": "^17.0.1", "react-dom": "^17.0.1" }, "devDependencies": { "@babel/core": "^7.12.3", "@babel/preset-env": "^7.12.1", "@babel/preset-react": "^7.12.1", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.0-rc.5", "babel-loader": "^8.1.0", "react-refresh": "^0.10.0", "webpack": "^5.3.2", "webpack-cli": "^4.1.0", "webpack-dev-server": "^4.0.0" } const path = require("path"); const RefreshWebpackPlugin = require("@pmmmwh/react-refresh-webpack-plugin"); module.exports = { name: "wordrelay-setting", mode: "development", // 실서비스: production devtool: "eval", resolve: { extensions: [".js", ".jsx"], }, entry: { app: ["./client"], }, // 입력 module: { rules: [ { test: /\.jsx?/, loader: "babel-loader", options: { presets: [ [ "@babel/preset-env", { targets: { browsers: ["> 5% in KR", "last 2 chrome versions"], // browserslist }, debug: true, }, ], "@babel/preset-react", ], plugins: ["react-refresh/babel"], }, }, ], }, plugins: [new RefreshWebpackPlugin()], output: { path: path.join(__dirname, "dist"), filename: "app.js", publicPath: "/dist", }, // 출력 devServer: { devMiddleware: { publicPath: "/dist" }, static: { directory: path.resolve(__dirname) }, hot: true, }, };
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@JoinColumn에 쓰는 값
@JoinColumn에 쓰는 값은 @Column으로 지정되어있는 값만 쓸 수 있나요?? Team 객체에서 id에 지정한 @Column을 지우고 Member 객체에서 @JoinColumn(name = "id") 로 작성했더니 not found 오류가 발생하더라구요 @Column으로 지정한 이름만 들어갈 수 있는건가요?
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 파워쿼리 Advanced
3가지 조건일 경우 어떻게 해야 하나요 ?
2가지는 가능한데 3가지 조건과 범위까지 들어가니 해결이 안됩니다 도움 주시면 감사하겠습니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Error: Unable to access jarfile .port=9004
Error: Unable to access jarfile .port=9004 해당 오류에 대해 원인을 모르겠습니다
-
미해결Vue로 Nodebird SNS 만들기
fetch가 실행이 되지 않아서 질문드립니다
fetch({store}) { return store.dispatch('posts/loadPosts') }, 이런식으로 pages/index.vue에 해놨는데 처음에는 스크롤 함수에 있는 onScroll() { if(window.scrollY + document.documentElement.clientHeight > document.documentElement.scrollHeight - 300) { if(this.hasMorePost) { this.$store.dispatch('posts/loadPosts') } } } 이거 때문에 스크롤 해야 loadPosts가 불리고 Duplicate keys detected: '4'. This may cause an update error 이러한 에러가 뜨면서 중복되서 잠시 온스크롤 함수를 주석처리 해놓고 보니 fetch가 아예 실행이 안되더라구요 도대체 어떤문제인지 햇갈려서 알수 없어서 ㅜ 연락드립니다. <template> <v-container> <post-form v-if='me' /> <div> <post-card v-for="p in mainPosts" :key="p.id" :post="p" /> </div> </v-container> </template> <script> import PostForm from '~/components/PostForm' import PostCard from '~/components/PostCard' export default { components: { PostForm, PostCard, }, data() { return { name : 'Nust.js' } }, fetch({store}) { return store.dispatch('posts/loadPosts') }, computed: { me() { return this.$store.state.users.me }, mainPosts() { return this.$store.state.posts.mainPosts }, hasMorePost() { return this.$store.state.posts.hasMorePost } }, mounted() { window.addEventListener('scroll', this.onScroll) }, beforeDestroy() { window.removeEventListener('scroll', this.onScroll) }, methods: { onScroll() { if(window.scrollY + document.documentElement.clientHeight > document.documentElement.scrollHeight - 300) { if(this.hasMorePost) { this.$store.dispatch('posts/loadPosts') } } } } } </script> <style> </style> 참고하실 풀 index.vue 코드 보내드려요!
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
강사님 수업 잘듣고 있습니다.
항상 이러한 유형이 나오면 아스키 코드를 이용해서 풀고 있는데 이런 방식으로 풀면 혹시 단점이 있을까요 ..? function resolve(str){ let answer = "Yes"; let newStr ="" for(let i =0; i<str.length; i++){ let charStr = str[i].charCodeAt(); if(charStr>=65 && charStr<=90 || charStr>=97 && charStr<=122){ newStr+= str[i].toLowerCase(); } } for(let i=0; i<newStr.length; i++){ if(newStr[i]!== newStr[newStr.length-i-1]) return "No" } return answer } let str="found7, time: study; Yduts; emit, 7Dnuof"; console.log(resolve(str));
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
fetch 함수가 에러가 계속 발생됩니다
fetch 함수 사용시 이와 같은 에러가 발생합니다
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
more than
more than 이면 한글로 '이상'이니까 1개를 포함하는게 아닌가요?