inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

즉시 로딩을 사용하면 좋을 때가 있을까요?

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 강의 정말 잘 듣고 실무에서도 열심히 사용하고 있습니다. 강의에서 lazy loading과 fetch join을 활용하여 최적화 하는 부분에 대해서는 이해를 하고 있습니다. 그렇다면 eager loading은 사용을 피해야하는 걸까요? 아니면 어떤 케이스에 대해서는 즉시 로딩이 더 실무적으로 유용한 경우가 있을까요? 즉시 로딩이 사용을 지양해야 된다면 JPA에서 굳이 만들지 않았을 것 같은데 어떤 상황에서 사용해야할지에 대해 의문점이 듭니다. 제가 생각했을 땐 테이블 분리를 위해 엔티티를 나누었지만 항상 같이 조회되는 상황이나 OneToOne 상황에서는 크게 상관없을 것 같긴한데 필요없는 컬럼까지 즉시 로딩으로 가져오는게 성능에 크게 영향을 끼치는지에 대해 궁금합니다. 이외에도 실무적으로 이럴 땐 지연 로딩보단 즉시 로딩이 더 적합하다라는 상황이 있다면 조언 부탁드리겠습니다. 감사합니다!

  • java
  • spring
  • spring-boot
  • jpa
Byunguk Ahn 댓글 1 좋아요 0 조회수 426

공백이 왜 생기는지 모르겠어요

미해결

홍정모의 따라하며 배우는 C언어

8.5 숫자이 모든 문자를 섞어서 입력받기 강의에서 공백이 왜 생기는거에요?

  • c
강민석 댓글 1 좋아요 1 조회수 287

4번 문제 group by 질문

미해결

[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이

select h.hacker_id, h.name from Submissions s inner join Hackers h on s.hacker_id = h.hacker_id inner join Challenges c on s.challenge_id = c.challenge_id inner join Difficulty d on c.difficulty_level = d.difficulty_level where d.score = s.score group by h.hacker_id having count(h.hacker_id) > 1 order by count(h.hacker_id) desc, h.hacker_id 제가 푼 답안인데 틀렸다고 나옵니다. group by h.hacker_id, h.name 2개를 해줘야 정답으로 나오는데 hacker_id만 그룹화 해서 묶어도 되는거 아닌가요? select 에 h.hacker_id, h.nam e 이 두개의 컬럼을 다 group으로 묶어줘야 되는 이유가 있나요? 이해가 되지 않습니다.

  • sql
hipass4 댓글 2 좋아요 0 조회수 382

5-G while(1)문 내부를 이렇게 하면 왜 안될까요?

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

if(hi==p)break; if(sum<n)sum+=a[hi++]; else sum-=a[lo++]; if(sum==n)ret++; 왜 순서를 바꾸면 오류가 날까요?

  • c++
  • 코딩-테스트
조현성 댓글 2 좋아요 0 조회수 318

while(getchar() != '\n') continue; 이부분 질문이요

미해결

홍정모의 따라하며 배우는 C언어

3분 20초 쯤에 while(getchar() != '\n') continue; 이걸 사용하면 빈칸 공백 없애주는거라고 하셧는데 이게 왜 빈칸 공백 없애 주는건지 모르겟어요 엔터키누르는게 아니면 continue로 뒤에꺼 실행안되게 하는 함수라고 생각하는데 빈칸 없애는거랑 무슨 관련이 있나요?

  • c
강민석 댓글 1 좋아요 1 조회수 287

Dio onRequest Interceptor 작업하기 질문입니다

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

Dio onRequest Interceptor 작업하기에서 다른 에러는 없는데 디테일 화면이 안나오고 이런에러가 뜨네요.

  • flutter
  • 하이브리드-앱
댓글 2 좋아요 0 조회수 588

페치 조인 질문있습니다!

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 컬렉션의 필요성에 대해 질문 좀 드리겠습니다 - 인프런 | 질문 & 답변 (inflearn.com) 여기서 궁금한 내용있습니다!. 1)"생각하신 내용이 맞습니다. 중간 테이블을 중심으로 조회가 가능하다면 크게 문제가 없습니다. 하지만 때때로 중간 테이블을 중심으로 조회하기 어려운 경우들도 있습니다." 김영한 강사님의 답변 내용 중에 떄떄로 중간 테이블을 중심으로 조회하기 어려운 경우가 어떤 경우인지 구체적으로 알려주실수 있나요?? 일단 다대다=>중간테이블 필요=>성능 최적화 필요하면=>중간테이블에 해당하는 리포지토리 생성후 (Spring data JPA에서) @Query(fetch join)사용하는식으로=> 맨날 이런식으로 했었는데 중간 테이블 중심으로 조회하기 어려운 경우가 어떤 경우인지 궁금합니다. 2)BatchSize를 사용하는 경우 일대다의 일의 collection에 해당하는 다( members) 를 일의 BatchSize에 해당하는만큼 가지고 오지 않습니까? for (Team team : teams) { System.out.println("team:"+team.getName()); for(Member mem:team.getMembers()){ System.out.println(mem.getUsername()); } } 여기서는 성능 최적화가 이해가 됩니다!. team이 붙어있으므로 배치 사이즈만큼만은 mem.getUsername()이 호출되어도 또 그때동안은 쿼리가 안나가니깐요. 근데 궁금한게 IN 쿼리에 들어가는게 BatchSIze만큼의 TeamID인데 연속한 ID만큼 나가는 걸로 알고 있는데 위처럼 연속한 경우는 몰라도, Team을 이것저것 조회하고 그에 대한 member의 메서드를 호출하면 이게 성능상 좋은가요?

  • java
  • jpa
