묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨
[Spring JPA] .save() 대해 문의 드립니다.
4개의 테이블 (a, b, c, d)각각 1:N 관계 입니다. a-b 1:N, b-c 1:N , c-d 1:N (fetchType = LAZY)네개의 테이블에 대한 정보를 fetchjoin을 통해서List<a> 객체로 리턴 받았습니다. List<a> 객체를 루프를 돌면서 a 객체 값에 특정 필드를 변경하고 .save()를 호출 했더니update 쿼리만 나가는게 아니고1) a 테이블의 id(pk)값의 조건 select 쿼리 1회 2) b 테이블 조건절에는 id(FK) select 쿼리 1회3) 위에서 값이 조회될경우 c테이블에 b테이블 결과 id(PK) 값들로 IN 쿼리 1회4) d 테이블 3)과 동일한 구조로 IN쿼리 1회 5) 최종 udpate 쿼리 호출이런식의마치 해당 a 객체 전체 데이터(하위 포함)를 조회 했을떄 날라가는 select쿼리가 모두 호출 되었습니다. 예)List<a> result = aRepository.getFetchJoinQuery();result.stream().forEach(a -> { a.setName("HOON"); aRepository.save(a); -> 해당 시점 위 쿼리 호출됨 logger.info("xxxxxx");}); 디버깅으로 확인한 내용이구요,혹시나 디버깅 모드에서 데이터 확인중에 날아간 쿼리인가 해서 디버깅없이 RUN으로실행했을때도 동일하게 쿼리가 발생하는것이 확인 되었습니다.. save() 사용시에 select 쿼리 발생은 어쩔수 없는걸까요?어쩔수 없다면 save() 메서드 대신 그냥 JPQL로 update 쿼리를 작성해서 사용하는 방법뿐이 없을까요?궁금합니다!
-
해결됨풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
CMD, ENTRYPOINT 관련 문의입니다..
안녕하세요 강사님.Dockerfile 작성을 위한 주요명령 익히기4 의 10분 10초 처럼 Cmd의 값이 뒤에 붙지않고 null로 뜨는데,, 로그를 봤을때는 hello /bin/sh hi 로 Cmd 인자가 정상적으로 붙습니다. Dockerfile 은 정상적으로 작성했습니다. 혹시 제가 놓친부분이 또 있을까요? 몇번 강의돌려도 null로 뜨는건 똑같아서..
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
HLS 설계 시 필요한 C언어 역량
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================안녕하세요. 맛비님!! 강의 주제와 연관은 있지만 살짝 벗어난 것 같아 질문드리기가 살짝 조심스럽지만 역량을 키우는게 필요하다 판단하여 질문드리게 되었습니다. [질문배경]최근 면접을 다녀왔는데, 강의에서 말할 HLS까진 아니여도 기본 LED 동작코드를 C로 작성해보라는 문제가 출제되었습니다.그 과정에서 동작 및 "함수가 어떤게 필요하겠다"정도는 파악하였지만 실제로 코드를 작성하지 못했고, 그 과정에서 C언어 역량이 많이 부족하다는 것을 깨달았습니다. [찾아본 사항]https://www.inflearn.com/chats/333144/%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EA%B0%80-%EA%B0%96%EC%B6%B0%EC%95%BC-%ED%95%A0-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%97%AD%EB%9F%89이전 수강생분이 질문한 부분에 대해서도 확인을 해보았습니다.이 답변에서 맛비님께서 Simulation을 위한 C언어 능력 정도가 필요하다고 말씀하셨고, System HDL을 작성하기 위하선 C++을 공부하면 좋다고 말씀하신것을 확인했습니다. [질문사항]위 답변을 참고하고도 다음과 같은 질문이 생겼습니다.C언어에도 여러 내용이 있는데, 어느 부분을 중점적으로 공부하면 좋을지/ 어디까지 정도만 알면 되는지 가 궁금합니다.C++은 C언어와 비슷하다고 알고있는데, C++역량이 HLS 설계시 왜 필요한지 정말 간단하게라도 설명가능하실지 요정 드립니다. 실무 면접을 통해 많이 부족한 것을 깨달았고, 그만큼 기본기가 중요하다는 것을 배웠습니다. 강의를 통해 많은 것을 배워갈 수 있도록 하겠습니다. :)
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
next(), nextLine() 질문있습니다~
System.out.println("무슨 프로그래밍 언어를 배웠나요?"); String lang = sc.next(); System.out.println("배우고 나니 기분이 어땠나요?"); String feeling = sc.next(); //nextLine(); System.out.println("또 공부하고 싶은 언어가 있나요?"); String want = sc.nextLine(); System.out.println("언어 : " + lang); System.out.println("느낀점 : " + feeling); System.out.println("공부하고싶은 언어 : " +want );선생님! feeling을 입력한 뒤에 그냥 3줄 다 출력되고 스캐너가 종료되는데 이유를 잘 모르겠습니다!
-
미해결김영한의 실전 자바 - 기본편
상속 관련해서 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다형성 오버라이딩 까지 강의를 보고 질문 드립니다.지금까지 상속 관계에 대해 배웠을 때처음에 든 생각은 상속이 tree 관계도를 만든다고 생각했습니다.(예를 들어서 부모에게 자식이 여러 명 있을 수 있는 것처럼요)그런데 수업에서 배운 내용을 보니힙 영역에서 한 인스턴스 안에 부모가 한 명 있고 자식이 둘 이상인 경우는 존재하지 않는 것처럼 보였습니다.물론 class 영역에서 한 부모를 여러 자식이 상속하는 경우는 가능하겠지만 instance를 만들 때는 자식 인스턴스를 만들 때마다 부모가 복제되서 생기는 것 같았습니다. 매소드 오버라이딩 부분을 보니까 한 인스턴스 안에 부모가 있을 때 자식이 여럿 있으면 안 될 것 같다는 확신이 들었습니다. 그게 맞다면 어느 자식의 method로 오버라이딩 되어야 할 지 정하기 어렵기 때문입니다. 만약 제가 데이터를 저장할 때어떤 사람의 인적 정보를 person class에 저장하고사람의 직업이 여러 개일 수 있으니까 직업들을 job1, job2 class라고 정의한다면-----------------------------------| person 부모class - job 1 자식 class | - job 2 자식 class-----------------------------------이런 식으로 한 인스턴스 안에 데이터를 저장하는 것이 메모리를 효율적으로 쓰는 것이라고 생각했는데 java는 이런 걸 지원하지 않는 것처럼 보였습니다. 제 생각이 맞는지 궁금합니다.
-
미해결따라하며 배우는 리액트 네이티브 기초
안녕하세요
지금 강의를 듣고있는데 섹션5 [React Nagivation을 이용해서 라우팅 구현하기] 여기에서 IOS로만 하시는데 윈도우에서 안드로이드로 강의를 따라가고 있는 입장에서는 어떻게 해야하는 걸까요? 제가 expo 부분부터 widow- android studio로만 강의를 따라왔었는데 expo 에서 window - IOS 로도 개발을 따라 했었어야 했을까요?ㅜ Android Studio로는 실행을 어떻게 해야할지 안내가 안되어 있어서 막막해서요 제가 뭘 놓친건지 헷갈리네요 갑자기ㅠㅠ
-
해결됨데이터 기반 디지털트랜스포메이션 - DT 전략 마스터 클래스
DTS1001 통계 분석 모형 기반 dt 전략 수립 강의 중 질문 건
안녕하세요 강사님, 강사님 덕분에디지털트랜스포메이션 에 대한 개념적 이해를 더 쉽게 할 수 있는 부분 먼저 감사하다는 말씀드립니다. 다름이아니라, [DTS1001 통계 분석 모형 기반 dt 전략 수립] 강의에서 실습 중, 카이제곱(X^2) 검정통계량은 사용을 안하는듯한데, 해당 값들은 어떤 의미인지 문의하고자합니다. 카이제곱 자유도를 의미하는걸까요? 그리고 자유도라면 혹여 어떤식으로 사용할수있는지, 예시를 들어주시면 더 감사하겠습니다. 감사합니다.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
포트폴리오 CSS Grid 반응형 레이아웃에서
여기서 align-items 랑 align-content가 개념이 잘 안잡혀요..ㅠ 인터넷에 검색해보니깐 한줄 두줄의 차이라고 하는데...모바일사이즈일때는 한줄이 아니니깐 align-content라고 쓴걸까요? 아니면 justify-items: center; 코드가 있어서 일까요?
-
미해결[입문] Qt 6 프로그래밍 1편
하드코딩으로 위젯 구현할 때, 소멸자도 구현해야되나요?
안녕하세요,강의 QMdiArea을 이용한 다중 윈도우 창 만들기 예제를 보던 중 질문드립니다.다중 윈도우 창을 만들기 위해, Widget 생성자에서 아래에 밑줄 친 변수들을 힙 메모리에 할당을 했는데요, 이 변수들은 widget이 사라질 때, 같이 메모리가 해제되나요? 아니면 직접 해제되도록 구현해야하나요??
-
미해결홍정모의 따라하며 배우는 C언어
char str[]과 char * str 의 차이는 무엇인가요?
22:16초에서 char str[]을 쓰시는데 평소에 []이런식으로 안에 아무것도 할당되어있지 않은 배열의 역할과 포인터와의 차이가 너무 궁금해서 질문드립니다. 포인터 알기를 겉핥기로 알고있어서요. 감사합니다!
-
해결됨ProtoPie Master Courses (프로토파이 마스터 클래스)
타이머 만들기
안녕하세요! 강의 잘 보고있습니다. 타이머를 만들려고 하는데요. 00:00:00 (시:분:초)에서 시간이 계속 올라가게요! 계좌에 잔고는 정해져있는 값이 있어서 숫자가 올라가게 할 수 는 있겠는데 이건 감이 안와요..ㅠ혹시 쉽게 만들 수 있는 팁이 있을까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 괜찮을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
섹션 2.API Gateway Service 중 Spring Cloud Gateway-프로젝트 생성 부분 중 수행이 안됩니다.
강의와 똑같이 수행했다고 생각은 하는데, http://localhost:8081/first-service/welcome과 localhost:8082/second-service/welcome 를 개별적으로 호출했을 떄는 문제 없이 호출됩니다.그런데 http://localhost:8000/first-service/welcome을 호출하면 404로 문구가 나오네요.강의를 계속 봤는데 다른 부분 찾기가 어렵네요. 어느 부분에서 오류가 났는지 확인이 가능할까요? firstController.java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/first-service") public class FirstServiceController { /* RequestMapping과 GetMapping이 조합이 되어서 호출됨 */ @GetMapping("/welcome") public String welcome(){ return "Welcome to the First service"; } } secondController.java@RestController @RequestMapping("/second-service") public class SecondServiceController { /* RequestMapping과 GetMapping이 조합이 되어서 호출됨 */ @GetMapping("/welcome") public String welcome(){ return "Welcome to the Second service"; } } apigateway-service 프로젝트의 pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>apigateway-service</artifactId> <version>0.0.1-SNAPSHOT</version> <name>apigateway-service</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> <spring-cloud.version>2023.0.0</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway-mvc</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project> apigateway-service 프로젝트의 application.ymlserver: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone : http://localhost:8761/eureka Spring: application: name: apigateway-service cloud: gateway: routes: - id: first-service url: http://localhost:8081/ predicates: - Path=/first-service/** - id: second-service url: http://localhost:8082/ predicates: - Path=/second-service/**
-
해결됨그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
livenessProbe 관련하여 질문이 있습니다.
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 하기]안녕하세요 강사님! 양질의 강의 정말 잘 듣고 있습니다!바로 본론으로 넘어가 livenessProbe 관련하여 질문이 있습니다.[질문]initialDelaySeconds와 periodSeconds가 함께 있으면 initialDelaySeconds시간이 지나고, periodSeconds 시간이 추가적으로 지나고 난 뒤 첫번째 Liveness Probe가 실행되는 것이 맞을까요? 제가 실제로 해당 코드에서 initialDelaySeconds: 10를 주석 처리하지 않는 경우 첫번째 검사까지 20초가 걸렸고, 만약 initialDelaySeconds: 10를 주석처리하는 경우 첫번째 검사까지 10초가 걸렸습니다. 이에 여러 래퍼런스를 찾아보니 initialDelaySeconds가 끝나는 즉시 첫번째 probe가 수행되어야 한다고 하는데 왜 첫번째 실패까지 20초가 걸리는지 의문이 들어 질문 남깁니다. 감사합니다! 😀😀
-
미해결스프링 핵심 원리 - 기본편
@PostConstruct어노테이션의 초기화 콜백 메서드에 대해서 확답이 필요합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요!초기화 콜백에 관한 강의를 듣고 정리해본 결과 지금 예제에서는 외부에서 주입 받는 객체가 없기 때문에 의존성 주입은 없고 url필드의 값 주입만 있는 것 같습니다.그런데 @PostConstruct 어노테이션의 역할은 설정 정보에 있는 빈 객체가 생성되고, 빈 간에 의존성이 모두 주입된 직후 실행될 초기화 콜백 메서드를 지정하는 것이라고 이해했습니다.이때 예제에서처럼 실질적으로 의존성이 존재하지 않아도 해당 어노테이션이 붙어있는 메서드가 있다면, 빈 생성 후 필드 값 주입을 마치고 똑같이 초기화 콜백을 수행하는 것이 맞나요?그리고 @PostConstruct어노테이션의 쓰임으로는 어떠한 의존성이나 필드에 대해서 생성자로 초기화하기 까다롭거나 적절하지 않을 때, 혹은 그래야만 하는 상황에(앞서 생성자를 통해 의존성을 주입받아야만 사용할 수 있는 의존성(필드)일 때) 추가적으로 초기화하기 위해 사용하는 걸로 이해해도 될까요?
-
해결됨스프링 핵심 원리 - 기본편
Test Results 만 뜹니다.
안녕하세요. 현재 스프링 부트 3.2.0을 사용하고 있고요,pdf를 보고 주의 주신 대로 Gradle로 맞추었는데요 강사님처럼 이렇게 하위로 테스트가 개별 통과되었는지 보이지 않고,저는 위와 같이 Test Results만 뜨는 상황인데요..! 개별 메서드도 확인할 수 있게 바꿀 방법이 없을까요..?ㅠㅠ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
새 일기 등록이 안됩니다..(Uncaught TypeError: Cannot read properties of undefined (reading 'date'))
새 일기를 쓰려고 하면 다음과 같은 에러가 발생합니다.해결해보려고 했는데 어떻게 손대야할지 막막하더라구요ㅠ코드를 뒤져보고 강의도 몇번씩 돌려보고 깃헙 소스코드랑 비교도 해봤습니다... 어떤식으로 에러를 해결해야하는지 찾는 방법도 함께 알려주시면 정말정말 감사하겠습니다..!! 아래는 제가 작성한 소스코드입니다!Home.jsimport { useContext, useEffect, useState } from "react"; import { DiaryStateContext } from "../App"; //components import MyButton from "./../components/MyButton"; import MyHeader from "./../components/MyHeader"; import DiaryList from "../components/DiaryList"; const Home = () => { const diaryList = useContext(DiaryStateContext); const [data, setData] = useState([]); // 날짜 저장 state const [curDate, setCurDate] = useState(new Date()); const headText = `${curDate.getFullYear()}년 ${curDate.getMonth() + 1}월`; useEffect(() => { if (diaryList.length >= 1) { const firstDay = new Date(curDate.getFullYear(), curDate.getMonth(), 1).getTime(); const lastDay = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0).getTime(); setData(diaryList.filter((it) => firstDay <= it.date && it.date <= lastDay)); } else { setData([]); } }, [diaryList, curDate]); // useEffect(() => { // console.log(data); // }, [data]); const increaseMonth = () => { setCurDate(new Date(curDate.getFullYear(), curDate.getMonth() + 1, curDate.getDate())); }; const decreaseMonth = () => { setCurDate(new Date(curDate.getFullYear(), curDate.getMonth() - 1, curDate.getDate())); }; return ( <div> <MyHeader headText={headText} leftChild={<MyButton text={"<"} onClick={decreaseMonth} />} rightChild={<MyButton text={">"} onClick={increaseMonth} />} /> <DiaryList diaryList={data} /> </div> ); }; export default Home; App.jsimport React, { useReducer, useRef } from "react"; import "./App.css"; import { BrowserRouter, Route, Routes } from "react-router-dom"; import Home from "./pages/Home"; import New from "./pages/New"; import Edit from "./pages/Edit"; import Diary from "./pages/Diary"; const reducer = (state, action) => { let newState = []; switch (action.type) { case "INIT": { return action.data; } case "CREATE": { newState = [action.data, ...state]; break; } case "REMOVE": { newState = state.filter((it) => it.id !== action.targetId); break; } case "EDIT": { newState = state.map((it) => (it.id === action.data.Id ? { ...action.data } : it)); break; } default: return state; } return newState; }; export const DiaryStateContext = React.createContext(); export const DiaryDispatchContext = React.createContext(); const dummyData = [ { id: 1, emotion: 3, content: "오늘의 일기 1번", date: 1702273692142, }, { id: 2, emotion: 2, content: "오늘의 일기 2번", date: 1702273692143, }, { id: 3, emotion: 5, content: "오늘의 일기 3번", date: 1702273692144, }, { id: 4, emotion: 1, content: "오늘의 일기 4번", date: 1702273692145 }, { id: 5, emotion: 4, content: "오늘의 일기 5번", date: 1702273692146, }, ]; function App() { const [data, dispatch] = useReducer(reducer, dummyData); const dataId = useRef(0); // CREATE const onCreate = (date, content, emotion) => { dispatch({ type: "CREATE", date: { id: dataId.current, date: new Date(date).getTime(), content, emotion, }, }); dataId.current += 1; }; // REMOVE const onRemove = (targetId) => { dispatch({ type: "REMOVE", targetId }); }; // EDIT const onEdit = (targetId, date, content, emotion) => { dispatch({ type: "EDIT", data: { id: targetId, date: new Date(date).getTime(), content, emotion, }, }); }; return ( <DiaryStateContext.Provider value={data}> <DiaryDispatchContext.Provider value={{ onCreate, onEdit, onRemove }}> <BrowserRouter> <div className="App"> <Routes> <Route path="/" element={<Home />} /> <Route path="/new" element={<New />} /> <Route path="/edit/:id" element={<Edit />} /> <Route path="/diary/:id" element={<Diary />} /> </Routes> </div> </BrowserRouter> </DiaryDispatchContext.Provider> </DiaryStateContext.Provider> ); } export default App;DiaryList.jsimport { useState } from "react"; import { useNavigate } from "react-router-dom"; import MyButton from "./MyButton"; import DiaryItem from "./DiaryItem"; const sortOptionList = [ { value: "latest", name: "최신순" }, { value: "oldest", name: "오래된 순" }, ]; const filterOption = [ { value: "all", name: "전부 다" }, { value: "good", name: "좋은 감정만" }, { value: "bad", name: "안좋은 감정만" }, ]; const ControlMenu = ({ value, onChange, optionList }) => { return ( <select className="ControlMenu" value={value} onChange={(e) => onChange(e.target.value)}> {optionList.map((it, idx) => ( <option value={it.value} key={idx}> {it.name} </option> ))} </select> ); }; const DiaryList = ({ diaryList }) => { const navigator = useNavigate(); const [sortType, setSortType] = useState("latest"); const [filter, setFilter] = useState("all"); const getProcessedDiaryList = () => { const filterCallBack = (item) => { if (filter === "good") { return parseInt(item.emotion) <= 3; } else { return parseInt(item.emotion) > 3; } }; // 비교함수 const compare = (a, b) => { if (sortType === "latest") { return parseInt(b.date) - parseInt(a.date); } else { return parseInt(a.date) - parseInt(b.date); } }; const copyList = JSON.parse(JSON.stringify(diaryList)); const filteredList = filter === "all" ? copyList : copyList.filter((it) => filterCallBack(it)); const sortedList = filteredList.sort(compare); return sortedList; }; return ( <div className="DiaryList"> <div className="menu_wrapper"> <div className="left_col"> <ControlMenu value={sortType} onChange={setSortType} optionList={sortOptionList} /> <ControlMenu value={filter} onChange={setFilter} optionList={filterOption} /> </div> <div className="right_col"> <MyButton type={"positive"} text={"새 일기쓰기"} onClick={() => navigator("/new")} /> </div> </div> {getProcessedDiaryList().map((it) => ( <DiaryItem key={it.id} {...it} /> ))} </div> ); }; DiaryList.defaultProps = { diaryList: [], }; export default DiaryList;
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DB
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이전 강의인 Jdbc강의는 따라하지 않아도 된다고 하셔서 h2 데이터베이스 관련 라이브러리 추가와 연결 설정 추가만 따라하고 이 강의로 넘어왔습니다. 이번 강의 전까지는 문제없이 실습을 따라했는데 이번 강의부터 따라하던 중 막힌 부분이 생겨서 질문 남깁니다!5:53 쯤에 회원가입만 테스트 돌렸을 때 h2 데이터베이스에 남아있어야하는데 저는 아무것도 남아있지 않습니다. Jdbc를 따라하고 넘어왔어야하는걸까요?ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost 8080 Whitelable Error Page 에러발셍
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. View 환경설정 강의 따라하고 있는데 localhost:8080은 잘 동작 하지만 localhost:8080/hello 는 오류 발생하네요.동일 오류 발생한 사람들의 사례를 찾아봤지만,도저히 해결방법을 모르겠어서 올립니다ㅜㅜ
-
미해결[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
10:37 doc_final_country = doc_final_country[cols] 문법 해석
10:37 doc_final_country = doc_final_country[cols] 이 구문의 의미는변수 doc_final_country가 doc_final_country[cols] 를 가리키는 의미가 아닌가요...? 그러면 doc_final_country가 Series 형태인 doc_final_country[cols] 만 출력되어야 하는데, 어째서 doc_final_country에서 iso2의 위차만 변경되어서 나타나는지 궁금합니다 ``