묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨친절한 블렌더 - [LV.1] 기초 모델링
지붕위 루프컷넣기
13:18 지붕위에 루프컷을 넣어야하는데지붕 겉면이 아니라 계속 안쪽면만 선택이 되어 루프컷이 됩니다.(지붕의 Edit로 모드로 들어갔습니다)
-
미해결토비의 스프링 부트 - 이해와 원리
ProxyBeanMethods = false에 대해 궁금합니다.
MyAutoConfiguration에서 ProxyMethods를 false를 줬으니 Tomcat과 DisPatcherServlet이 호출될떄마다 새로 생성되는건가요??
-
미해결Airflow 마스터 클래스
auto refresh
안녕하세요.강의 잘 듣고 있습니다. 저는 Mac환경에서 수강중이고,airflow 2.7.1을 사용중입니다. 강의에서 dag을 pull하고 2~3분 정도 기다리면 auto-refresh되어 compose를 재실행하지 않아도 된다고 하셨는데,제 경우엔 auto-refresh가 된 이후에도 새로 추가된 dag이 리스트에 나타나지 않더라구요. 그래서 매번 compose를 재실행하고 있는데,혹시 의심가는 원인이 있다면 말씀해주실 수 있으실까요?구글링을 해봐도 해결방법을 찾기 쉽지 않아서 질문 남깁니다ㅜㅜ
-
해결됨[iOS] Swift Modern Collection View & MVVM 패턴 가이드
Swift Modern Collection View에서 click event 처리에 관하여 고민이 됩니다
완강하였습니다~!!저의 기존 프로젝트에도 적용해보고 싶어요!! Swift Modern Collection View에서 각 Section 별 item click event 처리(ex, SubViewController로 이동)에 대해서도 추가적으로 강의가 더해지면 더욱 도움될 것 같아요기존 UICollectionView와 동일하게 delegate나 rx의 itemSelected로 item click event 처리를 하면 될지, 구조적으로 조금 다르게 가져가는 것이 좋을지 고민이 되어 질문글 남겨봅니다.감사합니다!!
-
해결됨Java TPC (생각하고, 표현하고, 코딩하고)
강의 자료 요청드립니다.
안녕하세요.강의 자료를 받고 싶습니다.질문 커뮤니티에 찾아보니 2강 JVM 강의에 URL이 나온다고 하는데2강을 3번 정도 들어봤는데 URL를 찾을 수가 없어서 강의 자료가 있는 깃허브 URL 주소를알 수 있을까 이렇게 질문으로 남깁니다.감사합니다.
-
미해결
Flutter 백그라운드(Terminated 상태)에서 BLE 비콘 통신 구현
안녕하세요 현재 BLE 비콘을 이용한 임베디드 시스템을 개발하고 있습니다.Flutter를 이용하여 포어그라운드 상태에서 BLE 비콘 송신값을 수신받고 이 값을 처리하는 기능까지는 구현 완료했는데, 앱이 꺼진 상태(홈 키를 누른 후 완전 앱을 종료하기, Terminated 상태)에서도 비콘 송신값을 수신받고 이를 처리하는 기능을 추가하고 싶어서 여러가지 알아보고 있는 과정에서 어려움이 있어 질문 남깁니다. 여러 백그라운드 라이브러리를 사용하며 느낀 것은 특정 상황에서만 백그라운드를 사용할 수 있는 것이었는데 혹시 이게 아니라면 어떤 라이브러리를 사용하여 구현해야 하는지 안다면 알려주십시오 ㅠFlutter가 백그라운드를 지원하지 않아 이를 네이티브앱으로 구현해야 하는지,만약 백그라운드를 지원한다면 어떻게 구현해야 하는지위의 두 질문에 답변해주면 감사합니다.. ㅠ
-
해결됨디자인 시스템 with 피그마
디자인 토큰 spaing 관련
안녕하세요! spacing 관련 토큰 만들어보다가 궁금한 점이 생겨서 질문드립니다. 예제처럼 baseSpaing이 4이며, 4의 배수로 커지는 토큰에서 6이나 10 정도의 spacing 값이 필요하게 되면,{baseSpaing}*1.5 = 6 {baseSpaing}*2.5 = 10이런식으로 만들어도 써도 괜찮은걸까요..?뭔가 4의 배수의 규칙에 어긋나는 느낌인 거 같아서 질문드려봅니다..ㅠ.ㅠ아니면 애초에 baseSpaing 값을 2로 두고 진행하는 게 나은 방안인지 여쭈어 봅니다!
-
해결됨그림으로 쉽게 배우는 운영체제
복습하는 법
감자님! 안녕하세요. 감자님의 강의 미리보기를 통하여 강좌를 구매하게 되었습니다. 먼저 좋은 강의 만들어주셔서 감사합니다. 다름이 아니라 제가 강좌를 듣고 복습을 하고 싶은데 들으면서 필기할려는 방법으로 하려고 합니다. 그런데 문제는 강좌를 들으며 필기하려다 보니 듣는 시간이 너무 길어지는 것 같습니다. 혹시 감자님이 추천해주실 만한 학습방법이 있을지 여쭤보고 싶습니다.
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
Mesh에 Camera를 붙일 수 있나요??
Mesh에 Camera를 붙일 수 있나요??아니면 아래 선생님 사이트처럼 동영상 대신 해당 위치에 Camera를 셋팅할 수 있나요??답변 부탁드리겠습니다!!!
-
해결됨자동차 SW - UDS 진단통신 정복하기
security access 부정응답 질문
부정응답 35, 36, 37를 내려면 오또케 검증을 진행하면 되나요
-
미해결[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
1 : N 필드 `memberRole` 에 @OneToMany 옵션 cascade 미사용, 컬랙션 null 초기화 에 대한 질문입니다.
class Member( ... ) { @OneToMany(fetch = FetchType.LAZY, mappedBy = "member") ⬅️Q1:"cascade 없음 이유" val memberRole: List<MemberRole>? = null ⬅️Q2: "null 초기화"(mutableListOf() 누락) } Q1:cascade 미사용:강의 컨샙에 맞춰 쉬운 예제 구성을 목적으로 컬랙션 필드에 Cascade 설정을 안하신게 아닐까 추측했지만, 한편으로 다른 구현방법에 대한 다른이유가 있으신 것인지 강의에 언급되지 않은 부분을 여쭤보고 싶었습니다.Q2:컬랙션 null 초기화:일반적인 JPA 예제에서는 JpaEntity 의 1:N 관계 필드는 Collection 초기화를 하더라구요. null 로 초기화 할 때의 장점 이라던지, 다른 이유가 있는지 궁금해서 남기게 되었습니다. 읽어주셔서 감사합니다.
-
해결됨
fetch join 질문
Fetch join에 있어 궁금한 점이 있어서 남깁니다.Fetch join을 사용할 때 서로 떨어진 테이블끼리도 fetch join을 사용할 수 있는지 궁금합니다.일단 페이징 같은 기능이 없다는 가정하에,예를 들어 Entity 1 - Entity 2가 다대일의 관계이고, Entity 2 - Entity 3이 다대일의 관계로 묶여있다면,select * from Entity1 e1 join fetch e.Entity2 join fetch e.Entity2.Entity3;위와 같이 join fetch e.Entity2.Entity3; 이러한 fetch join 문이 가능한가에 대해서 궁금합니다. 만약 이것이 불가능하다면 저러한 상황에서 Entity2를 기준으로 쿼리를 하는 것 말고 다른 방법으로 최적화 할 수 있는 방법이 있는지 궁금합니다.
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
findCatByIdWithoutPassword 함수 리턴 타입 질문
async findCatByIdWithoutPassword(id: string): Promise<Cat | null> { const cat = await this.catModel.findById(id).select('-password'); return cat; } 위 함수에서 Pomise의 반환값이 Cat 또는 null인데 cat은 password가 없는 Cat이라서 Cat이라고 할 수 없는데 return을 cat으로 해도 에러가 안나는 이유를 알고 싶습니디.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-X 런타임 에러 이유
안녕하세요. 큰돌 강사님, 문제를 풀다가 질문이 생겼습니다. 15683번 "감시" 문제인데요. 이 문제를 저는 아래 방식대로 풀이했습니다. http://boj.kr/7d19fc1e97a44902a3056cd87636f863cctv(vector)에 번호와 위치를 저장합니다. dfs로 각 방향을 모두 정리했습니다. 각각 정해진 dir 방향대로 사각지대의 범위를 지정했습니다. 3-1. ch 함수에서 a 배열을 temp로 복사3-2. 각각 cctv 별로 temp 색칠예제에 나와있는 보기는 모두 정답 입니다만, 문제를 제출하면 런타임 에러가 뜹니다. 이유를 도저히 못 찾겠습니다. 어떤게 문제인지 확인해주시면 감사하겠습니다. ps. 점점 날씨가 쌀쌀해지네요.감기조심하세요!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
도커의 데이터베이스 컨테이너와 nestjs typeORM이 어떤 방식으로 연동되는지 궁금해요
docker-compose 에 있는 my-database의 연결app.module.ts에 있는 typeOrmModule에 있는 데이터베이스 연결이 어떤 원리로 작동되는지 궁금합니다. my-database: image: mysql:latest environment: MYSQL_DATABASE: 'mydocker' MYSQL_ROOT_PASSWORD: 'root' ports: - 3306:3306TypeOrmModule.forRoot({ //.env 파일은 모두 string 형태로 인식이 됩니다. 따라서, type과 port에 추가 설정을 해주었습니다. type: mysql, host: "localhost", port: 3306, username: "root", password: "12345678", database: practice, entities: [Board], synchronize: true, logging: true, })
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
section27 퀴즈 질문입니다.
등록 시 화면 페이지는 바뀌는데 바뀌자마자 위와 같은 오류가 떠서 계속 찾아보는데 혼자는 해결하기 어려워 여쭤봅니다 ㅠㅠ 어디가 틀린 걸까요? mutation은 제대로 된 걸 확인했는데 fetch가 안 되네요.폴더 구조는05/boards/new index.js05/boards/products/[productId] index.jsimport { useState } from "react"; import { useMutation, gql } from "@apollo/client"; import { useRouter } from "next/router"; const CREATE_PRODUCT = gql` mutation createProduct( $seller: String $createProductInput: CreateProductInput! ) { createProduct(seller: $seller, createProductInput: $createProductInput) { _id number message } } `; export default function ProductRegPage() { const router = useRouter(); const [seller, setSeller] = useState(); const [name, setName] = useState(); const [detail, setDetail] = useState(); const [price, setPrice] = useState(); const [createProduct] = useMutation(CREATE_PRODUCT); const onClickRegister = async () => { try { const result = await createProduct({ variables: { seller, createProductInput: { name, detail, price, }, }, }); console.log(result); router.push(`/05/boards/products/${result.data.createProduct._id}`); } catch (error) { alert(error.message); } }; const onChangeSeller = (event) => { setSeller(event.target.value); }; const onChangeName = (event) => { setName(event.target.value); }; const onChangeDetail = (event) => { setDetail(event.target.value); }; const onChangePrice = (event) => { setPrice(parseInt(event.target.value)); }; return ( <div> 판매자: <input type="text" onChange={onChangeSeller} /> 상품명: <input type="text" onChange={onChangeName} /> 상품내용: <input type="text" onChange={onChangeDetail} /> 상품가격: <input type="text" onChange={onChangePrice} /> <button onClick={onClickRegister}>상품 등록</button> </div> ); } import { useQuery, gql } from "@apollo/client"; import { useRouter } from "next/router"; const FETCH_PRODUCT = gql` query fetchProduct($productId: ID) { fetchProduct(productId: $productId) { seller name detail price } } `; export default function ProductDetailPage() { const router = useRouter(); console.log(router); const { data } = useQuery(FETCH_PRODUCT, { variables: { productId: router.query.productId }, }); console.log(data); return ( <div> <div>판매자:{data ? fetchProduct?.seller : "loading..."}</div> <div>상품명:{data ? fetchProduct?.name : "loading..."}</div> <div>상품내용:{data ? fetchProduct?.detail : "loading..."}</div> <div>상품가격:{data ? fetchProduct?.price : "loading..."}</div> </div> ); }
-
해결됨코딩테스트 [ ALL IN ONE ]
다익스트라 final 노드 도착후에 바로 종료하지 않는 이유가 궁금합니다.
구현하신 코드를 보니 목적지에 도착한 이후에도 우선순위 큐를 모두 비우고 나서 값을 리턴하도록 함수를 작성하셨는데요, 목적지 도달 후 바로 반환 하는 것이 시간상 더 유리할 것 같은데 혹시 다른 이유가 있는걸까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
중복 메서드 추출 안되네요 ㅠㅠ
메서드 추출은 되는데IntelliJ IDEA 2023.2.2 Ultimate(컴퓨터는 맥북)해당 버전 사용중입니다 중복된 메서드일때 intellij 에서Extract Parameters to Replace Duplicate(10:34 초부분)이건 안되네요.인텔리제이 버전 업하면서 그런거같은데혹시 해당 화면처럼 하는 팁 있을까요?package jpabook.jpashop; import jakarta.annotation.PostConstruct; import jakarta.persistence.EntityManager; import jpabook.jpashop.domain.*; import jpabook.jpashop.domain.item.Book; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; /** * 총 주문 2개 * userA * * JPA1 BOOK * * JPA2 BOOK * userB * * SPRING1 BOOK * * SPRING2 BOOK */ @Component @RequiredArgsConstructor public class initDb { private final InitService initService; @PostConstruct public void init() { initService.dbInit1(); // 여기에 코드들 다 넣는 경우는 작동하지 않는다 initService.dbInit2(); } @Component @Transactional @RequiredArgsConstructor static class InitService { private final EntityManager em; public void dbInit1() { Member member = new Member(); member.setName("userA"); member.setAddress(new Address("서울", "1", "1111")); em.persist(member); Book book1 = new Book(); book1.setName("JPA1 BOOK"); book1.setPrice(10000); book1.setStockQuantity(100); em.persist(book1); Book book2 = new Book(); book2.setName("JPA2 BOOK"); book2.setPrice(20000); book2.setStockQuantity(100); em.persist(book2); OrderItem orderItem1 = OrderItem.createOrderItem(book1, 10000, 1); OrderItem orderItem2 = OrderItem.createOrderItem(book1, 20000, 2); Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); Order order = Order.createOrder(member, delivery, orderItem1, orderItem2);// ... 되어있으면 여러개 넘길 수 있다 em.persist(order); } public void dbInit2() { Member member = new Member(); member.setName("userB"); member.setAddress(new Address("진주", "2", "2222")); em.persist(member); Book book1 = new Book(); book1.setName("JPA1 BOOK"); book1.setPrice(10000); book1.setStockQuantity(100); em.persist(book1); Book book2 = new Book(); book2.setName("JPA2 BOOK"); book2.setPrice(20000); book2.setStockQuantity(100); em.persist(book2); OrderItem orderItem1 = OrderItem.createOrderItem(book1, 10000, 1); OrderItem orderItem2 = OrderItem.createOrderItem(book1, 20000, 2); Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); Order order = Order.createOrder(member, delivery, orderItem1, orderItem2);// ... 되어있으면 여러개 넘길 수 있다 em.persist(order); } } }전체코드고 아래 부분을 메서드 추출하면 중복 체크하고 매개변수 넘기는 방식으로는 안되네요.. Member member = new Member(); member.setName("userA"); member.setAddress(new Address("서울", "1", "1111")); em.persist(member);
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
proxy 서버에서 파일 검사
안녕하세요 강사님 proxy 서버에서 web 서버로부터 받은 파일을 검사 후 안전한 파일이면 클라이언트에게 전달한다 해주셨는데,일부 스트림만 봐서 이 파일이 안전한지 알 수 있나요?아니면 web 서버로부터 패킷을 전부 받아 조립 하여 확인 후 다시 쪼개어 클라이언트에게 하나 하나 보내주는 걸까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
StreamSubscription listen 내부에서 file copy 이슈
안녕하세요. 학습내용을 확장하는 중 이슈가 있어서 문의드립니다.윈도우 OS 타겟으로 개발 중이며,특정폴더(origin)에 파일이 생성되는 event 발생 시 다른 특정폴더(target)로 파일을 복사하는 로직을 구현했습니다.이슈는, 용량이 1kb로 작은 파일일 경우 잘 작동하지만, 용량이 몇mb 정도로 큰파일은 아래와 같은 예외가 발생하며 복사가 되지 않습니다.예외는 다음과 같습니다.Unhandled Exception: PathAccessException: Cannot copy file to 'C:\0.st\target\10.tdms', path = 'C:\0.st\origin\10.tdms' (OS Error: 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다. , errno = 32) #0 _checkForErrorResponse (dart:io/common.dart:55:9) #1 File.copy.<anonymous closure> (dart:io/fileimpl.dart:356:7) <asynchronous suspension> 제가 파일을 복사하기 위해 구현한 함수는 아래와 같습니다.중간에 newOriginFile.copy(copyFilePath); 부분에서 예외가 발생합니다.참고로 copySync 메서드로 변경해 보았으나 같은 현상이 발생합니다.복사할 대상 파일을 다른 프로세스에서 열지 않은 상태인데도 위와 같은 예외가 발생하여 디버깅이 안되는 상황입니다.항상 감사합니다!void _startEvaluationMode() { Navigator.pop(context, 'OK'); // 계측 모드 시작 setState(() { _evaluationMode = true; }); // origin 경로 불러오기 if (_directoryInfoBox.containsKey(DirectoryType.origin.name)) { setState(() { _originDirectory = Directory(_directoryInfoBox.get(DirectoryType.origin.name)!.path); }); if (!_originDirectory!.existsSync()) { // 실제 origin 경로의 폴더가 존재하지 않는 상태 // origin directory 확인하라는 alert dialog 보여주고 evaluation mode 종료 } // origin 경로 워칭 Stream<FileSystemEvent> originDirFileEvent = _originDirectory!.watch(); print('start evaluation mode'); // _streamListner = originDirFileEvent.listen((event) async { // if (event.type == 1) { // print('create event'); // } // }); _streamListner = originDirFileEvent.listen((event) { // origin 경로에 새 파일이 생성된 경우 FileSystemCreateEvent type == 1 if (event.type == 1) { print('created file: ${event.path}'); final newOriginFile = File(event.path); // 포맷에 맞는 파일 이름 생성 var newOriginFilename = p.basenameWithoutExtension(event.path); // print('base file name: ${newOriginFilename}'); String testMethodRoadName = TestMethodRoadInfoManager.getNameById(newOriginFilename); // 중복되는 이름 확인 // 파일 이름을 _ 로 분리하여 4번째 인덱스 값으로 구분 List<String> existingTestMethodRoadNameList = _evaluationItem!.evaluationFileInfos!.map((fileInfo) { return p .basenameWithoutExtension(fileInfo.evaluationFilePath) .split('_') .first; }).toList(); // print(existingTestMethodRoadNameList); // List<String> duplicatedList = existingTestMethodRoadNameList.where((name) { return name == testMethodRoadName; }).toList(); String fileNameWithDuplicateCount = ''; if (duplicatedList.isNotEmpty) { fileNameWithDuplicateCount = '${testMethodRoadName}_${duplicatedList.length + 1}'; } else { fileNameWithDuplicateCount = '${testMethodRoadName}_1'; } // print('road name: ${testMethodRoadName}'); // var copyFilePath = p.join(_itemDirectory!.path, // '${_itemFilePrefix}_${fileNameWithDuplicateCount}.tdms'); var copyFilePath = p.join( _itemDirectory!.path, '${fileNameWithDuplicateCount}.tdms'); print('copy file path: ${copyFilePath}'); // 파일을 eval item 경로로 이름 바꾸어 복사 newOriginFile.copy(copyFilePath); print('copy finish'); // eval item DB의 evaluationFileInfos 리스트 업데이트 var newEvaluationFileInfo = EvaluationFileInfo( originFilePath: event.path, evaluationFilePath: copyFilePath, activated: true, ); setState(() { _evaluationItem!.evaluationFileInfos!.add(newEvaluationFileInfo); }); // print( // 'file info length: ${_evaluationItem!.evaluationFileInfos!.length}'); _evaluationItemBox.put(_evaluationItem!.id, _evaluationItem!); // ui 상 file list, count 업데이트 List<File> files = []; for (var entity in _itemDirectory! .listSync(recursive: false, followLinks: false)) { if (entity is File) { files.add(entity); } } setState(() { _files = files; }); } }); } }