inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

스프링 JdbcTemplate강의를 듣고 궁금한 점이 생겨 질문드립니다.

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 다른 강의의 내용에서 스프링 빈에 dataSource와 JdbcTemplate이 등록이 되어 있는 내용을 보았습니다. 그래서 dataSource를 통해 DB와 커넥션을 만드는 부분에서는 새로운 객체를 생성하지 않고 dataSource를 받아와 의존성 주입을 받았는데 여기에서는 JdbcTemplate의 새로운 객체를 생성하여 의존성 주입을 받는데 그러면 싱글톤에서 위배가 되는것 아닌가요? 다른 강의에서는 SQL을 DB로 사용하였습니다. 혹시 DB의 차이에 따라 위와 같이 새로운 JdbcTemplate의 객체를 생성할 수 있는 걸까요?

  • java
  • spring
  • mvc
  • spring-boot
꽓꼵이 댓글 1 좋아요 0 조회수 319

트랜잭션 관련 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 현재 컨트롤러에서 직접 리포지토리를 접근하는데 예전 강의에서 단순 엔티티 조회할때는 실용적인 관점으로 서비스를 통해 접근하는 것이 아닌 리포지토리로 바로 접근하기도 한다는걸 들었습니다. 이번 강의에 그 점이 적용이 된거 같습니다. 여기서 궁금점은 jpa의 모든 데이터 변경은 트랜잭션 안에서 실행된다고 하셨는데 현재 레포지토리에 바로 접근하면서 @Transactional 애노테이션을 사용안하는 것을 확인하였습니다. 단순 조회에서는 트랜잭션을 시작할 필요가 없는 건가요? 아니면 숨겨진 기능이 있는건지 궁금합니다!

  • java
  • spring
  • spring-boot
  • jpa
장재현 댓글 1 좋아요 0 조회수 161

플러시와 persist()에 대해 질문 있습니다.

해결됨

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

플러시가 발생하여 쓰기 지연 저장소에 쌓여있던 쿼리들이 DB에 보내지게 되면 쓰기 지연 저장소에 쌓여있던 쿼리들은 삭제되나요 아니면 그대로 남아있나요? pk 생성 전략이 identity일 경우 persist()할때 쓰기 지연 저장소로 가는게 아니라 DB로 바로 보내지고 id 값을 얻어온다고 이해 했습니다. 그러면 persist()할때 생긴 insert into 쿼리가 DB로 보내지는데 이때 커밋하기전이라 DB에는 반영이 안되는건가요? DB 내부에서 버퍼? 같은 곳에서 보관했다가 커밋했을때 insert into 쿼리가 작동되는건지 궁금합니다.

  • java
  • jpa
감바스 댓글 1 좋아요 0 조회수 119

로딩에 대한 질문

미해결

Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)

현재 투두 페이지에서 새로고침을 하면 empty -> loading -> todolist 보여짐 이렇게 되는데, loading -> empty loading -> todolist 와 같이 로딩 후에 데이터가 없으면 empty가 보여지고, 데이터가 있으면 todolist가 보여지는 구조로 가야하지 않나요?

  • react
  • 클론코딩
  • next.js
  • supabase
Malik KIM 댓글 1 좋아요 1 조회수 214

C언어에서의 정적 변수 vs JAVA에서의 정적 변수

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

질문 그대로입니다. 약간 쓰이는 개념 자체가 다른거 같아서 질문드립니다.

  • java
  • c
  • 정보처리기사
hattman 댓글 1 좋아요 0 조회수 246

14강. 유저 업데이트 API, 삭제 API 개발과 테스트 수정하기 안됨

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

코드대로 글을 잘 작성하고 POST,GET,DELETE도 전부 잘 동작하고 db에서도 확인이 되는데, 수정하기만 동작하지 않습니다..어떻게 해야할까요.. 수정하기 버튼을 누를시 아무런 화면의 변화가 없습니다.

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
hsk7953 댓글 2 좋아요 0 조회수 209

