안녕하세요 "부트캠프에서 만든 완벽한 프론트엔드 코스" 강의를 구매해서 열심히 듣고 있습니다. 강의소개에서 웹 프론트엔드 부트캠프 부분에 CRUD에 충실한 여행자 게시판 '트립토크'와 숙박상품을 구매할 수 있는 여행플렛폼이라고 나오는데 그렇다면 이 강의에 이 여행 플랫폼을 만드는 내용도 있나요?
지난번과 동일하게 자꾸, @Observation 을 활용하려다보니 문제가 많이 생기는 것 같습니다. 정확하게 차이를 이해하려고 강의를 돌려봐도 제가 이해하고 있는 바와 다른 점들이 있는 것 같아 질문 드립니다. 강의의 내용은 CoreData 를 다룰 때, fetch 로 불러온 것을 View 로 넘기기위한 변수 var savedEntities: [Fish] 를 만들고, :ObservableObject protocol 을 활용하셨습니다. 이후 View 에서 ViewModel 을 처음 초기화할 때 사용하기 위해서 @Stateobject 를 활용하여 설명을 하셨고요. 그렇다면, Observable Macro 로 Migrating 하기 진행하는데에도 문제가 없다고 생각을 했습니다. 그래서, 아래와 같이 코드를 바꾸어 보았습니다. 그런데 문제는 Viewmodel 에서 정의된 updateFish() method 가 적용되지 않습니다. List 에서 주어진 생선 이름을 tap 했을 경우, "~" 가 추가가 되어야 하는데, func updateFish(fish: Fish){ let currentName = fish.name ?? "" let newName = currentName + "~" fish.name = newName saveData() print("Updating fish name to: \(newName)") } 와 같이 print 를 찍어보았을 때, 디버그 창에서는 print 가 되지만, View 에서는 "~"가 추가되지 않는 모습을 확인할 수 있었습니다. CoreData 의 변화를 감지하지 못하는건지.. 기초강의에서 FruitModel 예시에서는 ObservableObject 대신 Observable Macro 를 적용해도 되었었거든요. 여기서도 fruitArray 이라는 배열을 사용했는데 잘 적용되었습니다. @Observable Macro 를 적용하는데에 있어서 제가 잘못 이해하고 있는 부분이 있을까요? var fruitArray: [FruitModel] 는 View에서 변화를 감지하여 실시간 Update가 가능한 반면 var savedEntities: [Fish] 는 왜 변경되어도 View에서 변화를 감지 하지 못하는지 궁금합니다. 감사합니다.
안녕하세요! 완강하고 프로젝트 배포 끝내놓고 확인 도중 궁금한 점이 있어 질문 남깁니다. localstorage의 경우 사용자가 직접 삭제하지 않는 한 영구적으로 저장된다고 하였는데 PC(window)에서 새 일기 작성 후 노트북(mac)에서 도메인 접근 시 데이터가 다 삭제되어 있습니다. 또한, 도메인 접근 시 vercel 로그인 창이 현출되고 동일 계정으로 로그인 하면 데이터가 마찬가지로 매번 삭제되어있습니다. PC 브라우저에서 해당 도메인 북마크 후 불러올 경우엔 데이터가 그대로 남아있습니다.. 따라서 현재 PC에서 접근 시 저장된 데이터가 현출되고 노트북에서 접근 시 데이터가 안보이는 상황입니다. 질문 : localstorage에 저장된 데이터는 어디에서든 같은 도메인으로 접속하면 똑같은 데이터가 보여야하는거 아닌가요? 그리고 프로젝트 도메인에 접근하려면 꼭 vercel 로그인이 필요한걸까요? 구글링을 해봐도 정확한 정보를 찾을 수 없어 문의드립니다. 배포는 강의와 동일하게 진행하였습니다. 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의에서 `주 테이블이나 대상 테이블 중에 외래 키 선택 가능`이라고 하셨는데 `대상 테이블에 외래키가 있는 일대일 단방향 관계는 JPA에서 지원 안한다는 게` 무슨 말인가요..? 그러면 외래 키 선택 기준 이런 거 얘기할 필요 없이 무조건 일대일 단방향 관계에서는 주 테이블에 외래키를 설정해야하는 거 아닌가요
"[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스강의" 를 수강하고 배포 부분을 이 강의를 수강하고 있는 수강생입니다. 고농축 강의에서 만든 포트폴리오를 aws에서 배포했을때에, CORS 에러가 다음과 같이 나는 문제가 있는데 어떻게 해결해야할까요? 찾아보니 백엔드에서 CORS 를 허용해야하거나 프론트에서 프록시를 사용하라고 되어있는데 어떻게 해결해야할지 모르겠네요
Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setName("member1"); member.setTeam(team); em.persist(member); //em.flush(); // 영속성 컨텍스트에 있는 쿼리를 db에 전송한다. //em.clear(); // 영속성 컨텍스트를 초기화 // 이렇게 하면, 위 em.persist()를 통해 영속성컨텍스트에 있는 Member를 가져오는게 아니라, // em.find()를 할때 db에서 select를 해서 가져온다. Team findTeam = em.find(Team.class, team.getId()); List<Member> members = findTeam.getMembers(); for (Member m : members) { System.out.println("m = " + m.getName()); } 여기에서 em.flush()와 em.clear()를 하지않으면, findTeam에 Members가 비어있는 이유가 무엇인지 모르겠습니다. em.flush()를해서 db에 있는 Team데이터와, em.flush()하지않은 영속성컨텍스트에 있는 Team데이터가 무엇이 다르길래 영속성컨텍스트에서 em.find를 하면 members가 비어있는것인지 모르겠습니다. 즉, db를 통해 em.find하면 members가 있고, 영속성컨텍스트를 통해 em.find를 하면 members가 없는데 왜 그런것인가요? 1차캐시에 team데이터를 저장하는것과 db에 team데이터를 저장하는것이 다른가요? 강의를 계속 봐도 이해가 가질않아 질문드립니다.
카프카 설치 과정에서 뭔가 오류가 발생한거 같은데 해결이 어려워 글 남겨봅니다. 2025-02-05 20:04:47 ===> User 2025-02-05 20:04:47 uid=1000(appuser) gid=1000(appuser) groups=1000(appuser) 2025-02-05 20:04:47 ===> Setting default values of environment variables if not already set. 2025-02-05 20:04:47 CLUSTER_ID not set. Setting it to default value: "5L6g3nShT-eMCtK--X86sw" 2025-02-05 20:04:47 ===> Configuring ... 2025-02-05 20:04:47 ===> Launching ... 2025-02-05 20:04:47 ===> Using provided cluster id 5L6g3nShT-eMCtK--X86sw ... 2025-02-05 20:04:47 # # A fatal error has been detected by the Java Runtime Environment: # # SIGILL (0x4) at pc=0x0000ffff9513fc5c, pid=13, tid=390 # # JRE version: (21.0.4+7) (build ) # Java VM: OpenJDK 64-Bit Server VM (21.0.4+7-LTS, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64) # Problematic frame: # j java.lang.System.registerNatives()V+0 java.base # # No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # # An error report file with more information is saved as: # /tmp/hs_err_pid13.log [0.016s][warning][os] Loading hsdis library failed # # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # 오류 로그는 이렇구요. 대강.. 자바 버전? 제 로컬환경과 뭔가 문제가 있는거 같은데.. 맥미니 M4 이구, java -version openjdk version "21.0.5" 2024-10-15 OpenJDK Runtime Environment Homebrew (build 21.0.5) OpenJDK 64-Bit Server VM Homebrew (build 21.0.5, mixed mode, sharing) 검색해보니 M4에서만 일어나는 문제인거 같기도 하고.. sve 라는 옵션을 꺼보래서 docker run -d --name kuke-board-kafka -p 9092:9092 -e FAFKA_JVM_PERFORMANCE_OPTS="-XX:UseSVE=0" apache/kafka:3.8.0 이런식으로 설치 해봤는데 마찬가지네요. 뭘 시도해봐야할지 도움 좀 부탁드립니다.
먼저 좋은 자료 감사합니다. 해당 예제대로 진행하면 전부 동작 잘하는데 비관적 락 테스트 할때 테스트에 @Transactional을 붙이면 동작이 지연되다 실패하는데 그러한 이유로 테스트 전후 처리를 해주시는 걸까요? 테스트에서 @Transactional(롤백)을 사용안하시는 이유가 있을까요?
만들어진 게시판을 간단하게 배포를 하려면 어떤 순서로 하는 것이 좋을까요? 직접 배포를 해보고 데이터의 이동 흐름을 보고 싶어서요. GPT 선생님은 아래와 같이 하라고 하는데, 선생님께서 생각하는 간단한 방법이 있는지 궁금합니더... 🚀 간단한 배포 방법 Docker Compose 파일 작성 ( docker-compose.yml ) 애플리케이션 컨테이너화 (Dockerfile) 서버(배포 환경)에서 실행 1⃣ docker-compose.yml 을 작성해서 모든 서비스(MySQL, Redis, Kafka, App)를 한 번에 실행 2⃣ Dockerfile 을 작성해서 애플리케이션을 컨테이너화 3⃣ 서버에서 docker-compose up -d --build 실행으로 배포 완료
영한님 강의에서 where절에 들어가는 모든 구분은 전부 영어입니다. ex) where(member.username.eq("member1")) 근데 저는 한글데이터를 넣고 where을 해보니 원하는 결과가 조회되지않았고 다음과같은 로그가 출력됩니다. org.hibernate.orm.jdbc.bind : binding parameter (1:VARCHAR) <- [%2프%] /**/prep5.setString(1, "%2\u1111\u1173%"); '2프'라는 글자를 where절에 넣어서 조회하려하고 hibernate에서는 실제로 %2프% 라는 원하는 결과를 바인딩 해줬습니다. 하지만 h2db의 로그에서는 2는 제대로지만 프가 ㅍ과 ㅡ를 분리하여 유니코드로 치환된 상태로 바인딩이 되서 분명 데이터가 있음에도 아무데이터도 조회되지않습니다. h2db에서 prepareStatement에 한글을 바인딩할때 깨지는현상 어떻게 해결할 수 있나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] h2database 설치 페이지로 아예 넘어가질 않습니다. 사이트의 문제인건가요?
안녕하세요. 스프링부트 프로젝트 세팅 중 계속해서 같은 예외가 발생해 문의드립니다. 해당 예외 발생 관련해 검색해서 Settings, Project Structure의 버전도 확인하였고, 혹시 build.gradle에서 문제가 있는건가 싶어 강사님의 build.gradle 파일을 복사해서 재빌드 해보았지만 계속 같은 예외가 발생하고 있습니다. File > invalidate Caches > Invalidate and restart도 안되네요.. 어떻게 해야하나요?? ㅜㅜ