묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 선생님 Thread.Yeild(); 에 대해서 질문 합니다.
while(true) { int expected = 0; int desired = 1; if (Interlocked.CompareExchange(ref _locked, desired, expected) == expected) break; Thread.Yield(); } 이 코드를 정리를 해보면 만약에 A 쓰레드가 있고, B쓰레드가 있다 A쓰레드가 공유 자원을 점유하고 있으면 lock이 0에서 1로 바뀌고 B 쓰레드는 접근 하려니까 lock이 1이니까 계속 무한 루프를 돈다. 이것은 성능상의 저하를 불러 일으킨다. 왜? 쓸데없는 행동이기 때문에 따라서 A쓰레드가 공유자원을 사용을 끝날 때 까지 B쓰레드를 무한루프를 돌게 하지말고 재우는데 Thread.sleep, yeild.. 뭐 이런 함수를 이용해서 재우는데 그럼 무한 루프가 잠시 멈추는 상황이잖아요? 그럼 a쓰레드가 공유자원을 쓰고 나왔다는 것을 어떻게 알 수 있나요? 검색 해보니까 sleep을 os가 깨운다는데 그럼 정리를 해보면 면접관님 께서 만약 이런 질문을 하시면 일단 OS가 A 쓰레드가 할일을 끝냈으니, 잠자고 있던 B쓰레드를 깨워서 그때부터 반복을 해서 다시 LOCK 검사를 진행합니다. LOCK 변수 값이 0이라면 컨텍스트 스위칭이 일어나는데 A 쓰레드의 정보가 레지스터에서 지워지고 B 쓰레드 정보가 채워짐으로써 B 쓰레드가 CPU를 점유하고 이제 B쓰레드가 공유자원 _num변수를 사용해서 _num++연산이 진행이 됩니다. 이렇게 저는 해당 챕터 강의를 이해 하고 정리를 했거 든요 혹시 틀린 점이 있다면 알려주심 감사하겠습니다. 아 그 sleep 걸어놓고 os가 깨우는 거 맞는지도 알려주시면 감사하겠습니다. ^^
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Builder 사용 시 NullPointerException 뜨는 경우 참고사항 (NPE)
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)private List<OrderItem> orderItems = new ArrayList<>(); 이런 식으로 코드를 작성 후 Lombok의 @Builder를 사용하시는 분들은 빌더 패턴을 통해서는 필드에 아무리 기본값을 명시해뒀더라도 기본값이 null아니면 0이 튀어나오므로 @Builder.Default 를 따로 선언해주셔야 null이 아닌 ArrayList가 생성됩니다. @Builder.Default@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)private List<OrderItem> orderItems = new ArrayList<>();
-
미해결스프링 핵심 원리 - 기본편
Intelij Show Diagram~
안녕하세요 영한센세!!! 역대급 강의 정말 감사합니다ㅠㅠ,,, 강의가 너무 재밌고 유익해서 자야하는데 ... 멈출수가 없어요... 다름이 아니라 강의 7:17 분 경에 나온 인텔리제이가 제공하는 다이어그램 설정하는 부분에 대해서 다른분들에게 조그마한 도움이 될까 몇글자 남깁니다!! 단순해요 !! 그냥 자기가 보고 싶은 클래스, 인터페이스, 추상클래스를 선택하고 영한센세께서 가르쳐 주신 것 처럼 우클릭후 Show Diagram / Show Diagram Pop UP 누른 뒤 JavaClasses를 누르면 짜잔! 이렇게 나옵니다! 단순하게 상위 패키지에 설정하면 복잡한 구조가 나오고 내가 보고싶은 것만 콕콕 찝어서 보면 저렇게 나옵니다 :) 별것 아니지만 공유드립니다😄
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
batch insert 질문있습니다!
안녕하세요 주니어입니다! 이 강의랑은 동떨어진 질문이긴한데요 ㅎㅎ; 강의보면서 계속 이거저거 생각하다보니 영한님은 혹시 batch insert하실때 어떻게 하시는지 궁금합니다 ! 회사에서는 JPA를 쓸때 기본키 전략이 IDENTITY이면 JPA로 batch insert하기가 어려워서 jdbcTemplate으로 한다고 하거든요. 수량은 대략 5,000~10,000건 단위이고요. JPA초고수께서는 어떤방식으로 batch insert를 하시는지 갑자기 너무너무너무 궁금해져서 동떨어진 질문을 달게됐습니다.. 아 그리고 강의보면서 항상 감사드리고있어요. 제 마음속의 스승님이십니다 !
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
숫자 고르기 중복 질문
void ChooseLotto(int numbers[]) { srand((unsigned)time(0)); int count = 0; bool overlap; while (count < 6) { int randValue = 1 + (rand() % 45); overlap = false; for (int i = 0; i < count; i++) { if (randValue == numbers[i]) overlap = true; break; } if (overlap) continue; numbers[count] = randValue; count++; } Sort(numbers, 6); } 강의와 달리 저는 중복을 체크하는 found 값을 overlap이란 변수명으로 whil문 밖에서 선언하고, while을 돌때마다 false로 갱신해주는 방법으로 함수를 짜봤는데, 중복을 못걸러내는 문제가 발생했습니다.제가 보기엔 강의에서의 코드와 거의 차이가 없는데 왜 중복을 못거르는 문제가 발생하는지 잘 모르겠습니다.
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
다른 탭이나 브라우저의 정보가져 올 수 있나요?
혹시 다른 탭이나 브라우저에서 보내는 request나 아니면 다른 탭이나 브라우저가 현재 있는 url등을 들고 올 수 있는 방법이 있을까요? 정말 오래 찾았는데도 안나와서 질문 드립니다 ㅠㅠ 수업과 관련없는 질문드려서 정말정말 죄송합니다.ㅠㅠ
-
해결됨스프링 기반 REST API 개발
Controller 코드 관련 질문입니다.
좋은 강의 감사드립니다. 한국은 설 연휴가 시작되었는데 새해 복많이 받으세요! 10분40초경 return 해줄 때 ResponseEntity의 body에 event가 아니라 newEvent를 반환해줘야 될 것 같은데 아닌가요..? 현재 코드상 event 는 modelmapper를 활용해서 만든 event객체라 id값이 없고 테스트를 실패할것 같은데 body에 event를 넘겨줘도 테스트에서 return 된 body 에는 id값이 들어가있고 테스트가 통과되는데 제가 놓친부분이 궁금합니다.
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
미들웨어 확장 질문입니다.
미들웨어 내부를 다시 미들웨어로 확장 할때, (req, res, next)를 붙이는 이유가 너무 궁금합니다. ㅠㅠ 강의에서는 단순히 유용한 패턴이니 기억해 두라고 했는데 그냥 단순히 외우고 넘어가야 하는 부분인가요? (req, res, next)를 지우고 돌려보니까 네트워크 탭에 '보류중'이라고 나오는 걸 봐서는 미들웨어 내부의 next()가 실행되지 않아서 그런 것 같은데 (req, res, next)를 붙이면 이게 미들웨어로 처리 되서 자동으로 next()가 실행되게 해주는 것일까요??
-
미해결플러터(Flutter) 앱 개발 입문부터 프로젝트 완성까지
1:1 강의도 하시는지요?
1:1 강의도 하시는지요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
why5?
예측한 회귀계수의 변수들의 순서가 어떻게 되는지 궁금합니다.또한 위의 회귀계수들이 적용된 함수를 보는 방법도 궁금합니당.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
NullReferenceException 에러
UI_Button.cs 파일의 GameObject go = GetImage((int)Images.ItemIcon).gameObject; 부분에서 NullReferenceException: Object reference not set to an instance of an object 이 자꾸 일어납니다. 디버그를 해보면 go에도, evt에도 들어가야할 값이 잘 들어가있는데 왜 저런 에러가 나오는지 모르겠습니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
todoItem todoItem.item 차이
todoItem을 remove하면 왜 localStrorage에서 안지워지는지 모르겠어요..
-
미해결프론트엔드 개발자를 위한 웹팩
두 가지 여쭙고 싶은 게 있습니다!
1. 작년 10월에 웹팩5가 릴리즈됐더라구요! 혹시 나중에 5 버전으로 업데이트하실 의향이 있으신지, 있다면 언제쯤인지 여쭤보고 싶습니다 2. 좋은 강의 덕분에 웹팩에 대해 기본적인 이해가 잘 됐습니다. 혹시 공부한 내용을 출처와 함께 블로그에 올려도 될까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA가 코드를 선언적으로 만들어준다고 이해해도 될까용?
안녕하세요. 김영한님 :) `order.cancel()` 함수 호출 하나로 db 업데이트를 모두 해주는 jpa를 보면서 굉장하다고 느꼈습니당. jpa가 엔티티로 등록된 객체들은 바라보다가 엔티티 객체가 변경되면 그 변경을 db에 업데이트하는 것을 보면서 FE개발자로써 React, Vue 등과 같은 UI프레임워크들의 작동방식이 떠올려지네용. UI프레임워크들도 컴포넌트 내부의 상태들을 바라보다가 상태가 업데이트되면 해당 상태를 화면에 반영해주거든용. 이런 방식으로 코드가 선언적으로 변하고 가독성이 좋아진다고 느끼는데, jpa가 해주는 것도 같은 방식으로 코드를 선언적으로 변경하고 가독성을 좋게 만들어주는 것 같이 느껴집니당. 항상 좋은 강의 감사합니당 :)
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
threshold
sfm = SelectFromModel(lasso, threshold='1.5 * median').fit(X, y) 여기서 threshold=1.5*median으로 지정을 해줬는데, threshold=np.sort(importance)[-3]+0.01 이 작업을 앞에 왜 해줬는지 모르겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
orderId 가 1000개가 넘어가는 경우에 대해 궁금합니다.
영한님 안녕하세요!orderId 가 1000개가 넘어가는 경우에 대해 궁금합니다.Mysql 기준 where in절에 올 수 있는 최대 개수가 1000개로 알고 있어서요. 이 경우 애플리케이션 코드에서 1000개를 파티션하고 나눠서 호출하는게 맞을까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
ORDER BY 해커랭크 문제풀이 2 + 문자열을 자르는 SUBSTR() 함수
강의명 : 기초 SQL ORDER BY 해커랭크 문제풀이 2 + 문자열을 자르는 SUBSTR() 함수 편에서 SUBSTR() 작성할 때 아래와 같이 문자열 뒤쪽에서 3개를 가져오는 방법은 안되나요~? SELECT name FROM students WHERE marks > 75 ORDER BY SUBSTR(name, -1, 3), id
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
자신의 프로퍼티를 getter로 부르는 이유가 있을까용??
아래 코드에서와 같이 자신의 프로퍼티를 getter로 부르는 이유가 있을까용??? @Entity @Getter @Setter public class OrderItem { ... public int getTotalPrice() { return getOrderPrice() * getCount(); } }
-
미해결맥으로 배우는 윈도우즈 포렌식
2분 36초에 플레어스킷? 들리는대로 계속 검색해봐도 어떤 도구인지 모르겠습니다. 정확한 알려주세요.
2분 36초에 플레어스킷? 들리는대로 계속 검색해봐도 어떤 도구인지 모르겠습니다. 정확한 알려주세요.
-
[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요. 로그인 시도하면 401에러가 발생합니다 ㅠㅠ
삭제된 글입니다