inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

mysql 데드락 발생

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 강의 재밌게 잘 듣고 있는 취준생입니다! 테스트 실행 도중에 데드락이 발생하여 이에 관해 여쭤보고자 합니다. 구체적으로인 상황은 article_view_count 테이블에 존재하지 않는 레코드를 삽입 AND 어플리케이션 실행 후, 첫 테스트 코드 실행 을 만족하는 상황에서 DeadLock 에러가 발생합니다. 아마 Lock 획득실패로 인한 에러가 표출되는것으로 보이며 에러 로그는 하단에 첨부했습니다. 제가 생각한 원인은 다음과 같습니다. UPDATE문임에 따라 해당 레코드에 X-Lock이 걸리며, 100개의 요청마다 UPDATE쿼리가 날라가지만, 첫 INSERT 요청의 트랜잭션이 완료되지 않아 이후의 트랜잭션이 잠금 대기 롤백 첫 INSERT 요청이 오래 걸리는 이유를 알고 싶습니다. 양질의 강의 제공해주셔서 감사합니다! 2025-05-01T19:46:27.647+09:00 WARN 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1213, SQLState: 40001 2025-05-01T19:46:27.647+09:00 ERROR 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.h.engine.jdbc.spi.SqlExceptionHelper : Deadlock found when trying to get lock; try restarting transaction Hibernate: update article_view_count set view_count = ? where article_id = ? and view_count < ? 2025-05-01T19:46:27.653+09:00 ERROR 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.CannotAcquireLockException: could not execute statement [Deadlock found when trying to get lock; try restarting transaction] [insert into article_view_count (view_count,article_id) values (?,?)]; SQL [insert into article_view_count (view_count,article_id) values (?,?)]] with root cause com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
윤희종 댓글 2 좋아요 2 조회수 367

default의 역할

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 switch 문을 사용할 때 default를 사용하는데 이 부분을 사용하는 이유가 궁금합니다. 아마도 int coupon 변수를 선언하고 초기화를 안 하는데 초기화를 위한 목적으로 사용한 걸까요?

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

페이징 방식의 readAll에서 count 쿼리 변경?

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. [댓글 수 구현] 강의의 마지막에서 페이징 방식 readAll() 메소드에서 commentRepository.count(~)를 이번에 ArticleCommentCount를 활용하여 구현한 count(articleid)로 바꿔도 된다고 말씀하셨는데, 둘이 엄밀히 다르지 않나요?? 기존에 구현한 commentRepository.count(~)는 게시글별 댓글수를 조회하지만 limit가 있고, 이번에 구현한 count(articleId)를 limit 없이 그냥 게시글에 대한 댓글 수를 모두 조회하니 의미가 다르지 않나 싶어서 질문드려봅니다!

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

API 이용할때 @Transactional

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

API를 이용할때 Service를 거치지 않고 Repository를 사용하여 DB에 접근하게되는데 @Transactional를 Repository마다 붙이지 않는 이유를 알 수 있을까요? 어디서 Transactional을 걸어주는지 모르겠습니다.

  • java
  • spring
  • spring-boot
  • jpa
hahahl 댓글 3 좋아요 0 조회수 154

중첩 클래스 내 private 멤버도 부모 클래스에서 접근가능합니다.

미해결

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

중첩 클래스와 외부 클래스는 private 변수에 접근할 수 있도록 명시되어있다고합니다. 단 완전한 외부 클래스에서 중첩클래스를 사용하면 접근이 당연히 안됩니다.

  • java
  • 객체지향
트릴 댓글 1 좋아요 0 조회수 93

접근제이자 문제2번 ShoppingCart 클래스 내 calculateTotalPrice 메서드 중 Item 인스턴스 생성 이유가 궁금합니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 수강 중 궁금한 내용이 있어 질문드립니다. 강사님 코드를 보면 private int calculateTotalPrice() { int totalPrice = 0; for (int i = 0; i < itemCount; i++) { Item item = items[i]; totalPrice += item.getTotalPrice(); } return totalPrice; } 처럼 for 문 안에서 Item item = items[i]; 로 새로운 인스턴스를 만드셨는데 문제 풀이를 보기 전 아래와 같이 인스턴스 생성 없이 풀었더니 똑같은 결과가 나왔습니다. private int calculateTotalPrice(){ int totalPrice = 0; for (int i = 0; i < count; i++){ totalPrice += items[i].totalPrice(); } return totalPrice; } 혹시 강사님께서 새로운 생성하신 이유가 따로 있으실까요?

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

실습 권한 부탁드립니다..

미해결

개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기

들어가지를 못하구 있어요 ..ㅠ

  • java
  • 코딩-테스트
  • 알고리즘
  • data-structure
qowjdduswkd 댓글 1 좋아요 0 조회수 121

퀴즈 오류

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 퀴즈 기능은 데스크탑 환경에서만 이용 가능해요.다른 수업으로 이동해주세요. 라는 문구와 함께 퀴즈가 안보입니다 (데스크탑으로 강의 이용중인 상태입니다)

  • java
  • 객체지향