dionisos198 댓글 2 좋아요 1 조회수 597

커넥트를 이용한 데이터 마이그레이션 질문드립니다

미해결

카프카 완벽 가이드 - 커넥트(Connect) 편

안녕하세요, 양질의 강의 항상 감사드립니다! 다름이 아니라 현재 실무에서 스프링 배치를 이용해서 데이터를 DB to DB 로 마이그레이션하는 업무가 있는데 이를 강의에서 배운 카프카 커넥트를 활용하면 좋을것 같아서 고민중인데 잘 안풀리는 부분이 있어 질문드립니다 데이터 가공문제 DB to DB 로 이관시 가장 좋은것은 커넥트만 써서 코드개발없이 마이그레이션 해버리는 것이 좋을것같은데 막상 실제 마이그레이션 할 때는 source 에서 퍼온 데이터를 sink 시 몇몇 컬럼은 데이터 가공하거나 없어지는 등 가공에 약간 손을 봐야하는 경우가 종종 있어서 이런 케이스에 대해 어떻게 해결을 해야할 지 고민입니다. 고민을 해봤을 때 해결방안으로는 streams api 를 껴서 아래와 같은 아키텍쳐로 해결하는 방법이 있을 것 같은데요 source -> topic -> kafka stream api 등을 통해 데이터 가공 후 topic 전송 -> sink 커스텀 sink 나 source 커넥터 개발 어느 방법이나 결국 추가개발이 필요한건 매한가지라 현재 배치로 개발해놓은 구조를 커넥트를 이용하도록 바꿨을 때 이점이 명확하게 안보여서 좀 고민입니다... 데이터 마이그레이션 후 검증문제 실무에서 배치로 마이그레이션 후 원본데이터가 있는 source db 와 마이그레이션 한 sink db 간에 건수비교 등 데이터 이관이 잘 되었는지 대사비교를 진행하는데요, 카프카 커넥트로 전환한다고 해도 이러한 대사비교는 여전히 필요하지 않을까 싶은데 실무에서 카프카 커넥트를 활용할 때 이러한 검증 문제를 어떻게 해결하는지 궁금합니다 카프카 커넥트를 실무에서 활용한 경험이 없다보니.... 강사님이라면 이러한 문제에 직면했을때 어떤 생각을 가지실 지 궁금합니다! 감사합니다:)

  • kafka
  • 데이터-엔지니어링
Chung A 댓글 1 좋아요 0 조회수 715

구현에 관한 질문

미해결

스프링 핵심 원리 - 기본편

DiscountPolicy와 같은 인터페이스들을 fixdiscount, ratediscount 등 클래스가 상속을 받고 main에서 클래스를 사용할때 부모클래스로 구현을 하잔아요 예를 들어 영상에서 코드를 보면 DiscountPolicy discountpolicy = new RateDiscountPolicy 의 형식처럼 구현되는데 만약에 자손 클래스에 새로 메서드를 추가를 했는데 그 메서드를 부모가 가지지 않았다면 그 메서드를 다운캐스팅을 통해 쓰는 건가요?? 아니면 메서드를 부모 인터페이스에도 적어주어 오버라이딩으로 활용하는 것이 좋나요? 수업에서 계속 다형성을 활용해 진행하기 때문에 이런 궁금점이생겼습니다.

  • spring
  • 객체지향
문지수 댓글 3 좋아요 0 조회수 342

에뮬에 오류가 뜨네요(WebView)

