묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
@Service 어노테이션을 사용한 클래스의 Bean 참조값을 비교하고 싶을 때
안녕하세요 영한님. AnnotationConfigApplicationContext() 예제에서는 직접 만든 빈 설정 클래스를(AppConfig.class)넣는데요. AService 클래스에 @Service 어노테이션을 달아서 component scan을 하게 한 뒤, 예제와 같이 getBean()을 통해 싱글톤을 이루었는지 확인하고 싶은데요. 어떻게 하면 @Bean으로 직접 등록하지 않은 객체에 대해 테스트 할 수 있을까요? 감사합니다.
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
str contaions와 extract 차이
-선생님 extract와 contains의 차이는 이해를 했는데요 extract의 경우 총 데이터 개수는 464개이고, contains의 경우는 466개인데 2개의 차이가 어디서 발생하는지 궁금합니다. 조건만 보면 둘 다 같은 데이터 개수가 반환이 되어야할 것 같은데 왜 다른가요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberService에서 return으로 member.getId()를 해주는 부분이 잘 이해가 가지 않아요...
MemberController에서 create메소드를 보면 return 바로 직전에 join을 해서 member의 id를 가져오고 그 상태로 redirect를 해주는 이유가 있나요?? 이 부분이 명확하게 이해가 잘 안돼서요...
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
라디오버튼 , 셀렉트박스 ,체크박스 db
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. ------------------------ RDBS를 기준으로 보통 db에 저런 폼 데이터를 저장 할 때 input type에 따라 text 는 vachar 고유 id값 BIGINT 등 으로 저장 하는데 셀렉트박스, 라디오버튼 , 체크박스 등은 DB에 저장할떄 어떤 형식의 데이터형을 적용해서 저장,관리 해야 할까요? 제가 생각 할 때 여러가지 방법이 많을 것 같은데 1ex) value를 1,2,3,4 등의 숫자로 받아서 쿼리 안에서 text형식으로 전환해서 바꿔서 저장 하는 등.. 혹시 다른 방법이 있거나 , 여러가지 방법이 너무 많으면 그나마 제일 베스트인 방법이나 , 실무에서 많이 사용하는 방법을 알 수 있을까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
CRASH에서 cause는 로그를 출력하기 위한 목적인가요?
강의에서는 cause가 실제로 쓰이는 부분이 없는데 용도가 무엇인지 궁금합니다. 그리고 ASSERT_CRASH에서 __analysis_assume을 쓰는 이유는 무엇인가요?
-
미해결최신 딥러닝 기술 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를 적어줘도 따로 카피되지않아 삭제한것같은 효과를 줄수있죠? 정확히 몰라서 질문드립니다!