inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

@Lock(OPTIMISTIC)이 필요한 이유

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요! 강의를 복습하던 중 의문이 생겼습니다. JPA에서 @Version을 사용하면 자동으로 낙관적락이 적용되는 걸로 알고 있는데 @Lock(OPTIMISTIC)이 필요한 이유가 궁금했습니다. 그래서 알아보니 @Version의 경우는 엔티티에 수정/삭제가 될 경우에만 version을 체크하기 때문에 읽기만 존재할 때도 다른 곳에서 변경이 됐는지 감지하기 위해서는 @Lock(OPTIMISTIC)을 사용하라고 하던데 이게 맞을가요? 혹시 맞다면 @Lock(OPTIMISTIC)을 사용해서 OptimisticLockException이 발생하는 예시코드 부탁드립니다. 아래와 같이 테스트코드를 작성해봤는데 테스트가 성공하지 않아서요 @Test void optimistic_lock_on_read_conflict() throws Exception { ExecutorService executor = Executors.newFixedThreadPool(2); Callable<Void> task1 = () -> { service.readWithOptimisticLock(productId); return null; }; Callable<Void> task2 = () -> { service.updatePrice(productId, 4000); return null; }; Future<Void> f1 = executor.submit(task1); Future<Void> f2 = executor.submit(task2); f2.get(); assertThatThrownBy(f1::get) // 읽기만 했던 쪽도 커밋 시점에서 충돌 감지 .hasCauseInstanceOf(OptimisticLockingFailureException.class); executor.shutdown(); } //service.readWithOptimisticLock(productId); @Transactional(readOnly = true) public void readWithOptimisticLock(Long id) { productRepository.findByIdWithOptimisticLock(id); try { Thread.sleep(2000); } catch (InterruptedException e) { throw new RuntimeException(e); } productRepository.flush(); } //service.updatePrice(productId, 4000); @Transactional public void updatePrice(Long id, int newPrice) { Product product = productRepository.findById(id).orElseThrow(); product.setPrice(newPrice); productRepository.flush(); // flush 시점에 @Version 체크됨 }

  • java
  • spring
  • 동시성
안_ 댓글 2 좋아요 0 조회수 123

동시성 관련 질문입니다

미해결

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

링크 위 링크 속 질문에서 영한쌤이 아래와 같은 답변을 해줬습니다 "서버가 한대만 있고, 자바(JVM)로 웹 애플리케이션을 단 하나만 구동하는 상황이면 자바 만으로 동시성 제어를 할 수 있습니다." MVC 1편 강의에서 배운 내용으로는 클라이언트 요청이 들어오면 was 내에 미리 만들어진 쓰레드들이 각 요청을 받고 서블릿 코드를 실행한다고 이해하고 있습니다 그렇다면 서버가 한 대여도 쓰레드는 이미 여러개가 만들어져 있으므로 동시에 여러 요청 처리가 가능하기에 자바만으로 동시성 제어가 안 되는거 아닌가요? 잘못 이해한 부분이 있다면 지적부탁드립니다

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
조태준 댓글 1 좋아요 0 조회수 90

메서드 시그니처

미해결

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

메서드 시그니쳐는 메서드 이름과 매개변수의 타입(순서 갯수 포함)이 들어가지만 반환타입은 포함되지 않는다고 알고 있습니다. 교재에 2. 람다 부분 p.8에서는 메서드 시그니처 + 반환타입으로 하던가 어떤 주석이 있는게 혼동을 피할수 있지 않을까 합니다. (문맥상 무슨의미인지 알겠으나 처음 배우시는 분들은 헷갈리실 수 있어서 좀 더 명확하게 하는게 낫지 않을까 합니다.) 오피셜 다큐먼트를 찾아보았습니다. https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.4.2 감사합니다.

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
swdevelop24 댓글 3 좋아요 0 조회수 132

21분 경 Old generation의 GC 설명 질문입니다.

해결됨

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

21분 경에 Old Generation을 설명하시면서 Full GC를 언급하셨는데, 해당 시점에는 Major GC가 발생해서 개체를 회수하게 되고 Major GC로 부터 살아남은 개체가 Metaspace 영역으로 옮겨지는 것 아닌가요?? 물론 Full GC를 통해서도 Old Generation의 개체가 회수되기는 하겠지만 해당 부분 설명에선 Major GC로 언급하는 것이 그림과 일치하지 않나해서 질문드립니다

  • java
  • 객체지향
  • jvm
  • data-structure
하규영 댓글 3 좋아요 0 조회수 132

섹션2 10,11,12 수업자료

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

섹션2 10,11,12강의 수업자료는 따로 없나요?

  • python
  • java
  • c
  • 정보처리기사
최민영 댓글 2 좋아요 0 조회수 60

프린터 예제 main메서드 throw InterruptedException 질문

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 섹션5의 프린터 예제 코드에서 교재에서는 main메서드에 throw InterruptedException을 지정했는데, 영상에서는 따로 지정을 하지 않아서요. 혹시 교재 코드에는 예외 던지는 코드가 들어간 이유 가 있을까요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
khcho1492 댓글 3 좋아요 0 조회수 85

윈도우 pc H2 실행 불가

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. H2 설치 및 삭제 여러차례 반복 및 구글링과 인프런에 등록된 F&Q 내용대로 해봐도 H2가 실행되지 않습니다. 저거 두 개 다 실행해도 작동이 안 됩니다.

  • java
  • spring
  • mvc
  • spring-boot
최요한 댓글 2 좋아요 0 조회수 213

CASCADE 질문드립니다.

미해결

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

안녕하세요. Order와 OrderItem엔티티에 있는 CASCADE에 대해 기본편을 복습해도 헷갈린 부분이 있어서 질문드립니다. em.persist(order)를 하면 CascadeType.ALL때문에 Delivery랑 OrderItem도 insert가 되는거 같은데, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; OrderItem에 있는 이 부분에 CASCADE를 적어준게 아니라 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); 왜 Order에 있는 여기에다가 CASCADE를 적어준것일까요? 어디에다 두어도 상관없을거 같은데, 특별한 규칙이 있는것인지 질문드립니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
오리쉐리 댓글 1 좋아요 0 조회수 88

