inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

섹션7 사이드바 &대화페이지 연동 9분50초경 질문

해결됨

Next.js App router 기반 Chat GPT 만들기

여기도 하나 질문 드릴게 있는데 conversation.ts파일이 'use server'로인해 서버에서 실행되는 함수가 되는데 그럼에도 revalidatePath함수에 절대경로 ('localhost:3000/')이 아닌 루트경로를 넣어도 왜 상관이 없는건지 궁금합니다 ㅠㅠ

  • react
  • typescript
  • next.js
  • tailwindcss
  • zustand
  • chatgpt
이현종 댓글 1 좋아요 0 조회수 207

섹션7 사이드바 &대화페이지 연동 3분50초경 질문

해결됨

Next.js App router 기반 Chat GPT 만들기

클라이언트 컴포넌트안의 자식컴포넌트들은 자동으로 클라이언트 컴포넌트로 바뀌는데 사용할 자식 컴포넌트를 children으로 처리하면 클라이언트 컴포넌트로 바뀌지 않고 서버컴포넌트로 남기때문에 문제가 발생하지 않는건가요? 그렇다면 그게 가능한 메커니즘은 무엇인지 궁금합니다 ㅠㅠ

  • react
  • typescript
  • next.js
  • tailwindcss
  • zustand
  • chatgpt
이현종 댓글 1 좋아요 0 조회수 184

연관관계가 없는 조인

미해결

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

연관관계가 없는 조인에 대해 설명하신 부분에 대해 문의 드립니다. 보통 연관관계가 없다고 한다면 외래키로 연결되지 않는 두개의 테이블 이라고 생각할텐데 강의에서는 두 테이블 간 연관관계는 존재하고 연관관계의 컬럼으로 조인하는것이 아닌 , 다른 컬럼으로 조인하는것을 연관관계가 없는 조인이라고 설명하시는것 같아 혼동이 옵니다. 연관관계가 없는 조인 의 경우 두 테이블 간에 외래키가 없는경우에도 연관관계 없는 조인이 가능한건지 아니면 외래키는 있지만 외래키 조인이 아닌 다른 컬럼으로 조인할수 있는것을 연관관계가 없는 조인이라고 하시는건지 알려 주시면 감사하겠습니다.

  • java
  • jpa
jpmm77 댓글 1 좋아요 0 조회수 170

안녕하세요 코드 관련 질문이 있습니다!

미해결

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

최태현 강사님의 강의를 들으며 잘 배우고 있습니다! 강사님의 코드를 보고 이해하며 따라가다가도 코드를 잘못 작성해 오류가 뜨는 경우가 많아 강사님 코드 전체를 보고 클론코딩을 하고 싶어 글 올립니다! 혹시 전체 코드를 받을 수 있을까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
박지환 댓글 2 좋아요 0 조회수 114

checkbox onChange 적용 시 오류

미해결

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

checkbox를 클릭할 때 아래와 같은 오류가 발생합니다. 코드는 동일하게 작성한 것 같은데 원인이 무었일까요?

  • javascript
  • react
  • node.js
jnj45 댓글 3 좋아요 0 조회수 264

@PathVariable과 @RequestBody의 차이

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. @PatchMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMember(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest updateMemberRequest) { 수정 api는 위와 같은 주소를 이용합니다. 근데 사실 UpdateMemberRequest에 id라는 필드를 넣고 주소를 /api/v2/members 로 둬도 상관 없지 않나요? id를 PathVariable로 뺀 이유가 궁금합니다

  • java
  • spring
  • spring-boot
  • jpa
집이좋아 댓글 1 좋아요 0 조회수 135

탬플릿 엔진을 사용할때는 DTO를 사용하지 않는 이유

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 엔티티를 api로 넘겨주면 엔티티가 수정됐을때 api가 오염될 수 있는 문제가 있어서 응답에 DTO를 보내준다고 이해했습니다. 근데 이 문제는 탬플릿 엔진을 사용해 화면을 출력할때도 문제가 되지 않나요? 1편에서 타임리프에 값을 넣을때는 DTO를 이용하지 않은 이유가 궁금합니다. 혹시 컴파일 단계에서 오류가 나기 때문인가요?

  • java
  • spring
  • spring-boot
  • jpa
집이좋아 댓글 2 좋아요 0 조회수 119

11.3) Context 분리하기 강의에서 질문이에요.

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이 계층 구조 화면에서 TodoStateContext.Provider 컴포넌트와 TodoDispatchContext.Provider는 동등한 위치에 있는 것인가요? 아니면 화살표대로 TodoStateContext.Provider 컴포넌트의 자식 컴포넌트가 TodoDispatchContext.Provider 컴포넌트 인건가요?

  • javascript
  • react
  • node.js
안지훈 댓글 1 좋아요 0 조회수 209

