묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트코드 작성시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]테스트 코드 작성시 Test Results라고만 나오고 하위에 save() 이렇게 나오지 않습니다. 왜 그런걸까요??
-
미해결김영한의 실전 자바 - 중급 1편
Long 참조변수 더하기 연산
public class WrapperVsPrimitive { public static void main(String[] args) { // wrapper class Long sumWrapper = 0L; /// Long = long (auto boxing) for (int i=0; i<iterations; i++) { sumWrapper += i; /// Long += long (auto boxing) } } }위 코드에서 'sumWrapper += i;' 부분이 이해가 되지 않는데요. 이전에 말씀해주셨듯이 참조형변수는 주소값을 가지고 있기에 참조변수를 통한 값 계산이 불가합니다. 그래서 참조변수 간 더하기 연산이 불가합니다.그런데, 이 코드는 long 타입인 i -> Long으로 auto boxing된 이후에 (Long 타입 참조변수) + (Long 타입 참조변수)인 것인데, String 타입 참조변수와 마찬가지로 자바에서 wrapper class 타입 참조변수 간 더하기 연산을 제공하는 것인가요?그렇다면 Long 타입 참조변수 간 더하기 연산이 일어나게 되면, Long 인스턴스가 내부적으로 가진 long에 더하기 연산이 적용되는 걸까요??
-
미해결김영한의 실전 자바 - 중급 1편
5. enum 열거형 문제와 풀이2 관련 질문
[질문 내용]문제와 풀이 해설이랑 조금 달라서 질문 남겨봅니다. 저는 이런식으로 작성하였는데 문제없이 잘 돌아가긴 했는데요 혹시 이렇게 작성하면 보이지 않는 다른 오류가 발생하는지 궁금합니다. 또, isSuccess() 메서드에서 findByCode()메서드를 호출하였는데 이런 방식을 실무에서도 많이 쓰는 편인가요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
7강 application.yml에 문제가 있는거 같습니다...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]현재 구글링 하면서도 진행 해봤지만 다른게 문제인지 h2 console에도 insert 구문이 날라가지 않습니다 ...현재 제가 놓친게 있을까요 ?... 지금 스프링부트 버전은 3.2.5 버전입니다. 자바 버전도 17로 설정되어 있습니다.해당 프로젝트 주소 : https://drive.google.com/file/d/1SbgjH5aDY_j_g07r9_Kmz4Uk-uImcC9L/view?usp=drive_link
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
7강 application.yml에서 막히고 있습니다...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]현재 7강에서 h2에 insert가 안되가지고 구글링 다 하면서 여러 방법을 시도해보았지만 해결이 안되서 강의 진행을 못하고 있습니다. .. 현재 제가 놓친 부분이 있다면 가르쳐주시면 감사하겠습니다.그리고 testMember에 커밋은 구글링 하다가 마지막 방법으로 찾아본거라 이전 방법은 다 해본 것 같습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@GetMapping 같은 어노테이션 문법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@GetMapping, @RequestParam같은 걸 어노테이션이라고 한다는데 이거에 대한 문법같은걸 배우고 들어야 할까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
request로 받는것과 long id로 받는것에 차이점이 뭔지 모르겠어요
long id는 특정 필드값만 받는것 이라면 request로 받게되면 1. 모든 필드를 다 받고 2. isUserNotExist 부분에 id를 request.getId()로 바꿔 id만을 호출해서 받을수 있게 하는건가요?
-
해결됨김영한의 실전 자바 - 중급 1편
섹션 8. 람다
print(() -> { int random = new Random().nextInt(6) + 1; System.out.println("random = " + random);});는 함수를 인수로 전달한다고 하셨는데, 지금 print를 보면print(Piece piece)로 되어있습니다. 인수로 받을 수 있는 거는 Piece클래스인데 어떻게 인수만 넘긴 것으로 piece.value();가 작동이 되는지 의문이 들어서 질문 남깁니다!public class Ex1AnswerMain5 { public static void main(String[] args) { print(() -> { int random = new Random().nextInt(6) + 1; System.out.println("random = " + random); }); print(() -> { for (int i = 0; i < 3; i++) { System.out.println("i = " + i); } }); } private static void print(Piece piece) { System.out.println("프로그램 시작"); piece.value(); System.out.println("프로그램 종료"); }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
jpa주문입력이 안됩니다.
주문 입력시 아래와 같은 에러가 조회됩니다.Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "T(jpabook.jpashop.domain.OrderStatus).values()" (template: "order/orderList" - line 19, col 33)] with root cause에러상황: 주문 입력시 화이트 페이지 조회전체코드:https://drive.google.com/file/d/1xAF2BknQ4Zr6eKmkgAyxDn59q7aXbza8/view?usp=drive_link아래에서 하라는대로 다 해봤는데 안됩니다. 참고로 order자바,orderservice자바는 강의와 똑같습니다. https://www.inflearn.com/questions/362231/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-%EC%9D%B4%EB%9F%AC%ED%95%9C-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%98%EC%97%AC-%EC%A7%88%EB%AC%B8-%EB%93%9C%EB%A6%AC%EA%B2%8C-%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@OneToMany , @ManyToOne 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 JPA 강의를 수강 후 게시판에 이미지 첨부를 구현하기 위해 공부하고 있습니다.1.Board와 Image는 1:N 관계2.연관관계 주인은 Board3.cascade = CascadeType.ALL로 옵션을 주어 부모 엔티티(board)가 영속화될 때, 자식 엔티티(Image)도 함께 영속화되도록 했습니다.위와 같이 설계를 한뒤 코드를 작성했습니다.근데, Image와 Board 테이블에 모든 데이터가 다 들어가는데 Image 테이블의 board_id가 계속 null값이 들어갑니다. 이 부분이 잘 이해가 안되는데 원인이 무엇일까요? 코드는 아래와 같습니다 ! @Entity @Getter @Setter @NoArgsConstructor public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "board_id") private Long id; @Column(name="title") private String title; @Column(name="content") private String content; @Column(name="writer") private String writer; @Column(name="date") private String date; /* @OneToMany(mappedBy = "board") @Nullable private List<Image> images = new ArrayList<>(); */ @OneToMany(mappedBy = "board",cascade = CascadeType.ALL) private List<Image> images = new ArrayList<>(); @Builder public Board(String writer,String title,String content,String date,List<Image> images){ this.writer=writer; this.title=title; this.content=content; this.date=date; this.images=images; }@Entity @Getter @Setter @NoArgsConstructor public class Image { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String fileName; @ManyToOne @JoinColumn(name = "board_id") private Board board; private String url; @Builder public Image(String fileName,String url){ this.fileName=fileName; this.url =url; } }@Service @Transactional @RequiredArgsConstructor public class BoardService { private final BoardRepository boardRepository; LocalDateTime currentTime = LocalDateTime.now(); // 현재 시간을 가져옴 /** * Create */ @Transactional public Long saveBoard(BoardSaveRequest request,List<Image> images){ Board board= Board.builder() .writer(request.writer()) .content(request.content()) .title(request.title()) .date(String.valueOf(currentTime)) .images(images) .build(); board.setImages(images); //cascade = CascadeType.PERSIST : 보드 생성 -> image add boardRepository.save(board); return board.getId(); } @RestController @RequestMapping("/board") @RequiredArgsConstructor @Slf4j public class BoardController { private final BoardService boardService; private final ImageService imageService; /** * 게시글 생성 * @param writer * @param title * @param content * @param images * @return 생성된 게시글 id */ @PostMapping() public ResponseEntity<ApiUtil.ApiSuccessResult<Long>> createBoard( @RequestPart(value="writer") String writer, @RequestPart(value="title") String title, @RequestPart(value="content") String content, @RequestPart(value = "images", required = false) List<MultipartFile> images) throws IOException { BoardSaveRequest boardSaveRequest= BoardSaveRequest.builder() .writer(writer) .content(content) .title(title).build(); List<Image> listImage = imageService.saveImage(images); Long saveId = boardService.saveBoard(boardSaveRequest,listImage); return ResponseEntity.ok().body(ApiUtil.success(HttpStatus.CREATED,saveId)); } @Service @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter public class ImageService { public List<Image> saveImage(List<MultipartFile> multipartFiles) throws IOException { List<Image> images = new ArrayList<>(); for(MultipartFile m : multipartFiles){ m.transferTo(new File("/Users/parkjihyeon/Desktop/imageFolder/"+m.getOriginalFilename())); Image image= Image.builder() .fileName(m.getOriginalFilename()) .url("/Users/parkjihyeon/Desktop/imageFolder/"+m.getOriginalFilename()) .build(); images.add(image); } return images; } }
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
파일오류
왼쪽에 목록이 main밖에 없는데 어떻게 해야하나요
-
미해결김영한의 실전 자바 - 중급 1편
concat()이 내부적으로 생성하는 String 인스턴스
public class StringImmutable2 { public static void main(String[] args) { String before = "hello"; String after = before.concat(" java"); System.out.println("before = " + before); System.out.println("after = " + after); } }자바 프로그램 로딩 시점에 문자열 리터럴이 문자열 풀에 보관된다고 알고 있는데요. 위 코드에서 "hello" 뿐만 아니라 " java"도 문자열 리터럴인가요? 그렇다면 " java"도 문자열 풀에 저장되는 것인가요? (제가 자바 기초 지식이 부족한 상태입니다)concat() 내부에서 생성하는 String 인스턴스는 문자열풀에 생성되는 것인가요? 아니면 문자열풀이 아닌 힙 영역에 생성되는 것인가요?
-
해결됨실전! 스프링 데이터 JPA
테스트 시 생성자 주입에 관하여
package com.myproject.jpaboard.web.service; import com.myproject.jpaboard.domain.Post; import com.myproject.jpaboard.web.repository.BoardRepository; import lombok.RequiredArgsConstructor; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.Optional; @SpringBootTest @RequiredArgsConstructor class PostServiceTest { private final BoardRepository boardRepository; private final PostService postService; @Test void addViewCount() { Optional<Post> byId = boardRepository.findById(1L); Post post = byId.get(); System.out.println("post.getViewCount() = " + post.getViewCount()); postService.addViewCount(1L); System.out.println("post.getViewCount2() = " + post.getViewCount()); } }안녕하세요. 개인적으로 배운것들을 따로 테스트중입니다. 위의 코드와 같이 생성자 주입을 하니 boardRepository에 NullPointerException이 발생하였습니다. @Autowired를 이용한 필드 주입으로 코드를 수정해보니 문제가 해결되었습니다. 원인을 추측해보면, 테스트 메서드 실행할 때 주입받을 빈이 초기화되어있지 않기 때문으로 보입니다.이런 상황이 처음이라 지식 공유자님의 의견을 듣고싶습니다.
-
미해결김영한의 실전 자바 - 중급 1편
String이 불변 객체인 이유 질문
String이 불변 객체인 이유가 궁금한데요. String 내부에 문자열이 final byte[] value;에 저장되는데 참조변수 final에 들어있는 값(배열의 시작 주소값)이 변경될 수 없는 것이지 byte[] 배열 내부에 있는 원소는 변경 가능하다고 알고 있습니다.final char[] chArr = new char[] {'a', 'b', 'c', 'd', 'e'}; chArr[0] = 'k'; // 가능 System.out.println(chArr); chArr = new char[]{'A', 'B', 'C', 'D', 'E'}; // 불가능 byte[] 배열 내부에 있는 값이 변경 가능한데 String은 왜 불변 객체인 건가요? 혹시 내부적으로 모든 문자를 변경할 수 없도록 하는 어떠한 로직이 존재하는 건가요...?
-
해결됨김영한의 실전 자바 - 중급 1편
섹션 7. 정적중첩클래스
제가 이해를 잘 못한 거 같아서 질문 드립니다!질문 1 : main에 NestedOuter outer = new NestedOuter();를 객체로 생성하면 내부에 있는 모든 것들이 생성되서 아래 올린 코드의 모든 것들이 저 객체 안에 생성되는 게 맞나요?outInstanceValue, Nested 클래스도 같이 포함되어서 생성되는 거 아닌가 해서요! 질문 2 : Nested는 static인데 객체를 생성할 수가 있나요? static이면 힙 영역이 아니라 메서드영역에 생성되어있는 거 아닌가요? 질문 3 : 질문 2에 이어서 든 생각으로 NestedOuter.Nested.print()로 바로 꺼내 쓸 수 있어야 된다고 생각했는데 왜 안 되는 건가요?ㅠㅠ public class NestedOuterMain { public static void main(String[] args) { NestedOuter outer = new NestedOuter(); NestedOuter.Nested nested = new NestedOuter.Nested(); nested.print(); System.out.println("nestedClass = " + nested.getClass()); } }public class NestedOuter { private static int outClassValue = 3; private int outInstanceValue = 2; static class Nested { private int nestedInstanceValue = 1; public void print() { // 자신의 멤버에 접근 가능 System.out.println("nestedInstanceValue = " + nestedInstanceValue); // 바깥 클래스의 인스턴스에 접근 불가 //System.out.println(outInstanceValue); // 바깥 클래스의 클래스 멤버에 접근 가능 System.out.println("outClassValue = " + outClassValue); } }
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
자바 언어 없음
이런식으로 자바 언어가 없는데 어떻게 해야하나요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원가입 테스트 작성시 에러가 발생합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]회원 기능 테스트 강의를 수강하며 회원가입 테스트 예제를 작성하고 실앻해도 계속 에러가 나옵니다. 코드도 모두 동일하게 쳣는데 에러가 뜨니 어떻게해야할지 모르겟습니다. ㅠㅠ 10:53:19.411 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [jpabook.jpashop.service.MemberServiceTest]: MemberServiceTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.10:53:19.579 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration jpabook.jpashop.JpashopApplication for test class jpabook.jpashop.service.MemberServiceTest10:53:19.906 [Test worker] INFO org.springframework.boot.devtools.restart.RestartApplicationListener -- Restart disabled due to context in which it is running이렇게 에러문구 3개가 뜨는데 뭐가 틀린지 모르겟습니다. 도움주시면 감사하겟습니다.
-
미해결실전! Querydsl
동적 order by..
쿼리dsl로 동적인 order by 정렬 처리하는거는 강의에서 안보여주시나요?...ㅠㅠ
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
코딩 컨벤션 관련 문의
안녕하세요. 강의 잘 듣고 있습니다. 강의 내용과는 좀 다른 질문이긴 한데요...현업에서 코딩컨벤션을 어떻게 처리하시는지 궁금해요.강사님께서 포맷터나 린터같은것을 어떻게 설정해서 활용하시는지 예제를 보고싶어요.강의에서는 예를들면 다음줄 넘기실때 그냥 엔터 치고 탭치고 하는거 같거든요. nodejs로 개발할때는 prettier에 설정해두며 저장할 때마다 알아서 다 해주는데intellij는 협업시 사람들마다 코딩스타일을 다르게 해서 일관성이 없어질것 같네요.(포맷터 설정해도 생각과는 좀 다른거 같더라고요.) 확인 부탁드립니다.감사합니다.
-
해결됨김영한의 실전 자바 - 중급 1편
Object 다형성 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. Object복습하다가 Parent와 child 클래스를 다형성 해보자 해서 만들었는데, 하다 보니까,원래 코드는 (이런식) 상속 관계 - Object - Parent - Childif (object instanceof Parent parent) { parent.parentMethod(); } else if (object instanceof Child child) { child.childMethod(); }else - if문에서 노란줄이 떠서이런식 으로 만들었는데 이런 식의 코드가 실무에서 있는지 갑자기 궁금해져서 질문을 남깁니다.답변 부탁 드립니다.