묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 디테일에 관해 질문입니다.
강사님 풀이를 듣다가 든 생각이 처음 범위를 정할 때1부터 가장 짧은 랜선까지 범위를 잡으면 더 빠르게 구할 수 있지 않나 싶어서 구현해보고 확인해보니까 아예 랜선을 안쓰는 경우도 있어서 틀리게 되더군요. 근데 문제에 보면 랜선을 안써도 된다는 조건이 없는데 꼭 써야된다는 조건이 없으니까 다 염두해서 풀어야되는건가요?아니면 문제 디테일이 좀 부족한건가요?
-
미해결홍정모의 따라하며 배우는 C언어
문자열의 배열을 통한 선언과 포인터를 이용한 선언의 차이
정리하지면 , 메모리공간은 읽기/쓰기 가 둘다 가능한영역 과 읽기만 가능한 영역으로 나누어지고 배열로 선언시 배열의 크기만큼의 읽기/쓰기 가능한 메모리공간이 할당되고 그 공간에 문자가 들어가서 문자열을 구성하는것이기에 문자열의 수정이 가능하지만 , 포인터로 선언시 문자열리터럴은 읽기만 가능한 메모리공간을 할당받고 포인터는 그 공간의 주소만을 가리키는것이기에 역참조를 통한 접근(읽기)는 가능하나 수정(쓰기)는 불가하다는것이지요??
-
미해결모의해킹 실무자가 알려주는, 파일 다운로드 취약점 공격 기법과 실무 사례 분석
강의자료 문의드려요
실습 때 작성한 코드들과 피피티 자료를 다운로드할 수 있는 방법은 따로 없는지 문의드려요~! 예를들면 깃허브나 첨부파일형태로요
-
해결됨Vue.js 끝장내기 - 실무에 필요한 모든 것
nvm 노드 버전 변경 에러
안되시는 분들 참고하시라고 몇 자 적어봅니다.! 윈도우 사용하시는 분들은 윈도우용 nvm 설치하셔야 정상적으로 동작해요! https://github.com/coreybutler/nvm-windows/releases 구글에 윈도우에서 nvm 설치 라고 치면 자세히 설명해주신 블로그 많습니다. 참고 하시면 될 것 같아요. :)
-
해결됨윤재성의 안드로이드를 위한 자바(JAVA) 프로그래밍
표준입출력에서 질문 있습니다.
강사님 안녕하세요. 좋은강의 잘 듣고 있습니다. 표준 입출력 부분에서 질문이 있어 질문 드리려고 하는데요. int a1 = System.in.read(); System.out.println("a1 :" + a1); int a2 = System.in.read(); System.out.println("a2:"+a2); 이 코드를 실행시키고 콘솔창에 ab를 입력하고 나서 엔터키를 눌러야 a1,a2,의 값이 정상적으로 표시가 됬는데요. 1) int a1 = System.in.read(); 이부분이 실행되고 나서 2)System.out.println("a1 :" + a1); 이 부분이 실행되고 3)int a2 = System.in.read(); 4)System.out.println("a2:"+a2); 이러한 순서로 진행 될 줄 알았는데 System.out.println();을 거치지 않고 값을 모두 입력 받은 후에 출력문이 실행이 되는 것을 알게 되었습니다. 이 부분에 관해 왜 순서대로 진행되지 않고 입력을 모두 진행받고 난 후 출력문이 실행이 되는지 알고싶습니다. 좋은 강의 너무너무 감사합니다.
-
해결됨남박사의 파이썬 기초부터 실전 100% 활용
영어 단어 맞추기 게임 응용
박사님이 코딩하셨던 영어 단어 맞추기 게임을 응용해서 사용자가 단어를 입력했을 때 만약 그 단어가 틀렸다면 컴퓨터가 맞는 글자와 그 위치를 알려주는 코드를 짜고 싶은데 어떤 함수를 사용해야 할지 모르겠습니다. 예를 들어 사용자가 사과를 affle로 입력했을 때 'a**le' 이런 식으로 표시되게 하려면 직접 사용자 정의 함수를 통해 코드를 짜야 할까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Spring @Autowired 필드가 null 인 이유를 모르겠습니다.
public class CustomOAuth2UserService extends DefaultOAuth2UserService { @Autowired private MemberRepository memberRepository; // <-- 디버그로 실행하면 이부분이 null 로 확인이 됩니다. .... @Override public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { ... Member member = memberRepository.findByEmail(email); // <-- 여기서 NullPointException 이 발생합니다. ...} 최초 oauth2 로그인 처리 시 기존 가입자인지 체크하기 위해서 memberRepository 사용하려고 하는데 저 객체가 null 로 되어서 NullPointException 이 발생합니다. 왜 그런걸까요?? ㅠㅠ 아래 컨피그에서 oauth2Login() 부분에서 로그인 처리를 하고 호출하는 방식입니다. public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/", "/oauth2/**", "/login/**", "/signup", "/css/**", "/images/**", "/js/**", "/console/**", "/favicon.ico/**") .permitAll() .anyRequest().authenticated() .and() .oauth2Login() .userInfoEndpoint().userService(new CustomOAuth2UserService())
-
미해결웹 게임을 만들며 배우는 Vue
showBalls 질문입니다.
중복되는 부분을 methods.showBalls 로 분리해주셨는데, methods가 아닌 외부함수로 빼지 않으신 이유가 있을까요? methods는 어떤 이벤트에 대한 콜백함수를 정의하는 공간이라고 생각해서, showBalls는 차라리 this.$data를 매개변수로 받도록 해서 외부로 빼도 괜찮을 것 같다는 생각이 들어서요...
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
폼검증 과 bootstrap 일부 error 추가질문
오늘 폼검증 쪽과 bootstrap 하였는데 대부분 잘되었는데 폼 검증에서 회원 가입 성공하는데 return을 boar/list 가 아닌 아무 글도 없는 백지인 member/join 으로 이동하고 있습니다. 강의 내용과 coding한걸 여러번 비교하였는데 아직 찾지 못하였습니다. 그리고 bootstrap 으로 변경이 다되었는데 list와 view 에 table 의 라인이 다 나타나지 않고 있습니다.
-
해결됨홍정모의 따라하며 배우는 C언어
5:25 초
지금 여기서 버퍼가 있는걸 없애주기 위해서 while(getcharo()!='\n') continue;를 한다라고 말씀하셨는데요 헷갈려서 제가 while문 사이에 printf("두개의 정수를 입력하세요");를 두었는데요 getchar과 scanf를 따로 보기위해서 일단 c=getchar에 #을 입력하면 버퍼엔 #과 \0가 남아있을텐데 일단 #을 불러드리고 두개의 정수를 입력하세요: 2 2 그리고 여기서 getchar()!='\n'이 나오는데 지금 일단 큰 while문은 c에 #만 들어간상태 아닌가요? \0은 보지 않고요. 큰 와일문이 다 끝나고 그 이후에 \0가 들어가야하는데 큰 while문 조건에서 못들어가게되는거아닌가요? 이게 좀 헷갈립니다 장황하게 써서 제가 무슨말 하는건지 헷갈리시다면 댓글 부탁드립니다...ㅠㅠ
-
미해결HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌
Nucleo429ZI로 진행을 하려고 하는데 UDP는 동작을 하지 않는데 이유를 알 수 있나요?
자재를 받기전에 수업 진도를 나가고 싶어 갖고 있던 보드를 사용하고자 하는데UDP 에코 테스트가 동작을 하지 않아 글을 납깁니다. 소스는 문제없이 구동을하는데 데이터 수신을 하지 못하더라구요. 혹시 이유를 알 수 있을까요?
-
해결됨실전! 스프링 데이터 JPA
프록시 엔티티매니저
안녕하세요 강의 잘 보고있습니다. @PersistenceContext를 통해 주입받은 엔티티매니저를 사용하면 매 호출 마다 '프록시 엔티티매니저'가 생성되는 걸로 알고있습니다. 1.이 때 매번 생성하는 프록시 엔티티매니저와 연결되는 실제 엔티티매니저 또한 매번 생성되는건가요? 2. 1이 맞다면 매번 생성된 실제 엔티티매니저들은 영속성 컨텍스트를 공유하는건지, 엔티티매니저마다 영속성 컨텍스트를 갖는건지 궁금합니다!! 3. 혹시 관련 내용이 교재에 있나요??
-
미해결iOS12 앱 개발 퍼펙트 가이드
반드시 required init을 생성해야하는 이유가 뭔가요??
ios를 배우면서 required init을 왜 사용하는지 잘 모르겠습니다 required init에 대해 알려주시면 감사하겠습니다
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 질문 드립니다.
안녕하세요 강사님, 강의 잘 보고 있습니다. 질문 드릴 것이 있습니다. 다른 언어로 해당 문제를 풀었을 때는 강의처럼 풀 수 있지만 파이썬으로 했을 때는 라이브러리로 조합을 지원하는 걸로 알고 있습니다. 관점의 차이긴 하겠으나.. 시간 효율 등을 함께 보는 알고리즘 테스트에서 파이썬 언어를 선택했을 때, 강사님께서 알려주신 방법과 기본 라이브러리를 사용하는 방법 중 어떤 방식으로 푸는게 더 나을까요?
-
미해결iOS12 앱 개발 퍼펙트 가이드
3:20~ 3: 30 초에 rating 값을 0 으로 만들어 준다고했는데 왜 0으로 만들어주는 코드가 없죠?
3:20~ 3: 30 초에 rating 값을 0 으로 만들어 준다고했는데 왜 0으로 만들어주는 코드가 없죠?
-
미해결스프링 기반 REST API 개발
EventController의 update에서 eventDto -> event로 mapping하는 방법 질문
안녕하세요. ModelMapper 관련 문의 드립니다. (강의 본론을 좀 벗어난것 같긴한데 답변해 주실 줄 믿습니다. 감사합니다. 꾸벅) EventController의 update method에서 사용자로 부터 전달받은 eventDto에 값이 일부만 들어있는 경우 (예, name만 update하고 싶은 경우에 body로 아래와 같이 보내려고 합니다) 일일이 노가다하지 않고 처리할 수 있는 방법이 있을까요. -- 아래 -- { "name" : "Updated Event" } -------- 이 경우 나머지 컬럼은 null이어서 validation에 걸립니다. 원하는 것은 나머지 컬럼은 기존값을 그대로 갖는 거예요. @PutMapping("/{id}")public ResponseEntity update(@PathVariable Integer id, @Valid @RequestBody EventDto.CreateOrUpdate eventDto, BindingResult errors, @CurrentUser User currentUser) { if (errors.hasErrors()) { return badRequestResponse(errors); } Optional<Event> byId = this.eventRepository.findById(id); if (!byId.isPresent()) { return notFoundResponse(); } Event event = byId.get(); if (currentUser != null && !currentUser.equals(event.getManager())) { return new ResponseEntity(HttpStatus.FORBIDDEN); } modelMapper.map(eventDto, event); event.update(); eventValidator.validate(event, errors); if (errors.hasErrors()) { return badRequestResponse(errors); } eventRepository.save(event); EventModel eventModel = new EventModel(event); eventModel.add(linkToDelete(event)); eventModel.add(linkToProfile("resources-events-update")); return ResponseEntity.ok().body(eventModel);}
-
미해결React로 NodeBird SNS 만들기
saga axios.get 주소질문...............
https://www.inflearn.com/questions/33218 다시 새롭게 질문드립니다,. 프론트상의 요청주소를 "localhost:3060/post/100000(그룹id)" 로 하려고 전반적으로 수정하였고 부모자식관계가 있는 댓글부분을 참고해서 < routes / back>, < sagas / front > 거의 똑같이 만들었어요 "(게시물(Post)의 부모가되는) GpostId 를 찾아서 게시물들 불러오기" 를 하고싶어서 아래와같이 코드를 작성했는데 posts/ undefined 가 뜹니다. saga 에서 loadMainPostsApi 에서 변수 gpostId를 제대로 정의하지못하는것같습니다.. ****** 댓글올리기 사이클이랑 거의 동일하게 해주었는데 ( 초록색빗금표시를 한부분의 코드 ) 게시물불러오기가 안되는 이유가 뭘까요ㅠ?? ****** < posts.js/ routes / back > // 게시물'들' 불러오기 router.get('/:id', async (req, res, next) => { // GET /api/posts/100/개발자 try { const gpost = await db.Gpost.findOne({ where: { id: req.params.id } }); if (!gpost) { return res.status(404).send('포스트가 존재하지 않습니다.!!!!'); /////////////////////////// }////////////////////////////////////////////////////////////////////////////////////////// const posts = await db.Post.findAll({ where: { GpostId: req.params.id, }, include: [{ model: db.User, attributes: ['id', 'nickname'], },{ model: db.Image, },{ model: db.User, through: 'Like', as:'Likers', attributes:['id'], }], order: [['createdAt', 'DESC']], // DESC는 내림차순, ASC는 오름차순 }); res.json(posts); } catch (e) { console.error(e); next(e); } }); < post.js/ routes / back > // 게시물 올리기 route : http://localhost:3060/post/개발자 router.post('/:id', isLoggedIn, upload.none(), async (req, res, next) => { try { // 부모가되는 그룹포스트가있는지 ///////////////////////////////////////////// const gpost = await db.Gpost.findOne({ where: { id: req.params.id } }); if (!gpost) { return res.status(404).send('포스트가 존재하지 않습니다.????'); } /////////////////////////////////////////////////////////////////////////// const newPost = await db.Post.create({ content: req.body.content, UserId: req.user.id, GpostId: gpost.id, // 어떤 그룹에 속해있는지 }); await gpost.addPost(newPost.id); /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// if (req.body.image) { // 이미지 주소를 여러개 올리면 image: [주소1, 주소2] if (Array.isArray(req.body.image)) { const images = await Promise.all(req.body.image.map((image) => { return db.Image.create({ src: image }); })); await newPost.addImages(images); } else { // 이미지를 하나만 올리면 image: 주소1 const image = await db.Image.create({ src: req.body.image }); await newPost.addImage(image); } } const fullPost = await db.Post.findOne({ where: { id: newPost.id }, include: [{ model: db.User, attributes: ['id', 'nickname'], },{ model: db.Image, },{ model:db.User, as:"Likers", attributes:['id'], }], }); res.json(fullPost); } catch (e) { console.error(e); next(e); } }); <<<<<<<<<<<<<<<<<< post.js/ sagas / front >>>>>>>>>>>>>>>>>>>> // 게시물 올리기 function addPostAPI(postData){ // http://localhost:3060/post/10000 ///////////////////// return axios.post(`/post/${postData.gpostId}`, { content: postData.content },{ withCredentials: true ////////////////////////////////////////////////////////// }); //////////////////////////////////////////////////////////////////////////////// } function* addPost(action) { try { const result = yield call(addPostAPI, action.data); yield put({ type: ADD_POST_SUCCESS, data: { //////////////////////////////////////////////////////////////// gpostId: action.data.gpostId, content: result.data, },////////////////////////////////////////////////////////////////////// }); console.error(e); } catch (e) { yield put({ type: ADD_POST_FAILURE, error: e, }); } } function* watchAddPost(){ yield takeLatest(ADD_POST_REQUEST, addPost); } // 게시물 로드하기 function loadMainPostsAPI(gpostId) { // http://localhost:3060/post/10000 return axios.get(`/posts/${gpostId}`); ////////////////////////////////////////// } /////////////////////////////////////////////////////////////////////////////////// function* loadMainPosts(action) { try { const result = yield call(loadMainPostsAPI, action.data); yield put({ type: LOAD_MAIN_POSTS_SUCCESS, data: { gpostId: action.data, content: result.data, }, }); } catch (e) { yield put({ type: LOAD_MAIN_POSTS_FAILURE, error: e, }); } } function* watchLoadMainPosts() { yield takeLatest(LOAD_MAIN_POSTS_REQUEST, loadMainPosts); } < server.js / front> server.get('/post/:id', (req, res) => { // http://localhost:3060/post/1000000 return app.render(req, res, '/posted', { id: req.params.id }); }); < posted.js / pages / front > - server.js 에서 연결해주는 동적페이지 // 그룹: 동적페이지 const Posted = () => { . . . return ( <> <div className="wrap"> {/* GpostId와 그룹의 id가 같을경우에만 화면에 표시 */} {GroupPosts.map((val)=>{ var gid = window.location.href.split("/").reverse()[0]; if( gid == val.id){ return( <div> <GroupBox gpost={val} gimg={val.GImgs} /><UploadForm gpost={val} /> </div> ); } })} </div> </> ); }; Posted.getInitialProps = async (context) => { console.log('posted getInitialProps', context.query.title); }; export default Posted; < UploadForm.js / Component / front > - 게시물올리는 컴포넌트 onSubmitForm 함수부분 const onSubmitForm = useCallback((e) => { e.preventDefault(); if (!text || !text.trim()) { return alert('게시글을 작성하세요.'); } const formData = new FormData(); imagePaths.forEach((i) => { formData.append('image', i); }); formData.append('content', text); //////////////////////////////////////////////////// formData.append('GpostId', gpost.id); //////////////////// <- ////////////////////////// dispatch({ //////////////////////////////////////////////////// type: ADD_POST_REQUEST, data: formData, }); }, [text, imagePaths, gpost.id]); < post.js /reducers / front > // 게시물 불러오기 case LOAD_MAIN_POSTS_REQUEST: { return { ...state, mainPosts: [], }; } case LOAD_MAIN_POSTS_SUCCESS: { return { ...state, mainPosts: action.data, }; } case LOAD_MAIN_POSTS_FAILURE: { return { ...state, }; } < WorkBench > - GpostId 의 파란색부분은 워크벤치에서 임의로 넣어주었습니다. + 노드 백서버 오류메세지입니다
-
미해결자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌
maven update project 가 안됩니다.
동영상대로 따라했을때 J2SE-1.5 가 1.8로 변해야하는데 제 이클립스에서는 변화가 없습니다. 무엇이 문제일까요? 구글링을 해보고 읽어보았는데 딱히 해결방안이 안나와있네요. 답변 주시면 감사하겠습니다.
-
해결됨C 프로그래밍 - 입문부터 게임 개발까지
for 질문
#include<stdio.h> int main(void) { for (int i = 10; i <= 10; i++); { printf("hello %d\n", i); } } 오류(활성) E0020 식별자 "i"이(가) 정의되어 있지 않습니다. 박준서 C:\Users\aqws\source\repos\박준서\박준서\c 프로그래밍-입문부터 게임 개발까지.c 6 뭐가 문제일까요?
-
해결됨스프링 프레임워크 핵심 기술
@Autowired Target 질문
@Autowired의 타겟에 ElementType.ANNOTATION_TYPE은 언제 사용하는 건가요? @Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE}) @Autowire를 학습하고 있는 와중에 궁금한게 생겼습니다. Constructor, metod, field는 어떻게 사용하는지 알겠는데... parameter이랑 annotation은 사용한적이 없기 때문에 이걸 어떻게 사용하는지 의문이 드네요.ㅜㅜ;;; 파라미터야 대충 @Override public String print(@Autowired PetType petType, Locale locale) { return petType.getName(); } 이렇게 하면 될것 같은데, 어노테이션은 어떻게 사용을 해야할지.. 감이 잡히지 않네요. 인터넷에 찾아보니까 어노테이션에 추가하는 거라고는 하는데, 커스텀 어노테이션을 만들고, 그곳에다 주입을 해주는 건지... 아무튼... 이 두개는 아마 사용은 잘 하지 않을 것 같긴한데요. 스프링에 추가되어있어서 질문드립니다. 다시 질문을 작성하자면, @Autowired에서 target으로 parameter이랑, annotation은 언제 사용되는건가요?