Category 매핑??
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
Category를 부모로 설정하고 이렇게 리스트로 뽑는 이유가 카테고리가 여러개라서 이렇게 하는 건가요? 잘 이해가 안 가서 질문드립니다. 그리고 실무에서 카테고리랑 Items 를 이런식으로 중간 테이블을 만들고 따로 매핑하는게 흔한가요?
- java
- jpa
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
Category를 부모로 설정하고 이렇게 리스트로 뽑는 이유가 카테고리가 여러개라서 이렇게 하는 건가요? 잘 이해가 안 가서 질문드립니다. 그리고 실무에서 카테고리랑 Items 를 이런식으로 중간 테이블을 만들고 따로 매핑하는게 흔한가요?
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 해당 강의에서 나오는 카운트 값이랑 제가 직접 해본 카운트 값이랑 다르게 나오는데 이게 CPU 성능이 다 달라서 그런건가요?
미해결
김영한의 실전 자바 - 중급 2편
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 섹션 7 hashCode()에 영상에선 IDE로 equals() hashCode() 생성시 hashCode()의 리턴으로 hash(id)가 생성되는데 저는 hashCode(id) 로 생성이 됩니다 또 섹션8 Set 문제 2에서는 강의와 똑같이 hash()로 생성이 됩니다 구글링으로 매개변수의 차이, 동작 차이와 결과값이 왜 다른지에 대해 이해는 했는데 섹션7의 자동생성이 다른 이유와 실무에선 이 둘이 어떤차이로 쓰이는지 아니면 그냥 생성해주는 대로 쓰는지 에 대해 궁금합니다
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 강의와 달리 디버깅이 되지 않습니다 무엇이 잘못된 점인지 설명해주셨으면 좋겠습니다
해결됨
대용랑 채팅 TPS에 대한 stateful 서비스 구축하기
안녕하세요 강의 잘 들었습니다. 근데 채팅방에서 메시지를 보내고 받는 부분은 카프카를 사용하지 않고 바로 db로 저장하더라구요. 근데 실제로 카프카를 사용해서 채팅 서버를 구성할때는 기본적으로 아래, FE -> BE - > kafka -> DB 식으로 동작하는게 맞다고 보시나요?
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="test"> <properties> <!-- 필수 속성 --> <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="javax.persistence.jdbc.user" value="sa"/> <property name="javax.persistence.jdbc.password" value=""/> <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:db;MODE=MySQL "/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.jdbc.batch_size" value="10"/> <property name="hibernate.default_batch_fetch_size" value="100" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence> test.resources.META-INF 에 위의 persistence.xml 파일을 작성하였습니다. package dev.shophub.userauthservice.domain.entity; import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; import jakarta.persistence.EntityTransaction; import jakarta.persistence.Persistence; import org.junit.jupiter.api.Test; class EntityTest { @Test void testEntity() { EntityManagerFactory emf = Persistence.createEntityManagerFactory("test"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); TestEntity testEntity = new TestEntity(); testEntity.setName("tester"); em.persist(testEntity); em.flush(); TestEntity find = em.find(TestEntity.class, testEntity.getId()); System.out.println("find = " + find); } } @Data @Entity public class TestEntity { @Id @GeneratedValue private Long id; private String name; } 스프링 컨테이너를 띄우지 않고 테스트를 수행하고싶어 위와 같이 코드를 작성하였는데 00:27:16.392 [Test worker] INFO org.hibernate.jpa.internal.util.LogHelper -- HHH000204: Processing PersistenceUnitInfo [name: test] 00:27:16.467 [Test worker] INFO org.hibernate.Version -- HHH000412: Hibernate ORM core version 6.6.4.Final 00:27:16.474 [Test worker] WARN org.hibernate.orm.deprecation -- HHH90000021: Encountered deprecated setting [javax.persistence.jdbc.user], use [jakarta.persistence.jdbc.user] instead 00:27:16.476 [Test worker] WARN org.hibernate.orm.deprecation -- HHH90000021: Encountered deprecated setting [javax.persistence.jdbc.password], use [jakarta.persistence.jdbc.password] instead 00:27:16.477 [Test worker] WARN org.hibernate.orm.deprecation -- HHH90000021: Encountered deprecated setting [javax.persistence.jdbc.url], use [jakarta.persistence.jdbc.url] instead 00:27:16.478 [Test worker] WARN org.hibernate.orm.deprecation -- HHH90000021: Encountered deprecated setting [javax.persistence.jdbc.driver], use [jakarta.persistence.jdbc.driver] instead 00:27:16.502 [Test worker] INFO org.hibernate.cache.internal.RegionFactoryInitiator -- HHH000026: Second-level cache disabled 00:27:16.625 [Test worker] WARN org.hibernate.orm.connections.pooling -- HHH10001002: Using built-in connection pool (not intended for production use) 00:27:16.780 [Test worker] WARN org.hibernate.orm.deprecation -- HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) 00:27:16.833 [Test worker] INFO org.hibernate.orm.connections.pooling -- HHH10001005: Database info: Database JDBC URL [jdbc:h2:mem:db;MODE=MySQL] Database driver: org.h2.Driver Database version: 2.3.232 Autocommit mode: false Isolation level: undefined/unknown Minimum pool size: 1 Maximum pool size: 20 00:27:17.414 [Test worker] INFO org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator -- HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) Unable to locate persister: dev.shophub.userauthservice.domain.entity.TestEntity java.lang.IllegalArgumentException: Unable to locate persister: dev.shophub.userauthservice.domain.entity.TestEntity at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:764) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:745) at dev.shophub.userauthservice.domain.entity.EntityTest.testEntity(EntityTest.java:21) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: org.hibernate.UnknownEntityTypeException: Unable to locate persister: dev.shophub.userauthservice.domain.entity.TestEntity at org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.getEntityDescriptor(MappingMetamodelImpl.java:395) at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1512) at org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:315) at org.hibernate.event.internal.EntityState.getEntityState(EntityState.java:64) at org.hibernate.event.internal.DefaultPersistEventListener.entityState(DefaultPersistEventListener.java:114) at org.hibernate.event.internal.DefaultPersistEventListener.persist(DefaultPersistEventListener.java:87) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:79) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:55) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:761) ... 5 more Unable to locate persister: dev.shophub.userauthservice.domain.entity.TestEntity org.hibernate.UnknownEntityTypeException: Unable to locate persister: dev.shophub.userauthservice.domain.entity.TestEntity at app//org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.getEntityDescriptor(MappingMetamodelImpl.java:395) at app//org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1512) at app//org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:315) at app//org.hibernate.event.internal.EntityState.getEntityState(EntityState.java:64) at app//org.hibernate.event.internal.DefaultPersistEventListener.entityState(DefaultPersistEventListener.java:114) at app//org.hibernate.event.internal.DefaultPersistEventListener.persist(DefaultPersistEventListener.java:87) at app//org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:79) at app//org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:55) at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) at app//org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:761) at app//org.hibernate.internal.SessionImpl.persist(SessionImpl.java:745) at app//dev.shophub.userauthservice.domain.entity.EntityTest.testEntity(EntityTest.java:21) at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568) at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511) 이러한 오류가 출력되고 실행되지 않습니다. 어떻게 스프링 컨테이너 없이 jpa 관련 테스트를 진행할 수 있을까요?
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Mockito와 JDK가 충돌하는 문제 문의 드립니다. 프로젝트 강의 내용과 일치하게 설정하였는데, @SpringBootTest 어노테이션을 사용하면 에러가 뜹니다. 데이터베이스에 Member테이블은 생성이 되는 것으로 보아 DB와 연결은 잘 되는 것 같습니다. 여러 자료를 찾아보며 의존성을 추가해봐도 해결이 되지 않아 프로젝트 파일 첨부합니다. 감사합니다, 파일 링크: https://drive.google.com/file/d/1b_Liz-YjGAuRUzHM0Em5DnhHa0rtQ9Lm/view?usp=sharing
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
현재 강의를 너무 잘 듣고 있는 수강생입니다. 강의에 대한 내용은 아니지만 여쭤보고 싶은게 있어 질문을 드립니다. 감정일기 만드는 부분을 따라하면서 코드도 어느정도 이해는 하고 있지만 만약 혼자 이러한걸 만든다고 했을 때 예를 들어 Home 페이지 부분에서 해당 날짜에 작성된 리스트가 나오게 할려고 하면 getMonthlyData함수에 작성된 코드처럼 저렇게 생각도 하지 못할것같고 또 pivotData, data를 이용해야되니 매개변수를 넣으면 되겠다... 하는 이러한 생각도 하지 못할것같은데 어떤 식으로 공부를 하면 감정일기장 뿐만 아닌 다른것도 혼자서 코드를 작성할 수 있고 또 활용도 할 수 있을지 궁금합니다.
해결됨
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. getBalance() 에서 try-finaly 코드의 순서가 이해가 안되서 질문을 드립니다. 저의 기억 으로는 try안에 있는 코드가 실행되고 finaly 안에 있는 코드가 실행 되는 걸로 알고 있습니다. 근데 try 안에서 return balance; 을 해버리는 것을 보고 "이게 뭐지?"라는 표현이 저절로 나오더라고요. 분명히 리턴으로 getbalance()를 빠져 나갔는데, lock.unlock(); 이게 실행가는한가? 라는 생각이 듭니다. 저의 머리로는 이해가 안되는데 의문점을 해결해 주 실수 있으신가요? 아니면 저가 try-finaly를 잘못 이해한건가요? 답변 부탁 드립니다.
미해결
김영한의 실전 자바 - 기본편
[질문 내용] 여기에 질문 내용을 남겨주세요. instanceof 수업에서 CastingMain5 문제에서 실행결과값이 다르게 나옵니다. parent1 호출 Parent.parentMethod Child 인스턴스 아님 parent2 호출 Parent.parentMethod Child 인스턴스 맞음 Child.childMethod
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[질문 내용] ItemRepository에서 save() 메소드를 만들 때 아직 등록한게 없다면 id 값이 없으니 persist하고 id가 있다면 merge하는 조건문이 있습니다. 그렇다면 MemberRepository에서도 save()메소드에 아직 아무런 회원이 없다면 똑같이 ItemRepository의 save()메소드 처럼 조건문을 넣어야 하지 않을까요? 왜 MemberRepository의 save()메소드는 단지 em.persist(member)만 존재하는 건지 궁금합니다.
해결됨
토비의 스프링 6 - 이해와 원리
안녕하세요, 강의에서 올려주신 META-INF/orm.xml을 통해 orders의 table과 id가 만들어지는 것을 확인했습니다. 다만 Order의 no가 고유한 값을 가져야한다는 데이터 정합성 관련 SQL(schema.sql의 2,3번째 줄)이 Hibernate에서 표시되지 않는 것을 확인하여 unique="true"를 다음과 같이 넣어주면 원래의 JPA 어노테이션을 대체한 것으로 볼 수 있을지 문의드립니다. 감사합니다. <basic name="no"> <column name="no" length="255" unique="true"/> </basic>
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
섹션23인 검색 기능 구현 파트 이후로는 포트폴리오 강의가 제공되지 않고 있는데, 이 후의 중고마켓 웹사이트에 대한 포트폴리오 리뷰 강의는 제공되지 않고, 스스로 하되, 포트폴리오 리뷰 자료를 참고하면 되는 건가요?
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
안녕하세요. 강의 잘 듣고 있습니다. 강의를 듣다가 의문이 생겨 질문드립니다. 아래 두 코드는 모두 정상적으로 작동합니다. 그럼에도 불구하고, 두 번째 코드를 사용하는 이유는 혹시 나중에 onDelete 기능에 새로운 로직이 추가될 가능성에 대비하기 위해서인가요? 만약 이 기능이 Props로 전달받은 기능만을 사용한다면, 첫 번째 코드로 작성해도 괜찮은지 궁금하여 질문드립니다. <button onClick={() => {onDelete(id)} }>삭제</button> const onClickDeleteButton = () => { onDelete(id); } return ( //생략 <button onClick={onClickDeleteButton}>삭제</button> );
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 연관관계 편의 메소드로 값을 저장하는데 set()은 없어도 되지않나해서요? 그래도 왠만하면 넣나요?
미해결
실전! 스프링 데이터 JPA
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. Could not initialize plugin: interface org.mockito.plugins.MockMaker에러가 발생합니다.. 환경설정이 문제인걸까요..? 아래의 테스트 코드 실행시 아래와 같은오류가 발생합니다. 도와주세요ㅠㅠ <gradle파일> plugins { id 'java' id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.7' } group = 'study' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } <test파일> package study.data_jpa; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class DataJpaApplicationTests { @Test void contextLoads() { } } <오류> Could not initialize plugin: interface org.mockito.plugins.MockMaker Caused by: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker It appears as if your JDK does not supply a working agent attachment mechanism. Java : 17 JVM vendor name : Oracle Corporation JVM vendor version : 17.0.10+11-LTS-240 JVM name : Java HotSpot(TM) 64-Bit Server VM JVM version : 17.0.10+11-LTS-240 JVM info : mixed mode, sharing OS name : Windows 10 OS version : 10.0 DataJpaApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at PluginLoader.java:85 Caused by: java.lang.IllegalStateException at DefaultMockitoPlugins.java:105 Caused by: java.lang.reflect.InvocationTargetException at Constructor.java:499 Caused by: org.mockito.exceptions.base.MockitoInitializationException at InlineDelegateByteBuddyMockMaker.java:254 Caused by: java.lang.IllegalArgumentException at InstrumentationImpl.java:-2
미해결
따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
안녕하세요. 2024년도에 처음으로 Node.js를 학습해 보기 위해 해당 강의를 수강 중 입니다. 물론 Mongodb 관련(mongoose) callback 함수 등 변경점이 많아서 구글링과 인프런 질문 게시판을 활용하며 저만의 코드로 변경하는 중입니다. 그러던 중, token에 대한 궁금증이 생겨서 질문을 올립니다. 강의에서는 mongoose의 DB에 저장된 인스턴스를 찾은 후, 해당 인스턴스의 속성 값을 변경하는 findOneAndUpdate를 활용하려 하고 있습니다. 하지만, 저희는 기존에cookie에 x_auth라는 속성명으로 토큰값을 저장하고 있었습니다. 문서들을 찾아보니, 토큰 정보 등은 서버가 아닌 클라이언트가 저장하고 있는 것이 편리하기 때문에, DB의 보안성 때문에, DB 접근 시간보다 세션 또는 쿠키 접근이 빨라서 등 여러 이유가 있는 것 같습니다. 그렇다면, 저희가 만든 userSchema에서 token과 관련된 속성들의 존재 이유는 무엇인가요? 저희는 token을 login 과정에서도 cookie의 x_auth에 저장하고, db 갱신을 해주지는 않는데, 왜 굳이 logout 라우트에서는 findOneAndUpdate를 사용하는 것인가요? 그냥 쿠키의 x_auth 값을 비워주는 것은 안되는 것인가요?? 긴 글 읽어주셔서 감사합니다.
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
현재 일기 관리 기능 구현하기2 부분의 강의를 보고 있는데 강의에서 const DiaryStateContext = createContext(); const DiaryDispatchContext = createContext(); 이렇게 createContext를 두번 작성이 되었고 또 DiaryStateContext는 value로 data를 DiaryDispatchContext는 value로 onCreate, onUpdate, onDelete 이렇게 각각 보내는데 왜 이렇게 두번작성을 하는 것인지 그리고 그냥 DiaryStateContext 이 부분에 value로 data와 onCreate, onUpdate, onDelete 이걸 같이 보내면 안되는건가요?
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! 현재 CAS연산 강의를 보고있습니다. 그러다가 문득 "volatile 키워드가 메모리 가시성 문제를 해결해 주지만 동시성 문제는 완벽하게(?) 해결해주지 못한다." 라는 이유에 대해서 곰곰히 생각해 보았는데 혹시 CPU 가 싱글코어와 멀티코어냐에 따라서 결과가 달라지는건지 궁금합니다. 이 이유가 아니라면, 왜 volatile키워드가 동시성 문제를 해결해주지 못하는지 알려주시면 감사하겠습니다!
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요. 데이터 수정은 변경 감지로 처리하는게 적절한걸로 강의를 통해 이해했습니다. 강의를 학습 후, 상품 정보를 수정하는 API를 개발하고 있습니다. 상품 정보 업데이트를 진행할 때 옵션 목록과 같은 하위 데이터에 대해 추가, 삭제는 어떤식으로 로직을 처리해야 하는게 적절한지 판단이 안되어 질문 드립니다. 클라이언트에서 상품 정보 수정 API를 호출할 때, 생각한 프로세스는 아래와 같습니다. - 수정하는 옵션의 경우 ID와 변경되는 데이터를 필드에 담아서 보내줍니다. - 신규 옵션을 추가하는 경우에는 ID를 제외한 추가될 데이터를 필드에 담아서 보내줍니다. - 삭제하는 옵션은 필드에 담지않고, 수정/신규 옵션만 필드에 담아서 보내줍니다. 수정 API 개발할 때, 어떤식으로 처리하는게 좋은 방법인지 궁금하여 질문 드립니다. (수정 옵션) 상품 정보 업데이트 시 기존 옵션 데이터의 경우에는 ID로 데이터를 조회 후 변경 감지로 필요한 데이터만 수정하도록 했습니다. (추가 옵션) 신규 옵션 데이터는 ID 값이 없는걸 식별해서 추가하도록 로직을 짜는게 적절 할까요? (삭제 옵션) 기존 옵션 데이터를 삭제하고 싶습니다. 클라이언트에서 API로 옵션 정보를 넘겨주는데, 삭제되는 옵션은 넘어오지 않습니다. 이런 경우에는 ID가 식별되지 않아 변경 감지로 삭제할 수가 없을거 같은데 어떻게 해야할까요? (삭제는 soft delete 방식으로 처리해야 합니다.) 삭제되는 ID 값을 deleteOptionIds 같은 필드로 따로 받아서 처리하는게 적절 할까요? 감사합니다.