inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

어떤 상태를 준영속이라하는지 , 준영속 역할이 무엇인지 궁금합니다!

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 준영속이란 한번은 영속상태였지만, 현재는 영속성 컨텍스트의 관리 대상이 아닌 엔티티인데 db 에 저장될떄 pk 가 생기기 떄문에 객체에 식별자가 있으면 무조건 준영속 엔티티인가요? 엔티티매니저에서 꺼내서 Detached되어 식별자가 셋팅되거나 아니면 새로운 객체에 id 값만 셋팅되어 있으면 준영속 상태볼 수 있나요? 왜 준영속 상태는 따로 있나요? 비영속만 있어도 되지않나요? 무슨 이점이 있나요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
바나나 댓글 2 좋아요 0 조회수 107

DataOutputStream 의 writeUTF도 블로킹 메서드 인가요?

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 복습 중에 질문이 생겼습니다 콘솔 입력 / DataInputStream의 readUTF는 입력을 받은 데이터로 호출한 쓰레드에서 작업을 수행하기 때문에 블로킹 메서드 인 것이 이해가 쉽게 됩니다. 반면 DataOutputStream 의 writeUTF() 메서드는 반환 타입도 void이고(호출한 쓰레드에서 뭘 처리하지 않음), 서버에 메세지를 보내기만 하면 되기 때문에 블로킹 메서드가 아니라고 생각했는데, 막상 검색해보니 블로킹 메서드라고 나와서 이해가 잘 안됩니다. 블로킹 메서드가 맞는 걸까요? 맞다면 왜 블로킹 메서드로 설계된 걸까요

  • java
  • 네트워크
  • 객체지향
ssshhh 댓글 1 좋아요 0 조회수 110

PayStore 예제문제 구체적 설명

미해결

김영한의 실전 자바 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 예제문제에 작성한 PayStore 코드에서 1. public abstract class PayStore 에서 abstract를 사용한 구체적인 이유 다른질문답변을 봤는데도 이해가 잘 안갑니다 더 구체적으로 설명해주세요 예시답변>정적 메서드(static method) 사용 이유: static 메서드는 클래스 레벨에서 작동하며, 객체의 인스턴스를 생성하지 않고도 사용할 수 있습니다. 이는 공통적으로 사용되는 유틸리티 메서드나 인스턴스 상태와 무관하게 작동하는 메서드에 적합합니다. PayStore 의 경우 결제 수단을 찾는 공통 기능을 제공하며, 인스턴스 상태와 무관하므로 static 으로 선언하는 것이 적절합니다. 2. public static Pay findPay(String option) 에서 static을 사용한 구체적인 이유 을 알고싶습니다.

  • java
  • 객체지향
Hyunju Lee 댓글 3 좋아요 0 조회수 168

변수 캡쳐 질문

해결됨

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 궁금증이 생겨서 질문을 드립니다. 람다 vs 익명 클래스1 을 공부하다가, 변수지역 캡쳐, 부분이 기억이 안 나서 다시 듣게 되었는데요.(지역 클래스 - 지역 변수 캡쳐3) 공부를 하고 다시 듣다 보니 localVar를 변경할수 있는 방법이 생각이 나더라고요. 그래서 변경이 가능한지 테스트를 해보고, 바꾸어 보았습니다. 바꾸어 보니, 값이 변경 할 수 있다는 사실을 알수 있었습니다.(사진 참조) d 여기서 질문이 생깁니다. 이런식 으로 바꿀 수 있는데, 현업 에서도 이렇게 바꾸는 경우가 있냐요? 답변 부탁 드립니다.

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
생각하는자 댓글 1 좋아요 0 조회수 97

책과 관련하여 궁금한 게 있습니다.

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

기본편 강의 수강을 다 하고 복습 및 좀 더 깊은 이해를 위해 JPA 프로그래밍 책을 구매하였습니다 JPA 로드맵의 각 강의가 책의 어떤 부분과 매핑 되는지 알 수 있을까요? - 기본편 : 책 1~10장 - 활용1 : 책 11장 - 활용2, 스프링 데이터 JPA, Querydsl : ??? 기본편과 활용1 두 강의는 1~11장에 딱 매핑 되는 거 같은데 나머지 강의들은 뭔가 순서가 섞여있는 거 같아서요 "어떤 강의는 책의 어느 장을 봐야 한다" 등의 가이드가 혹시 따로 있을까요?

  • java
  • jpa
