당장은 돈이 딸려 넓고얕게 공부하는 컴퓨터구조 강의를 구입하지는 못 한 학생입니다. 챗gpt를 이용해서 모르는 부분을 채워나가고 있었으나, 그래도 제대로 이해가 안 되는 부분을 채워가고싶어 질문 드립니다. 일단 제가 알고 있는 전제부터 깔고 가겠습니다. 1.모든 메모리 공간은 하나당 1바이트의 크기를 가지고있는걸로 알고 있습니다. 그리고 해당하는 1바이트의 메모리 공간마다 주소를 갖고있는 걸로 알고있습니다. 2. 64비트 아키텍쳐 cpu는 주로 8바이트 단위로 메모리 주소를 처리하는 걸로 알고 있습니다. 그러나 1바이트 단위로도 메모리를 처리할 수 있는 걸로 알고 있습니다. 질문 내용- 1. 일단 위에 알고있는 내용이 사실인지 궁금합니다. 2. 변수로 지정할 수 있는 메모리 최소 크기가 1바이트인 이유가 위와같은 이유 때문인가요? 그리고 최대크기도 8바이트인걸로 아는데 위와같은 이유때문인가요? 3. 머신코드 == 어셈블리어 인가요? 아니면 머신코드는 원래 이진수 코드만을 의미하는건데 이제는 어셈블리어를 사람들이 쓰지 않으니깐 머신코드라고 통합해서 지칭하는건가요? 영상을 다시 봐도 이해가 잘 안가네요.
안녕하세요. test를 하던 중 오류가 발생하여 문의드립니다. 지금 현재 코드를 import { setupServer } from "msw/node"; import { apis } from "./apis"; export const server = setupServer(...apis); 위에처럼 입력해 놓은 상태입니다. 하지만 테스트 실행 시 아래와 같이 발생합니다. Cannot find module 'msw/node' from 'src/commons/mocks/index.js' Require stack: src/commons/mocks/index.js jest.setup.js > 1 | import { setupServer } from "msw/node"; | ^ 2 | import { apis } from "./apis"; 추가적으로 지금 jest관련 페이지에서 Parsing error: ESLint was configured to run on `<tsconfigRootDir>/src\commons\mocks\index.js` using `parserOptions.project`: <tsconfigRootDir>/tsconfig.json However, that TSConfig does not include this file. Either: - Change ESLint's list of included files to not include this file - Change that TSConfig to include this file - Create a new TSConfig that includes this file and include it in your parserOptions.project See the typescript-eslint docs for more info: https://typescript-eslint.io/linting/troubleshooting#i-get-errors-telling-me-eslint-was-configured-to-run-- 위와 같은 오류가 발생합니다. 해결 부탁드립니다!
교정하면 Service Class에서 Repository를 이용해서 Member를 가져옵니다. Repository는 MemberEntity를 Member로 변환한 도메인 모델을 반환해야 합니다. 서비스는 MemberEntity를 알지 못해야 합니다. 이렇게 말씀해주셨는데 1 .이렇게 분리하는 이유는 서로의 결합을 낮추기 위해서인가요? 이렇게 분리를하면 어쩔수없이 서비스 메서드 안에 도메인클래스로 변환하는 로직이들어가 오히려 코드가 길어져서 가독성을 해치지는않나요? 현재 저는 서비스에서 레파지토리에서 엔티티를 가져온후 dto 객체로 변환시켜서 (바로 변환을 시키거나 어셈블리라는 클래스를 만들어 여기서 변환 작업을 따로해주는 객체를 만들거나) 컨트롤러로 넘겨줍니다. 보편적으로 이방식을 많이했는대 따로 도메인 클래스를 생성해서 변환해서 비즈니스로직을 처리하고 dto 객체로 넘겨서 컨트롤러로 전달하는지 왜? 이런건지 좀더 자세히 설명해주시면감사하겟습니다 ( 제가 수업을 좀더 열심히듣지않아 질문이 무례한게있음 용서해주세요 ㅠ ㅠ)
안녕하세요! 강의를 듣고 추가적으로 게시글을 기준에 따라 순위를 나눠 정렬하고 싶은데 어떤 방식으로 접근하면 좋을까요? 댓글 수를 카운트하고, 각 게시글 아이템 요소들을 비교해서 정렬을 하고 싶은데 요소 비교를 어떻게 해야할지 감이 안잡힙니다. 예를 들어 리스트뷰에서 댓글순으로 정렬을 한다면, 어떻게 하면 좋을까요?
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { // TO DO : q가 입력될 때까지의 입력받은 모든 정수 합 출력 // 1. 준비 int input = 0; // 입력을 저장할 변수 int sum = 0; // 합계를 저장할 변수 int status = 0; // scanf의 반환값(입력값의 갯수)을 저장할 변수 // 2. 입력 printf("Enter an integer (q to quit) : "); status = scanf("%d", &input); // scanf()의 동작 // 입력받은 값이 형식 지정자의 형식과 일치할 경우 입력으로 취급하여 입력값의 갯수 반환 // 입력받은 값이 형식 지정자의 형식과 일치하지 않을 경우 입력으로 취급하지 않으며 0을 반환 // * 성공적으로 스캔된 입력의 갯수 확인용 printf("%d\n", status); // 3. 반복 while (status == 1) { // scanf()의 반환값이 1일 때만 반복 // 현재 루프에 대한 처리 sum = sum + input; // 다음 루프 printf("Enter next integer (q to quit) : "); status = scanf("%d", &input); } // 4. 출력 printf("SUM = %d\n", sum); }; 1 2를 입력하니 "Enter next integer (q to quit) : " 문장이 2개 출력되었지만 1 2를 모두 입력으로 인식했는지 바로 sum을 출력했을 때 3이 출력됬습니다. 다음으로 1 2 3 4 5를 입력하니 "Enter next integer (q to quit) : " 문장이 5개 출력되었지만 sum을 출력해보니 10이 출력됬습니다. 저는 scanf의 형식 지정자와 값을 저장할 변수를 하나만 지정 했는데 왜 5개 입력에 대해서 5번 루프를 실행하고 sum의 값이 정상적으로 출력되었는지 잘 이해가 안되서 질문 드립니다.. 그리고 scanf()는 입력한 값의 형식이 형식 지정자의 형식과 일치할 경우 스캔에 성공한 입력의 갯수를 반환한다고 배웠는데 중간에 scanf의 반환값을 printf()해서 성공적으로 스캔된 입력의 갯수 를 확인해 봤을 때 형식에 맞는 변수를 여러 개 입력해도 1이 출력 되던데 이유가 뭘까요,,??
"NEXT_PUBLIC_" prefix 는 Browser를 위한거라 서버컴포넌트에서는 반드시 넣을 필요는 없는 것 같네요ㅎㅎ https://nextjs.org/docs/app/building-your-application/configuring/environment-variables#bundling-environment-variables-for-the-browser
강사님.. ㅎㅎ 제가 또 작성했는데 결과값이 다르게 나와서요 ㅜㅜ 한번 검토 부탁드립니다!! 제 결과값은 79가 나왔어요! 정답은 56이구요!! # your code import pandas as pd import numpy as np df=pd.read_csv('members.csv') # df.head() # 주어진 데이터에서 결측치가 30%이상 되는 컬럼을 찾고 해당 컬럼에 결측치가 있는 데이터(행)를 삭제 함. # print(len(df)) # 100 # 결측치가 30% 이상 = 30개 이상 # print(df.isnull().sum()) # f1 - 31개 , f3 -28개, views-4개 확인 # 따라서 f1은 결측치 있는 행 제거, f3은 최빈값으로 값 대체 df['f1'] = df['f1'].dropna() df['f3'] = df['f3'].fillna(df['f3'].mode()[0]) cond = (df['f3'] == 'gold') ans = len(df[cond]) print(ans)
자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)
ArrayList<String> a = new ArrayList<>(); a.add("1"); a.add("2"); a.add("3"); int[] arr = {1, 2, 3}; arr[0] = 4; // 가능 a.get(0) = "one"; // 불가능 위와 같이 배열도 ArrayList 객체도 모두 Reference type입니다. 배열에 대한 인덱스 접근은 r-value, l-value로 모두 기능할 수 있는데 ArrayList에 대한 get()은 r-value(값으로만 사용)로써만 기능하고 있습니다. get()의 반환형이 E로 제네릭(객체)인데 read only로 취급되는건가요...? get()으로 해당 위치를 참조하는게 아닌건가요? 해당 메모리가 아닌 메모리의 값을 꺼내오는건가요? HashMap<String, String> h1 = new HashMap<>(); h1.put("1", "one"); h1.get("1") = "하나"; // 불가능 다른 컬렉션 프레임워크지만 동일한 문제입니다. put(key, value)를 사용해 값을 저장하고 get(key)를 사용해 value를 가져올 때 get()으로 값을 바꿀 수는 없는 건가요? HashMap<String, ArrayList<String>> hashMap = new HashMap<>(); hashMap.get(date).add(Obj); // 가능 이 경우에는 get()으로 참조한 메모리에 대해 다시 참조하여 메서드 사용이 가능했습니다. 이러한 동작이 get()으로 값을 반환하는 것이 아니라 객체 메모리에 접근한다고 생각했습니다. 위에 질문과 함께 조금 더 직관적인 질문 드립니다. public static void main(String[] args) { // Calendar calendar = new Calendar(); // calendar.run(); HashMap<String, String> h = new HashMap<>(); h.put("1", "before"); System.out.println(h.get("1").equals("1")); // 참조하여 메서드 동작 확인 h.get("1") = "after"; // 불가능 => 왜 안되는지? String str = "before"; System.out.println(str.equals("before")); // 참조하여 메서드 동작 확인 System.out.println(str); str = "after"; // 변경 가능 => 왜 되는지? System.out.println(str); } 위 코드에서 각각 get()과 참조 변수 자체로 접근하였습니다. get()으로는 메서드까지는 접근이 가능하나 값 변경이 안되었고 참조변수는 메서드 접근은 물론 값 변경(엄밀히 말하면 참조 변경)까지 되었습니다. 이유가 궁금합니다. 감사합니다.
[질문내용] 약 3분 40초 쯤에서 private static 에서 static 을 사용안하면 따로 클래스를 new 를 사용해서 임포트(?) 할 때 store나 sequence 가 새로 생성된다 하셨는데... static을 사용해야만 클래스를 new 로 생성해도 쌓인 값이(?) 유지 되기 때문에 사용하는게 맞을까요?
영상 마지막에 나온것처럼 PK에 해당하는 칼럼의 값을 프로그래머를 위해 넘겨주어야 한다고 말씀하신거처럼. 클라이언트 화면에서는 임의의 식별자 데이터는 렌더링하지는 않지만 사용자(클라이언트 프로그램)가 어떤 데이터를 요청할 때 클라이언트는 해당 데이터(레코드)에 해당하는 PK의 값을 서버에 전달. 과 같은 방식일까요? 질문이 조금 매끄럽지가 않은것같아 좀 더 말해보면 에로들어 도서 관리 DB의 도서(Book)테이블에 PK가 도서 번호(1,2,3,4..)이며 나머지 속성은 책 이름, 출판사 등의 속성을 가지고 있고, 책 테이블의 도서 번호를 참조한 자식 관계를 가진 대여 기록 테이블이 있을 때 사용자가 'RDBMS Modeling 기초'라는 책의 대여기록을 보고싶어서 해당 책이름을 클릭하면 내부 코드에서는 클라이언트 코드에서는 해당 책의 PK인 책번호를 서버에게 전달 후 서버는 해당 책번호를 통해 대여기록 테이블과 JOIN하여 클라이언트에 응답. 과 같은 방식이 일반적인지 궁금합니다
제가 코드를 이렇게 작성했는데 강사님의 답은 3261이고 제 답은 3661입니다. 코드를 보면 강사님의 코드와 동일한 결과값이 나와야하지않나..하고 생각이 드는데 어디가 틀렸는지 한번 검토 부탁드립니다.!! # your code import pandas as pd import numpy as np data = pd.read_csv('members.csv') data.head() # f1 컬럼 결측치 중앙값으로 대체 f1_median = data['f1'].median() data['f1'] = data['f1'].fillna(f1_median) # 나머지 결측치 있는 데이터 모두 제거 data = data.dropna() # print(data.isnull().sum()) # 앞에서부터 70% 데이터 중 views 컬럼의 3사분위 수에서 1사분위 수를 뺀 값을 구하시오 (단, 데이터 70% 지점은 정수형(int) 변환) view70 = int(len(data)*0.7) # print(view70) data = data.loc[:view70] Q3 = data['views'].quantile(0.75) Q1 = data['views'].quantile(0.25) ans = Q3 - Q1 print(ans)
노드 버전때문에 eslint가 설치되다가 중간에 오류가 났습니다. 그래서 오류 내용이 노드 16버전이나 18버전 이상을 써라고 하는거 같더라고 지금 17.3.1버전이고요, 그래서 nvm use 명령을 사용해서 18.15버전을 사용해서 설치 했더니 그때부터 parser 오류가 계속 나더라고요..ㅠㅠ parser 오류를 없애려고 하니, eslint가 작동을 안하는거 같고 도와주세요 아래에 tsconfig.json, eslintrc.js, package.json, 그리고 경로 사진을 첨부하여 드립니다. 어떻게든 구글 검색으로 할려고 했으나... 도대체 어느버전이 호환이 안되는건지 모르겠네요 ㅠㅠ eslint 설치시 오류난 상황 캡처 사진입니다. 파일 경로 캡처입니다. tsconfig 캡처입니다. package.json 캡처입니다. eslintrc.js 캡처입니다.