강사님 스프링 시큐리티,oauth관련

미해결

실전! 스프링 데이터 JPA

강의는 계획이 없으실까요..어떻게 공부해야할지 모르겠어요...

  • java
  • spring
  • spring-boot
  • jpa
임다정 댓글 1 좋아요 0 조회수 151

HelloSpringApplication 실행

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 어느 순간 갑자기 hello-spring 프로젝트를 켰을때 실행버튼이 안눌리고 HelloSpringApplication에서도 메서드에 재생 버튼이 안뜹니다. 왜그러죠? edit configuartion 해야하나요

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

실무에서 자바가 제공하는 락을 사용하는 경우

미해결

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

자바에서 제공하는 동기화 도구들(synchronized, ReentrantLock 등)은 단일 JVM 내에서만 동기화를 보장하고, 여러 인스턴스가 있는 분산환경에서는 분산락 등 다른 기법을 사용해야 하는 것으로 알고있습니다. 현대의 운영 환경에서는 고가용성과 확장성을 위해 대부분 여러 인스턴스를 운영하기 때문에, 자바 자체의 동기화 기법을 사용하는 경우가 제한적일 것 같은데요. 실무에서 자바가 제공하는 동기화 도구들은 어떤 경우에 주로 활용되나요?

  • java
  • 동시성
  • multithread
  • synchronisation
우으어으 댓글 1 좋아요 1 조회수 264

뮤텍스나 세마포어는 busy waiting이 없는 게 맞을까요?

미해결

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

강의자료에서 세마포의 경우 P연산에서 첫째줄에 while(test_and_set(&lock)==1)을 수행하고 있는데요, 혹시 이부분은 busy waiting으로 생각하지 않는 건가요? 뮤텍스나 세마포어 모두 강의자료에서 위 코드를 처음 실행하는데 이부분도 busy waiting에서 while(); 문과 동일하지 않나 생각이 들어서요 혹시 제가 잘못 이해하고 있는 것이라면 알려주시면 감사하겠습니다!

  • java
  • 동시성
  • multithread
  • synchronisation
우으어으 댓글 1 좋아요 0 조회수 184

port 안 죽는 문제

미해결

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

>java -jar jpashop-0.0.1-SNAPSHOT.jar 하는 단계에서 계속 오류가 납니다... Web server failed to start. Port 8080 was already in use. 라고요... 8080포트가 사용중이라는데 cmd 관리자권한으로 실행해서 8080의 pid 는 찾아도 taskkill 이 안돼요 이렇게 뜨고 인터넷창에서 8080 접속하면 static 폴더 안에 있는 파일인 이 페이지가 떠요.... 왜이럴까요? 계속 해도 안되네요....

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
ㅇㄱㅇㄱ 댓글 2 좋아요 0 조회수 142

스레드 질문 있습니다

해결됨

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

안녕하십니까 영한님 영한님 덕분에 비전공자로서 백엔드 개발자의 꿈을 꾸고있는 사람중 1인입니다 다름이 아니라 영한님께서 여러 스레드를 실행하면 main 스레드의 경우 다른 스레드의 종료까지 기다리지 않아 join이라는 메서드로 적절하게 대처하는 것이 중요하다고 들었습니다. 하지만 아래 코드를 보면 main 스레드가 종료라는 문구가 항상 맨 마지막에 나와 헷갈려서 여쭈어봅니다. 이경우도 main이 먼저 종료되어 thread가 실행되지 않을 수 있는 건가요? public static void main(String[] args) { MyTask task = new MyTask(); Thread thread = new Thread(task,"work"); log("runFlag = " + task.runFlag); thread.start();; sleep(1000); log("runFlag를 false로 변경 시도"); task.runFlag = false; log("runFlag = " + task.runFlag); log("main 종료"); } static class MyTask implements Runnable { volatile boolean runFlag=true; @Override public void run() { log("task 시작"); while (runFlag) { } log("task 종료"); } } }

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
cowldnd123 댓글 1 좋아요 0 조회수 173

AOP @Component로 Bean 등록 처리할 경우에 관한 질문입니다.

미해결

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

https://www.inflearn.com/community/questions/48156/aop-timetraceaop-%EB%A5%BC-component-%EB%A1%9C-%EC%84%A0%EC%96%B8-vs-springconfig%EC%97%90-bean%EC%9C%BC%EB%A1%9C-%EB%93%B1%EB%A1%9D @Configuration 파일 내에서 @Bean 어노테이션을 사용하여 TimeTraceAop.java 파일을 빈으로 등록하는 경우, 참조 문제가 발생하는 부분에 대해 위 다른 분이 작성해주신 글을 통해 이해가 잘 갔는데요, 그럼 @Component 어노테이션을 활용하여 등록하는 경우에는 동일한 @Around 구문을 통해 명시된 @Around("execution(* hello.hellospring..*(..))")를 사용하는 경우 문제가 발생하지 않는 것인지 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
김지우 댓글 1 좋아요 0 조회수 72

