inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

index.tsx 빌드 오류

해결됨

실무에 바로 적용하는 스토리북과 UI 테스트

안녕하세요 강의에 사용된 버전이나 pnpm을 사용하는 등 다른게 진행한 부분이 있습니다만 빌드할때 에러가 나는데 이해가 안되는 부분이 있어 질문드립니다. pakage.json "name": "@twosday/ui", "description": "Design System for twosday", "private": false, "publishConfig": { "access": "public" }, "files": [ "dist" ], "main": "dist/index.umd.js", "module": "dist/index.es.js", "types": "dist/index.d.ts", "exports": { ".": { "import": "./dist/index.es.js", "require": "./dist/index.umd.js", "types": "./dist/index.d.ts" }, "./styles": { "import": "./dist/styles/index.css" } }, "version": "0.0.1", "type": "module", "license": "MIT", import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin"; import svgr from "vite-plugin-svgr"; import path from "path"; import dts from "vite-plugin-dts"; import { viteStaticCopy } from "vite-plugin-static-copy"; // https://vitejs.dev/config/ export default defineConfig({ resolve: { alias: { "@": path.resolve(__dirname, "src"), }, }, plugins: [ react(), vanillaExtractPlugin({ identifiers: ({ hash }) => `css_${hash}`, }), svgr(), dts(), viteStaticCopy({ targets: [{ src: "src/index.css", dest: "" }], }), ], build: { lib: { name: "@twosday/ui", entry: path.resolve(__dirname, "src/index.tsx"), fileName: (format) => `index.${format}.js`, }, rollupOptions: { external: ["react", "react-dom"], output: { globals: { react: "React", "react-dom": "ReactDOM", }, }, }, sourcemap: true, emptyOutDir: true, }, }); grs04@BOOK-NN36R5QM7J MINGW64 ~/Desktop/sideproject/my-story-book (main) $ pnpm build > @twosday/ui@0.0.1 build C:\Users\grs04\Desktop\sideproject\my-story-book > tsc -b && vite build vite v5.3.5 building for production... src/index.tsx:1:38 - error TS6142: Module './component/LoginForm' was resolved to 'C:/Users/grs04/Desktop/sideproject/my-story-book/src/component/LoginForm.tsx', but '--jsx' is not set. 1 export { default as LoginForm } from "./component/LoginForm"; ~~~~~~~~~~~~~~~~~~~~~~~ src/index.tsx:2:35 - error TS6142: Module './component/Button' was resolved to 'C:/Users/grs04/Desktop/sideproject/my-story-book/src/component/Button.tsx', but '--jsx' is not set. 2 export { default as Button } from "./component/Button"; ~~~~~~~~~~~~~~~~~~~~ ✓ 15 modules transformed. [vite:dts] Start generate declaration files... dist/style.css 0.18 kB │ gzip: 0.15 kB dist/index.es.js 22.47 kB │ gzip: 6.77 kB │ map: 67.56 kB [vite:dts] Declaration files built in 589ms. [vite-plugin-static-copy] Copied 1 items. dist/style.css 0.18 kB │ gzip: 0.15 kB dist/index.umd.js 14.88 kB │ gzip: 5.90 kB │ map: 65.89 kB ✓ built in 1.12s vite.config.ts에서 build 에 작성한 부분을 지우고 기본설정으로 하면 잘 되는데 강의처럼 build부분을 작성을 하면 jsx flag를 설정하라고 나오면서 component 폴더에 d.ts 파일들이 생성이 안됩니다.

  • react
  • typescript
  • tailwind-css
  • storybook
  • ui-testing
징니 댓글 2 좋아요 0 조회수 406

