선생님 궁금한 게 있어서 글을 남겨봅니다 오늘 To-do list 강의 세션을 완강했는데 이해를 하지 못하는 부분이 있었습니다 const onUpdate = (targetId) => { setTodo( todo.map ((it) => it.id === targetId ? { ...it, isDone: !it.isDone } : it ) ); }; onUpdate 부분을 만들때 todo.map ((it) => it.id === targetId ? { ...it, isDone: !it.isDone } : it 이분에서 ...it : !it.isDone 이 무엇을 의미하는지와 스프레드 연산자를 쓴 이유를 이해하기 어려웠습니다 const onDelete = (targetId) => { setTodo(todo.filter((it) => it.id !== targetId)); }; 에서 todo.filter((it) => it.id !== targetId) 가 삭제를 하기위해 만들어졌는데 .filter((it) => it.id !== targetId filter 를 쓴 이유와 it.id !== targetId 가 뭔지를 아직도 잘모르겠습니다 to-do list 를 배열을 이용하여 상태 관리를 하는것으로 만들었는데 천천히 공부 해보면서 적용 해볼려고 합니다 공부할떄 선생님께서 보는 학습자료나 to-do list 를 만들때 특별히 참고한게 있었는지 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 여기에 질문 내용을 남겨주세요. 지금 h2설치하기 강의를 보고 따라하는데 설치까지는 잘 되었지만 실행에서 막혔습니다. h2.bat을 해도 아무반응없이 3초간 로딩되다가 끝나고 다른 곳에서는 "h2.bat"을 해보라고도 해서 해도 안되고 springboot에 맞게 2.xx최신버전을 깔아도 작동이 안되네요. 환경변수의 문제도 아닌거 같고 java -version을 치면 아무것도 안뜨지만 where java를 작성하면 위치는 나와서 java도 깔려있긴 한데 뭐가 문제인지 모르겠네요.
안녕하세요 강사님 혹시 괜찮으시다면 어디선가 봤는데 아직도 기억에 남는 코테 문제가 있습니다. 아직도 못풀고 제 머릿속에 남아있는데요 혹시 도움을 주실 수 있으면 감사하겠습니다. 문제는 아래와 같습니다. N에 해당하는 개수의 숫자가 나옵니다 테스트 데이터 6 0 1 -1 2 -2 3 첫 줄 N은 0<=200,000 범위 수는 음의 정수 , 0 , 양의정수입니다. 위와 같이 숫자가 5개가 나오면 다 처음부터 더하는 것인데 여기서 n개의 수 중 딱 한개를 0으로 변환시킬 수 있습니다. 그랬을 때 0이 최대가 되는 개수가 몇인지 고르는 겁니다. DP 문제인 것 같은데 아직도 해결을 못하겠네요.. 가령 위 데이터에서는 처음은 0이니 0 두번째 1를 더해서 1 세번째 -1를 더해서 0 네번째 2를 더해서 2 다섯번째 -2를 더해서 0 여섯번째 3를 더해서 3입니다. 즉 0은 3개인데 여기서 0이 아닌 3개중 하나 아무거나 바꿔도 0의 최대 개수는 4개임으로 답은 4입니다. 이걸 어떻게 풀어나가야 할까요? 혹시 이러한 비슷한 백준문제나 프로그래머스 문제가 있으신가요? 도움 부탁드려요 ㅠㅠ
밑에 같은 질문을 하신 분이 계시던데요. 12.15 챕터의 10:33 초에 보면 수정 으로 들어 왔을때 기본값으로 수정 전 데이터가 나온다고 되어 있습니다. 지금까지 영상을 보면서 같이 코딩을 해오고 있었는데요.. 그런데 밑에 질문 하신 분 처럼 10:33 초 전 까지의 코딩으로는 수정 시 데이터가 나오지 않습니다. 그리고 인프런 측 인지..답변 설명에 useEffect 얘기 하시던데.. useEffect(() => { if (initData) { setInput({ ...initData, createdDate: new Date(Number(initData.createdDate)), }); } }, [initData]); 이 부분은 10:33 초 전 까지는 나오지 않았습니다. 인프런 측도 답변을 주실려면 정확히 파악 후 답변을 주세요.. 뭐가 잘못된 건가요? useEffect 부분이 없어도 설명대로 수정 으로 들어가면 데이터가 나오는게 맞는건가요? 아니면 제가 뭔가 빠트린 것이 있나요?
안녕하세요. 강의를 따라 @JsonIgnore와 hibernate5JakartaModule 도 빈등록을 진행했습니다. 아래 POSTMAN결과를 보면 첫 주문은 연관된 필드( orderItems)가 null로 잘 출력되는 것을 확인할 수 있었습니다. 비록 지금은 null로 출력됐지만 강제지연로딩을 설정하면 주문상품 요소들이 추가로 보여집니다. 반면, 두 번째 주문은 주문상품들이 다 보여지고 있습니다. 첫 번째 주문처럼 결과가 보여줘야할 것 같은데 말이죠. hibernate5JakartaModule 은 결과를 보장할 수 없는 것인지 궁금합니다. [ { "id": 1, "member": null, "orderItems": null, "delivery": null, "orderDate": "2025-02-21T07:23:38.479148", "status": "ORDER", "totalPrice": 50000 }, { "id": 2, "member": null, "orderItems": [ { "id": 3, "item": null, "orderPrice": 20000, "count": 3, "totalPrice": 60000 }, { "id": 4, "item": null, "orderPrice": 40000, "count": 4, "totalPrice": 160000 } ], "delivery": null, "orderDate": "2025-02-21T07:23:38.663151", "status": "ORDER", "totalPrice": 220000 } ]
강의 진행 도중 생긴 에러는 아니고, 순수한 궁금증에 질문 남깁니다. 제가 React 로 프론트엔드 개발은 항상 모든 컴포넌트를 화살표 함수로 작성했었습니다. 이를테면 const Home = () => { }; export default Home; 이런식으로 작성하였는데요, 근데 상기 Nextjs 강의에서도 그렇고 다른 수많은 블로그 글들에서는 전통적인 함수 선언식을 사용하더라구요. export default function Home() { }; 그 이유가 무엇일까요? 모두가 사용하는데는 이유가 있는거 같은데 관련 자료를 찾을 수가 없어서 질문드립니다. 혹시나 강제된 문법인가 싶어 해당 강의에서 사용된 페이지들을 화살표함수로 바꿔서 작성해봤는데 똑같이 에러 없이 잘 실행이 되더군요..
ReentrantReadWriteLock.wirteLock() 설명 중 [읽기 락은 쓰기 락과 독립적으로 소유되므로 영향을 주지 않지만 현재 스레드가 읽기 락도 획득한 상태에서 조건 대기 메서드를 호출하는 것은 사실상 항상 오류이다. 왜냐하면 대기를 해제할 수 있는 다른 스레드도 쓰기 락을 획득하지 못할 수 있기 때문이다.] 와 같은 설명이 readLock( ).lock( )을 실행한 상태에서, newCondition( )의 메서드를 사용하면 오류가 발생하는 것인지 궁금하여 구글링을 하던 중 아래와 같은 사이트를 발견하였습니다. https://jaimemin.tistory.com/2411 블로그에 들어가보면, 강사님의 자료를 수정없이 모든 내용을 예제까지 포함하여 작성되어 있고, 또한 광고를 붙여 수익을 얻고 있는 것으로 확인되었습니다. 엄연히 지적재산권이 있는 유료 강의를 타인이 무단 도용하여 수익을 창출하고 있는 행태는 도의적으로 아니지 않나 생각이 들어 알려봅니다.
안녕하세요, 강의 잘 듣고 있습니다. "삭제할 댓글이 자식 있으면, 삭제 표시만 한다." 테스트 코드의 내부에서 commentService.delete(commentId); 가 호출되고, delete의 내부에는 댓글이 이미 삭제 됐는지 확인하는 .filter(not(Comment::getDeleterd)) 필터가 존재하는데, getDeleted에 대한 목 객체의 동작은 따로 선언하지 않는 것일까요? (ex) given(comment.getDeleted()).willReturn(false); 답변 주시면 감사하겠습니다.
[username] 라우터의 page.tsx에 현재 들어온 유저정보를 받아오는 prefetchQuery랑 그 유저의 게시글을 받아오는 infinitePrefetchQuery가 있는데 두 번째 Query의 경우 서버 컴포넌트에서 실행되는 함수라 credential:"include"가 작동하지 않아 Cookie값을 따로 명시해줘야 하는걸로 알고있습니다. 근데 Cookie값을 따로 명시해주지않아도 게시글들이 잘 불러와지는데 이 과정이 궁금합니다
안녕하세요 강의 잘 듣고 있습니다. 강의랑 버전 맞춰서 실행하고 있는데 delete 메서드는 잘 동작하는데 deleted가 계속 0이네요.. 아래 질문글도 보고 해봤는데 저는 강의 버전이랑 딱 맞춰서 뭐가 문제인지 잘 모르겠습니다!.. 댓글 세 개 다 테스트 해봤는데 테스트는 잘 통과하는데 강의에서는 두번째 댓글부터 Empty Set이라고 나오는데 저는 아래 사진처럼 나옵니다..
안녕하세요. 오늘도 인덱스 관련해서 질문을 들고 왔습니다! (선생님이 "이런것도 질문해? 제발 질문 하지마 제발" 이라고 들 정도의 질문을 하는 학생들이 대부분 실력이 상승 한다고 해서 물음표 살인마가 되기로 했습니다. 지인들한테 강의 마구마구 홍보중입니다.. 한번만 봐주셉요..) 데이터 삽입 필요한 인덱스 페이지가 가득 찼다면 ,B+ tree 재구성 및 페이지 분할로 디스크 I/O 증가 정렬된 상태를 유지하기 때문에 삽입시마다 B+tree 재구성으로 인해 정렬로 인한 성능 저하 된다는건 이해가 되었습니다.(맞다면..) 허나 페이지 분할은 잘 이해가 안가네요 ㅠ 페이지 분할에 대해 제가 이해한 바인 아래 내용이 맞는지 궁금합니다. PK가 AUTO_INCREMENT일 경우 데이터가 항상 B+ Tree의 마지막(오른쪽 끝)에 삽입됨 . 하나의 페이지가 꽉 차면 , 새로운 페이지가 오른쪽에 생성됨 . 1. [ Page 1 ] (꽉 참) → 데이터 추가 시 분할 필요 2. [ Page 1 (반) ] → [ Page 2 (새로운 페이지 생성) ] PK가 유니크 문자열 또는 숫자일 경우 랜덤한 값이 삽입될 때, 페이지가 꽉 차지 않았더라도 균형을 맞추기 위해 강제적으로 새로운 페이지가 만들어질 수 있음. 1. [ Page 1 ] (데이터 60% 차 있음) → 중간에 랜덤 값 삽입 시 균형 유지 필요 2. 균형 유지 과정에서 일부 데이터를 새로운 페이지로 이동하여 분산 3. [ Page 1 (30%) ] → [ Page 2 (새로운 페이지 생성) ] 즉, 유니크 문자열 또는 숫자는 페이지가 “완전히 가득 차지 않아도” 새로운 페이지가 생성될 수 '도' 있다.
1강부터 차례대로 듣고 있는데 3강부터 막히네요. 영상으로만 보면 따라갈수가 없습니다. 보니까 3강 이후 강의를 먼저 들어야 진행이 가능한거 같은데, 우선순위를 한번 자세히 설명해주시면 좋겠습니다. 그리고, 영상만 봐서 진행이 안되는부분은 https://banbu.kr/free/35 해당페이지 순서를 우선적으로 따라해야하는건지도요?
선생님, 안녕하세요~ 섹션 3. 스프링부트와 API서버 => REST 방식 컨트롤러 만들기(2)에서 4:06분 근처 => LocalDateFormatter에서 오류가 납니다. CustomServletConfig까지 작성하고 실행하면 아래와 같은 오류가 나옵니다. C:\backend2\serverapi\serverapi\src\main\java\org\zerock\serverapi\controller\formatter\LocalDateFormatter.java:12: error: type Formatter does not take parameters public class LocalDateFormatter implements Formatter<LocalDate> { ^ 앞.뒤로 돌려보면서 찾아 보려 했는데 잘 모르겠습니다. LocalDateFormatter만드는 부분부터 오류가 납니다. 죄송하지만 확인하시면 답변 부탁 드립니다. 감사합니다. 코드 첨부합니다. package org.zerock.serverapi.controller.formatter; import org.hibernate.engine.jdbc.internal.Formatter; import java.text.ParseException; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Locale; import static java.awt.SystemColor.text; public class LocalDateFormatter implements Formatter<LocalDate> { @Override public LocalDate parse(String Text, Locale locale) throws ParseException { return LocalDate.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd")); } @Override public String print(LocalDate object, Locale locale) { return DateTimeFormatter.ofPattern("yyyy-MM-dd").format(object); } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? [질문 내용] public static HttpStatus findByCode(int code) { // value(): HttpStatuse의 배열을 반환한다. for (HttpStatus status : values()) { if (status.getCode() == code) { return status; } } return null; } 위 코드에서 왜 static으로 받나요?
❗ 질문 작성시 꼭 참고해주세요 현재 문제(또는 에러)와 코드(또는 github) 를 첨부해주세요. 맥/윈도우, 안드로이드/iOS, Expo, Node 버전 등의 개발환경 을 함께 적어주시면 도움이 됩니다. 에러메세지는 일부분이 아닌 전체 상황 을 올려주세요. ( 일부만 자르거나 복사하지말아주세요 .) 개발환경/코드에 대한 정보가 없을경우 답변이 어렵습니다. 윈도우, 안드로이드 환경에서 실행하였습니다. 홈화면은 잘 보이지만 profile이나 setting 버튼 클릭시 위의 오류화면이 나오게 됩니다. 서버 연결하는 부분까지도 잘 됐는데 어느 순간 이런 오류가 등장하였습니다. 어떻게 수정해야 할까요..? 감사합니다!