안녕하세요. 최호성 선생님. 현재 좋은 강의 잘 수강하고 있습니다. 넓고 얕게 외워서 컴공 전공자 되기 강의중 섹션1 - 외워야 할 단위 체계 #2 부분에서 이해가 안 되는 부분이 있습니다. 비슷한 질문을 강의 내 커뮤니티에서도 참고를 했는데도 약간 이해가 안 돼서 직접 문의드립니다. 16비트의 경우 65,536가지의 경우의 수가 있고, 65,536 Bytes로 단위가 올라가면서 64KB가 된다고 하셨는데 단위가 올라가는 개념은 이해가 되나 메모리에서 데이터를 다루기 위한 최소 단위가 1바이트이고 1바이트는 곧 8비트를 의미하는 것으로 압니다. 그럼 16비트 자체는 2바이트라고 볼 수 있을 텐데 강의에서 알려주시는 16비트는 65,536가지의 경우의 수가 65,536 Bytes가 되는 개념이 '1바이트를 관리하기 위한 메모리 주소가 총 65536개 있음'이라고 질문 글에 답변 주신 것을 봤습니다. 16비트 -> 2바이트 16비트 -> 65,536바이트(메모리 주소 개수) 이렇게 놓고 본다면 위의 16비트 -> 65,536 바이트라는 개념에서 바이트->비트 단위로 다시 계산해 본다면 524,288비트로 계산이 되어서 위 2개의 경우가 서로 다른 개념이라고 생각이 되기는 하는데.. 어떻게 다른 개념인지 이해가 잘 안됩니다. '16비트 -> 2바이트'는 단순 메모리 저장 단위 개념? '16비트 -> 65,536바이트'는 운영체제 내부에서 메모리 사용되는 값의 개념? 이렇게 두 가지가 다른 경우라고 이해하는 게 맞을까요? 말씀처럼 넓고 얕게 외우고 싶은데 이 부분은 헷갈려서 어떻게 얕게 외워야 할지 모르겠습니다... 개념이 제대로 안 잡혀서 질문을 제대로 드렸는지도 모르겠습니다.. 도움 부탁드립니다! 감사합니다.
npx sequelize db:create 명령어 실행 시 이러한 오류가 발생합니다. npm i 와 mysql이 시작된 걸 확인한 후에 npx sequelize db:create 명령어를 실행해도 위의 오류가 발생합니다. 구글링을 통해 찾아서 해결해보려했지만 , 해결이 잘 되지않아 질문을 드립니다.
저는 37번 LRU 문제를 Deque랑 삽입 정렬로 풀었습니다. 삽입 정렬은 강사님 설명대로 반복된 입력값을 정렬시킬 때 사용했습니다. deque는 캐시메모리 크기를 초과할 때 pop(제거)를 위해 사용했습니다. 처음에는 vector로 풀었는데, 이럴 경우 입력값 : 1 2 3 2 6 2 3 5 7 index : 0 1 2 3 4 vector<int> v : 1 6 2 3 5 에서 처음 입력됐던 1이 삭제돼야하는데, vector는 pop_back()만 있어서 앞쪽인 1이 아니라 뒤쪽인 5가 삭제됩니다. 그래서 pop_front() 혹은 pop_back()랑 push_front가 동시에 컨테이너가 없을까 찾아보다가, 양방향 입력/제거 가능한 deque를 사용했습니다! (queue도 앞으로 들어오고 뒤로 나가는 거지만 정렬하기 힘드니까 패스!) 아래 코드 첨부합니다! 최근에 해시 공부하면서 익힌 iterator(반복자)도 사용했는데, iterator가 처음이신 분들은 대충 index처럼 요소 접근하는걸로 이해해주시면 됩니다!(정확히는 주소 접근이지만!) #include<iostream> #include<deque> #include<algorithm> using namespace std; int main() { int S{}, N{}; deque<int> dq; // 중복 값 정렬 cin >> S >> N; for (int i = 0; i < N; i++) { int tmp{}; cin >> tmp; // 중복값 찾기 deque<int>::iterator it = find(dq.begin(), dq.end(), tmp); if (it == dq.end()) dq.push_front(tmp); // 중복 없으면 그냥 앞에서 삽입 else { // 중복값 있다면 // (tmp = *it을 할 필요없음 : 그 값이 그 값이니까) // 하나씩 뒤로 밀기. 제일 앞쪽에 도착하면 it-1을 못하니까 반복 종료 for (it; it != dq.begin(); it--) { *it = *(it - 1); } *it = tmp; } // 제일 뒤쪽 삭제 if (dq.size() > S) dq.pop_back(); } for (int i = 0; i < dq.size(); i++) cout << dq[i] << " "; }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 여기서 Build and run using과 Run tests using을 Intellij IDEA로 설정하면 아무런 에러가 나오지 않고 잘 작동이 되는데, Gradle을 사용하게 되면 에러가 납니다. 이런 에러가 나옵니다. Project Structure의 SDK는 17로 해두었고, 스프링부트 버전은 3.2.1, java는 17입니다. 현재 Gradle 버전은 8.5입니다. 제공해주신 피피티에서는 스프링 부트 3.2부터 JDK 17과 꼭 Gradle을 선택하라고 하셔서 고민이 되어 질문 남깁니다. 그냥 Intellij IDEA를 사용하여 수업을 들어도 괜찮을까요? 에러는 어떻게 해야 해결이 될까요..? 검색해봐도 잘 나오지 않아 여쭤봅니다.
안녕하세요! 강의 수강 중 궁금한 점이 생겨서 질문 드립니다. 해당 부분은 8분 55초 , 15분 24초 입니다! 8분 55초 부분에서 설명하실 때 'useState의 상태변화 함수인 setState는 리렌더가 일어나도 동일한 id를 보장한다' 라고 하시는데 이게 클로저랑 연관있는 설명이 맞을까요? setState가 클로저 특성으로 이전의 상태 값을 기억해서 리렌더가 일어나도 상태 값을 기억해서 state를 바꿔주는..! 그래서 동일한 id를 보장하는게 맞을까요? 15분 24초에서는 'setEmotion에서는 emotion을 받아서 보여주고 있기 때문에 가장 최신의 state를 참조할 필요가 없다. 그래서 함수형 업데이트를 전달할 필요가 없다' 하셨는데 이 부분을 잘 이해 못했습니다..! setEmotion으로 최신의 emotion state를 받으니까 최신의 상태인 건 알겠는데 그래서 함수형 업데이트를 할 필요가 없다는 부분을 모르겠습니다.. 함수형 업데이트가 뭐죠.. 😥 제가 이해한게 맞는지, 틀린 부분있다면 말씀해주시면 감사하겠습니다!!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 프로그래밍 방식으로 서블릿 등록 후 혹시 http://localhost:8080/hello-servlet 호출 할때 허용되지 않는 메서드 나오시는분들은 HelloServlet 에 super.service(req,resp); 호출 되고 있는지 확인 해보세요..!
확인 부탁드립니다. https://www.inflearn.com/questions/1115271/%EC%84%B9%EC%85%9810-rawbuffer%EC%9D%98-result%EB%B2%84%ED%8D%BC-%EC%83%9D%EC%84%B1%EC%8B%9C-%EC%A7%88%EB%AC%B8
병렬 라우팅과 인터셉팅 라우트를 이용하여 작업중에 있습니다. 예를 들어 /product 라는 페이지에서 생성이라는 버튼을 눌렀을때 /product/write/[id] 로 경로는 이동하며, 병렬 라우팅과 모달이 생성되는것까지는 적용이되었고, 모달을 닫을시에는 closeButton에 router.back()으로 /product로 이동이 되는데 확인라는 버튼을 누를때 원하는것은 /product/[id] 로 경로이동 후 모달이 닫히는걸 예상하였는데 현재는 /product/[id] 로 경로 이동만하고 모달은 그대로 남아있습니다. 이럴경우에는 모달을 boolean 으로 따로 경로 이동후 닫히게 작업을 해줘야할까요? 더 좋은방법이나 제공하는 기능이 있을까해서 질문드립니다.
안녕하세요 선생님 그리디 카드점수 문제 경우의수 문의입니다. 입출력 예에서 nums 리스트에 2, 3, 7, 1, 2, 1, 5 에서 왼쪽 맨카드나 오른쪽 끝 카드 중 둘 중 하나만 가져갈 수 있다고 가정하고 가져갈 수 있는 카드의 개수 K가 주어졌을때 K가 4 라면 경우의수가 5개 밖에 나오지 않는다고 강의를 들었는데 5가지 말고 더 나오지 않은가 해서 문의드립니다. 1: 2,3,7,1 2: 2,7,1,2 3: 2,2,1,5 4: 2,1,2,1 5: 2,3,1,2 6: 2,3,1,5 7: 1,2,1,5 이 말고도 4가지 카드를 뽑을 수 있는경우의수는 조금더 나오질 않나요? 제가 잘못 이해하고 있는지 문의드립니다.
안녕하세요! 강의 잘 보고있습니다.이번 강의에서 블루그린배포 개념을 설명해주시며 스케일 업에 대해 알려주셨는데요! 제가 공부했던 얕은 지식을 떠올려보면, 스케일 업 은 기존 서버의 사양 등을 업그레이드해 시스템을 확장 (수직적) 스케일 아웃 은 서버를 여러대 추가하여 시스템을 확장 - 로드밸런싱 동반 (수평적) 라고 배웠던 것 같은데.. 아무튼, 질문의 요점은 블루 그린 배포는 여러 대의 서버가 있는 스케일 아웃 방식 에서 무중단 배포가 가능한 배포 모델이 아니라, 스케일 업 방식 인가요?? 감사합니다!
*Desktop을 질문 검색창에 쳤을 때 나온 글을 읽고 쓴 글입니다. dir 했을 때 Desktop이 안 떠서 바탕화면에 폴더를 만든 후 그 폴더를 Anaconda Prompt 창에 끌고 와서 확인해보니 "(base) C:₩Users₩samsung-user₩OneDrive₩바탕 화면>" 이렇게 떠서 'onedrive 동기화 때문에 그렇구나' 라고 생각을 해서 C드라이브>사용자>samsung-user>OneDrive 순으로 들어가 OneDrive 안에 있는 바탕화면을 복사해서 samsung-user 폴더 안으로 붙여넣기해서 폴더 이름을 Desktop으로 변경하였고 OneDrive는 삭제해서 휴지통에 있는데 (base) C:\Users\samsung-user\Desktop>mkdir python_class 라고 치면 바탕화면에는 폴더가 생성이 안 되고 Desktop 폴더 안에 생성이 됩니다. 또 휴지통에 들어가면 아래처럼 문구가 떠요. 무엇이 잘못된걸까요... 강의에서 나오는 것처럼 하고 싶어서 OneDrive 앱을 제어판에 들어가 삭제했는데 어떻게 여기서 벗어나야할지 모르겠어요..ㅜ