묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트 나누는 기준
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강사님 37분 쯤 test를 주문 생성 시 주문 상태는 INIT이다 라는 test를 하시는데 이를 이전 TotalPrice test하는 testcode와 같이 합쳐서 주문 생성 시 주문 상태는 INIT , TotalPrice를 구할 수 있다 이런식으로 하나로 합치는 건 어떻게 생각하시나요?
-
미해결Practical Testing: 실용적인 테스트 가이드
서비스 레파지토리 의존
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강사님 강의를 듣던 중 의문점이 생겨 질문을 남깁니다.강의 28분 쯤 OrderService에서 ProductRepository를 의존하게 되는데 보통 A 레파지토리는 A서비스에서만 의존 하고 B레파지토리를 접근하려면 B서비스를 통해 접근한다 라고 들은 기억이 있는데 혹시 강사님만의 기준이 있을까요??감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
회원 상속전략
안녕하세요 일정 부분을 공유하는 회원 엔티티를 설계할 때의 상속전략 vs 분리가 궁금합니다.민원인, 직원 이렇게 2종류가 있고 아이디, 비밀번호, 사번 등이 동일하고 직원은 여기서 몇개만 추가된다고 가정한다면엔티티를 따로 분리하는게 아닌 공통속성 엔티티를 상속해서 만들어도 괜찮을까요?몇일을 고민해도 답이 쉽게 나오지 않네요ㅜㅜ
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
mysql 질문이요!
저는 Developer Default가 없는데 그냥 server only로 해도 상관없을까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
RESTFUL API
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. RESTFUL API 방식으로 url 작성 시 강의 13분에 나오는 postmapping에 orders/order이 더 맞지 않나요?? new 보단
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@PostMapping("/order") 에서 @RequestParam 대신 @ModelAttribute 사용하려면
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 강의에서 사용하신 코드를 이거에서 @PostMapping("/order") public String createOrder(@RequestParam("itemId") Long itemId, @RequestParam("memberId") Long memberId, @RequestParam("quantity") int quantity) { orderService.order(memberId, itemId, quantity); return "redirect:/"; } 이렇게 ModelAttribute 를 사용해서 변경하고 싶은데 값을 조회해보니까 testForm 값이 안들어가게 되는데 이러한 방식이 왜 불가능한지 알고 싶습니다.@PostMapping("/order") public String createOrder(@ModelAttribute TestForm testForm) { orderService.order(testForm.getMemberId(), testForm.getItemId(), testForm.getQuantity()); return "redirect:/"; }TestForm 의 필드입니다.public class TestForm { private Long memberId; private Long itemId; private int quantity; }감사합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
GPG 체크 오류
만약 GPG체크오류가 계속 해서 뜬다면 이것을 시도해보세요다운로드한 패키지들을 dnf 명령어를 사용하여 설치합니다. 먼저, 패키지들을 다운로드합니다:wget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-client-8.0.37-1.el9.x86_64.rpmwget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-client-plugins-8.0.37-1.el9.x86_64.rpmwget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-common-8.0.37-1.el9.x86_64.rpmwget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-icu-data-files-8.0.37-1.el9.x86_64.rpmwget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-libs-8.0.37-1.el9.x86_64.rpmwget https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/mysql-community-server-8.0.37-1.el9.x86_64.rpm dnf 명령어를 사용하여 GPG 체크 없이 패키지를 설치합니다:sudo dnf install ./mysql-community-client-8.0.37-1.el9.x86_64.rpm --nogpgchecksudo dnf install ./mysql-community-client-plugins-8.0.37-1.el9.x86_64.rpm --nogpgchecksudo dnf install ./mysql-community-common-8.0.37-1.el9.x86_64.rpm --nogpgchecksudo dnf install ./mysql-community-icu-data-files-8.0.37-1.el9.x86_64.rpm --nogpgchecksudo dnf install ./mysql-community-libs-8.0.37-1.el9.x86_64.rpm --nogpgchecksudo dnf install ./mysql-community-server-8.0.37-1.el9.x86_64.rpm --nogpgcheck MySQL 서비스 시작 및 상태 확인sudo systemctl start mysqldsudo systemctl status mysqld이렇게 하면 해결 되는것 같아요 저도 엄청 꼬였는데 이 코드면 해결되네요
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
단일 테이블 전략 조회 성능 임계점
단일 테이블 전략에서 단일 테이블에 모든 것을 저장하기 때문에 테이블이 비대해지고, 이에 따라 조회 성능에 문제가 발생할 수 있다고 하는데임계점을 넘는 경우에만 그렇다 라고 말씀하십니다.일반적으로 임계점은 어느정도인지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실무 백엔드, 프론트엔드 관하여 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니요2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의의 실습은 Spring + Thymeleaf 를 이용하여 구현하는데, 실제 현업에서는 백엔드와 프론트엔드가 분리되어 각각 개발할 수도 있는데, 타임리프는 JSP와 같이 프론트단에 서버 관련 로직이 연동되어 분리하여 각각 분담하기엔 어려움이나 프론트의 불만이 있지 않을까 생각되는데, 실제 현업에서는 어떻게 진행하는지 궁금합니다. (서버 개발자가 프론트까지 담당하면 어려움이 없겠으나, 분리되어 프로젝트를 진행하는 경우에도 타임리프를 사용하는지 궁금합니다. )(JSP는 공부한적 있지만 실제 현업에서 사용해본적은 없습니다)
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
파일에서 찾기 단축키 알려주실 수 있나요?
혹시 저 파일에서 찾기 단축키가 뭔지 알 수 있을까요???너무 유용해보이는데 여기저기 찾아봐도 잘 못 찾겠어요...
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
컨트롤러에서 어설픈 엔티티를 생성하면 안 되는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 해당 부분에서 컨트롤러에서 어설픈 엔티티를 생성하지 말라고 하셨습니다그 말인 즉슨 컨트롤러에서 준영속 엔티티를 생성해서 운영을 지양하라는 말씀이신데 이유가 궁금합니다준영속 상태의 엔티티는 불안정하니 가급적 자제해야한다는 이유일까요?아니면 단순 서비스 계층에 수정할 파라메터만 "명확"하게 던지는 게 좋은 설계이므로 그렇게 말씀하신 건가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 내용으로 (window)grafana 실행 안될 경우
bin 폴더에서grafana-server start
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 데이터베이스 설정 질문 드립니다.
안녕하세요 다른 강의랑 병행하며 들으려고 하는중입니다! 다른 강의도 h2 데이터베이스를 사용하는데 , h2 데이터베이스를 두 강의에서 각각 사용하려면 어떻게 설정해야할지 모르겠습니다. 알려주시면 감사드리겠습니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
프록시 호출
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]static class CallService{ public void external() { log.info("call external"); printTxInfo(); internal(); } @Transactional public void internal() { log.info("call internal"); printTxInfo(); } }위 코드에서 교안의 그림과 설명에서 callService.external()을 호출할 때, 트랜잭션 프록시로부터 먼저 호출된다고 되어있는데 external()메서드는 @Transactional이 적용되어 있지 않음에도 프록시로 호출되는 이유는 같은 클래스 레벨인 internal()메서드에 @Transactional이 선언되어 있어서 CallService클래스 자체가 프록시로 생성되기때문인가요?옳바르게 이해한지 확인하고싶어 질문드립니다ㅠㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@BatchSize 적용 시 로그
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 정말 JPA를 제대로 배우며 유익한 시간을 보내고 있는 수강생입니다.질문 1.페치조인2 - 한계 강의를 듣던 중 @BatchSize 를 조절하여N+1 문제를 해결하는 예시를 보여주시는데보여주신 예시의 로그와 제가 테스트 해봤을 때의 로그가 좀 다르게 나와 질문드립니다.인강에서 보여주실 때에는 load one-to-many 라고 주석이 달리면서 실제 조건문에서는 ? 가 2개만 찍혀있는데제가 테스트 해보니 BatchSize에 지정해준 숫자 만큼 로그에? 가 찍히는것을 확인 할 수 있었습니다.혹시 제가 잘 못 테스트 한 것 일까요?질문 2.또한 강의에서 일반적으로 BatchSize 를 전역 설정으로 해놓고 100~1000 사이의 크기를 지정하여 사용하신다고 말씀하셨는데 이는 DB 조회 쿼리 횟수는 줄어들어 N+1 문제는 완화할수 있지만 지연 로딩 시 내가 접근한 객체의 수 만큼만 로드하는 것이 아닌 무조건 배치 사이즈 만큼 로드되기 때문에그 간격이 크면 메모리적인 낭비가 되는거 아닌가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
TABLE_PER_CLASS 전략 단점관련 질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 강의 정말 잘 듣고있습니다 !!강의 30:00 부근에서 TABLE_PER_CLASS 전략이 왜 안좋냐면 조회시 부모 클래스로 조회를 할 수도 있는데 그런경우에 UNION 쿼리가 나가는 단점이 있다고 하셨습니다.그래서 전략을 JOINED로 바꾸고 실행해봤는데 이런식으로 LEFT JOIN을 여러번 하게 되고SINGLE TABLE 전략은 예상한대로 이런 결과가 나오더라구요. 이 결과들만 보면 SINGLE TABLE이 말씀하신것처럼 심플하게 조회가 되고,JOINED와 TABLE PER CLASS 는 사실 성능상 비슷해보이는데TABLE PER CLASS 전략만 단점을 소개해주셔서 질문드렸습니다.질문은 한마디로, JOINED도 성능이 그렇게 좋진 않은것 아닌가??입니다!! 읽어주셔서 감사합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
QueryDsl QueryProjection 을 사용했을 때의 dto 위치
안녕하세요! 덕분에 테스트 코드 잘 짜고있습니다 😋 강사님은 QueryDsl 에서 QueryProjection 을 통해 dto 로 한번에 조회하게 되었을때 해당 dto 를 service 계층에 두시는지, 혹은 repository 계층에 dto 를 하나 더 두시는지 궁금합니다!! 둘다 아니라면 어떻게 하시는지도 궁금합니다! (레이어드 아키텍처를 사용한다고 가정) 만약 Service 단에서 querydsl 을 위한 dto 를 생성하게 되면, repository 계층에서 service 계층을 알게되어 의존성측면에서 좋지 않다고 생각합니다. 그렇다고 repository 계층에서 querydsl 을 위한 dto 를 생성하게되면 의존성측면에서는 괜찮다고 볼 수 있지만 좀 번거롭다고 생각이듭니다. (계층마다 dto 가 하나씩..?) 선생님께서는 어떤 방식으로 해결하시는지가 궁금합니다! 제가 잘못생각한거라면 조언좀 부탁드립니다!(말을 너무 못하네요.. 죄송합니다)
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
ItemMapper 빈 오류
[질문 내용]안녕하세요, 스프링부트 3.3.0 버전이라서 교재에 나온대로 mybatis-spring-boot-starter 3.0.3으로 추가했는데 다음과 같이 ItemMapper가 빈으로 등록되지 않습니다.Could not autowire. No beans of 'ItemMapper' type found.그래서 다른 분들처럼 버전 내려보기도 해봤는데 계속 오류가 뜨네요. 자주하는 질문에 나오는 프로젝트 초기화도 해봤는데 오류가 생깁니다. 한번 봐주시면 감사하겠습니다.구글 드라이브 https://drive.google.com/file/d/1EDUWv_GFWyZqOXpXsSuGvkU_ovDC8SWA/view?usp=sharing
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
homeController
homeController에서 return "redirect:/items"; 를통해 itemController에 있는 items로 매핑이 된 메서드로 이동해 items뷰템플릿을 보여주는건 이해했습니다!그런데 왜 localhost:8080을 웝페이지에 띄웠을 때static에있는 index.html이 호출이 되지 않고 homeController에있는 /URL이 호출이되나요 ?requestMapping("/") 이게 기본화면과 매핑된 URL인가요 ??
-
미해결코드로 배우는 React with 스프링부트 API서버
tno값 초기화
제목 그대로 tno값은 어떻게 초기화 시키나요? testDelete 함수를 이용해서 삭제후 다시 testInsert 함수를 이용해서 1 ~ 100까지 만들고 싶은데, tno값은 1부터 시작하는게 아닌, 기존의 tno값부터 1씩 증가됩니다.