조태준 댓글 2 좋아요 0 조회수 95

.

해결됨

서버개발자 과제전형 완벽가이드 - 1편

.

  • java
  • spring
  • spring-boot
  • database
zzzzz 댓글 1 좋아요 0 조회수 183

LikeApiTest 에서 질문이 있습니다

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

LikeApiTest 에서 unlike 메서드에 lockType을 추가 하지 않아도 테스트가 깨지지 않은 이유가 궁금한데요.. unlike 메서드에 lockType을 추가하지 않고 api를 호출하면 해당 uri경로가 없지 않나요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
kolla 댓글 2 좋아요 0 조회수 117

도메인 설계에 대한 고민

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] erd 설계를 하다가 스스로 의문이 조금 들어서 질문드립니다. 현재 다음과 같은 앱을 구상하고 있습니다. AI 모델과 연동해서 추천 시스템을 생각 중인데 도메인 설계에 대해서 궁금한 부분이 생겨서 질문드립니다. package forpracticejunbao.junbaoprac_be.recommend.domain; import forpracticejunbao.junbaoprac_be.user.domain.User; import forpracticejunbao.junbaoprac_be.common.util.BaseEntity; import jakarta.persistence.*; import lombok.*; import java.util.ArrayList; import java.util.List; @Table(name = "recommend") @Entity @Getter @NoArgsConstructor @AllArgsConstructor @Builder public class Recommend extends BaseEntity { @Id @Column(name = "recommend_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false) private User user; @OneToMany(mappedBy = "recommend",cascade = CascadeType.ALL, orphanRemoval = true) @Builder.Default private List<RecommendClusterOption> recommendClusterOptions = new ArrayList<>(); @OneToMany(mappedBy = "recommend",cascade = CascadeType.ALL, orphanRemoval = true) @Builder.Default private List<RecommendValueOption> recommendValueOptions = new ArrayList<>(); @OneToMany(mappedBy = "recommend",cascade = CascadeType.ALL, orphanRemoval = true) @Builder.Default private List<RecommendResult> results = new ArrayList<>(); public void updateRecommendClusterOptions(List<RecommendClusterOption> recommendClusterOptions) { if (this.recommendClusterOptions != null) { this.recommendClusterOptions.clear(); this.recommendClusterOptions.addAll(recommendClusterOptions); } else { this.recommendClusterOptions = recommendClusterOptions; } } public void updateRecommendValueOptions(List<RecommendValueOption> recommendValueOptions) { if (this.recommendValueOptions != null) { this.recommendValueOptions.clear(); this.recommendValueOptions.addAll(recommendValueOptions); } else { this.recommendValueOptions = recommendValueOptions; } } } Recommend 클래스를 만들고, ClusterOption(클러스터 선택)과 ValueOption(계절, 요일 등등)을 일대다 다대일로 풀고자 했는데 이 두가지 엔티티가 크게 다르지 않은 것 같아서 그냥 하나로 합치는게 좋을지(그냥 enum으로만 구분) 아니면 의미적으로 좀 다르기 때문에 구분하는게 좋을지 궁금합니다.(클러스터 선택과 계절 선택은 하나만 선택 가능, 나머지는 하나 이상 선택 가능 조건이기에 클러스터와 계절을 도메인으로 묶을지도 살짝 고민이 되는 것 같습니다..) 결과를 RecommendResult로 보여주고자하는데(ai 추천 받은 top 5값에 대한 스팟 정보 제공 목적) 괜찮은 설계일지 궁금합니다. init.sql을 통해 클러스터, 계절, 요일 등 초기값들을 insert 해주고, spot 정보는 csv 파일로 부터 읽어오도록 구현하고 있는데(@PostConstruct, implementation 'com.opencsv:opencsv:5.5' 이용) 실제로 이런 설계에서 초기값을 주입하고 이후 로직 구현하는게 실무적으로 일반적인 방식인지 궁금합니다..! 긴 글 읽어주셔서 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
염경호 댓글 1 좋아요 0 조회수 91

return; 오류

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 메서드 반환 타입 강의 중 MethodReturn2 내용에서 똑같이 한 거 같은데 missing return value 오류 뜹니다. 메서드 [71~73] 강의를 참고하여 매소드에 각 출력문장마다 return age;를 넣어봤더니 정상실행이 됩니다. 질문 1. 강사님께서 하신 내용 그대로 따라한 거 같은데, 오류가 난 이유가 궁금합니다.(인텔리제이 강사님과 같은 버전으로 다운 안돼서 최신버전이긴 한데 이게 원인인지..) 질문 2. 위 첫번째 사진(강의와 같은 코딩)을 예시로 인텔리제이가 return; 을 return age;로 (1번 사진이 2번 사진처럼)알아서 인식하여 모든 메서드에 return; 으로만 작성해도 되는건지 궁금합니다. (현재 메서드 정의 강의 중 [메서드 2] 와 같이 반환타입 없는 경우만 return;으로 사용(생략도 가능)으로 이해한 상태.) ex) 매개변수와 반환타입 있을 경우 -> return 매개변수; 매개변수와 반환타입 없을 경우 -> return;(생략 가능)

  • java
  • 객체지향
김영훈 댓글 2 좋아요 0 조회수 99

new Condition 부분 질문

미해결

자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]

