inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

volatile 사용 이유에 대해서 여쭤보고 싶습니다!

미해결

코딩으로 학습하는 GoF의 디자인 패턴

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. synchronized 메서드 블록에서 사용되는 모든 공유변수는 동시성처리를 위해서 공유 변수에 volatile 키워드가 없어도 가시성이 확보되는 것으로 배웠는데 혹시 제가 잘못 알고있는건지 궁금해서 질문드립니다!

  • java
  • 디자인-패턴
열심히 공부하겠습니다! 댓글 3 좋아요 0 조회수 687

TDD질문

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강의를 듣던중 의문이 생겨 질문드립니다. TDD 빨간불을 보고 (강의 6분 쯤) 초록불을 만드는 과정에서 return 8500을 하셨는데 이렇게 초록불을 만드는 게 맞나요?? 오히려 무슨 테스트를 수정해야하는 지 헷갈릴 거 같은데 제가 이해한 초록불을 만드는 과정은 변수명, JPA를 사용한다면 N+1 문제 등 아예 신경안쓰고 초록불을 만들고 위 문제들을 수정해 가는 과정으로 생각했는데..

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
박준형 댓글 2 좋아요 0 조회수 289

jwt 토큰은 api서버에서만 사용하나요?

미해결

코드로 배우는 React 19 with 스프링부트 API서버

수업을 듣다가 궁금한 점이 생겨 문의 드립니다. 현재 React를 사용하여 API 서버와 작업할 때는 JWT 토큰을 자주 사용하는데, 타임리프(Thymeleaf)와 같은 서버 사이드 렌더링을 사용할 때도 JWT 토큰을 사용해도 되는지, 혹은 사용하면 안 되는지 궁금합니다!

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
새벽노트 댓글 1 좋아요 0 조회수 382

String 질문

미해결

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

안녕하세요. String을 구현한 클래스 설명해주신 부분에서 이해가 안가는 게 있어서 문의드립니다. StringBuilder와의 차이점에서 StringBuilder가 가변적일 수 있는 이유로 아래 필드가 final인지(String) 아닌지(StringBuilder)로 설명해주셨는데요. final byte[] value라면 value 변수는 참조변수 일꺼고 그렇기에 참조값만 변경이 되지 않으면 참조하고 있는 객체의 내부 상태들은 변경이 가능할텐데 예를 들어 String a = newString("abc"); 여기에서 c를 d로 바꾼다 한들 value가 참조하는 내용이 아닌 참조값도 바뀌어야 하는 이유가 궁금합니다. StringBuilder의 경우에는 final 선언이 안 되어 있으니 value 필드의 참조값이 바뀌던 안바뀌던 상관 없을텐데 String 같은 경우에는 final이긴 하지만 value가 참조하는 내용을 바꿨다고 해서 참조값이 무조건 바뀌게 되는 이유가 궁금합니다. private final byte[] value;

  • java
  • 객체지향
인프린 댓글 2 좋아요 0 조회수 292

createOrder 변경

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강의를 듣다가 의문점이 생겨 질문드립니다. createOrder의 test를 구현하기 위해 LocalTime을 인자로 받게 변경했는데 결국 test를 위해 비지니스 로직을 수정을 하는 과정이 너무 짜치는데 다른 방법은 없을까요? 강의 뒤쪽에 나오는 걸까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
댓글 2 좋아요 0 조회수 287

