묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
조언 부탁드립니다.
안녕하세요. 혼자서는 결론을 내리지 못해 더 많은 경험과 고민을 한 제로초님께 조언을 구하고 싶습니다.제가 기존 코드에 Menu가 있었습니다. 그리고 이번에 타입스크립트로 마이그레이션 했는데 네이밍 컨벤션에 고민이 있습니다. 이 이름을 쓰는 곳은 총 4곳 입니다.menu - 데이터로 불러오는 menuMenu - 타입으로서 MenuMenu - 페이지(메뉴 상세 페이지)Menu - 메뉴 아이템(메뉴 리스트 안에 각각 뿌려지는 메뉴 아이템)사실 타입이 없을 때는 아래 2개의 파스칼 케이스의 Menu가 이름으로 겹칠 일이 없었습니다. 그러다가 타입을 도입 했는데, 타입인 Menu 같은 경우 제로초님이 요즘은 앞에 헝가리안 표기법으로 타입인지 인터페이스인지를 표기 안하는 추세라고 하시기도 했고, 프로그래밍에서 가장 중요한게 데이터라 생각해서 그 데이터의 타입은 그대로 쓰는게 좋다고 생각했습니다. 페이지 같은 경우에는 파일 명과 반드시 같은 필요가 없다 해서 라우팅할때 menu.tsx를 쓰더라도 파일 내부에서는 MenuPage로 명명했습니다.그리고 남은 컴포넌트가 문제인데 다른 강의를 봐도 MenuComponent 같은 이름 보단 다른 강의에서 List를 붙이시는거 보고 MenuItem으로 컴포넌트 명을 지으려고 하는데 괜찮을까요??감사합니다!!
-
미해결
무슨 오류인가요
버전이 달라서 그런걸까요
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
PMF를 확인하는 방법
안녕하세요! 강의 정말 잘 듣고 있습니다. 다름이 아니라 PMF관련 챕터를 듣고 문득 생각이 나서 질문을 드립니다.PMF를 확인하기 위해서 어떤 지표들이 주로 쓰이나요?(회사마다 주관적인 것일까요?) 어떤 현상을 보고 '아 이제야 PMF가 잘 맞는구나!'라고 판단하게 될까요? PMF는 경쟁사의 출현, 서비스의 매력도 하락 등의 다양한 이유로 계속적으로 달라질 것 같은데 어떤 상황에서 다시 'PMF'가 다시 안맞게 되었구나! 라고 판단할 수 있을까요? 시간 편하실 때 답변 주시면 감사하겠습니다!
-
미해결스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
RSA 비대칭키 질문
HS256 암호화 방식은 클라이언트로부터 JWT(헤더+페이로드+서버의 비밀키로만든 signature)를 받으면, 서버가 "비밀키"를 가지고 있어서, 서버가 만든 JWT랑 비교해서 같은지 검증하는 방식이잖아요?RSA 암호화 방식은 마찬가지로 클라이언트로부터 JWT(헤더+페이로드+서버의 비밀키로만든 signature) 받으면, 서버는 JWT의 signature를 "공개키"로 검증한다고 이해했습니다. 그래야만 "비대칭키" 방식이기 때문입니다. 여기서 질문입니다. 1. 서버는 비밀키도 있으면서 왜 굳이 공개키로 검증하는지 (비밀키만 있으면 HS256 방식을 사용하면 돼서)2. 공개키로 검증하는게 맞다면 어떤 방식으로 검증하는지 (signature를 공개키로 복호화 하면 비밀키가 나오는 방식일까요?)긴 글 읽어주셔서 감사합니다.
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
파일병합 창 위치 문의
안녕하세요.파일통합 강의 관련 질문 드립니다. 엑셀 2016을 사용중인데, 새 쿼리 -> 파일에서 -> 폴더에서 로 접속하여 해당 폴더 열기를 클릭하면 파일병합이라는 창이 뜨지 않고 바로 쿼리가 실행됩니다.파일병합창이 뜨지 않아 추출할 개체를 선택하지 못해서인지 그후 작업에서 계속 오류가 발생해서, 우선 구글링을 통해 대안을 찾긴 했습니다.(사용자 지정열을 추가하여 파워쿼리에서 사용되는 Excel.Workbook 함수 이용했음) 파일병합 창은 어떻게 볼 수 있나요?파일병합창을 통하지 않더라도, 폴더에 파일이 추가되었을 때 자동으로 업데이트 되도록 하는 방법이 있나요? 답변 부타드립니다.감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인텔리제이에서 run실행하는것도 잘 되었고이 상태로 localhost:8080을 했을때이렇게 떠서 다른 작성자분께 조언하신데로 crd로 들어가서 똑같이 했는데도이렇게 뜹니다. 스프링부트마크가 없어도 괜찮은 건가요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치
vi /root/.Xilinx/install_config.txt # 생성된 config 파일을 편집함.이부분에서 잘못된거 같아서 다시 실행 했는데 이렇게 나오는대 혹시 여기서 어떻게 해야할까요??esc -> enter 누르면 이렇게 나옵니다 다시 설치 했는대 이렇게 나옵니강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
replot 질문
seaborn 의 retplot으로 서브플롯을 그리는 연습하는데 x축과 y축의 작은 그래프마다 label?을 다 달고싶은데가장 왼쪽과 아래에만 범주가 나오는데 이전 질분을 보니까 sharex나 sharey라는 옵셥을 사용하라고 답변을 다셨는데 이제는 사용이 안되는거 같습니다..ㅜㅜ이제는 어떤식으로해야하나요?
-
해결됨스프링 핵심 원리 - 기본편
빈 등록 과정 질문입니다.
안녕하세요빈 수동등록과 자동등록 과정에 대해서 질문드립니다.챕터 4번째인 스프링 컨테이너와 스프링 빈 편의 교재에 나와있는 참고사항에서 궁금한 점이 생겼습니다.참고 : 스프링은 빈을 생성하고, 의존관계를 주입하는 단계가 나누어져 있다. 그런데 이렇게 자바 코드로 스프링 빈을 등록하면 생성자를 호출하면서 의존관계 주입도 한번에 처리된다. 여기서는 이해를 돕기 위해 개념적으로 나누어 설명했다. 자세한 내용은 의존관계 자동 주입에서 다시 설명하겠다. 용어에 대해서 궁금한 점이 있어요. 교재에 나와있는 빈의 생성은 빈의 등록과 같은 의미인가요?아니면 빈의 생성은 new키워드로 객체를 생성한다는 의미인가요..? 죄송합니다. 이 부분은 쓸 데 없는 질문이지만, 정확한 원리를 모르기 때문에 이러한 단어들의 차이 때문에 혼동이 오는 경우가 있어서요ㅠㅠ. 수동 빈 등록 시 원리가 궁금합니다.@Bean이 붙은 메서드에서 new 키워드로 객체를 생성하고, return이 되는 객체가 빈으로 등록되는 게 맞나요?자동 빈 등록 시 원리가 궁금합니다.@Component가 붙게 되면 해당 클래스 객체를 생성한 뒤에 그 인스턴스를 빈에 등록하는 것이 맞나요? 빈이 등록되는 데에는 순서가 있다고 배웠습니다.2번 질문에서 제가 여쭤본 것 처럼, 수동 등록은 @Bean이 붙은 메서드에서 자바코드로 의존관계를 주입하고 난 뒤에, return으로 반환되는 객체가 비로소 빈으로 등록되는 건가요? 그러면 교재에 나와있듯이, 의존관계 주입은 return하기 전, 즉 객체생성 시에 이뤄지는 건가요? 반면 @ComponentScan방법인 자동등록은 생성자주입일 때를 제외하면, 모든 방법들이 클래스가 우선 빈으로 등록되고 난 뒤에 의존관계 주입이 이뤄지는 것인가요? 그러니까 객체생성 후, 빈으로 등록이 되고, 의존관계는 그 이후에 의존관계가 주입이 되는건지요. 제가 이런 질문으로 확인하고 싶은 점은 스프링 컨테이너에 빈이 등록되는 정확한 시점을 알기 위함입니다. 수동 등록은 @configuration 클래스의 빈 메서드에서 의존관계를 수동으로 모두 설정 후에 return한 객체가 스프링 컨테이너에 빈으로서 올라가는 것인지.또자동 등록은 @Component가 붙은 클래스의 객체를 생성할 때, 생성자 주입이면 의존관계가 우선적으로 주입이 되고 스프링 컨테이너에 빈으로서 등록이 되는지.또한 @Component방법의 나머지 방법들은 객체의 인스턴스가 우선적으로 스프링 컨테이너에 빈으로서 등록이 되고 난 뒤에 의존관계주입이 일어나는지 그 시점들이 궁금합니다. 답변 부탁드립니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
함수형 인터페이스(전반전) 람다식 질문있습니다
convertUSD 전달값이 인터페이스 변수임에도 람다식으로 작동되는 이유가 궁금합니다 주석 밑에 코드는 람다식을 인터페이스 변수에 넣고 전달값으로 사용하는건 이해가 가는데 주석으로 되어있는 11번째 코드는 인터페이스 변수가 아닌 그냥 람다식을 붙여넣은건데 이게 인터페이스 convert 메소드인걸 어떻게 알았는지 모르겠네요convert메소드가 하나만있기에 찾아내서 정상작동된건가요?
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
mode=production 빌드 시 문제 발생
안녕하세요, 원인을 도저히 모르겠어서 질문 남깁니다.mode를 production으로 했을 때만 아래 사진처럼 에러가 나는데요, 코드상에 문제가 있는지 한번 봐주실 수 있을까요?mode=development에서는 보시다시피 잘 나옵니다.아래는 소스코드입니다.package.json{ "name": "lecture-frontend-dev-env", "version": "1.0.0", "description": "\"프론트엔드 개발 환경의 이해\" 강의 자료입니다.", "main": ".eslintrc.js", "devDependencies": { "@babel/cli": "^7.21.0", "@babel/core": "^7.21.0", "@babel/preset-env": "^7.20.2", "babel-loader": "^9.1.2", "css-loader": "^6.7.3", "html-webpack-plugin": "^5.5.0", "mini-css-extract-plugin": "^2.7.2", "sass": "^1.58.3", "sass-loader": "^13.2.0", "style-loader": "^3.3.1", "webpack": "^5.75.0", "webpack-cli": "^5.0.1" }, "scripts": { "dev": "webpack --mode=development --config webpack.config.js", "build": "webpack --mode=production --config webpack.config.js" }, "repository": { "type": "git", "url": "git+https://github.com/jeonghwan-kim/lecture-frontend-dev-env.git" }, "keywords": [], "author": "", "license": "ISC", "bugs": { "url": "https://github.com/jeonghwan-kim/lecture-frontend-dev-env/issues" }, "homepage": "https://github.com/jeonghwan-kim/lecture-frontend-dev-env#readme", "dependencies": { "core-js": "^3.29.0" } }webpack.config.jsconst path = require("path"); const webpack = require("webpack"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = (env, argv) => { const title = argv.mode === "development" ? "(개발용)" : ""; return { entry: { main: "./src/app.js", }, output: { filename: "[name].js", path: path.resolve(__dirname, "dist"), clean: true, }, module: { rules: [ { test: /\.s[ac]ss$/i, use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"], }, { test: /\.(png|svg|jpg|jpeg|gif)$/i, type: "asset", parser: { dataUrlCondition: { maxSize: 20 * 1024, // 20kb }, }, generator: { publicPath: "../dist/", }, }, { test: /\.js$/i, exclude: /node_modules/, use: { loader: "babel-loader", options: { configFile: path.resolve(__dirname, "babel.config.js") }, }, }, ], }, plugins: [ new webpack.BannerPlugin({ banner: `빌드 날짜: ${new Date().toLocaleString()}`, }), new HtmlWebpackPlugin({ template: "./src/index.html", templateParameters: { env: title }, }), new MiniCssExtractPlugin(), ], }; };babel.config.jsmodule.exports = { presets: [ [ "@babel/preset-env", { targets: { ie: 11 }, useBuiltIns: "usage", corejs: 3, }, ], ], };다른 폴더 및 파일은 건드리지 않았습니다.
-
미해결NEW!! 12시간 안에 끝내는 R 활용 데이터분석 / 시각화
8차시 텍스트데이터시각화하기 질문
자바 환경구축 및 힘든 코드는 게시판에 올려주신다고 하셨었는데 어디에 올려주셨는지 모르겠네요..그리고 제가 코드 일일이 쳐서 진행하던 와중에install_jdk 하니깐 amazon corretto setup이 뜨는 게 맞을 까요 선생님이랑 출력이 되는 내용이 달라서 궁금하네요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - D 어떤 부분이 잘못된 건지 봐주세요
http://boj.kr/a87bcdc8a73f4c8d8cc5e8f31aebfe75로직은 선생님과 동일한데요 자잘한 것 3 개만 바꿨습니다.in 함수 -> underOver 함수맵 초기화시 'J'인 경우 지훈이의 체크 배열[i][j] = 1선생님은 맵 초기화시 할당하지 않고 지훈이의 최단 거리를 돌리기 직전에 할당하셨어요.지훈이의 처음 좌표 tie(y, x)로 추출선생님은 새롭게 변수를 선언하고 초기화하셨어요.int y = q.front().first();int x = q.front().second();어떤 곳이 틀린 걸까요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
동시성 이슈 원인에 대해 질문드립니다.
안녕하세요. 강의 잘 듣고 있습니다. 4분 17초부터 동시성 이슈의 원인을 db select, update하는 과정이 순서가 보장되지 않아 생기는 문제라고 설명해주시는데요. 해당 관점에 더해서 "stock을 select하고 와서 quantity 변수를 수정할때도 메모리상에 read,update,write가 이루어질텐데 여기서도 스레드들이 메모리 접근 순서를 보장할수 없기때문에 이와 같은 동시성 이슈가 생긴다" 라는 생각도 맞을까요?답변부탁드립니다.감사합니다.
-
미해결팀 개발을 위한 Git, GitHub 입문
강의 자료 부탁드립니다!
how0332@naver.com강의자료 부탁드립니다..!
-
해결됨모두의 깃 & 깃허브
노션에 내용 정리
안녕하세요. 강민철 저자님. 저는 항상 공부한 것을 노션에 정리하여 올리고 있습니다. 그 가운데에 영상의 내용을 일부 캡쳐하여 정리하고 있습니다. 그 이유는 나중에 돌려보았을 때 더 이해하기 쉽도록 하는 이유입니다.현재 제 노션은 비공개로 다른 사람들에게 보이지 않지만 추후 공개로 돌리게 될 수도 있을 것 같습니다.영상의 내용 일부 화면을 캡쳐하여 정리하고 그것을 공개하는 것에 대해서 문제가 되는지. 그리고 문제가 된다면 어느 정도까지 허용이 가능한지 궁금합니다. 영상 잘 보겠습니다. 감사합니다!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
Identity 생성 전략에서 em.persist(entity) 호출 시 동작 과정 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 강의를 듣다가 기본키 생성전략으로 IDENTITY를 사용했을 때, 동작 과정이 명확하게 이해되지 않아서 질문드립니다. 현재 제 생각에는em.persist(entity) 호출 -> pk값이 null인 상태로 1차 캐시에 저장(영속 엔티티) -> Insert 쿼리가 DB에 전달 -> DB에서 PK 값 생성 -> PK값을 조회해서 영속 엔티티에 적용하고, PK 값이 적용된 영속 엔티티가 스냅샷으로 사용됨.이런 과정으로 진행되는 것 같은데, 제가 생각한 과정이 맞는 지 질문드립니다..감사합니다.
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
passport.authenticate('local/kakao') 관련 질문
안녕하세요routes/auth.js에서 passport.authenticate('local' / 'kakao')로 로그인전략을 실행할 때auth.js에서는 local(), kakao()가 있는 passport/index.js를 require 한 적이 없는데도 실행되는 걸 보고 질문드립니다.passport 모듈 내에 passport폴더를 자동으로 인식하는 기능이 있는건가요?
-
미해결만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)
수강기간 관련하여 질문 드립니다.
안녕하세요 강사님! 수강을 완료하고 개인적으로 플젝을 진행하며 복습을 하고있습니다.많은 도움이 되었고, 강의 내에 코드 짤 때의 깨알 꿀팁도 많아서코드 짜는 실력이 많이 늘었습니다. 다시 한 번 감사합니다. 지금 강의를 다시 들으며 머릿속을 정리하고 싶은데기간이 3주도 채 안남아있어서 혹시 연장이 가능할지 여쭤봅니다😥😥 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
라이브러리 인식?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]외부 라이브러리 인식이 잘 되지 않습니다. 여러가지 방법을 시도해봤더니.. 왼쪽 목록에서 build.gradle 오류표시가 사라지지않습니다....테스트와 http://localhost:8080 로 확인 하였으나 따로 오류 발생은 하지 않았습니다. 외부라이브러리만 인식이 안되는 것 같은데 이유를 알수있을까요?build.gradleplugins { id 'java' id 'org.springframework.boot' version '2.7.8' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'jpabook' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' developmentOnly 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //JUnit4 추가 testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } test { useJUnitPlatform() } 외부라이브러리 주소는 implementation("com.github.gavlyukovskiy:p6spy-spring-boot-starter:${version}") implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' 이거 두개 사용해 봤고 깃허브에 나온 버전 다른 것도 사용시 안됨요 memberRepositoryTestpackage jpabook.jpashop; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import ch.qos.logback.core.joran.conditional.IfAction; @RunWith(SpringRunner.class) //스프링과 관련된걸 테스트 할거야~ @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) //롤백안하고 커밋하는 것 public void testMember() throws Exception { //given Member member = new Member(); member.setUsername("memberA"); //when Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); //then Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); System.out.println("findMember==member : "+ (findMember == member)); } }