선생님 안녕하세요. 이해가 안되는 부분이 있습니다. 대기 메서드가 호출되면 락이 해제되고, => 대기 메서드가 호출 되면 락이 해제되는 것까지는 이해했습니다. 신호 메서드(notify)가 호출되어 대기 메서드에서 반환하기 전에 스레드는 락을 다시 획득한다. => 이부분이 잘 이해되지 않는데요. 대기 메서드가 호출되면서 락이 해제, 와 동시에 신호 메서드가 호출되어 대기가 다 끝나기전에 (wait) 락을 다시 획득한다는 말인가요? 즉, public wait () { 1. 락 해제 2. 신호 메서드 호출 (notify all) 3. Thread.currentThread -> 락 획득?? } 답변 부탁드립니다! 감사합니다.

  • java
  • 동시성
  • multithread
  • synchronisation
김규영 댓글 1 좋아요 0 조회수 111

빌드 시에 테스트 무한로딩

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 2-4. 프로젝트 설정하기 14:09에 강의 런칭 시점에는 테스트 모두 통과하도록 변경했습니다. 라고 적혀있는데 테스트에서 무한로딩이 걸리길래 ./gradlew build --info로 띄워 봤습니다. 그래서 보니깐 이 로직이 계속 반복되더라구요 그래서 찾아보니 여기 while문에 계속 걸리는 거 같은데 제가 잘못 세팅한 건가요? 강의 앞전에 bootRun해서 http://localhost:8080/api/chapter2/boards 까지 접속되는 거 확인했고 도커에서 backend-pass-portfolio 컨테이너에 Db-mysql 만 실행된 채로 build눌렀습니다.

  • java
  • spring
  • mysql
  • redis
  • 이력서
kongminoo 댓글 2 좋아요 0 조회수 245

테스트 반복하기 관련 질문입니다

미해결

더 자바, 애플리케이션을 테스트하는 다양한 방법

@DisplayName("파라미터 테스트") @ParameterizedTest(name = "{index} {displayName} message={0}") @ValueSource(ints = {10, 20, 40}) void parameterizedTest(Study study){ System.out.println(study.getLimit()); } Junit5 테스트 반복하기 2부에서 이 부분 질문드리려 합니다. 강의에서는 Study 타입으로 받아서 객체를 생성하고 getLimit으로 값 가져오는 것까지 묵시적으로 진행이 잘 되었습니다만, 제 환경에서는 ```java Error converting parameter at index 0: No built-in converter for source type java.lang.Integer and target type com.example.testpractice.Study org.junit.jupiter.api.extension.ParameterResolutionException: Error converting parameter at index 0: No built-in converter for source type java.lang.Integer and target type com.example.testpractice.Study at java.base/ java.util.stream .ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/ java.util.stream .ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/ java.util.stream .ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/ java.util.stream .ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/ java.util.stream .ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/ java.util.stream .ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/ java.util.stream .ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/ java.util.stream .ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ``` 와 같은 에러가 발생해서 Junit이나 JDK의 버전에 따라 스펙이 바뀌었는지 궁금해져서 질문드립니다

  • java
  • junit
  • mockito
  • testcontainers
  • jmeter
  • chaos-monkey
  • archunit
  • 소프트웨어-테스트
woo 댓글 1 좋아요 0 조회수 136

자료구조&알고리즘 강의

미해결

김영한의 실전 자바 - 중급 2편

코딩인터뷰용 자료구조&알고리즘 강의 만들어주시면 안되나요. 김영한님 한테 전달좀 해주세요ㅜㅜ

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
최연승 댓글 2 좋아요 1 조회수 189