김현수 댓글 2 좋아요 0 조회수 123

LinkedList 배열 선언에 관해서

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) : 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) : 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) : 예 [질문 내용] LinkedList<Integer>[] buckets = new LinkedList[CAPACITY] 에서 제네릭을 이용한 배열 초기화를 한 이 부분에서 보통 제네릭으로 선언하면 LinkedList<Integer> buckets = new LinkedList<>() 이렇게 생성하는 것으로 아는데, 배열로 만들면 <>()은 생략되는건가요? 배열의 크기만 정하면 되는건가요?궁금해서 질문드립니다.

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

다시 정리하여 질문드립니다

미해결

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

질문1) 한 트랜잭션 안에서 최초 getReference() 를 통해 가져온 애는 쭉 프록시 객체 로, find() 를 통해 가져온 애는 쭉 일반 객체 로 영속성 컨텍스트에 남는다고 보면 되나요? (두 경우 모두 별도로 영속성 컨텍스트를 비우는 등의 작업을 하지 않는다고 가정) 질문2) 링크1 의 답변에 의하면 영속성 컨텍스트 안에 프록시 객체를 담는 Map 과 진짜 객체를 담는 1차 캐시 가 있는 것으로 이해했습니다. 그럼 find() ( getReference() )는 아래와 같은 흐름으로 동작하는 게 맞나요? 프록시를 담는 Map 을 먼저 조회 (1차 캐시를 먼저 조회) 있으면 프록시 객체를 가져오고 없으면 1차 캐시에서 조회 (있으면 진짜 객체 가져오고 없으면 프록시 담는 Map 에서 조회) 1차 캐시에 있으면 그대로 가져오고 없으면 DB에서 조회 ( Map 에 있으면 그대로 가져오고 없으면 프록시 객체 생성) 질문3) 링크2 의 답변을 통해 프록시 객체는 영속 대상이 아니라고 말씀해주셨습니다. 그렇다면 em.detach(프록시객체); 는 어떻게 이해하면 되나요? detach() 라는 것이 영속 상태인 것을 준영속 상태로 바꿔주는 것인데 프록시 객체는 애초에 영속 대상이 아니라고 말씀해주셔서 헷갈리네요 전에 올렸던 다른 질문들인데요 AI 답변만 달려서 그런데 한번 확인부탁드립니다 https://inf.run/EcpuQ https://inf.run/75Xi1

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

앱 재시작 후 회원가입

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

안녕하세요. 정말 도움을 많이 받고 있습니다. 감사합니다. 항상 앱을 재시작하고 같은 아이디(whiteship)로 회원가입을 하시는데 계속 성공하시는 것 같아서 질문드립니다. 혹시 앱을 재시작하면 회원 목록이 초기화되는 코드가 있으신가요? 제가 놓친 것 같지만 부득이하게 질문드립니다. 감사합니다.

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
jinw0909 댓글 1 좋아요 0 조회수 126

swich1에서 coupon이 변수 초기화가 안됐다는데

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 뭐가 문제일까요 똑같이 타이핑 한 것 같은데 변수 초기화 오류 뜨네요

  • java
  • 객체지향
안병욱 댓글 2 좋아요 0 조회수 100

mac에서 발생하는 문제

해결됨

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

"Cannot invoke 'jdk.internal.platform.CgroupInfo.getMountPoint()' because 'anyController' is null" 다음과 같은 에러가 발생합니다. Mac Docker Desktop 환경 OpenJDK 17 slim 이미지 사용 로컬에서 진행했을 때 gpt에게 물어봤을 때와 stackoverflow를 확인해봤습니다. 이 에러는 Java 17 이상에서, JVM이 리눅스 컨테이너(CGroup) 안에서 리소스(CPU, 메모리 등) 정보를 가져오려고 할 때, Mac OS 에서는 리눅스 CGroup 시스템 이 아예 존재하지 않아서 발생 그리고 문제를 해결하기 위한 방법으로 프로메테우스를 비활성화하라는 답변을 주었는데, 해결방안을 적용해봐도 해결할 수 없었습니다. 그래서 생각한게 리눅스 컨테이너 이미지인 slim 버전에 대해서 생각하게 되었고, Dockerfile의 이미를 교체했을 때 FROM eclipse-temurin:17-jdk 정상적으로 실습을 수행할 수 있었습니다. 답변보다는 mac에서 진행할 경우 다음과 같은 문제로 머리아플 분들을 위해 작성했습니다.

  • java
  • spring
  • 에러
  • docker
Anfield 댓글 2 좋아요 1 조회수 388

강의 자료 요청

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 할 때 보여주시는 화면은 문서로는 없나요?

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 252

빕문 챕터 9 매서드) 문제와 풀이 2 질문

