강의에 나오는 JSON 데이터를 한 눈에 보기 힘드신 분들은 아래 확장 프로그램을 통해 JSON 데이터를 시각적으로 구조화해서 좀 더 보기 좋게 확인하실 수 있습니다. JSON Viewer https://chromewebstore.google.com/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh
안녕하세요 공부를 하다가 index.css 파일과 App.css 이 두개가 조금 헷갈리더라구요. 예를 들어 App.css도 폰트를 적용하면 전부다 적용이 되고 index.css도 똑같이 되는데 그럼 index.css는 어떤부분일때 작성이 되고 App.css는 어떤부분일 때 작성이 되는것인지 궁금합니다
안녕하세요! 강의를 쭉 듣고, 배포 단계까지 왔는데 에러가 생겨서 진행이 안되어 문의드립니다! vercel에서 에러는 Failed to compile. src/app/[location]/page.tsx Type error: Type 'Props' does not satisfy the constraint 'PageProps'. Types of property 'params' are incompatible. Type '{ location: string; }' is missing the following properties from type 'Promise<any>': then, catch, finally, [Symbol.toStringTag] Error: Command "npm run build" exited with 1 이며, 그전에도 Route "/[location]" used params.location . params should be awaited before using its properties. Learn more: 위와 같은 에러가 떴고, 이는 경로 및 쿼리 파라미터를 위한 객체에서 런타임 에러가 뜨는걸로 확인했습니다! 강의를 똑같이 따라갔는데, 위와 같은 에러가 나는게 의아하여 한번 문의드립니다! import HomeButton from "../components/HomeButton"; import { getForecast } from "../utils/getForecast"; type Props = { params: { location: string; }; searchParams: { name: string; }; }; export function generateMetadata({ searchParams }: Props) { return { title: `날씨 앱 - ${searchParams.name}`, description: `${searchParams.name} 날씨를 알려드립니다`, }; } export default async function Detail({ params, searchParams }: Props) { const name = searchParams.name; const res = await getForecast(params.location); return ( <> <h1>{name}의 3일 예보</h1> <ul> {res.forecast.forecastday.map((day) => ( <li key={day.date}> {day.date} / {day.day.avgtemp_c} </li> ))} </ul> <HomeButton /> </> ); } 크리스마스 쉬는날 연락드려, 죄송하며 빠른 답변 부탁드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 비슷한게 있긴합니다. 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요, 영속성 전이(CASCADE)에 대하여 궁금한 게 있습니다. CASECADE.ALL 사용시 부모Parent(@OneToMnay) -> 자식Child(@ManyToOne) 이런식으로 양방향 관계시 하나의 부모가 자식들을 관리를 할때(소유자가 하나인 경우)는 사용을 해도 괜찮다고 말씀을 주셨는데근데 사용을 하면 안되는 경우를 이제 자식Child 엔터티가 Member 엔티티와 @ManyToOne 관계를 가지게 되는 이런 경우를 말씀 하신걸까요 ㅠㅠ?? 아니면 Child에서 Member로 단방향 관계일때는 상관이 없고 // Case 1: 단방향 @Entity public class Child { @ManyToOne private Parent parent; @ManyToOne private Member member; // 단방향 } // ==================================================================================== // Case 2: 양방향 @Entity public class Child { @ManyToOne private Parent parent; @ManyToOne private Member member; // 양방향 } @Entity public class Member { @OneToMany(mappedBy = "member", cascade = CascadeType.ALL) private List<Child> childList = new ArrayList<>(); } 멤버에서 차일드를 알게된 양방향 관계일때 문제가 생긴다는 걸까요 ?? 다른엔터티랑 CHILD랑 관계가 있다가 어떤 경우인지 이해가 안되서 그렇습니다ㅠ_ㅠ
가급적이면 lombok라이브러리를 쓰지 마라고 하셨는데, @ToString(exclude = "members") 처럼 특정 필드를 제외하는 exclude 써서 무한 순환을 막을 수 있다는 것을 봤는데 이 방법을 실무에서 잘 안쓰나요? 그렇다고 롬복을 안쓰는건 더더욱 비효율적으로 보입니다 예시: @Entity @ToString(exclude = "members") public class Team { ... @OneToMany(mappedBy = "team") private List<MemberTest> members = new ArrayList<>(); ... }
새 강의도 쿠폰 받아서 잘 구매 하였습니다. 궁금한 것은 기존 강의를 다 듣고 새 강의를 수강해야 하는 것인지 기존 강의의 진도와 새 강의의 진도가 어느 부분인지 어떻게 바뀐 것 인지에 대해 이해가 안 가서 어떻게 해야하는지 알려주는 공지 또는 간단 영상이 필요할 것 같습니다. 기존 강의의 커리큘럼과 비슷하나 좀 바뀐 부분이 있을 것 같아서요. 기존 강의를 다 수강 후 복습 + 새로운 기술을 익힐 겸 새 강의를 수강하는 것이 맞는지, 아니면 기존 강의는 수강을 멈추고 새로운 강의를 다시 수강하면 되는 것인지 알려주시면 감사하겠습니다.
MonsterController 에서 질문 있습니다. protected virtual void UpdateDead() { OnDead(); } public override void OnDamaged(BaseController attacker, int damage) { if (Hp <= 0) return; Hp -= damage; if (Hp <= 0) { Hp = 0; // 왜 ? 스테이트로 했을때는 버그가 있는거지? _creatureState = Define.CreatureState.Dead; // OnDead(); } } 위와 같이 MonsterController 에서 OnDead() 대신에 State 로 작성을 하면 데미지를 입지 않은 몬스터도 죽어버립니다. 왜 그렇게 되는지 잘 모르겠는데 설명 부탁 드립니다.
제가 확실히 이해한 것이 맞는지 체크하고 싶어 질문 드려요. NetworkObject는 생성시 Instantiate함수만으로도 양쪽에 동기화 되어 생성된다. (생성만 되는 것인지 이동시 위치까지 동기화 되는건이지 궁금합니다.) ServerRpc함수 : 이 함수는 client의 작업은 client에서 하는 것이 아니라 host가 대리처리해 주어야 하기 때문에 client만 주로 호출할 일이 많다. ClientRpc함수 : host가 작동시킨 것들을 clinet에게 전달하거나 ServerRpc함수에 작업한 것을 다시 양쪽에 동기화해서 전송해주는 역할을 한다. 이 함수는 host와 client컴퓨터 양쪽에서 모두 실행된다. 위에 두 함
index.html에서 다룬 코드입니다. 경로를 바꿀때마다 vercel --prod로 프로젝트 갱신해서 배포했습니다. meta 태그에서 썸네일 이미지를 표현하는 og:image 프로퍼티와 컨텐츠에 썸네일을 하고 싶은 이미지를 src / assets 파일에 todayfeeling.png 로 저장해놨습니다. 탭 아이콘 표현은 절대 경로로 표현했을 때 비로소 적용이 되었습니다. (강의에서는 href="/favicon.ico"로 표현했지만 저는 강의랑 똑같이 했을 경우에 아이콘이 나타나지않아서 아래 코드와 같이 경로를 추가해서 아이콘을 띄웠습니다.) 썸네일 이미지 때문에 content ="/todayfeeling.png" content ="src/assets/todayfeeling.png" content ="/src/assets/todayfeeling.png" (블로그에 올린 이미지 주소) content ="https://velog.velcdn.com/images/foreveryejin/post/65845dd4-a999-4344-9fb4-3710b07f5a3d/image.png" content ="./src/assets/todayfeeling.png" 여러 경로를 바꿔가면서 해봤는데 안되더라구요. 그래서 다른 포털사이트에서 실제로 사용하는 meta 태그를 긁어와서 사용해봤는데 안되네요... 다른 기능들은 잘 작동하는데 이것만 말썽입니다..! <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <link rel="icon" type="image/svg+xml" href="src/assets/icon.ico" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>오늘 하루 감정</title> <meta property="og:title" content="오늘의 감정" /> <meta property="og:image" content="/todayfeeling.png" /> <meta property="og:description" content="예진이의 오늘의 감정 일기장" /> </head> <body> <div id="root"></div> <script type="module" src="/src/main.jsx"></script> </body> </html> pc : 모바일 : 저의 깃헙 링크입니다! 확인 부탁드립니다. https://github.com/yyejin00/diary-with-emotions 감사합니다.
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를 사용하는것이 맞을까요?