insert버튼이 안나오는데 뭐가 문제일까요?

미해결

코딩 몰라도 OK! CursorAI로 시작하는 개발 생활 (웹/초급)

안녕하세요. 포모도로 앱만드는 첫번째 부터 막히네요 ㅠㅠ 일단 insert버튼이 생기지 않는데 뭐가 문제인걸까요? 이런식으로만 뜨네요 계속해봐도 ㅠㅠ PS C:\Users\your_\OneDrive\바탕 화면\다시> npx create-react-app . --template typescript && npm install -D tailwindcss postcss autoprefixer && npx tailwindcss init -pPS C:\Users\your_\OneDrive\바탕 화면\다시> npx create-react-app . --template typescript && npm install -D tailwindcss postcss autoprefixer && npx tailwindcss init -p 위치 줄:1 문자:46 + npx create-react-app . --template typescript && npm install -D tailwi .. . + ~~ '&&' 토큰은 이 버전에서 올바른 문 구분 기호가 아닙니다. 위치 줄:1 문자:97 + ... escript && npm install -D tailwindcss postcss autoprefixer && npx ta i ... + ~~ '&&' 토큰은 이 버전에서 올바른 문 구분 기호가 아닙니다. 위치 줄:1 문자:205 + ... ive\바탕 화면\다시> npx create-react-app . --template typescript && npm ins ... + ~~ '&&' 토큰은 이 버전에서 올바른 문 구분 기호가 아닙니다. 위치 줄:1 문자:256 + ... escript && npm install -D tailwindcss postcss autoprefixer && npx ta i ... + ~~ '&&' 토큰은 이 버전에서 올바른 문 구분 기호가 아닙니다. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRec ordException + FullyQualifiedErrorId : InvalidEndOfLine PS C:\Users\your_\OneDrive\바탕 화면\다시> 어떤 프로그램을 어디서 어떻게 깔아야 하는지부터, 어떻게 설정을 하는지 물론 정리를 해주셨지만 순서도 모르겠고 적용하는것도 어려운 거 같아요. 처음 강의부터 아예 같이 시작을 하고 설명을 들었으면, 오류가 안났을거같은데 수업관련 파일은 또 따로 봐서 공부를 해야하고, 알아서 다 설치하고 공부한다음에 강의를 들어야해서그런지 잘 이해가 안가는거같아요..ㅠㅠ 오류가 난게 제가 뭐 프로그램을 잘못설치해서그런건지, 아니면 설정을 뭔가 잘못해서 그런건지 잘모르겠네요 답변주시면 감사하겠습니다..

  • react
  • 웹-디자인
  • firebase
  • no-code
  • cursor
  • vercel
김소라 댓글 1 좋아요 0 조회수 317

단축키 작동 안됨

미해결

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

