묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
시뮬링크 관련 이슈
ERROR: [XSIM 43-3225] Cannot find design unit work.hello_world in library work located at xsim.dir/work.ERROR: Please check the snapshot name which is created during 'xelab',the current snapshot name "xsim.dir/hello_world/xsimk" does not exist 이런 에러가 떠서질문을 검색해보니 gcc가 잘 설치가 안되어 있다길래sudo apt-get updatesudo apt-get install gcc설치했음에도 ./build 가 실행이 안됩니다.
-
미해결Blender(블렌더) 3.0 3D 그래픽의 입문 Part. 2
가위 손잡이 모델링 폴리곤 엉킴
손잡이 안쪽에 작게 튀어나온 부분 모델링할 때 폴리곤 엉킴이 있어서 질문드립니다.모델링할 페이스 선택 > inset > extrude > bevel 똑같이 진행한 것 같은데 섭디모디를 켜면 사진과 같이 미묘하게 겹친 것처럼 됩니다.노말 안쪽에서 보면 두번째 느낌인데 섭디모디가 입구부분을 동그랗게 만들어서 베벨이 된 엣지라인과 충돌하는 것 같습니다... 왜 저런질 모르겠구요 정답 아는 고수 있으실까요
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
강의에서 말씀하시는 메모리 공간
선생님. 어렵지만 재밌게 강의 듣고 있는 학생입니다.'국가와 국민으로 이해하는 컴퓨터 세상' 강의에서 'Program을 실행했을 때 메모리 공간을개별적으로 갖는 Process가 국민이 되는거다'라고 말씀해주셨는데 이는 Program이 OS에의해 실행되어 Process가 될 때 OS가 Process에게 할당해주는 전산 자원인 RAM이라고 보면 되는걸까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
생성자주입관련 질문
안녕하세요 강의를 듣는중에 너무 궁금한 부분이 생겨서 도움을 얻고자 질문드립니다.수업과는 거리가 있을 수 있으나 생성자 주입 중private과 final이 바뀌어 작성되어도 구문 상 오류가 나질 않는데요 private final == final private주입 방법이 똑같은 의미로 받아들이면 될지 궁금합니다!!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
선생님 flutter device를 크롬으로 했을때 http 통신이 안됩니다..
Access to XMLHttpRequest at "http://마이ipv4주소/home" from origin 'http://localhost:62502' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.http를사용합니다. server를 node.js 로 만들고 json 파일 가져올려고 합니다. ios, android는 http통신이 아주 잘되는데 chrome으로 build하면 계속 위의 에러가 나옵니다.. 혹시 해결법을 아시나요...
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
복구 불가능한 예외에 대한 질문 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의를 듣다가강의 중 등장하는 '복구 불가능한 예외'라는 것의 의미에 대해 명확하게 정리가 안되어 질문 드립니다.강의를 들으면서 생각해봤을 때 '복구 불가능한 예외'라는 것이 spring application의 범위를 벗어난 예외(DB 등 외부 문제) 현재 코드 상태로는 처리할 수 없고, 처리하기 위해서는 코드를 직접 고쳐야 하는 예외 두 가지라고 여겨집니다. 영한님이 말씀하신 '복구 불가능한 예외'의 의미가 제가 생각하는 것이 맞는지 궁금합니다.그리고 또 한 가지 질문이 있습니다.만약 '복구 불가능한 예외'의 의미가 제가 생각하는 것이 맞다면, '복구 가능한 예외'는 어떤 것들이 있는지 궁금합니다.아직 개발 경험이 부족해서 그런지 위의 2가지 경우에 대한 예외 밖에 생각나질 않네요..항상 답변 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HttpServletRequest 객체, HttpServletResponse객체
안녕하세요. 강의 내용중에 파라미터에 HttpServletRequest를 사용하셔서 갑자기 궁금한게 생겨 질문드립니다.HttpServletRequest 객체, HttpServletResponse객체 생성시점이 언제인지 질문드립니다.클라이언트가 url로 http요청이 오면 생성이 되는것인지 아니면 서버가 실행되면 생성이 되는것인지 질문드립니다..
-
미해결스프링 핵심 원리 - 기본편
안녕하세요.
안녕하세요 강의 너무 잘듣고 있습니다 항상감사합니다. build.gradle로 프로젝트를 open하는거랑 그냥 프로젝트 폴더로 open하는거 차이를 알고싶습니다.강의를 계속반복하고있는데 최근 스프링부트 버전이 3.xx되면서 3.xx부터는 자바17만지원되는데 17을사용해도 문제없는지 궁금합니다...
-
해결됨스프링 프레임워크는 내 손에 [스프2탄]
this.totalCount=totalCount
27강. 페이징처리에 필요한 값계산 파트를 들으면서 조금 이해가 안가는 부분이 있어서 질문드립니다.위 사진에서 int totalCount를 매개변수로 메서드를 생성하셨는데 this.totalCount에 매개변수인 totalCount를 집어넣는게 무슨 의미인지가 궁금합니다.최종적으로 질의를 정리하면 this.totalCount=totalCount; <- 해당 코드가 왜 작성되었는지가 이해가 잘안가는 상황입니다..아래 makePaging() 에서 totalCount를 사용하려고 저렇게 작성하는건가요?매번 답변해주셔서 감사합니다 : )
-
미해결메타스플로잇(Metasploit) 활용한 취약점 분석(초중급과정)
다른건 몰라도 이건 꼭 답변해주세요
metasploit이 exploit을 발생시키는 특정 포트가 있나요??? metasploit 의 출발지 포트 입장에서...
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원 가입 후 회원 목록 조회 시 500 Error
회원 가입 후 db에서 저장되는 것이 조회가 되는데 회원 목록에 들어가면 500Error가 발생합니다.그래서 다시 실행시키면 db에 저장 시켰던 데이터도 사라집니다.어떻게 해결할 수 있을까요?package jpabook.jpabook.controller; import jpabook.jpabook.domain.Address; import jpabook.jpabook.domain.Member; import jpabook.jpabook.service.MemberService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import javax.validation.Valid; import java.util.List; @Controller @RequiredArgsConstructor public class MemberController { private final MemberService memberService; @GetMapping("/members/new") public String createForm(Model model){ model.addAttribute("memberForm", new MemberForm()); return "members/createMemberForm"; } @PostMapping("/members/new") public String create(@Valid MemberForm form, BindingResult result){ if(result.hasErrors()){ return "members/createMemberForm"; } Address address = new Address(form.getCity(), form.getStreet(), form.getZipcode()); Member member = new Member(); member.setName(form.getName()); member.setAddress(address); memberService.join(member); return "redirect:/"; } @GetMapping(value = "/members") public String list(Model model) { model.addAttribute("members", memberService.findMembers()); return "members/memberList"; } }
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
시리얼 통신 프로그램 작동 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의를 보면서 Terminal V1.9도 써보고, commaster라는 프로그램도 사용해 보았지만, 제 컴퓨터에서는 제대로 동작하지 않고 멈춥니다.지금까지는 아두이노 시리얼 모니터로 해왔는데 3DR통신 부터는 다른 프로그램을 필요하여 Hercules라는 프로그램을 사용했더니 잘 됩니다.혹시 windows 11, 64bit, 언어는 영어 설정과 관련이 있는지 문의 드립니다.그리고 3DR 드라이버를 설치 햇는데, siliconlab로 표시 안되고 fTDI로 장치관리자에 떠도 괜찮은지 문의 드립니다. 3DR config tool은 다운로드 하려면 마우스 오른쪽 누르고 save as클릭해서 저장할 장소 지정해 주면 됩니다.
-
해결됨탄탄한 백엔드 NestJS, 기초부터 심화까지
UseFilter 데코레이터에 인스턴스? 클래스?
공식문서 힌트에서,Prefer applying filters by using classes instead of instances when possible. It reduces memory usage since Nest can easily reuse instances of the same class across your entire module. 와 같이, 인스턴스 대신에 클래스를 사용하라고 나와있는데요,클래스를 사용하는 것이UseFIlter(HttpExceptionFilter) 가 아니라,UseFIlter(new HttpExceptionFilter()) 이렇게 사용하는 건가요..? 공식문서에서 클래스를 사용하는 것이 권장된다고 나와 있고 클래스로 사용하는 것이 1번인줄 이해했는데, 그 문장 이후에도 2번 과 같이 쓰여서 헷갈려서 질문 올립니다!
-
미해결게임 프로그래머 취업 전략 가이드
루키스님의 면접관 경험에 비추어서 여쭤보고 싶습니다.
안녕하세요 저번에 루키스님의 강의를 보고 학원에 대한 무조건 안 좋은 인식만 가지고 있다가 생각을 바꾸어서 괜찮다고 하신 학원의 DX2D과정부터 시작하고 있습니다. 그런데 강의 도중에 선생님께서 전공자 분들은 DX2D 포폴 만들고 나서 그걸로 일단 서류 넣어보라고 하시더군요 가능성이 있다고 하시면서요. 일단 제 스펙은 SPK 컴공 졸업 학점 3.3/4.3게임과는 관련이 없지만 누구나 아는 IT 대기업에서 진행한 AI개발자 교육의 컴퓨터 비전 트랙을 수료했습니다. 그 후 몸이 너무 안 좋아서 취준을 중단하고 쉬다가 이제 28살이 되었습니다.이걸 굳이 얘기해야 하나 싶지만일단 코딩테스트는 그다지 걱정하고 있지 않습니다.(과거 네카라 지원했을때도 코테는 코딩테스트 합격자들 중에서도 잘 본 편이었습니다. 지금도 감 잃지 않도록 계속 준비하고 있고요)컴퓨터 공학 지식은 조금 가물가물한 부분도 있지만 학부 수준의 지식은 거의 숙지하고 있습니다. 꾸준히 계속 복습 중입니다.하지만 상용엔진 경험 + DX3D를 안해봤다는 점이 마음에 걸립니다. 이 상태로 대기업, 준대기업의 면접까지 갈 수 있을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
no element
마지막 no element 수업중에 코드를 수정해도no element 에러화면이 계속 나오네요 ㅠㅠ데이터를 받아오는것같은데 어디가 문제인지 하루종일 봐도 안되네요 아직 부족한것같습니다 지금 빌드 구문부터 실행이 되지않는데 한번 확인 부탁드려도될까요?https://github.com/JacksonBanco/dust_app
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
ADD_COMMENT_FAILURE 에러
error - ./sagas/post.jsAttempted import error: 'ADD_COMMENT_FAILURE' is not exported from '../reducers/post'.와 같이 오류 코드가 뜹니다. 간단한 문제인거 같은데 해결이 안되네요.아래는 두 코드입니다. ./reducer/post.jsimport shortId from 'shortid'; import faker from 'faker'; import produce from '../util/produce'; export const initialState = { mainPosts: [], imagePaths: [], hasMorePosts: true, loadPostsLoading: false, loadPostsDone: false, loadPostsError: null, addPostLoading: false, addPostDone: false, addPostError: null, removePostLoading: false, removePostDone: false, removePostError: null, addCommentLoading: false, addCommentDone: false, addCommentError: null, }; // -> index.js export const generateDummyPost = (number) => Array(number).fill().map(() => ({ id: shortId.generate(), User: { id: shortId.generate(), nickname: faker.name.findName(), }, content: faker.lorem.paragraph(), //아무런 글자 Images: [{ src: faker.image.image(), //공간만 차지할꺼면 placeholder }], Comments: [{ User: { id: shortId.generate(), nickname: faker.name.findName(), }, content: faker.lorem.sentence(), }], })); export const LOAD_POSTS_REQUEST = 'LOAD_POSTS_REQUEST'; export const LOAD_POSTS_SUCCESS = 'LOAD_POSTS_SUCCESS'; export const LOAD_POSTS_FAILURE = 'LOAD_POSTS_FAILURE'; export const ADD_POST_REQUEST = 'ADD_POST_REQUEST'; export const ADD_POST_SUCCESS = 'ADD_POST_SUCCESS'; export const ADD_POST_FAILURE = 'ADD_POST_FAILURE'; export const REMOVE_POST_REQUEST = 'REMOVE_POST_REQUEST'; export const REMOVE_POST_SUCCESS = 'REMOVE_POST_SUCCESS'; export const REMOVE_POST_FAILURE = 'REMOVE_POST_FAILURE'; export const ADD_COMMENT_REQUEST = 'ADD_COMMENT_REQUEST'; export const ADD_COMMENT_SUCCESS = 'ADD_COMMENT_SUCCESS'; export const ADD_COMMENT_FAILURE = 'ADD_COMMENT_FAILURE'; export const addPost = (data) => ({ type: ADD_POST_REQUEST, data, }); export const addComment = (data) => ({ type: ADD_COMMENT_REQUEST, data, }); const dummyPost = (data) => ({ id: data.id, content: data.content, User: { id: 1, nickname: '제로초', }, Images: [], Comments: [], }); const dummyComment = (data) => ({ id: shortId.generate(), content: data, User: { id: 1, nickname: '제로초', }, }); // 이전 상태를 액션을 통해 다음 상태로 만들어내는 함수(불변성은 지키면서) const reducer = (state = initialState, action) => produce(state, (draft) => { switch (action.type) { //state를 draft로 case LOAD_POSTS_REQUEST: draft.loadPostsLoading = true; //리퀘스트가 갔을때는 로딩 draft.loadPostsDone = false; draft.loadPostsError = null; break; case LOAD_POSTS_SUCCESS: draft.loadPostsLoading = false; draft.loadPostsDone = true; draft.mainPosts = action.data.concat(draft.mainPosts); //데이터합치기 draft.hasMorePosts = draft.mainPosts.length < 50; //50개로 제한 게시글 50개만 보겠다. break; case LOAD_POSTS_FAILURE: draft.loadPostsLoading = false; draft.loadPostsError = action.error; break; case ADD_POST_REQUEST: draft.addPostLoading = true; draft.addPostDone = false; draft.addPostError = null; break; case ADD_POST_SUCCESS: draft.addPostLoading = false; draft.addPostDone = true; draft.mainPosts.unshift(dummyPost(action.data)); break; case ADD_POST_FAILURE: draft.addPostLoading = false; draft.addPostError = action.error; break; case REMOVE_POST_REQUEST: draft.removePostLoading = true; draft.removePostDone = false; draft.removePostError = null; break; case REMOVE_POST_SUCCESS: draft.removePostLoading = false; draft.removePostDone = true; draft.mainPosts = draft.mainPosts.filter((v) => v.id !== action.data); break; case REMOVE_POST_FAILURE: draft.removePostLoading = false; draft.removePostError = action.error; break; case ADD_COMMENT_REQUEST: draft.addCommentLoading = true; draft.addCommentDone = false; draft.addCommentError = null; break; case ADD_COMMENT_SUCCESS: { const post = draft.mainPosts.find((v) => v.id === action.data.postId); post.Comments.unshift(dummyComment(action.data.content)); draft.addCommentLoading = false; draft.addCommentDone = true; break; // const postIndex = state.mainPosts.findIndex((v) => v.id === action.data.postId); // const post = { ...state.mainPosts[postIndex] }; // post.Comments = [dummyComment(action.data.content), ...post.Comments]; // const mainPosts = [...state.mainPosts]; // mainPosts[postIndex] = post; // return { // ...state, // mainPosts, // addCommentLoading: false, // addCommentDone: true, // }; } case ADD_COMMENT_FAILURE: draft.addCommentLoading = false; draft.addCommentError = action.error; break; default: break; } }); export default reducer;./sagas/post.jsimport axios from 'axios'; import shortId from 'shortid'; import { all, delay, fork, put, takeLatest, throttle } from 'redux-saga/effects'; import { ADD_COMMENT_FAILURE, ADD_COMMENT_REQUEST, ADD_COMMENT_SUCCESS, ADD_POST_FAILURE, ADD_POST_REQUEST, ADD_POST_SUCCESS, generateDummyPost, LOAD_POSTS_FAILURE, LOAD_POSTS_REQUEST, LOAD_POSTS_SUCCESS, REMOVE_POST_FAILURE, REMOVE_POST_REQUEST, REMOVE_POST_SUCCESS, } from '../reducers/post'; import { ADD_POST_TO_ME, REMOVE_POST_OF_ME } from '../reducers/user'; function loadPostsAPI(data) { return axios.get('/api/posts', data); } function* loadPosts(action) { try { // const result = yield call(loadPostsAPI, action.data); yield delay(1000); yield put({ type: LOAD_POSTS_SUCCESS, data: generateDummyPost(10), }); } catch (err) { console.error(err); yield put({ type: LOAD_POSTS_FAILURE, data: err.response.data, }); } } function addPostAPI(data) { return axios.post('/api/post', data); } function* addPost(action) { try { // const result = yield call(addPostAPI, action.data); yield delay(1000); //서버를 구현하기 전까지 딜레이로 구현하는 효과 const id = shortId.generate(); yield put({ type: ADD_POST_SUCCESS, data: { id, content: action.data, }, }); yield put({ type: ADD_POST_TO_ME, data: id, }); } catch (err) { console.error(err); yield put({ type: ADD_POST_FAILURE, data: err.response.data, }); } } function removePostAPI(data) { return axios.delete('/api/post', data); } function* removePost(action) { try { // const result = yield call(removePostAPI, action.data); yield delay(1000); yield put({ type: REMOVE_POST_SUCCESS, data: action.data, }); yield put({ type: REMOVE_POST_OF_ME, data: action.data, }); } catch (err) { console.error(err); yield put({ type: REMOVE_POST_FAILURE, data: err.response.data, }); } } function addCommentAPI(data) { return axios.post(`/api/post/${data.postId}/comment`, data); } function* addComment(action) { try { // const result = yield call(addCommentAPI, action.data); yield delay(1000); yield put({ type: ADD_COMMENT_SUCCESS, data: action.data, }); } catch (err) { yield put({ type: ADD_COMMENT_FAILURE, data: err.response.data, }); } } //takeevery function* watchLoadPosts() { yield throttle(5000, LOAD_POSTS_REQUEST, loadPosts); //5초동안은 post request 한 번만 실행 } function* watchAddPost() { //클릭 실수 2번했을때(동시에 로딩 중일때) 마지막 클릭만 실행되게 every는 두 번 다 실행 yield takeLatest(ADD_POST_REQUEST, addPost); } function* watchRemovePost() { yield takeLatest(REMOVE_POST_REQUEST, removePost); } function* watchAddComment() { yield takeLatest(ADD_COMMENT_REQUEST, addComment); } export default function* postSaga() { yield all([ fork(watchAddPost), fork(watchLoadPosts), fork(watchRemovePost), fork(watchAddComment), ]); }제로초님 강의와 깃허브 보면서 제 코드에 문제가 있는지 찾아보고 수정도 해봤습니다.import export둘다 잘 들어 갔는데 다른 문제 일까요? 아니면 install이 안된게 있는 걸까요?
-
미해결jQuery로 구현하는 NFT 마켓플레이스 (이더리움, 폴리곤)
리믹스이더리움 > 환경셀렉바에 javascript (VM)이 없어서,,RemixVM
- 리믹스이더리움 > 환경셀렉바에 javascript (VM)이 없어서,,RemixVM로 설정해놓고 사용해도됄까요;;; 그리고 contract폴더안 artifacts폴더가 없는데상관없을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티 매니저 동시성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)일반적으로 스프링 컨테이너는 싱글톤 기반으로 동작하기에 빈은 모든 쓰레드가 공유합니다. 그런데@PersistenceContext을 통해 주입 받은 EntityManager는 동시성 문제가 발생하지 않는다고 해서 의문이 생겼습니다. 따라서 관련된 내용을 공부하던 중 아래 질문의 영한님 답변을 봤습니다. https://www.inflearn.com/questions/158967/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-entitymanager%EC%97%90-%EB%8C%80%ED%95%B4-%EA%B6%81%EA%B8%88%ED%95%9C-%EC%A0%90%EC%9D%B4-%EC%9E%88%EC%96%B4-%EC%A7%88%EB%AC%B8-%EB%82%A8%EA%B9%81%EB%8B%88%EB%8B%A4제가 이해한 바로는 private final EntityManager em;를 통해 주입 받은 엔티티매니저는 싱글톤 빈이지만 일반적인 빈들과는 다릅니다.공통점 : 일반적인 스프링 빈과 엔티티 매니저는 모두 프록시 객체를 주입받는다. 그리고 이는 모두 싱글톤이다.차이점 : 일반적인 스프링 빈은 호출될때마다 에플리케이션 전체를 대상으로 해당 빈이 스프링 컨테이너에 등록되어 있는지 찾고 있으면 스프링 컨테이너에서 찾아 반환, 없으면 빈을 생성하고 등록(CGLIB 기술)반면 엔티티매니저는 이해가 가지 않습니다. 책 581 페이지를 보면 A, B 코드에서 호출한 엔티티 매니저는 서로 다르며 , 582에서 멀티 쓰레드에서 같은 코드에서 호출한 엔티티 매니저는 서로 같습니다. 일반적인 싱글톤 빈들이나 엔티티 매니저 모두 싱글톤이며 프록시 객체를 주입 받는 것 같은데 그 안의 원리들이 조금 다른 것 같은데 이 점이 궁금합니다.
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
안녕하세요. 용어에 대해 질문이 있어 글 남깁니다.
안녕하세요. 강의 잘듣고 있습니다.다만, 제가 이 강의부터 시작해서 그런지 용어에 대한 개념이 헷갈립니다. util 디렉토리와 source.kt 파일의 역할은 정확히 무엇인가요?util 디렉토리에 들어가는 파일들의 내용은 무엇이고,DataSource의 역할이 무엇인지 궁금합니다 !감사합니다..
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
path 메소드는 sys에만 사용 가능한가요?
마지막 과제로 6-2챕터를import해서 사용해보라고 하셔서 사용해 봤습니다.import한 모듈의 경로를 추적하려면 path메소드를 사용해야 한다고 배워서 실습하려 했는데 has no attribute 'path'라는 에러가 나네요.import math를 해 보고print(math.path)를 해봐도 에러가 납니다import한 모듈의 경로를 추적하는 메소드가 있을까요?