OneToOne LAZY 관련 질문입니다.

미해결

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

User.java @OneToOne(mappedBy = "user", fetch = FetchType.LAZY, cascade = CascadeType.ALL) private MyRoommate myRoommate; MyRoommate.java @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id", unique = true, nullable = true) private User user; 이렇게 코드가 작성되어 있을 때 User를 조회하면 myRoommate가 LAZY가 아니라 EAGER로 동작해서 User만 조회하고 싶은데 MyRoommate도 같이 조회하고 있습니다. 혹시 그 이유와 해결방법을 알려주실 수 있으실까요?

  • java
  • jpa
AAA 댓글 2 좋아요 0 조회수 86

엔티티로 승인(결정)하는 기준

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 ~ 강의 복습 중 궁금한게 생겨 여쭤봅니다 ! 도메인 설계 시 지금처럼 회원 - 주문 - 상품을 메인 도메인으로 잡지 않고 회원이 회원가입, 주문 기능을 수행하는 주체이기에 회원 속에 Embedded로 주문 클래스를 값타입으로 잡아 회원 속에 넣고 회원 - 상품을 메인 도메인으로 잡을 수도 있겠다는 생각이 들었는데, 스프링부트 1 예제처럼 주문과 배송 클래스를 하나의 엔티티로 규정한 이유는 주문과 배송에서 식별자 pk 값이 필요하다고 생각해서 한 것일까요 ? 회원 도메인이 회원 가입 관련 역할만 담당하는 도메인이라서 책임 분리를 위해 주문과 배송 클래스를 다른 엔티티로 규정했는지 라는 의문도 들었는데, 엔티티로 잡아야하는 기준에 대해 여쭤보고 싶어 질문 남깁니다 !

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
wonderwall09in 댓글 1 좋아요 0 조회수 86

unique-constraint 설정 질문드립니다.

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