AuthGrade 문제2 - 인증 등급 열거형 조회

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 문제2에서 AuthGradeMain1 클래스를 만들어서 코드를 작성하는 과정에서 for문 안에서 바로 출력을 하는 코드를 작성하셨는데, EnumRefMain3_4에서 public static void main(String[] args) { int price = 10000; Grade[] grades = Grade.values(); for (Grade grade : grades) { printDiscount(grade, price); } } private static void printDiscount(Grade grade, int price) { System.out.println(grade.name() + " 등급의 할인 금액 : " + grade.discount(price)); } 따로 print 메서드를 뽑아서 리팩토링 하셔서 제가 스스로 AuthGradeMain1 풀이할 때에도 public static void main(String[] args) { AuthGrade[] grades = AuthGrade.values(); for (AuthGrade grade : grades) { printAuthGrade(grade); } } private static void printAuthGrade(AuthGrade authGrade) { System.out.println("grade = " + authGrade + ", level = " + authGrade.getLevel() + ", 설명 = " + authGrade.getDescription()); } 이런 식으로 메서드를 뽑아서 풀었습니다. 결과는 결국 똑같이 나오겠지만 메서드를 뽑아서 print하는 코드와 for문에서 직접 print하는 코드 둘 중 어느 걸 사용하는 것이 좋은 건지 어떻게 알 수 있는 걸까요?

  • java
  • 객체지향
박재성 댓글 1 좋아요 0 조회수 297

IN 쿼리 작동 시점에 바인딩 로직

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx ) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG ) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @BatchSize 사용시 IN 쿼리 발생 시점에 과정이 궁금해서 질문 남깁니다. Team teamA = new Team(); teamA.setName("teamA"); Team teamB = new Team(); teamB.setName("teamB"); em.persist(teamA); em.persist(teamB); User user1 = new User(); user1.setUsername("user1"); user1.setTeam(teamA); em.persist(user1); User user2 = new User(); user2.setUsername("user2"); user2.setTeam(teamA); em.persist(user2); User user3 = new User(); user3.setUsername("user3"); user3.setTeam(teamB); em.persist(user3); em.flush(); em.clear(); List<Team> result = em.createQuery("select t from Team t", Team.class) .getResultList(); System.out.println("=============================="); for (Team team : result) { System.out.println("team.getUsers().size() = " + team.getUsers().size()); } result에서 조회된 team들의 team_id가 IN 쿼리의 파라미터로 바인딩되고 그에 해당하는 user 인스턴스들이 영속성 컨텍스트에 저장되는 것 까지는 알겠습니다. 그 이후에 이 user 인스턴스들이 어떻게 team의 users 컬렉션에 매핑되는 것인지가 궁금합니다.

  • java
  • jpa
도토리묵 댓글 1 좋아요 0 조회수 175

회원가입 실행 오류

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원가입 실행 오류가 있어서 확인해 본결과 Member.java 수정 @GeneratedValue(strategy = GenerationType.SEQUENCE) 을 하면 돌아가는데 왜 강의 코드 에서는 에러가 생기나요 ??

  • java
  • spring
  • mvc
  • spring-boot
kkkkkk 댓글 2 좋아요 0 조회수 322

"테스트 케이스 세분화하기" 강의 화면이 안나옵니다

해결됨

Practical Testing: 실용적인 테스트 가이드

다른 강의는 잘 나오는데 테스트 케이스 세분화하기 강의만 화면이 까맣게 나옵니다. 저만 그럴까요? Arc 브라우저에서 수강하다가 크롬 브라우저에서도 확인해봤는데 똑같이 화면이 안나옵니다. UPDATE 1: "테스트 케이스 세분화하기" 부터 화면이 안나오는 것 같네요. UPDATE 2: 크롬에서 하드웨어 가속 기능을 끄니까 정상적으로 화면이 나옵니다. 왜 기능을 꺼야하는건지 이유를 알고 싶긴하네요.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
김주영 댓글 2 좋아요 0 조회수 257

navigate 사용시 useCallback() 사용 여부가 궁금합니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

지난 강의에서 LIST, ADD 클릭 할때와 const handleClickList = useCallback(() => { navigate({ pathname: 'list' }); }, []); const handleClickAdd = useCallback(() => { navigate({ pathname: 'add' }); }, []); 지금 강의에서 moveToModify 클릭할 때 const moveToModify = () => { navigate({ pathname: `/todo/modify/${tno}`, search: queryStr }); }; useCallback() 사용 여부 차이가 동적으로 변할 여지가 있는 함수를 새로 호출하는게 맞아서 그런걸까요?(=${tno}의 변경 가능성?) props로 써야할 것과 router로 써야할 것을 구분하라고 하셨습니다. 혹시 이것과 관련된 말씀이셨나요? 검색해도 명쾌히 이해가 가지 않습니다!!

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
Won Ders 댓글 1 좋아요 0 조회수 223