remove 메소드 관련 질문입니다.

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 데이터를 삭제하는 기능에서 removeNode 를 null 값으로 처리하는 이유가 있을까요? removeNode 를 더 이상 사용되지 않는 것 같은데, 해당 노드의 item 과 next 를 null 값으로 처리해야만 GC 대상이 되는건가요? null 값으로 명시하지 않아도 될 것 같아 질문드립니다. // 추가 코드 public Object remove(int index) { Node removeNode = getNode(index); Object removedItem = removeNode.item; if (index == 0) { first = removeNode.next; } else { Node prev = getNode(index - 1); prev.next = removeNode.next; } removeNode.item = null; removeNode.next = null; size--; return removedItem; }

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
크크룩삥봉 댓글 1 좋아요 0 조회수 207

MemberRepository 인터페이스질문 ㅠㅠ 초보적인거라 죄송합니다..

미해결

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

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

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

프로젝트 적용하는데 어려움이 있어 질문드립니다.

미해결

백엔드 개발자 성능 개선 초석 다지기

안녕하세요. 현재 프로젝트를 디벨롭하려고 수강한 학생입니다. 현재 자바17버전을 사용하여서 프로젝트를 완료하였고 ngrinder에서 스크립트를 사용하기 위해 11버전으로 낮추었는데 프로젝트 코드의 많은 부분을 수정해야해서 17버전을 사용해서 적용할 수는 없을까요?

  • java
  • mysql
  • spring-boot
  • cache
  • index
woniwoni30 댓글 1 좋아요 0 조회수 324

원자적 연산을 확실히 알수 있는 방법이 있나요?

미해결

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

i++ 은 1줄이지만 , 2~3개의 cpu 연산이 필요하므로 원자적 연산이 아닙니다. cas 도 상식적으로는 2개 이상의 cpu 연산이 필요한데 cpu 차원에서 1개의 cpu 연산처럼 제공해주기에, 원자적 연산이라고 보는것 같습니다. 아래와 같은 경우 원자적연산인데, int count = 3; 그렇다면 아래의 코드는 원자적연산인가? 생각해보면, max 값을 가져오고 그걸 대입해야 하므로 2개 이상 cpu 연산이 필요한것 같은데 확신은 들지 않습니다. int count = max; -- 그래서... 어디까지가 원자적 연산인지 확실히 알수 있는 방법이나 이와 관련된 스펙문서 등이 있는지 궁금합니다.

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

next.js에서부터는 react query 필요없는지

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

next.js를 도입하면 react query가 필요없어서 더 이상 안쓰시는건가요?? fetch를 쓰던 axios를 쓰던 next.js에서 알아서 캐시를 남겨주는건가요?? 아니면 fetch를 써야만 알아서 해주나요??

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
오디 댓글 1 좋아요 0 조회수 341

클래스의 관심사는 하나인게 이상적인가요?

미해결

토비의 스프링 6 - 이해와 원리

안녕하세요. 하나의 클래스는 무조건 하나의 관심사만 가지는 것이 좋나요? 여러 가지의 관심사를 가지는 경우는 무조건 피해야 하나요? 수업에서 Client가 두 가지 관심사를 가지고 있다고 하셨고 (PaymentService 이용해서 비즈니스 로직 처리 + PaymentService의 내부 의존관계 설정), 후자의 책임은 오브젝트 팩토리로 옮겨버리셨는데요. '하나의 클래스는 하나의 관심사만 처리하도록 코드를 짜는게 좋다'라고 이해해도 괜찮을까요? 하나의 클래스가 여러 가지 관심사를 가져도 되는 경우도 있는지 궁금합니다.

  • java
  • spring
Hyuncheol Park 댓글 1 좋아요 0 조회수 369

key value 값 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] key value에서 key값은 제가 임의로 설정해서 넘길수있는건가요?? 예를들어 지금 key의 이름이 data라고 되어있는데 그냥 key라고 설정하고 resourses에 있는 hello 파일에 있는 data를 key로 바꿔서 설정해도 괜찮나요??

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

섹션1의 첫번째강의에서 WebStorm으로 프로젝트 진행할때의 질문

미해결

코드로 배우는 React 19 with 스프링부트 API서버

