묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결말이 트이는 네트워크
면접관은 결과론적인 설명을 좋아하나요? 아님 디테일한 설명을 원하나요?
### HTTP 캐싱이 무엇이며 관련된 HTTP 헤더를 설명해주세요.HTTP 캐싱은 클라이언트나 중간 캐시 서버가 동일한 리소스를 재요청하지 않고, 저장된 사본을 사용해 네트워크 트래픽을 줄이는 기술입니다. 이를 위해 캐시 동작을 제어하는 헤더와, 리소스 변경 여부를 확인하는 검증 헤더, 조건부 요청 헤더가 사용됩니다.대표적인 캐시 제어 헤더로는 최신 HTTP에서 사용하는 Cache-Control, 구버전 브라우저와 호환을 위한 Pragma, 그리고 만료일을 지정하는 Expires가 있습니다. 리소스 변경 여부를 검증하는 ETag와 Last-Modified 헤더를 통해 서버는 클라이언트가 가진 리소스가 최신인지 판단하고, 조건부 요청 헤더If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since)를 활용하면 변경되지 않은 경우 전체 데이터를 전송하지 않고 304 Not Modified를 반환할 수 있어 효율적인 데이터 전송이 가능합니다.VS### HTTP 캐싱이 무엇이며 관련된 HTTP 헤더를 설명해주세요.HTTP 캐싱은 클라이언트(브라우저)나 중간 캐시 서버가 동일한 리소스를 재요청하지 않고, 저장된 사본을 사용하여 네트워크 트래픽을 줄이는 기술입니다.이를 제어하기 위해 캐시 제어 헤더, 검증 헤더와 조건부 요청 헤더가 사용됩니다. 캐시 제어 헤더는 클라이언트와 중간 캐시 사이에서 리소스의 캐싱 동작을 제어하는 핵심적인 역할을 합니다. 대표적으로 Cache-Control, Pragma, Expires 헤더가 사용됩니다.- Cache-Control 헤더는 최신 HTTP 에서 사용되며 캐시 동작을 제어합니다.- Pragma 헤더는 HTTP/1.0 이전에서 사용되며, 구버전 브라우저와의 호환성을 위해 사용됩니다.- Expires 헤더는 HTTP/1.0 부터 사용되며, 캐시 만료일을 정확한 날짜로 지정할 수 있습니다. Cache-Control: max-age 와 함께 사용되면, 해당 헤더는 무시됩니다.검증 헤더와 조건부 요청 헤더는 클라이언트가 이미 가지고 있는 리소스가 최신인지 확인하고, 변경되지 않았다면 서버가 불필요하게 전체 데이터를 전송하지 않도록 하는 기능을 합니다. 대표적으로 ETag & Last-Modified, If-Match, If-None-Match & If-Modified-Since, If-Unmodified-Since 헤더가 사용됩니다.- 검증 헤더- Last-Modified : 리소스가 마지막으로 수정된 날짜를 바탕으로 리소스가 변경되었는지 확인합니다.- ETag : 리소스의 고유 식별자(Tag)를 제공하여, Last-Modified 보다 정확하게 리소스가 변경되었는지 확인할 수 있습니다.- 조건부 요청 헤더- If-Match : 클라이언트가 가진 ETag와 서버의 ETag가 일치할 때만 요청을 수행합니다.- If-None-Match : 클라이언트가 가진 ETag와 서버의 ETag가 다를 때만 요청을 수행하며, 일치하면 304 Not Modified를 반환합니다.- If-Modified-Since : 클라이언트가 가진 마지막 수정 시각 이후로 리소스가 변경되었을 때만 응답을 반환하며, 변경되지 않았다면 304 Not Modified를 반환합니다.- If-Unmodified-Since : 지정한 시간 이후로 리소스가 수정되지 않았다면 요청을 수행합니다.면접관은 첫번째 답변과 두번째 답변 중 어떤 답변을 선호할까요? 첫번쨰는 결과론적이지만 뭔가얕다는 생각이 들지만 면접관이 꼬리질문하기 쉽게 말한거같고 (물론 꼬리질문도 대비했습니다) 두번째 답변은 디테일을 중심으로 말해서 좋게보일 순 있지만.. 면접관이 꼬리질문하기 어려울거같아서.참 고민이군요.. 지식 공유자님은 위 두가지 답변 중 어떤 답변을 선호하시나요? 그리고 그 이유가 있을까요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
강좌 복습 팁이 있으신 분들 공유해주시면 감사하겠습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.자바 고급편 수준이 저한테 높아서, 느린 배속으로 반복해서 내용을 겨우 이해는 했는데 강의 내용이 자기 것으로 되었다는 느낌이 없고 교안이나 영상 없이는 이론 설명이나 예제 코드 작성이 잘 안 됩니다.강의 내용을 자기 것으로 체화하신 분들은 어떻게 복습하셨나요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
16강 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]package io.buffered; import java.io.FileInputStream; import java.io.IOException; import static io.buffered.BufferedConst.BUFFER_SIZE; import static io.buffered.BufferedConst.FILE_NAME; public class ReadFileV2 { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream(FILE_NAME); long startTime = System.currentTimeMillis(); byte[] buffer = new byte[BUFFER_SIZE]; int fileSize = 0; int size; while ((size = fis.read(buffer)) != -1) { fileSize += size; } fis.close(); long endTime = System.currentTimeMillis(); System.out.println("File name: " + FILE_NAME); System.out.println("File size: " + fileSize / 1024 / 1024 + "MB"); System.out.println("Time taken: " + (endTime - startTime) + "ms"); } }이 코드를 컴파일했을 때 Time taken이 6ms 언저리로 자꾸 나오는데 컴퓨터마다 다 다르게 찍히는 건가요? 강의에서는 1ms로 나와서 제가 타이핑을 잘못했나 싶어서 여쭤봅니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장 부탁드립니다
이전에 구매하고 학교생활하느라 정신없어서 잘 듣지 못했는데지금 다시 들으려고 보니 기간이 거의 남지 않았네요ㅠ수강기간을 한 번만 연장시켜 주실 것을 부탁드립니다.. 감사합니다!
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
SQL 쿼리 결과가 표시되지 않습니다
안녕하세요.영상 4:13 에서 쿼리실행시 쿼리 결과가 표시되지 않습니다. 어떠게 해야할까요? 에러메시지:
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
플레이어(Actor) 로 (리슨)서버에서 생성 되나요?
강의를 계속 듣고 보니 저는 (리슨)서버 의 경우 필요한 객체만 생성되는 줄 알았으나 마지막 Owner 에 대한 내용도 보니 결국 서버에서 플레이어 캐릭터 액터 도 생성 및 초기화 하고 이를 다시 클라이언트에서 Owner 가 설정되기 전이긴 하나 다시 생성 후 컴포넌트 초기화 , 오너 설정 등이 이루어지는데요.(리슨)서버의 경우 플레이어-접속된 클라이언트의 객체 모두 생성 후 다시 이를 클라이언트에게 전달 , 클라이언트에서는 서버에서 받은 객체 정보를 바탕으로 다시 플레이어 캐릭터 생성 및 오너 설정 즉 서버는 모두 생성한다. 그리고 접속되어 진 클라이언트 플레이어 액터 객체는 모두 서버에 의해 클라에서 생성되며 OnRep_Owner, PostNetInit 등을 통해 서버의 PossessedBy 와 동일한 일을 진행한다 이렇게 이해해도 될까요?
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
2강) HandleBeginPlay 의 역활이 궁금합니다.
마지막에 로그를 찍어보니 서버 역활을 하는 객체에는 HandleBeginPlay 로그가 출력되었으나 클라 역활을 하는 객체에는 OnRep_ReplicatedHasBegunPlay 로그가 출력되었습니다. 현재는 리슨서버로 진행되니 서버-클라 모두 HandleBeginPlay 가 호출될 줄 알았지만 클라에서는 출력되지 않습니다. 강의 내용처럼 HandleBeginPlay 는 서버 (로컬)에만 호출되니 클라에서는 호출 될 일이 없으며 클라에서는 OnRep_ReplicatedHasBegunPlay 만 호출되나 이것도 bReplicatedHasBegunPlay 값에 의해 호출 될수도 있고 안될 수도 있다 이렇게 이해해도 되나요?다만 bReplicatedHasBegunPlay 는 그렇가면 게임이 시작 이후에는 무조건 true 가 될테니 시작 이후에 접속되면 무조건 bReplicatedHasBegunPlay 가 호출 될 것이고시작 이전에 호출 되면 bReplicatedHasBegunPlay 호출이 안될 것이다이렇게 이해해도 될까요?
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
3강 중간, 모드 로그로 찍을 시 스탠드얼론이 안찍힙니다.
최초 리슨서버 역활을 하는 클라이언트 의 로그가 출력시 스탠드얼론은 없고 전부 서버 로만 나옵니다. 스탠드얼론이 아닌 서버에서 로그인 시작/끝 , 포스트 로그인 시작/끝 이렇게 출력되는데이건 엔진 업데이트가 되어 버전이 달라서 내부 로직 구조가 변경되어서 그런 것이다 라고 이해해도 될까요? 현재 버전은 5.6 입니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장 부탁드립니다....!
취준하면서 초반에 차근차근 열심히 들었는데 다른 일을 잠깐 하게 됐습니다.다시 들으려고 보니 기간이 얼마남지 않았네요...ㅠㅠ 수강기간 연장 부탁드립니다...!
-
미해결절대강좌 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
Warrior가 Gobin에게 달려가 충돌하면 Gobin이 뒤로 튀겨나가는 현상??
Warrior가 Gobin에게 달려가 충돌하면 Gobin이 뒤로 튀겨나가는 현상이 있습니다. ChaseState 상태에서는 뒤로 튀겨나가도 다시 앞으로 가는데 Warrior가 계속 밀다가 사망 상태가 되면 Gobin은 IdleState가 되면서 계속해서 뒤로 밀리는 현상이 있습니다.아래와 같이 IdleState 상태로 진입하면 enemy.StopMoving(); 를 추가 해서 멈추도록 했는데 public void Enter(Enemy enemy) { Logger.Log("Idle 진입"); enemy.animator.SetBool(Enemy.hashIsRun, false); // Idle 상태 진입 시 물리 엔진으로부터 발생하는 이동/힘을 즉시 차단합니다. // Enemy.StopMoving()을 호출하면 리지드바디 속도를 0으로 만들어 밀림을 방지합니다. enemy.StopMoving(); } 이 것도다 정확한 방법을 알 수 있을까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
Roles에 S3andRDS_Full_Access가 표시되지 않습니다
https://policysim.aws.amazon.com/home/index.jsp?#roles 에서 5개밖에 표시가 되지 않습니다. IAM 정책란에서는 1400개가 표시되는데요. 이유가 뭘까요? 루트계정으로 로그인되어있습니다.AWSServiceRoleForResourceExplorerAWSServiceRoleForSupportAWSServiceRoleForTrustedAdvisorEC2_Full_Access_RoleEC2_IAM_ReadOnly_Role
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
mutex와 sleep 차이점
mutex도 커널로 sleep가 되는걸로 알고 있는데 스핀락을 구현하면서 sleep를 같이 구현하는것과 mutex를 사용하는것의 차이가 궁금합니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
C# 게임서버 3D MMORPG
리니지 라이크처럼 대규모 PK 가능한3D MMORPG중에 C#으로 게임서버만든 게임이 실제로 있나요? 없다면C++에 비해 C# 속도의 한계 때문에 없는걸까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
유니티6 버전
제가 강의를 Part4~Part9를 수강하고 있는데요 강의가 2021년도이고 시간이 4년정도 이상지나서 유니티6 버전하고 많이 다를거 같은데몇퍼센트정도 활용 할 수 있나요?
-
미해결IT보안을 위한 와이어샤크 네트워크 패킷 분석 실전
첨부 파일을 구글 드라이브에서 다운 받았는데 비밀번호가 무엇인가요?
첨부파일(압축파일)을 다운 받았는데 비밀번호가 있어서 압축을 못 풀고 있는데 비밀번호가 무엇인가요?
-
미해결절대강좌 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
Warrior의 InputHandler.cs 의 OnEnable(), OnDisable() 메서드 부분에서 공격에 문제가 있는 것 같아요.
Warrior의 공격에 문제점 발견마우스 왼쪽 버튼 Down 할 때 공격 애니메이션 동작마우스 왼쪽 버튼 Up 할 때 공격 애니메이션 동작마우스 한번 클릭(Down, Up) 동작에서 두 번의 공격 동작을 함.이 부분에서 canceled 부분==>마우스 Up 에서 애니메이션이 발생함.수정 전 코드attackAction.preformed += HandleAttack; attackAction.canceled += HandleAttack;수정 후 코드attackAction.started += HandleAttack; //attackAction.canceled += HandleAttack;이렇게 수정하면 정상적으로 마우스 한 번 클릭에 한 번 공격함.전체 수정 코드private void OnEnable() { inputActions.Enable(); // 이벤트 연결 moveAction.performed += HandleMove; moveAction.canceled += HandleMove; attackAction.started += HandleAttack; // attackAction.canceled += HandleAttack; // 버튼을 뗄 때 공격이 발생하는 문제를 막기 위해 제거 }private void OnDisable() { inputActions.Disable(); // 이벤트 해제 moveAction.performed -= HandleMove; moveAction.canceled -= HandleMove; attackAction.started -= HandleAttack; // attackAction.canceled -= HandleAttack; }
-
미해결
브라우저의 SOP 정책의 실효성 질문
Same Origin Policy가 CSRF 공격을 막기 위해 필요하다고 배웠습니다. 그런데 정말 SOP가 꼭 필요한지가 의문입니다. SOP가 없더라도, 쿠키의 SameSite=Strict 옵션을 사용하고, 타 사이트 localstorage에 접근하는 것을 차단하기만 한다면, 다른 사용자의 자원을 탈취하는 것을 막을 수 있을 것 같은데요. 그 외의 자원에 대한 SOP는 어차피 브라우저 주소창에 주소를 입력하기만 하면 누구나 접근할 수 있는 데이터에 대한 접근을 막을 뿐이지 않나요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장 부탁드립니다.
기간이 2일남았는데, 그간 업무로 인해 제대로 못봤습니다. ㅠㅠ좋은 강의 한번더 볼수 있게 기회를 주시면 감사하겠습니다 ㅠㅠ
-
미해결아두이노와 떠나는 사물인터넷 여행 - 아두이노 입문부터 IoT 중급까지!
42강 초음파 센서 사용 거리 측정하는 소스 코드에서요.
42강 초음파 센서 사용 거리 측정하는 소스 코드에서요. 29.4를 나누는 것을 되어 있는데, 곱해야 하는 것 아닌가요? 거리는 시간*29.4가 맞는것 아닌가요. 1cm를 29.4us에 움직이니까요. 제가 뭘 잘못 생각한 건가요. 소스코드는 /29.4로 되어 있어요.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장 부탁드립니다 ㅠㅠ
길게 안해주셔도 괜찮고한 1주일만 되어도 충분할 것 같습니다 !부탁드립니다 ㅠㅡㅠ