묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
22: 10 초 질문입니다.
=======================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]22: 10 초에서는 Team과 Member의 join fetch 를 진행하면 result = 3 의 결과가 나오는데 저는 계속해서 result = 2의 결과가 나와서 질문드립니다. 최신 버전으로 인해서 jpa 최적화 방식의 변화가 생겨서 그런 것인지 아니면 제가 실수한 것인지 궁금합니다.JpaMain 실행결과: 디비 상태: package jpql; import jakarta.persistence.*; import java.util.List; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Team teamA = new Team(); teamA.setName("teamA"); em.persist(teamA); Team teamB = new Team(); teamB.setName("teamB"); em.persist(teamB); Member member1 = new Member(); member1.setUsername("회원1"); member1.setAge(10); member1.setTeam(teamA); em.persist(member1); Member member2 = new Member(); member2.setUsername("회원2"); member2.setAge(10); member2.setTeam(teamA); em.persist(member2); Member member3 = new Member(); member3.setUsername("회원3"); member3.setAge(10); member3.setTeam(teamB); em.persist(member3); em.flush(); em.clear(); String query = "select t from Team t join fetch t.members"; List<Team> result = em.createQuery(query, Team.class) .getResultList(); System.out.println("result = " + result.size()); for (Team team : result) { System.out.println("team = " + team.getName()); for(Member member : team.getMembers()){ System.out.println("-> member = " + member.getUsername()); } } tx.commit(); } catch(Exception e){ e.printStackTrace(); tx.rollback(); } } } package jpql; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import jakarta.persistence.OneToMany; import java.util.ArrayList; import java.util.List; @Entity public class Team { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>(); public List<Member> getMembers() { return members; } public void setMembers(List<Member> members) { this.members = members; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } package jpql; import jakarta.persistence.*; @Entity public class Member { @Id @GeneratedValue private Long id; private String username; private int age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID") private Team team; @Enumerated(EnumType.STRING) private MemberType type; public MemberType getType() { return type; } public void setType(MemberType type) { this.type = type; } public void changeTeam(Team team) { this.team = team; team.getMembers().add(this); } public Team getTeam() { return team; } public void setTeam(Team team) { this.team = team; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Member{" + "id=" + id + ", username='" + username + '\'' + ", age=" + age + '}'; } }
-
해결됨홍정모의 따라하며 배우는 C++
링킹 에러 관련하여 제가 이해한 것이 맞는지 궁금합니다.
빌드를 하게 되면 .cpp 파일끼리 서로 알게 되는 것으로 알고 있었는데, 선언과 정의를 분리했다고 해서 이전의 내용과는 다르게 추가적인 작업을 해 줘야 하는 것이 이해가 잘 가지 않아 다른 분들 질답글도 찾아보고 제 나름대로 생각해 봤는데, 아래 내용이 맞는지 확인 부탁드립니다.빌드 시 각 .cpp 파일을 컴파일 하며 메모리를 잡고, 그 이후에 링킹을 진행한다. main에서 인스턴스 my_array에 대해 print()를 호출하려면 my_array 선언 시 템플릿 인자로 넘겨주었던 데이터 타입과 일치하는 print()의 body가 메모리에 잡혀있어야 한다.어떤 데이터 타입에 대한 print()를 메모리에 잡을지 알아야 하는 것이 관건이기에, 선언과 정의가 모두 헤더 파일에 위치한 경우에는 문제가 없다. 해당 헤더 파일을 include하는 .cpp파일을 컴파일하면 해당 .cpp 파일 내에서 템플릿 인자로 사용되는 데이터 타입에 대한 인스턴스가 메모리에 잡히기 때문이다.하지만 선언과 정의를 분리한 경우 print()의 body가 위치한 .cpp 파일과 템플릿 인자를 통해 클래스를 사용하는 main은 링킹이 되어야만 서로에 대하여 알 수 있는데, 정작 링킹 시점에서는 main 내에서 사용하는 특정 데이터 타입에 대한 멤버 함수의 메모리가 잡혀있지 않은 상태이므로 링킹 에러가 발생하게 된다.따라서 explicit instantiation으로 미리 특정 데이터 타입에 대한 print()의 메모리를 할당 받도록 하면 링킹 시점에서는 주어진 템플릿 인자에 맞는 함수가 메모리에 위치하게 되어 문제가 해결된다.이렇게 이해했는데 이게 맞는 걸까요...?
-
미해결Apple 출신 개발자의 SwiftUI Basic Part 1 기초튼튼
var body: some View는 기본적으로 Vstack인가요?
@state강의에서 Zstack밑에 Hstack을 넣는데 Vstack안에서 쌓는게아니라 단순히 Zstack과 Hstack이 위아래로 배치되는데아무것도 명시하지않을때는 기본적으로 Vstack처럼 동작하는지 궁금합니다
-
해결됨2시간으로 끝내는 코루틴
Dispatchers 관련 궁금증입니다.
withContext(Dispatchers.IO) { println(“AA : ${Thread.currentThread().name}") val asyncOrigin = async { println(“BB : ${Thread.currentThread().name}") origin.invoke() }} // 결과AA : DefaultDispatcher-worker-1 @coroutine#2BB : DefaultDispatcher-worker-3 @coroutine#3 안녕하세요.Dispatchers 사용부분이 궁급함니다. 따로 asyncOrigin에서 Dispatchers를 다르게 쓰겠다고 설정한게 없는데 결과가 의문이였습니다. 물론 코루틴은 각자 실행이여서 코루틴의 번호가 다른건 이해했습니다만,부모꺼의 스레드를 가져다 쓸거다라고 생각했는데 스레드도 부모꺼를 안쓰고 다른게 맞는걸까요?어떤 원리인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 추가시 회원목록 whitelabel 500
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]회원 추가 전에는 회원 목록 추가 모두 정상적으로 진행되다가 1명이라도 회원가입 하면 회원목록 진입시 whitelabel 500 에러가 뜹니다. 콘솔에는 members:1 Failed to load resource: the server responded with a status of 500 ()이 에러가 뜨고 인텔리제이에서는org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'id' cannot be found on object of type 'java.util.ArrayList' - maybe not public or not valid?이 에러가 뜹니다 https://drive.google.com/file/d/1aIglW2hFY46VkuO2FCaqcOl80ii87AvE/view?usp=sharing 감사합니다.
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
my sql 접속오류
[제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c에러 해결하기위해 권한 방화벽등 구글링으로 해결하려 했지만 계속 접속오류가 나네요힘들어요데이터베이스 Access denied for user 'root'@'localhost' (using password: YES)힘들다 갑자기 이 오류가 뜬다 권한에 관한 오류인거 같다그래서 데이터베이스 sql을 명령 프롬프트에서 들어가기위해 관리자 권한으로 실행'mysql 은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.ㅋㅋㅋㅋㅋㅋ새로운 오류이거는 환경변수에 들어가 Path설정 해결~이제 다시 접근 mysql 127.0.0.1 -u root -p로 접근하니 오류-u root -p 오해결이제 권한을 부여해준다 root에게GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;GRANT ALL PRIVILEGES ON *.*: 모든 데이터베이스의 모든 테이블에 대한 모든 권한을 부여합니다.'root'@'localhost': 'root' 사용자에게 'localhost'에서의 접속에 해당하는 권한을 부여합니다. 만약 원격에서의 접속도 허용하려면 **'%'**로 변경할 수 있습니다.WITH GRANT OPTION: 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Windows에서 mysql.server 수행 안 됨
"Orders Microservice에서 MariaDB 연동" 강의에서 MariaDB만 설치한 채로 mysql.server start 명령을 수행하시는데 저는 해당 명령이 없다고 나옵니다. MariaDB 바이너리 설치 경로에서 수행해도 마찬가지입니다. 설치한 버전은 강의에서 사용한 버전과 동일합니다.해당 폴더를 보면 mariadb.exe, mariadbd.exe, mysql.exe, mysqld.exe 등의 파일이 있긴 합니다.
-
미해결웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
APMSetup monitor 질문
APMSetup monitor이 다음과 같이 사용 불가로 뜨는데 사용하는데 지장이 없는가요?magic_quotes 를 수정했을 때도 start 버튼이 눌리지 않아 컴퓨터 재부팅을 몇 번 했더니 magic_quotes 기능이 off 되었습니다.
-
미해결스프링 부트 - 핵심 원리와 활용
프로메테우스에 jvm_info가 없습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]State가 Up이기도 하고 프로메테우스 연동도 잘 됩니강의에서 봤던 다른 것들은 정상적으로 다 조회가 되는데, 유일하게 'jvm_info'라는 것만 조회가 되지 않습니이는 어떤 이유일까요?
-
미해결김영한의 실전 자바 - 기본편
.
.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
10. 마구간 정하기 [ 비슷하지만 다른 해답] 이래도 맞게 푼 걸까요??
채점사이트에서 출력은 "첫 줄에 가장 가까운 두 말의 최대 거리를 출력하세요." 라고 되어 있었습니다.제 생각대로라면 말들이 여러마리니까 가장 가까운 말들의 거리가 말들마다 다를수도 있겠다는 생각이 들어. 최대거리를 구하기 위해 코드를 조금 다르게 쳤습니다. 채점사이트에서는 정답처리 되었는데 확신이 안들어서 이 방식대로 풀어도 되는지 피드백주세요. 또한, 제가 한 방식과 원래 풀이가 어떤 차이가 있는지 궁금합니다.첨부1. 원래 풀이, 내가 생각한 풀이2. 문제 전체 소스코드 *강의 풀이 방식 count()public int count(int[]arr, int distance){ int ep=0, cnt=1; for(int i=1; i<arr.length; i++){ //배치가능 if(arr[i]-arr[ep] >= distance){ cnt++; ep=i; } } return cnt; }*내가 푼 방식 count()public int[] count(int[]arr, int distance){ int [] res = new int[2]; int ep=0, cnt=1; int min = Integer.MAX_VALUE; for(int i=1; i<arr.length; i++){ //배치가능 if(arr[i]-arr[ep] >= distance){ cnt++; min = Math.min(min,arr[i]-arr[ep]); // 말들의 최소거리 ep=i; } } res[0] = cnt; // distance로 배치되는 말의 수 res[1] = min; // 말들의 최소 거리 return res; }*강의 풀이 방식 solution()내부 이진탐색 while문while (lt<=rt){ int mid = (lt+rt) / 2; //mid최소거리만큼 배치했을때 m보다 더 배치할 수 있으므로 거리를 늘린다. if(count(arr,mid) >= m){ // mid : 말들의 최소거리 lt = mid+1; answer = mid; } else rt = mid-1; }*내가 푼 solution()내부 이진탐색 while문while (lt<=rt){ int mid = (lt+rt) / 2; int res[] = count(arr,mid); //mid최소거리만큼 배치했을때 m보다 더 배치할 수 있으므로 거리를 늘린다. if(res[0] >= m){ // mid : 말들의 최소거리 lt = mid+1; answer = res[1]; // answer = mid 가 아닌 count메소드에서 계산한 말들의 최소거리를 넣어준다. //(말들이 여러마리일때 가장 가까운말의 최대거리를 구하라고 문제에 명시되어있어서) } else rt = mid-1; } 전체 소스코드import java.util.*; public class Main { public int[] count(int[]arr, int distance){ int [] res = new int[2]; int ep=0, cnt=1; int min = Integer.MAX_VALUE; for(int i=1; i<arr.length; i++){ //배치가능 if(arr[i]-arr[ep] >= distance){ cnt++; min = Math.min(min,arr[i]-arr[ep]); // 말들의 최소거리 ep=i; } } res[0] = cnt; // distance로 배치되는 말의 수 res[1] = min; // 말들의 최소 거리 return res; } public int solution(int n ,int m, int[] arr){ int answer = 0; Arrays.sort(arr); int lt = 1; int rt = arr[n-1]-arr[0]; //arr[arr.length-1]로 끝내도 큰 차이 없음 while (lt<=rt){ int mid = (lt+rt) / 2; int res[] = count(arr,mid); //mid최소거리만큼 배치했을때 m보다 더 배치할 수 있으므로 거리를 늘린다. if(res[0] >= m){ // mid : 말들의 최소거리 lt = mid+1; answer = res[1]; // answer = mid 가 아닌 count메소드에서 계산한 말들의 최소거리를 넣어준다. //(말들이 여러마리일때 가장 가까운말의 최대거리를 구하라고 문제에 명시되어있어서) } else rt = mid-1; } return answer; } public static void main(String[] args) { Main M = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int m = kb.nextInt(); int [] arr = new int [n]; for(int i=0;i<n;i++)arr[i]= kb.nextInt(); System.out.print(M.solution(n,m,arr)); } }
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
2D게임 개발인데 백터3를 사용하는 이유가 있나요?
이번 프로젝트에서 보통 dir은 Vector3로 사용하시던데 이유가 있나요? 어떤거는 Vector2로하고 어떤거는 Vector3로 해서 살짝 혼란이 오네요. 만약 내가 2D게임을 코드를 짤 때 무엇을 기준으로 Vector2, Vector3 사용을 해야할까요?
-
해결됨CPPG 자격증 취득 과정 (2025년)
T5. 중 ISMS-P 인증심사원 표 수정 요청 드립니다.
페이지의 왼쪽 표의 제목이 등급별 자격 요건이 아니라 경력 대체 요건으로 변경되어야 합니다. 실제 공고 내용을 보면 각각의 구분에 해당하는 경력에 대해서 기술하고 있고, 해당 표는 경력을 대체할 수 있는 요건인데 헷갈리게 되어 있습니다. 동영상 설명도 명확하게 짚어주셨으면 합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
예시 이메일 수정
안녕하세요 혹시 이 부분에서 이메일이 예시 이메일로 들어갔는데 수정하는 방법있나요
-
해결됨코딩테스트 [ ALL IN ONE ]
강의를 다 듣고나서 문제는 어떤걸 푸는 것이 좋은가요?
문제를 풀 수 있는 대표적인 플랫폼을 뽑아보자면Leetcode프로그래머스백준이렇게 있는 것 같은데 강의를 다 듣고 기업 코테를 대비하기 위해서는 어떤 곳의 문제를 풀어보면 좋을까요?
-
해결됨
npx create-next-app 설치할 때 typeScript no/yes 선택이 안됩니다 ㅠㅠ
node.js 수업을 듣고 있는데요 npx create-next-app를 입력한 뒤에Would you like to use TypeScript? >> No / Yes선택을 할 수 있는데 No 선택이 안됩니다.. ㅠㅠ 수업내용은 Would you like to use 뜨는 질문은 모두 No 선택을 하라 했는데선택할 수 있는 방법 알 수 있을까요? √ What is your project named? ... class? Would you like to use TypeScript? » No / Yes 마우스로 No 클릭이 안됩니다..
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
synchronized 사용 시 쓰레드 질문
synchronized를 사용하면 1개의 쓰레드만 이용한다고 말씀해주셨는데startTransaction(); stockService.decrease(id, quantity); endTransation();에서 왜 다른 쓰레드가 먼저 호출되는 상황이 발생하는건가요?이 부분이 이해가 잘 안됩니다
-
해결됨중상급 퍼블리싱을 위한 CSS3의 모든 것
<br>태그 사용 빈도를 줄이게 될 경우의 질문입니다.
안녕하세요 쌤~ 제가 지금까지 디스플레이 이해도가 낮아서br 태그를 엄청 썼었는데요,(display 속성 이해도가 없을 경우 생기는 비 웹 표준 코딩)강의를 보고 무릎을 탁 쳤습니다..!!ㅠㅠ 그러다 문득 드는 생각이 있더라고요. 강의에 나온 예문에는 span 태그를 block 속성으로 바꿔서줄바꿈을 하는 건 이해를 했는데요, h1과 span 이라, 짧은 문장이라 쉽게 이해되는데밑에 첨부한 사진처럼 p 태그 안에 문단을 바꿔야 하는 장문일때는 줄바꿈을 어떻게 해야 좋을까요?
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
수업 이미지 파일
안녕하세요 선생님 강의에서 나오는 이미지 파일은 어디서 다운 받을수 있는지요??????
-
미해결롱런하는 슈퍼 개발자가 되기 위한 필수 지식, IT 인프라 기초 총정리
애플리케이션 서버의 동적 컨텐츠가 동영상?
안녕하세요섹션1의 "서버의 역할과 종류" 강의 7:00 시점에 설명하고 계신애플리케이션 서버가 제공하는 동적 콘텐츠에 대해움직이는 컨텐츠가 동적 콘텐츠라고 설명하고 계십니다.눈으로 움직임을 관찰할 수 있는 컨텐츠, 동영상, 반짝이는 효과같은 걸 동적컨텐츠라고 설명하고 계신데이게 저는 잘못된 설명같습니다. 웹 서버 - 정적 컨텐츠 - 이미지, 텍스트 파일 - Apache HTTP server어플리케이션 서버 (WAS) - 동적 컨텐츠 - 어플리케이션 내부 로직에 따라 변하는 데이터 - Apache Tomcat Server 위와 같은 개념으로 알고 있는데요,설명하신 동영상도 결국 시퀀스가 정해진 이미지들이 압축된 형식의 파일같은 거라 정적인 컨텐츠로 봐야할 것 같은데요,.. 동적이라는게 진짜 움직여서 동적이라고 하는게 아니라로직에 따라 변화하기 때문에 동적이라고 하는 것으로 알고 있습니다.. 수학에서 말하는 상수가 정적, 변수가 동적에 대응한다고 봅니다..다른 서적들을 봐도 그리고 개발자로서 경력상was의 동적 컨텐츠를 동영상이라고 하는 설명은 처음 듣네요... was = 동적 컨텐츠 = 동영상으로 설명해버리셔서 그 뒤에 이어지는 was 역할도 동영상을 비유해서 하셨는데 잘못된 것 같습니다...was에는 예를 들어 jvm이 구동할 수 있는 java 프로그램이 설치됩니다.클라이언트의 요청을 받아서 java프로그램이 처리할 수 있게 하는 서버가 was(어플리케이션 서버)입니다.개발자가 프로그래밍 한대로 데이터가 응답되겠죠..그래서 동적 컨텐츠라고 하는 것으로 알고 있습니다. 혹시나 제가 잘못 이해한 것이라면 죄송합니다.그러나 강의에서 잘못 설명하신 거라면 꼭 정정하셔야 할 것 같습니다. 확인 부탁 드립니다.감사합니다.