묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
BeforeEach 를 하위 클래스에서 다시 사용하는것에 대해서 질문 드립니다.
안녕하세요..!여쭤보고 싶은게 있어서 질문 남깁니다.현재 테스트의 구조가ApiTest 라는 클래스를 상속받아서 ProductApiTest를 만들게 되었습니다.class ProductApiTest extends ApiTest {}제가 하고 싶은 것은 코드의 중복을 줄이고 싶습니다.class ProductApiTest extends ApiTest { @BeforeEach void setUp() { ProductSteps.상품등록요청(ProductSteps.상품등록요청_생성()); } } 이런식으로 상품 조회와 상품 수정을 하게 될때 상품을 등록하게 되는데 이런 코드를 한번만 작성하면 어떨까 생각합니다.근데 이렇게 테스트를 돌리니 Connection refused 이라는 에러 메세지가 나오면서 테스트가 안돌아갑니다.아마 RestAssured.port 가 설정이 안되어서 그런것같습니다.이제 그러면 ApiTest의 필드들은 protected로 수정합니다.class ProductApiTest extends ApiTest { @BeforeEach void setUp() { if (RestAssured.port == RestAssured.UNDEFINED_PORT) { RestAssured.port = port; databaseCleanup.afterPropertiesSet(); } databaseCleanup.execute(); ProductSteps.상품등록요청(ProductSteps.상품등록요청_생성()); } }이렇게 하면 잘 돌아가는것을 확인했습니다.SET REFERENTIAL_INTEGRITY FALSE Hibernate: TRUNCATE TABLE products Hibernate: ALTER TABLE products ALTER COLUMN ID RESTART WITH 1 Hibernate: SET REFERENTIAL_INTEGRITY TRUE위의 DatabaseCleanup도 한번씩만 돌아가는것을 확인했습니다.근데 이렇게 재정의 해서 사용하는것이 맞는 방식인가..? 하는 생각이 들기도하고 이런 상황에서는 어떻게 해결하면 될까 싶어서 질문 남깁니다!
-
해결됨코로나맵 개발자가 알려주는 React + Express로 지도서비스 만들기 (Typescript)
styled component 버튼 타입에러
import { ReactNode } from "react"; import { Link } from "react-router-dom"; import styled from "styled-components"; interface ButtonProps { children?: ReactNode; onClick: (e: any) => void; type?: "link" | "button"; url?: string; } const StyledButton = styled.button<ButtonProps>` outline: none; border: none; display: flex; align-items: center; justify-content: center; `; function Button({ children, onClick, type = "button", url }: ButtonProps) { const RealButton = <StyledButton onClick={onClick}>{children}</StyledButton>; const RealLink = ( <StyledButton onClick={() => {}}> <Link to={url!}>{children}</Link> </StyledButton> ); return <div></div>; } export default Button;강의를 보고 진행하던중에 RealLink에서 타입오류나 가서 확인을 해보니button onClick이 없으면 styled componenet에서 에러를 내는 것 같습니다. 링크로 쓰면 onClick이벤트를 전달해주면 안될 것 같은데 ()=>{} 이처럼 의미없는 함수를 넘겨주면 될까요
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
orderItems 에 null이 들어가는 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 듣다 의문점이 생겨 질문 드립니다.OrderDto는 JPA에서 생성된 객체가 아니고 직접 생성자로 만들어서 사용한 객체인데 왜 Hibernate5Module이 프록시 객체로 생각해서 null값을 반환하는지 모르겠습니다.제가 긴시간 찾아보면서 생각한 이유는 이렇습니다.강의 5분경 쯤에 api 호출시 Json에서 orderItems 가 null로 반환되는것을 보여주십니다.orderItems가 null로 반환되는것은 스프링이 string으로 응답을 보낼때 messageConverter가 json으로 변환해서 반환을합니다.이때 orderItems가 JPA(Hibernate)에서 만든 프록시 객체로 되어있어 전강의에서 설정한 Hibernate5Module이 프록시 객체를 null로 바꾸기 때문에 orderItems가 null로 나타낸것으로 생각됩니다.하지만 제가 디버깅 모드로 확인해본 결과 OrderDto안에 있는 orderItems는 프록시 객체가 아닌 실제로 생성된 객체였습니다.(OrderDto는 단순히 JPA가 관리 하지 않아서 당연하다고 생각합니다.)강의 기준으로 orderItems 안에 있는 orderItem객체가 2개 존재하는데 orderItem객체는 JPA를 통해 생성된 객체이고 자세히 살펴보면 orderItem 안에 Item은 LAZY로딩으로 프록시 객체가 생성되어있습니다. 혹시몰라 Hibernate5Module을 끄고 실행한 결과 Item이 @JsonIgnore가 있으면 orderItems가 제대로 결과 값이 나오고 @JsonIgnore이 없으면 프록시 객체를 Json으로 변환하지 못해서 오류가 발생합니다.그럼 Hibernate5Module는 엔티티 안에 객체의 값중 하나라도 프록시 객체가 있다면 다른 객체의 값이 있든 말든 그냥 null을 반환하는 걸까요??제가 이해한것이 맞는지 궁금해서 질문드립니다.긴글 읽어주셔서 감사합니다.
-
미해결실습으로 배우는 그라파나 - {{ x86-64, arm64 }}
AWS 그라파나에 유용한 메트릭을 소개해주실 수 있나요?
AWS 그라파나에서 사용해야할 일이 생겨서 강의를 구매했습니다.많은 도움이 되었습니다. 감사합니다. 그런데 AWS 에서 사용하는 매트릭은 이름이 다른게 많아서 바로 적용하기는 어렵더라구요. 혹시 짤막하게나마 AWS 에서 사용할 수 있는 매트릭을 소개해주실 수 없는지 궁금합니다.
-
미해결실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
강의 자료 업로드
안녕하세요! 수업하실 때 보여주시는 ppt 수업 자료는 따로 업로드 되지 않는 건가요..? 수업자료가 없으니까 복습할때 계속 동영상을 일시정지하고 피피티 화면 찾아야해서 불편합니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
JobQueue 질문이있습니다
main에서 TickRoom함수 내부에서 timer를 이용해서 room.Update를 해주고room.Update에서는 Flush를 해줍니다.근데 Flush를 보면 싱글쓰레드처럼 따로 lock을 걸지않고 실행되고 있습니다.만약에 timer.Interval에 설정한 시간이 지났는데 flush가 다 안끝나서 다른 쓰레드가 flush로 들어오면 멀티쓰레드 환경이 되서 오류가 발생할 수도 있을 것 같은데이 문제는 현재 코드에서 예외처리를 안해준거죠?https://stackoverflow.com/questions/37747650/do-timers-continue-if-function-didnt-finish선생님께 찾아보고 질문한다는 성의를 보이기 위해서.... ㅎ..ㅎ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요. 커리큘럼 관련 질문 하나만 드리겠습니다!
안녕하세요. 더운 날씨에 고생 많으십니다.다름이 아니라, 가장 최근에 영한쌤 유튜브 채널에 올라온 영상을 보면스프링 기본편 -> MVC1,2편 -> DB1,2편을 수강하고, 야생형 코스로 넘어와 JPA활용1편을 내용이 이해되지 않더라도 코드를 따라친다는 생각으로 강의를 듣고,그 다음에 JPA 기본편으로 넘어가서 공부한뒤 다시 JPA활용 1편으로 넘어와 공부를 하라고 말씀해주셨었는데요.요약하자면, 코드만 따라친다는 생각으로 JPA활용 1편 -> JPA 기본 -> 다시 JPA활용1편 복습. 이런식으로요!근데 JPA활용1편 강의 도중에 "연관관계 매핑 분석" 부분에서 이 내용이 이해가 안된다면 반드시 JPA 기본편을 다시 수강하고 오시라고 말씀하시더라구요.. 당연히 배우지 않은 내용이라 이해가 안됐습니다..!그냥 가장 최근에 올라온 영한쌤 유튜브 영상처럼 일단 코드만 따라친다는 생각으로 JPA활용1편을 완강하면 되는걸까요?
-
해결됨스프링 시큐리티
요청을 확인할 수 있는 방법이 있을까요??
안녕하세요 선생님 좋은강의 정말 감사드립니다!선생님 혹시 사용자의 어떤 request에 의해서 CustomAccessDeniedHandler 여기로 오게 되는지 디버그를 이용해서 확인하고 싶다면 어떤 필터를 확인하면 알 수 있을까요??
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃허브 확인 부탁드려요.
(전에 추가 해주셨는데 clone 받으려니 Repository not found 라 현출되어 재신청드립니다.)인프런 아이디 : jsmlady@naver.com인프런 이메일 : jsmlady@naver.com깃헙 아이디 : jsmlady@naver.com깃헙 Username : DavidJung1460
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-C 코드 질문 있습니다
큰돌님의 코드를 보면 앞선 코드들과는 다르게 visited와 v벡터 안의 값을 넣는 코드와 sum을 정하는 코드가 dfs 부르기 전에 있는 것을 볼 수 있었습니다. dfs 코드 내부에서도 if(abs(a[ny][nx]- a[y][x]) >= l && abs(a[ny][nx] - a[y][x]) <= r) 이 안에 visited, v.push_back, sum을 넣어 놓으셨는데 왜 dfs 부르고 바로 적지 않고 이런 식으로 해야되는건가요? 밑에 바꿔서 넣어봤는데 틀리더라고요 이유 설명 부탁드립니다.http://boj.kr/00af894bac9844f7b1e5e3f2436f82fd
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
선생님 cloudFront를 사용하게되면 S3는 private으로 사용하는게 좋을까요
s3를 퍼블릭으로 두는것은 좋지 않다고 생각하는데,CDN 주소로 접근하는거면 s3는 private으로 하고 사용할수 있도록 설정이 가능할까요?
-
미해결차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원
Neural Style Transfer 강의자료 공유
Neural Style Transfer에 해당되는 강의자료 공유 부탁드립니다. 감사합니다. tae.park0302@gmaili.com
-
미해결FreeRTOS 프로그래밍
FreeRTOS 사용 중 EIRQ 사용여부
FreeRTOS를 사용하면 EIRQ 부분이 작동을 안 하는데 당연한 건가요??제 환경은 spc5studio라서 stm32IDE와는 조금 다릅니다.다른 OS를 작동해서 원래 환경에 외부 인터럽트는 작동하지 않는 것인지 궁금합니다.만약 작동하지 않는 게 맞다면.. FreeRTOS include 시에는 어떤 함수로 외부인터럽트를 처리해야할까요 감사합니다!
-
해결됨Flutter 앱 개발 실전
커스텀 클래스 깊은복사 - copyWith
섹션1 / 객체 복사 / 14:15~14:32Line25에서 copyWith 메서드가 A클래스의 copyWith를 쓰는건지, B 클래스에서 정의한 copyWith 메서드를 호출하게 되는 건지 궁금합니다!후자라면, 클래스 A에서 copyWith를 정의하는 과정에서 어떻게 B의 메서드를 끌어쓰게 되는건지 궁금합니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
lombok 설치오류
롬북 설치했고 어노테이션 설치 활성화 체크표시 했는데 롬북을 찾을 수 없는거 같습니다. 어떻게 해야할까요?
-
해결됨처음 만난 리액트(React)
componentDidUpdate 관련 질문
3개의 배열 메세지 모두 동일하게 map함수로 돌리고 화면에 출력하였는데, 1 didupdate call만 두 번 콘솔에 찍히고 3번 didupdate call는 콘솔에 안 찍히는 이유가 궁금합니다
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
SQLSyntaxErrorException 에러가 나옵니다.ㅠㅠ
서버 실행 후 이름, 나이 작성하고 등록을 하려는데 '서버내부 오류가 생겼다' 라는 팝업창이 뜨면서 아래와 같은 오류가 나옵니다.ㅠㅠ 혹시 인코딩 문제일까요..? java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSET INTO user (name, age) VALUES ('���ڵ�', 25)' at line 1
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
도메인 객체 질문
심폐소생술 PPT처럼Presentation, Business, Domain, Persistence로 나눈다고 하면 @Entity가 붙은 Class는 Persistence에 두고@Entity가 붙지 않은 Domain Class는 Domain에 둬서클래스를 2개를 만드는 건가요?예를 들어 아래 MemberEntity는 Persitence Package에 위치하고@Entity public class MemeberEntity { ... }public class MemberDomain { ..MemberDomain은 Domain Package에 위치하게 해서Service Class에서 Repository를 이용해서 MemberEntity를 가져온 다음에 MemberEntity를 MemberDomain으로 변환한 다음에 비즈니스 로직을 작성하면 되는건가요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
오버라이딩의 정확한 용도를 잘 모르겠습니다!
다형성에 대해 설명하실 때 부모 클래스의 메소드에 virtual, 자식 클래스의 메소드에 override를 사용하라고 알려주셨는데, 이걸 쓸 때와 안쓸 때의 차이가 무엇인지 잘 모르겠습니다.해당 코드에서 부모 메소드와 이름이 같아 경고가 발생하긴 하지만, 오버라이딩을 했을 때와 실행 결과는 동일했습니다. 오버라이딩을 하는 것과 안하는 것의 명확한 차이점이 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DispatcherServlet 오류 문제
MVC부분에서 http://localhost:8080/hello-mvc?name=spring!!! 이렇게 치면 404error가 뜹니다.controller코드는 이런 식으로 작성했습니다.서버 연결 시에도 이걸로 연결을 잘 했습니다. 기본 static.html 등은 잘 보이는데 controller을 이용해서 하면 404에러가 뜹니다. 어떤 식으로 해결을 해야할지 모르겠습니다.