묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
Kotlin 에서는 함수형 인터페이스가 필요 없어진걸까요?
함수가 1급객체가 되어버려서 functional interface가 필요없어진 것처럼 보여요
-
해결됨ARM Cortex-M 프로세서 프로그래밍
No ST-LINK detected 문제
안녕하세요.어제까지 S401 강의를 들을 때까지만해도 HW로 함께 실습하며 잘 진행하고 있었는데,오늘 S402 강의를 들으면서 실습을 하려고 debug 버튼을 누르니, 아래와 같은 애러 메세지가 출력되었습니다.하지만, debug cofiguration에서는 ST-LINK 가 scan이 잘 됩니다.(아래 참고)그래서 구글링을 통해 시도한 방법으로는USB 연결 제거 후, HW 다시 연결 -> 동일한 에러Desktop 뒤쪽 USB port에 HW 연결 -> 동일한 에러FW를 모두 erase한 뒤, 다시 FW 설치(ST-link utility 이용) -> 동일한 에러혹시 해결 방법을 알고 계시는지 궁금합니다.(HW에서 점퍼 핀을 제거하거나 변경한 적은 없습니다.)
-
미해결스프링 핵심 원리 - 기본편
의존관계를 잘 모르겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 콜백 메서드(의존관계가 끝나면 호출되는 함수)는 의존관계가 전부 설정되었다고 어떻게 알 수 있나요?? 수업중에 만든 NetworkClient.class에서 의존관계는 누구인가요? 제가 이해한 바로는 의존관계는 @Autowired를 통해 알려지는 것 같은데 (생성자가 1개인 경우 암묵적으로 있음) 생성자에서 관련있는 변수가 없기 때문에 여기에서 의존관계에 있는 변수는 없다고 보면 될까요?
-
해결됨리눅스 입문 - 개념으로 탄탄히!!
$path변수와 리눅스 취업질문
제가 루트에서 $path랑 다른 일반사용자모드에서 $path를 쳐봤는데 왜결과가 다르게 나오는건가요? 강사님이 짜놓으신 커리큘럼보면 리눅스 개발자를 위해서도 강의를 올리셨는데혹시 리눅스 개발자와 리눅스(서버)엔지니어와 장단점이 어떻게되죠 3. 마지막으로 개발자들은 우분투를 많이쓰고 엔지니어는 centos를 많이쓰던데 이유가있나요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
연관관계의 주인을 파악하는 방법에 대해 궁금한 점이 있습니다.
연관관계의 주인은 곧 외래키를 갖고 있는 테이블이 그 연관관계의 주인으로 이해가 됩니다.SQL문의 create table을 통해서 보면 외래키가 명확하게 드러나서 연관관계의 주인이 누구인지 파악이 비교적 수월한데, JPA의 코드를 통해 보면 누가 관계의 주인인지 잘 모르겠습니다.물론 그것을 파악하기 쉬우라고 mappedBy를 이용해서 주인이 아니라는 것을 표시한다는 것은 알겠는데, 만약 이것이 안적혀 있더라도, 코드만 보고 관계의 주인을 파악하는 방법이 있을까요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
domain\user\User.java 파일에 updateName 메서드에 대한 궁금증이 있습니다.
package com.group.libraryapp.domain.user; import com.group.libraryapp.domain.user.loanhistory.UserLoanHistory; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id = null; @Column(nullable = false, length = 20, name = "name") private String name; private Integer age; // ManyToOne의 관계이기 때문에 List 사용 @OneToMany(mappedBy = "user") // mappedBy는 연관관계의 주인이 아닌 쪽에 붙는다. private List<UserLoanHistory> userLoanHistories = new ArrayList<>(); protected User() { } public User(String name, Integer age) { if (name == null || name.isBlank()) { throw new IllegalArgumentException(String.format("잘못된 name(%s)이 들어왔습니다.", name)); } this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Long getId() { return id; } public void updateName(String name) { this.name = name; } } 궁금증은 간단합니다. updateName과 setName의 차이점이 무엇인지 궁금합니다.updateName 또한 setName 처럼 User 객체의 name 프로퍼티를 변경해주기 위한 메서드로 보입니다.이름만 다를 뿐 형태가 똑같은데 굳이 updateName 이란 메서드를 만드는 이유가 궁금합니다.updateAPI에 맞춰서 통일성을 주기 위해 updateName 메서드를 만든 것인지, update의 요구 조건에 따라 updateName이 변경될 가능성이 있기 때문에 확장성 때문에 만든건지 아니면 어떠한 이점이 있는 것인지 등등 그 목적이 알고 싶습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
left outer join 쿼리가 생략되는 이유
@SpringBootTest @Slf4j @Transactional class JpqlApplicationTests { @Autowired EntityManager em; @Test @Rollback(false) void contextLoads() { Team team = new Team(); team.setName("맨유"); em.persist(team); Member member1 = new Member(); member1.setUsername("박지성"); member1.setAge(20); member1.setTeam(team); Member member2 = new Member(); member2.setUsername("드록바"); member2.setAge(24); em.persist(member); em.persist(member2); em.flush(); em.clear(); List<Member> resultList = em.createQuery("select m from Member m left outer join m.team t", Member.class) .getResultList(); } }member와 team이 다대일 연관관계입니다.member1은 team과 연결해주었고 member2는 연결해주지않았습니다.inner join 쿼리는 잘나가나 left outer join을 하면 쿼리가 아래와 같이 나갑니다. select m1_0.member_id, m1_0.age, m1_0.team_id, m1_0.username from member m1_0 <질문>제 생각에는 left outer join 은 어떻게 보면 member만 조회하는 것이랑 같은 결과니까 JPA가 자가판단해서 그냥 member만 조회하는 쿼리만 보낸다고 생각이드는데 맞게 생각한 것인지 모르겠습니다.<참고>on t.name='맨유' 를 추가하면 쿼리가 잘 나갑니다.List<Member> resultList = em.createQuery("select m from Member m left join m.team t on t.name='맨유'", Member.class) .getResultList();select m1_0.member_id, m1_0.age, m1_0.team_id, m1_0.username from member m1_0 left join team t1_0 on t1_0.team_id=m1_0.team_id and t1_0.name='맨유'답변 주시면 정말 감사하겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
C나 C++은 array가 스택영역에 할당되는 것으로 알고 있는데
C#에서는 Java와 마찬가지로 힙 영역에 할당되는 건가요?그렇다면 LIST를 동적배열이라고 했는데 array 역시 동적배열로 할당된게 아닌가요?
-
미해결일잘하는 마케터, MD에게 꼭 필요한 파이썬 데이터 분석
에러 질문드립니다.
# 셀레니움 module import # from selenium import webdriver ################################################################################################################################################################ # 2023.06.08 셀레니움 버전 업데이트로 인해 사용불가 ################################################################################################################################################################ # 2023.05.08 selenium webdriver 사용방법 변경 # from selenium.webdriver.common.by import By # from selenium import webdriver # import time # from time import sleep # from bs4 import BeautifulSoup # from selenium.webdriver.common.keys import Keys # import requests # import re # import os # # Dataframe # import pandas as pd # df = pd.DataFrame(columns=['idx','star','review']) # chrome_options = webdriver.ChromeOptions() # chrome_options.add_argument('--headless') # chrome_options.add_argument('--no-sandbox') # chrome_options.add_argument('disable-dev-shm-usage') # chrome_options.add_argument("user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36") # driver = webdriver.Chrome('chromedriver', options=chrome_options) ################################################################################################################################################################ # 2023.07.09 셀레니움 버전업으로 인한 코드 변경 ################################################################################################################################################################ from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By import time from time import sleep from bs4 import BeautifulSoup import requests import re import os # Dataframe import pandas as pd df = pd.DataFrame(columns=['idx','star','review']) service = Service(executable_path="chromedriver") options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') driver = webdriver.Chrome(service=service, options=options)안녕하세요. 해당 부분 다음과 같이 오류가 나오는데 어떻게 하면 좋을까요?NoSuchDriverException Traceback (most recent call last) <ipython-input-6-e1d24ca4db7f> in <cell line: 48>() 46 options.add_argument('--headless') 47 options.add_argument('--no-sandbox') ---> 48 driver = webdriver.Chrome(service=service, options=options) 2 frames/usr/local/lib/python3.10/dist-packages/selenium/webdriver/common/driver_finder.py in get_path(service, options) 42 43 if path is None or not Path(path).is_file(): ---> 44 raise NoSuchDriverException(f"Unable to locate or obtain driver for {options.capabilities['browserName']}") 45 46 return path NoSuchDriverException: Message: Unable to locate or obtain driver for chrome; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
apollo 서버 코드 질문합니다
질문입니다type Mutation {createBoard(createBoardInput: CreateBoardInput!):String } 에서맨 마지막에 왜 createBoard는 String이 붙고type Query{fetchBoards: [MyResult]}에서 fetchBoards는 맨 마지막에 String이 안 붙나요?fetchBoards: [MyResult]:String 이렇게 될수도 있지 않나요 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ const typeDefs = `#graphqltype Query{fetchBoards: [MyResult]}type Mutation {createBoard(createBoardInput: CreateBoardInput!):String } `;const resolvers = {Query: {fetchBoards: (parent, args, context, info) => {const result = [ { number: 1, writer: "철수", title: "제목입니다", contents: "내용이에요", },{number: 2,writer: "영희", title: "제목입니다",contents: "영희이에요",},{ number: 3, writer: "훈이", title: "제목입니다",contents: "훈이이에요", },];return result;} },Mutation: { createBoard: (_, args) => { console.log(args); onsole.log("========================="); console.log(args.createBoardInput.writer);console.log(args.createBoardInput.title);console.log(args.createBoardInput.contents);return "게시물 등록에 성공하였습니다"; }, }, };
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
IOCP 관련 질문이 있습니다.
이제 개발을 할때 WSASend함수를 통해 Scatter-Gether 방식으로 전달을 한다고 하면 내부적으로는 해당 데이터들이 하나의 Sendbuffe에 담겨서 가는지가 궁금합니다.WSASend에 요청한 데이터가 너무 커서 2번이상의 걸처 나눠서 전송이 된다면, 모든 데이터가 전송이 완료되어야지만 IOCP GQCS에서 완료되었다는 사실을 알 수 있는지 궁금합니다. 정리)1. Scatter-Gether를 통해서 여러 데이터를 보내면 내부적으로 1개의 Send Buffer에 담아서 보내지는지2.WSASend 호출 -> 데이터가 너무 커서 2개로 짤림이때 1개의 데이터를 전송 완료 후 GQCS OR2개의 데이터를 전부 전송 완료 후 GQCS에 등록 이 되는지 궁금합니다.
-
해결됨친절한 블렌더 - [LV.0] 입문 필수
오브제 모델링2에서 shade auto smooth를 사용하신 이유가 궁금 합니다.
오브제 모델링2 14분 정도에서 shade smooth가 아니라 shade auto smooth를 사용하신 이유가 궁금 합니다. 강좌에서 큐브와 피라미드의 모서리과 꼭짓점을 둥글게 만들기 위해서 shade auto smooth를 사용하시는데 이 상황에서는 일부분을 각지게 하는 것이 아니라 모든 꼭짓점과 모서리를 둥글게 만들어야 하니까 shade smooth가 더 적합한 거 아닌가요?
-
해결됨Windows 시스템 프로그래밍 - 기본
실행 중인 프로세스에 대한 질문
선생님 안녕하세요, 강의 재밌게 보고 있는 수강생 중 한명입니다"실행중인 프로세스 열거"를 듣고 있다가 하나의 궁금증이 생겨서 질문합니다. 영상을 이해한 바로는 시스템에서 실행중인 Process Handle 과 그 process가 사용한 메모리에 권한만 충족한다면 접근할 수 있다고 이해했습니다.그런데 여기서 제가 소유하지 않은 프로그램에 접근해서 메모리와 정보를 읽는 프로그램을 만들고 배포 유통 까지 하면 현행법상 문제가 발생하나요? 예를들어서, 어떤 회사가 A라는 프로그램을 만들었는데 그 프로그램을 모니터링하는 프로그램을 제가 출시한다면 거기에 따른 법적 제약이 있는지 선생님 경험의 바탕에서 궁금합니다. OS위에 돌아가는 process 간의 접근 제약이 그렇게 크지 않다는 것을 보고 갑자기 흥미로운 질문이 들어서 질문합니다 :D질문 봐주셔서 감사하고 강의의 주제에 다소 벗어나는 질문인 것 같지만 가볍게라도 답변해주셨으면 감사하겠습니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
opencv Yolo v3 inference
안녕하세요. 권철민 강사님유익한 영상 잘 보고 있습니다. 현재 opencv로 Yolov3를 inference하는 파트를 보고 있습니다.nms threshold 값이 예를 들어nms_confidence = 0.4이면 한 상자당 confidence score가 가장 높은 상자를 뽑아 for문을 돌면서 iou 값이 nms_confidence이상이면 제거하는 데 쓰이는 것이 맞는지 확인하고 싶습니다. 그리고 85개의 차원중에 5번째에 있는 객체가 있는지 없는 지를 판단하는 confidence (detection[5])은 안쓰는 지 여쭙고 싶습니다. 본 코드에서는 class_score 부분만 if문에 조건으로 사용하여 의아한 기분이 들어 질문 드립니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드의 이 부분을 다르게 풀었는데, 괜찮은지 질문드립니다!
private static void bfs() { while (!queue.isEmpty()) { int size = queue.size(); for (int i = 0; i < size; i++) { Point now = queue.poll(); for (int j = 0; j < 4; j++) { int nextX = now.x + dx[j]; int nextY = now.y + dy[j]; if (nextX >= 0 && nextY >= 0 && nextX < n && nextY < m) { if (board[nextX][nextY] == 0) { board[nextX][nextY] = 1; day[nextX][nextY] = day[now.x][now.y] + 1; queue.offer(new Point(nextX, nextY)); } } } } } }코드의 bfs 메서드이고, 큐의 사이즈만큼 순회하는 로직int size = queue.size(); for (int i = 0; i < size; i++) { Point now = queue.poll();을 추가했습니다. 결과나 과정 측면에서 봤을 때, 강의에서의 코드와 무슨 차이가 있는지 모르겠는데, 혹시 성능 상에서 기존 코드보다 많이 떨어지는 코드일까요? 이렇게 작성해도 되는지 궁금합니다. 이전 bfs 강의에서는 이렇게 큐의 사이즈를 구해서 순회하는 로직을 사용하더라구요.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
트랜잭션 추상화 후 커넥션 풀 관련 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.트랜잭션 추상화 후 트랜잭션 매니저에서 데이터소스를 통해 커넥션을 생성한다고 강의에서 말씀해 주셨습니다.@Transactional을 사용하면 커넥션 풀을 사용하는지 DriverManger를 통해 신규 커넥션을 생성하는지와 커넥션 풀을 사용한다면 어떤 커넥션 풀을 사용하는지 궁금합니다!
-
미해결자바스크립트 제대로 배워볼래?
Async Await 오류가 나서 문의드립니다.
안녕하세요.스크립트는 아래와 같이 작성하였으며,콘솔에는 3-12.AsyncAwait.html:20 Uncaught (in promise) TypeError: data is not iterableat calculateSum 이라는 오류가 나왔습니다.<!DOCTYPE html> <html> <head> <title>Document</title> </head> <body> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> <script> var url ="https://74f8c451-bcda-46f0-820b-f63caee12b28.mock.pstmn.io/productList"; async function getData2(){ return (await axios.get(url)).data; } async function calculateSum(){ var data = await getData2(); var total = 0; for(var item of data){ total += item.price; } console.log(total); } calculateSum(); </script> </body> </html>어디가 잘못된걸까요...강의랑 똑같이 작성을 한거같은데..
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
이럴 때는 엔티티 관계 설정을 1:1로 해야하는지 1:n 으로 해야하는지 궁금합니다.
[질문 내용]https://www.inflearn.com/questions/958528이전 질문에 이어서 질문 드립니다.이전 내용을 간단히 요약하면 보안매체 엔티티와 보안매체가 갖는 토큰을 엔티티로 표현할 때, 보안매체 한 개에 유효한 토큰은 하나만 가질 수 있으므로 1:1 관계로 해야할지, 아니면 사용자에 연결된(만료된 토큰과 현재 유효한 토큰) 모든 토큰을 가지고 온 후, 그 이후에 유효한 토큰을 소스상에서 필터해서 얻어내는 식으로 하여 1:n으로 해야할지 여쭈어보았는데요. 답변으로 1:n으로 관계를 짓고, 유효한 토큰을 필터하는 식으로 하길 권해주셨습니다.이게 '보안매체에 유효한 토큰은 오직 한개' 라는 개념적인 관점에서는 1:1이지만, JPA에서의 엔티티 클래스로 표현해보자면 하나의 고객KEY를 외래키로 하는 토큰은 여러개가 있을 수 있으니 1(단일객체)가 아닌 N(리스트)로 표현하고, 비즈니스 로직상에서 유효한 하나를 뽑아서 현재 활성화된 토큰을 얻어낸다고 보면 되는걸까요?매번 쿼리를 통해 필요로하는 객체로 뽑아내다가, 이를 엔티티 클래스, 관계로 소스를 짜려니 어색하네요. 항상 감사합니다. 답변주시면 감사드리겠습니다!! ㅠㅠ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
혹시 강의 중에 git clone 말씀하시는데, git 주소를 좀 알수 있을까요?
혹시 강의 중에 git clone 말씀하시는데, git 주소를 좀 알수 있을까요?
-
미해결만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)
localhost:3000/api/user.info/totuworld 404 에러가 뜹니다.
userInfo가 받아와지지 않아서 계속 "사용자를 찾을 수 없습니다'페이지가 뜹니다.현재 아래와 같이 계속 뜹니다,강의를 다시보기 해보아도 문제가 발생합니다.어디를 확인해봐야할까요...?