묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 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를 사용를 통해 가는것 처럼 보이는데 설명한번만 부탁드립니당!
-
해결됨대세는 쿠버네티스 (초급~중급편)
kube-api-server & kube-proxy 관련 질문
안녕하세요. 궁금한 부분이 있어 질문 올립니다! pod 생성과정에서 pod를 생성하는 명령어가 들어와 api-server가 etcd 기록을 끝낸 후스케줄러가 api-server를 watch하고 있다 pod 생성해야 된다고 판단이 되면 node resource 확인 후그 정보를 api-server에게 요청을 보내서 api-server가 etcd에 pod가 스케줄링 될 node정보를 기입하는 형태가 맞나요?아니면 스케줄러가 etcd에 직접 정보를 기입하는 건가요? 무조건 api-server를 통해야 된다고 말씀주신것 같아서 궁금해 여쭤봅니다! ---- 그리고 api-server를 kubelet이 watch하고 있다가 자신에 해당하는 node 정보를 가진 pod를 확인하면 container runtime인 docker에게 cotainer 생성을 시키고 컨테이너가 성공적으로 생성이 되면 kube-proxy에게 네트워크를 생성하도록 한다고 말씀 주셨는데 네트워크 생성이라는 것이 아래 두가지를 말씀하시는 건가요?궁금해서 여쭤봅니다! (Networking Architecture강좌까지 듣고 질문 올립니다!) 1. Container생성시 Pause Container도 같이 생성이 되며 Pause Container안에는 Network Interface가 생성이 되어있다고 설명해주셨는데한 Pod내의 모든 Container들이 Pause Container안에 있는 Network Interface 같이 사용할수 있도록 구성을 해주는 기능을 하는 건가요? 2. Pause Container가 생성시 Host(Node) 에도 Namespace를 이용해 1:1 매칭되는 가상 인터페이스가 생긴다고 말씀을 주셨는데 Pause Container 인터페이스와 Host 인터페이스와 연결해주는 역활을 하는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
인텔리제이 데이터베이스 연결
선생님 혹시 인텔리제이에서 데이터를 넣고 그 후 확인을 로그로 찍어보는것이 아닌 인텔리제이 내에서 확인하는 방법 알 수 있을까요? (테스트코드 작성 후 확인) 유튜브를 통해 영상을 보다가 이 방법으로 확인시 더 직관적일 것 같은데 어떤식으로 찾아봐야하는지모르겠어서 글 남깁니다.
-
미해결갖고노는 MySQL 데이터베이스 by 얄코
에러가 뜹니다..
5-1 마지막까지 했는데 이렇게 뜨면서 localhost에 연결이 안됩니다...
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
token과 tokenExp가 구체적으로 어떤용도인가요?
로그인이나 회원가입 시에 필요한 토큰인가요? 그리고 유효기간도 따로 관리를 해줘야하는 건가요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
회귀 실습 -자전거 대여 수요 예측 원핫인코딩 관련질문
안녕하세요 강의 너무 잘듣고 있습니다 회귀 실습 - 자전거 대여수요 예측에서 선형 회귀의 경우 원핫 인코딩이 필수라 하셨는데 , 숫자형 값을 원핫 인코딩으로 변경하는 이유가 궁금합니다. (대략적으로 회귀계수에 숫자는 영향을 많이 주기때문이라는데 , 구체적으로 설명 부탁드립니다.) 그리고 예제에서는 원핫인코딩 적용 컬럼이 전부다 적용안하고 'year','month','day','hour','holiday','workingday','season','weather' 만 적용되는지 궁금합니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
지금까지 따라하고 있는데 축구공과 키보드 페이지에서..
저 제가 놓친 것이 있는지... 농구공을 클릭을 했을 떄는 상품 페이지가 잘 나오는 것 같은데 축구공, 키보드를 클릭을 했을 떄 상품 페이지, 상품에 대한 contents가 보이지 않더라고요 ㅠㅠ 어떻게 해야할까요? 어디서 문제가 발생한 걸까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
for 문에서의 list 값 질문있습니다!!!
test=[0,0,0,0] for i in range(4): test2=test test2[i]=1 print(test2) 다음과 같이 for문을 돌릴때마다 test2값을 test 리스르로 초기화 하면 제가 생각하는 예상값은 [1, 0, 0, 0] [0, 1, 0, 0] [0, 0, 1, 0] [0, 0, 0, 1] 인데 실제 결과값은 test2값을 test로 초기화하지 못하고 [1, 0, 0, 0] [1, 1, 0, 0] [1, 1, 1, 0] [1, 1, 1, 1] 으로 나오는데.. 이것은 뭐때문에 그런건가요?? 확인해보니 test값도 동일하게 변수값이 들어가네요 ㅠㅠ 그렇다고 append 함수를 써서 test값을 유지한다고 하면 test=[0,0,0,0] for i in range(4): test2.append(test) test2[i]=1 print(test2) 결과값이 [1] [1, 1] [1, 1, 1] [1, 1, 1, 1] 처럼 나오네요.. 원하는 결과값은 얻는 방법이 무엇이고, 왜 이런 결과가 나오는지 알고싶어요
-
미해결홍정모의 따라하며 배우는 C++
while 문의 static 질문
강의 중간에 있는 코드에서요 while (true) { static int count = 0; // cout << count << endl; count++; }저 static 으로 선언된 count의경우매 반복마다 초기화 하게 되는건데static은 한번만 초기화 할수있으므로원래 에러가 떠야 정상아닌가요?그냥 컴파일에서 한번 초기화되었으니다음 while 이 돌때는 그냥 무시하는건가요?
-
미해결실전 리액트 프로그래밍
커스텀훅 작성할 때 axios 부분을 별도의 파일로 만들어서 호출 할 경우 type error 가 나타납니다.
안녕하세요. typescript 와 create-react-app 을 사용하여 공부중인데요. 커스텀 훅을 만들어서 비동기 API를 호출하여 테이블에 노출하는 기능을 구현하다가 도저히 답이 안나와서 질문드립니다. useState와 useEffect 를 사용하여 비동기 API를 set 하는 커스텀훅을 만들었고, axios 를 호출하는 별도의 파일을 만들어서 사용중인데 const [items, setItems] = useState<coronaApiProps[]>();const coronaItems = getCorona();useEffect(() => { setItems(coronaItems);}, []); 이렇게 사용하니 아래처럼 에러가 나타납니다. TS2345: Argument of type 'Promise<coronaApiProps[]>' is not assignable to parameter of type 'SetStateAction<coronaApiProps[] | undefined>'. Type 'Promise<coronaApiProps[]>' is not assignable to type '(prevState: coronaApiProps[] | undefined) => coronaApiProps[] | undefined'. Type 'Promise<coronaApiProps[]>' provides no match for the signature '(prevState: coronaApiProps[] | undefined): coronaApiProps[] | undefined'. coronaApiProps 는 제가 만든 인터페이스입니다. 해당 에러가 나타나서 useEffect 안에 const [items, setItems] = useState<coronaApiProps[]>();// axios 로 api 호출const coronaItems = getCorona(); useEffect(() => {coronaItems.then(response => {setItems(response); });}, []); 이렇게 사용하니 커스텀훅을 두번 호출합니다. 그래서 axios 파일을 분리하지 않고 커스텀훅 안에 사용하면 커스텀훅을 한번만 사용합니다. api를 호출하는 axios 파일을 분리하고 사용할 수 없나요? 필요하면 github 추가해드릴 수 있습니다.
-
미해결
jquery 이용해서 슬라이더를 만드려는데요..
티스토리에서 슬라이더를 만드려는데 아래 코드로 만들어서 진행시에 초기 웹페이지가 로드되고 1페이지부터 차근차근 뜨는게 아니라 2페이지가 잠깐동안 계속 떠있다가 3페이지부터 정상적으로 자동 넘김이 되는데요.. 초기화를 해줘야하는것 같은데 이것저것 다 해봐도 안되서 혹시 해결이 가능하신 분이 계실까요? ㅠㅠ <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous"> <div class="slider-1"> <div class="slides"> <div class="active" style="background-image:url(https://images.prismic.io/stayfolio-production/73f99b79-336f-47fd-8ace-afc00978147d_banner.jpg?auto=compress,format);"></div> <div style="background-image:url(https://images.prismic.io/stayfolio-production/038914a1-9b23-4f26-9b10-84669d9a1339_banner.jpg?auto=compress,format);"></div> <div style="background-image:url(https://images.prismic.io/stayfolio-production/586abdef-7163-4629-9c39-6d7a627ae10e_01_banner_picture.jpg?auto=compress,format);"></div> <div style="background-image:url(https://images.prismic.io/stayfolio-production/3b4bf417-3c41-4d05-b62c-f02a293ba115_banner.jpg?auto=compress,format);"></div> </div> <div class="page-btns"> <div class="active"></div> <div></div> <div></div> <div></div> </div> <div class="side-btns"> <div> <span><i class="fas fa-angle-left"></i></span> </div> <div> <span><i class="fas fa-angle-right"></i></span> </div> </div> </div> /* 폰트 적용 */ @import url(//fonts.googleapis.com/earlyaccess/notosanskr.css); html { font-family: "Noto Sans KR", sans-serif; } /* 노말라이즈 */ body, ul, li, h1, h2, h3, h4, h5 { margin:0; padding:0; list-style:none; } a { color:inherit; text-decoration:none; } /* 커스텀 */ /* 슬라이더 1 시작 */ .slider-1 { height:400px; position:relative; } /* 슬라이더 1 - 페이지 버튼 */ .slider-1 > .page-btns { text-align:center; position:absolute; bottom:20px; left:0; width:100%; } .slider-1 > .page-btns > div { width:20px; height:20px; background-color:rgba(255,255,255,.5); border-radius:4px; display:inline-block; cursor:pointer; } .slider-1 > .page-btns > div.active { background-color:rgba(255,255,255,1); } /* 슬라이더 1 - 슬라이드 */ .slider-1 > .slides > div { position:absolute; top:0; left:0; right:0; bottom:0; opacity:0; transition: opacity 0.3s; background-position:center; background-size:cover; background-repeat:no-repeat; } .slider-1 > .slides > div.active { opacity:1; } /* 슬라이더 좌우 버튼 */ .slider-1 > .side-btns > div { position:absolute; top:0; left:0; width:25%; height:100%; cursor:pointer; } .slider-1 > .side-btns > div:last-child { left:auto; right:0; } .slider-1 >.side-btns > div > span { position:absolute; top:50%; left:20px; transform:translatey(-50%); background-color:white; opacity:0.5; padding:1px 13px; border-radius:50px; font-size:25px; } .slider-1 >.side-btns > div:last-child > span { left:auto; right:20px; } /* 슬라이더 1 끝 */ // 기존 버튼형 슬라이더 $('.slider-1 > .page-btns > div').click(function(){ var $this = $(this); var index = $this.index(); $this.addClass('active'); $this.siblings('.active').removeClass('active'); var $slider = $this.parent().parent(); var $current = $slider.find(' > .slides > div.active'); var $post = $slider.find(' > .slides > div').eq(index); $current.removeClass('active'); $post.addClass('active'); }); // 좌/우 버튼 추가 슬라이더 $('.slider-1 > .side-btns > div').click(function(){ var $this = $(this); var $slider = $this.closest('.slider-1'); var index = $this.index(); var isLeft = index == 0; var $current = $slider.find(' > .page-btns > div.active'); var $post; if ( isLeft ){ $post = $current.prev(); } else { $post = $current.next(); }; if ( $post.length == 0 ){ if ( isLeft ){ $post = $slider.find(' > .page-btns > div:last-child'); } else { $post = $slider.find(' > .page-btns > div:first-child'); } }; $post.click(); }); setInterval(function(){ $('.slider-1 > .side-btns > div').eq(1).click(); }, 3000);