묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
attention 기법 관련 질문입니다
안녕하세요 강의에서 spatial, channel attention으로 attention을 구하는 방법과 Key, Query, Value로 attention을 구하는 방법을 따로 소개해주셨는데, 이는 서로 다른 attention 기법으로 이해하면 되는 것인가요?
-
미해결쉽게 시작하는 쿠버네티스(v1.35)
kubectl get pods 명령어에서 pendingt 상태지속
안녕하세요. pods 배포실습 과정 따라하는 중에 pod이 pending 상태로 지속되어서 질문 남깁니다. 이전 질문들을 보고 describe 명령어를 쳐서 원인이 toleration관련 오류인것같아 구글검색후 이것저것 찾아보며 'kubectl taint nodes node01 spray=mortein:NoSchedule' 명령어를 한번해보고 안되는것같아 'kubectl taint nodes node01 spray=mortein:NoSchedule-' 를 통해 다시 untaint 진행후의 상태입니다. 그래서 warning메세지가 2개 발생하는것 같습니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
비바도 에러에 대해서 문의드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 최근에 비바도에서 비트스트림 생성할 때, 이런 문구가 계속나오는데 원인을 알 수 있을까요?
-
해결됨Do it! 자바 프로그래밍 입문 with 은종쌤
toString 관련 질문
안녕하세요 toString 관련 질문입니다 Book book = new Book("asdf", " zxcv"); System.out.println(book); 부분인데요 book 넣으면 처음엔 object.Book@237894 가 나왔는데요 이부분이 getClass().getName() + "@" + Integer.toHexString(hashCode()); 이렇게 되어있는 건 이해했습니다 이해가 안 되는 건 왜 toString() 이 호출되는지 입니다. System.out.println은 book이라는 객체를 매개변수로 넣었는데 왜 book(또는 그 부모 class)의 toString을 찾아서 화면에 호출하나요? 제 생각엔 System.out.println 말고 다른 곳에서 써도 book은 toString()을 반환할 거 같은데 1. 왜 book을 넣으면 toString을 반환하나요? 2. book을 넣으면 toString을 반환하게 하는 관련 소스 위치를 알 수 있을까요?
-
미해결
json에서 number type 최대 크기 질문
json에서 number type 최대 크기 얼마만큼 되나요?
-
미해결자바 입문자를 위한 강의
run as
강의대로 따라온거같은데 run as 했을 때 자바 api가 없는데 자바가 안깔렸다는걸까요? cmd버전에 자바1.8로 뜨고 한게 자바 설치된거같은데.. 이유를 모르겠습니다 - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결퍼블리셔, 신입 프론트 개발자를 위한 실무에서 써먹는 실전 jQuery 설명서
강의 코드 자료 공유 관련
강의 코드 중에 list_ajax.jsp 를 다운 받고 싶은데 어디서 받을 수 있나요 ??
-
미해결React 기반 Gatsby로 기술 블로그 개발하기
안녕하세요? 혹시 createRef를 사용하신 이유에 대해 좀 더 자세히 알 수 있을까요?
createRef를 쓰면 리렌더링시마다 초기화가 되어서 함수형에는 사용하지 않는다고 들었는데 쓰신 이유는 의도적으로 div를 초기화하시기 위한 건가요?
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
pick 이렇게 만드는건 어떤가요?
const obj2 = { a: 1, b: 2, c: 3, d: 4, e: 5 }; const pick = (arr, obj) => _.go( obj2, L.entries, L.filter(([k, v]) => arr.includes(k)), L.map(([k, v]) => [k, v]), object ) console.log(pick(['b', 'c', 'z'], obj2));.
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
게시판 작성 후 상세보기로 redirect시 오류
훌륭하신 강의 덕분에 잘 따라가고 있는데... 여기서 에러가 나서 도저히 진도가 안나가네요.. 게시판 작성 후 --> 게시판상세보기에서 (DB은 입력되지만, redirect(url_for ~~)에서 에러가 발생해서 진도가 못나가고 있어요구글링을 해 봤는데 도저히 해결책이 없습니다. -------------------------------------------------------------------- from flask import Flask from flask import request from flask import render_template from flask_pymongo import PyMongo from datetime import datetime from bson.objectid import ObjectId from flask import abort from flask import redirect from flask import url_for app = Flask(__name__) app.config["MONGO_URI"] = "mongodb://localhost:27017/myweb" mongo = PyMongo(app) @app.route('/view') def board_view(): idx = request.args.get("idx") if idx is not None: board = mongo.db.board data = board.find_one({"_id":ObjectId(idx)}) if data is not None: result = { "id" : data.get("id"), "name" : data.get("name"), "title" : data.get("title"), "contents" : data.get("contents"), "isdate" : data.get("isdate"), "view" : data.get("view") } return render_template("view.html", result=result) return "" @app.route('/write', methods=["GET","POST"]) def board_write(): if request.method == "POST": name = request.form.get("name") title = request.form.get("title") contents = request.form.get("contents") isdate = round(datetime.utcnow().timestamp() * 1000) view=0 print(name,title,contents,isdate,view) board = mongo.db.board post = { "name" : name, "title" : title, "contents" : contents, "isdate" : isdate, "view" : view } x = board.insert_one(post) print(x.inserted_id) return redirect(url_for("board_view"),idx=x.inserted_id) else: return render_template("write.html") if __name__ == "__main__": app.run(host="127.0.0.1", debug=True, port=5000) -------------------------------------------------------------------- x = board.insert_one(post) print(x.inserted_id) return redirect(url_for("board_view"),idx=x.inserted_id) 도 안되고 return redirect(url_for("board_view"),idx=str(x.inserted_id)) 이것도 안됩네요
-
미해결[발표스피치] 대기업 임직원, 스타트업 대표들이 배우는 청중을 사로잡는 발표 방법!
발표스피치 오늘부터 시작
오늘부터 발표스피치 강의를 개시하였습니다. 다른 클래스 프로그램에서는 커뮤니티를 통해 피드백도 주시고 하는 것으로 알고 있는데 인프런에서는 어떻게 진행하게 되는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
Annotations are not allowed here 에러
1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용] 안녕하세요, Java도 스프링도 intelliJ도 처음이라 강의 하나하나 따라가고 있습니다: 컴포넌트 스캔 - 필터 강의에서 다음과 같은 에러를 만났습니다. annotation import를 했는데 여기서 사용할 수 없다는 에러였는데요, 다른분들은 문제가 없으신지 검색이 되지 않고구글링에서 나오는 경우들은 class에 붙여야 할 어노테이션을 메소드에 붙이고 있는 식으로 위치가 잘못되어있는 것 같은데 이건 그런 경우도 아니라서 오리무중인 상태입니다... IDE가 제공하는 Fix도 해당 라인 remove밖에 없구요. 뭐가 문제인 걸까요?
-
해결됨스프링 핵심 원리 - 고급편
애노테이션 @Transactional의 위치 질문입니다.(AOP 관련)
안녕하세요 김영한님! 강의를 다 듣고나서 트랜잭션 AOP의 동작원리를 알 수있게 되어 정말 감사합니다. 다만 제가 궁금한건 애노테이션 @Transactional입니다. 주로 서비스의 메소드에 적용하는데 클래스에도 붙일 수 있더군요. @Service@Transactional(readOnly = true)public class ProductService { 강의에서는 AOP 적용위치는 생성자, 필드 값 접근, static 메서드 접근, 메서드 실행 이라고 말씀하셨는데 저 애노테이션은 AOP와 관련이 없는건가요? 아님 내부적으로 클래스 단위에 붙일 때는 클래스 하위 메소드에도 전부 적용하도록 내부 코드에 설정이 되어있는건가요? (흑흑 강의를 다시 들어야하는 걸까요?) 질문 읽어주셔서 감사합니다!
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
새로 올리신 리액트쿼리 버전에서 getServerSideProps대신 getStaticProps 쓰는 이유가 궁금합니다.
안녕하세요. 자꾸 귀찮게 해드려서 죄송합니다. 리액트쿼리로 바꾸신거 조금씩 따라하면서 변형하고 있는데 /user/[id] /post/[id] 에서 getServerSideProps대신 getStaticProps 로 바뀐걸 봤습니다. 정적은 빌드시에 데이터 불러오는거라서 데이터 변경가능성이 있는 post/[id]같은 경우는 정적을 쓰면 안될것같은 느낌인데 무슨 장점이나 혹시 바꾸신 이유가 있을까요? 그리고 queryClient.prefetchQuery에 대해서도 궁금한점이 있습니다. 현재 상품을 등록하는 /item/register.tsx를 작성중이고 로그인된 유저에서 정보를 가져와야 해서 서버사이드 랜더링을 적용중에 있습니다. 유저정보를 가져오는 api export function loadMyInfoAPI() { return axios.get('/user').then((response) => response.data); } back에서 라우터 부분 // 로그인 유저 정보 얻기 router.get('/', async (req, res, next) => { // GET /user 로그인 유지 위해 로그인한 유저의 정보 전송 console.log('req.user?', req.user); try { if (req.user) { // 로그인 됐을경우 const userDataWithoutPassword = await User.findOne({ // 프론트로 보낼 유저 정보를 재가공 where: { id: req.user.id }, attributes: { exclude: ['password'], // 비밀번호 제외 }, include: [ { model: User, as: "Customers", attributes: ["id", "company"], exclude: ['UsersRelation'], } ] }) res.status(200).json(userDataWithoutPassword); console.log(JSON.stringify(userDataWithoutPassword)); } else { res.status(200).json(null); } } catch (error) { console.error(error); next(error); } }); 프론트 /item/register.tsx에서 기본 골자는 const Register = () => { ... const { data: myUserInfo } = useQuery<User>('user', loadMyInfoAPI); ... 중략 return ( <AppLayout> <div>{JSON.stringify(myUserInfo)}</div><br /> ... 중략 <div> <List className="demo-loadmore-list" itemLayout="horizontal" dataSource={myUserInfo.Customers} renderItem={(item) => ( <List.Item key={item.id} actions={[ <> <Button type="primary" shape="circle">등록</Button> </> ]} > <List.Item.Meta title={ <> {item.company}<span> | </span><span>담당자: {item.id}</span> </>} /> </List.Item> )} /> </div> 이렇게 로그인된 유저 정보를 출력해주는 부분이 있습니다. myUserInfo.Customers는 me.followers와 흡사한 개념으로 맍들었고요. 서버사이드 랜더링은 export const getServerSideProps = async (context: GetServerSidePropsContext) => { const cookie = context.req ? context.req.headers.cookie : ''; axios.defaults.headers.Cookie = ''; if (context.req && cookie) { axios.defaults.headers.Cookie = cookie; } const response = await loadMyInfoAPI(); if (!response) { return { redirect: { destination: '/', permanent: false, }, }; } return { props: {}, }; }; 단순히 로그인체크만 해서 로그인이 안됐을경우 리다이랙트만 해주는 서버사이드랜더링을 하면 back에서 console.log('req.user?', req.user); 값은 정상적으로 user객체를 출력합니다. 프론트 페이지도 정상적으로 데이터가 나오고요. JSON.stringify(myUserInfo)로 출력한 데이터는 object {9} id : tester1 company : testers name : test phone : 101010 email : 2 role : NOVICE createdAt : 2021-12-17T04:43:25.000Z updatedAt : 2021-12-17T04:43:25.000Z Customers [2] 0 {2} id : ttt3 UsersRelation {4} 1 {2} id : tttt UsersRelation {4} createdAt : 2021-12-17T08:05:07.000Z updatedAt : 2021-12-17T08:05:07.000Z customerId : tttt providerId : tester1 이렇게 나옵니다. 물론 데이터를 받아와서 주입해주는 부분이 없기때문에 /item/register로 주소를 쳐서 들어가면 오류가 납니다. 데이터를 주입시켜주기 위해 쿼리클라이언트를 사용할 경우 export const getStaticProps = async () => { const queryClient = new QueryClient(); await queryClient.prefetchQuery(['user'], () => loadMyInfoAPI()); return { props: { dehydratedState: JSON.parse(JSON.stringify(dehydrate(queryClient))), }, }; }; back에서 user는 undefined로 나오게 되고 오류가 발생합니다.. 어떠한 부분때문에 같은loadMyInfoAPI 를 쓰는데도 불구하고 다른 결과가 나오는지 궁금함니다. 프론트 터미널의 오류메시지 TypeError: Cannot read property 'Customers' of undefined at Register (D:\3programming\excuse_moa\front_rq\.next\server\pages\item\register.js:2657:36) at processChild (D:\3programming\excuse_moa\front_rq\node_modules\react-dom\cjs\react-dom-server.node.development.js:3353:14) at resolve (D:\3programming\excuse_moa\front_rq\node_modules\react-dom\cjs\react-dom-server.node.development.js:3270:5) at ReactDOMServerRenderer.render (D:\3programming\excuse_moa\front_rq\node_modules\react-dom\cjs\react-dom-server.node.development.js:3753:22) at ReactDOMServerRenderer.read (D:\3programming\excuse_moa\front_rq\node_modules\react-dom\cjs\react-dom-server.node.development.js:3690:29) at Object.renderToString (D:\3programming\excuse_moa\front_rq\node_modules\react-dom\cjs\react-dom-server.node.development.js:4298:27) at renderPage (D:\3programming\excuse_moa\front_rq\node_modules\next\dist\server\render.js:596:45) at Object.ctx.renderPage (D:\3programming\excuse_moa\front_rq\.next\server\pages\_document.js:1161:30) at Function.getInitialProps (D:\3programming\excuse_moa\front_rq\.next\server\pages\_document.js:621:19) at Function.getInitialProps (D:\3programming\excuse_moa\front_rq\.next\server\pages\_document.js:1169:87) error - Error: "MyDocument.getInitialProps()" should resolve to an object. But found "undefined" instead. at Object.loadGetInitialProps (D:\3programming\excuse_moa\front_rq\node_modules\next\dist\shared\lib\utils.js:75:15) at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async renderDocument (D:\3programming\excuse_moa\front_rq\node_modules\next\dist\server\render.js:609:30) at async Object.renderToHTML (D:\3programming\excuse_moa\front_rq\node_modules\next\dist\server\render.js:647:28) at async doRender (D:\3programming\excuse_moa\front_rq\node_modules\next\dist\server\next-server.js:1149:38) at async D:\3programming\excuse_moa\front_rq\node_modules\next\dist\server\next-server.js:1241:28 at async D:\3programming\excuse_moa\front_rq\node_modules\next\dist\server\response-cache.js:64:36 { page: '/item/register' } back의 터미널 로그 req.user? undefined GET /user 200 1.716 ms - 4
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
.dockerIgnore
.dockerignore 파일에 node_modules를 적어줘도 따로 카피되지않아 삭제한것같은 효과를 줄수있죠? 정확히 몰라서 질문드립니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
요즘 인터넷상에 핫해서 당연히 아시겠지만 log4해킹관련해서 질문있습니다!
Log4J 또는 Log4Shell이 취약점으로 되어 전세계 제일 유명한 사이틀 마저도 이로 이루어진 사이트들이 전부 해킹 당하고있고 심지어 누가 했는지도 알수없다고 하는데요, 강의 내용상, Log4J를 포함하는 게 SLF4J이고 이걸 구현한것이 Logback이며 이걸 실무에서 가장 많이 쓴다고 배웠습니다. 현재 이렇게 보안이 뚫린 상태에서 Logback또한 취약점이 될까요?
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - NFT
kaikas 와 연동하여 로그인하려면 어떤걸 공부해야 할까요?
강좌 두번보고 나니 이제 어느정도 개념은 잡히네요. 감사합니다. 크래프터스페이스와 같은 nft 거래소를 만들어보고 싶은데요 궁금한게 여기 들어가면 kaikas 지갑이랑 연동해서 로그인이 되던데 이렇게 하려면 어떤걸 봐야 하나요? caver-js 에 이런 내용이 있을까요? 검색하기가 좀 힘드네요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
질문 있습니다
Jdbc~~가 Memory~~를 상속하지 않았는데도 불구하고 어떻게 Memory~~의 메소드를 사용할 수 있는지 이해가 가질 않습니다. 공통점이라고 한다면 둘 다 MembeRepository 인터페이스를 상속하고 있다는것 뿐이지 않나요? Jdbc~~ -> memberRepository <- Memory~~ (화살표는 인터페이스 상속중이라는 표시입니다) 이렇게 상속을 하고 있는거 같은데 Jdbc~~는 Memory~~와 직접적인 연관이 없지 않나요? SpringConfig.class에서 memberRepository()를 호출하고 memberRepository를 상속한 Jdbc~~가 반환되는데 어떻게 Memory~~의 메소드를 사용할 수 있는지 궁금합니다
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요. 비주얼스튜디오코드 설치하는 이유가 뭔가요?
안녕하세요. 수강생입니다. 이거 굳이 비주얼스튜디오코드 설치하는 이유가 뭔가요? 이거 안쓰시고 이후 파이참만 쓰는거 같아서 질문을 올려요. 파이참 설치하라는게 없고 뭔가요? 그리고 중요한 게 있는데요. 파이참에서 콘솔창에서 명령어 해야되는게 이게 없어가지고 고생합니만
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 mvc 전체 구조 그림에 html 응답이 dispatcher servlet(front controller)에서 나가야 하지 않나요?
안녕하세요 지금까지(앞에 강의를 들으면서) servlet에서 응답을 처리해 주는 걸로 알고 있었는데요 view 에서 render 메소드를 통해 응답에 html을 실어주는 것은 이해를 했는데 응답(reference)이 들어옴 -> 서블릿 -> view -> 서블릿 -> 나감 순서대로 가는 것인지 서블릿 -> view -> 나감 순서대로 가는 것인지 혼동이 와서 질문드립니다 감사합니다!