강사님, 안녕하세요. s3 glacier vault lock은 아카이브 데이터를 저장하는 컨테이너이고 s3 object lock은 객체가 일정 시간 동안 삭제되거나 수정이 되지않도록 읽기만 하게 하는 기능이라고 돼 있는데. s3 glacier vault lock은 컨테이너고 s3 object lock은 기능인가요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. try{ Child child1 = new Child(); Child child2 = new Child(); child1.setName("자식1"); child2.setName("자식2"); Parent parent = new Parent(); parent.setName("아빠"); parent.addChild(child1); parent.addChild(child2); em.persist(parent); em.flush(); em.clear(); System.out.println("parent = " + parent.getName()); tx.commit(); }catch (Exception e){ tx.rollback(); }finally { em.close(); } (영속성전이를 설정해둔 상태입니다 em.flush()하는 순간 insert쿼리가 3번나가고 clear()에서 영속성 컨텍스트를 초기화 하니까 아래 parent를 println으로 찍을 때 select쿼리가 나가야 할 것 같은데 따로 안나가고 그대로 아빠라는게 찍히는데 왜 이런걸까요? 이건 그냥 영속성컨텍스트와 무관한 객체의 값을 찍은걸까요?
#include <stdio.h> #define ROWS 3 #define COLS 4 int sum2d_3(int* arr, int rows, int cols); int main() { int data[ROWS][COLS] = { {1,2,3,4},{5,6,7,8},{9,0,1,2} }; return 0; } int sum2d_3(int *arr, int rows, int cols) { int r, c, tot = 0; for (r = 0; r < rows; r++) for (c = 0; c < cols; c++) tot += *(arr + c + cols * r); return tot; } 여기서 data 는 포인터 연산시 자료형이 int(*)[4] 주소자료형입니다. 2차원 배열 data 를 함수의 안에 넣고 매개변수 int *arr 로 사용할때 tot += *(arr + c + cols * r); 를 보면 마치 배열 arr 가 1차원 배열인것처럼 사용되고 있습니다. Q.2차원 배열은 함수안에 들어가면 1차원배열처럼 포인터 연산이 되는건가요? 감사합니다.
mac os 환경에서 utm에 ubuntu 설치해서 사용중입니다. 고정 IP할당하는 부분에서, 강의는 virtual box로 설명되어 세팅값 설정하는데 어려움이 있습니다 구글링 해봐도 "utm ubuntu 수동 ip 설정" 관련해서는 따로 자료가 없어서요! ㅠㅠ utm > edit selected vm > Devices > 네트워크 > 고급 설정 보기 다음에 어떤걸 설정해야되는지 모르겠습니다!
안녕하세요 큰돌님 이 문제 제가 이해를 못하고 있는게 있는데요 일단 결론부터 말하면 info[2][500000] 처럼 배열을 2차원으로 만들어서 홀,짝 시간으로 분할해서 문제를 푸는것과 그냥 info[500000]로 각 배열 요소에 시간을 기록해서 배열을 순회하면서, 홀짝 구분해서 답을 찾는거랑 무슨차이인지 잘 모르겠습니다. 일단 아래 제풀이는 틀렸습니다. 주어진 테스트 케이스는 맞는데 백준게시판 반례들 몇개가 틀리게 나오는데요... (ex 입력 27297 339652 --> (답 : 425 , output : 426) 대부분 1~2 차이로 틀립니다. 이것 저것 다른 답안들이랑 비교하면서 디버깅해보면 info 배열을 구성하는과정에서 틀린게 있는것 같은데요....... 위에 굵게+기울임 글씨체로 쓴 부분 처럼 1차원,2차열 두가지 배열이 정확히 어떤차이가 있는건지 잘 모르겠습니다. 예를들어서, 제가 생각하기에는 2차원 배열을 통해서 홀수,짝수 시간을 구분할 경우에는 특정 지점 A에서 무조건 info[0][A], info[1][A] 둘중에 하나만 값을 가져야 한다고 생각하는데 제가 틀렸나요?(왜냐면 BFS를 통해서 최단경로를 찾으니까 info[0][A] info[1][A]에 두개에 값이 기록될수가 없음) // Example program #include <iostream> #include <string> #include <vector> #include <algorithm> #include <queue> #include <stack> #include <unordered_map> #include <map> #include <limits.h> using namespace std; int n,k; int info[500002]; // 수빈이 위치,시간 정보 queue<int> q; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n>>k; fill(&info[0], &info[500001], -1); if(n==k){ cout<<0<<'\n'; return 0; } //------------------------------------------------------------ // BFS로 수빈이 위치 전부 구하기 else { q.push(n); info[n]=0; while(q.size()){ int prev=q.front(); q.pop(); for(int next :{prev-1,prev+1, prev*2}){ if(next<0 || next>500000) continue; if(info[next]!=-1) continue; info[next]=info[prev]+1; q.push(next); } } //-------------------------------------------------------------- // 동생위치를 구하면서 -> 동생,수빈이 위치가 같아지는 지점을 찾음 -> // 그리고 수빈이가 소모한 시간이 동생보다 적거나 같으면 -> 시간차이가 짝수인지 확인 int pos=k; // 동생 초기 위치 int t=0; // 초기 시간 while(pos<=500000){ if(info[pos]<=t){ // 특정 동일위치에서 수빈이가 소모한 시간이 더 적을때 if((info[pos])%2 ==0 && t%2==0){ //둘의 시간이 짝수이면(=시간 차이가 짝수면) cout<<t<<'\n'; break; } else if((info[pos])%2 && t%2){ //둘의 시간이 홀수이면(=시간차이가 짝수면) cout<<t<<'\n'; break; } } t++; pos+=t; } if(pos>500000) cout<<-1<<'\n'; } }
선생님 안녕하세요 ! 강의를 듣는 중 궁금한 점이 있어 질의 드립니다. section04 - 각각의 객체에 개별 애니메이션 적용하기 영상에서 let bar를 for문 밖에 선언하고 for문 안에서 document.createElement를 할당한 이유가 있을까요? for문 안에 같이 선언하면서 할당하는 코드와 어떤 부분이 다른지 잘 모르겠어서 질의 드립니다. const bars = []; let bar; for(let i = 0; i < 30; i++){ bar = document.createElement('div'); bar.classList.add('bar'); barContainer.appendChild(bar); bars.push(bar); }
안녕하세요. 강의 잘 듣고 있습니다. 강의를 보다가 이해되지않는 부분이 생겨 질문 드립니다. 하드디스크에 쓰기요청을 할 때 SSD는 HDD와 달리 물리적 장치를 사용하지 않기때문에 메모리 위치에 상관없이 빠르게 접근할 수 있는 것으로 알고있습니다. 그래서 1번 위치(995MB)에 접근해서 4byte를 쓰는 것과 1번 위치(100MB)위치에 4byte를 쓰는 것이 별로 차이 나지 않을 것이라 생각하는데요. HDD도 디스크의 외곽에 위치한 곳에 접근하는 것이 가장 오래걸린다고 알고 있습니다. 하지만 디스크 외곽에 위치한 곳이 항상 높은 메모리 위치(995MB)는 아닌 것으로 알고 있습니다. 또한 공간확보라는 말씀이 잘 이해가 가질 않네요. 995MB의 위치에 4byte를 쓰는데 왜 995MB의 공간확보가 필요한 것인가요?? 파일이 0~1GB까지 연속적으로 메모리 할당을 해야하는 것인가요? 띄엄띄엄 메모리 할당을 하면 안되는 것일까요?
안녕하세요 이번에 mac을 초기화하면서 다시 재설치를 하고있는데요 brew tap adoptopenjdk/openjdk 를 진행 뒤 brew search idk 를 했을때 이러한 오류가 나오면서 설치 가능한 jdk파일은 나옵니다. 설치 시에 해당 위험 오류와 함께 설치가 안되는데 이유가 있을까요 ? Warning: Calling the appcast stanza is deprecated! Use the livecheck stanza instead. Please report this issue to the adoptopenjdk/openjdk tap (not Homebrew/brew or Homebrew/homebrew-core), or even better, submit a PR to fix it: /opt/homebrew/Library/Taps/adoptopenjdk/homebrew-openjdk/Casks/adoptopenjdk-jre.rb:9 +추가 brew untap adoptopenjdk/openjdk 한 뒤에 brew search idk 를 했을 경우 이렇게 나와서 우선 Formulae 에있는 openjdk 와 openjdk@11 를 다운받았구요.. Azul 사이트에서 java11 arm64bit jdk를 설치해서 자바는 잡아논 상태입니다. 궁금한 점은 brew untap adoptopenjdk/openjdk 했을때의 차이와 Adoptopenjdk차이가 궁금합니다. Azul에서 다운받은 java도 괜찮은건지요 현재 Mac m2 Air 사용중입니다. Ventura 13.5.1 이용중입니당