묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
수정자주입에 관한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 url이 null에 뜨는거에 관해서 질문드립니다.이전에 수정자 주입에 관해서 강의하신거를 보고 이 강의도 다시보고 질문드립니다. 여기서 수정자 주입이 그냥 @Bean밑에 수정자를두면 당연히 그냥 될줄알았는데 구체적으로 왜 안되는지 단계별로 알려주실수있나요? @Autowire가 없어서 안된건가요? 만약 @Autowired를 썻으면 됬을까요? 생성자를 호출하고 setUrl로 들어가는게 안되는건 알거같기도한데 왜 안되는지 구체적으로 질문해도될까요? 12분50초부근에서 보고 제가 이해한게 잘못된거같아서 혼동이 와서 질문드립니다
-
해결됨독하게 시작하는 C 프로그래밍
cpu의 메모리 관리 방법이 이해가 잘 안됩니다.
당장은 돈이 딸려 넓고얕게 공부하는 컴퓨터구조 강의를 구입하지는 못 한 학생입니다. 챗gpt를 이용해서 모르는 부분을 채워나가고 있었으나, 그래도 제대로 이해가 안 되는 부분을 채워가고싶어 질문 드립니다.일단 제가 알고 있는 전제부터 깔고 가겠습니다.1.모든 메모리 공간은 하나당 1바이트의 크기를 가지고있는걸로 알고 있습니다. 그리고 해당하는 1바이트의 메모리 공간마다 주소를 갖고있는 걸로 알고있습니다.2. 64비트 아키텍쳐 cpu는 주로 8바이트 단위로 메모리 주소를 처리하는 걸로 알고 있습니다. 그러나 1바이트 단위로도 메모리를 처리할 수 있는 걸로 알고 있습니다. 질문 내용-1. 일단 위에 알고있는 내용이 사실인지 궁금합니다.2. 변수로 지정할 수 있는 메모리 최소 크기가 1바이트인 이유가 위와같은 이유 때문인가요? 그리고 최대크기도 8바이트인걸로 아는데 위와같은 이유때문인가요?3. 머신코드 == 어셈블리어 인가요? 아니면 머신코드는 원래 이진수 코드만을 의미하는건데 이제는 어셈블리어를 사람들이 쓰지 않으니깐 머신코드라고 통합해서 지칭하는건가요?영상을 다시 봐도 이해가 잘 안가네요.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
MyIcon 에러
다음과 같이 에러가 나는데 이유가 뭔가요 'rev' 속성이 '{}' 형식에 없지만 'Pick<AntdIconProps, "cite" | "data" | "form" | "label" | "slot" | "span" | "style" | "summary" | "title" | "pattern" | "start" | "hidden" | "color" 에서 필수입니다 라고 나옵니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경에서 적용했을 때 결과가 잘려서 보입니다 ㅠㅠ
시험환경에서 적용했을 때 결과가 잘려서 보입니다 ㅠㅠ 아래와 같이 예측구간만 나오고 신뢰구간을 확인할 수 없을 때 모두 보고싶으면 어떻게 하나요 ???
-
미해결[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
Cannot find module 'msw/node' from 'src/commons/mocks/index.js'
안녕하세요. 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--위와 같은 오류가 발생합니다. 해결 부탁드립니다!
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
안녕하세요 아랫분 질문에 서 궁금한점이 있어서 질문드립니다
교정하면 Service Class에서 Repository를 이용해서 Member를 가져옵니다. Repository는 MemberEntity를 Member로 변환한 도메인 모델을 반환해야 합니다. 서비스는 MemberEntity를 알지 못해야 합니다. 이렇게 말씀해주셨는데 1 .이렇게 분리하는 이유는 서로의 결합을 낮추기 위해서인가요? 이렇게 분리를하면 어쩔수없이 서비스 메서드 안에도메인클래스로 변환하는 로직이들어가 오히려 코드가 길어져서가독성을 해치지는않나요?현재 저는 서비스에서 레파지토리에서 엔티티를 가져온후dto 객체로 변환시켜서 (바로 변환을 시키거나 어셈블리라는 클래스를 만들어 여기서 변환 작업을 따로해주는 객체를 만들거나)컨트롤러로 넘겨줍니다. 보편적으로 이방식을 많이했는대따로 도메인 클래스를 생성해서 변환해서 비즈니스로직을 처리하고 dto 객체로 넘겨서 컨트롤러로 전달하는지 왜? 이런건지좀더 자세히 설명해주시면감사하겟습니다 ( 제가 수업을 좀더 열심히듣지않아 질문이 무례한게있음 용서해주세요 ㅠ ㅠ)
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
게시글 요소에 따른 순위 비교
안녕하세요!강의를 듣고 추가적으로 게시글을 기준에 따라 순위를 나눠 정렬하고 싶은데 어떤 방식으로 접근하면 좋을까요?댓글 수를 카운트하고, 각 게시글 아이템 요소들을 비교해서 정렬을 하고 싶은데 요소 비교를 어떻게 해야할지 감이 안잡힙니다.예를 들어 리스트뷰에서 댓글순으로 정렬을 한다면, 어떻게 하면 좋을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
테스트 코드에서 update 메서드 질문입니다.
[질문 내용]package hello.itemservice.domain.item; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.springframework.stereotype.Repository; import java.util.List; import static org.assertj.core.api.Assertions.*; class ItemRepositoryTest { ItemRepository itemRepository = new ItemRepository(); // 동작이 하나 끝날 때마다 AfterEach 실행 @AfterEach void afterEach() { itemRepository.clearStore(); } @Test void save() { //given Item item = new Item("itemA", 10000, 10); //when Item savedItem = itemRepository.save(item); //then Item findItem = itemRepository.findById(item.getId()); assertThat(findItem).isEqualTo(savedItem); } @Test void findAll() { //given Item item1 = new Item("item1", 10000, 10); Item item2 = new Item("item2", 20000, 20); itemRepository.save(item1); itemRepository.save(item2); //when List<Item> result = itemRepository.findAll(); //then assertThat(result.size()).isEqualTo(2); assertThat(result).contains(item1); } @Test void updateItem() { //given Item item = new Item("item1", 10000, 10); Item savedItem = itemRepository.save(item); Long itemId = savedItem.getId(); //when Item updateParam = new Item("item2", 20000, 30); itemRepository.update(itemId, updateParam); Item findItem = itemRepository.findById(itemId); //then assertThat(findItem.getItemName()).isEqualTo(savedItem.getItemName()); assertThat(findItem.getPrice()).isEqualTo(savedItem.getPrice()); assertThat(findItem.getQuantity()).isEqualTo(savedItem.getQuantity()); } }update 코드에서 savedItem 과 업데이트한 Item 의 값을 검증했는데 테스트 통과했습니다.... 왜 그런지 알 수 있을까요?
-
해결됨홍정모의 따라하며 배우는 C언어
한 번에 여러 개의 값을 입력했을 때에 관해 질문이 있습니다.
#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.js - 공식 문서 훑어보기
환경변수 "NEXT_PUBLIC_" prefix
"NEXT_PUBLIC_" prefix 는 Browser를 위한거라 서버컴포넌트에서는 반드시 넣을 필요는 없는 것 같네요ㅎㅎhttps://nextjs.org/docs/app/building-your-application/configuring/environment-variables#bundling-environment-variables-for-the-browser
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
hwp = win32......부터 에러가 발생합니다 ㅠㅠ
이것저것 다양하게 자동화코드 짜보시다가막히면 언제든 무엇이든 질문 던져주세요.업무자동화 코딩은 과학이나 알고리즘과는 조금 달라서고민만으로 풀리지 않는 경우가 대부분입니다.저도 최대한 빠르게 회신 드리겠습니다>>> import win32com.client as win32>>> hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") Traceback (most recent call last): File "C:\Users\kyj\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\win32com\client\dynamic.py", line 84, in _GetGoodDispatch IDispatch = pythoncom.connect(IDispatch)pywintypes.com_error: (-2147221005, '잘못된 클래스 문자열입니다.', None, None)During handling of the above exception, another exception occurred:Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") File "C:\Users\kyj\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\win32com\client\gencache.py", line 621, in EnsureDispatch disp = win32com.client.Dispatch(prog_id) File "C:\Users\kyj\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\win32com\client\__init__.py", line 118, in Dispatch dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch, userName, clsctx) File "C:\Users\kyj\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\win32com\client\dynamic.py", line 104, in _GetGoodDispatchAndUserName return (_GetGoodDispatch(IDispatch, clsctx), userName) File "C:\Users\kyj\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\win32com\client\dynamic.py", line 86, in _GetGoodDispatch IDispatch = pythoncom.CoCreateInstance(pywintypes.com_error: (-2147221005, '잘못된 클래스 문자열입니다.', None, None)
-
해결됨웹 개발자라면 꼭 알아야 할 보안 기초
수업자료는 어디에서 받을 수 있나요?
안녕하세요.수업 잘 듣고 있습니다.수업자료는 어디에서 받을 수 있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
수업노트, 링크첨부가 안보입니다
데이터 분석을 위한 파이썬 기초1에서 수업노트에 링크를 첨부해두었다고 하셨는데 수업노트는 어디에 있나요?수업노트,링크를 찾을 수 없습니다.F&Q에서는 화면 오른쪽 상단에 초록색으로 구름모양 아이콘이 있는데 이 강의에서는 찾을 수 없습니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 1 모의문제 1 - 문제 2 질문있습니다.
강사님.. ㅎㅎ 제가 또 작성했는데 결과값이 다르게 나와서요 ㅜㅜ 한번 검토 부탁드립니다!!제 결과값은 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(마스터편)
컬렉션 프레임워크에서 get()
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()으로는 메서드까지는 접근이 가능하나 값 변경이 안되었고참조변수는 메서드 접근은 물론 값 변경(엄밀히 말하면 참조 변경)까지 되었습니다.이유가 궁금합니다. 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
static 을 사용하게 되었을 때
[질문내용] 약 3분 40초 쯤에서 private static 에서 static 을 사용안하면 따로 클래스를 new 를 사용해서 임포트(?) 할 때 store나 sequence 가 새로 생성된다 하셨는데... static을 사용해야만 클래스를 new 로 생성해도 쌓인 값이(?) 유지 되기 때문에 사용하는게 맞을까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
결과 쿼리 개수가 맞지 않아서 문의 드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용][간단한 주문 조회 V3: 엔티티를 DTO로 변환 -패치 조인 최적화] 강의에서 5분 50초 쯤에 v2를 돌려봤을 때, 강사님은 쿼리가 5번 나오는데,저는 계속 7번이 나오더라구요...order가 처음에 주문 2개를 만들어서 이미 영속성 상태라 그 다음에는 1차 캐시에서 가져오는 것으로 보여 쿼리는 생성이 안되어야 한다고 생각이 드는데, 왜 계속 order 쿼리가 2번 더 나오는 걸까요...? [Query]2023-10-25T21:54:33.448+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL :selecto1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.statusfromorders o1_0joinmember m1_0on m1_0.member_id=o1_0.member_idfetchfirst ? rows only2023-10-25T21:54:33.449+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473449 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first ? rows onlyselect o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first 1000 rows only;2023-10-25T21:54:33.450+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL :selectm1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.namefrommember m1_0wherem1_0.member_id=?2023-10-25T21:54:33.451+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473451 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=?select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=1;2023-10-25T21:54:33.451+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL :selectd1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.statusfromdelivery d1_0whered1_0.delivery_id=?2023-10-25T21:54:33.451+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473451 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=?select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=1;2023-10-25T21:54:33.452+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL :selecto1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.statusfromorders o1_0whereo1_0.deliver_id=?2023-10-25T21:54:33.452+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473452 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.deliver_id=?select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.deliver_id=1;2023-10-25T21:54:33.453+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL :selectm1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.namefrommember m1_0wherem1_0.member_id=?2023-10-25T21:54:33.453+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473453 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=?select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=2;2023-10-25T21:54:33.453+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL :selectd1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.statusfromdelivery d1_0whered1_0.delivery_id=?2023-10-25T21:54:33.454+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473454 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=?select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=2;2023-10-25T21:54:33.454+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL :selecto1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.statusfromorders o1_0whereo1_0.deliver_id=?2023-10-25T21:54:33.454+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473454 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.deliver_id=?select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.deliver_id=2; [OrderSimpleApiController]package jpabook.jpashop2.api;import jpabook.jpashop2.Repository.OrderRepository;import jpabook.jpashop2.Repository.OrderSearch;import jpabook.jpashop2.domain.Address;import jpabook.jpashop2.domain.Order;import jpabook.jpashop2.domain.OrderStatus;import lombok.Data;import lombok.RequiredArgsConstructor;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime;import java.util.List;import java.util.stream.Collectors;/*** X To One (컬렉션 X)* Order* Order -> Member* Order -> Delivery*/@RestController@RequiredArgsConstructorpublic class OrderSimpleApiController {private final OrderRepository orderRepository;@GetMapping("/api/v1/simple-orders")public List<Order> ordersV1(){List<Order> all = orderRepository.findAllByString(new OrderSearch());for (Order order : all) {order.getMember().getName(); // Lazy 강제 초기화order.getDelivery().getAddress(); // Lazy 강제 초기화}return all;}@GetMapping("/api/v2/simple-orders")public List<SimpleOrderDto> ordersV2(){// Order 2개List<Order> orders = orderRepository.findAllByString(new OrderSearch());List<SimpleOrderDto> result = orders.stream().map(o -> new SimpleOrderDto(o)) // map : a -> b로 치환.collect(Collectors.toList());return result;}@GetMapping("/api/v3/simple-orders")public List<SimpleOrderDto> ordersV3() {List<Order> orders = orderRepository.findAllWithMemberDelivery();List<SimpleOrderDto> result = orders.stream().map(o -> new SimpleOrderDto(o)).collect(Collectors.toList());return result;}@Datastatic class SimpleOrderDto{ // API 명세서private Long orderId;private String name;private LocalDateTime orderDate;private OrderStatus orderStatus;private Address address;public SimpleOrderDto(Order order) {orderId = order.getId();name = order.getMember().getName();orderDate = order.getOrderDate();orderStatus = order.getStatus();address = order.getDelivery().getAddress();}}} [OrderRepository]... public List<Order> findAllWithMemberDelivery() {return em.createQuery("select o from Order o" +" join fetch o.member m" +" join fetch o.delivery d", Order.class).getResultList();}
-
미해결데이터베이스 중급(Modeling)
PK에 임의의 식별자(정수형 시퀀스값)부여에 관한 질문드립니다.
영상 마지막에 나온것처럼 PK에 해당하는 칼럼의 값을 프로그래머를 위해 넘겨주어야 한다고 말씀하신거처럼.클라이언트 화면에서는 임의의 식별자 데이터는 렌더링하지는 않지만 사용자(클라이언트 프로그램)가 어떤 데이터를 요청할 때 클라이언트는 해당 데이터(레코드)에 해당하는 PK의 값을 서버에 전달. 과 같은 방식일까요? 질문이 조금 매끄럽지가 않은것같아 좀 더 말해보면에로들어 도서 관리 DB의 도서(Book)테이블에 PK가 도서 번호(1,2,3,4..)이며 나머지 속성은 책 이름, 출판사 등의 속성을 가지고 있고, 책 테이블의 도서 번호를 참조한 자식 관계를 가진 대여 기록 테이블이 있을 때 사용자가 'RDBMS Modeling 기초'라는 책의 대여기록을 보고싶어서 해당 책이름을 클릭하면 내부 코드에서는 클라이언트 코드에서는 해당 책의 PK인 책번호를 서버에게 전달 후 서버는 해당 책번호를 통해 대여기록 테이블과 JOIN하여 클라이언트에 응답. 과 같은 방식이 일반적인지 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 1 모의문제 1-문제 1 질문있습니다.
제가 코드를 이렇게 작성했는데 강사님의 답은 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 설치시 노드 버전 오류때문에 설치가 안되는거 같습니다.
노드 버전때문에 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 캡처입니다.