묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Redux vs MobX (둘 다 배우자!)
getDefaultMiddleware 관련 질문드립니다.
안녕하세요 제로초님! 유익한 강의 감사합니다. 다름 아니라, 오늘 getDefaultMiddleware를 써보니까 라이브러리에서 deprecated되어있더라구요. 공식문서(https://redux-toolkit.js.org/api/getDefaultMiddleware)보니까 기존 사용하던 코드에서 어떻게 변경할지 가이드를 제시하고 있는데, 가이드대로 코드 변경해도 문제 없을까요 ??!
-
미해결캐글 Advanced 머신러닝 실전 박치기
Feature engineering 질문입니다
선생님 덕분에 항상 많은것을 배워갑니다. 강의를 들으면서 궁금한게 생겼는데요. LGBM 모델이 decision tree 기반으로 작동한다고 알고있습니다. 첫번째 LGBM regressor 모델을 쓰게될때 categorical 데이터와 연속형 데이터가 섞인 데이터를 받게될 경우도 다분하다고생각되는데요 .이때는 data feature engineering 을 어떤식으로 접근해야할지 모르겠습니다. 조금 범위가 넓은 질문이기도 한데요 1. 가령 연령대의 데이터가 birth_date 로 오지않고 1:(20~25) 2:(25~30) 등으로 올때는 그냥 별도의 feature_engineering 을 하지않아도 되는지??여부 2. 새로운 특징을 추출할때 범주형과 연속형 변수를 섞어서 도출할때에는 어떤식으로 해야할지?? 선생님의 의견을 듣고싶습니다( 가령 안건드는게 좋다라던지 접근방식이라던지) 3. 그리고 연속형 범주에서 LGBM 을 사용할떄는 굳이 정규화를 시켜주지않아도되는지여부도 궁금합니다.( decision tree 기반이라 굳이 안해도 된다는말을 어디서본거같긴한데 잘 모르겠습니다) 4. 특정 열이 데이터가 한쪽으로 치우져있을때 log 를 씌워 정규분포형태로 만들어줄수있다는것도 알게되었습니다(머신러닝완벽가이드) 여기서 train_data의 특정 column에('A'라고 하겠습니다) log를 적어주었을때 test_column 특정열('A')에도 log 를 취해준후 예측을 하고 predict 한결과를 그대로 사용하면 되는것이 맞는지요?? 5. 마지막으로 평가지표에 대한 질문인데요. rmse나 MAPE 등 다양한 평가지표가 존재합니다. 근데 여기서 rmse 가 무조건낮다고 쓸만한 모델인가? 에대한질문입니다. rmse 가 0.1 이여도 쓸만한 모델이 아닐수도있고 rmse가 10이여도 쓸만한 모델일수도 있다고 생각이되는데 이에대한 구분기준은 어떻게정해야할까요??? 이제 머신러닝을 배우는단계라 궁금한게 너무많아서 한번에 질문이 많아졌네요. 감사합니다.
-
미해결홍정모의 게임 만들기 연습 문제 패키지
vcpkg 다운로드에 문제를 겪고있습니다
현재 vcpkg를 통하여 opengl, glew, glfw3를 32비트와 64비트 모두를 선생님의 chapter가 있는 곳에 전부 다운받아 놓은 상태입니다. chapter1 - lecture1.sln을 통하여 코드를 실행하였더니 "파일소스를 열 수 없습니다 "GLFW/glfw3.h" 이렇게 에러가 나는데 어떻게 하면 해결 할 수 있을까요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
예제 8번 관련 질문입니다
8번이 실행되는 원리는 어느정도 이해가 가서 변형을 해보았습니다. 수업에서 다루었던 코드가 a = ['foo', 'bar', 'baz'] while True: if not a: break print(a.pop()) 인데 이것을 아래와 같이 바꾸면 에러가 뜹니다. a = ['foo', 'bar', 'baz'] while True: if a == False: break else: print(a.pop()) if not a:가 a가 false가 되면으로 해석해서 저렇게 바꿔봤는데 에러로 IndexError: pop from empty list 가 뜨는 이유를 모르겠습니다. 답변 부탁드립니다.
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
Delegate를 옮길때
GameData.cs에다가 public delegate void OnClicked();를 옮길때, 제가 실수로 Util 클래스 안에다가 넣어버렸습니다 그랬더니, 아래 함수에서 " popUp.SetListenerYes(onClickYes); popUp.SetListenerNo(onClickNo);" 이 부분에서 onClickNo라고 되어 있는 부분에서 오류가 납니다 위의 Argument 자리에서는 괜찮은데 왜 아래서 오류가 생기는 건지 이해가 안갑니다 오류는 이러합니다 " public delegate void OnClicked(); " public static void CreatePopUp(GameObject prefab, GameObject parent, OnClicked onClickYes, OnClicked onClickNo, int id) { GameObject GO_PopUp = GameObject.Instantiate<GameObject>(prefab, parent.transform, false); PopUp popUp = GO_PopUp.GetComponent<PopUp>(); popUp.SetListenerYes(onClickYes); popUp.SetListenerNo(onClickNo); popUp.Text_PopUpContent.text = string.Format("Do you want to buy {0}", GameDataManager.instance.ships[id].name); }
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
delay 질문.
안녕하세요 맛비님! 뭔가 재 질문하게 되는거 같아 죄송합니다.. r_vaild 신호를 이용해서 delay가 되는 원리가 이해가 되지 않습니다.. always @(posedge clk or negedge reset_n) begin if(!reset_n) begin r_vaild <= 1'b0; end else if (i_run) begin r_vaild <= 1'b0; end else begin r_vaild <= i_vaild; end end 이 구문에서 i_vaild 라는 저장공간에 있는 값을 r_vaild 라는 저장공간으로 이동하게 되면 delay가 발생하는 원리가 맞나요?? 즉, 저장공간에서 저장공간으로 값이 이동하게 되면 delay 가 생긴다.. 제대로 이해한게 맞을까요??
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
getServerSideProps 를 이용하면 store 가 초기화돼요.
main posts 들이 보이는 index.js 에서 getServerSideProps 를 통해 초기 post 들을 불러오고 있는데, Link 태그를 이용해서 게시글 상세 페이지 ex) /post/39 와 같이 이동하게 만들었습니다. 그 이후 '뒤로 가기' 하면 index.js 를 불러오면서 새롭게 main posts 를 불러오는데 혹시 그전 값들로 유지하게 할 수 있나요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간 초과
코드는 강의에 올려주신 것과 비슷한데 시간 초과가 발생합니다... import java.util.*; public class Ch8_14 { public static int n,m, dis, answer = Integer.MAX_VALUE; public static int[][] board; public static ArrayList<Point> pizza = new ArrayList<>(); public static ArrayList<Point> house = new ArrayList<>(); public static int[] combi; public static class Point { int x, y; Point(int x, int y) { this.x = x; this.y = y; } } public static void DFS(int index, int start) { if(index == m) { int sum = 0; for(Point h : house) { dis=Integer.MAX_VALUE; for (int idx : combi) { dis = Math.min(dis, Math.abs(h.x - pizza.get(idx).x) + Math.abs(h.y - pizza.get(idx).y)); } sum+=dis; } answer = Math.min(answer, sum); } else { for(int i = start; i < pizza.size(); i++) { combi[index] = i; DFS(index+1, start+1); } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); board = new int[n][n]; // 입력 받기 for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { int tmp = sc.nextInt(); if(tmp == 1) house.add(new Point(i,j)); if(tmp == 2) pizza.add(new Point(i,j)); } } combi = new int[m]; DFS(0,0); System.out.println(answer); } }
-
미해결
php localhost:8080
강의 따라가고 있는데 localhost:8080으로 접속하는게 안됩니다 . 인터넷에서 찾았을땐 netstat -aon 으로 8080사용중인 서버를 종료하고 하면 된다는데 같은 php파일이 사용되는걸로 되어있고 종료하고 진행해도 계속 같습니다 어떻게 해야할까요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테이블 설계 관련 질문
프론트 엔드에서 전체 category를 조회해서, 화면에 카테고리를 선택할수 있도록 출력해주는 화면이 있고 유저가 게시글을 등록한다고 한다면 --- 1. 아래와 같이 Category 테이블에 모든 카테고리를 저장해 (init), 2. 이 리스트를 전달해주고, (미리 카테고리들은 정해져 있다고 할때, 추가도 할수 있겠지만) 3. user가 게시글을 등록할때 client가 입력한 category를 category table에서 찾아오고 4. 그 값을 기반으로 post와 postCategory에 저장해주는 방식이 되어야 하는거 같은데 (강의들중 어디에서 질문하는게 좋을지 약간 애매해서 여기에 글 올립니다.) ------ 이렇게 하는 방식이 맞을까요? 뭔가 동작 하게끔 할수 는 있는데 올바른 방법같지 않아서 영한님 다른강의들도 들어보면서 같이 몇일째 고민중인데 찜찜하고 명확하게 확신이 안섭니다. 카테고리 목록은 initService를 하나 만들어서 미리 저장해두었습니다. (강의에서 하신 initDb처럼) 답변주시면 감사드리겠습니다. 몇일째 해결이 안되요 ㅠㅠ post테이블의 CATEGORY_TAG는 삭제 예정입니다 public class Post { @Id @GeneratedValue @Column(name = "post_id") private Long id; private String title; @Lob private String desc; private int price; @Enumerated(EnumType.STRING) private Status status; @ManyToOne @JoinColumn(name = "account_id") private Account seller; @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "post_category_id") private PostCategory postCategory; // old @Enumerated(EnumType.STRING) private CategoryTag categoryTag; /*@OneToOne @JoinColumn(name = "category_id") private Category category;*/ public Post(String title, Account seller){ this.title = title; this.seller = seller; status = Status.NEW; } // old public Post(String title, String desc, int price, CategoryTag categoryTag, Account seller){ this.title = title; this.desc = desc; this.price = price;// @Converter this.categoryTag = categoryTag; this.seller = seller; status = Status.NEW; seller.addPost(this); } public Post(String title, String desc, int price, Account seller){ this.title = title; this.desc = desc; this.price = price;// @Converter this.postCategory = postCategory; this.seller = seller; status = Status.NEW; seller.addPost(this); } //== 연관관계 메서드 ==/ public void setSeller(Account seller) { this.seller = seller; seller.addPost(this); } //== 바즈니스 로직 ==// // old public static Post post(String title, Account seller, CategoryTag categoryTag){ Post post = new Post(title, seller); post.setCategoryTag(categoryTag); return post; } public void setPostCategory(PostCategory postCategory){ this.postCategory = postCategory; postCategory.setPost(this); }} @Entity@Setter@Getterpublic class PostCategory { @Id @GeneratedValue @Column(name = "post_category_id") private Long id; @OneToOne(mappedBy = "postCategory") private Post post; @OneToOne @JoinColumn(name = "category_id") private Category category;} @Entity@Getter@Setter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Category { @Id @GeneratedValue @Column(name= "category_id") private Long id; @Enumerated(EnumType.STRING) @Column(unique = true) private CategoryTag categoryTag; public Category(CategoryTag categoryTag){ this.categoryTag = categoryTag; }} @PostMapping("/new2")public PostResponseDto postV2(@RequestBody PostRequestDto postRequestDto, @ApiIgnore HttpSession session){ Account account = getSessionCheckedAccount(session); Post post = new Post(postRequestDto.getTitle(), postRequestDto.getDesc(), postRequestDto.getPrice(), account); Category category = categoryJpaRepository.findByCategoryTag(postRequestDto.getCategoryTag()); PostCategory postCategory = new PostCategory(); postCategory.setCategory(category); post.setPostCategory(postCategory); Long postId = postService.post(post); return new PostResponseDto(postId);}
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
front 배포 후 사이트 연결할 수 없음 문제 질문드립니다.
잘 따라와서 입력을 한거 같은데 사이트 연결 할 수 없음 문제가 나와서 질문드립니다. 해당 질문은 프론트 서버 배포하기 강좌를 보다가 나온 문제입니다. 제가 했던 절차는 이러합니다. 1. local 컴퓨터 front에서 npm i pm2 설치 2. local 컴퓨터 front에서 saga/index.js 쪽 backUrl을 전역적으로 사용하기 위해서 config 만들고 import 설정 3. local 컴퓨터 front에서 localhost3065로 돌아가는 back을 backUrl로 전부 설정 4. local 컴퓨터 front에서 package.json 설정("start": "cross-env NODE_ENV=production next start -p 80") 4. local 컴퓨터 front git romote 후 우분투 front에서 git pull 5. 우분투 front에서 npm build ("build": "cross-env NODE_ENV=production ANALYZE=true next build",) 6. 우분투 front에서 sudo npx pm2 start npm -- start && sudo npx pm2 monit로 실행 7. aws front ip 로 브라우저 접속 -> 사이트 연결할 수 없음 이렇게 진행하였는데... 왜 안되고 있는지 잘 모르겠습니다 ㅠㅠ 커뮤니티 게시판에서 보안그룹 관련해서 나온 글이 있길래 초기 ec2 인스턴스 생성시에 http, https 설정할때 제 ip로 설정 해놔서 Anywhere 설정으로 변경 후 다시 실행을 했거든요.. 그래도 무반응 입니다. 혼자 해결 해보려 찾아보는데 키워드 조차 나오지 않다 보니 찾기가 매우 힘드네요. 답변주시면 감사하겠습니다. 아래 스크린샷 첨부합니다. front/package.json aws 보안 그룹 - ssh는 제 ip로 되어 있고 보안 그룹 이름은 ec2 인스턴스와 일치합니다.. build log - front에서 about.js 제외하고 빌드했습니다. front 실행
-
미해결홍정모의 따라하며 배우는 C++
이니셜라이저 리스트
int arr[3]={1,2,3} 이런건 이해가 갑니다. auto i1 = {10,20,30} 이나 IntArray int_array {1,2,3,4,5} 이런건 처음보는 경우라 무슨 말인지 초장부터 이해가 안갑니다 ㅠㅠ #include <iostream> #include <cassert> #include <initializer_list> using namespace std; class IntArray{ private: unsigned m_length=0; int *m_data=nullptr; public: IntArray(unsigned length):m_length(length){ m_data=new int[m_length]; } IntArray(const std::initializer_list<int> &list):IntArray(list.size()){ int count=0; for(auto &e : list){ m_data[count]=e; ++count; } } }; int main(int argc, const char * argv[]) { int arr1[5]={1,2,3,4,5}; int *arr2=new int[5]{1,2,3,4,5}; auto il={10,20,30};//initializer list IntArray int_array{1,2,3,4,5}; cout<<int_array<<endl; return 0; }
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
upload.single("image")
저기 중간에 들어가는 부분이 어떻게 처리되는지 그림이 있으면 좋겠네요.
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
$ 표시는 왜 쓰는걸까요?
$ 표시는 왜 쓰는걸까요?
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
질문드립니다.
객체 리터럴의 속성 이름은 문자열이어야 하지만 그냥 숫자 2를 속성 이름으로 해도 오류가 나지 않고 잘 작동하는데, 그렇다면 객체 리터럴의 속성 이름을 무조건 문자열로 할 필요는 없는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
.findAny(); 입력후 에러
@Overridepublic Optional<Member> findByName(String name) { store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); // 이거 오류왜나지} 입력후 missing return statement 에러가 납니다. findAny() 함수가 애초에 null일때 처리하는 함수라고 들었는데 return 타입이 missing이라니 뭐가 문제인지 모르겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강의 정리 포스팅 관련 문의
열심히 들으며 part3개를 해치우고 어느덧 part4에 왔는데요,, 복습겸 수업에서 중요했던 것들을 다시 정리해서 티스토리에 올리려고 합니다. 이미 몇 개는 미처 생각을 못하고 올려버렸습니다. 앞으로도 조금씩 적어서 올리려고 하는데요, 그 전에 먼저 허락을 받으려 합니다. 코드의 경우에는 거의 올리지 않으려 하고, 줄 글 정도로 해당 챕터의 내용을 정리하려 합니다. 글을 올려도 될까요? 안된다고 하신다면 티스토리에 현재 올라간 내용들은 보는 즉시 삭제하도록 하겠습니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
엔티티 관련 질문 드립니다.
JPA 강의까지 수강한 뒤에 활용편을 들으면서 DB를 적용해보면서 실습하고 있습니다. 엔티티에서는 setter를 지양하라고 하셔서 setter 없이 사용하고 있습니다. 그런데 @ModelAttribute로 Member 객체를 받으려니 setter가 없어서 post로 들어온 객체에 값이 모두 null로 채워지게 됩니다. 이런 경우에는 모두 @RequestBody로 받아서 처리하시나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Regions 필드의 값이 추가되는 동작방식이 궁금합니다!
강의를 통해 열심히 배우고 있는 학생입니다 이번에 여쭤보고싶은게 있어 질문했습니다. 다중 체크박스에서 서울과 부산을 선택해서 상품 수정시 폼 데이터 전송 방식까지 확인 했습니다. 또한Item 클래스에서 regions 필드는 List 타입으로 선언되어 있으며 @Data 애노테이션으로 롬복이 getter sertter 등을 자동 생성해준다고 학습했습니다. 여기서 궁금증이 생겼습니다. 컨트롤러에서 @ModelAttribute를 사용할 시 Item 타입의 객체를 생성하고 객체의 프로퍼티까지 셋팅해주며 그 방식이 폼 데이터로 넘어온 name 값으로 setter를 호출한다고 알고있는데 list 타입으로 선언한 regions의 setter호출시 자동으로 값을 넣어주는 기능을 하는건가요?? Item 객체의 regions 필드에 Seoul, Busan과 같은 값이 어떻게 추가 되었는지 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReadLock 얻는 과정 질문
안녕하세요 ReadLock잡을 때, 동일한 쓰레드가 소유하고 있으면 무조건 성공 부분 질문 있습니다. void Lock::ReadLock() { // 동일한 쓰레드가 소유하고 있다면 무조건 성공. const uint32 lockThreadId = (_lockFlag.load() & WRITE_THREAD_MASK) >> 16; /*-------------------------------------------------------------------------- 이 부분에서 WriteUnlock된다면 동일한 쓰레드가 소유하지 않았는데 아래로직에 진입하여 1더하고 return 되지 않을까요? --------------------------------------------------------------------------*/ if (LThreadId == lockThreadId) { _lockFlag.fetch_add(1); return; } ... }