미해결

[LV1] Jetpack Compose - UI 연습하기

class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MyWebView("https://www.daum.net/") } } } @Composable fun MyWebView(url : String) { AndroidView(factory = { WebView(it).apply { loadUrl(url) } }) } 강사님의 노고에 다시한번 감사드립니다 위의 코드를 작성한 후 AndroidManifest.xml 의 내용에 <uses-permission android:name="android.permission.INTERNET" /> <application ... android:usesCleartextTraffic="true" > 두가지를 추가한 후 앱을 실행하니 에뮬에 아래와 같은 오류가 뜨네요

  • android
  • kotlin
  • jetpack
shafeel2 댓글 2 좋아요 0 조회수 337

def문에 대해 질문 있습니다

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

listbox = [15,46,78,24,56] def min_max(data): mi = min(data) ma = max(data) return mi,ma min_max(listbox) 이 부분에서 코드가 어느 단계로 움직이는지 이해가 잘 안됩니다.min_max라는것을 임의로 지정해주고, mi에 최솟값,ma에 최대값을 저장하는것까지는 알겠는데, 그 밑에 부터 이해가 안가요return에 mi,ma는 위로 되돌아가라는건가요? 밑에 왜 다시 min_max(listbox)를 해주었을때 15,78이 나오는지 모르겠어요. listbox안에는 15,46,78,24,56이 저장되어 있는거 아닌가요? 그리고 data라는 입력값을 써주었는데 코드에 보면 data라는 값을 지정을 안해주었는데 어떻게 오류가 안나는건지도 궁금합니다!

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
hj2930hj 댓글 1 좋아요 1 조회수 372

5-A와 C는 거의 같은문제인가요?

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

네

  • c++
  • 코딩-테스트
조현성 댓글 2 좋아요 1 조회수 381

spring boot 3.0 이상에서 H2 사용 시 Database not found 문제 해결법 공유

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

spring boot 3.0이상에서 H2 사용할 때 test connection에서 실패하는 경우가 있을 수 있습니다. 에러 메시지로 Database "mem:testdb" not found, either pre-create it or allow remote database creation. 이 뜬 경우 아래와 같은 해결책을 사용할 수 있습니다. 우선 에러의 원인은 mem:testdb 데이터베이스가 존재하지 않기 때문에 발생합니다. H2 1.4이상 버전부터는 보안 상 문제 때문에 스프링부트 기동 시 데이터베이스 자동 생성을 막아두었다고 합니다. DB가 없으니 위와 같은 에러 메시지가 발생한 것이죠. H2 dependency 버전을 다운그레이드 시켜도 되겠지만, 솔직히 최신 버전의 dependency를 사용하고 싶잖아요? 문제 해결을 위해서 수동으로 데이터베이스를 생성하면 됩니다. 해결법은 생각보다 간단한데요. 임의의 더미 Entity를 만들어서 DB 생성을 유도하게 만들면 됩니다. 자세한 방법은 해당 블로그의 글을 참고하시기 바랍니다. https://shanepark.tistory.com/435

  • spring-boot
  • jpa
  • spring-cloud
  • h2
bascat 댓글 2 좋아요 6 조회수 3670

푸시 알림이 안옵니다ㅠ. [IOS]

해결됨

배달앱 클론코딩 [with React Native]

안녕하세요 강의 잘 듣고 있습니다.! 푸시알림이 안와서 이틀째 삽질중입니다 .ㅠ firebase 클라우드 메시지 테스트로 처음에 한번 알림이 왔었는데 완료할때 푸시 알림이 아예 안옵니다.. server.js 완료 했을때 리턴값 IOS 설정 firebase 버전

  • react-native
데브핑 댓글 1 좋아요 0 조회수 902

Error: ClientException: XMLHttpRequest error.

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

플러터 앱에서는 발행하지는 않구요 웹에서 발생합니다. Error: ClientException: XMLHttpRequest error. 검색해보니 우회 하는 방법이 있지만 올바른 방법은 아닌거 같구요 https://nomadcoders.co/community/thread/7643 최종해결방법은 api서버를 https로 구성해야 하는것일까요? 그렇게하면 한PC에서는 사용은 할수 있는건지 궁금합니다.

  • flutter
  • 클론코딩
View K 댓글 1 좋아요 0 조회수 795

목업에 입혀지지 않아요.

미해결

일러스트로 나만의 로고디자인 만들기

