묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결홍정모의 따라하며 배우는 C++
증감연산자 오버로딩
안녕하세요 궁금한 것이 있어 여쭤봅니다 교수님께서 전위증가연산자 오버로딩 코드를 이렇게 짜셨습니다.class Digit { private: int m_digit; public: Digit(int digit = 0) : m_digit(digit) {} //prefix Digit& operator ++ () { ++m_digit; return *this; } friend ostream& operator << (ostream& out, const Digit& d) { out << d.m_digit; return out; } };아래는 main 함수 부분이고요int main() { Digit d(5); cout << ++d << endl; cout << d << endl; return 0; }여기 멤버함수로 구현이 돼있는데요Digit& operator ++ () { ++m_digit; return *this; }cout << ++d << endl; 에서 d를 만난다음 d가 ++연산자를 호출할텐데 ++m_digit;이렇게 d인스턴스의 m_digit을 바로 1증가 시켜준다면 그냥 여기서 끝나면 되는 것 아닌가요? 인스턴스d가 호출한 ++연산자에서 인스턴스d의 m_digit을 직접 1증가 시켜줬는데, 위에서 operator ++ 왼쪽에 적혀 있는 리턴형인 Digit&과 리턴하는 값인 return *this;가 대체 무엇을 하는지 그 작동과정이 전혀 감이 안 잡혀서 구글링도 하고 그랬는데 원하는 것을 얻지 못한 거 같습니다 ㅠㅠ자세한 설명 부탁드려도 될까요?감사합니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터가 제가 이해한게 맞을까요?
@Slf4j public class LoginCheckFilter implements Filter { private static final String[] whiteList = {"/","/members/add","/login","/logout","/css/*"};//위 uri 들은 필터x @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; String requestURI = httpRequest.getRequestURI(); HttpServletResponse httpResponse = (HttpServletResponse) response; try { log.info("인증 체크 필터 시작{}",requestURI); if(isLoginCheckPath(requestURI)){//화이트 리스트가 아니면 log.info("인증 체크 로직 실행 {}",requestURI); HttpSession session = httpRequest.getSession(false);//로그인시 생성된 세션을 불러와서 변수에 저장 if(session == null || session.getAttribute(SessionConst.LOGIN_MEMBER) == null){//null 이면 로그인 안된것 log.info("미인증 사용자 요청 {}", requestURI); //로그인으로 redirect + 내가 url에 입력한 주소 httpResponse.sendRedirect("/login?redirectURL=" + requestURI); return;//리다이렉트하고 끝(finally 항상 호출) } } log.info("다음 필터"); filterChain.doFilter(request,response); log.info("다음 필터가 있는지"); }catch (Exception e){ throw e;//예외 로깅 가능 하지만, 톰캣까지 예외를 보내주어야 함 }finally { log.info("인증 체크 필터 종료 {}", requestURI); } } /** * 화이트 리스트의 경우 인증 체크x */ private boolean isLoginCheckPath(String requestURI){ return !PatternMatchUtils.simpleMatch(whiteList,requestURI); } }이 코드에서controller를 호출하기전에 필터에서 인증을 처리해주고인증이 완료됐다면controller로 이동해서 로직을 처리한다 생각하면 될까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
주문 조회V3 에서 쿼리가 4개 나온다고 하는데, 2개만 나옵니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. @GetMapping("/api/v3/orders") public List<OrderDto> orderV3() { List<Order> orders = orderRepository.findAllWithItem(); for (Order order: orders) { System.out.println("order ref = " + order + " id = " + order.getId()); } List<OrderDto> result = orders.stream() .map(o -> new OrderDto(o)) .collect(Collectors.toList()); return result; } ... public List<Order> findAllWithItem() { return entityManager.createQuery( "select o from Order o" + " join fetch o.member m" + " join fetch o.delivery d" + " join fetch o.orderItems oi" + " join fetch oi.item i", Order.class) .getResultList(); }이렇게 한 다음 v3 에게 요청을 넣었습니다.그 결과selecto1_0.order_id,d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status,m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.username,o1_0.order_date,oi1_0.order_id,oi1_0.order_item_id,oi1_0.count,i1_0.item_id,i1_0.dtype,i1_0.name,i1_0.price,i1_0.stock_quantity,i1_0.artist,i1_0.etc,i1_0.author,i1_0.isbn,i1_0.actor,i1_0.director,oi1_0.order_price,o1_0.statusfromorders o1_0joinmember m1_0on m1_0.member_id=o1_0.member_idjoindelivery d1_0on d1_0.delivery_id=o1_0.delivery_idjoinorder_item oi1_0on o1_0.order_id=oi1_0.order_idjoinitem i1_0on i1_0.item_id=oi1_0.item_idorder ref = jpabook.jpashop.domain.Order@801a84d id = 1order ref = jpabook.jpashop.domain.Order@7be83ead id = 2 다음과 같은 SQL 쿼리를 보냈구요.그런데 4개가 아니라 2개라서 문의를 드립니다. 그런데 H2 DB에서 해당 쿼리를 입력하면 4개가 잘나옵니다.또한 포스트맨으로 받은 요청도 2개가 출력됩니다.[ { "orderId": 1, "name": "userA", "orderDate": "2024-03-18T23:29:35.545094", "orderStatus": "ORDER", "address": { "city": "서울", "street": "1", "zipcode": "11111" }, "orderItems": [ { "itemName": "JPA1 Book", "orderPrice": 10000, "count": 1 }, { "itemName": "JPA2 Book", "orderPrice": 20000, "count": 2 } ] }, { "orderId": 2, "name": "userB", "orderDate": "2024-03-18T23:29:35.555094", "orderStatus": "ORDER", "address": { "city": "부산", "street": "2", "zipcode": "22222" }, "orderItems": [ { "itemName": "Spring1 Book", "orderPrice": 20000, "count": 3 }, { "itemName": "Spring2 Book", "orderPrice": 40000, "count": 2 } ] } ]어떠한 것이 잘못되었는지 궁금합니다.
-
해결됨초보자를 위한 BigQuery(SQL) 입문
1-2. BigQuery 환경 설정 - 테이블 만들기 오류
안녕하세요 pokemon / trainer 파일 데이터 만들기 진행하면 아래와 같은 오류가 발생 합니다어떻게 해결 하는게 좋을까요?
-
미해결[핵집] 2025 빅데이터 분석기사(필기)_과목 3~4
통합본 강의 자료 요청.
안녕하세요 통합본 강의 자료 요청드립니다.현재 해당 강의 수강 중입니다.아이디는 imbcy@naver.com 입니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
반환값(RETURN) 에 대한 질문
제가 Return 부분에서 이해가 잘 안되서 그러는데return을 쓰면 main 영역에서 명령을 수행하다가 return으로 돌아가는 건가요? 그 설명해주신 호텔 전화번호로 다시 설명 해주실 수 있나요?
-
미해결
인프런 좋나요?
질문은 많은데... 답변은 아무나 해도 되는건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티매니지먼트팩토리 생성질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]수업내용에서 엔티티매니저팩토리는 생섭 비용이 많이 들어서 애플리케이션에 보통 한 개만 생성한다고 하셨는데persistence.xml 파일에 엔티티매니저팩토리를 하나만 생성해야 한다는 의미 인가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안 32p
안녕하세요 선생님! 알고리즘 공부를 이제 막 시작한 학생입니다 😀 다름이 아니라 강의 중에 보여지는 알고리즘 교안과 제공해주신 알고리즘 교안이 차이가 있는 것 같아서 질문드립니다.혹시 강의 중에 보여지는 교안은 어디서 다운받는지 알려주실 수 있을까요..? <강의에 보여지는 교안> <제공해주신 교안>
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
05-03-static-routing-board-query
데이터가 사라진건가요 .. null 떠서 강의을 맞춰 가기가 힘들어요 ㅠㅠ
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@Login 질문
컨트롤러 메서드의 파라미터에 있는 @Login 어노테이션이 @SessionAttribute(name = SessionConst.LOGIN_MEMBER, required = false)를 완전히 대체한다고 보면 되는 걸까요? @Login이 동작하는 시점이 ArgumentResolver의 영향 범위이기 때문에, 해당 강의의 제목이 ArgumentResolver 활용 인 것인가요? 커스텀 어노테이션을 만드는 것과 'ArgumentResolver 활용'이라는 제목과 무슨 관계가 있는 것인지 궁금하여 질문드려봅니다!
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
코드 작성 방식에 따른 합성 결과
.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Repository 사용 차이점
안녕하세요강의 중에 MyBatisItemRepository는 @Repository가 있고Jdbc관련 Repository에는 애너테이션이 안 붙여져 있는데 그 이유가 무엇인가요?
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
강의자료 및 슬랙
강의자료 받을 수 있는 곳이 있나요? 슬랙도 있다고 하는데 슬랙 운영을 하신다면 어떻게 들어갈 수 있을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
예외를 던지는 기준이 궁금해요
예외를 공부할땐 예상 밖의 프로세스가 죽는 치명적인 상황을 예방하기 위해 예외 처리한다고 배웠습니다! 하나의 예시를 들자면 비동기로 닉네임 중복 검사를 하는 프로세스가 있는 경우아래와 같이 개발자가 의도한 결과가 나오지 않은 경우 예외로 던져야 할까요?//예시 1 Member member= repository.findByMeberNickname("user00"); if(member == null){ throw new memberNotFoundException(); } return member; //그리고 @RestController에서 에러DTO json 응답 {코드값, 메세지, status} 또는 사실상 개발자가 충분히 예상 가능한 범주 내의상황이니까(+ 프로세스가 죽을 정도의 치명적인 상황도 아님)//예시 2 Member member= repository.findByMeberNickname("user00"); return member; axios.get(...) .then(result=>{ if(result){ //값이 있으면 }else{ //값이 없으면.. }) ....비동기 호출 후 if else로 분기를 줘야할지 고민입니다! 현재 드는 생각은 sql 쿼리까지 정상적으로 호출되었지만결과값이 없었을 뿐이지 에러나 예외는 아니다.입니다. 따라서 후자가 아닐까!!
-
해결됨파이썬으로 나만의 블로그 자동화 프로그램 만들기
제가 129 버전인데 드리아버에는 128 버전까지밖에 없는데 다운그레이드 해야하나요?
제가 129 버전인데 드리아버에는 128 버전까지밖에 없는데 다운그레이드 해야하나요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
JSON serialize 진행시 오류 문의드립니다.
안녕하세요.강의를 잘 듣고있습니다. "pub run build_runner build" 진행후에 다음과 같은 에러가 발생하여 json_annotaion의 버전을 4.8.1로 변경하였습니다. [INFO] Generating build script completed, took 260ms[INFO] Reading cached asset graph completed, took 171ms[INFO] Checking for updates since last build completed, took 584ms[WARNING] json_serializable on lib/restaurant/model/restaurant_mdoel.dart:The version constraint "^4.8.0" on json_annotation allows versions before 4.8.1 which is not allowed.[INFO] Running build completed, took 2.5s[INFO] Caching finalized dependency graph completed, took 94ms[INFO] Succeeded after 2.6s with 1 outputs (1 actions) json_annotation: ^4.8.1 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 build_runner: ^2.3.3 json_serializable: ^6.6.0이후 정상적으로 처리가 된것 처럼 결과가 나타났고, Built build_runner:build_runner.[INFO] Generating build script completed, took 258ms[INFO] Reading cached asset graph completed, took 174ms[INFO] Checking for updates since last build completed, took 581ms[INFO] Running build completed, took 2.5s[INFO] Caching finalized dependency graph completed, took 95ms[INFO] Succeeded after 2.6s with 1 outputs (1 actions) . lib 폴더를 reload 해도 restaurant_model.g.dart 파일이 만들어 지지않습니다.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2강 3020 시간초과
안녕하세요! 2강 3020 백준에서 풀어보니 시간초과가 뜨더라구요그래서 선생님 답안지랑 비교해보니 맨위에 import sysinput = sys.stdin.readline를 쓰신걸 확인하고 추가해서 통과했습니다.찾아보니까 input보다 성능이 좋다고 하는데 그럼 모든 문제에 풀때 입력 방식으로 넣으면 좋은걸까요 ?
-
미해결실전! 스프링 데이터 JPA
@Modifying 에서 무조건 테스트 데이터가 커밋되고 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, 영한님.좋은 강의 늘 감사합니다. 최근에 제가 공부한 내용들을 정리하면서 포트폴리오를 만들고 있는데, 특이하게도 @Modifying 을 사용하는 코드를 테스트할 때만 해당 테스트의 데이터가 롤백 되지 않고 커밋되는 기이한 현상을 발견했는데, 혹시 아시는 바가 있으신가 해서 여쭤봅니다. @Modifying 을 사용하는 코드'만' 테스트할 때는 테스트 통과하고 데이터가 롤백됩니다.당연한 이야기지만, @Modifying 코드를 제외한 테스트가 통과하고 롤백됩니다.하지만 이들을 동시에 실행하면 @Modifying 에서 update 된 데이터들이 롤백되지 않고 남아 있어서 다른 데이터에 영향을 주게 됩니다. 회사에서도 벌크성 수정 쿼리를 이미 사용을 하고 있고, 그 코드들을 테스트함에 있어서 어떠한 이슈도 발생하지 않았는데 제 포트폴리오에서만 이런 이슈가 발생을 하네요... 트랜잭션 전파와 관련된 문제, h2 와 boot 버전(3.2.1.) 문제 등등 의심 되는 부분들 여러 가지로 고쳐보고 바꿔봐도 여전합니다. boot 도 3.0.x 대로 낮춰보기도 했고. stackoverflow, spring boot github 등에도 찾아봤습니다만 저와 같은 이슈를 겪는 사람은 보지 못 했습니다. 그렇다고 해서 테스트 때문에 제품 코드를 바꾸는 건 또 주객전도가 되니 테스트에 tearDown 으로 데이터를 날리려고 합니다. 그래도 발생한 이슈에 대해 정리하고 해결은 해야 하니 여전히 알아보고 있는 중입니다. 그중에 혹시 영한 님께서는 알고 계시는 바가 있으신가 해서 여쭤봅니다. 제 소스코드 repository 와 이슈가 발생하는 코드들을 남깁니다. 참고로 제 컴퓨터에서 테스트를 실패하는 상태 그대로를 올립니다. 혹시 필요하신 정보가 더 있으시면 말씀해주세요.감사합니다. 테스트 로그 https://drive.google.com/file/d/117sWM8NZa13wIWUc-XhCpYFdZ9oeIUK4/view?usp=sharing테스트의 로그 전부를 넣었습니다. 위에서 설명해드린 것처럼 @Modifying 테스트 이후 그 데이터가 남아서 다른 테스트들에 영향을 주는 것이기 때문에 실패하는 테스트는 매번 다릅니다.github https://github.com/psam1017/sunder-backend/tree/feat/teachermain 은 테스트를 통과하도록 변경감지를 사용한 상태이고, 위처럼 feat/teacher 브랜치에 실패하는 코드를 올렸습니다. @Modifying 사용 코드 - repository https://github.com/psam1017/sunder-backend/blob/feat/teacher/src/main/java/psam/portfolio/sunder/english/domain/academy/repository/AcademyCommandRepository.java@Modifying 사용 코드 - service https://github.com/psam1017/sunder-backend/blob/feat/teacher/src/main/java/psam/portfolio/sunder/english/domain/academy/service/AcademyCommandService.java#L245@Modifying 을 테스트하는 코드 https://github.com/psam1017/sunder-backend/blob/feat/teacher/src/test/java/psam/portfolio/sunder/english/scheduler/AcademySchedulerTest.java테스트 코드 설정 관련 코드 https://github.com/psam1017/sunder-backend/blob/feat/teacher/src/test/java/psam/portfolio/sunder/english/SunderApplicationTests.java
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
chapter17 tb_fsm_counter_test.v 코드 질문드립니다.
// reset_n gen $display("Reset! [%d]", $time); # 100 reset_n <= 0; # 10 reset_n <= 1; # 10 @(posedge clk);tb_fsm_counter_test.v파일의47line인 "@(posedge clk);" 문장에 대한 질문입니다.왜 reset_n신호를 셋팅해주고 난다음에 "@(posedge clk);" 구문을 적어준 의미가 있을까요?? 해당 always문장에 아무내용도 없이 종료한 이유와 의미가 궁금합니다!.감사합니다