가급적이면 lombok라이브러리를 쓰지 마라고 하셨는데, @ToString(exclude = "members") 처럼 특정 필드를 제외하는 exclude 써서 무한 순환을 막을 수 있다는 것을 봤는데 이 방법을 실무에서 잘 안쓰나요? 그렇다고 롬복을 안쓰는건 더더욱 비효율적으로 보입니다 예시: @Entity @ToString(exclude = "members") public class Team { ... @OneToMany(mappedBy = "team") private List<MemberTest> members = new ArrayList<>(); ... }
새 강의도 쿠폰 받아서 잘 구매 하였습니다. 궁금한 것은 기존 강의를 다 듣고 새 강의를 수강해야 하는 것인지 기존 강의의 진도와 새 강의의 진도가 어느 부분인지 어떻게 바뀐 것 인지에 대해 이해가 안 가서 어떻게 해야하는지 알려주는 공지 또는 간단 영상이 필요할 것 같습니다. 기존 강의의 커리큘럼과 비슷하나 좀 바뀐 부분이 있을 것 같아서요. 기존 강의를 다 수강 후 복습 + 새로운 기술을 익힐 겸 새 강의를 수강하는 것이 맞는지, 아니면 기존 강의는 수강을 멈추고 새로운 강의를 다시 수강하면 되는 것인지 알려주시면 감사하겠습니다.
import java.util.*; public class Main { public static void main(String[] args){ Scanner in=new Scanner(System.in); String s = in.nextLine(); String s2 = in.nextLine(); System.out.println(Solution.solution(s, s2)); } } class Solution{ public static int solution(String s , String s2){ int ans = 0; HashMap<Character, Integer> map = new HashMap<>(); HashMap<Character, Integer> map2 = new HashMap<>(); for(char c : s2.toCharArray()){ map2.put(c, map2.getOrDefault(c, 0) + 1); } for(int i = 0; i<s2.length(); i++){ map.put(s.charAt(i), map.getOrDefault(s.charAt(i), 0) + 1); } if(map.equals(map2)){ ans++; } for(int i = s2.length(); i < s.length(); i++){ map.put(s.charAt(i), map.getOrDefault(s.charAt(i), 0)+1); if(map.get(s.charAt(i- s2.length())) == 1){ map.remove(s.charAt(i- s2.length())); }else{ map.put(s.charAt(i-s2.length()), map.get(s.charAt(i-s2.length())) - 1); } if(map.equals(map2)){ ans++; } } return ans; } } 전 강의에서는 항상 기존 b의 길이만큼 먼저 계산을 해주고 비교를 한후에 하나를 추가해주고 기존꺼를 제거하는 방식으로 저는 이해해를 해서 그런식으로 풀고 있었는데 강사님 코드 결론은 마지막에 b길이를 채워 주고나서 비교하고 나서 이전껄 빼고 새로운걸 추가시키고 비교하는 방식으로 하시는거 같은데 방식이 달라 어떤걸 더 봐야할지 모르겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 인텔리제이에서 scanner로 입력받는거에서, 영어는 즉각즉각 빨리 쳐지고 잘 쳐지는데, 한글만 유독 다음글자를 입력해야 전의 입력한 글자가 그제서야 입력되는데 이거 어떻게 고치나요? 너무 답답해서 미칠 것 같은데, 한컴 입력기도 삭제했는데도 이러는데.. ㅠㅠㅠㅠㅠ
안녕하세요, 수업 잘 듣고 따라가고 있습니다~~!! 다름이 아니라 , 아무래도 graphQL를 이용한것보다 취직하고싶은 회사에서 대부분 REST API를 사용하는거같아 혹시 fetch 또는 axios를 사용하는 방법은 강의에 추가할 계획이 없으실까요? 그리고 nextjs에서는 axios를 사용하는 대신에 fetch를 사용하는것이 맞을까요?
안녕하세요. 프로젝트에서 error.tsx 를 띄우는 예시로, 백엔드 서버를 종료하여 데이터를 받아오지 못하게 함으로써 error.tsx 가 표시되는 경우를 다루셨습니다. 이때, "백엔드 서버를 종료해서 데이터를 받아오지 못하게 함"을 "페이지가 렌더링되지 못하게 함"으로 이해해도 괜찮은지 궁금합니다. 이 질문을 드리게 된 이유는, 프로젝트에서 에러를 처리할 때 error.tsx 나 에러 페이지를 띄우는 것 외에도 다양한 방식으로 에러를 처리할 수 있기 때문입니다. 예를 들어, 에러 모달을 띄운다거나, 다른 페이지로 이동시키는 등의 방법도 있습니다. 그래서 error.tsx 가 어떤 종류의 에러에 대한 대비책인지 명확히 이해하고 싶습니다. 저는 error.tsx 가 예상치 못한 500번대 서버 에러와 같은 페이지나 컴포넌트 렌더링 실패 를 처리하는 페이지라고 이해하고 있는데, 제 이해가 맞는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 단순히 한번 입력 받는 게 아닌 do-while문을 사용하신 이유가 궁금합니다!
7-1 서버 액션 강의를 수강하는 중 page.tsx:75 Server Error: Route "/book/[id]" used params.id . params should be awaited before using its properties. 라는 문구와 함께 book > [id] 폴더의 page.tsx에서 404 오류가 발생하여 화면이 보여지지 않아 해결을 위해 다양한 시도를 해보던 중 해당 강의의 예제 코드(section7 - chapter1)를 가져와 사용했더니 (with-searchbar) > error.tsx에서 (0 , util_ delay__WEBPACK_IMPORTED_MODULE_3__.delay) is not a function Error 위 와 같은 오류가 뜹니다. 어떻게 해결해야할까요?
안녕하세요 섹션4의 next-auth 를 수강하고있습니다. next-auth를 사용하는 이유가 무엇인가요? 보통 백엔드에서 로그인 기능을 구현하는 것이 일반적이라고 알고 있습니다. next-auth는 백엔드가 로그인 기능을 구현하지 않았을 때 사용하는 것인가요? 아니면 이미 백엔드에서 구현한 로그인 API를 사용하기 위해서도 next-auth를 사용하는 경우가 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. @GetMapping("/members") public Page<?> list(@PageableDefault(size = 5, sort = "id", direction = Sort.Direction.DESC) Pageable pageable) { return repository.findAll(pageable).map(MemberResponse::new); } 해당 코드에서 API를 호출했는데 Serializing PageImpl instances as-is is not supported, meaning that there is no guarantee about the stability of the resulting JSON structure! For a stable JSON structure, please use Spring Data's PagedModel (globally via @EnableSpringDataWebSupport(pageSerializationMode = VIA_DTO)) or Spring HATEOAS and Spring Data's PagedResourcesAssembler as documented in https://docs.spring.io/spring-data/commons/reference/repositories/core-extensions.html#core. 이러한WARN 문구가 출력되었습니다. 이는 PageImpl의 객체가 그대로 JSON으로 직렬화되어 구조적인 문제가 발생할 수 있다는 경고 메세지 인데 이를 해결하기 위해서는 HATEOAS 의존성을 주입받아서 PagedModel을 반환하는 방법이 있고 spring.data .web.pageable.serialization-mode=via-dto 해당 코드를 yml 파일에 추가해서 글로벌 설정으로 가져가는 방법이 있고 @EnableSpringDataWebSupport(pageSerializationMode = VIA_DTO)) 방법이 있다고 합니다. 강사님 영상에는 해당WARN 문구가 보이지 않는데 그 이유는 버전의 문제때문에 강사님 영상에는 해당 WARN 문구가 보이지 않는게 싶습니다. 제가 가장 궁금한 것은 물론 프로젝트의 비즈니스에 따라 다르겠지만 위의 방법들중 어떤 방법이 가장 보편적으로 쓰이나 궁금합니다
조금 동 떨어진 질문일 수 있지만, 궁금증이 해소가 되지 않아 질문드립니다. 자바 애플리케이션에서 Thread를 생성해서 실행을 하게될 때, 총 3개의 스택영역을 거쳐야 된다고 생각을 하는데 맞을까요? 우선 런타임 데이터 영역 유저스레드의 스택영역 JVM 내부 스레드의 스택 영역 운영체제 커널 스레드의 스택 영역 각각을 이렇게 정리해봤습니다. 1. 유저 스레드의 스택 영역 - 자바에서 Thread객체를 생성하고 실행하면, JVM은 해당 스레드마다 스택 영역을 생성한다. - 이 스택영역은 바이트코드에서 메서드 호출하고 실행할 때 필요한 데이터를 관리한다. - 유저 스레드이고, 애플리케이션의 비지니스 로직을 수행하는 스레드이다. 2. JVM 내부 스레드의 스택 영역 - 클래스로더, GC, JIT와 같은 JVM내부 작업을 수행하는 스레드는 JVM 내에서 관리되는 스레드이다. - 이 스택 영역은 JVM코드에서 메서드 호출하고 실행할 때 필요한 데이터를 관리한다. - 유저 스레드이고, JVM의 핵심 작업을 수행하는 스레드이다. 3. 운영체제 커널 스레드의 스택 영역 - 커널 스레드는 실제 CPU에서 실행되는 스레드이다. - 유저 스레드의 실행을 처리하기 위해 유저 모드에서 작업을 처리하다가, 시스템 호출이 필요할 때 커널 모드로 전환되어 커널 스레드가 실제로 시스템 자원에 접근하고 작업을 처리한다. - 커널에서는 커널 스레드의 TCB를 관리하여 각 스레드의 실행 상태를 추적한다. - 이 스택 영역은 커널에서 수행하는 메서드에 필요한 데이터를 관리한다.
[질문 내용] Book 외에 Album, Moive도 구현하려고 합니다. 예제의 itemList.html에는 추상 클래스 Item에 정의된 속성들만 표시되도록 되어있는데요. Item이 Book인 경우에는 author, isbn이 Album인 경우에는 artist, etc 등이 같이 표시되도록 하려면 어떻게 구현하는 것이 가장 좋은 방법일까요? 타임리프에서 Item의 클래스를 체크한 후(instance of 와 유사) 다운캐스팅해서 각각의 타입에만 해당하는 내용을 출력하는 방식으로 구현하고, href도 "items/{id}/edit"을 수정해서 "items/{id}/book-edit", "items/{id}/album-edit"과 같은 식으로 하는게 맞는 방법인가요?