6:22초에 저장을 누르면 로고가 목업에 입혀지는것을 볼 수 있다고했는데, "저장"이라는 글자는 안보이고 "X"를 눌렀을 때 저장이 뜨긴합니다. 그래서 저장을 누르면 목업에 입혀지지 않고, 그냥 닫혀버립니다. ... 강사님께서 가져오신 목업의 자료도 올려놓지 않고 어떤 목업이라는 사이트에 어떤걸 가져오셨는지 언지도 하지않고 갑자기 시작해버려서 어떤 목업을 사용했는지는 모르겠지만 저는 목업월드에서 Business card 검색해서 나온것으로 가져왔습니다. 결론적으로 질문은 저장을 눌렀을 때 목업에 입혀지지 않고, 그냥 닫혀버리는것이 질문입니다.

  • Illustrator
xotmfrlox 댓글 2 좋아요 0 조회수 1095

@JoinColumn 엔티티 객체 반환

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. package hellojpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); //persistence.xml에 설정한 UnitName을 인자로 넣어주면 해당 persistence.xml 읽어서 // 팩토리 생성 완료. (내부적으로 jdbc 써서 DB와의 connection도 완료된 상태) EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setUsername("member1"); member.setTeam(team); em.persist(member); em.flush(); em.clear(); ///////////////////////////////////////////// Member findMember = em.find(Member.class, member.getId()); Team findTeam = findMember.getTeam(); System.out.println(findTeam.getName()); tx.commit(); } catch(Exception e) { tx.rollback(); } finally { em.close(); } 수업 듣다가 궁금한 점이 생겨 질문 남깁니다! em.clear() 하면 영속성 컨텍스트 초기화 되니까 그 다음 em.find() 는 DB서버에 쿼리문 날려서 내부적으로 객체 필드 초기화해서 반환합니다. 그런데 DB에는 TEAM_ID 컬럼에 그냥 숫자가 들어가있는데 어떻게 findMember의 Team 필드가 해당하는 Team객체로 초기화 될 수 있었던건가요?? <가설> /////////////////////////////////////////// 표시한 부분 바로 아래의 Member findMember = em.find(Member.class, member.getId()); Member 엔티티 객체의 team 필드와 Member 테이블의 TEAM_ID가 @JoinColumn 연관 관계 및 FK 설정 되어있다. referencedColumnName 의 default 값으로 인해 MEMBER 테이블의 FK가 TEAM 테이블의 PK를 참조한다. em.find(Member.class, member.getId()); 하면 JPA가 TEAM_ID(FK)로 MEMBER 와 TEAM을 JOIN해서 얻은 데이터로 원하는 Member 객체와 연결된 Team 객체를 초기화할 수 있다. Team 객체 초기화한 것을 Member 객체의 team 필드에 넣어서 Member 객체 초기화를 완료한다. 이를 반환한다. 이렇게 생각하는 것이 맞는건가요??

  • java
  • jpa
재윤 댓글 1 좋아요 0 조회수 426

테스트 코드와 DataSourceUtils

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] Transactional이 작동을 안 하길래 찾아보다가, DataSourceUtils.getConnection을 사용하지 않고, (DataSource 객체).getConnection을 써서 그런간가 싶어서 이것을 수정하려 했는데, 이러니까 테스트 코드가 작동이 안되네요... 테스트 코드와 DataSourceUtils가 어떠한 연관이 있는 건가요? (DataSource 객체).getConnection으로 DB를 연동하면 테스트 코드가 잘 되는데, DataSourceUtils.getConnection으로 하면 실행할땐 잘 되지만, 테스트 코드로 하면 데이터베이스 연동에 오류가 나는 것 같네요...

  • java
  • spring
  • mvc
  • spring-boot
1201ljhun 댓글 3 좋아요 0 조회수 434

reduce 예제 코드 제안!

미해결

함수형 프로그래밍과 JavaScript ES6+

const reduce = (f, iter, acc) => { if (acc === undefined) { iter = iter[Symbol.iterator]() acc = iter.next().value } for (const v of iter) { acc = f(acc, v) } return acc } console.log(reduce(add, [1, 2, 3, 4, 5], 0)) console.log(reduce(add, [1, 2, 3, 4, 5])) 강의 언제나 즐겁게 듣고 있습니다! reduce 파트 듣다가 js reduce에 가까운 구현은 이쪽이 아닐까 싶습니다! 초기 값이 존재하지 않을 때, 배열의 첫번째 요소를 사용하는 사례를 더 잘 표현한 것 같습니다.

  • javascript
  • 함수형-프로그래밍
  • redcue
learning 댓글 1 좋아요 0 조회수 431

인기 태그

인프런 TOP Writers

주간 인기글