묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
CAS 구현
스핀락 강의를 보다가 CAS 의사코드를 써주셨는데직접 구현할려면 어떻게 해야되나요 ?이렇게 한번 넣어봤는데 안되서요 ㅠㅠclass SpinLock { public: void lock() { while (CAS(expected, desried) == false) {} } void unlock() { _locked = false; } bool CAS(bool expected, bool desired) { if (_locked == expected) { expected = _locked; _locked = desired; return true; } else { expected = _locked; return false; } } private: atomic<bool> _locked = false; atomic<bool> expected = false; atomic<bool> desried = true; };
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest
질문글 참고해서 작성해보았는데 계속 에러가 뜹니다. 무엇이 문제일까요?특히 중복회원예외 => assertThrows에서 노란 점선줄이 뜨고 assertThat에서 빨간색 글씨가 됩니다.package jpabook.jpashop.service; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; import static org.junit.jupiter.api.Assertions.assertThrows; @SpringBootTest @Transactional // 이게 있어야 롤백이 됨 class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Autowired EntityManager em; @Test public void 회원가입() throws Exception { // given => 이렇게 주어졌을 때 Member member = new Member(); member.setName("kim"); // when => 이렇게 하면 Long saveId = memberService.join(member); // then => 이렇게 된다. 검증해라 em.flush(); // db에 반영됨 + @Transactional때문에 롤백도 됨 => DB에 데이터가 남으면 안되므로 Assertions.assertEquals(member, memberRepository.findOne(saveId)); } @Test public void 중복_회원_예외() throws Exception { // given Member member1 = new Member(); member1.setName("Kim"); Member member2 = new Member(); member2.setName("kim"); // when memberService.join(member1); IllegalStateException e = Assertions.assertThrows(IllegalStateException.class, () -> { memberService.join(member2); }); //memberService.join(member2); // 예외가 발생해야 한다!!! // then Assertions.assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }
-
해결됨코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
슬랙 초대부탁드립니다.
이메일은 siyeoni0209@gachon.ac.kr입니다.감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
원자성과 interlock연산의 관계에 대해서 질문입니다
<interlock 연산은 원자성을 가진다>는 것이 어떻게 <interlock 연산은 동시에 실행될 수 없다>를 설명해 줄 수 있는 것인지 잘 이해가 되지 않습니다.예를 들어 스레드 1과 스레드 2가 Interlocked.Exchange(ref locked, 1)을 정확히 동시에 실행하면 문제가 발생할텐데, <interlock 연산은 _locked 변수에 +1 하는 연산을 분리될 수 없는 하나의 작업으로 만든다>는 것이 어떻게 이 상황을 막는데 도움을 줄 수 있다는 것인가요?이러한 의문 때문에 interlock연산이 기존 연산을 단일 연산으로 만드는 것이 race condition을 해결하는데 왜 도움이 되는지 이해가 되지 않습니다 두번째 질문은 다음과 같습니다. interlock 연산의 동시 실행을 막는 기작은 lock을 이용한 것인가요?
-
미해결홍정모의 따라하며 배우는 C++
[10:30]class 정의 순서에 따른 에러
두 코드를 실행시켜 봤는데 class 정의 순서에 따라 friend키워드에 의한 에러 유무가 달라졌습니다.#include <iostream>using namespace std;class A;class B {private:int _val = 2;friend void print(A& a, B& b);public:void print(A& a);};void print(A& a, B& b) {cout << a._val << " " << b._val << endl;}class A {private:int _val = 0;friend void print(A& a, B&b);friend void B::print(A& a);};void B::print(A& a) {cout << a._val << endl;}int main() {A a;B b;print(a,b);return 0;}class B의 정의가 class A의 정의보다 위에 있는 이 코드는 에러가 나지 않았고요,#include <iostream>using namespace std;class B;class A {private:int _val = 0;friend void print(A& a, B&b);friend void B::print(A& a);};class B {private:int _val = 2;friend void print(A& a, B& b);public:void print(A& a);};void print(A& a, B& b) {cout << a._val << " " << b._val << endl;}void B::print(A& a) {cout << a._val << endl;}int main() {A a;B b;print(a,b);return 0;}class A의 정의가 class B의 정의보다 위에 있는 이 코드는 A::_val이 접근 불가하다는 에러가 났습니다.에러의 이유를 생각해 봤는데, friend키워드는 1번만 유효한 건가요? friend void B::print(A& a) 이후 처음으로 만나는 B::print 함수에 대해서만 friend처리를 해 준다는 인상을 받았습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대일 연관관계 매핑 @JoinColumn 외래키 관련 질문드립니다.
안녕하세요! 다들 고생이 많으십니다.다대일 연관관계 매핑 중 질문이 있습니다.@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id", nullable = false, updatable = false) private Team team;위와 같이 다대일 연관관계 매핑시 @JoinColumn을 지정하여 외래키를 설정하여 관리 되는데이 경우 jpa가 생성하는 ddl을 보면 항상 물리적인 외래키가 항상 생성되고, @JoinColumn 생략 하더라도 물리적인 외래키가 생성되고 있는데필요에 따라 물리적인 외래키를 설정하지 않고 연관관계를 맺고 싶을때는 어떤 설정을 걸어야 할까요?방법이 있다면 @JoinColumn을 사용하여 일반적으로 생성된 물리적인 외래키가 존재하는 것과 JPA가 동작하는데 차이가 있을까요? 다른 방법이 없다면 최초 DDL 생성 이후 ddl-auto 옵션을 끄고, 엔티티 소스는 @JoinColumn을 유지하고 DB상 물리적인 외래키만 지우더라도 JPA가 동작 하는데에는 별다른 이슈가 없을까요? ** 추가로 강의, JPA 책 중 관련 내용이 있는 곳 이 있다면 알려주시면 감사하겠습니다.감사합니다.
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
7.8 실습문의
deployment-anti-podAffinity.yaml 실행했을 때 w2-k8s 2개, w3-k8s 2개의 배포 됩니다. scale 명령으로 파드수를 줄였다가 늘려 보아도 동일합니다.[root@m-k8s 7.8]# kubectl get pods -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESdeploy-anti-podaffinity-7865bcd85-b55tb 1/1 Running 0 10s 172.16.132.28 w3-k8s <none> <none>deploy-anti-podaffinity-7865bcd85-g87kp 1/1 Running 0 10s 172.16.132.23 w3-k8s <none> <none>deploy-anti-podaffinity-7865bcd85-kw7kp 1/1 Running 0 10s 172.16.103.180 w2-k8s <none> <none>deploy-anti-podaffinity-7865bcd85-z99xl 1/1 Running 0 10s 172.16.103.181 w2-k8s <none> <none>
-
미해결모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1
인코딩, cmd 파라미터 오류
안녕하세요! 질문드릴게 있습니다!웹쉘 작성 도중 cmd파라미터를 받아오지 못하는 건지 계속 오류가 발생하고 인코딩 부분도 한글이 계속 깨져서 html이라 php부분에서 UTF-8 선언을 계속 해주었는데 해결이 되지 않고 있습니다,,,도와주시면 감사하겠습니다ㅠㅜ <cmd.php> <127.0.0.1/cmd.php 접근 시 출력화면> <cmd.php에서 시스템 명령어 입력 했을 때>
-
미해결배달앱 클론코딩 [with React Native]
혹시궁금한게
처음에는 input입력할떄안그랫는데 소켓연결하고부터 input에 아이디 비번입력할때 뒤늦게 반응되서 입력되네요 ? ios는 그런거없는데 혹시왜일까용..
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
7.7 실습문의
7.7 실습 디렉토리nginx-conf.yaml pod-adapter.yaml 실행 후 [root@m-k8s 7.7]# kubectl get pods -wNAME READY STATUS RESTARTS AGEnet 1/1 Running 4 (5m57s ago) 2d2hnfs-client-provisioner-7884c4db4-qz75l 1/1 Running 7 (5m57s ago) 7d1hpod-adapter 2/2 Running 0 7spod-adapter 1/2 Error 0 9spod-adapter 2/2 Running 1 (1s ago) 10spod-adapter 1/2 Error 1 (6s ago) 15spod-adapter 1/2 CrashLoopBackOff 1 (16s ago) 30spod-adapter 2/2 Running 2 (16s ago) 30spod-adapter 1/2 Error 2 (21s ago) 35spod-adapter 1/2 CrashLoopBackOff 2 (13s ago) 48spod-adapter 2/2 Running 3 (28s ago) 63spod-adapter 1/2 Error 3 (34s ago) 69spod-adapter 1/2 CrashLoopBackOff 3 (11s ago) 79s마스터노드(m-k8s) 수십분 먹통마스터노드(m-k8s) 다시 접속후 :[root@m-k8s 7.7]# kubectl get podsNAME READY STATUS RESTARTS AGEnet 1/1 Running 4 (12m ago) 2d3hnfs-client-provisioner-7884c4db4-qz75l 1/1 Running 7 (12m ago) 7d1hpod-adapter 1/2 CrashLoopBackOff 5 (2m30s ago) 6m10s조치사항 : 버추얼박스 VM들 재실행, 노트북 재실행, 방화벽, 백신 프로세스 서비스 종료후 재실행, rerepo-k8s-learning.kit 다시 다운로드, 기존 파드 삭제후 다시 배포 --> 증상은 위와 같이 동일함[root@m-k8s 7.7]# kubectl get pods -o wide[root@m-k8s 7.7]# curl 172.16.132.16/stub_statusActive connections: 1server accepts handled requests 2 2 2Reading: 0 Writing: 1 Waiting: 0[root@m-k8s 7.7]# curl 172.16.132.16:9113/metricscurl: (7) Failed connect to 172.16.132.16:9113; Connection refused
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 메서드
왜 연관관계 메서드에서 어떤 건 set이라고 하고 어떤 건 add라고 하나요??ex. setMember() / addOrderItem() //== 연관관계 메서드 ==// public void setMember(Member member) { this.member = member; member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); } public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); }setMember는 member.getOrders()라고 하고 setDelivery()는 setOrders()로 다른 이유는 무엇인가요?? 여기서 this는 order를 의미하는 걸까요??
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
pod 내부에서의 통신
안녕하세요 실습중 궁금한 내용이 생겨서 질문합니다.# nslookup 을 통해 naver.com 의 IP 주소 가져오기 mijung_ko_11st@cloudshell:~/yaml (crypto-snow-361311)$ nslookup naver.com Server: 169.254.169.254 Address: 169.254.169.254#53 Non-authoritative answer: Name: naver.com Address: 223.130.200.107 Name: naver.com Address: 223.130.195.95 Name: naver.com Address: 223.130.195.200 Name: naver.com Address: 223.130.200.104 # yaml 파일 생성 mijung_ko_11st@cloudshell:~/yaml (crypto-snow-361311)$ cat endpoint.yaml apiVersion: v1 kind: Service metadata: name: external-service spec: ports: - protocol: TCP port: 80 targetPort: 80 --- apiVersion: v1 kind: Endpoints metadata: name: external-service subsets: - addresses: - ip: 223.130.200.107 - ip: 223.130.195.95 - ip: 223.130.195.200 - ip: 223.130.200.104 ports: - port: 80 mijung_ko_11st@cloudshell:~/yaml (crypto-snow-361311)$ kubectl create -f endpoint.yaml service/external-service created endpoints/external-service created mijung_ko_11st@cloudshell:~/yaml (crypto-snow-361311)$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE external-service ClusterIP 10.8.10.232 <none> 80/TCP 71s kubernetes ClusterIP 10.8.0.1 <none> 443/TCP 73s # 통신 확인을 위한 어플리케이션이 뜨는 pod 생성 ijung_ko_11st@cloudshell:~/yaml (crypto-snow-361311)$ kubectl create deploy --image=gasbugs/http-go http-go2 deployment.apps/http-go2 created # pod 내부로 들어가서 통신을 해보면, 성공한 것을 볼 수 있다 (302 를 뱉긴하는데 통신 여부만 판단하겠음) mijung_ko_11st@cloudshell:~/yaml (crypto-snow-361311)$ kubectl get pod NAME READY STATUS RESTARTS AGE http-go2-7f5469bc46-lc5bb 1/1 Running 0 34s mijung_ko_11st@cloudshell:~/yaml (crypto-snow-361311)$ kubectl exec -it http-go2-7f5469bc46-lc5bb -- bash root@http-go2-7f5469bc46-lc5bb:/usr/src/app# curl external-service <html> <head><title>302 Found</title></head> <body> <center><h1>302 Found</h1></center> <hr><center> NWS </center> </body> </html>여기까지 따라왔습니다.그런데, pod 안에서 curl 명령어를 다른 사이트에 날려봐도 200 OK 가 떨어지는데, 이건 왜 이렇게 동작하는 건가요? ㅠㅠmijung_ko_11st@cloudshell:~/yaml (crypto-snow-361311)$ kubectl exec -it http-go2-7f5469bc46-lc5bb -- bash root@http-go2-7f5469bc46-lc5bb:/usr/src/app# curl -v www.11st.co.kr ... * Trying 113.217.247.90... * TCP_NODELAY set * Expire in 200 ms for 4 (transfer 0x5603f970bdd0) * Connected to www.11st.co.kr (113.217.247.90) port 80 (#0) > GET / HTTP/1.1 > Host: www.11st.co.kr > User-Agent: curl/7.64.0 > Accept: */* > < HTTP/1.1 200 < Date: Sat, 03 Sep 2022 15:26:11 GMT < Server: Apache < X-Content-Type-Options: nosniff < X-XSS-Protection: 1; mode=block < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Pragma: no-cache < Expires: 0 < X-Frame-Options: DENY < Content-Type: text/html;charset=UTF-8 < Content-Language: ko-KR < Set-Cookie: WMONID=DUZRgT4PfJn; Expires=Mon, 04-Sep-2023 00:26:11 GMT; Path=/ < Vary: Accept-Encoding,User-Agent < Access-Control-Allow-Credentials: true < Transfer-Encoding: chunked < Via: STON Edge Server/22.06.1 ...뭔가 pod 에서 외부와의 통신을 위해서 endpoint 리소스를 생성해야 하는데, 그렇다는 것은 이러한 통신은 불가해야하는거 아닐까? 라는 생각이 들어서요 ㅠㅠ이게 올바른 동작인가요? 아니라면 왜 이럴까요...?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
쿼드트리 문제
http://boj.kr/6488e2fac4f0424485431da588a69213위 링크에 제가 작성한 코드가 있습니다.문제예시로 나온 답은 올바르게 출력하나백준에서는 16%까지 진행 후 FAIL이 났습니다.수업 모범답안과 좀 다른 컨셉으로 풀이를 했습니다.모범답안: size크기의 정사각형 영역에서 좌측 상단 값과 다른 것이 하나라도 나오면 4분할 하여 한 단계 더 들어간다.제 풀이 : 문제 설명에 있는 그대로 이용했습니다.size영역안에 총 합 0 => 0리턴size영역안의 수가 모두 1 => 1리턴그 외 경우 => 4분할하기어느 부분에서 잘못 코드를 작성했는지 조언을 받고싶습니다.그리고 문제예시를 만족했으나 100%통과를 하지 못하는 경우, 오류를 찾는 선생님의 노하우가 있다면무엇인지도 궁금합니다.
-
미해결모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1
jsp 업로드 기능 실행 시 오류가 발생합니다
안녕하세요! 항상 수업 잘 듣고 있습니다jsp에서 파일 업로드 기능을 구현하다가 계속 에러가 발생하는데 원인을 잘 모르겠어서 글 남깁니다 <index.jsp> <upload.jsp> <파일 업로드 실행 시 500에러 발생>
-
미해결면접과 취업을 부르는 '퍼블리셔 개인 포트폴리오 홈페이지' 제작
slide-inner에 font-size
안녕하세요 강사님, 강의 잘 듣고 있습니다!코딩미션 1-3 중에 질문이 있습니다.슬라이드 마지막 사진이 안 나타나서 hidden을 풀고 보았더니이런식으로 마지막 사진이 다음 줄로 밀려서 배치가 되어있더라구요.나란히 배치하려고 이것저것 해봐도 안되길래 코드 비교를 하다가.slide-inner { font-size: 0; }이렇게 font-size를 적어주었더니바로 나란히 배치가 되더라구요.font-size를 적고 안 적고에 따라 사진 배치가 이렇게 되는 것이 제가 알고 있던 font-size의 역할과 달라 궁금하여 질문 남깁니다.혹시 왜 이렇게 되는 것인지 알 수 있을까요?
-
미해결Do it! 자바 프로그래밍 입문 with 은종쌤
Main 함수 저번 강의 거가 나와요
23분경 강의 총점 계산 할 때 Main함수가 저번 강의거가 나오고 지금 것은 나오지 않습니다.. 저번 강의거 지워야 하나요
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
아틀라스에 counter이 추가되지않습니다..
왜이럴까요 ㅠㅠ...리프레쉬는 당연히 했습니다.
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
rolling update 중 time out error
안녕하세요.http-go 이미지를 바꿀때마다 순단이 일어나는데요rolling update 컨셉을 보면 순단이 일어나면 안될 것 같은데 이유가 뭘까요?Welcome! v2 Welcome! v1 Welcome! v2 wget: can't connect to remote host (10.8.1.107): Connection timed out Welcome! v2 Welcome! v2 Welcome! v2 ... Welcome! v2 Welcome! v3 Welcome! v3 Welcome! v3 wget: can't connect to remote host (10.8.1.107): Connection timed out Welcome! v3 Welcome! v3 Welcome! v3 ...두 번 모두 모든 트래픽이 새로운 어플리케이션 버전이 배포된 pod 로보내지기 전에 순단이 1회 발생합니다!
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
렌더링질문
강의 12:13 부분에서 setProducts(products)로 인해서 products가 업데이트됐고, state업데이트되서 다시 렌더링이 일어나는 구조가 계속 반복되는데Q1 ) 코드가 다시 렌더링 일어날 때, function MainPage() 함수의 처음부분 const [products, setProducts] = React.useState([]); 부터 맨 끝까지 업데이트가 되는건가요?Q2) 강의에서 setProduct부분에서 다시 렌더링이 반복된다고 했는데처음부터 setProducts(product)부분까지만 반복되고 맨 위로 다시 가는 구조라면, 아래 부분 코드-이미지들이 어떤 구조로 출력되는건가요?
-
미해결모두의 깃 & 깃허브
Revert는 바로 직전의 버전으로만 되돌리기가 가능한가요?
안녕하세요소스트리로 Revert와 Reset을 연습해 보다가 질문을 드립니다.Revert의 경우 바로 직전으로 버전으로만 되돌리기가 가능한가요?1-2-3-4 개의 버전이 있고 현재 4버전이라고 할 때, 2번째 버전을 오른쪽 클릭하고 커밋 되돌리기를 해봤는데 컨플릭트가 납니다. 강의영상에서도 Revert는 직전 버전으로만 되돌리는데 제가 한것처럼 바로 직전의 버전 보다 더 이전의 버전으로 Revert 할 수는 없는지 궁금합니다.