묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
toolkit action.payload 질문 있습니다.
zerocho님 github /react-nodebird/toolkit/front/reducers/post.js 에서 likePost.fulfilled 질문이 있습니다!. addCase(likePost.fulfilled, (state, action) => { const post = _find(state.mainPosts, { id: action.payload.PostId }); state.likePostLoading = false; state.likePostDone = true; post.Likers.push({ id: action.payload.UserId });여기 코드에서 action.payload.postId는 어디서 전달해주는 값인지 알 수 있을까요?
-
해결됨디자인 시스템 with 피그마
안녕하세요... 스페이싱 함수값 적용해서 복사할때에 질문이 있습니다!!!
안녕하세요! 영상 보며 따라만들고있는데, 스페이싱 함수값을 적용하면 강의 영상 안에서는 8, 16, 20, 24 이런식으로 하단 값이 숫자로 나오는데 저는 함수값으로 나와서 너무 헷갈립니다...ㅠㅠㅠㅠ 왜이러는걸까요ㅠㅠ? 헷갈려서 삭제하고 다시 해봐도 함수로 나와서 눈이 어지러워요저만.... 이런건가요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Vecotr3.forward 버전에 new 붙이면 [_speed]까지 오류나는 이유
안녕하세요비전공자 학생으로서 정말 감사한 마음으로 강의 듣고 있습니다!1) Vector3.forward 앞에 new 를 붙이면 해당 라인에서 밑줄이 그어지는 이유가 무엇일까요?2) 1번에 경우 [new]를 잘 못 붙인것이라 어렴풋이 에러내용이 짐작가는데요, 어째서 [_speed]에까지 에러 메시지를 띄우는 것일까요?제가 스스로 코드를 쳐보던 와중에 뒤에 알려주신 [코드개선] 부분에 new 연산자를 지우지 않고 그대로 쓴 실수를 했습니다. (처음에는 4줄 다 new를 붙여서 작성했어요)여기저기 구글링하고 공식 api까지 찾아다니가다 엉뚱한 곳에서 오류가 난걸 발견했는데요, 문득 메시지로 여러가지를 띄워주어 궁금해져 질문드립니다
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP 헤더 적용 방법 관련 문의 건입니다.
HTTP 헤더에 전송 방식(분할전송, 압축전송)을 포함해서 서버에서 클라이언트에 응답한다는 내용 관련하여 어떤 방식으로 실제 개발을 하나요? HTTP 헤더의 경우 자바스크립트로 전송을 하는 것인지 자바나 서버 언어로 개발을 하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http정보 출력이 안되요
application.properties 파일에 logging.level.org.apache.coyote.http11= debug해도 console창에 received 받은 정보들이 안떠요.
-
미해결실전! 스프링 데이터 JPA
정적 팩터리 메서드를 이용한 Dto 변환
안녕하세요, 김영한님@Query에서 Dto로 매핑해주는 과정에서 궁금한 점이 있습니다. MemberDto에 정적 팩토리 메서드를 만들어서 Member를 파라미터로 받으니 new MemberDto() 부분이 없이도 생성이 되는 것으로 보여지는데 이 과정이 이해가 되지 않습니다. @Query("SELECT c " + "FROM Coupon c " + "JOIN FETCH c.receiver " + "WHERE c.receiver = :member AND c.couponState.couponStatus = :status " + "ORDER BY c.couponState.meetingDate DESC") List<CouponResponse> findAllByReceiver(@Param("member") Member member, @Param("status") CouponStatus couponStatus){} public static CouponResponse of(Coupon coupon) { Member sender = coupon.getSender(); Member receiver = coupon.getReceiver(); return new CouponResponse( coupon.getId(), new CouponMemberResponse(sender.getId(), sender.getNickname(), sender.getImageUrl()), new CouponMemberResponse(receiver.getId(), receiver.getNickname(), receiver.getImageUrl()), coupon.getCouponTag(), coupon.getCouponMessage(), coupon.getCouponType().getDisplayName(), coupon.getCouponState().getCouponStatus().name(), coupon.getCouponState().getMeetingDate(), coupon.getCreatedTime()); } 어떻게 정적 팩터리 메서드를 통해 생성될 수 있는 건가요?
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
강의자료
강의자료는 어디서 받을수있을까요?...안올라와 있어서슬라이드를 캡쳐하며 공부하고있습니다...
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
서비스 로직에서 saveAndFlush 질문입니다.
안녕하세요. 먼저 알차고 좋은 강의 만들어 주셔서 감사하단 말씀을 드리고 싶습니다 ㅎㅎ 강의를 보다보니 서비스 로직에서 saveAndFlush 를 해주고 있는데 @Transactional 어노테이션이 있어서 디비에 반영이 잘 될거 같은데 saveAndFlush 를 해주는 이유가 따로 있을까요?그리고 저는 보통 save 를 사용했는데 saveAndFlush 를 사용하는 다른 특별한 이유가 있는지 궁금합니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
리액트 axios 데이터 받아와서 랜더링 질문드립니다
useState로 postList라는 이름의 state를 선언한 후 axios를 통해 얻은 결과를 setPostList를 통해 postList에 업데이트 시키고 . 그러면 state가 변경되었으므로 새롭게 렌더링이 되고 -> return이 다시 불리며 -> 변경된 값을 화면에 업데이트 시켜줄 주는걸로 알고있는데 function PostList() { const [postList, setPostList] = useState([]); //const headers = { Authorization: `JWT ${jwtToken}` }; const [{ data: originPostList, loading, error }, refetch] = useAxios({ url: "/api/posts/", //headers }); useEffect(() => { setPostList(originPostList); console.log("mouted"); }, [originPostList]); console.log("loaded respaonse2 :", postList); return ( <div> {postList && postList['results'].length === 0 && ( <Alert type="warning" message="포스팅이 없습니다. :-(" /> )} {postList && postList['results'].map(post => ( <Post post={post} key={post.id} /> ))} </div> ); } export default PostList;loaded respaonse2 : []loaded respaonse2 : []loaded respaonse2 : []loaded respaonse2 : []콘솔창에 이렇게 4번이 뜹니다어쩔때는 postList에 데이터가 들어가서 나오는데useEffect에서 셋 시켜서 데이터가 들어갔는데도 빈 데이터가 나오는지 궁굼합니다.return 문에 postList 가져오는 구문을 없애면 제대로 들어가는데 예외처리를 했는데도 map 찾을수 없다는 에러가 뜹니다그리고 Simple jwt 토큰 인증을 쓰지 않으면 데이터는 잘가져옵니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
윈도우에서 카프카 토픽 삭제 시, 카프카가 실행이 안됩니다..
https://www.inflearn.com/questions/644825제가 예전에 올린 글입니다.질문한 글에 댓글을 또 달았었는데 도저히 해결을 할 수 가 없어서 다시 질문올립니다. 제가 윈도우 환경에서 카프카 토픽을 삭제 했는데그 뒤로 답글로 제시해주신 해결책을 해보려고 해도 해볼 수가 없었습니다..즉, C:\Temp 디렉토리 하위에 zookeeper, kafka 폴더가 전혀없고저의 C:\Temp 아래는 폴더 구조는 다음과 같습니다..2020(폴더)HncDownload(폴더)Service.logAUtempR(폴더 - 안에 아무것도 없음) 그리고 기존 에 사용하고 있던 Kafka환경 폴더(강의에서 제공해주신 폴더)를삭제하고 다시 압축을 풀어서 압축을 푼 경로에zookeeper와 kafka를 실행해도 zookeeper는 실행되고 kafka는 실행되지 않습니다...즉, 동일한 에러가 발생하네요..대체 어떤 걸 지워야지 다시 kafka서버가 정상 실행될까요? 참고로 자료 올려주신 윈도우용 카프카 파일 전부 삭제하고 다시 압축 풀고 설정해도토픽목록은 동일한 에러로 안보이고, 카프카 역시 동일한 에러로 켜지지 않습니다..감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
카프카 토픽안쓰고 저장하면 대용량 처리에 불리한 이유가 있나요?
안녕하세요 강의를 듣다가 궁금증이 카프카 토픽을 안쓰고 저장하면 대용량 처리에서 불리한 이유가 있나 싶어 궁금해 졌습니다. 우선 인터넷에서 검색해서 찾아본 봐로는그러면 카프카 사용하면 대용량 처리에 유리한 이유가병렬처리에 의한 데이터 처리율 향상 : 카프카는 아래 보실 아키텍처에 보면 데이터를 병렬로 처리함으로서 데이터를 빠르고 효과적으로 처리할 수 있습니다. disk에 순차적으로 데이터를 적재하기 때문에 임의 접근(random access) 방식보다 훨씬 더 빠르게 데이터를 처리합니다.데이터 유실 방지 : disk에 적재되기 때문에 만약 불의의 사고로 서버가 다운되었을 시에도 데이터가 유실되는 일 없이 재시작하여 기존 데이터를 안정적으로 처리 가능합니다.클러스터링에 의한 고가용성 서비스 : Scale-out이 가능하여 시스템 확장이 용이하며 어떤 하나 혹은 몇 개의 서버가 다운되도 서비스 자체가 중단될 일 없이 시스템이 운용가능합니다.출처 : https://engkimbs.tistory.com/691정도로 보이는데요 그렇다면토픽을 사용하는 경우와카프카 커넥트를 사용하는 경우가 있었는데 (프로듀서, 컨슈머를 파이프라인을 매번 구성하기 힘들어서 사용하는 것으로 알고 있습니다.)그러면 우선 첫번째 질문은토픽을 사용할 때와 카프카 커넥트를 사용할 때 모두 카프카가 알아서 병령처리를 해주고 데이터 유실 방지를 해주는 건가요?? 또한 두번째 질문은 강의에서 order-service를 여러 개 띄우고 주문 요청을 여러 번 하면여러 개의 order-service의 db에 나눠서 저장을 하는 식으로 했는데요현업에서 MSA환경에서 프로젝트할 때도예를들면 order-service, user-service, catalog-service 각각 db를 하나씩 사용하는게 일반적인 방법인가요? 즉, 각 서비스마다 db를 하나씩 두는 것이 일반적인 방법인가요? 세번째 질문은 강의에서order-service를 여러개 띄우고 하나의 db에 저장하는 방식을 사용했는데즉, Kafka Topic에 설정된 Kafka Sink Connect를 사용해 단일 DB에 저장 했서 데이터를 동기화 했는데.그러면 카프카 커넥트를 사용하지 않고는 여러개의 order-service를 단일 db에 저장할 수 없나요?
-
해결됨GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]
comments null 출력
안녕하세요! 다른 쿼리문은 잘 출력되는데 comments만 계속 null이 뜹니다.query { comments { text userId }} 위 쿼리문에서{ "data": { "comments": null }}널값이 출력됩니다. 다른 쿼리문은 수업 내용과 같이 출력되고, mutation까지 잘 진행됐는데 코멘트만 null이 떠서 질문 남깁니다. 제가 무슨 실수를 한걸까요?ㅠㅠ
-
해결됨팝스타 공식 뮤비 제작 & 유튜브 2천만 뷰 크리에이터의 애니메이트 X 이모티콘 클래스
다른 툴에서 작업한 것을 그대로 불러오는 방법이 있을까요
안녕하세요~ 친구와 협업하려고 하는데 프로크리에이트나 일러스트레이터로 그린 작업 파일을 애니메이트에 불러올 수 있는 방법이 있을런지요... 친구의 그림을 사용해 애니메이트에서 모션을 주려고 하는데 친구가 애니메이트에서 그림을 그리는 수밖에 없을까요~?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
th:each 부분이 작동하지 않습니다.
안녕하세요 강의를 열심히 따라가다가 th:each 부분을 따라치고재실행을 한 후 새로고침을 했는데 상품목록이 안나옵니다. 혹시나 제가 잘못 입력한 부분이 있을까봐 소스코드를 다운받아 items.html 을 통째로붙여넣기 했는데도 안나옵니다... 어떻게 해야될까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
강의 예시코드
판다스 데이터 인덱싱과 필터링 - 02 강의에서 설명주시는 코드와 강사님의 깃헙 예시코드 내용이 조금씩 다른가요..? 강사님 깃헙에서 실습코드를 다운 받아서 보니 강의에서는 있는데 실습코드에는 없는 경우가 있습니다..
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
kex_exchange_identification 에러
이 에러때문에 강의가 진행되지않습니다 ㅠㅠ인텔맥이고, 정리된 도커명령어 그대로 작동시켜 ssh 에 접속하려고할때 아래와같은 에러가 발생합니다.. kex_exchange_identification: Connection closed by remote host Connection closed by ::1 port 20022
-
해결됨GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]
m1 meteor 설치 오류!
안녕하세요!meteor 설치 오류로 한참 고통받다 해결한 m1 유저입니다.meteor가 m1에서 호환된다고 공식발표되었지만,여전히 rosetta를 이용한 우회로 설치 가능한 것 같습니다.설치 오류 있으신 분들은 rosetta로 설치해보세요!혹시 저처럼 고통받는 분들이 있으실까봐 공유합니다🥲
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
주문 조회 v2에서 에러가 발생 & 궁금한 점이 있습니다
안녕하세요.주문 조회 V2("api/v2/orders")에서 코드를 작성하고 포스트맨을 실행시켰는데 에러가 발생합니다.datatype jackson hibernate5 모듈은 설치하지 않았습니다.@Entity @Table(name = "orders") // 관례 @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class 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; // 주문 상태 [ORDER, CANCEL] } @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class OrderItem { @Id @GeneratedValue @Column(name = "order_item_id") private Long id; @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "item_id") private Item item; @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; private int OrderPrice; // 주문 가격 private int count; // 주문 수량 } @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "dtype") @Getter @Setter public class Item { @Id @GeneratedValue @Column(name = "item_id") private Long id; private String name; private int price; private int stockQuantity; @ManyToMany(mappedBy = "items") private List<Category> categories = new ArrayList<>(); } @RestController @RequiredArgsConstructor public class OrderApiController { private final OrderRepository orderRepository; @GetMapping("/api/v2/orders") public List<OrderDto> orderV2() { List<Order> orders = orderRepository.findAllByString(new OrderSearch()); List<OrderDto> collect = orders.stream() .map(o -> new OrderDto(o)) .collect(Collectors.toList()); return collect; } @Data static class OrderDto { private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; private List<OrderItem> orderItems; public OrderDto(Order order) { orderId = order.getId(); name = order.getMember().getName(); orderDate = order.getOrderDate(); orderStatus = order.getStatus(); address = order.getDelivery().getAddress(); // order.getOrderItems().stream().forEach(o -> o.getItem().getName()); // 프록시 초기화 orderItems = order.getOrderItems(); } } } 포스트맨 실행시, 결과가 아래처럼 출력됩니다.[ { "orderId": 4, "name": "userA", "orderDate": "2022-09-19T19:28:18.294267", "orderStatus": "ORDER", "address": { "city": "서울", "street": "1", "zipcode": "1111" }, "orderItems": [ { "id": 6, "count": 1, "orderPrice": 10000, "totalPrice": 10000 }, { "id": 7, "count": 2, "orderPrice": 20000, "totalPrice": 40000 } ] }, { "orderId": 11, "name": "userB", "orderDate": "2022-09-19T19:28:18.333162", "orderStatus": "ORDER", "address": { "city": "부산", "street": "2", "zipcode": "2222" }, "orderItems": [ { "id": 13, "count": 3, "orderPrice": 20000, "totalPrice": 60000 }, { "id": 14, "count": 4, "orderPrice": 40000, "totalPrice": 160000 } ] } order.getOrderItems().stream().forEach(o -> o.getItem().getName());를 프록시를 초기화시키는 부분이라고 이해했는데, 해당 부분을 주석처리하거나 안하거나 결과가 똑같이 출력됩니다. 이유를 모르겠는데, 어디선가 프록시가 초기화가 된걸까요..?orderItem 값 자체가 아니라 프록시 객체를 초기화하는게 맞..죠..ㅠㅠ?!그리고 강의와 다르게 item에 대한 정보가 출력되지 않는데, 혹시 datatype jackson hibernate5 모듈을 설치하지 않았기 때문에 발생하는 문제인가요? ('간단한 주문 조회 V2'에서는 강의와 똑같이 출력되었어서 문제가 뭔지 모르겠습니다.) 또, OrderItem.item에 @JsonIgnore을 추가하지 않을 때 아래와 같은 에러가 발생하는데, 지연 로딩에 의한 에러가 맞나요? (OrderItem과 Item 엔티티가 양방향 매핑이 아닌데.. '간단한 주문조회 V1' 강의에서 양방향 매핑에서 발생했던 에러 메세지와 비슷해보여서 질문드리게 되었습니다.)지연 로딩이 맞다면, order.getOrderItems().stream().forEach(o -> o.getItem().getName());에서 o.getItem().getName()에 의해 item에 대한 쿼리를 날리게 되어 이 부분이 해결되지 않나 싶은데 제가 틀리게 이해한건가요ㅠㅠ?com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]->jpabook.jpashop.API.OrderApiController$OrderDto["orderItems"]->org.hibernate.collection.internal.PersistentBag[0]->jpabook.jpashop.Domain.OrderItem["item"]->jpabook.jpashop.Domain.Item.Item$HibernateProxy$Hp0g9cdN["hibernateLazyInitializer"])at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) ~[jackson-databind-2.13.3.jar:2.13.3]에러를 해결할 수 있는 방법도 궁금합니다. OrderDto에서 items를 따로 추가해 order.getOrderItems().getItem()들을 출력해보려고 했는데 방법이 틀린건가요? (위에 forEach문을 보면 해당 방법을 통한 접근이 가능한 것 같아서 시도해봤습니다..!)
-
미해결
vscode에서 html를 썼는데 파일을 열면
(맥북입니다) 이상한 글자로 열립니다. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> </body> </html>위의 코드가 {\rtf1\ansi\ansicpg949\cocoartf2580 \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset129 AppleSDGothicNeo-Regular;\f1\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} {\*\expandedcolortbl;;} \paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0 \f0\fs24 \cf0 \'be\'c8\'b3\'e7\'c7\'cf\'bc\'bc\'bf\'e4 \f1 \ \f0 \'b9\'dd\'b0\'a9\'bd\'c0\'b4\'cf\'b4\'d9 \f1 }이렇게 나옵니다 텍스트편집기(메모장)에 썼을 때는 이런 현상이 없었고 제대로 나왔는데vscode에서 작성해서 여니까 이렇게 나옵니다..
-
미해결스프링 핵심 원리 - 기본편
@PostConstruct,@PreDestroy 빈 생명주기 콜백 과정 하나하나 질문
제가 과정을 잘 아는지 체크하고 싶어요.그리고 의존관계 주입이 어디까지를 말하는건지 알고 싶어요 ConfigurableApplicationContext ac = new AnnotationConfigApplicationContext(LifeCycleConfig.class);에서1. LifeCycleConfig.class가 파라미터로 들어가면2. 이제 스프링 컨테이너에 LifeCycleConfig.class 안에 @Bean이 지정된 networkClient()가스프링 빈에 등록되면서 이때 객체가 만들어지는거죠?3. 그러면서 생성자가 발생되고,4. 이렇게 생성자까지 설정되고 나면, // 여기까지가 의존관계 주입 이라는 거죠?5. @PostConstruct의 init()이 실행되고 // init() 안에 connet()가 있는데, connet 하는게//의존관계 주입이라는 건가요?6. ac.close()가 발생되기 전에 @PreDestroy가 설정되는거겠죠?