묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기
설치 오류
아나콘다 프롬프트에서 파이썬 정상 설치 후 platform 입력 시 syntax error 가 뜹니다 ㅠ
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
getter메소드에 락관리
3:05에서 getBalance()에서 계속 동시성 관리를 하는 이유가 메모리가시화 문제 때문인가요? 만약 그런거라면 앞으로 멀티스레드환경에 노출된 인스턴스변수들은 단순 반환만하는 getter메소드에서도 무조건 volitile이나 락관리를 해야되는게 맞을까요?
-
미해결자동차 SW - UDS 진단통신 정복하기
Security Access관련 문의
안녕하세요 Security Access / Send Key 확인 중인데 메세지 Type이 SF임에도 불구하고 총 [00 0A]+ 나머지 바이트 -> 12byte를 보내는 부분을 확인하였습니다.CANoe에서 이렇게 보내는 설정이 가능하다면, ISO-TP에 따라 request를 보내는 시퀀스가 어떻게 될까요?
-
해결됨Flutter 앱 개발 실전
stateful 상태관리에서
stateful 상태관리 수업에서 store위젯을 stateless -> stateful로 바꿔 봤습니다생성자 body에도 print()로 간단히 출력해보고 initState와 dispose도 추가해봤구요 아래 코드입니다. import 'package:flutter/material.dart'; import 'package:flutter_app/common/product.dart'; import 'package:flutter_app/common/product_tile.dart'; class Store extends StatefulWidget { //statelessdptj -> stateful로 바꿈 Store({ super.key, required this.cartProductList, required this.onPressed, }){ print(key); //추가 print(cartProductList.length); //추가 } /// 카트에 담긴 상품 목록 final List<Product> cartProductList; /// 클릭 이벤트 final void Function(Product product) onPressed; @override State<Store> createState() { print(key); print(cartProductList.length); return _StoreState(); } } class _StoreState extends State<Store> { @override void initState(){ //추가 super.initState(); print("init"); } @override void dispose(){ //추가 print("dispose"); super.dispose(); } @override Widget build(BuildContext context) { print("store build"); //추가 return Scaffold( body: ListView.builder( itemCount: storeProductList.length, itemBuilder: (context, index) { Product product = storeProductList[index]; return ProductTile( product: product, isInCart: widget.cartProductList.contains(product), onPressed: widget.onPressed, ); }, ), ); } }결과를 보니 버튼을 클릭할 때 마다 생성자 바디가 호출되고 있는데 , state는 build함수만 호출되고 있습니다. 제가 궁금한 것은 상태가 바뀌면 build 함수가 재실행 되는 것은 압니다근데 지금은 store위젯과 storeState는 한 세트 아닌가요 ?store위젯 생성자가 불린다는 것은, 새로 인스턴스 만들어 진다는 것인데 그럼 한 세트인 storeState도 매번 initState도 불려야 할 거 같은데.... 왜 그런지 알고 싶습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
값타입과 불변객체
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 임베디드 타입과 그 후 강의 값 타입과 불변 객체를 들으면서 궁금증이 생겨 게시판에 올립니다. 임베디드 타입에서 엔티티를 가질 수도 있다고 되어있는데 임베디드 타입의 역할은 단순한 값을 나타내기 위한 용도로 불변 객체로 설계되어야한다고 배웠습니다(다음 강의). 근데 만약 임베디드 타입안에 엔티티를 넣으면 불변 객체의 특성이 깨지는거 아닌가요...? 만약 엔티티를 넣으려면 엔티티 또한 수정자를 제거해서 불변 객체로 만들어야할거 같은데 이렇게 설계를 하는 이유를 정확히 감이 잡히지 않습니다(임베디드 타입안에 엔티티를 넣으면 좋은 이점 등을 모르겠습니다). 또한 임베디드 타입 안에 엔티티를 넣는 예제를 따로 생각해도 떠오르지 않네요.. 실무에서 이런 경우가 많이 있나요??
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
비쥬얼 스튜디오에서는 되는데 명령 프롬포트에선 실행되지 않습니다
프롬포트 C:\>C:\infrun\qwer\python1.0_source\source_code\chapter10_011.pywhat is your nameiyshi iys time to play hangman manstart loadingTraceback (most recent call last): File "C:\infrun\qwer\python1.0_source\source_code\chapter10_011.py", line 21, in <module> with open('source_code/resource/word_list.csv','r') as f: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^FileNotFoundError: [Errno 2] No such file or directory: 'source_code/resource/word_list.csv' 비쥬얼 스튜디오import time import csv import random import winsound name = input('what is your name') print('hi',name,'time to play hangman man') print() time.sleep(1) print('start loading') print() time.sleep(0.5) words=[] with open('source_code/resource/word_list.csv','r') as f: reader = csv.reader(f) next(reader) for c in reader: words.append(c) random.shuffle(words) q = random.choice(words) words=q[0].strip()
-
미해결Next + React Query로 SNS 서비스 만들기
5:42 임포트 단축키
뭔가요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
cache 코드 관련 추가 질문드립니다.
한 회차에서 많은 너무 많은 질문을 드리는 것 같네요... 한번에 질문 드려야 하는데 볼때마다 새롭게 궁금하는 점이 생겨 또 질문드립니다...always @(posedge clk, negedge rstn)if (!rstn) cc_re_d <= 0;else cc_re_d <= cc_re; 위 코드의 경우 Cache에 read enable 하는 변수에 해당하는 것 같습니다. cc_re와 cc_re_d를 별도로 변수를 초기화 하고, clk 신호에 맞게 동기화를 하는 이유를 잘모르겠습니다. (제가 생각한 내용은 cc_re의 경우 i_cpu_req 신호에 비동기로 값을 변경하고, 해당 값을 clk 동기화 신호에 맞게 cc_re_d에 넣게되면, clk 주기 사이에 cc_re의 값이 변경되어도 cc_re_d의 값은 clk가 주기가 오기전까지 값을 유지하게 되는 상황인데 굳이 cc_re의 경우에만(추가로는 mem_we_d도 마찬가지) 이런식으로 구성한 이유를 잘모르겠습니다.)+ 추가로 찾아보니 메타스테이블 상태를 방지하기 위함 -레벨 트리거(cc_re가 그대로 전달될 경우) 신호가 엣지 트리거(다른 always @문에 사용되는 구문들) 상태와 겹치는 상태에서 불안정한 신호를 전달하기 때문이라는데, (레벨 트리거 신호를 엣지 트리거 상태로 변경하기 위함인가요?) 이게 맞는 내용일까요? => 그렇다면 다른 레벨 트리거 변수들은 위와 같이 동기화 신호로 안바꿔주는 이유가 궁금합니다...)
-
미해결
인텔리 제이 오류 가 났습니다.
jdk 설정을 바꾸어도 똑같이 났는데 도와주세요 ㅜㅜ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계가 있는 엔티티 save 시 영속성 관련 질문입니다.
save를 통해 A라는 엔티티를 하나 저장하려고 합니다.그 엔티티는 ManyToOne으로 B라는 엔티티와 연관관계를 맺고 있습니다.A를 save할 때, B는 영속성 컨텍스트에 있어야 하는 상태인가요?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2차원 dp 11:45분에서 하상좌우 순서에 의미가 있나요?
상하좌우 순서 고쳐주셨다고 하셔서 그냥 순서 바꿔서 해봤더니 값이 다르게 나오네요.. 이해가 안됩니다 센세 ㅠㅠ흑흑
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
VS 자동완성 관련 질문 드립니다.
UPROPERTY 안의 속성이나 BeginPlay() 와 같은 상속받아 사용하는 함수들에 대해 Visual Studio 에서 자동완성을 하려고 한다면 어떻게 해야 하나요? 인터넷을 뒤져도 찾을 수가 없어서 여기에 질문 남깁니다..!!
-
미해결김영한의 실전 자바 - 중급 2편
질문
이런 문제들 너무 너무 좋은데, 혹시 영한님이 직접 손수 만드신 문제인가요?아니면 이런 문제들 풀 수 있는 전문적인 사이트라던가 참고할수 있는 링크나 문제집이나 강의 추천해주시면 감사드리겠습니다.
-
미해결
문제만 있는 자료 있을까요?
선생님 안녕하세요.실기는 1 2 4 은 맞은 거 같고 나머지는 모르겠어요 ㅋㅋ그냥 다시 준비 하려고요. 코드 문제만 모아놓은 자료 있는 지 궁금해서 문의드립니다.시험장 들어가니 코드 읽는 게 연습이 덜 되었다는 생각이 들어서요강의 중간 중간에 문제가 있는데 모아진 게 있나요?
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
common.service.ts-composeFindOptions
private composeFindOptions<T extends BaseModel>( dto: BasePaginationDto, ): FindManyOptions<T> { /** * where, order, take, skip 반환 * skip-> page based pagination에서만 */ /** * DTO의 현재 생긴 구조는 아래와 같다. * * { * where__id__more_than: 1, * order__createdAt: 'ASC, * } * * 현재는 where__id__more_than / where__id__less_than에 해당하는 where 필터만 사용중이지만 * 나중에 추가적인 where 필터를 넣고싶어졌을 때 모든 where 필터를 자동으로 파싱할 수 있을만한 기능이 * 필요하다.. * * 1) where로 시작한다면 필터 로직을 적용 * 2) order로 시작한다면 정렬 로직을 정용한다. * 3) 필터 로직을 적용한다면 '__' 기준으로 split 했을 때 3개의 값으로 나뉘는지 2개인지 확인한다. * 3-1) 3개의 값으로 나뉜다면 FILTER_MAPPER에서 해당되는 operator 함수를 찾아서 적용한다. * ex) ['where', 'id', 'more_than'] -> more_than을 실제 typeorm-operator로 적용 * 3-2) 2개의 값으로 나뉜다면 정확한 값을 필터하는 것이기 때문에 operator 없이 적용한다. * ex) ['order', 'createdAt'] -> operator 필요 X * 4) order의 경우 3-2와 같이 적용한다. */ let where: FindOptionsWhere<T> = {}; let order: FindOptionsOrder<T> = {}; for (const [key, value] of Object.entries(dto)) { if (key.startsWith('where__')) { where = { ...where, ...this.parseWhereFilter(key, value), }; } else if (key.startsWith('order__')) { order = { ...order, ...this.parseWhereFilter(key, value), }; } } return { where, order, take: dto.take, skip: dto.page ? dto.take * (dto.page - 1) : null, }; }여기서 함수가 실행되면 where, order은 빈 객체로 초기화 되는데 왜 for 문 안에선 ...where, ...order을 해주는건가요?
-
해결됨손에 익는 Next.js - 공식 문서 훑어보기
데이터 재검증 방법
강의에서 데이터를 재검증하는 방법으로 route handler를 생성하고 그 안에서 revalidateTag 함수를 호출해서 캐시를 지우는 방법을 소개해주셨는데요! 그와 관련해서 궁금한게 세가지 있어서 질문 드립니다.버튼과 같은 클라이언트 컴포넌트에서 어떠한 동작을 수행한 후 데이터를 재검증 하려면 route handler로 요청을 보내고 route handler 내에서 revalidateTag 등을 사용하는 방법밖엔 없는걸까요?위의 방법으로 캐시를 지운 후 브라우저를 직접 새로고침해야 새로운 데이터를 가져와서 화면상에서 갱신이 되던데 직접 새로고침하지 않고 캐시를 지움과 동시에 바로 화면상의 모습도 갱신하려면 어떻게 해야 하나요?next.js에서도 react처럼 axios를 많이 사용하나요? 제가 지금까지 이해한 바로는 next.js는 여러가지 캐싱 기능을 fetch를 이용한 요청으로 제공하는 거 같더라구요. 그리고 공식문서나 다른 블로그 글들 혹은 강의를 봐도 데이터 패칭 및 캐시 부분에서는 fetch를 사용하는 예시만 나와서 next.js의 캐싱 기능을 활용하려면 fetch를 사용해야 하는건가 싶습니다. react를 이용할 때에는 보통 실무에서는 axios를 많이 사용한다고 들었었는데 next.js는 어떤지 궁금합니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 연결이 안되는 것 같습니다
현재 H2 database에 연결하고 목록을 확인하려고 합니다. 그런데 자꾸 회원목록을 들어가거나 회원가입을 실행시 whitelabel 에러가 뜹니다. 제 생각으로는 H2 DB와의 연결 상태때문인 것 같은데, spring boot 실행중에는 아무런 에러가 뜨질 않습니다. 스프링 3.0이상을 사용해서 H2버전 문제인것 같아 1.4.200에서 최신버전을 써보았는데도 똑같은 결과가 나옵니다.밑에 프로젝트 파일 링크 공유드립니다.https://drive.google.com/file/d/1Wg2OAv5FmdglAZDtUCYDypa1cprIUTda/view?usp=drive_link
-
미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
특정 부서에서 최대 연봉을 가진 사용자 조회 sql 쿼리 질문
안녕하세요, 좋은 강의 감사합니다. 제공해 주신 쿼리에 대해 질문이 있는데요,제 생각에는 아래 쿼리가 특정 부서에서 최대 연봉을 가진 사용자를 조회하는게 아닌,전체 부서에서 최대 연봉이 x 라고 하면,세 부서에서 그 값이 있으면 출력하는 문인것 같은데,제가 어느 부분에서 헷갈린 건지 알려주시면 감사하겠습니다.SELECT * FROM users WHERE salary = (SELECT MAX(salary) FROM users) AND department IN ('Sales', 'Marketing', 'IT'); SELECT MAX(salary) FROM users 는 users 테이블의 최대 salary 를 가져오는것이고,괄호 밖의 department In (...) 은 부서 세개,그리고 salary = (SELECT MAX ...) 와 함께 저 salary 에 해당 하는 users 가져오는 것이 아닌가요? 제가 sql 초보라 양해 해주시면 감사하겠습니다 ...
-
미해결취미로 해킹#5(DIMICTF)
dimi-math 문제를 풀려고 하는데 문제가 뜨지 않습니다.
포트 입력해서 구글에서 창도 열리는것까진 확인했고, 포트도 확인 되었으나, dimi-math 1번 문제를 풀기 위해 netcat 포트를 입력하였지만 문제가 뜨지 않았으며 netcat을 다시 해당 우분투에서 깔아보았지만 여전히 문제가 뜨지 않습니다...사용하는 가상머신은 VMware 17player 입니다.
-
미해결
파이썬 한글셀필드 응용 질문
안녕하세요! 사무보조알바하면서 자동화 프로그램을 만들어서 일에 도움이 될수있게 파이썬을 배우고있는 대학생입니다! 아래아 한글에 셀필드를 지정하고 셀들을 각 _3번까지 만들어두었습니다. 엑셀에서 각 시트별로 동일한 과제번호끼리 데이터를 가져와서 아래아한글파일에 각 과제번호 별로 데이터값을 넣어서 저장해주는 코드를 만들었는데 셀필드를 3개만 만들어두니까 데이터값이 3개 넘어가는거는 더 이상 저장이 안되더라구요.그래서 제가 아는 함수도 사용해봐도 셀이 추가되지않아서 데이터값이 들어가지않더라구요 ㅠㅡㅠ 혹시 어떻게 하면 될지 알려주실수있나요?엑셀에서 한글파일에 데이터값을 넣는 코드 올려드립니다! 제발 해결됬으면 좋겠어요 ㅠㅠ import pandas as pd from tkinter import Tk, filedialog import win32com.client as win32 import os def select_file(file_type): root = Tk() root.withdraw() file_path = filedialog.askopenfilename( filetypes=[(file_type, "*.xlsx" if file_type == "Excel files" else "*.hwp")] ) root.destroy() return file_path def read_excel(file_path): xls = pd.ExcelFile(file_path) data = {} for sheet_name in xls.sheet_names: df = pd.read_excel(xls, sheet_name=sheet_name) data[sheet_name] = df return data def group_data_by_project_number(data): grouped_data = {} for sheet_name, df in data.items(): if '과제번호' in df.columns: for _, row in df.iterrows(): project_number = row['과제번호'] if project_number not in grouped_data: grouped_data[project_number] = {} if sheet_name not in grouped_data[project_number]: grouped_data[project_number][sheet_name] = [] grouped_data[project_number][sheet_name].append(row) return grouped_data def fill_hwp_template(hwp_file_path, grouped_data, output_dir): hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject") for project_number, data in grouped_data.items(): hwp.Open(hwp_file_path) try: hwp.PutFieldText("과제번호", project_number) for sheet_name, rows in data.items(): for index, row in enumerate(rows, start=1): suffix = f"_{index}" if index > 1 else "" if sheet_name == '0-1.과제기본정보': hwp.PutFieldText(f"사업분야{suffix}", row.get('사업분야', '')) hwp.PutFieldText(f"과제명{suffix}", row.get('과제명', '')) hwp.PutFieldText(f"과제번호{suffix}", row.get('과제번호', '')) hwp.PutFieldText(f"총괄책임자{suffix}", row.get('총괄책임자', '')) hwp.PutFieldText(f"당해지원사업명{suffix}", row.get('당해지원사업명', '')) hwp.PutFieldText(f"기술분류(대분류){suffix}", row.get('기술분류(대분류)', '')) hwp.PutFieldText(f"기술분류(중분류){suffix}", row.get('기술분류(중분류)', '')) hwp.PutFieldText(f"기술분류(소분류){suffix}", row.get('기술분류(소분류)', '')) hwp.PutFieldText(f"연구개발단계{suffix}", row.get('연구개발단계', '')) hwp.PutFieldText(f"과제유형{suffix}", row.get('과제유형', '')) hwp.PutFieldText(f"주관기관{suffix}", row.get('주관기관', '')) hwp.PutFieldText(f"총개발기간{suffix}", row.get('총개발기간', '')) hwp.PutFieldText(f"참여기관{suffix}", row.get('참여기관', '')) hwp.PutFieldText(f"성명{suffix}", row.get('성명', '')) hwp.PutFieldText(f"직위{suffix}", row.get('직위', '')) hwp.PutFieldText(f"휴대전화{suffix}", row.get('휴대전화', '')) hwp.PutFieldText(f"소속기관{suffix}", row.get('소속기관', '')) hwp.PutFieldText(f"전자우편{suffix}", row.get('전자우편', '')) elif sheet_name == '0-2.참여기관현황': hwp.PutFieldText(f"0-2.참여기관현황_기관명{suffix}", row.get('기관명', '')) hwp.PutFieldText(f"0-2.참여기관현황_역할{suffix}", row.get('역할', '')) hwp.PutFieldText(f"0-2.참여기관현황_사업자등록번호{suffix}", row.get('사업자등록번호', '')) hwp.PutFieldText(f"0-2.참여기관현황_대표자{suffix}", row.get('대표자', '')) elif sheet_name == '0-1-1.협약사업비': hwp.PutFieldText(f"0-1-1.협약사업비_단계/연차{suffix}", row.get('단계/연차', '')) hwp.PutFieldText(f"0-1-1.협약사업비_연도{suffix}", row.get('연도', '')) hwp.PutFieldText(f"0-1-1.협약사업비_정부출연금{suffix}", row.get('정부출연금', '')) hwp.PutFieldText(f"0-1-1.협약사업비_지자체{suffix}", row.get('지자체', '')) hwp.PutFieldText(f"0-1-1.협약사업비_현금{suffix}", row.get('현금', '')) hwp.PutFieldText(f"0-1-1.협약사업비_현물{suffix}", row.get('현물', '')) hwp.PutFieldText(f"0-1-1.협약사업비_소계{suffix}", row.get('소계', '')) hwp.PutFieldText(f"0-1-1.협약사업비_합계{suffix}", row.get('합계', '')) elif sheet_name == '1.논문': hwp.PutFieldText(f"1.논문_성과관리ID{suffix}", row.get('성과관리ID', '')) hwp.PutFieldText(f"1.논문_성과년도{suffix}", row.get('성과년도', '')) hwp.PutFieldText(f"1.논문_학술지구분{suffix}", row.get('학술지구분', '')) hwp.PutFieldText(f"1.논문_논문명{suffix}", row.get('논문명', '')) hwp.PutFieldText(f"1.논문_학술지명{suffix}", row.get('학술지명', '')) hwp.PutFieldText(f"1.논문_ISSN{suffix}", row.get('ISSN', '')) hwp.PutFieldText(f"1.논문_저자명{suffix}", row.get('저자명', '')) hwp.PutFieldText(f"1.논문_발행일자{suffix}", row.get('발행일자', '')) hwp.PutFieldText(f"1.논문_SCI구분{suffix}", row.get('SCI구분', '')) hwp.PutFieldText(f"1.논문_기여율{suffix}", row.get('기여율', '')) hwp.PutFieldText(f"1.논문_증빙제출여부{suffix}", row.get('증빙제출여부', '')) hwp.PutFieldText(f"1.논문_비고(추가/삭제/수정/증빙보완등){suffix}", row.get('비고(추가/삭제/수정/증빙보완등)', '')) output_file = os.path.join(output_dir, f"{project_number}.hwp") hwp.SaveAs(output_file) print(f"Saved: {output_file}") except Exception as e: print(f"Error filling data for project {project_number}: {e}") finally: hwp.Clear(1) hwp.Quit() def main(): excel_file = select_file("Excel files") if not excel_file: print("No Excel file selected.") return excel_data = read_excel(excel_file) grouped_data = group_data_by_project_number(excel_data) hwp_template_file = select_file("HWP files") if not hwp_template_file: print("No HWP template file selected.") return root = Tk() root.withdraw() output_dir = filedialog.askdirectory() root.destroy() if not output_dir: print("No output directory selected.") return fill_hwp_template(hwp_template_file, grouped_data, output_dir) print("Data successfully filled into HWP files.") if __name__ == "__main__": main()