스택의 크기는 컴파일 타임에 결정되므로 정적 할당 영역 이다. 스택의 크기는 런타임에 크기가 변할 수 있는 동적 항당 영역이다. 스택의 크기는 컴파일 타임에 결정되므로(예로 100) 정적할당이면서, 런타임에 스택에 데이터가 저장됨에 따라 스택의 크기는 10, 20, 30, 20, 15 이런식으로 변할 수 있으니까, 동적 할당 영역이기도 하다. 특정 책에서는 스택을 동적 할당 영역이라고 설명하고, 특정 대학 강의에서는 스택은 컴파일 타임에 크기가 결정된다고 설명합니다. 해당 강의에서는 이에 대한 내용이 없는 것 같은데, 어떤 설명이 맞는건지 궁금합니다.
강사님 좋은 강의 감사합니다. 정확하게 이해를 하지 못해서 질문을 남겨봅니다. cpu에서 실행 단위가 쓰레드라고 말씀해주셨는데 cpu가 쓰레드를 하나씩 대기 큐에서 코어가 감당할수 있는 쓰레드만큼 꺼내서 실행하고 다음 쓰레드를 실행한다고 이해를 했습니다. 멀티 태스킹은 하나의 os안에 여러 프로세스가 실행이 가능하게 한다는 의미로 이해를 했는데 그러면 프로세스 A 안에 있는 쓰레드 A-1, A-2,A-3이 있고 프로세스 B안에 있는 쓰레드 B-1,B-2,B-3가 있다면 대기큐에 [ A-1,A-2,A-3,B-1,B-2,B-3 ] 있다고 할때 CPU 코어가 3개라면 A-1,A-2,A-3 쓰레드를 꺼내서 실행하고 빠르게 B-1,B-2,B-3를 꺼내서 실행하는걸 반복하다보니 사용자 입장에서는 A,B 프로세스 둘 다 같이 동작하느거처럼 느낀다고 보는걸까요?
compile 단계 - stack 메모리 할당인가요? runtime 단계 - heap 메모리 할당인가요? => https://midi-mandolin-36f.notion.site/Array-33d866e5193f49789dd2079c75412f96 해당링크에 정리해두었습니다~!
class Singleton { private static class singleInstanceHolder { private static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return singleInstanceHolder.INSTANCE; } } 여기서 처음에 JVM이 클래스 로드할 때 static으로 선언된 singleInstanceHolder가 초기화 되면서 안에 들어있는 static 변수도 함께 초기화 되는 게 아닌가요? static 클래스 안에 있는 static 변수는 많이 안 접해봐서 헷갈립니다.
강사님 안녕하세요. 강사님 강의를 쭉 보다가 의문이 생겨 질문 드립니다. 네트워크 통신에서 소켓이 파일이라 하셨는데 이 부분이 이해가 가지 않습니다. 파일이라 함은 2차 메모리에 저장되는 포맷(파일이라는 형태로 저장된다고 말씀하셨습니다.) 아닌가요? 하지만 소켓 통신은 Ram 수준에서 버퍼를 통해 통신하지 않습니까? '소켓의 본질은 파일이다.' 가 무슨 의미인지 이해가 가지 않습니다.
WslRegisterDistribution failed with error: 0x80370102 Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS. For information please visit https://aka.ms/enablevirtualization 이 에러가 뜨고 윈도우에 설치시 발생하는 오류(wslregisterdistribution failed with error: 0x80370102) 해결 ( codeit.kr ) 이 페이지에서 하라는대로 다 하고 bios 모드에서도 svm을 enabled 로 설정해주엇는데도 계속 같은 에러가 반복됩니다. 어떻게 해결할 수 있나요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 데이터베이스 정규화 과정 중에서 제1정규형에 대해서 질문이 있습니다. 정규화과정 #3. 제 1정규형에서 나온것처럼 릴레이션의 속성 값 중에서 한개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합이 있다고 했을때, 이번트 번호가 기본키 역할을 할 것이라고 생각하는 것이고, 당첨여부가 반복집합이라고 생각하면 될까요? 그리고 이 때 이벤트 번호 221006-1로는 당첨여부 Y,N,Y 중 어떤 것을 선택해야 할지 모르니 1정규화를 진행해야 하는 것일까요? 그리고 프로그래머스에서 문제를 풀다가 ,로 구분된 options라는 것에 대해서도 질문을 드리고자 합니다. car_id, options 컬럼이 있고 이 때 car_id는 1부터 증가하는 숫자로 options는 콤마로 구분되어 선루프, 하이패스 기능, 베이비시트 이런식으로 값이 있다고 한다면 이것도 car_id라는 기본키에 반복집합이 있으니 정규화를 진행해야 할까요?? 그런데 만약 그렇게 한다면 car_id, options 1, 선루프 1, 하이패스 기능 1, 베이비시트 이런 형식으로 다시 1이라는 기본키가 중복되어서 기본키 역할을 못하는 것 같습니다. 그래서 이 부분에서 다시 의아함을 가지고 있습니다. 혹시 제가 어떤 부분을 놓친걸까요?;;
멀티 프로세싱과 멀티 프로그래밍의 개념이 헷갈리네요.. 구글링을 통해 다수의 글을 확인했을 때, 수업 내용에서 말한 하나의 CPU에서 시분할을 통해 여러 프로세스의 실행하는 것을 멀티 프로그래밍이라 정의했습니다. 또한 멀티 프로세싱은 여러 개의 cpu가 서로 협력하여 여러 프로세스를 실행한다고 정의되어 있습니다. 수업 내용 그대로 이해하면 될 지 모호하네요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 릴레이션이 테이블이면 엔터티는 객체 하나를 말하는 건가요? 예를 들어 학생 테이블이 있고 속성이 이름, 나이 전화번호가 있을때, (철수, 21, 010-1234-5678)이 엔터티이면 이를 저장하는 곳이 테이블인건가요???
수업 도중에 여담으로 설명해준 내용에 대해 의문이 생겨서 질문글을 남기게 되었습니다. 멀티코어 프로세서로 데이터를 처리할 때, 각각의 코어 내부에 탑재되어 있는 캐시메모리(L1, L2)가 있다고 설명해주셨습니다. 작업 도중에 메모리와 캐시메모리에 저장되어있는 내용(데이터)가 변경되는 것은 데이터 처리의 자연스러운 흐름이라 이해가 됩니다. 그러나 코어1에 있는 캐시메모리의 내용이 바뀌게 되면 왜 코어2에 있는 캐시메모리가 알아야 하는지 이해가 되지 않아 질문을 남기게 되었습니다. 제가 이해한 것은, 멀티코어는 데이터처리를 더 빠르게 하기 위한 설계이므로, 같은 데이터가 아닌 다른 데이터를 처리하는 것이 유리하다고 생각합니다. 그래서 코어1에 있는 캐시메모리와 코어2에 있는 캐시메모리는 독립적인 관계라고 생각이 듭니다. 수업시간에 말씀해주신 데이터 일관성과 각 코어에 있는 캐시메모리의 데이터 처리와의 관계가 어떤것인지 자세하게 알고싶습니다.
안녕하세요. 강의 잘들으면서 많은 도움 받고 있습니다. 부모 프로세스가 fork()를 통해 자식 프로세스를 생성하고, exec()를 호출하여 새로운 프로그램으로 덮어씌어진 후, 부모 프로세스와 자식 프로세스가 병행 실행된다고 하신 것으로 알고 있습니다. 이때 병행 실행의 의미가 부모 프로세스와 자식 프로세스 둘 다 실행상태라는 의미인지, 아니면 그냥 자식프로세스가 프로세스 목록에 추가된다는 의미인지 궁금합니다.
제가 깊게 몰라서 이런 질문 드리는 것일지 모르겠지만 CPU 자체에 음수와 양수를 구분하기 위한 플래그가 있다면 굳이 2의 보수법으로 음수를 표현하기 보다는 그냥 그 수 자체에 음수라는 플래그를 달아서 단순히 표현하는 것이 더 낫지 않나요? 예를 들어서 0101(2) 가 플래그를 음수로 달고있으면 -5라고 바로 인식할 수 있는 것인데 괜히 복잡하게 2의 보수법을 사용해서 0101(2)가 플래그를 음수로 달고 0101(2)라는 것을 또 1011(2)의 음수로 인식을 해서 CPU가 일을 두 번 하게 만드는 것이 아닌가 해서 여쭤봅니다.
클라이언트 -> 서버로 데이터를 보낼때 L4, L7 스위치를 이용해서 L7 : URL등을 이용한 서버부하를 분산하는 기기, 트래픽분산 L4: TCP나 UDP 프로토콜의 헤더를 보고 스위칭한다. 로드 밸런싱이 가능 및 전송계층의 TCP, UDP 등의 헤더를 기반으로 우선순위를 판단해서 분산이 가능 하다고 하는데 근데 제가 이해한 바로는 TCP/IP 4계층이나 OSI 7계층에서 http 프로토콜 밑에 TCP/UDP계층으로 가고, IP계층 내려가 물리계층을 타고 서버에 있는 물리계층쪽에서 목적지에 도착 후 다시 헤더를 제거하면서 응용어플리케이션계층까지 오는 걸로 알고있습니다. 궁금한거는 로드밸런싱은 처음 애플리케이션 계층에서 한번만 수행하면 되는거아닌가요? 왜 L4에서 트랙픽분산을 또 하는건가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. secure https로만 쿠키를 주고받을 수 있게 하는 옵션입니다. 그러나 Chrome 52 이상 및 Firefox 52 이상을 포함한 일부 브라우저는 보안을 강화하고 안전하지 않은 사이트(HTTP)가 Secure 지시문으로 쿠키를 설정하는 것을 금지하기 위해 이 사양을 현재는 무시합니다. 라고 되어있는데, 왜 http가 secure지시문으로 쿠키를 설정하게 하는것을 금지하는것인가요?