미해결

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

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] import java.util.Scanner; public class Empty { public static void main(String[] args) { Scanner sc = new Scanner( System.in ); int balance = 0, depositAmount = 0, withdrawAmonut = 0; int chooose; while (true) { title(); chooose = sc.nextInt(); switch (chooose) { case 1: balance = deposit(balance, depositAmount, sc); break; case 2: balance = withdraw(balance, withdrawAmonut, sc); break; case 3: printNowBalance(balance); break; case 4: endSystem(); return; default: System.out.println("올바른 선택이 아닙니다. 다시 선택해주세요."); } } } public static void title() { System.out.println("-----------------------------------"); System.out.println("1.입금 | 2.출금 | 3.잔액 확인 | 4.종료"); System.out.println("-----------------------------------"); System.out.print("선택: "); } public static int deposit(int balance, int depositAmount, Scanner sc) { System.out.print("입금액을 입력하세요: "); depositAmount = sc.nextInt(); balance += depositAmount; System.out.println(depositAmount + "원을 입금하였습니다. 현재 잔액: " + balance); return balance; } public static int withdraw(int balance, int withdrawAmount, Scanner sc) { System.out.print("출금액을 입력하세요: "); withdrawAmount = sc.nextInt(); if (balance >= withdrawAmount) { balance -= withdrawAmount; System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " + balance + "원"); } else { System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다."); System.out.println("최종 잔액: " + balance + "원"); } return balance; } public static void printNowBalance(int balance) { System.out.println("현재 잔액 : " + balance + "원입니다"); } public static void endSystem() { System.out.println("시스템을 종료합니다."); } } 문제풀이 2를 최대한 메서드를 활용하기위해 이런식으로 해보고 김영한선생님 코드와 비교해봤는데 살짝 다르더라고요 비교해서 장담점이 어떤 것인지 실무에서는 어떤 스타일을 선호하는지 궁금합니다!

  • java
  • 객체지향
정의석 댓글 1 좋아요 0 조회수 119

CascadeType.ALL vs orphanRemoval=true

해결됨

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

둘의 차이를 테스트 해본 결과 아래와 같은 결과가 나왔습니다. CascadeType.REMOVE 의 경우는 findParent.getChildList().remove(0) 를 해도 자식이 삭제가 안 되고 orphanRemoval = true 는 삭제가 된다. (대신, CascadeType.PERSIST 가 있어야지만 됨) 여기서 의문인 점이 있습니다. orphanRemoval = true 의 경우 왜 CascadeType.PERSIST 가 있을 때만 그렇게 작동하나요?

  • java
  • jpa
조태준 댓글 1 좋아요 0 조회수 145

엔진 말고 추가 기능이 들어간다면 처리 방법

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 현재 자동차에 엔진만 사용되기 때문에 내부 클래스로 넣었는데, 만약 차량 실내 작업(계기판 켜지기, 엠비언트 라이트 점등) 클래스가 하나가 더 있다면 inner 클래스를 두개 만드는게 맞는걸까요? .. 아니면 엔진, 실내 작업 두개를 따로 독립적으로 만드는게 나은걸까요? 문의 드립니다~

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

스레드 대기 ReentrantLock 설명부분

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의에서 ReentrantLock의 대기큐에서 관리할때 BLOCKED가아닌 WAITING에서 락획득을 대기한다고했는데 찾아봤을때 lock.lock()실행시에는 락을 얻기위해서 BLOCKED 상태이고 condition.await()실행되어야 WAITING상태로 기다리는걸로 알고있는데 혹시 잘못된 강의설명인지 궁금합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
김태언 댓글 2 좋아요 0 조회수 189

HTTP 서버3 - 기능 추가는 url경로를 바꿀때마다 새로운 소켓과 연결하는건가요?

미해결

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

안녕하세요 코드를 쳐보다가 궁금증이 생겼습니다. 지난번 채팅프로그램은 클라이언트가 서버에 연결되면 연결된 클라이언트와 서버 소켓이 /exit할때까지 끊기지 않았는데요 이번 예시에서는 사용자가 /, /site1, /site2, /search?q=hello 이렇게 각각의 다른 url로 이동할때마다 서버와 클라이언트의 연결이 새로되고 소켓도 새로 생성되는건가요?

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

30강 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

repository를 user를 다룰때는 repository라는 패키지를 따로 만들어서 했는데, 지금 강의의 book에 관한 repositorty를 따로 만들지 않고 인터페이스만 객체와 같은 패키지에 만들어서 extends로 jpa를 받기 때문에 따로 만들 필요가 없어서 이렇게 만든거라고 이해 했는데 맞게 이해한걸까요? 즉, jpa를 익스텐즈한 인테페이스 덕분에 따로 sql문법을 작성하지 않았다는 말이 맞을까요?> 추가로 왜 객체가 있는 패키지에 인터페이스를 만드는 이유가 띠로 있나요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
성장하자 댓글 1 좋아요 0 조회수 101

인기 태그

인프런 TOP Writers

주간 인기글