em.clear 후 프록시 초기화 문제

미해결

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

안녕하세요 :) Member refMember = em.getReference(Member.class, member.getId()); em.clear() refMember.getName(); 이때 LazyInitializationException이 일어나는 것에 대해 질문드립니다. 프록시 객체 refMember는 getName()을 호출할 때 최초로 단 한번 초기화되는 것으로 이해했습니다. 그렇다면 이전에 em.clear()로 영속성 컨텍스트를 초기화하여도, refMember.getName() 시점에 다시 DB에서 member 엔티티를 찾아 영속성 컨텍스트에 올리면 되지 않나요? refMember는 그 엔티티를 target으로 하고요. 왜 예외가 일어나는 것인지 궁금합니다!

  • java
  • jpa
김지호 댓글 1 좋아요 0 조회수 230

14분쯤에 검증로직 정상로직 김영한 선생님 말씀대로 하시면

미해결

김영한의 실전 자바 - 중급 1편

개발자가 까먹거나 상상하지 못한 오류가 발생할 때 오류가 안 뜨고 바로 정상로직으로 진행되서 문제가 일어날 가능성이 크지 않나요?? if else로 하면 해당 조건 정상로직이 아니면 오류라서 문제가 덜 발생하지 않을까요?? 그거보다 가독성이 중요하거나 제가 생각 못 하는 다른 이유가 있을까요?

  • java
  • 객체지향
댓글 1 좋아요 0 조회수 185

실전예제 따라쳐야 하나요?

미해결

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

실전 예제 부분 따라쳐야 하나요? 다른 강의처럼 소스코드 첨부파일도 없고 pdf파일에도 소스코드도 없고 따라치라는 말도 없고 그래서 해야하는건지 그냥 눈으로 보기만하라는건지 모르겠네요

  • java
  • jpa
jwhong1515 댓글 1 좋아요 0 조회수 149

querydsl 2개의 파일에서 같은 조건을 사용해야 할 경우

미해결

실전! Querydsl

강사님 안녕하세요. 좋은 강의 잘 들었습니다. querydsl의 정점 중 하나로 where 조건문을 분리하고 재사용한다고 했는데, 예를 들어 UserRepository, StudyRepository라는 2개의 querydsl을 사용하는 repository가 있다 했을 때, 각각의 respository 에서 조회를 할 때 동일한 조건을 사용해야 할 경우가 있습니다. UserRepository.java public User getUser(Long UserId) { return selectForm(user) .where(userId); } private BooleanExpression eqUser(Long userId) { return user.userId.eq(userId); } StudyRepository.java public User getUser(Long UserId) { select(study) .from(study.user, user) .join(study.user) .where(user.userId.eq(UserId)); } private BooleanExpression eqUser(Long userId) { return user.userId.eq(userId); } 이렇게 .where(user.userId.eq(1L)) 가 2개의 파일에서 반복되는 경우 각각의 파일에 메소드로 사용하는게 좋을까요? 아니면 다음처럼 공통 유틸 파일을 만들어서 공통으로 사용하는게 좋을까요? QueryUtils.java public static BooleanExpression eqUser(Long userId) { return user.userId.eq(userId); } 실무에서는 어떻게 사용 할까요? 이런 경우가 빈번해서 질문 드립니다.

  • java
  • jpa
  • querydsl
토니야 댓글 1 좋아요 0 조회수 204

ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

미해결

비전공자도 이해할 수 있는 CI/CD 입문·실전

구글링해서 나온건 다따라해봤는데 ,...안돼네요 강사님 하신거랑 똑같이했는데 메시지는 키값을못찾는다고나오는거같은데... 이거 방법이 없을까요

  • aws
  • docker
  • ci/cd
  • github-actions
  • aws-code-deploy
  • infrastructure
  • aws-ec2
김우철 댓글 4 좋아요 0 조회수 920

질문입니다.

해결됨

