묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
500에러 ->400에러
안녕하세요 강의를 너무 잘 보고있습니다 감사합니다. public class UserNotFoundException extends RuntimeException{....} RuntimeException을 상속 받으시고(서버에러 5xx) 오류를 뱉으실떈 @ResponseStatus(HttpStatus.NOT_FOUND) (클라이언트에러4xx) 이렇게 달리하시는 이유가 궁금합니다 처음부터 400번대 Exception을상속받으면 안되나요 ?
-
미해결그로스해킹 - 데이터와 실험을 통해 성장하는 서비스를 만드는 방법
monthly active user 의 정의가....이해가 안 가요
저 이미지 첨부파일을 봐주세요. 저 부분 강의를 보고 하는 질문입니다. 선생님은 가입한 월(행) 과 마지막 로그인 한 월(열)로 monthly active user 를 설명하셨는데요. 저는 이 표의 monthly active user 정의가 GA에서의 monthly active user 와 매우 다르지 않나? 생각합니다. 이유: GA에서는 해당 월 동안 총 우리 홈페이지를 들락거린 모든 사람들을 합해서 수치를 보여줍니다. (즉, 2018년에 가입하고 해당 월에 들어와도 카운트, 2015년에 가입하고 해당 월에 들어와도 카운트, 가입 안한 사람도 카운트) 그런데 선생님은 저 열마다의 sum 값이 monthly active user라고 하셨습니다. 그런데 선생님이 예로 들어주신 표에서의 monthly active user는 ★오직 그 해에 가입한 사람들★만 카운트 됩니다. 그쵸??? 그럼 저는 monthly active user 의 개념이 도대체 뭔지 헷갈립니다 선생님이 정의한 대로 먼슬리 유저를 정의해서 회사에 보고하자니....GA먼슬리 유저랑 당연히 달라질테니요... 어떤게 맞는건가요? 프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
선생님 라우터에서
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 라우터에서 component: 부분에서 하이오더 컴포넌트 호출할때요. 매개변수로 name을 안넘겨줘도 값이 제대로 나옵니다. 하이오더 컴포넌트에서도 name을 받지 않아도 어차피 this.$route.name으로 분기 처리를 해서 알아서 구분해 주기 때문에 name으로 매개변수를 받지 않아도 됩니다. 굳이 받으신 이유가 있나요? 저렇게 하면 개발자도구 vue에서 하이오더 컴포넌트가 이름이 없고 Anonymous Component로 바뀌기는 합니다. 추후에 유지보수 차원에서 누가 보냈는지 개발자 도구에서 확인하기 위해서 써주신 건가용? routes > index.js { path: '/newsView', name: 'news', //component: NewsView component: createListView(), }, { path: '/jobsView', name: 'jobs', //component: JobsView component: createListView(), }, { path: '/askView', name: 'ask', //component: AskView component: createListView(), }
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
로그인이안되네요.
로그인하면 석세스안되고 대기중입니다.. 사가쪽에 입력한 이메일 받앗나확인하고 이부분하다가 passport local이랑 index다확인하고 비밀번호제거한값으로 user보내고 했는데 왜안되는지모르겟어요... 로그인 리퀘스트의 state를 확인하니 me부분이 null이라 이거때문인거같긴한데 그래서 사가부분에서 데이터 받앗나 확인한거였거든요 원인을 잘모르겟습니다. 노드 워닝 같이올릴게요.. [nodemon] 2.0.14 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node app.js` 서버 실행중 Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER NOT NULL auto_increment , `email` VARCHAR(30) NOT NULL UNIQUE, `nickname` VARCHAR(30) NOT NULL, `password` VARCHAR(100) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; Executing (default): SHOW INDEX FROM `Users` FROM `react-nodebird` Executing (default): CREATE TABLE IF NOT EXISTS `Posts` (`id` INTEGER NOT NULL auto_increment , `content` TEXT NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `UserId` INTEGER, `RetweetId` INTEGER, PRIMARY KEY (`id`), FOREIGN KEY (`UserId`) REFERENCES `Users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, FOREIGN KEY (`RetweetId`) REFERENCES `Posts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; Executing (default): SHOW INDEX FROM `Posts` FROM `react-nodebird` Executing (default): CREATE TABLE IF NOT EXISTS `Images` (`id` INTEGER NOT NULL auto_increment , `src` VARCHAR(200) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `PostId` INTEGER, PRIMARY KEY (`id`), FOREIGN KEY (`PostId`) REFERENCES `Posts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; Executing (default): SHOW INDEX FROM `Images` FROM `react-nodebird` Executing (default): CREATE TABLE IF NOT EXISTS `Hashtags` (`id` INTEGER NOT NULL auto_increment , `name` VARCHAR(20) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; Executing (default): SHOW INDEX FROM `Hashtags` FROM `react-nodebird` Executing (default): CREATE TABLE IF NOT EXISTS `Comments` (`id` INTEGER NOT NULL auto_increment , `content` TEXT NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `UserId` INTEGER, `PostId` INTEGER, PRIMARY KEY (`id`), FOREIGN KEY (`UserId`) REFERENCES `Users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, FOREIGN KEY (`PostId`) REFERENCES `Posts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; Executing (default): SHOW INDEX FROM `Comments` FROM `react-nodebird` Executing (default): CREATE TABLE IF NOT EXISTS `Like` (`createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `UserId` INTEGER , `PostId` INTEGER , PRIMARY KEY (`UserId`, `PostId`), FOREIGN KEY (`UserId`) REFERENCES `Users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (`PostId`) REFERENCES `Posts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; Executing (default): SHOW INDEX FROM `Like` FROM `react-nodebird` Executing (default): CREATE TABLE IF NOT EXISTS `Follow` (`createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `FollowingId` INTEGER , `FollowerId` INTEGER , PRIMARY KEY (`FollowingId`, `FollowerId`), FOREIGN KEY (`FollowingId`) REFERENCES `Users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (`FollowerId`) REFERENCES `Users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; Executing (default): SHOW INDEX FROM `Follow` FROM `react-nodebird` Executing (default): CREATE TABLE IF NOT EXISTS `PostHashtag` (`createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `PostId` INTEGER , `HashtagId` INTEGER , PRIMARY KEY (`PostId`, `HashtagId`), FOREIGN KEY (`PostId`) REFERENCES `Posts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (`HashtagId`) REFERENCES `Hashtags` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci; Executing (default): SHOW INDEX FROM `PostHashtag` FROM `react-nodebird` db연결 성공 Executing (default): SELECT `id`, `email`, `nickname`, `password`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`email` = 'wjdgksak@naver.com';Executing (default): SELECT `User`.`id`, `User`.`email`, `User`.`nickname`, `User`.`createdAt`, `User`.`updatedAt`, `Posts`.`id` AS `Posts.id`, `Followings`.`id` AS `Followings.id`, `Followings->Follow`.`createdAt` AS `Followings.Follow.createdAt`, `Followings->Follow`.`updatedAt` AS `Followings.Follow.updatedAt`, `Followings->Follow`.`FollowingId` AS `Followings.Follow.FollowingId`, `Followings->Follow`.`FollowerId` AS `Followings.Follow.FollowerId`, `Followers`.`id` AS `Followers.id`, `Followers->Follow`.`createdAt` AS `Followers.Follow.createdAt`, `Followers->Follow`.`updatedAt` AS `Followers.Follow.updatedAt`, `Followers->Follow`.`FollowingId` AS `Followers.Follow.FollowingId`, `Followers->Follow`.`FollowerId` AS `Followers.Follow.FollowerId` FROM `Users` AS `User` LEFT OUTER JOIN `Posts` AS `Posts` ON `User`.`id` = `Posts`.`UserId` LEFT OUTER JOIN ( `Follow` AS `Followings->Follow` INNER JOIN `Users` AS `Followings` ON `Followings`.`id` = `Followings->Follow`.`FollowingId`) ON `User`.`id` = `Followings->Follow`.`FollowerId` LEFT OUTER JOIN ( `Follow` AS `Followers->Follow` INNER JOIN `Users` AS `Followers` ON `Followers`.`id` = `Followers->Follow`.`FollowerId`) ON `User`.`id` = `Followers->Follow`.`FollowingId` WHERE `User`.`id` = 1; (node:3728) UnhandledPromiseRejectionWarning: SequelizeDatabaseError: Unknown column 'Posts.UserId' in 'on clause' at Query.formatError (C:\index\nodeNest\back\node_modules\sequelize\lib\dialects\mysql\query.js:265:16) at Query.run (C:\index\nodeNest\back\node_modules\sequelize\lib\dialects\mysql\query.js:77:18) at processTicksAndRejections (internal/process/task_queues.js:97:5) (node:3728) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:3728) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. Executing (default): SELECT `id`, `email`, `nickname`, `password`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`email` = 'wjdgksak@naver.com';Executing (default): SELECT `User`.`id`, `User`.`email`, `User`.`nickname`, `User`.`createdAt`, `User`.`updatedAt`, `Posts`.`id` AS `Posts.id`, `Followings`.`id` AS `Followings.id`, `Followings->Follow`.`createdAt` AS `Followings.Follow.createdAt`, `Followings->Follow`.`updatedAt` AS `Followings.Follow.updatedAt`, `Followings->Follow`.`FollowingId` AS `Followings.Follow.FollowingId`, `Followings->Follow`.`FollowerId` AS `Followings.Follow.FollowerId`, `Followers`.`id` AS `Followers.id`, `Followers->Follow`.`createdAt` AS `Followers.Follow.createdAt`, `Followers->Follow`.`updatedAt` AS `Followers.Follow.updatedAt`, `Followers->Follow`.`FollowingId` AS `Followers.Follow.FollowingId`, `Followers->Follow`.`FollowerId` AS `Followers.Follow.FollowerId` FROM `Users` AS `User` LEFT OUTER JOIN `Posts` AS `Posts` ON `User`.`id` = `Posts`.`UserId` LEFT OUTER JOIN ( `Follow` AS `Followings->Follow` INNER JOIN `Users` AS `Followings` ON `Followings`.`id` = `Followings->Follow`.`FollowingId`) ON `User`.`id` = `Followings->Follow`.`FollowerId` LEFT OUTER JOIN ( `Follow` AS `Followers->Follow` INNER JOIN `Users` AS `Followers` ON `Followers`.`id` = `Followers->Follow`.`FollowerId`) ON `User`.`id` = `Followers->Follow`.`FollowingId` WHERE `User`.`id` = 1; (node:3728) UnhandledPromiseRejectionWarning: SequelizeDatabaseError: Unknown column 'Posts.UserId' in 'on clause' at Query.formatError (C:\index\nodeNest\back\node_modules\sequelize\lib\dialects\mysql\query.js:265:16) at Query.run (C:\index\nodeNest\back\node_modules\sequelize\lib\dialects\mysql\query.js:77:18) at processTicksAndRejections (internal/process/task_queues.js:97:5) (node:3728) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2) Executing (default): SELECT `id`, `email`, `nickname`, `password`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`email` = 'wjdgksak@naver.com';Executing (default): SELECT `User`.`id`, `User`.`email`, `User`.`nickname`, `User`.`createdAt`, `User`.`updatedAt`, `Posts`.`id` AS `Posts.id`, `Followings`.`id` AS `Followings.id`, `Followings->Follow`.`createdAt` AS `Followings.Follow.createdAt`, `Followings->Follow`.`updatedAt` AS `Followings.Follow.updatedAt`, `Followings->Follow`.`FollowingId` AS `Followings.Follow.FollowingId`, `Followings->Follow`.`FollowerId` AS `Followings.Follow.FollowerId`, `Followers`.`id` AS `Followers.id`, `Followers->Follow`.`createdAt` AS `Followers.Follow.createdAt`, `Followers->Follow`.`updatedAt` AS `Followers.Follow.updatedAt`, `Followers->Follow`.`FollowingId` AS `Followers.Follow.FollowingId`, `Followers->Follow`.`FollowerId` AS `Followers.Follow.FollowerId` FROM `Users` AS `User` LEFT OUTER JOIN `Posts` AS `Posts` ON `User`.`id` = `Posts`.`UserId` LEFT OUTER JOIN ( `Follow` AS `Followings->Follow` INNER JOIN `Users` AS `Followings` ON `Followings`.`id` = `Followings->Follow`.`FollowingId`) ON `User`.`id` = `Followings->Follow`.`FollowerId` LEFT OUTER JOIN ( `Follow` AS `Followers->Follow` INNER JOIN `Users` AS `Followers` ON `Followers`.`id` = `Followers->Follow`.`FollowerId`) ON `User`.`id` = `Followers->Follow`.`FollowingId` WHERE `User`.`id` = 1; (node:3728) UnhandledPromiseRejectionWarning: SequelizeDatabaseError: Unknown column 'Posts.UserId' in 'on clause' at Query.formatError (C:\index\nodeNest\back\node_modules\sequelize\lib\dialects\mysql\query.js:265:16) at Query.run (C:\index\nodeNest\back\node_modules\sequelize\lib\dialects\mysql\query.js:77:18) at processTicksAndRejections (internal/process/task_queues.js:97:5) (node:3728) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3) 이건 git주소입니다. https://github.com/MaJunghan/Next.js-and-node 확인하시면 다시 private으로 변경하겠습니다.
-
미해결웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
산술연산자로 취약점 판별하는 방법..
강의 잘 듣고 있습니다 강사님! 인젝션 취약점 존재여부 확인방법 보는중 한가지 문의가 있습니다. 숫자형일때 산술연산이 가능한지 보는것과, case when 구문이 가능한 경우 이게 왜 injection 에 취약한건지요? test 검색어를 te' 'st 로 검색했을때도 값이 정상적으로 나오는건 sql 조작어인 ' 를 적절히 필터링하거나 대응해주지 못해서인건 알겠습니다만..
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
30강 로그인 질문
안녕하세요. 정말 잘 보고 있습니다. mongo db에서 register로 위와 같은 아이디, 비밀번호로 등록을 해주었는데 왜인지 모르겠지만 위와 같은 오류로 로그인 다음을 진행할 수 없는 상황입니다. - 이메일 주소 속의 @를 읽지 못하고 있으며 - 이상하게 비밀번호인 1234567에다가 @를 넣으라는 오류인데 조언을 구할 수 있을까요? 우선 postman을 통해 비밀번호에 @가 들어가게 다시 register 해줄 계획이긴한데, 이게 본질적인 해결은 아닐 것 같아서 조언 구해봅니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
mongoDB 의 모델의 역할
module.exports = mongoose.model('User', userSchema) 와 같은 스키마를 감싼 모델(mongodb의 컬렉션)을 이용하면const user = new User(req.body) 와 같이 req 정보를 이용하여 모델 인스턴스를 만든다음에이걸 다시 save 메서드를 통해 mongoDB의 User(users) 컬렉션에 저장할 수도 있고,User.findOne({ email: req.body.email }, (err, user) => { //요청한 email이 db정보 안에 있을 때 해당 db정보를 담은 객체 user 가 생성된다. if (!user) { return res.json({ loginSuccess: false, message: "제공된 이메일에 해당하는 유저가 없습니다." }) }와 같이 User(users)컬렉션에 접근(조회)하여 해당 객체를 찾을 수도 있다. 결론: mongoDB의 모델은 모델 인스턴스를 생성할 수도 있고, DB에 접근하여 값을 조회,수정 등등을 할 수 있다라고 이해했는데 맞는 것인지 궁금합니다. 역할이 다양한게 조금 헷갈려서 질문드립니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
dict 수업중에 popitem이 임의의 값을 추출해온다고 하셨는데
리스트 수업에서였나 pop 값이 맨 뒤의 결과값을 빼낸다고 이해했는데 popitem은 임의의 값을 꺼내온다고 하셔서요 몇번 돌려봐도 임의의 값이 아니라 맨 뒤의 결과값이 꺼내져오는것같은데 혹시 제가 이해를 잘못했을까요? 아니면 프로그램의 결과값이 우연의 일치로 그런걸까요ㅠㅠ??
-
해결됨핵심만 쉽게, 모두의 SQL 데이터 분석
오라클 계정 문의
안녕하세요 Oracle developer 다운받고 강의 수강중인데요 사용자 계정에 oracle, 실습용 HR계정은 따로 만들어야 하는건가요?
-
해결됨Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
선생님 하이오더 컴포넌트를 사용하는 이유는 무엇인가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 선생님 하이오더 컴포넌트가 CreateListView.js이잖아요. 이걸 쓰는 이유가 중복되는 코드의 재사용이라고 하셨는데요. NewsView, JobsView, AskView에서 List로 뿌려주는 부분이 공통적이기 ListView.vue라는 공통 컴포넌트를 만들어 줬잖아요. 그렇다면 데이터를 불러오는 부분이 공통적이면 ListView.vue처럼 공통적인 소스코드를 넣을 컴포넌트를 만들면 되지 않나요? js파일이라는 하이오더 컴포넌트랑 공통부분을 따로 뺀 vue 파일이랑 어떤 부분이 차이점이 있는지 잘 이해가 되지 않습니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
이미지 업로드시 None of these files exist 에러가 뜹니다.
경로안에 이미지 이름 안틀리고 그대로 넣었는데 basketball1.jpeg파일이 없다고 뜹니다. 뭐가 문제인지 알려주실수 있을까요??
-
해결됨Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
이벤트 버스 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 안녕하세요. 질문이 두가지 있습니다. bus.$emit('start:spinner'); 에서 start: spinner는 무슨 구조인가요? 예를들어 객체: 메소드 뭐 이런것처럼 앞에 : 뒤에 각각 뭐를 써줘야 하는건가요? 그리고 여기서의 이벤트 버스는 스피너라는 이벤트를 NewsView, jobsView, askView에서 호출하고 그걸 App.vue에서 받아서 화면에 보여주는 거잖아요. vue.js가 모든 컴포넌트들을 app.vue에 최종적으로 모아서 하나의 페이지로 보여주는 SPA이니.. 항상 이벤트 버스의 이벤트를 받는건 APP.VUE가 되는건가요?
-
미해결초보를 위한 도커 안내서
스프링 이미지업로드 경로
스프링부트에서 이미지 경로를 file:path:/var/lib/photo 로 설정한 뒤에 compose 에서 볼륨 옵션으로 ./photo:/var/lib/photo 이렇게 설정을 했습니다. 근데 이미지파일을 업로드 해도 화면상에서는 잘 보이는데 exec bash 명령어로 해당 폴더에 들어가보아도 .png 파일이 보이지 않습니다. ㅠㅠㅠㅠㅠ 이런 경우 파일업로드 경로를 다르게 해주어야하나요??
-
해결됨스프링 시큐리티
안녕하세요 항상 감사한 정수원강사님
안녕하세요. 항상 강의 잘듣고있는 학생입니다. 스프링 시큐리티보단 스프링 프레임워크 질문쪽에 조금 더 가까울 것같아 미리 양해드립니다. 이 부분에서 userDetailsService 를 상속받는데 CustomUserDetailsService클래스의 빈네임을 @Service("userDetailService")로 따로 지정하지 않고 @Service 만 선언해주어도 따로 에러가 나지 않는 것으로 보여지는데, 왜 이런 부분이 가능한지가 궁금합니다. 또 추후 문제가 발생할 여지가 있는지도 궁금합니다. 항상 좋은 강의 감사합니다.
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
multi thread 안정성 설명하신 부분 문의 드립니다
안녕하세요. 강의 56초 부분 문의 드립니다. 각 쓰레드가 다른 instance를 가지게 된다고 설명해 주셨는데요. 직관적으로 이해하면 이 때의 instance는 지역변수가 아니므로 힙 메모리를 참조하고 있으니 뒤에 오는 쓰레드가 instance에 값을 덮어쓸 것 같습니다. 메모리가 아닌 캐시를 참조한다고 해도 각 쓰레드가 같은 캐시를 참조할 수 있을 것 같아요. 혹시 이 경우에 각 쓰레드가 다른 instance를 각각 가지게 되는 이유가 무엇인지 궁금합니다..!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
CS0103 오류가 생겼습니다
안녕하세요. 강의를 따라하던 중 UI_Button.cs에서 Bind함수의 for문 안에 Util을 넣는 순간(?) 유니티에서 아래와 같은 오류가 떴습니다. 강의를 다시 보며 확인해봤지만 어느부분에서 틀린건지 찾지 못해서 도움을 요청합니다...ㅜㅠ UI_Button.cs 코드입니다 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UI_Button : MonoBehaviour { Dictionary<Type, UnityEngine.Object[]> _objects = new Dictionary<Type, UnityEngine.Object[]>(); enum Buttons { PointButton } enum Texts { PointText, ScoreText } private void Start() { Bind<Button>(typeof(Buttons)); Bind<Text>(typeof(Texts)); } void Bind<T>(Type type) where T : UnityEngine.Object { string[] names = Enum.GetNames(type); UnityEngine.Object[] objects = new UnityEngine.Object[names.Length]; _objects.Add(typeof(T), objects); for (int i = 0; i < names.Length; i++) { objects[i] = Util.FindChild<T>(gameObject, names[i], true); } } int _score = 0; public void OnButtonClicked() { _score++; } } Util.cs 코드 입니다 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Util { public static T FindChild<T>(GameObject go, string name = null, bool recursive = false) where T : UnityEngine.Object { if (go == null) return null; if(recursive == false) { for (int i = 0; i < go.transform.childCount; i++) { Transform transform = go.transform.GetChild(i); if (string.IsNullOrEmpty(name) || transform.name == name) { T component = transform.GetComponent<T>(); if (component != null) return component; } } } else { foreach(T component in go.GetComponentsInChildren<T>()) { if (string.IsNullOrEmpty(name) || component.name == name) return component; } } return null; } }
-
미해결주니어 기획자에게 꼭 필요한 업무 스킬과 용어를 한번에!
퀴즈 접속이 안됩니다.
링크에서 퀴즈 풀고 싶은데 권한이 없다고 나옵니다.
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
소수를 입력했는데 바로 발리데이션 에러가 일어났어요 !
강의 내용에서는 소수를 입력해도 아웃풋에 정수로 변환되어 나오는데 저는 소수를 입력하면 요렇게 바로 string으로 인식해버리는것 같습니다...
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
안녕하세요 강사님
안녕하세요 강사님 지금 boiler-plate register 부분에서 막히는데요 _id : 617e90b00c0aa29d27fa84ea role : 0 __v : 0 db에 이렇게 밖에 저장이 안되네요 postman success 이구요 { "name": "test1", "email": "test12@naver.com", "password" : "12312sssss31" } 이게 계속 해결이 안되는데 혹시 몽고디비설정문제인지 모르겠네요 ㅜㅜ git 주소입니다. boiler-plate/index.js at main · speensta/boiler-plate (github.com)
-
미해결라즈베리파이 IoT 프로그램과 클라우드 입문 과정
노트북에 연결하면 화면 안뜨나요?
노트북에 연결하면 화면 안뜨나요?