h2 database jdbc 주소 변경

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

jdbc:h2:tcp://localhost/~/test는 다른 프로젝트에서 연습하고 있어서 다른 주소로 사용하려고하면 어떻게 하죠???

  • java
  • jpa
miiska 댓글 1 좋아요 0 조회수 185

xxxValue() 와 parseXxx()

해결됨

김영한의 실전 자바 - 중급 1편

[질문 내용] intValue()처럼 래퍼클래스를 기본형으로 반환하는 것과 parseInt()도 기본형으로 반환하는 것과 무슨 차이가 있는지 구체적으로 알려주세요.

  • java
  • 객체지향
soojinkimss 댓글 1 좋아요 0 조회수 76

findValue 메소드 리턴값

해결됨

김영한의 실전 자바 - 중급 1편

[질문 내용] 래퍼클래스 - 기본형의 한계 2 영상에서 findValue 메소드의 코드를 보면 if 조건문으로 리턴값이 myInteger라고 했습니다. 그런데 if 조건문 안에 myInteger.getValue()를 통해 value의 값을 뽑아서 그렇게 된다면 int타입의 값을 같은 int 타입인 target과 비교를 할 수가 있죠. 그런데 출력값을 확인해보면 -1, 0, 1 이 나오는 것을 확인할 수 가 있는데 리턴값도 똑같이 myInteger.getValue()로 나와야 되는거 아닌가요? return myInteger; 라고 했을 때 그냥 myInteger는 참조값이 반환될거라고 예상이 되는데 어떻게 출력이 -1, 0, 1이 나오는지 너무 궁금하네요.

  • java
  • 객체지향
soojinkimss 댓글 1 좋아요 0 조회수 95

hashIndex함수의 매개변수가 E가 아닌 이유

미해결

김영한의 실전 자바 - 중급 2편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 제네릭 Set 4 부분 강의에서 질문드리고 싶은 점이 있어 여쭤봅니다. private int hashIndex(Object value){ return Math. abs (value.hashCode())%capacity; } 이 부분에서 매개변수가 E value가 아닌 Object 로 들어오는 이유는 타입 이레이저 때문일까요 ?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
wonderwall09in 댓글 1 좋아요 0 조회수 112

모든 강의를 수강했지만 수강진도율이 98.98%에서 오르지 않습니다

미해결

김영한의 실전 자바 - 기본편

[질문 내용] 모든 강의를 수강했지만 수강진도율이 98.98%에서 오르지 않습니다. 수강증명서를 받고 싶지만 98.98%에서 오르지 않아 수강증을 못 받고 있습니다. 하지만 모든 강의 수강완료라고 떠 있습니다.

  • java
  • 객체지향
밥은묵고다니나 댓글 2 좋아요 0 조회수 162

명령형 프로그램밍은 언제 어디서 쓰이는지?

해결됨

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 궁금증이 생겨서 질문을 드립니다. 필터와 맵 활용 1,2를 보면서 선언적 및 명령형을 알수 있게 되었습니다. 근데 여기서 궁금한 점이 생깁니다. 선언적 프로그래밍이 검증이나, 맵핑 에 많이 쓰인다고 하였는데, "명령형 프로그램은 언제 어디서 쓰일까" 라는 생각을 하게 되었습니다. 가르쳐 주실 수 있으신가요? 답변 부탁 드립니다.

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
생각하는자 댓글 1 좋아요 0 조회수 157

hot-article Test 진행 중 좋아요 수 문의

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. [인기글 Producer&Consumer 테스트] 강의 6분 30초에서 좋아요 수는 userId는 유니크해야 좋아요 수가 중복없이 하나씩으로 집계된다고 말씀하셨습니다. 근데 비관적 락 방법 1과 2 그리고 낙관적 락 방법 모두 다 저희가 구현할 때, 따로 userId에 대한 중복 처리는 하지 않았는데 userId는 동일해도 상관 없지 않나 싶어서요. 비관적 락 방법 1 쿼리도 단순 where 조건은 articleId 뿐이라서 질문드려봅니다. 게시글 조회수는 redis로 key 생성할때, articleId와 userId를 활용해서 중복처리는 했는데, 게시글 좋아요수는 redis를 활용하지 않아서요!

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
parkhs 댓글 2 좋아요 0 조회수 141

인기 태그

인프런 TOP Writers

주간 인기글