1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 배열에서 int [][]를 입력할때 오른쪽 방향키를 누르지 않고 바로 첫번째[]를 넘어가서 []를 입력가능한 단축키가 있을까요?
컨트롤러에서 직접 사용자 인증처리를 구현하는데 마지막에 Oauth2AuthenticationToken을 SecurityContextHolder를 사용해 securityContext에 저장하는데, 이 처리는 이번 요청이 끝나면 securityContext가 초기화되므로 securityContext를 세션에도 저장해줘야 하는거 아닌가요?
스킬시스템의 public bool Use(Skill skill) { skill = Find(skill); Debug.Assert(skill != null, $"SkillSystem::IncreaseStack({skill.CodeName}) - Skill이 System에 등록되지 않았습니다."); return skill.Use(); } 여기에서 스킬을 사용한다는것은 알겠는데 등록되어있는 스킬을 사용하는 방식이 어떤건지 잘 모르겠습니다. 모든 참조를 이용해서 찾아도 스킬테스트에서 사용한 것 말고는 없고 이벤트를 이용한것인가 싶어서 다 찾아보아도 안보여서 질문을 드립니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
루키스님 안녕하세요? 기존 SendBuffer.cs는 메모리 누수 이슈 등으로 삭제하고 새로운 기법을 알려준다고 말씀해주셨는데 그게 최종적으로 ClientSession.cs의 Send()함수가 되는게 맞을까요? (아래 코드블록) 맞다면 Send()가 호출 될 때 마다 버퍼를 새로 생성하기 때문에 SendBuffer.cs의 강점이었던 하나의 거대한 메모리를 사용하면서 버퍼 생성 및 Copy가 줄어드는 이점이 없어진 걸로 이해가 됐는데, 기존의 SendBuffer.cs와 새로운 대체된 Send()의 장단점이 각각 궁금합니다. ClientSession.cs public void Send(IMessage packet) { string msgName = packet.Descriptor.Name.Replace("_", string.Empty); MsgId msgId = (MsgId)Enum.Parse(typeof(MsgId), msgName); ushort size = (ushort)packet.CalculateSize(); byte[] sendBuffer = new byte[size + 4]; Array.Copy(BitConverter.GetBytes((ushort)(size + 4)), 0, sendBuffer, 0, sizeof(ushort)); Array.Copy(BitConverter.GetBytes((ushort)msgId), 0, sendBuffer, 2, sizeof(ushort)); Array.Copy(packet.ToByteArray(), 0, sendBuffer, 4, size); Send(new ArraySegment<byte>(sendBuffer)); }
뭔가 빠져서... 이게 맞겠죠..? a = [1, 2, 3] b = a c = [1, 2, 3, 4] print(a is b) # 출력: True print(a is c) # 출력: False print(b is not a) # 출력 : False print(b is not c) # 출력 : True print(a == c) # 출력: False print(a != c) # True print(a != b) # False print(c != b) # True 같다 : is 와 is not 과의 차이 ==, != != 값이 다른지 판단 (내부) == 값이 같은지 is = 객체가 같은지 is not = 객체가 다른지 # 예제 def add(a, b, c): return a + b + c nums = [1, 2, 3] print(add(*nums)) # 출력: 6 kwargs = {'a': 1, 'b': 2, 'c': 3} print(add(**kwargs)) # 출력: 6 print(add(*kwargs)) # 출력: abc 딕셔너리에서는 문자열도 언팩킹해서 값으로 보내는 느낌이 있네요 . 키 값이라서 안될 줄 알았는데. (이게되네..?)
안녕하세요? AraaySegment 관련해서 코드리뷰하다 궁금한게 생겨서 질문 드립니다. ArraySegment<byte>.Offset이 잘 이해가 안가서요. 제가 알아 본게 맞다면? Offset은 항상 0이 아니고 데이터가 시작하는 위치를 가르킴 그렇다면 _buffer는 항상 0부터 데이터를 사용하고 있으므로 항상 Offset은 0임 그렇다면 RecvBuffer.cs의 이 코드는 이렇게 바꿔도 되지 않을까? 원래 코드 public void Clean() { int dataSize = DataSize; if (dataSize == 0) { // 남은 데이터가 없으면 복사하지 않고 커서 위치만 리셋 _readPos = _writePos = 0; } else { // 남은 찌끄레기가 있으면 시작 위치로 복사 Array.Copy(_buffer.Array, _buffer.Offset + _readPos, _buffer.Array, _buffer.Offset, dataSize); _readPos = 0; _writePos = dataSize; } } 수정 후 Array.Copy(_buffer.Array, readPos, buffer.Array, 0, dataSize); _readPos = 0; _writePos = dataSize; 마찬가지로 Session.cs 에서 _buffer정보를 리턴해 주는 이 코드는 이렇게도 되지 않을까? 수정 전 void RegisterRecv() { if (_disconnected == 1) return; _recvBuffer.Clean(); ArraySegment<byte> segment = _recvBuffer.WriteSegment; _recvArgs.SetBuffer(segment.Array, segment.Offset, segment.Count); 수정 후 _recvBuffer.Clean(); ArraySegment<byte> segment = _recvBuffer.WriteSegment; _recvArgs.SetBuffer(segment.Array, segment.Offset, segment.Count); 제가 계속 곱씹어봤는데 Offset에 대한 이해가 안되서 ㅜㅜ 답변해주시면 감사하겠습니다.
springboot로 백엔드 서버를 구축해서 API 속도를 확인하고 싶어서 JMeter로 속도를 측정하고 있습니다. 그런데 같은 API를 3개 테스트했는데 속도 차이가 너무 나는데 이유를 모르겠습니다. 전부 "GET /v1/employee" API이고, 유독 첫번째 위치한 API 속도가 많이 느립니다. 정말 답답한데 힌트라도 알고 싶습니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] average 메서드에 return 값을 sum / 3.0이 아닌 sum / 3.0을 저장한 average 변수를 반환해도 상관없나요? 이렇게 변수에 넣어 반환하니까 변수명에 인텔리제이가 노란줄을 그어서 혹시 이렇게 반환하는게 잘못된것인지 궁금해서 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. public class UserV2 { private String id; public UserV2(String id) { this.id = id; } @Override public boolean equals(Object obj) { UserV2 user = (UserV2) obj; return id.equals(user.id); } } 여기서 제일 마지막줄의 return id.equals(user.id); id 는 자신의 것이니까 바로 접근이 가능한데 user.id 는 매개변수로 넘어온 것인데 private 로 된 id에 바로 접근한다는게 이상합니다. getId() 메서드를 만들어서 사용하는 것이 아닌 직접 접근이 어떻게 가능한가요?
안녕하세요, 배열에서 당연하게 쓰고 있다가 문득 궁금증이 생겨서 질문을 드립니다. 배열을 생성하고 해당 배열의 길이를 알고 싶을 때, 자주 쓰던 length가 어디서 나온 것인기 궁금합니다. String 객체 같은 경우 String a = "example"; int length = a.length(); 다음과 같이 length() --> 메서드임을 알 수가 있는데 배열에서 사용하는 length 같은 경우는 int[] a = new int[5]; int length = a.length; 다음과 같이 소괄호() 없이 사용을 하게 되는데, 이게 뭔지 궁금해서 IDE 에서 command 클릭을 해도 해당 메서드의 출처를 알 수 가 없어 질문을 드립니다. 배열에서 사용하는 length 같은 경우 자바 자체적으로 있는 static 메서드 같은 존재인가요?