묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨홍정모의 따라하며 배우는 C언어
바이너리 출력 오류관련 질문입니다.
안녕하세요. 프로그램 실행중에 무언가 오류가 생겨 질문 드립니다. 강사님께서 이번강의 후반부에 보여주신 제 컴퓨터에 작성하여 실행해보았습니다. 그런대 이게 컴퓨터 자체의 문제인지 코드 문제인지 도통 이해할수 없는 오류가 발생했습니다. void write_books(const char* filename, const struct book* books, int n) { FILE* fp = fopen(filename, "wb"); if (fp == NULL) { printf("Can't open file\n"); exit(1); } fwrite(&n, sizeof(n), 1, fp); fwrite(books, sizeof(struct book), n, fp); fclose(fp); } void read_books2(const char* filename, struct book** books_dptr, int* n) { FILE* fp = fopen(filename, "rb"); if (fp == NULL) { printf("Can't open file\n"); exit(1); } fread(n, sizeof(int), 1, fp); struct book* read_books = (struct book*)calloc(sizeof(struct book), *n); fread(read_books, sizeof(struct book), *n, fp); fclose(fp); *books_dptr = read_books; } 나머지 코드는 강의 내용과 같습니다. 그런데 이 코드를 실행해보면 이렇게 "The Great Gatsby"가 출력되지 않습니다. 가끔씩은 빈칸이 아니라 쓰레기값으로 추정되는 이상한 값이 출력되기도 했습니다. 디버그를 실행해보니 분명 read_books에 잘 들어간 "The Great Gatsby"가 *books_dptr에 read_books를 대입하니 왠 설명만 있고 없어져 있습니다. 이것이 도대체 무슨 현상인지 알수가 없습니다. 답변 부탁드립니다.
-
해결됨코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
슬랙 초대 부탁드립니다.
pmamoon79@gmail.com 슬랙 초대 부탁드립니다! 감사합니다.
-
미해결
자바 메모리 사용에 대해 궁금한 점이 있습니다.
안녕하세요 자바를 공부하면서 자바의 메모리 사용에 대해 알아가고 있습니다. 지금까지 아는 바는 다음과 같습니다 : 객체(object)를 프로그래밍 언어로 구현한 것이 class이다. class를 메모리에 생성하면 사용자가 정의한 멤버변수(속성)와 멤버함수(메소드)는 Heap segment에 용량이 할당된다. Heap segment에 할당된 메모리 공간의 주소를 가리키는 '참조(형) 변수(reference variable)'가 Stack segment에 할당된다. 변수에 대입되는 값들(리터럴: 정수, 실수, 문자)은 JVM에 제공하는 Constant pool이 Heap segment에 올려지고, 변수에 값을 대입하는 것은 할당된 변수 메모리에 대입하려는 값을 constant pool에서 찾아 그 주소를 가리키게 하는 것이다. 자바의 메모리 사용에 대해 검색해보니 String 객체를 예시로 든 내용들을 많이 보았습니다. 제가 이해한 바는 다음과 같습니다 : // 사례 1 String example = "example"; /* 사례 1의 경우 example이라는 참조변수는 스택에 할당되고, 이것이 직접 힙의 상수 풀의 "example"이 있는 메모리의 주소를 가리킨다. */ // 사례 2 String example = new String("example"); /* 사례 2의 경우 example이라는 참조변수는 스택에 할당되고, String 객체의 한 인스턴스가 힙에 생성되며, 그 인스턴스가 상수 풀의 example"이 있는 메모리의 주소를 가리킨다. */ 위의 사례에 대하여 실제 메모리 사용이 어떻게 이루어지는지 궁금해서 질문 올립니다. 제가 생각해본 결과 다음 세 경우 중 하나에 해당하리라고 추측하는데 어느 것이 맞는지 알고 싶습니다. 감사합니다.
-
미해결WEB2 - JavaScript
뭔말인지 모르겠음
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@modelAttribute 사용 문의
안녕하세요 강의듣고 @modelAttribute 연습 중에 궁금한 것이 있어 질문드립니다. JSONObject타입의 getter, setter를 설정한 변수를 포함하고 있는 도메인을 아무 값도 넘기지 않고 @modelAttribute를 사용하면 typeMismatch라고 나오면서 java.lang.IllegalStateException이 발생하는데 이유가 뭘까요? 화면에서 해당 변수를 console.log로 찍어보면 값이 필수는 아니라서 null이라고 나옵니다. 화면에서 컨트롤러 호출시 @modelAttribute를 선언한 도메인의 모든 값을 다 작성해주어야 하나요?
-
미해결Ethereum 실전! 초보자를 위한 Lottery Dapp 개발
안녕하세요 강의 잘 따라와서 끝까지 잘 해냈습니다!!
우선 좋은 강의 덕분에 첫 솔리디티 리엑트 작품을 만들었네요!! 정말 감사드립니다!! 저는 리엑트 훅스로 따라했는데 History table이 안나올때도 있고 나왔었는데 setInterval로 2초씩 줬는데 나왔다가 리렌더링 되고 안나왔다가 다시 나왔다가 계속 반복되고있는데 어떤게 문제일까요.. useCallback으로 감싸줬고 리렌더링 처리 잘 해줬다고 생각했는데 잘 안되네여 ㅜㅜ
-
미해결Vue로 Nodebird SNS 만들기
프론트로 이미지가 넘어오지가 않습니다
안녕하세요 제로초님 5-4강좌를 다 듣고 진행중에 있는데 이미지가 업로드 되지가 않습니다 ㅜ 무슨 다른 에러는 하나도 뜨는게 없는데 네트워크 탭에 보면 Images가 비어있습니다. router.post('/images', isLoggedIn, upload.array('image'), (req, res) => { console.log(req.files) return res.json(req.files.map(v => v.filename)) }) router.post('/', isLoggedIn, async (req, res, next) => { try { const hashtags = req.body.content.match(/#[^\s#]+/g) const newPost = await db.Post.create({ content: req.body.content, UserId: req.user.id }) if (hashtags) { const result = await Promise.all(hashtags.map(tag => db.Hashtag.findOrCreate({ where: { name: tag.slice(1).toLowerCase() } }))) await newPost.addHashtags(result.map(r => r[0])) } if (req.body.image) { if (Array.isArray(req.body.image)) { await Promise.all(req.body.image.map((image) => { return db.Image.create({ src: image, PostId: newPost.id }) })) } else { await db.Image.create({ src: req.body.image, PostId: newPost.id}) } } const fullPost = await db.Post.findOne({ where: { id: newPost.id }, include: [{ model: db.User, attributes: ['id', 'nickname'] }, { model: db.Image }] }) return res.json(fullPost) } catch (err) { console.error(err) next(err) } }) 그런데 라우터 보시면 model : db.Image를 제대로 넣어놨는데 왜 안돼는지 모르겠습니다 아예 이미지를 서버로 전송 안해주나 생각해서 프론트도 봤는데 제로초님과 다른 코드는 발견하지 못했습니다 ㅜㅜ 무엇이 문제인지 피드백 받을 수 있을까요?? front/store/posts.js 의 액션 uploadImages({commit}, payload) { this.$axios.post('http://localhost:3085/post/images', payload, { withCredentials: true }) .then((res) => { commit('concatImagePaths', res.data) }) .catch((err) => { console.error(err) }) front/store/posts.js 의 뮤테이션 concatImagePaths(state, payload) { state.imagePath = state.imagePath.concat(payload) }, front/components/postcard <template> <div> <v-card style="margin-bottom: 20px"> <post-images :images="post.Images || []" /> PostImages 잘연결 해놨습니다 무엇이 문제일까요 ㅜ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강사님! 에러가 발생헀는데 ㅠㅠ
제가 받아 쓴 스크립트가 문제인지 아니면 뭐가 문제인지 모르겠어요.ㅠㅠ using System.Collections; using System.Collections.Generic; using UnityEngine; public class Managers : MonoBehaviour { static Managers s_instance; //static_instance /유일성이 보장된다. static Managers Instance { get { return s_instance; } } //Property 방식으로 가져옴. InputManager _input = new InputManager(); public static InputManager Input { get { return Instance._input; } } void Start() { Init(); } void Update() { _input.OnUpdate(); } static void Init() { //if(Instance == null) if(s_instance == null) { GameObject go = GameObject.Find("@Managers"); //@Managers 옵젝의 이름을 찾는다 if(go == null) //만약 @Managers 옵젝의 이름이 없다면! { //새로 생성을 해준다. go = new GameObject { name = "@Managers" }; //새로 생성을 하는데, 이름을 @Managers로 새로 생성 go.AddComponent<Managers>(); //@Managers 오브젝트 생성을 했다면, Manager 컴포넌트(스크립트)를 추가해줌. } DontDestroyOnLoad(go); //삭제가 되지 않도록 작업함! //Instance = go.GetComponent<Managers>(); s_instance = go.GetComponent<Managers>(); } } } using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class InputManager//싱글톤으로 일반적인 C# 파일로 만들 것이다. { public Action KeyAction = null; //여기서 Action이 빨간 줄이 뜬다면 using System; 을 써준면 된다. //일종의 델리게이트 문법이다. public void OnUpdate() //이렇게 작업을 하면 캐릭터가 아무리 1000개가 되도 이 루프마다 //1회만 체크! { if (Input.anyKey == false) return; //키를 입력할 경우 if (KeyAction != null) KeyAction.Invoke(); } } using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { [SerializeField] //private으로 지정된 변수를 유니티에 보이도록 작업한 것! float mSpeed = 10.0f; void Start() { Managers.Input.KeyAction -= OnKeyborad; //혹여 키보드를 두번 클릭할 경우 에러 나지 않도록! Managers.Input.KeyAction += OnKeyborad; } void Update() { } void OnKeyborad() { //키보드 WSAD으로 움직이기 if (Input.GetKey(KeyCode.W)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.forward), 0.2f); transform.position += Vector3.forward * Time.deltaTime * mSpeed; } if (Input.GetKey(KeyCode.S)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.back), 0.2f); transform.position += Vector3.back * Time.deltaTime * mSpeed; } if (Input.GetKey(KeyCode.A)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.left), 0.2f); transform.position += Vector3.left * Time.deltaTime * mSpeed; } if (Input.GetKey(KeyCode.D)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.right), 0.2f); transform.position += Vector3.right * Time.deltaTime * mSpeed; } } } 이렇게 소스코드를 입력하고 유니티에서 재생을 해서 확인하는데 아래 이미지처럼 오류가 났다고 하는데 무슨 말인지 모르겠습니다 ㅠㅠ 도와주세요!ㅠㅠ
-
미해결누구든지 하는 리액트: 초심자를 위한 react 핵심 강좌
수강자료는 어디서 받나요
수강 자료는 어디서 다운로드 받나요강의는 볼수있는데 참고 자료가 있는거같은데 어디서 받는지 잘모르겠네요 ;
-
미해결타입스크립트 시작하기
extends에 관하여
extends에 대해 설명을 해주실때, 5분 53초에서 A extends B => A 가 B 에 할당 가능해야 한다 라고 설명해주셨습니다. 뒤에 강의를 계속 듣다보니 extends가 상속의 개념이 강한것 같은것으로 이해됩니다. A에 할당 가능한 타입이 더 많은데 A가 B에 할당 가능해야 한다는 개념이 이해가 안됩니다. B의 타입을 A가 상속 받아 B의 타입을 A에서도 가지고 있으며, A의 타입 일부가 B의 타입과 동일하다고 생각해야하는게 아닌가요? 'A 가 B 에 할당 가능해야 한다' 는 말이 잘 이해가 되지 않습니다.
-
미해결[2026 신규] 데이터분석 준전문가(ADsP) 자격증
외부데이터
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요? 강의를 보니까 "data"라는 외부데이터가 제공 되었던거 같은데 어디서 다운 받나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
redirectAttribute !
안녕하세요 mvc1에서 url에 + 를 사용하는 것은 인코딩 문제로 인행 위험하다고 들어 redirectAttribute 를 사용하여 redirect를 해주고자 하였습니다. mvc1 에서 배운 내용과 동일하게 코드를 작성하였는데 Controller에서 URL을 읽지 못한다고 경고가 나더라구요 혹시 redirectAttribute를 사용할 수있는 조건이 따로 있는건가요? 코드 해당 코드로 실행했을시 나오는 url
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
Mutations와 Actions의 차이에 대해 궁금합니다.
강의에서는 Mutations와 Actions의 차이는 단순히 동기로직을 처리와 비동기로직 처리라는 것은 이해했습니다. 그리고 그게 프레임워크 상에서 권장하는 방식이라고 이해했는데, 기능적으로는 따로 차이점이 있을까요? 질문들을 살펴봤을 때에는 Mutations을 통하면 devtool로 트랙킹이 가능한다정도의 차이가 있는것 같습니다.
-
미해결UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>
질문있습니다!
강의를 들으면서 코딩을하다가 만약에 여러곳 view controller에서 data를 fehch,update,delete할수 있단 생각에 CoreDataManger라는 클래스를 따로만들어서 여기에다가 함수들을 구현했습니다. class CoreDataManager{ static let shared = CoreDataManager() var context : NSManagedObjectContext{ return persistentContainer.viewContext } var todoList = [TodoList]() private init(){ } func fetchData(){ let fetchRequest : NSFetchRequest<TodoList> = TodoList.fetchRequest() do{ try context.fetch(fetchRequest) }catch{ print(error) } } // MARK: - Core Data stack lazy var persistentContainer: NSPersistentContainer = { let container = NSPersistentContainer(name: "TodoApp") container.loadPersistentStores(completionHandler: { (storeDescription, error) in if let error = error as NSError? { fatalError("Unresolved error \(error), \(error.userInfo)") } }) return container }() // MARK: - Core Data Saving support func saveContext () { let context = persistentContainer.viewContext if context.hasChanges { do { try context.save() } catch { let nserror = error as NSError fatalError("Unresolved error \(nserror), \(nserror.userInfo)") } } } } 이렇게 구현해서 View Controller에서 싱글톤으로 접근해서 사용 하려고 합니다. 이런 구현방식이 view controller에서 연산을 수행하는 것보다 효율적인지 여쭤보고 싶습니다! 강의 항상 잘 듣고 있습니다 감사합니다
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
자바스크립트 질문있습니다!
버튼 클릭시 location.href="/list.do"하면 왜 안되는 것인가요? 루트컨텍스트가 없어서 그런걸까요? jstl을 사용하지 않고도 해보고 싶습니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
git 권한 요청드립니다!
인프런 아이디 : ohs6006@gmail.com 인프런 이메일 : ohs6006@gmail.com 깃헙 아이디 : ohs6006@gmail.com 깃헙 Username : HSWEB 요청드립니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
git 권한 요청드립니다!
인프런 아이디 : ohs6006@gmail.com 인프런 이메일 : ohs6006@gmail.com 깃헙 아이디 : ohs6006@gmail.com 깃헙 Username : HSWEB 요청드립니다.
-
해결됨비개발자를 위한 RPA 강의 (UiPath 입문편)
Click 시 드래그
클릭에 대해 상세히 설명해 주셔서 감사합니다. 우선은 클릭의 속성에서 클릭다운/ 클릭 업 이 있었는데, 드래그 하거나 아니면 스크롤이 팔요한 경우에는 어떻게 액티비티를 넣어야 하는지 궁금합니다. 보통은 스크롤의 경우 잡아서 아래로 내려지게 되는데, 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
a + bi 를 행렬로 표현하는 부분이 이해가 가지 않습니다.
37분쯤 부터 a + bi 가 행렬로도 표현이 가능하다고 설명해주시고 계시는데요 a + bi 가 [a, -b] [b, a] 로 표현된다고 하셨는데 아래에서 단위행렬을 말씀하실 때에는 E = [1, 0] [0, 1] I = [0, -1] [-1, 0] 으로 말씀하셨습니다. 제가 이해한 바로는 E 가 실수부의 단위행렬이고, I 가 허수부의 단위행렬같은데, 다른 질무의 계산 결과도 보니 I 가 잘못된 건 아닌것 같고, [a, -b] [b, a] 이게 [a, -b] [-b, a] 이렇게 (2, 1)의 값이 b 가 아닌 -b가 되어야 하는게 아닌가요?? 행렬에 너무 약해서 제가 잘못이해한것 같기도 한데ㅠㅠ 확인한번만 부탁드립니다ㅠㅠ
-
미해결홍정모의 따라하며 배우는 C++
구조체 선언질문
여기서 구조체를 만들면 cd c 처럼 struct cd이렇게 안해도 만들어 졌습니다 근데 여기서는 struct time으로 해줘야 오류가 안생기던데 아무리 찾아봐도 둘의 차이점을 구조체에서는 못찾겠습니다. 왜 이렇게 차이가 생기는지 궁금합니다