묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
블로그 기술
김영한 님의 강좌를 쭉 따라 공부중인데 뭔가 강의 소스를 블로그에 정리해도 될지 몰라서 노션에만 정리해놨는데요,..! 이직 준비하면서 꾸준함을 나타내고 싶어서 블로그에 차근차근 올려보려는데 어느정도 까지 올려도 되는지 궁금합니다
-
해결됨실전! Querydsl
계층구조로 join이 일어나는 경우에 대한 질문입니다..
@Table(name = "a") @Entity @Getter public class AEntity { @Id @Column(name = "a_id") private Long aId; @OneToMany(mappedBy = "aEntity") List<BEntity> bList; public void initializeClist() { bList.stream().map(BEntity::getCList).forEach(Hibernate::initialize); } }@Table(name = "b") @Entity @Getter public class BEntity { @Id @Column(name = "b_id") private Long bId; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "a_id") private AEntity aEntity; @OneToMany(mappedBy = "bEntity") List<CEntity> cList; }@Table(name = "c") @Entity @Getter public class CEntity { @Id @Column(name = "c_id") private Long cId; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "b_id") private BEntity bEntity; }안녕하세요. 수업을 아직 수강중인 학생입니다.위와같이 A -> B -> C 아래로 OneToMany 관계로 LeftJoin을 해야한다고 하면어떤식으로 코드를 짜야하는 걸까요?displayRwdbJpaQueryFactory .selectFrom(QAEntity.aEntity) .leftJoin(QAEntity.aEntity.bList, QBEntity.bEntity) .fetchJoin().fetch();.fetchJoin을 써봤는데.. 한번은 되는데 두번은 안되더라구요..bList.stream().map(BEntity::getCList).forEach(Hibernate::initialize);@BatchSize 주고 위처럼 initialize 해봤는데..테이블 계층구조가 여기서 끝나는게 아니라서.. 이런식으로 처리 되기에는 조금 무리가 있을것 같습니다.장고끝에 조언을 구합니다.. 도와주세요.. ㅠㅠ
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
quiz_09 를 이렇게 작성해도 되나요?
안녕하세요! 좋은 강의를 통해 아주 조금씩이나마 자바를 알아가고 있습니다. Quiz_09의 조건을 잘못 이해하고 아래와 같이 구현을 하였습니다. 코드를 이렇게 작성할 경우 문제점이 발생할 수 있는지, 있다면 어떤 문제점이 있는지 알고 싶습니다.[_Quiz_09.java]package chap_09; import chap_09.student.Student; public class _Quiz_09 { public static void main(String[] args) { Student st = new Student("자바"); st.getStudent(); } }[student > Stundent.java]package chap_09.student; import java.util.HashMap; public class Student { public String license; public Student(String license) { this.license = license; } public void getStudent() { HashMap<String, String> map = new HashMap<>(); map.put("유재석","파이썬"); map.put("박명수","자바"); map.put("김종국","자바"); map.put("조세호","C"); map.put("서장훈","파이썬"); for(String key : map.keySet()) { if(map.get(key).contains(license)){ System.out.println(key); } } } }
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
404 오류 질문입니다.
안녕하세요 5강의 GET 부분 진행하는데 404 오류가 계속 떠서 문의드립니다. 서버도 정상적으로 실행되고 타 프로젝트에서는 정상적으로 localhost:8080이 동작하는데 이 프로젝트만 계속 404 오류가 발생하네요..Java 11 사용중이고 Gradle Reload 해봐도 해결이 안돼 질문글 남깁니다..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build.gradle 빌드 실패 에러(JDK 17.0.6, Spring boot 3.0.7)
안녕하세요, build.gradle의 빌드 실패가 나서 문의드립니다. JDK 버전은 다음과 같이 17.0.6입니다.그리고 인텔리제이 설정은 다음과 같습니다.java 컴파일러 설정2. 빌드 도구 설정3. 프로젝트 설정마지막으로 처음 프로젝트를 다운로드 받았던 설정은 다음과 같습니다.(spring boot 3.0.7 버전 사용)처음 build.gradle을 실행할 때부터 에러 로그 하나도 없이 그냥 빌드 실패했다는 에러가 뜹니다.컴퓨터를 여러번 껐다가 켜봐도 여전히 같은 에러가 뜹니다. 인텔리제이와 스프링이 완전 처음이라서 이 에러를 어떻게 해결해야 하는지 모르겠습니다. 커뮤니티의 다른 글들을 참고해봐도 딱히 도움이 되지는 않는 것 같습니다. 도와주시면 너무 감사하겠습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
채점 사이트 더이상 지원 안 하나요?
원래 강의 수강 화면 우측 상단에 채점 사이트 버튼이 있었는데 사라졌네요https://cote.inflearn.com/ 으로 바로 접속을 시도해도 로그인 하라고만 계속 뜹니다...버튼을 클릭해서 접속해야 로그인이 된 상태로 접속이 되는 것 같습니다.감사합니다.추가: 혼란을 야기해서 죄송합니다. 인프런 PC 환경에서 문제가 좀 있는 것 같네요. 모바일로 접속하면 채점 버튼이 잘 보이는데 PC 환경에서는 강의 자료 및 채점 버튼 모두 안 보입니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
영속성 컨텍스트 저장(persist())과 커밋의 관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요!에서 커밋되지 않기 때문에 INSERT문 안나가는건 이해 되는데요. persist()에 의해 영속성 컨텍스트에는 저장이 되어서 SELECT문도 안나가고 그냥 영속성 컨텍스트에서 가져와야 하는거 아닌가 라는 의문이 생겨서요.커밋 직전에 플러시 되면서 디비로 쿼리 나가는 건 알고 있었는데, 혹시 영속성 컨텍스트에 저장되는 것도 커밋이 되어야 일어나는 일인가요??어느 부분을 잘못 생각하고 있는건지 모르겠어요. 답변 부탁드려요!!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
자막 관련 기능
안녕하세요 혹시 자막 관련 기능은 지원하지 않는지, 궁금합니다.청력이 좋지가 않아서 듣고는 있는데 약간 애로사항이 생기네요.
-
미해결실전! Querydsl
QueryDsl 의 Qclass 에 대해
Q클래스와 같이 엔티티가 하나씩 더 생기는 데 왜일까요? 괜찮은건가요?? 예 : Hello QHello 이렇게 사진 처럼 생기네요 .
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
설정 파일 관리 방법 질문(spring X)
기존 프로젝트(spring X)에 jpa를 적용하는 중인데, persistence.xml 파일로 설정 후Persistence.createEntityManagerFactory("test");호출 시 아래의 예외가 발생하는 이슈가 있습니다.java.lang.NoSuchMethodError: org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar([Lorg/apache/xerces/xni/parser/XMLInputSource;)Vxml 파싱 중 프로젝트에서 사용중인 xerces...jar 파일과 jdk의 rt.jar가 충돌되어 메서드를 찾지 못하는 현상으로 파악중입니다. (일반적인 jpa 예제에서는 rt.jar를 참조해야하지만, 해당 코드에서는 xerces...jar를 참조함)해당 라이브러리를 걷어내기엔 기존 코드의 dependency가 염려되어 다른 파일(yml/properties)로 설정을 관리할 수는 없을까 싶은데, 검색 결과는 대부분 spring jpa 관련 내용이었습니다.jpa 설정 시 xml 파일이 아닌, yml 또는 properties 파일로 관리하는 방법이 있는지 궁금합니다.
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
스프링 시큐리티 WebSecurityConfigurerAdapter deprecated 대체 코드
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 책임 연쇄 패턴에서 스프링 시큐리티 예제코드 중에 WebSecurityConfigurerAdapter를 사용하는 코드가 있는데, 최신 버전을 사용하는 경우에 deprecated되어 사용하지 못하는 듯 합니다. < 대체코드 >@Configuration @EnableWebSecurity public class SecurityConfig { /** * WebSecurityConfigurerAdapter가 Spring Security 5.7.0-M2부터 deprecated 됨. * component-based security configuration으로의 사용자 전환 격려 위함. * 따라서 아래와 같이 bean으로 등록하여 사용. */ @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(auth -> auth.anyRequest().permitAll()); return http.build(); } } 이 경우, 기존 코드를 위의 코드로 작성하시면 됩니다. : )
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티 매니저 프록시 역할
안녕하세요! 질문 좀 드리려고 합니다엔티티 매니저 프록시는 프록시를 싱글톤으로 주입해서 동시성 문제를 해결하고 실제 엔티티 매니저 인스턴스를 ThreadLocal로 관리하는 역할 정도로 생각해도 괜찮을까요?추가적으로 실제 엔티티 매니저는 @Transactional을 사용하면 JpaTransactionManager에서 생성이 되는데 @Transactional을 사용하지 않으면 처음 엔티티 매니저를 사용할 때 생성이 되나요?
-
미해결실전! Querydsl
내가 쓴 SpringBoot 2.7 에서의 queryDsl 설정 방법.
다른 블로그 참고하여 강의에 맞게 설정을 조금 수정하였습니다.새롭게 강의 듣는 분들의 시간을 아낄 수 있을까 싶어 공유드립니다.장점QEntity 생성 경로가 강의와 같습니다.src/main 하위가 아닌 generated 하위에만 QEntity 가 생성 되어 git ignore설정을 따로 해주지 않아도 됩니다.저도 이 강의의 이 회차를 듣고 알아본 것이기 때문에 QEntity 가 잘 생성되어 Run이 잘되는 것만 확인했지 다른 것까지 모두 테스트 해보진 못했습니다. compileQueryDsl 동작 없이 Application Run 하시면 되겠습니다.아래 설정의 잘못된점이 있다면 댓글 달아주시면 모두에게 도움이 될 것 같습니다.내 블로그 : https://elastinn.tistory.com/11블로그 광고해도 되나 모르겠습니다.감사합니다.plugins { id 'java' id 'org.springframework.boot' version '2.7.12' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' // queryDSL 설정 implementation "com.querydsl:querydsl-jpa" implementation "com.querydsl:querydsl-core" implementation "com.querydsl:querydsl-collections" annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // querydsl JPAAnnotationProcessor 사용 지정 annotationProcessor "jakarta.annotation:jakarta.annotation-api" // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드 annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드 runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } //querydsl 추가 시작 def querydslDir = "$buildDir/generated/querydsl" // java source set 에 querydsl QClass 위치 추가 sourceSets { main.java.srcDirs += [ querydslDir ] } // gradle clean 시에 QClass 디렉토리 삭제 clean { delete file(querydslDir) } //querydsl 추가 끝
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1012 - 반례를 모르겠습니다. JAVA
안녕하세요. 큰돌님 강의 잘 보고있습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static int[][] board; static boolean[][] visited; static int[] dy = {-1, 0, 1, 0}; static int[] dx = {0, 1, 0, -1}; static int yLen; static int xLen; static int cnt; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); while (n-- > 0) { int[] given = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); if (given[2] == 1) { sb.append(1).append(System.lineSeparator()); continue; } board = new int[given[0]][given[1]]; visited = new boolean[given[0]][given[1]]; yLen = given[0]; xLen = given[1]; for (int i = 0; i < given[2]; i++) { String[] numStr = br.readLine().split(" "); int y = Integer.parseInt(numStr[0]); int x = Integer.parseInt(numStr[1]); board[y][x] = 1; } for (int i = 0; i < yLen; i++) { for (int j = 0; j < xLen; j++) { if (!visited[i][j] && board[i][j] == 1) { dfs(i, j); cnt++; } } } sb.append(cnt).append(System.lineSeparator()); } System.out.print(sb.substring(0, sb.length() - 1)); } public static void dfs(int y, int x) { visited[y][x] = true; for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= yLen || nx < 0 || nx >= xLen) continue; if (visited[ny][nx] || board[ny][nx] == 0) continue; dfs(ny, nx); } } }위 코드를 실행하면 12%, ArrayIndexOutOfBounds가 발생하는데 어떤 부분인지 알 수 있을까요?
-
미해결실전! Querydsl
양방향 연관관계 편의메서드 작성시
QueryDSL 강의 예제 모델에서 , @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "username", "age"}) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; private int age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; public Member(String username, int age, Team team) { this.username = username; this.age = age; if (team != null) { changeTeam(team); } public void changeTeam(Team team) { this.team = team; team.getMembers().add(this); 이 부분에서 public void changeTeam(Team team) { this.team.getMembers().remove(this); this.team = team; team.getMembers().add(this);아래와 같이 해당 팀의 멤버 삭제도 해줘야 하는것 아닌가요? public void changeTeam(Team team){ if(this.team != null) { // this.team이 null이 아니면 이 member객체는 team이 있음을 의미 this.team.getMembers().remove(this); // 해당 팀의 멤버에서 삭제 } this.team = team; team.getMembers().add(this); }
-
미해결스프링 부트 개념과 활용
mongo shell 명령어 대체 mongo -> mongosh
https://www.mongodb.com/docs/manual/release-notes/6.0-compatibility/#legacy-mongo-shell-removedmongo 명령어가 mongodb 6.0이상부터 mongosh 명령어로 대체되었습니다학습하시는분들 참고하세용~
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)
힙메모리
힙메모리는 선입선출이 아닌가요?선입선출이라면 부모 클래스가 밑에 먼저 쌓여야 맞는거죠?
-
미해결스프링 시큐리티
강사님께 말씀드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 먼저 본 강의는 88000 원에 책정되어 있음을 알려 드립니다. 어디에 13만원으로 되어 있는가요? 현재 강의를 1섹센을 듣고 계시는 중인데 그 중에 현재 5개 강의를 학습한 걸로 나옵니다. 참고로 1섹션과 2섹션은 개념과 이론을 학습하는 부분이라 원래부터 강의 소스 자체를 제공하지 않고 있습니다. 5개의 강의를 들으셨는데 이미 완성된 소스라고 말씀하시는 기준이 무엇인가요? 1섹션에서는 이미 완성된 소스라는 개념 자체가 성립이 되질 않습니다. 강의소스는 깃헙에 섹션 3부터 브랜치 별로 제공되고 있습니다. 혹시 master 브랜치만 보고서 말씀하시는건지 모르겠지만 글을 작성하실 때는 정확히 사실에 기반해서 작성해 주시길 정중히 요청드립니다. 라고 수강평에 글을 올려주셨는데 제가 구매할 당시에는 이 강의는 8만8천원이 할인가였고 정가는 13만원이었습니다. 정확한 사실이고요. 섹션 1,2만 수강했다고 하는데, 지금 섹션3강의에 첫번째 강의를 듣다가 글 올렸습니다. 그러니 강사님께는 조회가 되지 않겠네요? 섹션3에서 강의를 열자마자 이미 소스가 어느정도 완성된 상태에서 강의를 진행하시잖아요? 사실에 기반하여 작성하고 있는 것 맞구요. 브랜치마다 소스도 어느정도 완성되어서 글을 올려주시잖습니까? "먼저 죄송한 말씀 드립니다.강의 소스가 강의 챕터별로 제공되지 못해 불편을 겪고 계시리라 생각합니다.제가 강의 소스를 당시 브랜치별로 만들었는데 master 를 제외하고 실수로 날려버렸습니다.다행이 얼마전 복구가 되었는데 좀 오래전이라 강의에 사용되던거와 완전 일치하지는 않을 것 같습니다.실전 프로젝트편 소스입니다.여기 가시면 브랜치별로 생성이 되어 있습니다.다만 브랜치명이 숫자로 되어 있어서 각 브랜치가 어떤 강의에 해당되는지 찾으셔야 할 것 같습니다.실전프로젝트 편 챕터순으로 되어 있으니 찾기가 그렇게 어렵지는 않을 것 같습니다.불편을 드려서 거듭 죄송합니다." 그리고 위와 같이 글을 작성해주셨는데, 강의를 구매한 사람에게 제대로된 서비스를 해주시고 계신것 맞습니까? 브랜치에 제대로 이름이 적혀있지도 않구요. 챕터순으로 되어있다는데 브랜치에 CH가 섹션입니까? 제가 이런걸 하나하나 게시판에 글을 올려서 확인받고 소스를 확인해야하나요? 애초에 제대로 공지해주시면 이렇게 되새김질 하지 않는데요. 제대로 서비스를 제공해주시고 계시지 않다고 생각 안드시나요?
-
미해결스프링 시큐리티
강사님? 섹션3의 있는 실전 프로젝트 생성강의에서
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 실전 프로젝트 생성강의에서 이미 코드가 admin, user쪽 모두 생성되어있는것같은데 깃허브 링크로 알려주세요. https://github.com/onjsdnjs/corespringsecurity이거 말구요~ 어느 브랜치인지 정확히 말씀주셔요^^
-
미해결스프링 시큐리티
강사님께 얘기합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님. 소스코드를 날렸더라면, 강의 소스코드를 다시 만들어주시던가 하셔야하지 않을까요?얼마전 복구가 되었다하더라도 완전히 일치하지 않는다는게 '나몰라라'식이라서수강하는 입장에서는 괜히 학습했다는 입장입니다. 브랜치가 챕터순으로 되어있다는데, 저희는 섹션순으로 학습을 합니다만, 무슨 말씀인지 이해가 안되네요.불편을 주셨다면 이에 대해 강사님이 다시 소스를 올려주시던가 해야하지 않나요? 8만 8천원이나 금액 측정하셨다면 그에 대한 학습 퀄리티도 그만큼 준비하시는게 맞는데 뭐하자는 겁니까.아무리 스스로 학습하라고 하지만, 이에 대해 강의에 있는 소스와 전혀 다른데 뭘 어떻게 학습하란 얘기입니까.어떤 브랜치인지 정확히 기재해주던가 하세요. 이런거 기재도 못해주시나요?