묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
안녕하세요 영한님 수업자료 공개에 대해 여쭤봅니다.
안녕하세요 영한님? 양질의 좋은 강의 찍어주셔서 아주 유익하게 보고있습니다. 다름이 아니라 혹시 제가 운영하고있는 기술블로그에 이 강의에서 배운 내용을 정리하고 싶은데 수업자료를 캡처해서 올려도 될까요? 혹 된다면 출처는 어떤식으로 밝히면 되는지 여쭤보고 싶습니다. 예를 들면 인프런 - 김영한의 모든 개발자를 위한 HTTP 웹 기본지식. 이런식으로요. 감사합니다!
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
Nbextensions 설치관련 문의드립니다.
안녕하세요. 강사님. Nbextensions 설치관련 문의드립니다. 기존 사용하고 있는 jupyter 노트북에 Nbextensions를 추가 설치를 했는데 첨부된 사진과 같이 Nbextensions 탭은 생성이 되었지만 Table of Contents (2) 는 보이지가 않습니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
key 에러로 스크롤 오류가 발생합니다 ㅜㅜ
스크롤을 맨 위로 올리면, 기존에 있던 똑같은 섹션이 한번 더 나와서 키가 중복됐다고 나오는데, 코드는 똑같이 친 것 같은데 뭐가 문제인지 모르겠습니다.. ㅜㅜ 깃헙주소 첨부하겠습니다.. https://github.com/97baek/sleact
-
미해결스프링 핵심 원리 - 기본편
자바 코드관련 질문
안녕하세요. 스프링 핵심 원리 이해1 - 예제 만들기의 예제 코드관련하여 질문이 있습니다. OrderApp 클래스에서 아래와 같이 2개의 객체를 생성하게 되면, MemberService memberService = new MemberServiceImpl(); OrderService orderService = new OrderServiceImpl(); 한번은 MemberServiceImpl()에 의해서, private final MemberRepository memberRepository = new MemoryMemberRepository();가 수행되면서 MemoryMemberRepository객체가 생성되고, 두번째로 OrderServiceImpl()에 의해서 private final MemberRepository memberRepository = new MemoryMemberRepository();가 또 수행되면서 MemoryMemberRepository객체가 또 생성되는거로 보이는데요. 첫번째 객체의 MAP store 변수가 static으로 되어있기 때문에 메모리 저장소는 공유하는 것으로 보이는데요. 질문1 : 실제로 메모리상 객체는 어떻게 생성되고, store변수는 어떻게 공유되는지 궁금합니다. 질문2 : private final을 쓰는 이유는? 그 의미는? ※ 자바 기본과정도 공부해봤고, 여기저기 물어봐도 잘 아는 분들이 없네요^^
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
양방향 연관관계에서의 편의 메서드
강의중, 연관관계 편의 메서드는 연관관계의 주인으로 설정된 엔티티에서 형성하는 것이 좋다고 하셨는데 Order 엔티티에 //연관관계 메서드public void setMember(Member member) { this.member = member; member.getOrders().add(this);}public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this);}public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this);} 이렇게 메서드를 구성했습니다. 그러나 Order - OrderItem 두 엔티티가 갖는 연관관계에서 주인은 OrderItem입니다. 그렇다면 Order에 .addOrderItem()을 없애고 OrderItem 엔티티에 public void setOrder(Order order){ this.order = order; order.getOrderItems().add(this);} 위와 같은 편의 메소드를 추가하는것이 맞지 않을까 질문합니다!
-
미해결실전! Querydsl
alias 질문드립니다 !
안녕하세요. 비전공 개발공부 8개월차 주니어입니다. 먼저 정말 유익한 강의 감사드립니다. 제게 큰 도움이 됐습니다. 다름아니고 질문드릴게 있는데요, 퇴근 후 QueryDSL로 토이프로젝트를 하고있습니다. 일별 방문자 수와, 누적 방문자 수 통계를 구하고 있는데요. 우선 제가 작성한 쿼리입니다. SELECT SUM(R.C) FROM (SELECT COUNT(DISTINCT CLIENT_IP) AS C FROM REQUEST_LOG GROUP BY DATE(REG_DATE) ) AS R; 쿼리 의도입니다. 1. 로깅테이블(REQUEST_LOG)에서 일별로 그룹핑하고, 클라이언트 IP로 중복을 제거한 값을 구합니다. (일별 방문자) 2. 일별 방문자를 모두 더합니다. (누적 방문자) 이걸 QueryDSL로 옮기려니 표현식과 alias를 쓰기가 막막한 느낌이 있습니다. 제가 참고한 문서와 작성한 코드입니다. http://www.querydsl.com/static/querydsl/3.6.3/reference/ko-KR/html_single/#alias @Override @Transactional(readOnly = true) public Long allVisitors() { JPAQueryFactory queryFactory = new JPAQueryFactory(getEntityManager()); return queryFactory .select(requestLog.clientIp.countDistinct()) .from(requestLog) .groupBy(functionDate(requestLog.regDate)) .fetch() .stream() .reduce(0L, Long::sum); } private StringTemplate functionDate(DateTimePath regDate) { return stringTemplate("date({0})", regDate); } 결국 alias를 어떻게 쓸지 잘 알지 못해 우선 서브쿼리를 포기하고 단순 select 문으로 일별 방문자수를 구해온 후 어플리케이션에서 stream으로 일별 방문자수를 모두 더해 누적 방문자수를 구해서 구현했습니다. 근데 그냥 자바코드없이 QueryDSL만을 이용해서 쿼리한방에 끝내고 싶지만 방법을 잘 알지 못해 어떻게 해결해야 할지 계속 고민중입니다. 혹시 실례가 안된다면 간단한 예제코드나 힌트 좀 주실 수 있으실까요? 😥 전체적인 소스코드 주소입니다. https://github.com/shirohoo/Application-SubscribeTechBlogs
-
미해결애플 웹사이트 인터랙션 클론!
opacity_out 질문입니다
messageA_opacity_out이 실행이 안 되고 scrollRatio가 2.5일때 messageA가 사라집니다 (function () { let yOffset = 0; //window.pageYOffset 대신 쓸 변수 let prevScrollHeight = 0; //현재 스크롤 위치(yOffset)보다 이전에 위치한 스크롤 섹션들의 스크롤 높이값의 합 let currentScene = 0; //눈앞에 보고 있는 씬 let enterNewScene = false; //새로운 scene이 시작된 순간 true const sceneInfo = [ { //0 type: 'sticky', heightNum: 5, scrollHeight: 0, objs:{ container : document.querySelector('#scroll-section-0'), messageA : document.querySelector('#scroll-section-0 .main-message.a'), messageB : document.querySelector('#scroll-section-0 .main-message.b'), messageC : document.querySelector('#scroll-section-0 .main-message.c'), messageD : document.querySelector('#scroll-section-0 .main-message.d') }, values:{ messageA_opacity_in:[0,1,{start : 0.1, end: 0.2}], messageA_opacity_out:[1,0,{start : 0.25, end: 0.3}] } }, { //1 type: 'normal', heightNum: 5, scrollHeight: 0, objs:{ container:document.querySelector('#scroll-section-1') } }, { //2 type: 'sticky', heightNum: 5, scrollHeight: 0, objs:{ container:document.querySelector('#scroll-section-2') } }, { //3 type: 'sticky', heightNum: 5, scrollHeight: 0, objs:{ container:document.querySelector('#scroll-section-3') } } ]; //각 스크롤 섹션의 높이 세팅1 function setLayout() { for (let i = 0; i < sceneInfo.length; i++) { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } // 현재씬을 자동으로 세팅하는 것 yOffset= window.pageYOffset; let totalScrollHeight = 0; for(let i = 0; i < sceneInfo.length; i++){ totalScrollHeight += sceneInfo[i].scrollHeight; //totalscrollheight가 yoffset 보다 커지면 현재 i를 currentscene으로 세팅하고 for문을 빠져나온다 if(totalScrollHeight >= yOffset){ currentScene = i; break; } } // 바디에다가 현재씬 갱신한 것 세팅,새로고침할 때 id를 잘 넣어준다 document.body.setAttribute('id',`show-scene-${currentScene}`) } // 각 섹션 마다 어느정도 비율로 계산되는지 function calcValues(values, currentYOffset){ let rv; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; if(values.length === 3){ //start ~end 사이에 애니메이션 실행, values[2]는 start:0.1,end:0.2 const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; // 스크롤이 애니메이션 실행하는 사이에 있을 때 if(currentYOffset >= partScrollStart && currentYOffset <= partScrollEnd){ rv = (currentYOffset - partScrollStart) / partScrollHeight * (values[1] - values[0] + values[0]); } // 스크롤이 애니메이션 샐행하기전에 있을 때 else if(currentYOffset < partScrollStart){ rv = values[0]; } // 스크롤이 애니메이션 실행 후에 있을 때 else if(currentYOffset > partScrollEnd){ rv = values[1]; } }else{ rv = scrollRatio * (values[1] - values[0] + values[0]); } return rv; } function playAnimation(){ //container에서 가져온것 const objs = sceneInfo[currentScene].objs; const values = sceneInfo[currentScene].values; //현재 씬의 yoffset,씬이 넘어가면 그 씬이 yOffset을 새로 세팅해준다 const currentYOffset = yOffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; // 현재씬에서 얼마나 스크롤 했는지 비율이 나온다 const scrollRatio = currentYOffset / scrollHeight; console.log(scrollRatio); switch(currentScene){ case 0: const messageA_opacity_in = calcValues(values.messageA_opacity_in,currentYOffset); const messageA_opacity_out = calcValues(values.messageA_opacity_out,currentYOffset); if(scrollRatio <= 0.22){ objs.messageA.style.opacity = messageA_opacity_in; } else{ objs.messageA.style.opacity = messageA_opacity_out; } break; case 1: break; case 2: break; case 3: break; } } //햔제 스크린이 몇번 씬에 있는지 알려줌2 function scrollLoop(){ enterNewScene = false; prevScrollHeight = 0; for(let i = 0; i < currentScene; i++){ prevScrollHeight += sceneInfo[i].scrollHeight; } if(yOffset > prevScrollHeight+sceneInfo[currentScene].scrollHeight){ enterNewScene = true; // scene이 바뀌는 순간 -값을 방지 currentScene++; document.body.setAttribute('id',`show-scene-${currentScene}`) } if(yOffset < prevScrollHeight){ enterNewScene = true; // scene이 바뀌는 순간 -값을 방지 if(currentScene ===0) return; //위로 바운스효과 때문에(모바일) currentScene--; // 현재 씬에 맞춰서 바디에 아이디가 세팅된다,바뀌는 순간(resize)에만 체크 document.body.setAttribute('id',`show-scene-${currentScene}`) } //scene이 바뀌는 순간에 함수를 종료해서 playanimation이 한 턴 걸러진다 if(enterNewScene) return; playAnimation(); } // scroll해서 section을 넘어가면 currentScene[i]값이 실시간으로 바뀐다 window.addEventListener('scroll',function(){ yOffset = window.pageYOffset; scrollLoop(); }); window.addEventListener('load',setLayout); window.addEventListener('resize',setLayout); })();
-
미해결
intellij 파일 오류 해결 도와주세요
제가 원래는 이렇게 되어야 되는 파일을 무언가 잘못 만져서인지 계속 이렇게 떠서 어떻게 해야될지 모르겠네요 ㅠㅠㅠ 제발 도와주세요
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
부동 소수점의 지수부 표현 방법에 대하여
지수부는 unsigned라고 말씀해주셨는데요, 음수 지수는 사용되지 않는건가요??
-
미해결Slack 클론 코딩[실시간 채팅 with React]
타입스크립트에 질문드립니다.
자주 질문드려서 죄송합니다!! 타입스크립트를 활용하는 부분이 여기서 처음 나오는 것 같은데요. 제가 타입스크립트를 배웠을 때에는 추론이 되더라도 장점을 살리기 위해 왠만하면 다 붙여주는 것으로 알고 있습니다. 하지만 현재 프로젝트에서는 추론되어지는건 생략하고 추론되어지지 않는 부분만 타입스크립트를 사용하시는 것 같아서요. 혹시 이게 더 좋은 방법이고 현업에서도 이렇게 이루어지는지 궁금합니다! 마지막으로 한가지 더 질문드립니다. onChange같은 경우는React.ChangeEvent<HTMLInputElement> 을 활용하면 any를 사용하지 않고 오류를 발생하지 않는것으로 알고 있습니다. 밑에 코드처럼 이렇게 작성하면 되는지 궁금합니다! import { Dispatch, SetStateAction, useCallback, useState } from 'react'; const useInput = <T = any>( initialData: T, ): [T, (e: React.ChangeEvent<HTMLInputElement>) => void, Dispatch<SetStateAction<T>>] => { const [value, setValue] = useState(initialData); const handler = useCallback((e) => { setValue(e.target.value); }, []); return [value, handler, setValue]; }; export default useInput;
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
babel.js 적용 후 개발자 도구에서 main.js 보이지 않는 현상
안녕하세요. index.html에 아래와 같이 바벨을 사용하도록 수정한 이후부터 크롬 개발자 도구에서 js/main.js가 보이지가 않습니다. <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.24.0/babel.js"></script> <script type="text/babel" src="js/main.js"></script> 아래는 강의 자료 파일을 그대로 GoLive로 띄웠을 때 화면입니다. 혹시 다른 설정을 확인해 봐야 할까요.
-
미해결타입스크립트 시작하기
4:44초
단방향과 양방향의 차이점이 무엇인지 조금만 더 알려주실 수 있으실까요 ? 또한 Orange가 값이 아닌 아이템의 이름이라는게 문자열과 enum안에서 선언된 Orange의 key값으로 === 비교를 해서 false가 출력이 되는게 맞는거죠 ? 보통 const enum을 사용하는 경우가 많을까요 아니면 그냥 enum으로 정의를 많이 하나요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Switch-case문에서 break가 없을 경우가 이해가지 않습니다.
좋은 강의 잘듣고있습니다! 다름이 아니라 이해가 안가는 부분이 있어서 질문 드립니다. 분기문 강의 25분쯤입니다. input이 ROCK인 상황에서 switch case를 사진과 같이 작성했을 시, 첫 case ROCK문에 break를 걸지 않았다 해도, 그다음 실행되는 코드는 case PAPER: 이라고 생각해서, 어짜피 "보를 냈습니다" 가 출력이 되지 않을 것 같은데, 왜 출력이 되는지 궁금합니다
-
미해결반응형 웹사이트 포트폴리오(App Official Landing Website)
모달 질문!!
선생님~ 유튜브 강의 통해서 반응형 모달 강의를 듣다가 질문 드립니다! .modal_content에 opacity : 0; 주시고 active시에 opacity:1;을 주셨는데, active되기 전 상태에서 마우스를 브라우저 쪽에 움직이다보면 input이나 p태그 쪽 위치에 마우스 포인터의 모양이 바뀌는 것을 발견해서요~ 이런 경우에는 display : none을 추가하고 active시에는 display: block을 추가해도 될까요~?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
다른 풀이방법에 대한 조언 부탁드립니다.
import java.util.*; import java.io.*; class Main { public String solution(String str) { String answer = ""; str += ""; int[] arr = new int[26]; for(int i=0; i<str.length(); i++) { // ASCII코드와 배열을 사용해 배열에 해당 문자의 연속된 값을 넣어줌 arr[str.charAt(i)-65]++; } for(int i=0; i<str.length()-1; i++) { if(str.charAt(i) == str.charAt(i+1)) { continue; } else if(arr[str.charAt(i)-65] == 1) { // 문자가 연속되지 않을 때 answer += str.charAt(i); } else if(str.charAt(i+1) == '') { // 이 부분에서 else without if 오류가 남... answer += str.charAt(i); break; } else { answer += str.charAt(i) + String.valueOf(arr[str.charAt(i)-65]); } } return answer; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); Main C = new Main(); System.out.println(C.solution(str)); } } 강의를 듣기전 제가 풀어본 방법입니다. 배열에 연속된 횟수를 넣어서 구현하는 로직으로 짜봤는데, 마지막문자를 출력하는 부분에서 해결이 되지 않습니다. 이런 로직으로 짤 때 어떻게 해야 문제를 해결 할 수 있을까요? 아니면 저의 접근방법 자체가 잘못된것인지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
NoSuchBeanDefinitionException 질문드립니다.
안녕하세요 강사님! MemberService memberService = ac.getBean(MemberService.class); 에서 다음과 같은 오류가 발생합니다. org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.member.service.MemberService' available 그래서 @Component와 @Autowired 를 잘못 넣었나 해서 찾아봤는데요. 다음과 같이 작성하였고, 어떻게 해결해야 할지 조언 부탁드려도 될까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
auth.js에서 let token = req.cookies.x_auth를 어떻게 가져올 수 있는 건가요?
강의 영상 중 auth.js에는 module을 임포트한 적이 없는 것 같은데 req.cookies.x_auth에 어떻게 접근할 수 있는 것인지 궁금합니다! index.js에 const = { auth } = require("./middleware/auth"); 로 임포트 한 적이 있지만 이건 index.js 안에서 auth를 사용하겠다는 뜻인 것 같고 auth.js와 index.js에서의 연결점을 찾기가 힘듭니다! 이와 관련해서 질문 남겨 봅니다!
-
미해결타입스크립트 시작하기
npm init -y
npm init -y는 어떤 역할을 해주는건가요 ? 단순히 package.json만 만들어주는 역할인가요 ? y가 어떤 줄임말인지 알 수 있을까요 ?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
하나의 엔티티에서 두개의 필드 비교
안녕하세요. 항상 좋은 강의 감사드립니다. 하나의 엔티티에서 두개의 필드가 같은것들만 찾을 수 있는 방법은 어떤게 있을까요? select * from entity where field1=field2. 감사합니다.
-
해결됨iOS/Android 앱 개발을 위한 실전 React Native - Basic
Navigation 설치 후 안드로이드 에뮬레이터에서 앱 실행 오류
리엑트 네이티브와 모든 설치하는 것들은 강의의 요구에 맞춰서 설치하고, 설정을 했습니다. 그런데 navigation모듈만 리엑트 프로잭트에 설치를 하면, navigation이 설치된 어떤 프로잭트든 다 똑같은 오류가 발생하며 실행이 안됩니다. 구글링해봐도 잘 모르겠습니다, 도움 부탁드리겠습니다. (navigation 모듈이 설치 안된 다른 리엑트 네이티브 프로잭트는 안드로이드 에뮬레이터에서 앱 실행이 잘됩니다)