묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
PUT, PATCH 메서드의 내부 동작 로직 차이
안녕하세요. JPA 에서 PUT, PATCH 의 내부 동작 차이가 궁금해서 질문 남깁니다. PUT 은 리소스를 완전히 대체하고, PATCH 는 일부 필드를 업데이트 하는 것이라고 했는데, 리소스를 어떻게 수정할 것인지는 Service 계층에 개발자가 정의한 메서드 로직대로 결정되는 게 아닌가 해서요. 개인적으로 테스트를 해봤는데,다음과 같이 MemberController 에서 API 2개를 짰고 (PUT, PATCH) 둘 다 MemberService.updateMember 메서드를 호출합니다.// MemberController @PutMapping("api/members/{memberId}") public void putUpdateMember( @PathVariable(value = "memberId") Long memberId, @Valid @RequestBody MemberUpdateRequestBody request){ memberService.updateMember(memberId, request); } @PatchMapping("api/members/{memberId}") public void patchUpdateMember( @PathVariable(value = "memberId") Long memberId, @Valid @RequestBody MemberUpdateRequestBody request){ memberService.updateMember(memberId, request); } MemberServIce 에서는 두 개의 필드 값만 변경합니다.// MemberService public void updateMember(Long memberId, MemberUpdateRequestBody request) { Member member = memberRepository.findById(memberId).orElseThrow(() -> new EntityNotFoundException("member not found")); member.changeName(request.getName()); member.changeAge(request.getAge()); }결과적으로 2가지 HTTP 메서드가 호출되어 실행된 DB Query 는 동일했습니다.그래서 궁금한 점이, HTTP 메서드에 따라 리소스를 갈아 끼우거나(PUT) 일부 필드만 업데이트(PATCH) 되는 것이 아니라, Service 계층에서 어떻게 로직을 짜는지에 따라 결정되는 게 아닌가? 해서 질문 남깁니다.
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
Unreliable & Reliable 신뢰성 비신뢰성의 의미가
TCP와 UDP의 데이터 송수신에서의 신뢰성을 의미하는건가요 아니면 클라의 데이터를 신뢰할수 없다 라는 의미일까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
안녕하세요. 인스턴스 생성관련 문의드립니다
IAM파트 강의보면서 실습중인데(현재는 EC2), 인스턴스 생성을 하려면 vpc를 만들고, 네트워크 설정도 넣어줘야하더라구요강의 상에서는 이미 만들어져있는것으로 보이는데 해당 값들은 어떻게 줘야할까요?이해하는데에는 무리가 없어서 일단은 강의를 듣고있는데 어떻게 처리하면 좋을지 궁금합니다
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
6:40초에 하신 말씀에 대해서 궁금한게 있습니다.
쓰레드가 자신의 소유권을 포기한다는 말씀은쓰레드를 조종하는 CPU 코어가 연결을 끊었다라고 이해해도 될까요?그리고 임의의 시간 후에 락이 풀렸는지는 다시 똑같은 쓰레드로 확인하는건가요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
기존 C++ 시리즈와 현재시리즈중 우선순위
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] 와 비교해서 현재 시리즈를 먼저 진행하고 하는것이 알맞은 순서일까요? 이전 C++ 언리얼 MMO 과정에는 어셈블리도 다루고 좀더 딥하게 다루던걸로 기억해서 여쭈어봅니다
-
미해결CloudNet@ - Amazon EKS 기본 강의
AWS VPC CNI의 ENI에서 질문이 있습니다.
안녕하세요 강의 잘 음미하고 있습니다." Core DNS파드 배포시에 ENI slot에 Secondary IP가 전부 차 있는 것을 확인하고(실제로 파드가 사용은 안하고 있지만 L-IPAM의 warm pool에서 할당만 받은 상태) 이후 slot이 가득 차 있으므로 새로운 ENI를 생성한다. 따라서 2개의 ENI가 생긴다. " 라고 말씀해 주셨습니다.그래서 노드 셀렉터걸어서 Core DNS 있는 노드에 배포해 봤는데, 첫 파드 생성 시에만 저 규칙(ENI 생성)이 적용되고, 계속해서 규칙대로 ENI가 생성되는 것은 아니고 기존 ENI 2개에 있는 Secondary IP를 가져다 쓰더라구요. 당연히 계속 ENI를 생성하는 건 비용 측면이나 네트워크 측면이나 비효율적이니 그러려니 싶겠는데, 노드에 첫 파드 생성 시에(aws-node, kube-proxy 제외)는 왜 항상 ENI가 1개는 추가로 생성되면서 시작하게 되는건가요? 그냥 ENI에 남은 IP가 있는데 쓰면 되지 않을까요? 감사합니다. 수업 내용이 꽤나 딥다이브해서 이게 이거구나 할 때가 많아서 좋습니다. ㅎㅎ
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
Flask 사용 시 static 파일에 접근 불가능
[Section14] Docker를 활용하여 Flask기반의 web을 배포하려고 합니다.파일은 아래와 같이 구성되어 있습니다.homepagedocker-compose.ymlhomeDockerfileflask_appapp.pytemplatesindex.htmlstaticimageswsgi.pyrequirements.txtflasknginxnginx.conf수업내용에서 배운대로 하면 templates는 로드에 성공하는데 static에 있는 이미지들은 업로드에 실패했다고 뜹니다.로컬에서는 제대로 작동하는 파일을 그대로 옮겨서 사용했는데 무엇이 문제인지를 모르겠습니다.docker-compose logs를 확인하면 proxyserver | 2024/02/06 01:39:32 [error] 30#30: *8 open() "/etc/nginx/html/static/images/html.png" failed (2: No such file or directory), client: 203.237.124.159, server: , request: "GET /static/images/html.png HTTP/1.1", host: "52.79.173.37", referrer: "http://52.79.173.37/util/search"이런식으로 이미지 파일 경로가 없다고 뜨는데, Dockerfile에서 WORKDIR로 설정해놓은 곳에 파일 전체를 그대로 COPY 했는데, templates안에 있는 index.html은 정상작동하고, static에 있는 이미지들은 안 불러지는 걸까요?
-
해결됨AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기간 연장 문의
안녕하세요. 좋은 강의 만들어주셔서 감사합니다. 수강 기간 연장을 부탁드리고자 글을 남깁니다. 감사합니다.
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
안녕하세요. 질문드립니다
안녕하세요. 해당 강의와 관련이 없는 내용일 수 있지만 질문드립니다.로그인, 게임에 필요한 정보 등을 주고 받는 tcp나 http 통신을 하는 서버(이하 소켓 서버)와 소켓 통신을 하려고 한다면 (로그인으로 예를 들어보겠습니다) 로그인 레벨을 만들고 소켓 통신하는 부분을 로그인 레벨의 게임 모드에서 동작하게 하고 게임인스턴스에(클라이언트) 정보를 받고 다음 레벨로 넘어가면 될까요?그 후에 리슨서버나 데디케이트 서버를 사용해서 인게임 로직을 구현한다면 플레이어 정보(아이템, 레벨 등)는 클라이언트에서 서버로 입장 시에 앞단계를 통해 클라이언트에서 유저를 식별할 수 있는 최소한의 정보를 받아서(예를 들면 플레이어id) 소켓 서버로 요청 후에 클라이언트로 복제하면 될까요? 아니면 앞단계를 통해 클라이언트에 정보를 미리 받고 최소한의 검증만 하면 될까요?언리얼 서버에서 매치가 종료된 후 결과에 따른 보상이나 매치 중 소비하는 아이템(물약, 장비 내구도 등)같은 db 처리가 필요한 경우 언리얼 서버에서 처리하는지 별도의 서버에 요청하여 따로 처리하는지요?작성하고 보니 질문이 이해가 되지 않을 수도 있을 것 같은데요. 질문의 요지는 인게임 로직을 처리하는 언리얼 서버가 아닌 따로 구현한 소켓 서버와 언리얼 엔진을 연동하는 과정에 대한 질문을 드리고 싶습니다. 틀렸거나 더 효율적인 방법이 있으면 답변 부탁드리겠습니다. 감사합니다
-
해결됨초보자를 위한 IT 인프라의 이해
질문 부탁드립니다.
안녕하세요 지난번에 네트워크 강의 좋아서 이것도 신청했습니다 2가지만 질문 하겟습니다 강의에서 access distri core 스위치 있잖아요 제가 듣기로는 한 건물 안에서 분배 스위치를 연결하는게라우터라고 알고있엇습니다. 그러니까 access - distri- 라우터 이렇게요 근데 아닌가요? 아니면 라우터가 코어스위치의 역할을 대신할 수 도 있나요? 강의 중에서 네트워크 모듈이라고 말씀 하셨는데요 모듈이란 자바에서는 api 및 함수의 모음집이라고 알고 있는데요 네트워크에서의 모듈도 비슷한 뜻인가요?? 보니까 역할별로 딱딱 나뉘어져 있는거 같이보입니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장 부탁드립니다..!
안녕하세요.생각보다 자바 공부가 길어져서 이제야 AWS를 공부하게 되었는데 수강 기간이 거의 끝나가네요.송구스럽지만 수강 기간 연장을 요청 드립니다.감사합니다.
-
해결됨CloudNet@ - Amazon EKS 기본 강의
Grafana 계정 및 비번을 모르겠어요
Grafana 계정 및 비번을 모르겠어요
-
미해결CloudNet@ - Amazon EKS 기본 강의
안녕하세요
https://cloudneta.github.io/cnaeblab/2023-05-21-CH5-1/여기서 EKS Node Viewer 설치 까지 완료한 뒤https://cloudneta.github.io/cnaeblab/2023-06-02-CH1/여기에서 파드배포 부분을 실습하여 파드를 배포하였습니다.kubeopsview에서도 마리오 파드 생성이 확인되었으며kubectl get pod,svc에서도 마리오 디플로이먼트와 로드밸런서 생성도 확인하였고콘솔에 들어가서도 nlb 활성상태 확인이 됩니다curl -s -O https://raw.githubusercontent.com/cloudneta/cnaeblab/master/_data/mario.yaml하지만 해당 명령어로 나오는 DNS로 접속이 안됩니다.웹페이지를 찾을 수 없어요.1. 왜 접속이 안되는지2. mario.yaml 에 레플리카를 1로 뒀는데 대상그룹의 등록된 대상 마리오 인스턴스 3개 잡힙니다.3. yaml에서 8080포트 넣었는데 대상그룹 포트 30836 입니다.어떤게 잘못된 것일까요?4. 프로메테우스 타겟 메뉴 들어가보면 모니터링 네임스페이스의 파드들만 타겟으로 잡혀있는데, 원클릭 설치시 노드익스포터가 모니터링 노드만 잡고 있는건지? 그렇다면 추가적으로 파드를 설치할 경우 모니터링 네임스페이스에 apply해야하는건가요?이러한 작업을 하는 이유는 실습을 따라하면서 그라파나와 프로메테우스를 설치했고, 추가적인 파드를 설치해서 새로운 데이터를 노드익스포터가 잘 받아오는지, 그라파나가 제대로 출력하는지를 보기 위함입니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
제가 이해한게 맞는지 모르겠습니다.
전역 변수에 값을 변경할 때 쓰레드가 우선 개인 수첩에 적어두고나중에 다른 것들까지 한번에 모아서 최종적으로 메인 메모리에 변경된 값을 기입 한다고 이해하면 될까요? 쓰레드의 개인 수첩이 그 쓰레드를 조종하는 CPU 코어의 캐시가 되는건가요?
-
미해결CloudNet@ - Amazon EKS 기본 강의
관리형노드와 자체관리형노드 문의
관리형노드와 자체관리형노드에 대한 질문입니다.AWS에 관리형노드와 자체관리형노드가 있는데요, EKS 생성할 때 어떻게 이를 구분해서 생성할 수 있나요? custom ami를 사용하느냐, 아니면 AWS AMI를 사용하는 것으로 이 구분이 되는 것인가요? 자체관리형노드는 운영자가 직접 유지관리/버전관리를 수행해야하는 일들이 어떤것이 있을 지 예를 들어줄 수 있을까요?
-
미해결CloudNet@ - Amazon EKS 기본 강의
명령어 문의 및 건의/의견 입니다
명령어에 대한 문의 입니다.파이프라인 | yh 는 어떤 명령어 인가요?kubectl get something -o yaml | yh 로 쓰는 것 같고, yaml 포맷에 하이라이트 해주는 것 같네요https://www.reddit.com/r/kubernetes/comments/g6roec/yh_yaml_syntax_highlighter_to_pipe_kubectl_output/ 강의 중 사용하는 명령어에 대한 설명이 없어 강의 따라가기 불편한 점이 있습니다. kubectl 명령어에 shorten name으로 줄여서 입력을 하는데 강의가 초급자 대상이면 그 줄임말에 대해서도 설명을 해주시면 좋을 것 같습니다.추가강의나 자료에 별도로 제공 되면 좋을 것 같습니다kubectl api-resources
-
미해결CloudNet@ - Amazon EKS 기본 강의
ssh key pair 정보 입력 없이 로그인하기
ssh key pair 정보를 myeks-host에 특정폴더에 저장하여 key 정보 입력없이 ssh 로그인을 하는데,이와 같이 설정을 어떻게 하는 지 설명부탁드립니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
패킷 암호화 작업은 강의에 없나요?
패킷 암호화 작업은 강의에 없나요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장
안녕하세요!시험을 몇일전에 쳤는데 점수가 부족해서 재응시하게되었습니다…시험을 다시볼예정이라서 죄송하지만 수강연장 부탁드립니다..!
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
캐시저장소에서 캐시데이터가 소멸되는 시기
(검증헤더와 조건부 요청의 사용여부와는 관계없이 모든 경우에) 클라이언트가 데이터를 요청할 때 마다 클라이언트는 캐시 저장소를 먼저 뒤진다. 데이터가 유효하다면 해당 요청 자체가 서버에게 도달하지 않고 캐시된 이미지를 바로 사용한다.(검증헤더와 조건부 요청을 사용하지 않는 경우) 클라이언트는 데이터 요청을 보낼 때 먼저 캐시 저장소를 뒤진다. 이 때, 요청한 캐시 데이터의 유효시간이 초과되었다면, 해당 요청은 서버에게 전달되며 클라이언트는 서버로부터 데이터를 새로 전달받는다.(검증헤더와 조건부 요청을 사용하는 경우) 클라이언트는 데이터 요청을 보낼 때 먼저 캐시 저장소를 뒤진다. 이 때, 캐시 데이터의 유효시간이 초과되었다면, 데이터 최종 수정일 값을 검증헤더if-modified-since에 넣어 서버에게 요청을 전달한다. 서버가 이를 확인하여 캐시된 데이터의 변경여부를 판단하고, 변경되지 않았다면 메시지 바디 없이 304 Not Modified 응답을 반환한다. 클라이언트는 응답 결과를 기반으로 캐시의 메타 정보를 갱신한다. 만약 데이터가 변경된 경우에는 클라이언트는 서버로부터 데이터를 새로 응답받는다.⇒ 즉, 캐시의 유효기간이 지났더라도 검증헤더와 조건부 요청을 사용하면, 데이터가 변경되지 않았을 경우에는 캐시데이터를 재사용할 수 있게 해준다. 이렇게 정리를 해보았는데요, 궁금한 점이 있습니다! (+ 위 정리 내용이 정확할까요?)위 설명대로라면 캐시 데이터의 유효시간이 초과된 경우에도, 캐시저장소에는 유효시간이 지난 캐시데이터가 존재해야 하는거잖아요, 그렇다면 '유효시간'이라는 것은 무엇을 의미하는 건가요? 캐시데이터의 유효시간이 지나면 바로 캐시저장소에서 해당 캐시데이터가 소멸된다고 생각했는데 그러니까 위 설명이 이해가 가지 않아서요,, 캐시저장소에서 유효시간이 지난 캐시데이터는 언제 소멸되는건가요?