WebStorm으로 작업하신다고 하시고 프로젝트 처음에 불러오는 과정이 안나와서 짐작으로 frontend/ch02_start폴더를 만들고 cmd콘솔에서 npm install react-router-dom진행했거든요. 근데 강사님이 실습하는 폴더구조가 다르거든요? 이 과정이 생략되어있어서.. src폴더, public폴더가 자동으로 안생기는데 임의로 src폴더 만들고 그냥 하는건가요? 중간 과정 생략된걸 짐작으로 따라하려다보니 확신이 안들어서 여쭤봅니다

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
anffydqnghkf 댓글 3 좋아요 0 조회수 298

synchronized가 붙은 메소드를 정말 동시에 접근하는 경우

미해결

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

[질문 내용] 안녕하세요. 항상 좋은 강의 감사드리며 질문이 하나 있습니다. 멀티 코어라는 가정하에, synchronized가 붙은 메소드를 정말 동시에 호출하는 경우에는 어떤 스레드가 Lock을 가져가는지 궁금합니다. 정말 동시에 호출되면 두 스레드 모두 Lock을 획득할 수 있는지 조회할 때 획득할 수 있다고 조회가 될 것 같아서요.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
원종민 댓글 1 좋아요 5 조회수 385

BankAccountV5 lock.unlock() 작성 여부

미해결

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

BankAccountV5에서 lock.tryLoc()을 사용하는 경우, lock을 얻지 못하면 WAITING하지 않고 바로 return false;하므로 finally { lock.unlock(); }라는 코드가 필요 없을 것이라 생각했는데 이 코드가 꼭 필요한 코드인가요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
도토리 댓글 1 좋아요 0 조회수 289

member db 미생성 및 NullPointerException 문의

미해결

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

build.grade 파일 application.yml 파일 Member 파일 MemberRepository 파일 MemberRepositoryTest 파일 Assertions.assertThat 가 안되는부분은 QnA를 통해 해결하였습니다. h2 데이터베이스 접속은 되는상태이며 실행시 member 테이블이 생성되지 않습니다. 그리고 아래와 같은 NullPointerException 이 발생하여 문의드립니다.

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

문제 4번 관련 질문입니다.

미해결

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

public class ItemPriceTest { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("사과", 500); map.put("바나나", 500); map.put("망고", 1000); map.put("딸기", 1000); // 코드 작성 ArrayList<String> list = new ArrayList<>(); for (Map.Entry<String, Integer> entry : map.entrySet()) { if (entry.getValue().equals(1000)) { list.add(entry.getKey()); } } System.out.println(list); } } 여기서 entry.getValue() 의 비교를 == 으로 바꿔도 돌아가는데 상관없을까요? 객체의 경우 == 이냐, equals냐에 따라 동일성, 동등성 비교로 나뉘는거같은데 이와같이 값 비교 할 땐 둘 다 사용할 수 있는걸까요? == 을 사용해도 망고, 딸기가 출력되어 여쭤봅니다 [질문 내용] 여기에 질문 내용을 남겨주세요.

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

tailwind css 코드 스플릿팅이 가능한가요?

해결됨

실무에 바로 적용하는 스토리북과 UI 테스트

tailwind를 실제로 product에 적용해본 경험이 없어서 질문드립니다. 공통된 스타일은 global.css 로그인 페이지 스타일은 login.css 회원가입 페이지를 스타일을 signup.css로 @layout components를 나눠서 작성했을때 코드 스플릿팅이 되나요? 제대로 테스트를 못해봤지만 login.css 작성한 @layout components 클래스를 signup에서 쓰려면 써지는것 같더라구요 안썻을때 빌드시 코드 스플릿이 되는지 궁금합니다. jit 모드 라는게 있던데 프로젝트가 엄청 커졌을때 해당 기능으로 페이지 별로 어느정도 최적화가 되는지 궁금합니다.

