묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결홍드로이드의 To-Do 리스트 앱 만들기
To-Do 메모 내용 입력 다이얼로그 작성 버튼 클릭 시 오류 문의
좋은 강의 감사합니다. 강의를 보면서 따라 하다보니 앱을 완성하게 되었습니다.그런데 가상 디바이스 에뮬레이터(티라미슈 api level 33)로 TODO-LIST에 데이터를 새로 작성하거나저장되어 있는 데이터를 수정할 때텍스트 입력 후 키보드의 빨간색 동그라미 부분을 클릭하지 않고 다이얼로그의 작성완료 버튼 (캡처 사진의 파란동그라미 부분)을 바로 클릭 시 안드로이드스튜디오 콘솔창 부분에 다음과 같은 오류 문구가 출력됩니다.E/ImeBackDispatcher: Ime callback not found. Ignoring unregisterReceivedCallback. callbackId: 215765762혹시 이 오류 문구를 나오지 않도록 할 수 있는 방법이 있을까요? 아니면 신경쓰지 않아도 되는 부분인지 질문드립니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
lab10 usleep 관련하여 질문있습니다.
안녕하세요 맛비님!lab10 main.c 부분 코드를 작성하면서printf("Output took %llu clock cycles.\n", 2*(tEnd - tStart)); printf("Output took %.2f us.\n", 1.0 * (tEnd - tStart) / (COUNTS_PER_SECOND/1000000));이 두 부분에서 궁금한 점이 생겼는데 관련하여 이미 질문하신 분이 계신가 찾아봤는데 없는 것 같아 질문을 드립니다.강의에서 uSleep함수가 uSleep(1)이라고 하면 1us를 쉬는 함수라고 하셨는데, 100,000,000/100을 인자로 입력했을 때, 333000133이 tEnd-tStart로 나오는걸 보니tEnd-tStart에 전달되는 값은 "1s를 'PS의 CPU(667MHz)'가 세기 위해 필요한 clock count수의 절반" 이라고 해석할 수 있을 것 같은데,tEnd, tStart는 그럼 정확히 시각이라기 보다는 PS의 CPU로 count한 Clock수의 절반 이라고 해석하는게 맞을까요?또, 왜 절반으로 정의되는지 이유가 궁금합니다.2와 관련해서 header 파일들을 열어보니, xparameters.h 파일에#define COUNTS_PER_SECOND (XPAR_CPU_CORTEXA9_CORE_CLOCK_FREQ_HZ /2) 라고 정의되어 있는데, 이것 때문에 그런 것인가요? 어떤 이유 때문에 이렇게 /2를 하여 정의를 하는 것인지 궁금합니다... 그냥 100Mhz로 1s를 세려면 COUNTS_PER_SECOND 을 100M번으로 정의하면 되는것 아닌가요..?또, SW sleep뿐 아니라 HW sleep 부분에서도 위와 같은 코드로 시간측정을 하는데, 결국 PL영역에서 동작한 내용을(HW Sleep/clock count) PS에서 읽어와서 해석했기 때문에 그런 것이고, 100Mhz가 기준이 아니라 667Mhz가 기준인 것도(uSleep(100,000,000/100)일 때 tEnd-tStart=333000133) PS에서 PL에 입력되는 Clock freq이 100MHz이지, PS내에서의 Clock freq은 667Mhz이기 때문이라고 생각을 했는데, 맞게 생각한게 맞을까요?? 사소한 질문인 것 같은데, 오랫동안 생각해봐도 확실하게 답이 나오지 않아서 질문 드립니다... 항상 강의 잘 듣고 있습니다 :) 감사합니다 맛비님!
-
해결됨토비의 스프링 부트 - 이해와 원리
@Import에서 @Component가 없어도 동작합니다.
강사님께서@Import 어노테이션은@Component 어노테이션이 붙은 혹은메타 어노테이션으로 @Component가 붙은 클래스를 컴포넌트 스캔 대상이 아닌 클래스를 구성정보로 등록할수 있다고 말씀해주셨습니다. 호기심에 Import할 클래스 레벨에 어노테이션을 붙이지 않고public class ServerConfigTest { @Bean Name1 name1(){ return new Name1(name3()); } @Bean Name2 name2(){ return new Name2(name3()); } @Bean Name3 name3(){ return new Name3(); } static class Name1{ Name3 name3; public Name1(Name3 name3) { System.out.println("네임 1 등장이요"); } } static class Name2{ public Name2(Name3 name3) { System.out.println("네임 2 등장이요"); } } static class Name3{ public Name3() { System.out.println("네임 3 등장이요"); } } }@MyAutoConfiguration @Import(ServerConfigTest.class) public class ServerTestBean2 { //코드.. }결과는 @Component,@Configuration(proxyBeanMethods=false)와 같은 결과가 로그로 보이더라구요 래퍼런스에는 일반 구성 클래스 as well as regular component classes(AnnotationConfigApplicationContext.register와 유사) 라고 적혀있는데 그 의미가import가applicationContext.register(ServerConfigTest) 같은 방식으로 동작한다고 생각하면 될까요??
-
미해결스프링 시큐리티
CSRF 세션클러스터링
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.서버가 이중화되어 있고 웹서버와 WAS 사이 클러스터링은 처리가 되어 있습니다.서버 A에서 로그인 후 서버 B에서 로그인이 잘 되는것을 확인했습니다.크롬 개발자 도구에서 POST방식으로 호출 시 헤더에 CSRF 토큰이 존재하는 것 까진 확인하였는데 401에러가 발생합니다. 오류 원인 예상가는 부분은 CSRF 토큰이 각 서버에 공유되지 않아 발생하는게 아닌가 싶습니다...혹시 이 상황을 어떻게 해결해야할까요,,,
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
aws 502 에러
안녕하세요 강사님좋은 수업 감사드립니다.강의에 나온대로 코드 작성하고 travis에서도 테스트/빌드 성공했는데 aws에서 502 bad gateway 에러가 발생합니다.Dockerfile 에 EXPOSE 80 도 추가했는데 무엇이 원인인지 잘 모르겠습니다.한번 봐주시고 답변 주시면 정말 감사드리겠습니다. ㅜㅜ
-
해결됨Next.js 시작하기(feat. 지도 서비스 개발)
ssr 캐시 가능한지 질문
ssr인데 해당 html에 연결된 js 파일이 있어서 js파일로 동적으로 렌더링하면 ssr로 내려진 html 자체는 캐시가 가능한가요?*ex) ssr로 받아온 infren.html 안에 user.js 파일 있고user.js에서 ajax로 사용자 이름만 json으로 받아와 렌더링하면 infren.html과 user.js은 캐시할 수 있나요???
-
미해결Flutter 초입문 왕초보편
트리구조 처럼 계층을 나타내는 표시선(?)이 갑자기 안보이게 되었습니다.
트리구조 처럼 계층을 나타내는 표시선(?)이 갑자기 안보이게 되었습니다. 강의에서 사용하시는 안드로이드스튜디오를 쓰고 있는데, 어떤 설정을 잘못 만졌는지 Aㄴ BㄴC 와 같이 트리구조를 표시해주는 표시선이 안보여요 어떻게 하면 다시 보이게 될까요??
-
미해결실전! Querydsl
searchPageSimple 테스트코드 질문
강의 내용에서 memberRepository.searchPageSimple 의 코드에 orderBy 가 없는데 result가 member1, member2, member3인 것을 어떻게 보장하는 건가요 ?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
화살 쏘는 것을 처리하는 방식
안녕하세요 루키스님!제가 루키스님이 강의중 만드신 게임에서 쓰이는 좌표를 float으로 바꾸고 화살이 이동하는 방식을 수정하였습니다.(저는 화살이 아니라 기본 동그라미 이미지의 총알로 사용해봤습니다)수정 내용은 화살 이동 로직을 처리하는 방법입니다. 기존 로직은 서버에서 GetFrontCellPos 함수를 이용하여 서버에서 이동된 좌표를 클라로 알려줘 이동되는 것으로 알고 있습니다. 클라에서는 UpdateMoving를 통해 움직이고 있구요!GetFrontCellPos 함수를 활용하여 서버에서 화살을 움직이기에는 좌표 단위가 Int가 아니라 float이니 어떻게 해결 해야할지 고민을 하다가 생각난 방법이 있습니다.화살을 쏜 후 유니티의 update 문에서 60fps로 서버에 화살이 이동했다는 것을 가르쳐준 후 브로드캐스팅 되게 했습니다. 그 후 서버에서는 받은 패킷에 따라 브로드 캐스팅하게 핸들링 해줬구요.이제 2명을 접속시키고 화살을 쏴보니 패킷이 밀려서 그런지 몰라도 쐈던 자리로 다시 롤백되는 현상을 발견했습니다(배그에서 트레이서 되는 느낌)60fps가 너무 자주 요청하는 건가 싶어서 15fps로 돌리니 클라 화면에서 내가 쏜 총알은 똑같이 롤백되면서 총알이 나가지만 다른 Player가 쏜 총알은 롤백이 되지 않았습니다. 하지만 이동된다기 보다는 순간이동 하는 것 처럼 보이기 시작했습니다.몇가지 실험을 해보니 혼자 접속중일때는 총알이 롤백현상이 일어나지 않고 곧게 잘 날아가는 것을 확인할 수 있으나 인원수가 한 명 늘어나는 순간부터 총알의 롤백 현상이 생기는 것을 확인했습니다. 브로드 캐스팅의 연산량이 늘어나서 패킷이 밀리는 것이 원인인 것 같습니다.C_SkillMove, S_SkiilMove 라는 패킷을 새로 파주고 실행했습니다. message C_SkillMove{int32 objectId = 1;PositionInfo posInfo = 2;}message S_SkillMove{int32 objectId = 1;PositionInfo posInfo = 2;}클라의 업데이트 문에선if (Time.frameCount % 15== 0){C_SkillMove skillMovePacket = new C_SkillMove();PosInfo.PosX = transform.position.x;PosInfo.PosY = transform.position.y;skillMovePacket.PosInfo = PosInfo;skillMovePacket.ObjectId = Id;Managers.Network.Send(skillMovePacket);} 이런 코드로 움직입니다. 서버에선public static void C_SkillMoveHandler(PacketSession session, IMessage packet){C_SkillMove skillMovePacket = packet as C_SkillMove;ClientSession clientSession = session as ClientSession;Arrow arrow= ObjectManager.Instance.Find<Arrow >(skillMovePacket.ObjectId);if (arrow== null)return;GameRoom room = arrow.Room;if (room == null)return;room.HandleSkillMove(arrow, skillMovePacket);} 이런식으로 핸들링 하고 HandleSkillMove 함수는 public void HandleSkillMove(Arrow arrow, C_SkillMove skillMovePacket){if (arrow == null)return;lock (_lock){ObjectInfo info = arrow.Info;info.PosInfo = skillMovePacket.PosInfo;S_Move resMovePacket = new S_Move();resMovePacket.ObjectId = arrow.Info.ObjectId;resMovePacket.PosInfo = skillMovePacket.PosInfo;Broadcast(resMovePacket);}}이런 로직으로 움직입니다.float일 때의 서버에서 이동 처리 방법이 궁금합니다! 또한 위처럼 순간이동되게 가는 것을 방지하는 법도 궁금합니다.. (스르륵 이동하게 처리하는 부분)
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
서버 라우터 에러 문의
state 끌어올리기 수업부분에서 계속 이런 오류가 나서 문의드립니다. 혹시나 해서 다른 서버들은 종료를 해놓고 이것만 다시 실행을 했는데도 계속 오류가 발생하네요. 어떤부분이 잘못된 것인가요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
이미지 업로드 후 url 접속 에러와 관련해서 질문드립니다. (섹션 19)
이미지를 업로드 후 받아오는 url을 통해, 이미지를 로딩해오는 과정에서 오류가 발생해서 질문드립니다.data는 uploadFile mutation 후 받아온 result에 대한 출력 결과이고, 여기서 받아온 url을 https://storage.googleapis.com/. 뒤에 붙여서 이미지를 불러오려고 하면 오류가 발생합니다. 이 부분에 대한 에러를 해결할 수가 없어서 질문드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-F 강의 무편집본 업로드인건지 확인 부탁드려요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강사님 매번 좋은 강의 감사드립니다.2-F 강의 영상이 잘못 업로드된 게 아닌가 싶습니다. 설명하시는 중간중간에 설명이 막히는 부분을 헤쳐나가는 과정을 적나라하게 볼 수 있었는데, 이게 강의용으로 업로드된 영상이 맞는지 확인 한번 부탁드려요.강의 준비하시는 노고까지 느낄 수 있는 영상이긴 한데, 수강용으로는 부적합하지 않나 생각이 들어 문의드려요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
숫자를 문자로
안녕하세요 선생님 수업 잘 듣고 있습니다!!!http://boj.kr/6f133cb4983d4c4fbbfd9bdb9dd87ba1선생님께서는 새로운 스트링을 만들어서 스트링을 프린트하시는 방식으로 문제를 푸셨는데 저는 숫자를 각각 문자로 바꾸어서 프린트해보려고 했으나 오류가 발생했습니다. to_string을 사용했을때숫자를 문자로 바꾸는 방식으로 (char)를 사용할때무엇이 문제였는지 설명해주시면 정말 감사하겠습니다!제가 19번째와 20번째 줄에 쓴 코드들은 서로 같이 쓰는것이 아닌 두가지 방법을 사용해본것입니다!
-
미해결전문의가 강의하는 산업보건지도사 2차 주관식과 3차 면접 6편
강의 분량
이 강의는 몇 편까지 계획되어 있나요?강의자료만 공부하면 되나요? 아니면 추가로 봐야할 부분이 있을까요?
-
해결됨홍정모의 따라하며 배우는 C++
3.6 9분 55초
x = 5, y = 5의 경우x equals y가 출력되는데, 선생님께서 x와 y가 같다고 잘못 결과를 내고 있다고 하시는데...왜 결과가 잘못 나온 건가요?ㅠㅠx와 y가 똑같이 5인데 뭐가 잘못된 건지 잘 모르겠습니다ㅠㅠ
-
미해결홍정모의 따라하며 배우는 C++
3.7 33분 49초
안녕하세요?1001 1110를 unsigned integer로 생각하고 변환을 하게 되면128 + ~ 식으로 나온다고 하셨습니다. (32분 쯤)그런데33분 49초에 1001 1110 을 <사인드>라 가정하고 변환을 하면2^7 1 + 2^41 + 2^3*1 + 2^2*1 + 2^1*1 = 158 이렇게 나온다고 하셨는데이 방식은 1001 1110를 unsigned integer로 생각하고 변환한 것이 아닌가요?ㅠ선생님께서 잘못 말씀하신 건가요?ㅠ사인드라 생각하면 맨앞의 숫자 1이 숫자의 크기가 아닌 부호를 의미하기에 다르게 계산해야 하는 것으로 알고 있어서요ㅠㅠㅠㅠ
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Unmount 시점 질문
강의 중 20분 57초 Unmount 관련 질문입니다.const [isVisible, setIsVisible] = useState(false);보면 isVisible의 기본값이 false입니다. 이 값이 true로 변경되었다가(update), 다시 반드시 제 값 'false'로 돌아오는 시점이 Unmount 시점인건가요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
SessionConst
교재 6.로그인처리1 p 35 보면SessionConst가 있는데요 이거 enum으론 하면 안될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
특강을 보고 공부 순서 관련해서 궁금한 점이 있습니다!
내가 IT 대기업에 합격한 방법 영상에서 말씀해주신 회사별 코딩테스트 난이도, 필수 알고리즘 개념 등이 다른 것 같은데 혹시 말씀해주신 야놀자, NHN등 스타트업의 코테에 우선적으로 지원해보려면 순서대로 강의들을 다 듣는게 맞을까요 아니면 건너뛰거나 먼저 들어볼 법한 주차가 있을까요? eg. 스타트업 코테를 목표로 알고리즘 공부를 하고 있으면 일단 몇 주차 개념과 문제를 풀어보고 일단 지원해보는 것을 추천. 등의 답변을 해주신다면 감사드리겠습니다! 현재 실력은 스타트업 코테 문제들에서 평균적으로 테케 3번까지는 맞는데 그 이후 효율성 검사 케이스들 또는 반례 케이스들에서 거의 대부분 해결을 못합니다 ㅜ
-
미해결토비의 스프링 부트 - 이해와 원리
Service 계층에서 테스트 관련해서 질문이 있습니다.
안녕하세요 토비님제가 프로젝트를 진행하면서 도저히 모르는 부분이 있습니다.강의와 관련이 없는 질문이지만, 간절한 마음으로 질문해봅니다 Service 계층은 상태검증과 행위 검증에 대한 고민이 있습니다.특히, 객체의 책임과 테스트 범위에 대한 관점에 대한 차이때문에 고민이 있습니다.우선, 코드를 보여드리겠습니다.CommunityCommandService.updateCommunity는 커뮤니티의 소개란과 해시태그를 업데이트하는 부분입니다.//CommunityCommandService.java public void updateCommunity(Long userId, Long communityId, String description, List<String> newTags) { Community community = communityRepository.findCommunityById(communityId); memberQueryService.getManager(userId, communityId); community.updateCommunity(description, newTags); }해당 코드는 communityId로 community를 가져오고, userId / communityId로 요청한 유저가 메니저인지 확인합니다.그 후, community 객체에게 update를 위임합니다. 그러면 community 객체는 내부 상태값을 변경합니다. 여기서, 상태 검증인지 행위 검증인지에 따라 테스트가 달라집니다.public class CommunityCommandServiceTest { @Test void 상태검증_테스트() { Community community = new Community("dummy Intro", List.of("dummy tag")); given(communityRepository.findById(any)).willReturn(community); communityCommandService.updateCommunity(1L, "new intro", List.of("new tag")); assertThat(community.getIntroduce).isEqualTo("new intro"); assertThat(community.getTags).containsExactly("new tag"); } @Test void 행위검증_테스트() { Community community = mock(Community.class); given(communityRepository.findById(any)).willReturn(community); communityCommandService.updateCommunity(1L, "new intro", List.of("new tag")); then(community).should(times(1)).update("new intro", List.of("new tag")) } }상태검증_테스트의 검증 부분을 보면, 위임한 결과에 대해서 테스트를 진행하고 있습니다. Community 클래스의 update를 또 테스트하는 것 같은 느낌이 있습니다. 즉, 서비스 계층의 테스트 영역을 넘어서는 것인지 의문입니다.반면, 행위검증_테스트는 community.update가 호출하면서 위임했는지에 대해서만 테스트합니다. 하지만, 내부 로직에 하드코딩 되어있는 듯 합니다.사실 저는 상태검증을 더 선호합니다. 하지만 상태 검증이 객체지향스러운지 잘 모르겠습니다. 어느정도 감수해야하는 것 일까요? 정리하자면,상태검증CommunityCommandService.updateCommunity로 변경된 상태를 테스트개인적으로 선호하는 방식. 하지만, 상태를 테스트하기 때문에 객체지향의 관점에서 맞는지 확신이 없다. 테스트코드는 이 부분을 감수하는 것인지?행위검증협력한 객체의 행위에 대한 테스트객체지향의 관점에서 위임이 잘 이루어졌는지 테스트하는게 자연스럽다고 생각 질문하자면,서비스계층에서 Community.update()로 커뮤니티 내부 값에 대한 변경을 요청하였습니다.객체지향에서는 객체들이 서로 책임을 위임하며 상호작용하는 것이기 때문에Service 계층에서는 위임이 되었는지 호출 여부만 판단하는게 적절한지, 아니면, Service 계층에서 위임한 그 결과 Community의 내부값을 바꾼게 적절한 테스트인지..만약 이 방법이 맞다면 객체지향스럽다고 말할 수 있는지..?어떤 방식이 적절한지 잘 모르겠습니다. 이론적인 부분과 실제 테스트에 대한 괴리때문에 발생하는 문제 같습니다. 긴 질문 읽어주셔서 감사드립니다!