상품 수정 500에러가 뜹니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 상품 수정 하려 했더니 다음과 같은 에러가 뜹니다. 강의 듣고 작성한 코드인데 어떤 부분이 잘못됐는지 알고 싶습니다. package jpabook.jpashop.controller; import jpabook.jpashop.domain.item.Book; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.service.ItemService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @Controller @RequiredArgsConstructor public class ItemController { private final ItemService itemService; @GetMapping("/items/new") public String createForm(Model model) { model.addAttribute("form", new BookForm()); return "items/createItemForm"; } @PostMapping("/items/new") public String create(BookForm form) { Book book = new Book(); book.setName(form.getName()); book.setPrice(form.getPrice()); book.setStockQuantity(form.getStockQuantity()); book.setAuthor(form.getAuthor()); book.setIsbn(form.getIsbn()); itemService.saveItem(book); return "redirect:/items"; } @GetMapping("/items") public String list(Model model) { List<Item> items = itemService.findItems(); model.addAttribute("items", items); return "items/itemList"; } @GetMapping("/items/{itemId}/edit") public String updateItemForm(@PathVariable("itemId") Long itemId, Model model) { Book item = (Book) itemService.findOne(itemId); BookForm form = new BookForm(); form.setId(item.getId()); form.setName(form.getName()); form.setPrice(form.getPrice()); form.setStockQuantity(form.getStockQuantity()); form.setAuthor(item.getAuthor()); form.setIsbn(item.getIsbn()); model.addAttribute("form", form); return "items/updateItemForm"; } @PostMapping("/items/{itemId}/edit") public String updateItem(@PathVariable String itemId, @ModelAttribute("form") BookForm form) { Book book = new Book(); book.setId(form.getId()); book.setName(form.getName()); book.setPrice(form.getPrice()); book.setStockQuantity(form.getStockQuantity()); book.setAuthor(form.getAuthor()); book.setIsbn(form.getIsbn()); itemService.saveItem(book); return "redirect:items"; } } package jpabook.jpashop.repository; import jpabook.jpashop.domain.item.Item; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import jakarta.persistence.EntityManager; import java.util.List; @Repository @RequiredArgsConstructor public class ItemRepository { private final EntityManager em; public void save(Item item) { if (item.getId() == null) { em.persist(item); } else { em.merge(item); } } public Item findOne(Long id) { return em.find(Item.class, id); } public List<Item> findAll() { return em.createQuery("select i from Item i", Item.class) .getResultList(); } }

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
lgh8079 댓글 2 좋아요 0 조회수 225

gradle build 에러

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] IDE 에서 정상적으로 작동하는데 git bash에서 빌드할때 버전오류가 납니다 자바 22 사용하고 있습니다.

  • java
  • spring
  • mvc
  • spring-boot
반상열 댓글 2 좋아요 0 조회수 573

super 키워드

미해결

비전공자를 위한 자바

강사님 궁금한게 있습니다 main( ) 메서드 에서 클래스를 만들고 부모 클래스에 있는 인스턴스를 . 을 이용해서 가져올때 부모와 자식 클래스에 이름이 같은 변수 를 가져올 때 main() 메서드 에서는 super 키워드 를 사용할수 있나요 ?

  • java
  • 함수형-프로그래밍
  • 객체지향
  • 코딩-테스트
심동현 댓글 1 좋아요 0 조회수 286

table not found 오류

해결됨

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

안녕하세요 <기본 키 매핑> 강좌를 듣던 중 h2 데이터베이스에 Member table이 갑자기 사라지는 오류가 있어서 질문드립니다..ㅜㅜ 다음과 같은 오류 메시지가 떠서, test.mv .db를 삭제하고 다시 생성한 뒤 실행하였는데도 똑같습니다..ㅜㅜ h2 database에 Member table 없는 현상 뭐가 문제일까요..??ㅜㅜ 감사합니다.

  • java
  • jpa