  • react
  • typescript
  • tailwind-css
  • storybook
  • ui-testing
징니 댓글 1 좋아요 0 조회수 304

kotlin mapping error

해결됨

실전 jOOQ! Type Safe SQL with Java

안녕하세요! 강의 잘 들었습니다 ㅎㅎ 자바 기반으로 강의해주신 내용을 바탕으로 코틀린으로 전환하여 다시금 학습하고 있습니다. 그러던 도중 매핑 과정에서 에러가 발생하는 것을 발견하였는데 이와 관련하여 도움을 요청드리고자 합니다. fun findFilmWithActorList(page: Long, size: Long): List<FilmWithActor> { val FILM_ACTOR = JFilmActor.FILM_ACTOR val ACTOR = JActor.ACTOR return dslContext.select( FILM, FILM_ACTOR, ACTOR ) .from(FILM) .join(FILM_ACTOR).on(FILM.FILM_ID.eq(FILM_ACTOR.FILM_ID)) .join(ACTOR).on(ACTOR.ACTOR_ID.eq(FILM_ACTOR.ACTOR_ID)) .offset((page - 1) * size) .limit(size) .fetchInto(FilmWithActor::class.java) } 코틀린에서 위의 코드처럼 TABLE.fields() 메서드를 사용하지 않으면 정상적으로 동작하지만, fun findFilmWithActorList(page: Long, size: Long): List<FilmWithActor> { val FILM_ACTOR = JFilmActor.FILM_ACTOR val ACTOR = JActor.ACTOR return dslContext.select( DSL.row(*FILM.fields()), DSL.row(*FILM_ACTOR.fields()), DSL.row(*ACTOR.fields()) ) .from(FILM) .join(FILM_ACTOR).on(FILM.FILM_ID.eq(FILM_ACTOR.FILM_ID)) .join(ACTOR).on(ACTOR.ACTOR_ID.eq(FILM_ACTOR.ACTOR_ID)) .offset((page - 1) * size) .limit(size) .fetchInto(FilmWithActor::class.java) } 자바와 같이 TABLE.fields()를 사용하였을 때는 아래와 같은 에러가 발생하였습니다. Caused by: java.lang.NullPointerException: Parameter specified as non-null is null: method com.example.jooq.film.FilmWithActor.<init>, parameter film at com.example.jooq.film.FilmWithActor.<init>(FilmWithActor.kt) 매핑에 문제가 있는 것 같아 아래와 같이 코드를 수정하였더니 정상 동작하였습니다. fun findFilmWithActorList(page: Long, size: Long): List<FilmWithActor> { val FILM_ACTOR = JFilmActor.FILM_ACTOR val ACTOR = JActor.ACTOR return dslContext.select( *FILM.fields(), *FILM_ACTOR.fields(), *ACTOR.fields() ) .from(FILM) .join(FILM_ACTOR).on(FILM.FILM_ID.eq(FILM_ACTOR.FILM_ID)) .join(ACTOR).on(ACTOR.ACTOR_ID.eq(FILM_ACTOR.ACTOR_ID)) .offset((page - 1) * size) .limit(size) .fetch() .map { record -> FilmWithActor( film = record.into(FILM).into(Film::class.java), filmActor = record.into(FILM_ACTOR).into(FilmActor::class.java), actor = record.into(ACTOR).into(Actor::class.java) ) } } DTO 클래스는 아래와 같습니다. data class FilmWithActor( val film: Film, val filmActor: FilmActor, val actor: Actor, ) { val filmId: Long get() = this.film.filmId!! val title: String get() = this.film.title val actorFullName: String get() = "${this.actor.firstName} ${this.actor.lastName}" } Film, FilmActor, Actor는 Flyway 기반으로 생성된 pojo 클래스들입니다. implicitPathJoin, explicitPathJoin 시에도 동일한 문제가 발생하여 문의드리고자 합니다 ㅜ 위의 방법처럼 매핑할 수 있지만, 가독성이 떨어지는 것 같아 혹시 다른 방법이 있는지 궁금합니다. 또한 혹시 제가 놓친 부분이 있다면 알려주시면 감사합니다!

