[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
안녕하세요. 임베디드쪽 프로그래머로 종사하고 있는 현업 개발자입니다.. 현업 개발자라 해봤자 아직 초짜라 기본 개념을 봐도 봐도 뭔가 새로운 느낌이네요 ㅎㅎ;; 근데 함수쪽을 보다가 문득 궁금해진게 가끔 임베디드쪽 C# 소스를 찾다가 보면(Github), 종종 Main에 있는 string[] args를 사용해서 뭔가를 하는 경우가 있던데 이런 경우는 어떨때 쓰는건가요? C# 뿐만 아니라 C++을 쓸때도 main에 있는 string args[] 인자를 통해서 계속 어떤 변수들에 대입하여 사용하던데 게임쪽에서도 이런 경우가 있나요??
안녕하세요! 서비스강의인 아키텍쳐편 강의교안을 받고싶습니다. 찾아보던 중 아키텍쳐편은 수강평 작성해야 받을 수 있다고 명시가 되어있긴한데.. 어디서 받아야 할까요?? 아 수강평은 며칠전 작성했는데 강의자료실에서는 링크가 걸려있지 않아 받아지지 않습니다ㅠㅠ 확인 부탁드립니다. 그럼 코로나와 황사 조심하시구 오늘도 즐거운 하루 보내세요! :D
안녕하세요. 최근 JPA강의와 Spring boot강의를 연달아 들었는데요, 너무 좋은 강의 감사드립니다. 지금까지 영한님께 배운 내용을 토대로 Spring boot + jpa를 이용하여 사이드 프로젝트를 진행중인데, 동기화 문제와 관련해 문의드리고자 글남깁니다. 제가 문제를 겪은 시나리오는 아래 코드와 같습니다. 이 경우 여러 사용자가 동시에 요청하지 않는 경우에는 문제없이 잘 동작하지만, 동시에 많은 사용자가 접근하게 되는 경우에는 동기화 문제가 발생될 것으로 생각됩니다. ( 어떤 thread가 jpa context에 업데만 해놓고 commit하기전에 다른 스레드에서 쿼리를 통해 데이터를 가지고 온 경우.) 그렇다고 Controller layer에서 단순히 sync 키워드를 사용하게 되면 많은 사용자가 동시에 접근할때, 너무 느려지지 않을까 우려되기도 하는데, 어떤 방식으로 접근하는게 좋을지 조언 여쭙고자 질문드립니다. @Transactional boolean addInformation(Data data) { // 어떤 정보가 현재 DB에 쓰여져 있지 않은 경우에 한해 업데이트. List<Infomation> info infoRepository.findAllWith(data); if (info.size() > 1) return false; /// DB에 없으므로 db update ..... }
안녕하세요 zerocho님. 이번 강의에서 [프론트엔드 세팅하기] 챕터 관련해서 질문드립니다. 강의 후반부에서 babel이 image, css 파일 등을 js파일로 변환한다고 하셨는데 그게 아니라 webpack의 loader(style-loader, file-loader) 가 js파일로 번들링 해주는거 아닌가요? 혹시 제가 모르는 부분이 있나해서 이렇게 문의드립니다. 혹시 참고할만한 문서가 있다면 같이 주시면 도움 될 것 같습니다:) 감사합니다.
여기서 Key error 가 뜨는데 왜그럴까요? -> 보니까 merge 할 때 genres 라는 필드명이 일치해서 _x 라는 suffix 가 붙는 것 같아요..저희가 핸들링할때 genres 필드를 없앴었나요? ㅠㅠ 여기서도 LinearRegression이나 Lasso 모델이..뭔가 설치가 제대로 안됐나 싶은데 ㅠㅠ 어떻게 해야할까요?
Event 엔티티의 필드 offline과 free의 변수명을 저는 isOffline, isFree라고 지었는데, 실제 응답바디엔 다음사진처럼 날아가더라구요. 어떻게 된 일인가요?? 아 그리고 하나 더 궁금한 것은 EventController에서 @RequestBody로 EventDto를 받아서 Event로 변환을할 때 Event에 세터가 없을 경우 id를 제외하고는 다 널로 값이 바인딩되더라구요. 이럴 경우 엔티티에는 세터를 지양하라는 말과 반대되는듯 하여 이런 식으로 변환하는게 문제되지 않는지가 궁금합니다. 엔티티에 세터는 굉장히 위험하다고 들었어서요.
import React from 'react'; import axios from 'axios'; import useSWR from 'swr'; import { Row } from 'antd'; import styled from 'styled-components'; import AppLayout from '../components/AppLayout'; // const fetcher = (url) => axios.get(url, { withCredentials: true }).then((result) => result.data); const Square = styled.div` align : center; width : 180px; height : 160px; border : 2px solid lightgrey; border-radius : 0.5em; text-align : center; align-content : center; font-size : 2em; margin : 5px; `; const fetcher = (url) => axios.get(url, {withCredentials:true}).then((result)=>result.data); const StatusView = () => { console.log('ttttttttteste'); const { data: sata, error: town1Error } = useSWR(`http://localhost:3065/town1/10`, fetcher); console.log(sata); if (town1Error) { console.error(town1Error); return <div>타운1 로딩중 에러가 발생합니다.</div>; } //const sata ='ssssssssss'; return ( <> <AppLayout /> <Row style={{ margin: 10 }} align="middle" gutter={20}> <Square> 배터리전압 : {JSON.stringify(sata.id)} </Square> <Square> 모터 ON/OFF 상태 : 111 </Square> <Square> 모터동작전류 : 111 </Square> </Row> </> ); }; export default StatusView; sata 에 들어오는 데이터 형식은 {"id":1,"town1":"고암모산동","createdAt":"2021-03-15T10:01:17.000Z","updatedAt":"2021-03-15T10:01:17.000Z","UserId":1,"CityId":1} 이런식으로 들어옵니다. 백엔드 서버에서 크롬주소창에서 요청을 하면 정상적으로 데이터 들어오는거 확인된 상태입니다. 위에 코드를 실행하면 SWR을 사용하여 받아온 데이터를 배터리 전압 부분에 sata를 사용하면 배열을 사용한 데이터라 표현이 안된다는 에러가 나옵니다. 이 상태에서{ JSON.springfy(sata)} 로 표현하면 SWR로 받아온 데이터를 다 뿌려줍니다. 이 상태에서 { JSON.springfy(sata.town1)} 하면 "고암모산동" 이렇게 출력이 됩니다. 이 상태에서 서버를 다 껐다가 다시 재가동 시키면 town1이 undefined라는 오류가 나오면서 실행이 안됩니다. 여러모로 콘솔창 찍어보면서 봤는데 sata 부분에 데이터 형식이 맞지 않아서 오류가 나는거 같은데, 제로초님께서는 어떻게 생각하시는지 궁금합니다. 좋은 하루 되세요!
강의 4탄중에 multiple assign에서 변수에 row.item("ins")가 변수이면 아래 변수에 선언이 되어야 하는게 아닌가요? 변수 선언을 하지 않고 어떻게 값을 받을 수 있는지요? 강의데로 변수 선언은 아니하고 입력한 후 디버깅을 하니 엑셀 생성은 되는데 값이 없습니다.
안녕하세요 제로초님! api를 구현하다 궁금한게 있어 질문드립니다. 시퀄라이즈 모델에서 데이터를 탐색하여 유저로 넘겨줄 때 exclude를 사용하여 password같은 민감한 정보를 제외 시키는 부분을 구현하다가 클라이언트용 가상 모델을 만들어 제공하면 되지 않을까 싶어서 찾아보니 데이터베이스 뷰라는 개념이 있더라구요 혹시 시퀄라이즈에서도 물리 db의 필요한 정보만 참조하는 가상 모델을 따로 만들 수 있는 방법이 있을까 궁금합니다. 제가 정확한 키워드를 알지못해 검색해도 잘 나오지 않아서 질문드립니다 ㅠㅠ
언제나 우문현답을 주셔서 질문드리기가 죄송 했었습니다. 몇주만에 그나마 많은걸 배우게 되었는데요. 이제야 실무적으로 좀 깨달음이 있는것 같습니다. 강사님의 강의에서도 보고 기타 여러 유트브등와 블러그 등을 통해 알게 되어 실제 테스트를 해보았는데요. 바로 한개의 켐페인 안에 여러 광고 세트를 5개 정도 복제(각자 약간씩 다른 또는 같은)하여 러닝머신 기간을 끝내고. 그중에 가장 효율이 높다고 판단되는 광고세트만 남겨두고 나머지는 정지 하며. 차후 이 광고세트가 1주일정도 성과가 만족스럽다면, 그 해당 켐페인을 복제하여 같이 이전 켐페인과 시행을 하는 , 확장방법에 대하여 문의를 드리고 싶습니다. 읽고 들은 바, 복제된 광고세트나 캠페인이 같은 타겟을 두고 있더라도 페북 시스템(인공지능)이 같은 고객에게 호객을 하는 일이 없기 때문에 효율적(?)으로 타겟(큰 풀의 유저중 가각 타겟)에 도달을 한다는 그런 의미의 설명이었습니다. 실제로 이런 방법이 일반적으로 사용이 되는지 모르지만, 직접 테스트를 해보았는데, 그다지 효과가 있어 보이는지는 않았지만, 3일정도 테스트로 결론짓기는 어려웠고, 그런 찰나에, 페이스북 소상공인 광고 지원팀과 면담이 가능해졌습니다. 페북측에서는 이렇게 같은 타겟에 여러 캠페인 또는 한 캠페인 안에 여러 광고세트를 복제하여 운영하는것은 그다지 의미가 없다, 돈을 낭비하는것과 같다는 언급을 들었습니다. 그쪽에서는 같은 타겟을 복제하여 광고던 캠페인이 진행되면, 서로간의 경쟁이 일어나기에 어떤 캠페인은 결과가 좋다가도 어떤 다른 캠페인은 결과가 안좋고 그런 상황이 되기에, 전환이 일어난다해도 그건 램덤으로 얻어걸리는것이지, 복제하여 효율성이 높아지는건 절대 아니라고 설명을 들었습니다. 이론적으로는 페북의 말을 듣는게 맞는것 같지만, 이 전략 자체가 여러 복제중에 누가 더 효율이 높은지, 그리고 그 높은 광고세트만을 살려두는 그런 의미라서. 도데체 경험이 받쳐주지 않는지라 강사님의 경험에 의지를 하고 싶어 문의를 드립니다.
해당 이슈에 대해 다룬 글이 있었습니다. https://github.com/ultralytics/yolov5/issues/2226 -------------------------------------------------------------------- (본 강의를 들었다면) detect.py 를 열어서 몇군데를 수정해주면 됩니다. 위 github에 나온 내용처럼 view_img 가 False 상태로 있기에 실행이 안된다고 합니다(?) 그래서 if webcam 부분에서 view_img = True 와 save_img = True 를 추가 해줍니다. 기존의 view_img = check_imshow()는 주석 처리합니다 if webcam: # view_img = check_imshow() view_img = True cudnn.benchmark = True # set True to speed up constant image size inference dataset = LoadStreams(source, img_size=imgsz, stride=stride) else: save_img = True dataset = LoadImages(source, img_size=imgsz, stride=stride) -------------------------------------------------------------------------- 개인적인 생각은... check_imshow() 를 정상적으로 작동하게 하는 방법이 아닌, 함수 실행 조건을 무조건 True로 하여 실행만 시키는 것으로 보입니다. 즉 완벽한 solution으로는 보이지 않으며, "시도해볼만한" 방법인듯 합니다.
선생님 ㅠㅠ 선생님이 적으신 것 처럼 코드 짜고 Open In Browser 누르고 제가 만든거 확인했는데 선생님 ㅠㅠ 선생님이 적으신 것 처럼 코드 짜고 Open In Browser 누르고 제가 만든거 확인했는데 이렇게 ' 네이버로 가기 ' 만 뜨고 아무리 눌러도 네이버로 안 가지는데 어떻게 해야해욤 ??ㅜㅜ