Clain 댓글 3 좋아요 1 조회수 379

bootstrap 파일이 동기화가 안됩니다..

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 이런 식으로 화면이 뜨는데 어떻게 하면 좋을 지 여쭙고자 합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
lgh8079 댓글 1 좋아요 0 조회수 836

한방쿼리 vs findAll(또는 일부분만 찾은뒤) filter 사이의 성능차이 질문입니다!

해결됨

실전! 스프링 데이터 JPA

안녕하세요 datajpa로 개발을 하다보니 궁금한 점이 생겼습니다. 어떤 엔티티에서 특정 조건을 만족하는 엔티티만 찾아야 할 때 jpql의 @Query어노테이션이나, queryDsl의 쿼리를 이용해서 where절 조건을 정의하고 찾을 수 있습니다. 하지만 꼭 그렇지 않고 findAll 후에 Stream.filter로 찾아도 되긴 합니다. 얼핏 보면 findAll() 이 훨씬 비싸 보이지만 "DB비용이 매우 비싸기 때문에 , 오히려 was에서 추가작업(정렬) 등을 하는게 좋을 때가 있다." 라는 걸 본적이 있어서 질문 드립니다. jpa를 쓰는게 확실히 여러가지 면에선 편리한 점이 많지만, 결국 비지니스 로직과 관련된 특정한 조건들을 찾기 위해서라면 쿼리가 세분화 되어 나가야 되는데 그런 상황에서 jpa는 어떤 장점을 가지는지는 잘 모르겠습니다. 읽어주셔서 감사합니다!

  • java
  • spring
  • spring-boot
  • jpa
lee 댓글 1 좋아요 0 조회수 410

자바 메모리 관련 질문

해결됨

김영한의 실전 자바 - 기본편

메서드 영역은 클래스 정보 static 영역 런타임 상수 풀 이렇게 세가지로 구성되어 있는걸로 알고 있습니다. static 메서드와 그냥 메서드 둘다 클래스 정보에 저장되는게 맞지만, 둘의 차이는 참조값(인스턴스) 없이 호출 가능하느냐, 아니냐의 차이가 맞을까요? 만약 아니고 static 메서드는 static 영역에 저장된다고 한다면, static 영역에 있기 때문에 static 메서드는 참조값 없이 호출 가능한것 인가요?

  • java
  • 객체지향
공희배 댓글 2 좋아요 0 조회수 322

자바 메모리 관련 질문입니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 메서드 영역은 클래스 정보 static 영역 런타임 상수 풀 이렇게 세가지로 구성되어 있는걸로 알고 있습니다. static 중첩 클래스, static이 없는 내부 클래스는 메모리 구조상 어디에 저장 되나요?

  • java
  • 객체지향
공희배 댓글 1 좋아요 0 조회수 239

count query에 대한 질문

미해결

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 Spring 강의 열심히 듣고 있습니다. paging 관련해서 듣다가 문득 궁금한 것이 생겨서 질문드립니다. 현재까지 배운 Spring data jpa에서는 매번 paging을 요청할 때마다 count 쿼리도 같이 날라가는데요, JPA를 떠나 일반적인 실무 환경에서도 매번 paging 쿼리와 count 쿼리를 같이 날리는지가 궁금합니다. paging 쿼리를 매번 날리면 새로운 게시물이 등록된 경우에 해당 게시물도 paging에 넣어서 계산할 수 있다는 장점은 있는 것 같은데 paging가 바뀔 때마다 count 연산이 수행된다는 것이 큰 오버헤드가 발생할 수도 있다는 생각이 들기도합니다.. 관련해서 어떻게 구현하는 것이 best pratice에 가까울까요?

  • java
  • spring
  • spring-boot
  • jpa
박정선 댓글 2 좋아요 0 조회수 482

오류 발생

미해결

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

뭐가 문제일까요?

  • java
  • spring
  • mvc
  • spring-boot
최강 댓글 1 좋아요 0 조회수 159

인기 태그

인프런 TOP Writers

주간 인기글