비전공자도 이해할 수 있는 CI/CD 입문·실전

비전공자도 이해할 수 있는 AWS 입문/실전 인강을 다 듣고 비전공자도 이해할 수 있는 CI/CD 입문·실전 을 들으려고 하는데 강의가 겹치는것 같아요? 어디서부터 들으면 될까요?

  • aws
  • docker
  • ci/cd
  • github-actions
  • aws-code-deploy
  • infrastructure
  • aws-ec2
power4895 댓글 1 좋아요 0 조회수 161

MemberRepository { 질문이요

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 해당 부분에서 오류 발생되는데 왜 그런 걸까요 public class MemoryMemberRepository implements MemberRepository { 이부분에 빨간줄이 있습니다. package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.*; /** * 동시성 문제가 고려되어 있지 않음, 실무에서는 ConcurrentHashMap, AtomicLong 사용 고려 */ public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> findByID(long id) { return Optional.ofNullable(store.get(id)); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } public void clearStore() { store.clear(); } }

  • java
  • spring
  • mvc
  • spring-boot
장진웅 댓글 2 좋아요 0 조회수 353

tailwind

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 선생님. 요즘 기업 트렌드에 맞게 tailwind로 진행해보려고 하는데 강의 css 참고하면서 저 만의 방법으로 tailwind로 수정해서 진행해도 상관없겠죠! 혹시 css로 진행한 이유가 있을까요? 요즘 기업에선 tailwind를 더 추구하나요? 저는 tailwind가 더 익숙하더라구요.. 유튜브에서 우연히 제로초 개발자님을 뵙게되어, 제로초의 JS교재와 함께 큰 도움이 되어서 인프런 강의까지 듣게됐네요. 감사합니다!

  • react
  • next.js
  • react-query
  • next-auth
  • msw
Eunwoo 댓글 3 좋아요 0 조회수 428

섹션3 질문 있습니다

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요! 섹션3 마지막 부분쯤 나온 @Component 어노테이션에 대해 질문이 있습니다! 이 어노테이션은 다음과 같은 경우에 사용된다고 하셨는데요! 컨트롤러, 서지스, 리포지토리가 모두 아니고, 개발자가 직접 작성한 클래스를 스프링 빈으로 등록할 때 사용된다. 제가 궁금한 것은 Service 나 리포지토리 모두 우리가 직접 작성한 클래스 아닌가요?? 그러면 컴포넌트 어노테이션 아닌가요?? 답변해주시면 감사하겠습니다

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 118

섹션3 컨트롤러테스트 오류

해결됨

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

안녕하세요. 강의노트와 강의를 보면서 수정해 보았는데 resume에서만 test가 실패합니다. 제가 보기엔 resume가 JSON이 null이라서 그런것 같은데 어느 부분을 봐야할지 모르겠습니다. Datainitiallizer.kt를 봐도 잘 안보이네요. 아래는 에러 메세지와 코드입니다. java.lang.NullPointerException: Cannot invoke "org.json.JSONArray.length()" because the return value of "org.json.JSONObject.optJSONArray(String)" is null at com.dogu.portfolio.presentation.controller.PresentationApiControllerTest.testGetResume(PresentationApiControllerTest.kt:66) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) @Test @DisplayName("resume") fun testGetResume() { //given val uri = "/api/v1/resume" //when val mvcResult = performGet(uri) val contentAsString = mvcResult.response.getContentAsString(StandardCharsets.UTF_8) val jsonObject = JSONObject(contentAsString) //then Assertions.assertThat(jsonObject.optJSONArray("experiences").length()).isPositive() Assertions.assertThat(jsonObject.optJSONArray("achievements").length()).isPositive() Assertions.assertThat(jsonObject.optJSONArray("skills").length()).isPositive() }

  • kotlin
  • mysql
  • docker
  • spring-boot
  • jpa
Lerna 댓글 1 좋아요 0 조회수 161

백엔드

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 개발자님. 백엔드를 만약 구축한다고했을때 구글링해보면 보통 prisma랑 mongoDB를 같이 쓰더라구요 저는 이때까지 mongoDB만 써서 백엔드를 구축했는데 풀스택으로 만든다고 하면 prisma, mongoDB를 같이 쓰는게 좋나요? 둘 사이에 쓰임에 대해서 어떤 다른 목적이 있나요? 아마 목적에 따라 사용하는게 다를 것 같긴한데.. 개발자님께서는 어떻게 생각하시나요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
Eunwoo 댓글 1 좋아요 0 조회수 199

교재 내용중에 질문 있습니다.

해결됨

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

교재 내용중에 아래와 같은 내용이 있습니다. "데이터가 변해도 식별자로 지속해서 추적 가능 회원 엔티티의 키나 나이값을 변경해도 식별자로 인식가능" 여기서 궁금한 부분이 회원 엔티티의 키가 식별자라고 생각하는데 여기서 키가 바뀌게 되면 식별자도 바뀌게 되어 추적이 불가능하지 않나요?

  • java
  • jpa
감바스 댓글 1 좋아요 0 조회수 133

--no-daemon 옵션에 대한 질문

해결됨

개발자를 위한 쉬운 도커

안녕하세요. 데브위키님의 강의를 통해 많은 것을 배우고 있습니다. 정말 감사드립니다. 이번에 강의를 시청하다가 --no-daemon 옵션의 역할에 대해 궁금한 점이 생겨 질문을 드리게 되었습니다. 이 옵션이 정확히 어떤 상황에서 사용되는지, 그리고 어떤 효과를 가지는지 알고 싶습니다. 답변 주시면 감사하겠습니다.

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • docker-image
  • container
강동현 댓글 2 좋아요 1 조회수 393

join과 join feth 차이점

미해결

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

public List<Order> findSearchOrders(OrderSearch orderSearch){ return em.createQuery("select o from Order o join o.member m" + " where o.orderStatus = :status" + " and m.name like :name", Order.class) .setParameter("status", orderSearch.getOrderStatus() ) .setParameter("name", orderSearch.getMemberName()) .setMaxResults(1000) .getResultList(); } public List<OrderQueryDto> findQueryOrder() { List<OrderQueryDto> result = findAllOrder(); for (OrderQueryDto order : result) { List<OrderItemQueryDto> orderItems = findOrderItem(order.getId()); order.setOrderItems(orderItems); } return result; } public List<OrderItemQueryDto> findOrderItem(Long orderId) { String query = "select new jpabook.jpashop.repository.order.query." + " OrderItemQueryDto(oi.order.id, oi.orderPrice, oi.count )" + " from OrderItem oi " + " join oi.item i" + " where oi.order.id = :orderId"; return em.createQuery(query,OrderItemQueryDto.class) .setParameter("orderId", orderId) .getResultList(); } public List<OrderQueryDto> findAllOrder(){ String query = "select new jpabook.jpashop.repository.order.query." + " OrderQueryDto(o.id, m.name, d.address, o.orderStatus, o.orderDate) " + " from Order o " + " join o.member m" + " join o.delivery d"; return em.createQuery(query, OrderQueryDto.class).getResultList(); } 첫번째 코드 블럭은 order를 select 할때 member를 join 하면 member를 프록시 객체로 가져오는걸로 알고 있습니다. join fetch 를 하게 되면 바로 객체로 가지고 오는걸로 알고 있습니다. 하지만, 두번째 코드 블럭은 그냥 join을 했는데, 왜 프록시 객체에서 객체로 전환? 프록시 객체가 객체를 가르키는 행위를 하지않고도 dto에 바로 삽입이 가능한가요? ex) order.getName() , member.getName()

  • java
  • spring
  • spring-boot
  • jpa
김동훈 댓글 1 좋아요 0 조회수 228

인기 태그

인프런 TOP Writers

주간 인기글