묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Python 알고리즘 베스트 10
PDF파일이 어디에 있나요?
안녕하세요PDF파일은 출력하려고 하는데, 노션을 보면"PDF노션 페이지에서 다운로드하실 수 있습니다." 로만 되어있는데다운받을 수 있는 링크는 어디에 있나요?노션에서 전체PDF출력하려면 비지니스라서 불가능한데...확인부탁드립니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
csv 형식으로 write시 출력 결과물이 달라요.
이렇게 한줄씩 띄어서 출력이 되는데, 이건 무슨 문제인건가요?선생님이 작성하신 코드 그대로 돌려도 결과가 저렇게 나옵니다..
-
미해결타입스크립트 입문 - 기초부터 실전까지
타입 가드 관련 질문입니다!
타입 가드 강의를 듣던 중 이해가 되지 않는 부분이 있어 질문 남깁니다!타입 가드가 정확히 어떤 것인지 이해가 잘 되지 않아 typescript 공식 문서를 찾아보던 중 narrowing이라는 개념을 보게 되었습니다. 그리고 추가적으로 찾아보던 중에 type guard가 narrowing을 하는 테크닉 중 하나라는 글을 봤는데, 정확히 narrowing과 type guard는 어떻게 구분되는 건가요?그리고 현 시점에서 typescript의 type guard 페이지(https://www.typescriptlang.org/docs/handbook/advanced-types.html)가 deprecated 되었다고 나오는데 type guard 개념 자체가 deprecated가 된 건 아니고 단순히 페이지만 수정된 것이 맞나요?
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
안녕하세요 교수님 alexnet 구현중에 질문 있습니다.
논문에서 가중치 초기화를 할때, 평균은 0 이고 표준편차가 0.01이라고 하였는데 위와 같이 구현했는데, 성능이 너무 좋지 않아서요.혹시 잘못된것이 있을까요?
-
해결됨스프링 핵심 원리 - 기본편
빌드가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]project에 강의 영상과 달리 Gradle 이 두개가 있길래 첫번째 선택후 영상과 동일한 방법으로 파일을 열었는데 이런 에러가 뜹니다. 뭐가 문제 일까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 개념 #7. 문제로 연습하는 시간복잡도 Q5 점화식 관련 질문입니다.
안녕하세요 큰돌님 강의에서 N=3으로 두고 도식화를 하면서 점화식을 작성했는데 1(3^(N+1)-1)/3-1 이라고 강의는 설명합니다. 근데 N=3 일때 cnt=40이 나오게 되므로 점화식은 1((3^(N+1))-1)/(3-1)이 아닌지 여쭤봅니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Docker 내부의 ansible컨테이너에서 ssh root@ip로 접근할 수 있는이유가 궁금합니다.
ssh가 22번포트를 사용함으로 별도로 포트번호를 지정하지않아도 ssh root@ip로 접근이 가능한건가요? 만약 그렇다면 컨테이너 내부포트가 22번이 아닌 다른 컨테이너에게도 똑같이 접근할 수 있나요?원래 컨테이너 내부는 userid@내부ip로 접근할 수 있는건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 시간초과와 range based for
안녕하세요 큰돌님 몸은 괜찮으신지요. 문제를 풀다가 index out of bound도 아닌 segmentation fault가 떠서 헤매고 있습니다.코드 한 번 봐 주시면 감사하겠습니다.http://boj.kr/28b2fc7b2381489fb1ba98f2299c5906 range based for문에서 데이터를 추가해 이상한 값이 들어가 오류가 나는 거 였습니다.cpp에서 range based for문이 어떻게 실행되길래 이런 현상이 발생하나요? range based for에서는 수정도 되지 않던데 말이지요. reference를 읽어도 모르겠어서 여쭈어 봅니다.또한 제 코드가 왜 시간 초과가 나는지 모르겠습니다. dfs두개에 여러 로직들로 O(k(n)^2) 아닌가요? 72 ~ 77라인은 결국 ny, nx가 조건을 만족 할때 하는거라 n^3이 되지않는다고 보입니다. 이 라인들을 64번 for문 밖으로 빼면 72~ 77 라인의 시간 복잡도는 n^2이라고 생각는데 말이지요.http://boj.kr/6eca2b27e3f84a14af220a09ef488606
-
해결됨스프링 핵심 원리 - 기본편
초기 설정 sync 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니요3. 질문 잘하기 메뉴얼을 읽어보셨나요? 넵[질문 내용] No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.1.1 was foundsync에서 이 문구가 계속 뜹니다ㅠㅠ- Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 11이거랑 같이 여러개가 뜨는데 뭐가 문제일까요? 17 설치해놨었는데 11 사용한다고 하셔서 11 다시 설치하고 환경변수까지 바꿔놨는데 계속 뜨네요...
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
npm run dev 오류가 뜹니다
http://localhost:3000/에 뜬 오류Server ErrorTypeError: Cannot read properties of undefined (reading 'user')This error happened while generating the page. Any console logs will be displayed in the terminal window.Sourcecomponents/AppLayout.js (15:52) @ eval 13 | 14 | const AppLayout = ({ children }) => { > 15 | const isLoggedIn = useSelector((state) => state.user.isLoggedIn); | ^ 16 | // const { isLoggedIn } = useSelector(state => state.user); 17 | 18 | return (Call StackAppLayoutcomponents/AppLayout.js (15:36)Show collapsed frames 터미널에 뜬 오류TypeError: Cannot read properties of undefined (reading 'user')at eval (webpack-internal:///./components/AppLayout.js:32:101)at /Users/hyeonyeongjeong/Documents/2023project/nodebird/prepare/front/node_modules/react-redux/lib/hooks/useSelector.js:67:26 npm run dev를 하고http://localhost:3000/ 들어갔더니이런 오류가 뜨면서 안됩니다.유저를 왜 읽지 못하는 걸까요?오류 해결하고 싶습니다 ㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
em.find 시 쿼리문 2번 수행
답변 없으셔서 다시 남깁니다. 영속성 컨텍스트 2 강의의 약 7분 쯤 em.find를 2번하게 되어도 1차캐시 조회에 의해 쿼리문이 한번만 출력된다고 하셨는데저는 2번 출력되네요.. 문제가 뭘까요 https://drive.google.com/drive/folders/1rLlWTlGVWyFRoL-HXbvyWREnpHBC7OBe?usp=sharing 추가로 질문이 하나 더 있는데강의에서는 JPAMain 자바 파일의 try문을 수행하면 db에 바로 저장이 되는데저는 저장이 안됩니다.이것도 한번 확인 부탁드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K
다른분들의 답변, 교안을 봐도 이해가 가지 않아서 질문드립니다.if(mid)ret.insert(ret.begin() + ret.size() / 2, mid); 위 부분에서 ret.begin()이 들어가야하는 이유를 모르겠습니다.교안을 보면 insert(위치, 문자열)이라고 되어있으니까 insert(ret.size()/2 , mid)라고 하면 되지 않나요?왜 ret.begin()을 빼면 오류가 나는지다른 분들의 답변을 봐도, 오래 고민을 해봐도 도무지 이해가 가지 않아 답답한 마음에 질문드립니다ㅠㅠ
-
미해결ESXi 가상 인프라 구축과 보안 솔루션을 활용한 이상징후 탐지 모니터링
exsi 설치시 오류
베어메탈 실습을 준비를 위해 노트북에 설치하는데 이 오류는 일체형 랜카드가 인식이 안되는 오류라고 하는데 해결 방법 부탁드립니다 구글링해서 되는 방법을 시도해봤는데 혹시 와이파이 연결로 하면 안되고 랜 케이블 사서 직접 연결 해야하나요?
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
Bfs 강의 도입이 시급합니다!!
강의가 너무 좋네요~~ bfs 강의도 올려주실 계획 없나요~~~ (언어는 c++ 어떨지 조심스럽게 말씀드려봅니다 ㅎㅎ)
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http요청 데이터 부분
강의를 듣던 중에 http 요청 데이터 부분에 총 3가지 방법이 있다고 들었습니다. 그런데 그냥 http api를 사용해서 get,post,put 등등 http message body 방법만으로 웹 애플리케이션을 구현하면 문제가 있을까요? 굳이 get-쿼리파라미터/ post-html form 이 두가지 방법도 알아야하는지 궁금합니다!
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
서버 배포시 문의드려요..
안녕하세요.장고로해서 우분투 서버에 배포중인데요. 셀레니움 이용시크롬과 크롬 웹 드라이버가 서버 컴퓨터에 깔려있어야하는 걸까요,클라이언트 컴퓨터에 깔려있어야 하는걸까요? 아래와 같이 옵션 뭘 설정하라는데.. chrome_options.binary_location = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" chrome_driver_binary = "/usr/local/bin/chromedriver" 혹시 아시면 답변 부탁드려요.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
서버 ip를 모르는 경우
클라이언트가 소켓열어서 tcp통신을 하려고 할 때아예 서버와 연결된적이 없어 서버 ip를 모르는 경우에는 어떻게 하나요>??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
CounterState 질문입니다.
순수한 궁금증으로 여쭤뵙습니다.혹시 해당 cs를 구현하지않고 private static int currentCount를 사용한다면 유저마다 보이는 currentCounter가 다를까요? 아니면 공통적으로 서버가 닫히기전까지 모든 유저가 동일한 숫자가 보일까요?
-
미해결스프링 핵심 원리 - 기본편
생성자 주입 문의
[질문 내용]안녕하세요. 생성자 주입을 권장한다는 말씀을 듣고 의문이 생겨 문의드립니다.만약 개발 도중 생성자 필드가 추가가 된다면 해당 생성자 부분 코드를 건드리게 될텐데, 그에 따라 해당 생성자를 사용했던 코드들이 전부 오류가 날 것이고 변경이 필요할 것 같습니다.해당 사항이 발생하더라도 생성자 주입 방식을 제일 권장하시는 걸까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
지연 로딩 관련 에러 발생합니다.
기존 강의에다가 JWT token + security 를 적용하여 프로젝트를 하고 있는데 , failed to lazily initialize a collection of role: study.wonyshop.user.entity.User.orders, could not initialize proxy - no Session 오류가 발생합니다. 원인을 찾아보니 이 오류는 지연로딩된 컬렉션을 사용하는 도중에 세션이 종료되어서 발생하는 문제입니다. User 엔티티에서 orders 컬렉션을 지연로딩으로 설정하였기 때문에 실제로 컬렉션에 접근할 때 데이터베이스 연결이 필요하며 세션이 닫힌 상태에서는 접근할 수 없습니다.package study.wonyshop.user.entity; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import study.wonyshop.common.TimeStamped; import study.wonyshop.delivery.Address; import study.wonyshop.order.entity.Order; //import study.wonyshop.order.entity.Order; @Entity @Table(name = "USERS") //테이블 user 예약어 있어서 사용할 수 없음) @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class User extends TimeStamped { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id", nullable = false) private Long id; @Column(nullable = false, unique = true) private String email; @Column(nullable = false, unique = true) private String nickname; @Column(nullable = false) private String password; @Column(nullable = false) private Address address; @Setter private String profileImage; @Column(nullable = false) @Enumerated(value = EnumType.STRING) private UserRoleEnum role; @Column(nullable = false, unique = true) private String phoneNumber; @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List<Order> orders = new ArrayList<>(); //todo 즉시로딩 필요함 -> fetch 조인 생각 할것 /** * 결제 수단은 포인트로 가능 ! 하다는 가정 */ @Column(nullable = false) private int point = 1000; // 기본 가입 포인트 private Boolean inUser; // 추후 휴면계정 관리 할때 사용 하기 위함 @Builder public User(String email, String nickname, String password, Address address, String profileImage, UserRoleEnum role, String phoneNumber) { this.email = email; this.nickname = nickname; this.password = password; this.address = address; this.profileImage = profileImage; this.role = role; this.phoneNumber = phoneNumber; } // admin , seller 용 @Builder public User(String email, String nickname, String password, Address address, String profileImage, UserRoleEnum role, String phoneNumber, int point) { this.email = email; this.nickname = nickname; this.password = password; this.address = address; this.profileImage = profileImage; this.role = role; this.phoneNumber = phoneNumber; this.point = point; } /** * 소비자가 -> 셀러 에게 지불 * * @param totalPrice */ public void payForOrder(int totalPrice) { int restPoint = this.point - totalPrice; if (restPoint < 0) { throw new IllegalArgumentException("포인트가 부족합니다. 포인트 충전 후 다시 이용해 주세요."); } this.point = restPoint; } /** * 셀러가 판매해서 받은 돈 * @param totalPrice */ public void receivePayment(int totalPrice) { this.point += totalPrice; } /** * 취소 시 환불 * @param refundPayment */ public void refundPayment(int refundPayment){ this.point -= refundPayment; } }package study.wonyshop.order.entity; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import study.wonyshop.common.TimeStamped; import study.wonyshop.delivery.Delivery; import study.wonyshop.delivery.DeliveryStatus; import study.wonyshop.orderItem.OrderItem; import study.wonyshop.user.entity.User; @Entity @Table(name = "ORDERS") @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order extends TimeStamped { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "order_id", nullable = false) private Long id; @ManyToOne(fetch = FetchType.LAZY) //연관관계 주인 @JoinColumn(name = "user_id") private User user; // 주문자 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "delivery_id") private Delivery delivery; //배송정보 @Enumerated(EnumType.STRING) private OrderStatus status; //ORDER, CANCEL private LocalDateTime orderDate;// 주문 날짜 @Builder public Order(User user, Delivery delivery, OrderStatus status, LocalDateTime orderDate) { this.user = user; this.delivery = delivery; this.status = status; this.orderDate = orderDate; } //--- 양방향 연관관계 편의 메서드 ------// 편의메서드는 컨트롤 하는 쪽에 만들어주면 됨 // 다 쪽이 연관관계 주인으로 값 의 변경사항은 주인쪽에서 함 // 다 쪽 : 일의 값은 set 으로 저장 // 일 쪽 : 리스트(다) 를 조회하여 add // order : user = m :1 public void setUser(User user) { this.user = user; user.getOrders().add(this); } //이때 이것을 호출 하기전에 세션이 종료되어 에러 발생 //order : orderItem = 1: m public void addOrderItem(OrderItem orderItem) { this.orderItems.add(orderItem); orderItem.setOrder(this); } // order : delivery = 1: 1 public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); } public void setOrderDate(LocalDateTime orderDate) { this.orderDate = orderDate; } public void setStatus(OrderStatus status) { this.status = status; } //===== 생성 메서드 =====// //OrderItem... orderItems에서 ...은 가변 인자를 선언하는 부분입니다. 이는 OrderItem 타입의 인자를 0개 이상 받을 수 있다는 의미입니다. //Order order = createOrder(user, delivery, item1, item2); public static Order createOrder(User user, Delivery delivery, OrderItem... orderItems) { Order order = new Order(); order.setUser(user); order.setDelivery(delivery); for (OrderItem orderItem : orderItems) { order.addOrderItem(orderItem); } order.setStatus(OrderStatus.ORDER); order.setOrderDate(LocalDateTime.now()); return order; } //--- 비지니스 로직 -------// /** * 주문취소 */ public void cancel(){ if(delivery.getDeliveryStatus() == DeliveryStatus.COMP ) { throw new IllegalStateException(" 이미 배송이 완료된 상품은 취소가 불가능 합니다. "); //Non-cancellable product } this.setStatus(OrderStatus.CANCEL); // 주문 상품을 다 취소 시켜야함 for(OrderItem orderItem : orderItems){ orderItem.cancel(); } } //=== 조회 로직 =====// /** * 전체 주문 가격 조회 */ public int getTotalPrice(){ int totalPrice = 0; for(OrderItem orderItem :orderItems){ totalPrice += orderItem.getTotalPrice(); } return totalPrice; } } @PostMapping("") public OrderResponse orderItem(@AuthenticationPrincipal UserDetailsImpl userDetails , @RequestBody OrderRequest orderRequest) { Long itemId = orderRequest.getItemId(); int quantity = orderRequest.getQuantity(); return orderService.orderItem(userDetails.getUser(), itemId, quantity); }@Service @RequiredArgsConstructor public class OrderService { private final OrderRepository orderRepository; private final ItemRepository itemRepository; private final UserRepository userRepository; private final DeliveryRepository deliveryRepository; @Transactional public OrderResponse orderItem(User user, Long itemId, int quantity) { Item findItem = itemRepository.findById(itemId).orElseThrow( () -> new CustomException(ExceptionStatus.NOT_EXIST) ); //userRepository.findByIdWithOrders(user.getId()); //배송 생성 Delivery delivery = new Delivery(user.getAddress(), DeliveryStatus.READY); // 주문상품 생성 OrderItem orderItem = OrderItem.createOrderItem(findItem, findItem.getPrice(), quantity); // 주문생성 Order order = Order.createOrder(user, delivery, orderItem); deliveryRepository.save(delivery); userRepository.save(user); orderRepository.save(order); return new OrderResponse(order); }}이 상태에서 //userRepository.findByIdWithOrders(user.getId());이 주석 된 부분에 이처럼 user 객체를 가져올때 오더와 함께 가져오는 페치조인을 사용해봤지만 이번 엔 user가 null 값이라는 에러가 납니다. ㅠㅠㅠ 아무리 머리를 굴려도 ㅠㅠㅠㅠㅠ 해결이 안되네용 ㅠㅠㅠ 페치조인 코드 는 아래와 같이 작성했습니다. public interface OrderRepository extends JpaRepository<Order,Long> { @Query("select u from User u join fetch u.orders WHERE u.id = :userId") User findByIdWithOrders(@Param("userId")Long id); } 해결방법은 FetchType.EAGER이걸 적용하면 되는데 eager 적용하지 않고 하는 방법 없을까요 ㅠㅠ @OneToMany(mappedBy = "user", cascade = CascadeType.ALL,Fetch = FetchType.EAGER orphanRemoval = true) private List<Order> orders = new ArrayList<>();