묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 데이터 JPA
JPQL로 페이징을 제공하지 않는 이유.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]방언때문에 그런건가요? DB마다 메커니즘이나 사용 방법이 너무 상이해서 추상화 하기 어려운 건가요?근데 JPQL은 다 방언 참고해서 나가지 않나요?
-
해결됨스프링 시큐리티 OAuth2
addFilterBefore 관련 질문이 있어요!
안녕하세요 선생님. spring security 그리고 spring security oauth 강의 잘 듣고있습니다.이전 security 기본 강의에서는 formlogin API를 호출해서 UsernamePasswordAuthenticationFilter가 존재하였는데, 지금은 formlogin API를 호출하지 않아서 UsernamePasswordAuthenticationFilter가 존재하지 않는데 왜 addFilterBefore에 UsernamePasswordAuthenticationFilter.class를 적는지 궁금해요!!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
카운트 부분 질문드립니다.
if(count(arr, mid)==c) {answer=mid;lt=mid+1;} else if(count(arr, mid)<c) rt=mid-1;else lt=mid+1;카운트가 c보다 큰 값인 경우에 answer=mid를 해주지 않으면 왜 오답으로 나오는지 모르겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew 빌드가 안됩니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 자바 19버전인데 스프링부트 3.0.0이상에서는 17버전 이상으로 사용하래서 자바 19버전인데 왜 빌드가 안되는지 궁금합니다..
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
섹션 12 에러 (코드는 같은데 선생님만 에러 안 뜸)
섹션 12 예외처리 사용자 정의 예외에서 AgeLessThan19Exception가 선생님 화면에는 에러없이 잘 넘어가지만, 실제로는 클래스를 따로 분리하거나 static class AgeLessThan19Exception를 사용해야하는거 아닌가요? 전 에러때문에 코드 실행이 아예 안됩니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
CASCADE
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의의 부모와 자식의 관계 코드에서 부모가 OneToMany이고 자식이 ManyToOne으로 매핑되고 Many에 연관관계의 주인이 있으므로 자식이 연관관계의 주인으로 보입니다. 이말은 자식을 save만 해도 디비에 부모테이블에 save되고 업데이트 또한 자식만 update해도 부모 테이블에도 update 쿼리가 나가는 것으로 알고있습니다. 그렇다면 부모에 CASCADE.ALL을 해주었을 부모만 영속해도 자식도 연속되는 것으로 보아 부모에게도 연관관계의 주인과 비슷하다고 봐도 될까요?? 즉 서로 연관관계의 주인이 되는 것인가요??
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
github에서 파일을 받고 다시 커밋을 하려면
제가 컴퓨터를 포맷할 일이 생겨서 포맷 후 진도를 이어서 따라 가려고github에 올려둔 파일을 다운 받아서 이어서 하고 있었습니다. 그러다가 aws에 비밀번호를 바꾸고 두 번째 커밋을 할 때 막혔는데요.. 다시 git 등록하는 강의도 듣고 이것저것 해보았지만 push할 때 막혀서 그냥 github에 새로운 library2-app 레포지터리를 만들고 처음 저장한 것처럼 저장했습니다. 일단 이렇게 해결하긴 했는데 위에 상황처럼 만약 github에서 파일을 다시 받고 이어서 커밋 하려면 어떻게 해야 하나요?? 그리고 방법들을 찾다가 pull이라는 명령어도 찾았었는데pull 명령어를 입력할 때 origin과 master는 무엇을 의미하나요? origin은 library-app을 입력했었고 master는 제 github 닉네임인지 이게 맞는 건지도 알고 싶습니다!!
-
미해결실전! Querydsl
QueryDSL관련 질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]본 강의에서도 영한님께서 JPA를 querydsl로 바꾸셨는데! 조회쿼리만 바꾸셨습니다. QueryDSL로는 주로 조회작업만 하는건가요?
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
마지막 예제에 질문있습니다.
안녕하세요.마지막 Context 예제에서 "직교성을 가지는 정보를 표현할 때 주로 사용된다."라고 하셨는데 "직교성", "애플리케이션에 영향을 주지않는 데이터"의 의미가 정확하게 와닿지가 않아서요! jwt토큰을 단순히 변수에 값을 저장하고 파라미터로 넘기는것과 context에 담아서 넘기는 것에 어떤 차이가 있나요? 사실 context를 어떻게 활용해야될지 잘 모르겠어요....ㅜㅜ
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
레디슨 락 대기 질문
레디슨과 레튜가 락 대기 관련해서 질문드립니다.레튜스는 스핀락 방식으로 쓰레드를 계속 사용해서 부하를 주는 것으로 배웠습니다. 그에 반해 레디슨을 사용하면 쓰레드 대기를 한다고 하셨는데, 쓰레드가 대기 되면, 해당 쓰레드는 스핀락과 다르게 아무것도 하지 않아서 부하를 주지 않는 것인가요? 그렇다면 스핀락과 크게 차이가 없다는 생각이 들었습니다.아니면 대기 중에 다른 작업을 하는 것이라 유용한것인가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
_Quiz_10에 질문 있습니다. ㅠㅠ
안녕하세요.. 혼자 문제 풀다가 결국 너무 막혀서 답변을 보고 이해를 했는데,, String[] names = {"챈들러", "레이첼", "모니카", "벤자민", "제임스"}; int[] ages = {50, 42, 21, 18, 5}; Arrays.stream(ages) .filter(x->x>=20) .map(x-> x >= 20 ? names + " 5000원": names + " 무료") .forEach(System.out::println); 혹시 이런 코드로 풀 수 있는 방법같은게 없을까요? 이거저거 하다가 다 안돼서 결국 사용하신 방법으로 이해는 했는데 2개의 리스트를 하나의 출력문으로 할 수 있는 방법이 없을까 해서 질문 드립니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa 프로그래밍-기본편 (Hello JPA-프로젝트 생성) 강의 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 김영한 선생님의 jpa 프로그래밍-기본편 (Hello JPA-프로젝트 생성)강의에서 10:20 쯤에서 pom.xml 작성하는데 자꾸 빨간줄이 떠서 올립니다 ,,링크 올리겠습니다.https://drive.google.com/drive/folders/1K2BpXMt59xgFDv-a_SNS2qz3VLhtHkFT?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberFrom의 setname설정방법
궁금한게 있는데요! createMemberForm.html에서 name="name"으로 된 부분이 MemberForm의 setname이 된다고 이해를 했는데 그 연결고리가 어디인지 궁금합니다. 제가 보는데 도대체 어디서 이 name이 MemberForm의 setname이 되는지 모르겠습니다ㅠㅠ. setname으로 된 이유를 알면 MemberController에서 public String create(MemberForm form){ Member member = new Member(); member.setName(form.getName());이렇게 되는거는 이해가 되거든요... 근데 setname이 어디서 어떻게 설정되었는지 모르니 답답하네요ㅠ
-
미해결더 자바, 코드를 조작하는 다양한 방법
Annotation processor에서 element type을 제한했는데도 다른 타입으로 컴파일이 됩니다...이상하게도..
안녕하세요, 애노테이션 프로세서에서 테스트하는 @Magic 을 테스트하면서,process 메소드에서 분명 inteface element에서만 작동되고 아니면 erorr를 발생하도록 했는데...실제로 제가 프로젝트를 만들어서 class에다가 @Magic을 적용해도, 에러없이 정상적으로 컴파일이 됩니다.... 빌더는 gradle을 사용하고 있구요... 지금까지 한번도 실패한적이 없이 테스트 잘 되고 있었는데.. 실패해야할 컴파일이 정상이되어서 이해가 않되서 질무을 올려봅니다..아래는 process method:class에 @Magic 적용했는데도 정상인 화면입니다혹시 몰라서 다시 한번 똑같이 프로젝트 만들었습니다. 이번엔 빌드 정보까지 스크린캡쳐했습니다.
-
미해결실전! Querydsl
EntityManagerFactory를 활용한 페치조인 예제 에러(해결법있음 - 이유모름)
환경 조인 - 페치 조인 강의를 듣던 중이 부분 예제를 따라 하다가 보니java.lang.illegalstateexception: specified field type [interface jakarta.persistence.entitymanagerfactory] is incompatible with resource type [jakarta.persistence.entitymanager]이라는 exception이 발생했습니다.강의에서 새로운 프로젝트를 생성하거나 파일을 생성하지 않았으므로 상단에@PersistenceContext EntityManager em; 가 있고 추가적으로@PersistenceContext EntityManagerFactory emf;를 넣어주고 테스트 코드에서emf.getPersistenceUnitUtil().isLoaded(findMember.getTeam());를 실행하였습니다. 일단 entitymanagerfactory는 yml에 있는 설정을 바탕으로 1개가 생성되고 해당 factory에서 요청에 의해 entitymanager를 생성해서 제공하는 형태라는 글을 발견하여 추가적인 의존성 주입에서 2개의 factory 생성되는 이슈가 발생해서가 아닌가 추측을 하고 우선적으로는 사용중인 em에서 factory를 가져올 수 있길래 이렇게 접근했는데em.getEntityManagerFactory().getPersistenceUnitUtil().isLoaded(findMember.getTeam());정상작동은 하긴 하지만 강사님의 경우 추가적인 entitymanagerfactory 주입에도 테스트코드가 돌아갔으므로 정확한 동작 이유를 잘 모르겠어서 혹시 확실한 이유를 알 수 있을까 하여 문의합니다.바탕
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
매출액의 종류 문제 풀이 질문 있습니다
매출액의 종류 문제 풀이 질문 있습니다.public ArrayList<Integer> solution(int n, int k, int[] arr) { ArrayList<Integer> answer = new ArrayList<>(); Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < k - 1; i++) { map.put(arr[i], map.getOrDefault(arr[i], 0) + 1); } return answer; }처음에 k-1 개만 map에 세팅해줘야 하는 이유가 뭔가요?k개까지 세팅해야 하지 않나요? 만약에 k개까지 세팅한다면 코드를 다음과 같이 할 수 있는데,이때 두번째 for문의 if문의 조건에서 왜 HM.get(arr[lt])이 1보다 큰지의 여부로 바뀌는 것인가요? public ArrayList<Integer> solution(int n, int k, int[] arr) { ArrayList<Integer> answer = new ArrayList<>(); Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < k; i++) { map.put(arr[i], map.getOrDefault(arr[i], 0) + 1); } answer.add(map.size()); int left = 0; for (int right = k; right < n; right++) { map.put(arr[right], map.getOrDefault(arr[right], 0) + 1); if (map.get(arr[left]) > 1) { map.put(arr[left], map.get(arr[left]) - 1); } else { map.remove(arr[left]); } left++; answer.add(map.size()); } return answer; }
-
해결됨실전! 스프링 데이터 JPA
[질문 X] @Setter에 일괄적으로 AccessLevel 설정
@Setter에 왠만하면 private로 해두고 필요할 때만 그 개개별만 열어두고 싶었는데,@Setter(AccessLevel.PRIVATE)이렇게 클래스레벨에 넣어두면 다 private로 생성되는 듯 해요.만약 따로 @Setter를 열어두고 싶은 필드가 있다면 @Setter(AccessLevel.PUBLIC) private String username;그 필드에 이렇게.. 자세할 수록 우선 반영이니..
-
미해결JSP 강의평가 웹 사이트 개발하기
무조껀 회원가입에 성공했습니다라고 뜹니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="user.UserDTO" %><%@ page import="user.UserDAO" %><%@ page import="java.io.PrintWriter" %><%request.setCharacterEncoding("UTF-8");String userID = null;String userPassword = null;if(request.getParameter("userID") != null) {userID = (String) request.getParameter("userID");}if(request.getParameter("userPassword") != null) {userPassword = (String) request.getParameter("userPassword");}if(userID == null || userPassword == null) {PrintWriter script = response.getWriter();script.println("<script>");script.println("alert('입력이 안 된 사항이 있습니다.');");script.println("history.back();");script.println("</script>");script.close();return;}UserDAO userDAO = new UserDAO();int result = userDAO.join(userID, userPassword);if (result == 1) {PrintWriter script = response.getWriter();script.println("<script>");script.println("alert('회원가입에 성공했습니다..');");script.println("location.href = 'index.jsp';");script.println("</script>");script.close();return;}%> 무조껀 회원가입에 성공했습니다 라고 뜨는데 문제가 있는 부분이 어디일까요...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
memberService에서 회원 서비스 테스트 하려고 하는데 No test subjects found가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 테스트를 위해 만들고 싶은데 단축키를 눌러도 똑같이 뜹니다....코드 드립니다ㅜㅜ package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import java.util.List; import java.util.Optional; public class MemberService { // 회원 서비스를 개발하려면 일단 회원 repository가 있어야 한다 private final MemberRepository memberRepository = new MemoryMemberRepository(); // 회원 가입 // member 에 저장하고 id를 반환하면 된다 public Long join(Member member) { validateDuplicateMember(member); //중복 회원 검증 memberRepository.save(member); return member.getId(); } // 중복 검증 private void validateDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } // 전체 회원 조회 public List<Member> findMembers() { return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId) { return memberRepository.findById(memberId); } }
-
해결됨실전! 스프링 데이터 JPA
flush() 와 clear()
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1. 스프링 데이터 JPA 가 지원하는 save를 호출하면 flush()가 나가는건가요 아니면 save를 하고 bulkAgePlus()를 호출하면서 bulkAgePlus() 에 있는 JQPL이 실행되서 flush() 가 나가는건가요 ? bulkAgePlus()를 실행하면 JPQL 실행이되고, JPQL 이 실행이 되면 flush() 가 호출이 되는데 이때 SQL쿼리문이 DB에 전송이대서 DB에는 업데이트가 되어있지만 영속성 컨텍스트는 업데이트가 안되기 때문에 clear()를 해주는게 맞는건가요 ?