묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
수강 기간 연장 문의
안녕하세요 강사님!강의를 방학 기간에 신청해두고 다른 것들을 먼저 하느라 여력이 없었는데, 뒤늦게 돌아보니 수강 기한이 얼마 안 남았네요..혹시 가능하다면 일주일 정도라도 수강기한 연장 부탁드려도 될까요..?확인하시면 답신 부탁드립니다 ㅠㅜ('전체 질문' 설정창이 따로 안 보여서 부득이 '수업 질문'으로 올리게 되었습니다,,!)
-
미해결Practical Testing: 실용적인 테스트 가이드
환경별 DB 분리 질문있습니다.
안녕하세요.application.yml에서 local, test로 환경을 나누어서 h2 db를 통해 테스트 코드를 만들어보고있습니다.나중에 운영 서버나 릴리즈 서버같은곳에 빌드, 배포할때도 테스트를 진행해야 할텐데 DB 주소를 어떻게 설정하는게 좋을까요? 각각 실제로 사용할 DB의 주소를 적어놓을텐데 빌드하면서 테스트를 진행하면 해당 DB의 테이블과 데이터를 건드리게 될거란 생각이 들어서요..테스트용 resources로 yml을 따로 작성해서 해야할까요?
-
미해결
aaa
ccc
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
N + 1 쿼리 횟수
안녕하세요 강의 너무 잘 듣고 있습니다."간단한 주문 조회 V2: 엔티티를 DTO로 변환" 강의를 듣던 중 궁금한 점이 생겨 질문 드립니다.Order 엔티티를 SimpleOrderDto로 변환하는 과정에서 아래 조건으로 인해 샘플 데이터 2개 기준 총 5(1 + 2 + 2)번의 쿼리가 날아간다고 이해했습니다.order -> member 지연 로딩 조회 N번order -> delivery 지연 로딩 조회 N번근데 저는 order -> delivery 쿼리 이후에 order를 찾는 쿼리가 한번 더 날아가는 것처럼 보입니다. 총 7번의 쿼리가 발생하는 것 같은데 무엇 때문인지 설명해주실 수 있을까요?코드와 콘솔 로그는 아래 첨부했습니다. 감사합니다.// Order 엔티티 @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "delivery_id") private Delivery delivery; private LocalDateTime orderDate; @Enumerated(EnumType.STRING) private OrderStatus status; // 주문상태 // Delivery 엔티티 @Id @GeneratedValue @Column(name = "delivery_id") private Long id; @JsonIgnore @OneToOne(mappedBy = "delivery", fetch = FetchType.LAZY) private Order order; @Embedded private Address address; @Enumerated(EnumType.STRING) private DeliveryStatus status; // READY, COMP // OrderSimpleApiController @GetMapping("/api/v2/simple-orders") public List<SimpleOrderDTO> ordersV2() { List<Order> orders = orderRepository.findAll(new OrderSearch()); return orders.stream() .map(SimpleOrderDTO::new) .toList(); } @Data static class SimpleOrderDTO { private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; public SimpleOrderDTO(Order order) { this.orderId = order.getId(); this.name = order.getMember().getName(); // Lazy 초기화 this.orderDate = order.getOrderDate(); this.orderStatus = order.getStatus(); this.address = order.getDelivery().getAddress(); // Lazy 초기화 } }2024-04-09T13:27:53.982+09:00 DEBUG 12424 --- [nio-8080-exec-2] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id 2024-04-09T13:27:53.984+09:00 INFO 12424 --- [nio-8080-exec-2] p6spy : 1712636873984|0|statement|connection 7|url jdbc:h2:tcp://localhost/~/jpashop_v2|select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id|select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id 2024-04-09T13:27:54.005+09:00 DEBUG 12424 --- [nio-8080-exec-2] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2024-04-09T13:27:54.007+09:00 INFO 12424 --- [nio-8080-exec-2] p6spy : 1712636874007|0|statement|connection 7|url jdbc:h2:tcp://localhost/~/jpashop_v2|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=?|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=1 2024-04-09T13:27:54.012+09:00 DEBUG 12424 --- [nio-8080-exec-2] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2024-04-09T13:27:54.013+09:00 INFO 12424 --- [nio-8080-exec-2] p6spy : 1712636874013|0|statement|connection 7|url jdbc:h2:tcp://localhost/~/jpashop_v2|select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=?|select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=1 2024-04-09T13:27:54.016+09:00 DEBUG 12424 --- [nio-8080-exec-2] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-04-09T13:27:54.016+09:00 INFO 12424 --- [nio-8080-exec-2] p6spy : 1712636874016|0|statement|connection 7|url jdbc:h2:tcp://localhost/~/jpashop_v2|select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.delivery_id=?|select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.delivery_id=1 2024-04-09T13:27:54.018+09:00 DEBUG 12424 --- [nio-8080-exec-2] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2024-04-09T13:27:54.019+09:00 INFO 12424 --- [nio-8080-exec-2] p6spy : 1712636874019|0|statement|connection 7|url jdbc:h2:tcp://localhost/~/jpashop_v2|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=?|select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=2 2024-04-09T13:27:54.020+09:00 DEBUG 12424 --- [nio-8080-exec-2] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2024-04-09T13:27:54.020+09:00 INFO 12424 --- [nio-8080-exec-2] p6spy : 1712636874020|0|statement|connection 7|url jdbc:h2:tcp://localhost/~/jpashop_v2|select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=?|select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=2 2024-04-09T13:27:54.021+09:00 DEBUG 12424 --- [nio-8080-exec-2] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-04-09T13:27:54.021+09:00 INFO 12424 --- [nio-8080-exec-2] p6spy : 1712636874021|0|statement|connection 7|url jdbc:h2:tcp://localhost/~/jpashop_v2|select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.delivery_id=?|select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.delivery_id=2
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
ECS, LightSail 선택 고민
안녕하세요. 강사님!강의 정말 잘 보고 있습니다.lightsail로 서버도 배포해보고, ECS를 사용하여 hello world까지 구현해보고, 관리형 서비스에 대해 공부하는데 많은 도움이 되고 있습니다. 고민이 하나 있어 질문 드립니다. 강사님의 강의를 듣기전에 EC2로 배포한 웹사이트가 하나 있습니다. 이 사이트를 강사님 강의 내용을 기반으로 lightsail 또는 ECS로 전환해보고자 합니다. 전환하려는 이유는 기존 ec2는 로드밸런서 및 오토스케일링이 적용되어있지 않아 고가용성이 힘듭니다.보안그룹 또한 보완할점이 많다고 생각합니다.Backend의 경우는 DB도 ec2 내부에 있어서, 수평확장도 힘들 것같아, RDS로 데이터를 이관하려고 합니다.그래서 lightsail과 ECS 선택 기준에 알아보았는데, 소규모 서비스는 lightsail / 대규모 서비스는 ECS로 생각하면 된다고 하더라구요. 당연히 소규모와 대규모는 여러 요인에 따라 달라지긴 하겠지만, LightSail과 ECS를 선택하는 대략적인 기준이 있을까요?
-
미해결처음 배우는 리액트 네이티브
expo 사용하지 않고 앱 실행 시, 데이터 불러오기
useEffect(() => { const getData = async () => { try { const loadedData = await AsyncStorage.getItem('tasks'); setTasks(JSON.parse(loadedData || '{}')); } catch (e) {} }; getData(); // getData 함수 호출 }, []);
-
미해결JSP 웹 쇼핑몰 프로그래밍 기본 과정(JSP WEB Programming)
학습자료 질문
영상을 보면 소스 코드가 아니라 JSP 기본 동강 이라는 파일이 존재하는 것 같은데 이 파일은 제공하지 않는 건가요?
-
미해결Do it! Node.js 프로그래밍 입문
status 작성 이유가 궁금합니다
controller1을 참고하라고 하셔서 혼자 코드를 작성한 후 코드를 봤는데 원래는 없는 status함수가 추가 되어 있습니다 서칭을 해본결과 status(200)은 request가 완료된 것을 알리는 상태 코드라고 하는데 그 목적으로 사용한 것인가요? status 함수 없이 작성해도 상관없던데 추가하신 이유가 궁금합니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Ssr을 이용하면서 csr도 같이 이용할 수 있나요?
Sar은 서버에서 백엔드 개발자가 직접 화면을 보여주기 위해 사용하고Csr은 프론트 개발자가 서버로부터 받은 api를 이용하여 클라이언트에서 직접 화면을 보여주는 기능으로 이해하였습니다.이때 ssr만을 이용하여 프론트엔드 개발자 없이 웹을 개발할. 수 있고 csr을 이용하려면 백엔드 개발자는 ssr을 사용하지 않고 반환되는 api만 프론트 개발자에게 잘 전달해주면 되는건가요? 그렇다면 csr을 이용하는 프론트 개발자와 같이 협업을 한다면 백엔드 개발자는 ssr을 이용할 필요 없이 json만 잘 전달해주면 되는것 이고 굳이 ssr, csr을 같은 프로젝트에서 사용할 이유는 없는건가요?
-
해결됨Next + React Query로 SNS 서비스 만들기
useQuery vs useQueryClient
tanstack query와 next.js 를 함께 사용하면서 의문이 들어 질문합니다!강의의 코드를 보니 같이 prefetch를 해도 유저데이터는 useQueryClient를 사용해서 데이터를 재사용하는듯한데 안에 하위 컴포넌트의 경우 prefetch를하고 useQuery를 사용해서 데이터를 가져오는듯 하더라구요 이 경우도 데이터를 재사용하는건가요? 아니면 새로 가져오는건가요? 그렇다면 똑같이 데이터를 prefetch해도 useQueryClient를 사용해서 가져오는것과 useQuery를 사용해서 가져와야하는 기준이 있을까요? (저의경우 프로젝트 전체를 prefetch후 useQueryClient를해서 데이터를 가져왔더니 데이터를 가져옴과 동시에 fresh가아니라 inactive상태가 되더라구요. ) 좋은강의 감사합니다. 벚꽃같은 제로초 화이팅
-
미해결배달앱 클론코딩 [with React Native]
네이버맵 사용자 위치 추적
안녕하세요네이버맵 연동 시 아래 사진과 같은 기능을 연동하려고 합니다method 확인 시setLocationTrackingMode <- 해당 method 인 것 같은데.. 연동 방식을 잘 모르겠습니다. 도움 부탁드립니다. 고맙습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-V 문제 질문
안녕하세요, 큰돌님 7-v 질문 드립니다. 제가 작성한 코드가테스트 케이스는 통과하는데 틀리는 이유를 모르겠습니다.이유 좀 알 수 있을까요ㅠhttp://boj.kr/9d9a4a384f4441e7aa92861ac25e594f
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
? 플레이스 홀더 문자
매게변수를 지정한 구문은 인젝션 할 방법이 없는건가요? 요즘은 대부분 매게변수를 받아서 쿼리문을 만드는데이런 식으로 말이죠공격이 불가능하다면 모든 입력받는 매게변수를 받으면 sql인젝션 공격 방법이 무의미한 것 아닌가요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
toLowerCase is not a function 오류
코드를 동일하게 작성했는데 왼쪽과 같은 오류가 발생했습니다. toLoewrCase를 작성하기 전까지는 모두 정상 동작하였습니다.인터넷을 찾아보니 해당 함수가 붙는 변수를 문자열로 변환하면 된다 라는 글이 있기에 console.log, typeof를 통해 todo.content와 search가 문자열이 아닌가?? 하고 보려고 했지만 console.log구문을 어디에 넣어도 오류가 발생하여 확인을 할 수 없었습니다.이 오류에 대한 이유를 알 수 있을까요??
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
[프로젝트 생성해보기!] 디버깅 시 매개 변수가 틀리다고 나오네요
make (e=87): 매개 변수가 틀립니다.make: *** [Core/Src/subdir.mk:34: Core/Src/stm32f1xx_hal_msp.o] Error 87make: *** Waiting for unfinished jobs...."make -j12 all" terminated with exit code 2. Build might be incomplete. 보드 펌웨어도 업데이트 하고 usb도 다시 꽂았지만 이런 에러가 뜹니다 어디 코드 한 줄을 바꾸어야 하는 걸까요?
-
해결됨쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
package is not in std 오류
강사님 안녕하세요. 해당 강의 실습 중 오류가 발생하고 궁금한 부분이 있어 글 남깁니다. 작성하신 코드 함수부분만 살짝 바꾸고 package, import 구문은 동일한 상태에서 go run src/section4/test.go 명령어를 실행시켰을 때 아래와 같은 오류가 발생했습니다. src\section4\test.go:5:2: package section4/lib is not in std (C:\Program Files\Go\src\section4\lib) src\section4\test.go:6:2: package section4/lib2 is not in std (C:\Program Files\Go\src\section4\lib2)gopath 문제인가 싶어 확인해보았는데 문제가 없는 상태입니다. 결국, 구글링을 통해 해결법을 찾았는데 section4 디렉토리에서 go mod init 명령어를 통해 go.mod 파일을 생성하니까 문제없이 실행되더라구요. 강사님 영상에서는 mod 관련 명령어없이 실행이 잘 되는 것으로 보이는데 제 환경에서는 왜 이런일이 발생하는지 궁금합니다 ㅠㅠ 답변해주시면 정말 감사드리겠습니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
<4장 랜덤 포레스트 실습> 강의에서
안녕하세요. 강의에서GridSearchCV의 best_score가 0.9165인데,최적의 파라미터를 적용한 모델의 accuracy가 0.9260입니다. 둘다 최적의 파라미터를 적용한 수치이고,train, test 데이터는 이미 txt파일 단계에 나눠져 있고,모델의 random_state=0 으로 같은데 어떻게 accuracy가 달라질 수 있는건인지 궁금합니다. 좋은 강의 덕분에 많이 성장하고 있는 느낌이 듭니다.^^감사합니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
IDE나 gradle 버전이 너무 올드해서 실행이 안됩니다.
최신 android studio를 다운 받아서 따라 해 보는데실행이 안됩니다.
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
입력컴포턴트 파일 어디있나요?
안녕하세요~ 피그마파일이 베리에이션은 있는데 입력 컴포넌트 파일이 없어서 여쭈어 드립니다. 베리에이션파일 이외에는 파일을 없으신가요? 강의에는 쉐어하셨다고 했는데 못찾아서 여쭈어 드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
대리키와 복합키 관련하여 질문 있습니다.
안녕하세요. ORM 설계를 진행할 때 비식별 관계를 사용하고 기본 키는 Long 타입의 대리 키를 사용하는 것을 추천한다고 책에서 읽었습니다. 장바구니, 위시리스트 테이블을 설계 할때도 대리 키를 사용는 것이 좋을까요?아니면 사용자 ID, 상품 ID로 복합키를 사용하는 것이 좋을까요? 어떤 상황에서 복합키를 적절하게 사용해야 하는지 판단을 하지 못하겠습니다.아니면 신규 테이블을 설계할 때는 전부 대리 키를 사용하는 것이 적절 할까요? 그리고 대리 키를 사용할 때 한가지 더 궁금한 부분이 있습니다.대리 키는 비즈니스와 아무 관련이 없다고 하셨는데, 이 부분이 잘 와닿지 않아서요..실제 비즈니스와 관련있는 키가 있는건지.. 아니면 비즈니스에서 사용하는 키를 따로 추가로 생성하고대리 키로는 조회, 수정, 삭제를 진행하면 안되는걸까요? 감사합니다.