묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
아나그램 문제 런타임에러
안녕하세요 강사님. 해쉬맵 아나그램문제 런타임에러가 나서 채점이 되지않은데 왜 그런지 모르겠습니다.. import java.util.HashMap; import java.util.Scanner; public class Main { public String solution( String str1, String str2){ String answer = "YES"; HashMap<Character,Integer> str1map = new HashMap<>(); //문자열을 순회하며 알파벳을 개수를 세기 for(char key: str1.toCharArray()){ str1map.put(key,str1map.getOrDefault(key,0)+1); } //문자열을 순회하며 map에서 count 하나씩 제거 for(char key: str2.toCharArray()){ //str1에 있는 문자열이 str2에는 없거나 갯수가 0인경우 아나그램이 아님 if(!str1map.containsKey(key) || str1map.get(key) == 0) answer = "NO"; str1map.put(key,str1map.get(key)-1); } return answer; } public static void main (String[]args){ Main main = new Main(); Scanner sc = new Scanner(System.in); String str1 = sc.next(); String str2 = sc.next(); System.out.print(main.solution(str1, str2)); } }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@SessionAttribute로 가져온 데이터가 LazyInitializationException을 발생시킬 수 있나요.
배운것을 가지고 개인적으로 게시판을 만들어보고있습니다. 게시물 추가(POST)를 하는 과정에서 세션에서 회원 정보를 가져오기 위해 컨트롤러의 매개변수로 @SessionAttribute를 사용했습니다. 컨트롤러 코드는 아래와 같습니다. 그런데 이 부분에서부터 LazyInitializationException이 발생하게 됩니다.org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.myproject.jpaboard.domain.Member.posts: could not initialize proxy - no Session /** * 게시물 추가 */ @PostMapping("/new") public String addPost(@SessionAttribute(name = SessionConst.LOGIN_MEMBER, required = false) Member loginMember, @Validated PostForm postForm, BindingResult bindingResult) { log.info("postForm={}", postForm); if (bindingResult.hasErrors()) { log.info("errors={}", bindingResult); return "newPost"; } postService.addPost(postForm, loginMember); return "redirect:/board/list"; }이렇게 해도, 저렇게 해도 해결이 되지 않다가 Member 엔티티의 post를 EAGER로 세팅해주는 방식으로 하니 정상적으로 작동했습니다. 하지만 영한님이 강의에서 알려주셨듯, 이는 좋지 않은 방법입니다. 나름 배운대로 다 적용했다고 생각했는데 어디서 문제가 생긴건지 궁금합니다. 아래에 엔티티와 서비스 코드를 추가합니다. @Entity @Getter @Setter public class Post { @Id @GeneratedValue @Column(name = "post_id") private Long id; private String title; private String writer; @Lob @Column(columnDefinition="LONGTEXT") private String content; @Column(updatable = false) private LocalDateTime createdTime; private LocalDateTime lastModifiedTime; private Long viewCount; @ManyToOne(fetch = FetchType.LAZY) // 다쪽이 연관관계의 주인 @JoinColumn(name = "member_id") private Member member; @Enumerated(EnumType.STRING) private CategoryType category; @OneToMany(mappedBy = "post", cascade = CascadeType.ALL, orphanRemoval = true) private List<Comment> comments = new ArrayList<>(); // 연관관계 편의 메서드 public void setMember(Member member) { this.member = member; member.getPosts().add(this); } @Override public String toString() { return "Post{" + "id=" + id + ", title='" + title + '\'' + ", writer='" + writer + '\'' + ", content='" + content + '\'' + ", createdTime=" + createdTime + ", lastModifiedTime=" + lastModifiedTime + ", viewCount=" + viewCount + ", category=" + category + '}'; } }@Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PUBLIC) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String email; private String password; private String name; @Embedded private Address address; @OneToMany(mappedBy = "member", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List<Post> posts = new ArrayList<>(); @Override public String toString() { return "Member{" + "address=" + address + ", name='" + name + '\'' + ", password='" + password + '\'' + ", email='" + email + '\'' + ", id=" + id + '}'; } } @Service @RequiredArgsConstructor @Transactional(readOnly = true) public class PostService { private final BoardRepository boardRepository; private final PostRepository postRepository; /** * 게시물 추가 */ @Transactional public Post addPost(PostForm postForm, Member loginMember) { Post post = new Post(); postForm.setCreatedTime(LocalDateTime.now()); // setter로 세팅 post.setTitle(postForm.getTitle()); post.setWriter(postForm.getWriter()); post.setContent(postForm.getContent()); post.setCreatedTime(postForm.getCreatedTime()); post.setCategory(postForm.getCategory()); post.setViewCount(0L); post.setWriter(loginMember.getName()); post.setMember(loginMember); postRepository.save(post); return post; }
-
미해결김영한의 실전 자바 - 중급 2편
타입 매개변수 불일치
타입 추론이 있다는 것은 예를 들어 참조변수의 타입이 GenericBox<Integer>일 때, 인스턴스의 타입도 반드시 GenericBox<Integer>이어야 한다는 뜻인가요? 아래 코드와 같이 작성하는 경우 컴파일 오류가 발생하는데 제네릭에서 타입 매개변수에 타입을 넣는 것은 다형적 참조와 무관한 부분인 건가요? 무조건 참조변수와 인스턴스의 타입 매개변수가 동일해야 하는 건가요?GenericBox<Object> tmp = new GenericBox<String>(); // 컴파일 오류
-
미해결김영한의 실전 자바 - 중급 1편
도와주세요 chronoUnit이 없어요!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 아무리 해봐도 나갓다 들어와도 chronounit패키지가 없습니다. 제일 최신 버전으로 하고있는데 왜 없을까요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
페이징 조회 시 쿼리가 달라요.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]2분 58초에 페이징 조회 시 쿼리 로그가 저는 아래와 같이 나옵니다.Hibernate: /* select m from Member m order by m.age desc */ select m1_0.id, m1_0.age, m1_0.TEAM_ID, m1_0.username from Member m1_0 order by m1_0.age desc offset ? rows fetch first ? rows onlydirect가 달라서 그런것일까요? 저는 h2다이렉트를 사용하고 있습니다.<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
단순 주문조회 1편 질문있습니다.
에러상황: 포스트맨으로 요청시http://localhost:8080/api/v1/simple-orders "timestamp": "2024-05-08T03:14:28.812+00:00", "status": 500, "error": "Internal Server Error", "path": "/api/v1/simple-orders"}에러가 납니다.에러코드:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]] with root cause전체코드:https://drive.google.com/file/d/1dmrZQpe2BMk8jNkKn2t6fjINWC6LRPiX/view?usp=drive_link강의와 다른 부분은 @GetMapping("/api/v1/simple-orders") public List<Order> ordersV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); return all; }findAllByString->findAllByCriteria 로 변경했으나 매개변수는 똑같기 때문에 잘 작동되어야 한다는 생각을 했는데 작동이 잘 안됩니다. 이유가 뭔가요? 코드에러가 컨버터 에러가 나와서 에러를 못잡아서 [dispatcherServlet]까지 넘어간건가요?주문목록에서는 데이터가 잘조회됩니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
타임리프 화면 출력 오류(entity-> dto 변환후)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)https://drive.google.com/file/d/1G3OvEzKlffIJB8WkcuULPE7xN_A0s4KB/view 강의 중간에 controller 에서 @PostMapping 으로 폼 데이터를 받을경우 entitiy 그대로 뿌리는것이아닌 dto로 변환하여 뿌리는 게 좋다고 하셔서 한번 그 방식대로 해보았는데 화면에 데이터가 뿌려지지 않아요 ㅜ 뭐가 잘못된건지 모르겠는데 한번 확인 부탁드립니다 ..
-
미해결김영한의 실전 자바 - 중급 2편
Possible typo - "row" to "raw"
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 아니오[질문 내용]제네릭 용어와 관례 챕터에서 row type 이 기재돼있는데 raw type 을 말씀하시는 것 같네요. Raw (생/날 것) 이 오타난 것 같아 알려드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
final 과 this
[질문 내용]여기에 질문 내용을 남겨주세요. service 에서 repository 호출 시 final 쓰는 이유 좀 설명해주세요 ㅠ 그리고 this의 의미가 setName(String name){.....} 에서 매개변수로 넘어온 (String name)을 지칭하는 것인가요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa문법 강의 질문있습니다.
1. 프로젝션(SELECT) 11분 37초에 질문있습니다..List resultList=em.createQuery("select m.username,m.age from member m") .getResultList(); Object o =resultList.get(1); 일경우에 뭐가나오나요?resultList에username | age 이렇게 저장되나요?2. Object o=resultList.get(0);이후에 Object[] result=(Object[]) o;이렇게 들어가있는데요. o가 Object객체 타입인데 Object 배열로 다운캐스팅 된거에요?
-
미해결김영한의 실전 자바 - 중급 1편
주요 메서드2 부분 수업자료 오타가 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]수업자료 pdf 주요 메서드 2 부분의 처음 코드 (replace 부분)에서코드에는 `replaceAll()` 메서드의 내용이 없는데 결과에는 해당 내용이 포함되어 있습니다! 해당 내용 => [모든 'Java'를 'World'으로 대체: Hello, World! Welcome to World]
-
미해결김영한의 실전 자바 - 중급 1편
concat함수와 +의 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.복습을 하다 궁금한점이 생겼는데 위 코드에서 concat을 쓰고 반환값을 받지 않은거랑 밑에 +로 작성한 코드는 같은 코드가 아닌가요? 위코드는 반환값을 받지 않아도 되고 밑에 코드는 반환값을 받지않아서 컴파일 오류가 나는데 무슨 차이인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
value값이 null로 나오는 이유???
[질문 내용]여기에 질문 내용을 남겨주세요.value 값이 왜 null로 나오나요???????????
-
해결됨김영한의 실전 자바 - 중급 1편
자바 String replace() 메서드 질문.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.스트링 메서드() 들을 이용해서 문자를 바꿀 려고 하는데,어렵네요. 일단 바꾸기는 했는데 다른 방법으로 가능한지 알고 싶어서 여쭤봅니다.StringChangeMain1 에 있는 str의 글자를 이용해서두번째 'Java'를 'World'로 바꿀 려고 하는데..이런 코드 밖에 생각이 안나네요.혹 더 좋은 방법이 있을까요?답변 부탁 드립니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
kafka Consumer
Kafka를 사용하는 주된 이유 중 하나는 확실히 데이터 처리의 유연성과 부하 분산에 있습니다. Kafka를 활용함으로써, 많은 양의 이벤트(예: 쿠폰 발행 요청)를 바로 처리하지 않고 큐에 보관했다가, 시스템의 부하가 적은 시기에 또는 자원이 더욱 충분할 때 일괄적으로 처리할 수 있게 됩니다.kafka 관련해서 다른 분 질문에 답글이 위처럼 달린 것을 확인했는데요.. 큐에 보관했다가 일괄적으로 처리를 할 수 있다고 했는데 그럼 컨슈머 listener 에 언제 카프카에 있는 이벤트를 받아서 처리할 것인지에 대한 설정을 할 수 있는 것인가요?시스템 부하가 적은 시기나 자원이 충분할 때가 언제인지 어떻게 알고 처리를 하는지 궁금합니다.
-
미해결윤재성의 자바 기반 안드로이드 앱개발 Part 2 - 메뉴와 4대 구성요소
optionMenu 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 optionMenu 관련 아래 해골 개미 님과 같은 현상이 발생하여 문의 드립니다. 수업영상대로 코드 작성은 하였습니다. main_menu.xml 확인 하여 정상적으로 xml 파일명등 확인 하였습니다. public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.main_menu,menu); return true; }onCreateOptionMenu 부분 정상적으로 따라 작성하였습니다. 차이점이 있다면 IDE 버전이 jellyfish 인데 버전영향이 있는것 인지요? 답변 기다릴게요 감사합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
수료증
혹시 수료증에 수료기간도 나오나요?
-
미해결김영한의 실전 자바 - 중급 1편
질문있습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]LottoGenerator의 클래스에서Random random = new Random(); 보통 private final은 절대 바꾸지 않을떄 사용하는건데이 랜덤 생성을 private final로 주신 이유가 뭔가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
NotEmpty 속성 적용 관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요./api/v1/members 에서는 NotEmpty를 멤버 클래스에서 적용함 public class Member { ~~ 중략 @NotEmpty private String name; ~~ 중략 } /api/v2/members 를 테스트 하면서 멤버 클랫스에서는 @NotEmpty 를 제거하고 MemberApiController 내부에 이너 DTO 클래스에 @NotEmpty 속성을 넣으면 API 에서 빈값을 넣어도 그냥 통과시켜 버립니다. public class Member { //중략 private String name; //@NotEmpty 제거 //중략 } public class MemberApiController { //중략 @Data static class CreateMemberRequest { @NotEmpty private String name; } //중략 } 강사님의 의도는 V2가 엔티티에 독립성은 보장 프레젠테이션 레이어의 체크 사항을 엔티티 레벨로 가져오지 않고 DTO를 사용하여 결합을 느슨하게 하려고 보이는데 그러한 의도로 코드 수정하면 원하는 결과가 나오지 않습니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
docker compose up 실행 오류
version: '2' services: zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka:2.12-2.5.0 container_name: kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock 강의자료 내용대로 작성하고 실행했는데 다음과 같은 오류가 계속 발생하는데 원인을 모르겠습니다. 도커 로그인을 했는데도 계속 발생하네요. 오류 원인이 뭘까요? $ docker-compose up -d kafka Pulling zookeeper Pulling kafka Error zookeeper ErrorError response from daemon: pull access denied for wurstmeister/kafka, repository does not exist or may require 'docker login': denied: requested access to the resource is denied