단축키 설정을 했는데 tdd 도 안되고 sout 도 안되는 이유는 무엇일까요? 참고로 build.gradle 파일은 아래와 같습니다 plugins { id 'java' id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.6' } group = 'jpabook' version = '0.0.1-SNAPSHOT' 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-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } testImplementation 'junit:junit:4.13.2' } tasks.withType(Test) { useJUnitPlatform() }

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
ㅇㄱㅇㄱ 댓글 1 좋아요 0 조회수 180

junit 안됨

미해결

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

https://drive.google.com/file/d/1M-NYH5etfTZPV5kMZzuiOWaBjA7bR3XR/view?usp=sharing 위는 제 프로젝트 파일입니다 강의 파일에 나와있는부분을 복붙해도 오류나고 testImplementation("junit:junit:4.13.2") 이렇게 해도 오류납니다. Assert 부터 안되는데 뭐가 잘못된걸까요?

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

SpringCloud Gateway 연동

미해결

Java 마이크로서비스(MSA) 프로젝트 실습

https://github.dev/ishrhrl39/3-3.Microservice 강의중 유레카 대쉬보드에는 아이템 서비스가 잘 표현되는데 왜 postman 요청은 404가 뜨는지 원인을 못찾겠네요..라우팅쪽 문제인것같은데..

  • java
  • spring
  • rest-api
  • spring-boot
  • msa
김효성 댓글 1 좋아요 0 조회수 159

컬렉션 조회 관련

해결됨

실전! 스프링 데이터 JPA

배운거를 적용하면서 쿼리 개선을 하고 있었는데, 혼자 해결해보려고 했으나 컬렉션 조회가 같이 섞이면서 이해가 잘 안 되는 것 같아 질문을 남기게 되었습니다. 게시글 목록을 불러올때 태그이름 리스트를 같이 필요하기 때문에 관련 memePostTags와 Tag까지 같이 조회를 해야하는 상황입니다. 테이블 관계가 MemePost 1 : N MemePostTag 1 : 1 Tag 이렇게 되어있을때 getMemePost5 메서드와 getMemePost6메서드 둘 중에 어느 것이 더 나은 방법인지, 아니면 더 나은 다른 방법이 있는지 궁금합니다. getMemePost5의 경우는 MemePostTagRepository에서 Tag까지 fetch join으로 불러오고, Map 객체에 postId를 key로 저장해서 태그 이름을 조회합니다. getMemePost6의 경우는 페이징으로 조회한 후 postIds를 in절로 postTag와 tag를 fetch join합니다. 컬렉션 조회의 경우 페이징을 안할 경우 fetch join으로, 페이징을 할 경우 batch size로 하라는 것까지는 이해가 되었는데, 이 경우에는 postTags를 batch size로 가져오고, 그에 다한 tag도 batchsize로 가져와 추가로 두번의 쿼리가 더 나가게 되어서 다른 방법을 고안해내다가 점점 미궁으로 빠지는 것 같아서 질문을 남기게 되었습니다 😂 public Slice<MemePostSummaryResponse> getMemePosts5(int page, int size, MemePostSort postSort, Long userId) { Pageable pageable = PageRequest.of(page, size, postSort.toSort()); Slice<MemePost> memePostSlice = memePostRepository.findSliceAll(pageable); List<Long> postIds = getPostIds(memePostSlice.getContent()); // MemePostTag와 Tag를 한번에 fetch join 하나의 쿼리로 하되, MemePostTagRepository에서 entitygraph를 통해 fetch join Map<Long, List<String>> postTagNames = memePostTagRepository.findTagsByMemePostIdIn(postIds) .stream() .collect(groupingBy(tag -> tag.getMemePost().getId(), mapping(tag -> tag.getTag().getName(), toList()))); //좋아요도 하나의 쿼리로 Set<Long> likedPostIds = new HashSet<>(memePostRepository.findLikedPostIds(postIds, user)); List<MemePostSummaryResponse> responses = memePostSlice.getContent().stream() .map(mp -> new MemePostSummaryResponse( mp, likedPostIds.contains(mp.getId()), postTagNames.getOrDefault(mp.getId(), Collections.emptyList()) )) .toList(); return new SliceImpl<>(responses, pageable, memePostSlice.hasNext()); } public Slice<MemePostSummaryResponse> getMemePosts6(int page, int size, MemePostSort postSort, Long userId) { Pageable pageable = PageRequest.of(page, size, postSort.toSort()); Slice<MemePost> memePostSlice = memePostRepository.findSliceAll(pageable); List<Long> postIds = getPostIds(memePostSlice.getContent()); // MemePostTag와 Tag를 한번에 fetch join memePostRepository.findAllWithTagsInPostIds(postIds); //좋아요도 하나의 쿼리로 Set<Long> likedPostIds = new HashSet<>(memePostRepository.findLikedPostIds(postIds, user)); List<MemePostSummaryResponse> responses = memePostSlice.getContent().stream() .map(mp -> new MemePostSummaryResponse( mp, likedPostIds.contains(mp.getId()), mp.getTagNames() )) .toList(); return new SliceImpl<>(responses, pageable, memePostSlice.hasNext()); } public interface MemePostRepository extends JpaRepository<MemePost, Long>, MemePostRepositoryCustom { @Query("SELECT mp FROM MemePost mp where mp.deletedAt IS NULL") Slice<MemePost> findSliceAll(Pageable pageable); @Query("SELECT mp.id FROM MemePost mp " + "JOIN MemePostLike mpl ON mpl.memePost = mp " + "WHERE mp.id IN :postIds AND mpl.user = :user") List<Long> findLikedPostIds(@Param("postIds") List<Long> postIds, @Param("user") User user); @Query("SELECT mp FROM MemePost mp " + "LEFT JOIN FETCH mp.memePostTags mpt " + "LEFT JOIN FETCH mpt.tag " + "WHERE mp.id In :postIds") List<MemePost> findAllWithTagsInPostIds(@Param("postIds") List<Long> postIds); } public interface MemePostTagRepository extends JpaRepository<MemePostTag, Long> { @EntityGraph(attributePaths = {"tag"}) List<MemePostTag> findAllByMemePostId(Long postId); @EntityGraph(attributePaths = {"tag"}) List<MemePostTag> findTagsByMemePostIdIn(List<Long> memePostIds); } public class MemePost { public List<String> getTagNames() { return memePostTags.stream() .map(mpt -> mpt.getTag().getName()) .toList(); } }

  • java
  • spring
  • spring-boot
  • jpa
pink102557 댓글 2 좋아요 0 조회수 90

인기 태그

인프런 TOP Writers

주간 인기글