orm.xml unique-constraint 설정 부분 설명해주신 부분에서 인덱스로서 성능을 위해서, 데이터 중복저장 문제를 위해서 설정을하면 좋다고 말씀해주셨는데요 <index unique="true">설정의 차이점이 뭔지 잘모르겠습니다

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
yamyam_Y 댓글 2 좋아요 0 조회수 161

고급 2편에는 퀴즈가 없네요?

해결됨

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

퀴즈가 섹션별로 있어서 복습하고 다시 리마인드하기 좋던데 고급 2편에는 퀴즈가 없네요? 퀴즈가 없는 이유가 있는걸까요? 찾아보니 3편에도 없는데 다른 이유가 있을까요? 최근에 나온 DB 편에도 있어서요. 확인 부탁드립니다. 감사합니다.

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

데몬 스레드 예시 코드 실행 결과

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 데몬스레드를 true로 설정하여 작성한 코드 실행 결과가 main: main() start main: main() end Thread-0: run() start 이렇게 나왔는데, main함수가 종료되었는데 Thread-0이 실행되는 이유가 무엇인가요? "main: main() end" 이 문자열이 출력되었어도 자바 프로그램이 완전히 종료되는데는 시간이 조금 더 걸려서 그런건가요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
khcho1492 댓글 2 좋아요 0 조회수 98

오타 ? 이미지 순서 오류 제보 합니다.

해결됨

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

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

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
아무개김 댓글 1 좋아요 0 조회수 55

인덱스 설계

해결됨

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

1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 3-7 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 개인 프로젝트 중 여러 테이블이 where절 조건에 있을 때는 어떤식으로 인덱스를 설계해야 하나요?? 코드의 어떤 로직이 이해가 안 되시나요? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 select o1_0.order_id, o1_0.city, o1_0.street, o1_0.zipcode, o1_0.created_at, o1_0.deleted_at, o1_0.delivery_id, o1_0.member_id, o1_0.name, o1_0.no, o1_0.payment_id, o1_0.tid, o1_0.total_price, o1_0.updated_at from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id join delivery d1_0 on d1_0.id=o1_0.delivery_id join payment p1_0 on p1_0.payment_id=o1_0.payment_id where d1_0.delivery_status=? and o1_0.created_at between ? and ? and o1_0.total_price>=? order by o1_0.total_price limit ?, ? orders테이블과 delivery 테이블 where절에서 조건이 걸려있습니다. 이럴 경우는 어떻게 해야 하나요?? 쿼리 조건이 좀 이상할 수 있지만 공부하는 겸 여러 조건들을 시도하고 인덱스 설계하는 중입니다. ㅎㅎ 제가 시도해본 인덱스들은, orders 테이블에 create_at, total_price 복합 인덱스와 total_price, created_at 복합 인덱스이며 첫 번째 인덱스는 속도가 느려졌고 두번째 인덱스는 속도가 빨라졌습니다. 인덱스 X desc 결과 첫번째 인덱스 desc 결과 두번째 인덱스 desc 결과 이후 delivery_status로 인덱스를 만들었더니 속도가 더 빨라졌습니다. -> where 절에 여러개에 테이블이 조건으로 있더라도 각 테이블마다 인덱스를 생성해주면 될까요?? 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!

  • java
  • spring
  • mysql
  • redis
  • 이력서
모깅 댓글 2 좋아요 0 조회수 62

수강기한

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니요 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요. 덕분에 잘 듣고 있는 수강생입니다. 수강기한이 무제한인데 왜 저는 수강기한이 있을까요? 이벤트일때 구매해서 그런건가요? 답변 주시면 감사하겠습니다.

  • java
  • 객체지향
우냥 댓글 1 좋아요 0 조회수 151

