묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
useFactory 사용시 resource 파일 분리 후 di 방법
먼저 너무 좋은 ADMIN 대시보드 라이브러리를 알려주셔서 감사합니다. 해당 라이브러리로 몇가지 테스트해보는 중인데 adminJsOptions가 너무 길어져 resources를 별도의 파일로 분리하려 하고 있습니다. 하다보니 이미 factory로 blogModel을 inject하고 있는데 resources를 별도의 파일로 분리하려고 보니 blogModel을 분리한 파일에서 어떻게 가져와야할지 막막하더라구요. adminjs뿐아니라 다른 모듈을 사용할때도 useFactory를 통해 di를 해주는경우가 많은데 이럴때는 분리된 파일에는 어떻게 의존성을 주입해줘야 할까요??? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 import * as AdminJSMongoose from '@adminjs/mongoose'; import { AdminModule as AdminBroModule } from '@adminjs/nestjs'; import { Module } from '@nestjs/common'; import { getModelToken } from '@nestjs/mongoose'; import AdminJS from 'adminjs'; import { Model } from 'mongoose'; import { UsersModule } from 'src/users/users.module'; import { User } from 'src/users/users.schema'; import { after, before } from './hooks/users.hooks'; AdminJS.registerAdapter(AdminJSMongoose); @Module({ imports: [ AdminBroModule.createAdminAsync({ imports: [UsersModule], inject: [getModelToken(User.name)], useFactory: (usersModel: Model<User>) => ({ adminJsOptions: { rootPath: '/admin', resources: [ { resource: usersModel, options: { navigation: { name: null, icon: '', }, properties: { email: { isTitle: false, position: 1, }, name: { isTitle: true, }, _id: { isVisible: { list: false }, }, password: { isVisible: false, }, }, actions: { edit: { isAccessible: isAdmin }, delete: { isAccessible: isAdmin }, new: { isAccessible: isAdmin }, show: { isAccessible: isAdmin, }, list: { isAccessible: isAdmin }, custom_delete: { actionType: 'record', icon: 'TrashCan', guard: 'doYouReallyWantToDoThis', variant: 'danger', before: before, after: after, handler: async (request, response, context) => { const user = context.record; await usersModel.findOne({_id: request.params.id}); console.log('custom handler!!!'); return { record: user.toJSON(context.currentAdmin), }; } }, }, }, }, ], }, auth: { authenticate: async (email, password) => { const user = await usersModel.findOne({ email: email }); if (user) { const matched = user.password === password; if (matched && user.role === 'ADMIN') { return user.readOnlyData; } } return null; }, cookieName: 'cookie-test', cookiePassword: 'test', }, }), }), ], }) export class AdminModule {} const isAdmin = ({ currentAdmin }) => currentAdmin && currentAdmin.role === 'ADMIN'; resource 코드 분리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 import * as AdminJSMongoose from '@adminjs/mongoose'; import { AdminModule as AdminBroModule } from '@adminjs/nestjs'; import { Module } from '@nestjs/common'; import { getModelToken } from '@nestjs/mongoose'; import AdminJS from 'adminjs'; import { Model } from 'mongoose'; import { UsersModule } from 'src/users/users.module'; import { User } from 'src/users/users.schema'; import { after, before } from './hooks/users.hooks'; import { userResource } from './resources/users.resource'; AdminJS.registerAdapter(AdminJSMongoose); @Module({ imports: [ AdminBroModule.createAdminAsync({ imports: [UsersModule], inject: [getModelToken(User.name)], useFactory: (usersModel: Model<User>) => ({ adminJsOptions: { rootPath: '/admin', resources: [ userResource ], }, auth: { authenticate: async (email, password) => { const user = await usersModel.findOne({ email: email }); if (user) { const matched = user.password === password; if (matched && user.role === 'ADMIN') { return user.readOnlyData; } } return null; }, cookieName: 'cookie-test', cookiePassword: 'test', }, }), }), ], }) export class AdminModule {} const isAdmin = ({ currentAdmin }) => currentAdmin && currentAdmin.role === 'ADMIN'; 함수로 만들어 파라미터로 넘겨주는 방법밖에 없을까요???
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
선생님! TIL과 오늘 작성한 코드 정리가 헷갈립니다.
덕분에 길잡이를 하고 있는 개발 입문자입니다!! 깃헙에서 해야할 것들에서 설명해주신 TIL저장소를 만들어서 매일 공부한 내용을 저장하라는 말씀과 다음내용의 기술서적, 학원강의, 인강을 수강하며 작성한 코드를 올리는 Github저장소를 만들고 관리하라고 말씀해주셨는데요! 제가 보기에 TIL과 기술서적, 학원강의, 인강을 수강하며 작성한 코드 올리는 것의 차이를 잘 모르겠습니다ㅠㅠ
-
미해결홍정모의 따라하며 배우는 C++
uintpr_t와 void*의 차이점
안녕하세요. 2.1강 강의 1분 40여초 부터 나오는 예시 코드에서 (uintptr_t)를 사용해주는 이유가 궁금해서 질문 남깁니다. int i = -1; cout << (uintptr_t)static_cast<void*>(&i) << endl; cout << static_cast<void*>(&i) << endl; cout << &i << endl; 를 차례로 출력을 했을 때 7731616 0075F9A0 0075F9A0 가 출력이 되었는데요. &연산자가 해당 변수가 저장된 주소를 가리킨다고 이해하고 (void*)의 경우 Datatype을 모르는 상태에서도 주소를 가리킬 수 있는 포인터라고 알고 있는데요. (uintptr_t)의 역할이 무엇인지 궁금하여 질문 남깁니다. 16진수를 10진수로 출력하기 위해 사용하는 것인가요? 제가 참고한 자료는 https://stackoverflow.com/questions/40941825/understanding-void-against-intptr-t-and-uintptr-t https://stackoverflow.com/questions/1845482/what-is-uintptr-t-data-type 등이 있는데 아직 잘 이해가 되질 않네요...ㅠㅠ
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
업로드한 이미지가 다르게 나옵니다
사진처럼 폼이 아래에 있는데 아래는 제가 작성한 코드입니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
뒤집은 소수 질문입니다.
<script> function solution(n, arr){ let answer; let reversedNumberArray = [] arr.forEach(item => { let reversedText = '' item.toString().split('').reverse().forEach(item => reversedText += item) reversedNumberArray.push(Number(reversedText)) }) answer = reversedNumberArray.filter(item => { if(item === 1) return false for(let i=2; i <= Math.sqrt(item); i++){ if(item % i === 0) return false } return true }) return answer; } let arr=[32, 55, 62, 20, 250, 370, 200, 30, 100]; console.log(solution(9, arr)); </script> Number('001') 은 1로 변환되기에 이렇게 코드를 짜봤는데요, 문제가 있을까요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
SyntaxError: invalid syntax 가 자꾸 나타납니다
맥북에서 수업을 듣고 있습니다. 프린트 함수까지는 되는데 세퍼레이터 함수부터 작은따옴표? 문제인지 수업내용과 다르게 나오고 SyntaxError: invaild syntax가 나와서 화면처럼 구현이 되지 않습니다. 그리고 autocomplete-python traceback output 이런 안내문구가 작성창 옆에 계속 뜨는데 설정을 잘못한건가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
파라미터바인딩 질문입니다.
안녕하세요. 파라미터 바인딩은 꼭 해줘야하는건가요?? 이 코드를 이렇게해도 정상적으로 실행되던데 꼭해야하는건가요?? 혹시 다른 파라미터를 변수로 받아야할때 쓰는거면 "select m from Member m where m.username = " + 변수 이렇게도 슬수있을거같아서요 ㅠㅠ 너무초보라 죄송합니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
Messages Framework 작성하는 중인데 부트스트랩이 깨지고 닫기버튼이 눌리지 않아요
안녕하세요 강사님! 메세지 프레임워크 적용시 사진과 같이 깨지고 버튼도 안눌리는데 제 코드에 문제가 있는건가요? {% load bootstrap4 static %} <!DOCTYPE html> <html lang="kr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script> <script src="https://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script> </head> <body> <div class="container"> <div class="row"> <div class="col-sm-12"> {% bootstrap_messages %} <!-- 아래 방법도 똑같음, 직접 커스텀 가능 --> <!-- {% if messages %} <div class="messages"> {% for message in messages %} <div class="alert alert-{{ message.tags }}"> {{ message.message }} </div> {% endfor %} </div> {% endif %} --> </div> </div> </div> {% block content %} {% endblock content %} </body> </html>
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습
klay ide 업데이트
안녕하세요 클레이튼에서 IDE가 업데이트가 되서 수업을 따라가는데 문제가 생겼습니다. 혹시 지금 시점에서의 클레이ide를 가지고 강의를 완강하는데 한번 살펴봐줄실 수 있을까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리렌더링 관련 질문 드립니다.
안녕하세요. 강의 잘 수강하고 있습니다. 다름이 아니라 리렌더링 강좌에서 궁금한게 생겼는데 inLine style을 적용하지 않고 className으로 css를 적용했을 때는 리렌더링이 일어나는지 궁금합니다. 테스트를 진행 해보려고 했는데 css는 테스트를 어떻게 진행해야 하는지 방법이 안떠올라 질문 드립니다.. 감사합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
memberList (NullPointerException) 오류 질문 드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 안녕하세요! 선생님 강의로 Java Spring Boot 기초를 다지고 있는 신입 개발자입니다. 먼저, 이런 고퀄리티 강의를 인프런을 통해 접하게 된 것에 큰 기쁨을 느낍니다! 선생님 강의를 보며 Spring 길을 따라가고 있는데요. [회원 웹 기능 - 조회 부분]에서 `java.lang.NullPointerException: null` 에러가 발생했습니다. 로그를 따라가 보면 `MemoryMemberRepository`, `MemberService`, `MemberController` 순으로 로그가 찍힙니다. [에러가 발생하는 지점]은, 1. "home"에서 회원 등록 후 "home"으로 리다이렉트 2. 리다이렉트 후 다시 회원 등록시 입니다. - home.html ["This application has no explicit mapping for /error, so you are seeing this as a fallback."] - Terminal ["java.lang.NullPointerException: null"] [시도해본 방법] java.lang.NullPointerException: null 에러를 구글링 하여 문제가 무엇인지 파악하려고 노력했습니다. 1. `MemberService.java` 회원가입 부분 findByName.ifPresent => validateDuplicateMember {findByName} 으로 변경하여 시도하였습니다. 2. try ~ catch 추가하여 NPE가 발생하지 않도록 수정하여 시도하였습니다. 하지만 문제를 파악하지 못했습니다. 제 얕은 자바 지식 때문입니다 :( ... 제 소스의 링크입니다. 살펴봐 주시면 정말 감사할 것 같습니다 ㅠㅠ 프로젝트압축링크
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
CASCADE.ALL 설정 후 REMOVE시 동작문의
안녕하세요. cascade에 설정과 관련되서 질문드립니다. 부모 엔티티와 자식 엔티티의 관계는 아래코드 처럼 관계를 설정했습니다. >>부모엔티티 @OneToOne(mappedBy = "item", cascade = CascadeType.ALL) private Movie movieItem; >>자식엔티티 @OneToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "id") private Item item; 영속성 전이를 ALL로 설정했으니 부모엔티티를 remove할때 자식엔티티도 같이 remove 되야된다고 생각했는데 실제로 동작시켜보면 remove가 되지 않고 exception이 발생을 합니다. (.m.m.a.ExceptionHandlerExceptionResolver[0;39m [2m:[0;39m Resolved [org.springframework.dao.InvalidDataAccessApiUsageException: No sources given; nested exception is java.lang.IllegalArgumentException: No sources given]) 그래서 명시적으로 자식.remove -> 부모.remove를 연달아 호출을 시켜줬는데 exception 발생내용은 동일하게 발생하더라구요 영속성전이만으로는 remove가 되지 않는 것인지 궁금하고, 명시적으로 remove를 시켰음에도 불구하고 왜 삭제가 되지 않는 것인지 질문드립니다~!
-
미해결웹 게임을 만들며 배우는 React
Router 작성시 오류가 나오고 있습니다..
어떤 링크를 클릭해도 아래와 같은 에러가 나오고 있습니다. 어떤 이유인지 알 수 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
디버깅할때 문제
19:00분에서 유니티에 연결하고 breakPoint잡으신부분이 유니티에서 실행하면 비쥬얼스튜디오 딱 열리고 data에 뭐뭐가 들어가있는지 영상처럼 안뜨는데 문제가 무엇일까요?? 저는 breakpoint를 잡고 실행한뒤에 비쥬얼 스튜디오로 돌아오면 뭐 아무것도 안나옵니다... 영상처럼 Unity에 연결하는 부분이 없습니다
-
미해결PWA 시작하기 - 웹 기술로 앱을 만들자
깃헙 권한 요청 드립니다.
인프런 아이디 : madalli 인프런 이메일 : madalli79@gmail.com 깃헙 아이디 : madalli 깃헙 Username : madalli
-
미해결팀 개발을 위한 Git, GitHub 입문
ppt자료 요청드립니다.
좋은 강의 감사드립니다! 아래 이메일로 PPT 자료 요청드립니다. 감사합니다. yskkr14@gmail.com
-
미해결함수형 프로그래밍과 JavaScript ES6+
fxjs 에 보면 강의에서 유용하게 사용하고 추천하신 get 함수가 보이지 않는데 이유가 있으실까요? 궁금합니다.
fxjs 에 보면 강의에서 유용하게 사용하고 추천하신 get 함수가 보이지 않는데 이유가 있으실까요? 궁금합니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
회원가입에서 다른 필드를 추가하고 싶을때 어떻게 하나요??
. 맨 위에가 유저모델이고 두번째 사진이 accounts앱에서의 시리얼라이저입니다. 마지막 사진은 restframe work에 모든 정보를 기입하고 post 했을 경우인데 checkpw, name, phone_number가 비어진채로 유저가 생성되는데 다른 필드를 기입하려면 serializer에서 어떻게 추가하면 되나요??
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
질문있습니다 ㅎㅎ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 요즘 현업에서도 docker로 데이터베이스를 사용하나요?
-
해결됨대세는 쿠버네티스 (초급~중급편)
Calico NetworkPlugIN Iptables
안녕하세요. 궁금한것이 있어 질문올립니다! Calico에 WorkerNode1의 PodB랑 WorkerNode2 PodD가 통신을 하는 경우를 보면 kube-proxy mode가 iptable 모드임에도 불구하고 iptables로 트래픽이 안가는 것처럼 보여지는데 혹시 Calico의 경우에는 외부통신(사설통신[NodePort] 포함)할때만 Iptables로 트래픽이가서 DNAT가 되는건가요!? 그에 반에 Kubenet PlugIN을 사용할때는 각각WorkNode위의 pod가 통신할때 ipables를 사용를 통해 가는것 처럼 보이는데 설명한번만 부탁드립니당!