  • java
  • sql
  • spring-boot
  • jooq
  • dsl
clllickme 댓글 4 좋아요 0 조회수 555

localhost:8080이 다른 프로젝트에서 사용 중인 것같아요

미해결

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

안녕하세요~ localhost:8080 이 사용중인 것 같습니다. 처음 테스트로 실행시키고 초기화까지 된 것 같은데 해당 localhost 로 들어가면 로그인 화면이 뜨네요... 일전에 다른 강의 보다가 다른 프로젝트를 실행시켜서 그런 것 같네요 어떻게 해결해야 할까요?

  • java
  • spring
  • mvc
  • spring-boot
문희재 댓글 2 좋아요 0 조회수 311

h2 DB 연결시 Table not found

미해결

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

[질문 내용] 섹션 6 JDBC 연결 과정 h2 DB 연결 과정에서 h2 환경 구축, memebr 테이블 생성까지 에러없이 잘 됐구요. h2 콘솔에서도 테이블 확인 해 보면 잘 보입니다. 근데 이제 강사님이 알려주신 방법대로 DB를 MemoryMemberRepository -> JdbcMemberRepository로 변경하는 과정에서 JdbcMemberRepository 클래스 파일과 SpringConfig 파일 코드 복붙 해왔는데 실행시키면 회원가입과 회원 목록 조회시 자꾸 member라는 테이블을 못찾는 오류가 뜹니다...ㅠ 왜 그런걸까요ㅠㅠ

  • java
  • spring
  • mvc
  • spring-boot
오채은 댓글 1 좋아요 0 조회수 407

h2.bat해도 실행이 안돼요 ..

미해결

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

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

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

테스트시 DB 사용

미해결

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

안녕하세요, 강의를 듣고 있는 학생입니다. 강사님께서 강의 중에 언급해주신 거 같은데 제가 이해를 잘 못해서 다시 질문드립니다. 통합 테스트 시 이전 강의에서 쌓아 둔 데이터를 DELETE query를 통해서 없애고 진행을 했는데, 그렇다면 테스트 코드와 실제 코드가 같은 DB를 공유하고 있다고 봐도 되나요? 만약 같은 DB를 공유하게 된다면, 원래 있던 데이터를 항상 날려야 되는데 문제가 생긴다고 생각이 들어 제가 잘못 이해한 부분을 찾고 싶어 질문을 드렸습니다. 글 읽어주셔서 감사합니다.

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

31강 유저 정보 가져오기에서 질문 있습니다

미해결

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

유저 정보를 가져올 때 orElseThrow를 사용하면 userRepository에 입력되어 있는 findByName이 Optional로 선언되어야 한다고 문구가 뜹니다! 근데 Optional<User>로 바꾸면 UserServiceV2에 @Transactional public void deleteUser(String name){ User user = userRepository.findByName(name); if(user == null){ throw new IllegalArgumentException(); } userRepository.delete(user); } user의 타입을 User로 할 수 없다고 떠서 Optional<User>로 바꾸면 userRepository.delete(user)가 파라미터가 적절하지 않다고 뜹니다ㅜㅜ 일단, 구현은 하고 싶어서 userRepository에 findByName은 User 타입으로 정의하고 // 4. 유저 정보를 가져온다 if(userRepository.findByName(request.getUserName()) == null){ throw new IllegalArgumentException(); } else{ User user = userRepository.findByName(request.getUserName()); // 5. 유저 정보와 책 정보를 기반으로 UserLoanHistory를 저장 userLoanHistoryRepository.save(new UserLoanHistory(user.getId(),book.getName())); } bookService를 이렇게 바꾸었는데 상관없을까요? 어떤식으로 해결하는게 맞을까요...

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
bs goose 댓글 2 좋아요 1 조회수 174

인기 태그

인프런 TOP Writers

주간 인기글