@ResponseBody 로 도메인 레이어의 MemberRegisterRequest 를 그대로 사용하는 것에 대해서

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요. 토비님, 강의 잘 듣고 있습니다. 🙂 오늘은 강의 내용에서 좀 굉장히 의외인 부분을 발견해서 질문드립니다. 강의 #41. MemberApi와 웹 단위 테스트 에서 MemberRegisterRequest 가 domain 레이어에서 정의했던 클래스임에도, @RequestBody 파라미터 그대로 쓰셨는데, 이 부분이 많이 의외고 우려가 되었습니다. 저렇게 하면 MemberRegisterRequest 클래스의 코드 변경이 api 스펙 변경을 의미하는지가 코드리뷰 상에서 쉽게 보이지 않고 숨겨질 수 있다는 염려가 됩니다. 실제로 MemberRegisterRequest 에 필드를 추가해서 PR 을 올리면 코드리뷰어가 봤을 때 domain 레이어의 특정 모델에 필드가 추가됐을 뿐인 작은 변경으로 보일 것입니다. 그래서 그것이 어느어느 API 의 스펙에 영향을 주는지 알기가 너무 어려울 것 같습니다. 그래서 저는 API 의 스펙이 되는 Request, Response DTO 의 경우 반드시 클래스를 별도로 분리해야한다고 생각합니다. API 스펙은 server 마음대로 변경할 수 있는 서버만의 코드가 아니라 client 와의 계약 문서라고 보기 때문입니다. 그래서 Request/Response 같이 백앤드 엔지니어가 함부로 변경할 수 없는 영역과 맘대로 변경 가능한 영역을 분리해서, 어플리케이션과 도메인 로직의 변화가 API 스펙 변경으로 인한 장애 걱정으로 이어지지 않게 하는 것이 중요하다고 생각합니다. 이게 근데 단순히 클래스 분리만 해둬도 PR 에서 API 스펙이 어떻게 바뀌는지 쉽게 트래킹이 가능해지기 떄문에 이 부분 만큼은 번거롭더라도 실보다 득이 훨씬 많아서 꼭 분리해야한다고 생각해왔습니다. 이 부분에 대해서 어떻게 생각하시는지 궁금합니다.

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
woonge 댓글 2 좋아요 1 조회수 184

날짜와 시간 문제풀이가 막히는데

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 다른 강의들은 개념을 익히고나면 시간이 조금 걸리더라도 문제들이 모두 풀렸는데, 날짜와 시간부분은 API 사용법과 원리를 말씀해주셔서 그런지 문제를 딱 마주했을때 메서드들이 기억이 안나서 풀리지가 않네요... 다른 개발자들은 이런 문제를 풀 때 해당 메서드들을 옆에 띄워놓고 보면서 하나하나 사용하면서 풀이하나요..? 그렇다면 딱히 외우기보단 원리나 이런게 잘 안와닿는 부분이 있어서 복습할겸 기능들 한번더 훑어보고, 메서드 찾아보면서 문제 한번 풀어보려고요

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

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

record 메소드를 여러개 정의해서 사용하는데, 하나의 정의로 모든 경우에 쓰지 않는 이유가 메소드 양이 너무 많아져서 그런 건가요>? void record(boolean showDateTime, boolean showSpeed, int min) { System.out.println("녹화 시작"); if(showDateTime) { System.out.println("영상에 날짜 정보 표시"); } if(showSpeed) //위의 if 가 true 일때는 밑의 if가 실행이 안 되기 때문에 { System.out.println("영상에 속도 정보 표시"); } System.out.println("영상은" + min + "분 단위로 기록됩니다"); System.out.println("-----------------------------------------------------"); } void record() { record(true, true, 5);//메소드 호출 시 기본 값 설정 } 저런 식으로 나누지 않고 첫 번째 정의에 다 통합시키면 번거로울까요?

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

application.yml파일에 작성한 username과 password는 암호화 안해도 되나요?

미해결

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

안녕하세요, 보다가 궁금한점이 있어 질문드립니다. 혹시 서버에 배포할 때 실제 운영되는 서비스면 저 비밀번호를 암호화해서 저장해야하는건지 문득 궁금증이생겨서 여쭤봅니다.

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
  • 암호화
eunno 댓글 2 좋아요 0 조회수 160

인기 태그

인프런 TOP Writers

주간 인기글