inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

윈도우 빌드

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] JDK은 21로 Gradle은 8.5로 맞췄는데요 gradlew build하면 BUILD FAILED가 뜨지만 localhost:8080 은 잘작동합니다. 파일경로에는 한글포함안되어있고 gradlew clean build해도 동일한 오류가 발생합니다. 해당 오류가 왜 발생하는지 그냥 진행해도 되는지 궁금합니다.

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

로드맵에대한 질문입니다.

미해결

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

안녕하세요 본강의의 로드맵에관해서 질문있습니 try catch에 관해서 좀 더 공부해보고싶은데 현재 로드맵과 수강내용을 확인해보았는 try / catch 구문에 대한 내용을 다루고있는 섹션은 없는것으로 보입니다. 강의 과정에 해당부분도 어느정도 다루는지 궁굼합니다.

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

Comparator질문입니다

해결됨

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

public class SortMain2 { public static void main(String[] args) { Integer[] arr = {3,2,1}; System.out.println(Arrays.toString(arr)); System.out.println("Comparator 비교"); Arrays.sort(arr,new AscComparator()); System.out.println("AscComparator:"+Arrays.toString(arr)); } } public class AscComparator implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { if(o1 > o2){ return 1; } else if (o1 == o2) { return 0; }else return -1; } } SortMain2함수에서 Arrays.sort(arr,new AscComparator()); 부분에서 new AscComapator()로 객체만 생성했는데 어떻게 compare함수까지 호출되서 비교를 할수있는거죠?이해가안갑니다...함수 호출을안해는데..

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
임다정 댓글 2 좋아요 1 조회수 198

retrofit을 사용한 통신 시 content type 관련하여 문의

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

안녕하세요. 강의에 없는 내용이지만, 검색을 며칠 째 하고 있으나 해결방법을 못 찾아서 이렇게 문의드립니다. 양해부탁드립니다.. flutter에서 retrofit을 사용하여 multipartforamdata 형식의 api를 호출할 때, application/json으로 보내야 하는 객체는 content type을 어떻게 지정해주어야 하는 걸까요? springBoot와 flutter로 개발 진행 중이고, api와 flutter는 각각 아래와 같이 작성하였습니다. // api @PostMapping(path = "", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public void temp(@RequestPart TempReq, @RequestPart List<MultipartFile> files) { // 생략 } // flutter에서 api 호출부 @POST('') @MultiPart() Future<void> temp(@Part() TempReq req, @Part() List<MultipartFile> files); flutter에서 api 호출 시 content type 'application/octet-stream' not supported 에러가 발생합니다. postman이나 swagger로 테스트 했을 땐 정상적으로 동작하는 걸 보면 api 문제는 아닌듯합니다. flutter에서 호출할 때도 files는 잘 들어오는데, TempReq 객체를 받을 때가 문제인 듯합니다. @Part 안에 content type을 application/json으로 지정해보았는데도 동일한 에러가 발생합니다.

  • flutter
  • 클론코딩
댓글 1 좋아요 0 조회수 163

강의영상 5분 7초 EAGER 패치 전략

미해결

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

비슷한 게시글을 봐도 이해가 잘 가지 않아서 재차 질문 드립니다 제가 이해하는 상황이 맞는지 고견 부탁드립니다 1. fetch = EAGER 쿼리가 두 번 실행 이것이 프록시 강의영상에서 말씀하시는 (N+1) 문제인지 궁금합니다 첫 번째 쿼리는 em.flush(), em.clear() 실행되면 영속성 컨텍스트가 비워지고 이후 jpql 쿼리가 실행되면서 EAGER 패치 전략에 따라 Team도 함께 조회가 됩니다. 두 번째 쿼리는 영속성 컨텍스트가 비워졌고 EAGER 패치 전략으로 조회되어야 합니다. 실제 엔티티로 조회되어야 하는걸로 알고있습니다 하지만 특정 시점에서 Team이 프록시로 로드 되었고 이후 프록시가 초기화되면서 다시 데이터베이스에서 조회하면서 발생한 쿼리로 생각이 듭니다

  • java
  • jpa
뚜방 댓글 1 좋아요 0 조회수 120

Align 과 Center 위젯 차이

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

비디오 플레이어 제작하실때 비디오 위에 올라올 아이콘 정렬을 위해서 Align() 위젯을 사용하셨는데 Center() 위젯도 똑같이 영상의 가운데로 정렬이 되던데 혹시 Align() 위젯을 사용하신 이유가 따로 있을까요?

  • flutter
  • 클론코딩
kut7728 댓글 1 좋아요 1 조회수 132

BeanFactory 의존관계

미해결

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

@Configuration public class ObjectFactory { @Bean public PaymentService paymentService () { return new PaymentService(exRateProvider()); } @Bean public ExRateProvider exRateProvider() { return new WebApiExRateProvider(); } } 여기서 Bean 어노테이션을 붙이면 paymentService가 호출되지 않아도 paymentService와 exRateProvider의 의존관계가 설정이 되는게 맞나요?? 만약 exRateProvider에만 Bean 어노테이션을 붙이지 않으면 어떻게 되는 건가요??

  • java
  • spring
hdh8990 댓글 1 좋아요 0 조회수 234

메서드 영역에 있는 상수풀이

미해결

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

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

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

개념이랑 원리는 이해하고

미해결

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

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

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
yuntyu01 댓글 1 좋아요 -3 조회수 259

[섹션11] 웹사이트 웹뷰에 띄우기 질문입니다.

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

안녕하세요 🙂 프로그래밍 초보이지만, 플러터 강의 덕분에 즐겁게 공부하고 있습니다. 아래 코드에서, https://blog.codefactory.ai 로 Uri를 연결했더니, 코드팩토리님 블로그로 잘 연결되는데요, final homeUrl = Uri.parse('https://blog.codefactory.ai'); class HomeScreen extends StatelessWidget { WebViewController controller = WebViewController()..loadRequest(homeUrl); HomeScreen({super.key}); 제가 처음에 오타로 https를 http로 입력했더니, 오류가 발생하더라구요. 혹시 원인을 설명해주실 수 있나요?ㅜㅜ

  • flutter
  • 클론코딩
하은 댓글 1 좋아요 0 조회수 165

네임드락 부모에(facade) 트랜잭션이 없을때

미해결

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

자식 service 메서드에 Propagation.REQUIRES_NEW속성은 그럼 필요 없는건가요? public class NamedLockStockFacade { private final LockRepository lockRepository; private final StockService stockService; public void decrease(Long id, Long quantity) { try { lockRepository.getLock(id.toString()); stockService.decrease(id, quantity); } finally { lockRepository.releaseLock(id.toString()); } } } ----------- @Transactional public void decrease(Long id, Long quantity) { Stock stock = stockRepository.findById(id).orElseThrow(); stock.decrease(quantity); stockRepository.saveAndFlush(stock); } 이렇게 자식에만 트랜잭션이 걸려있으면, 커밋이 다되고 lock 풀리는거아니에요? 굳이 부모에 트랜잭션 붙이고 자식트랜잭션에서 NEW하는 이유가 있나요?

  • java
  • spring
  • 동시성
donkey 댓글 1 좋아요 0 조회수 180

Notion 자료 오타를 발견했습니다!

해결됨

Flutter 앱 개발 실전

이해가 잘 되게 설명해주시고, 강의 자료도 너무 잘 정리해주셔서 강의 너무 잘 듣고 있습니다 😃 강의 자료에서 오타를 찾은 것 같아 전달드립니다~ Dart -> 04.JSON & 직렬화 -> 직렬화 & 역직렬화 하단 직렬화, 역직렬화 코드에 "철수" 가 "철수 로 큰따옴표 하나가 입력안된 것 같아요! 강의 제공해주셔서 너무 감사합니다!

  • flutter
  • serialization
  • deserialization
유승주 댓글 1 좋아요 1 조회수 125

unlock()을 호출 했을 때

미해결

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

ReentrantLock에서 lock.unlock()을 호출하면, 대기 중인 스레드들이 락을 획득하려고 서로 경쟁하게 됩니다. 제가 이해한 바로는, unlock이 호출된 후 스레드들중 락을 획득한 한개의 스레드는 RUNNABLE 상태로 전환되고, 나머지 락을 획득하지 못한 스레드들은 다시 WAITING 상태로 돌아가는 것이라고 알고 있습니다. 이 과정에서 스레드들이 경쟁하는 순간의 상태가 정확히 어떻게 되는지 궁금합니다. 경쟁순간에는 락을 획득하려는 스레드들 모두 RUNNABLE 상태인가요?

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

pushNamedAndRemoveUntil 의 작동원리와 오류나는 이유가 궁금합니다.

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

안녕하세요! 강의 잘 듣고 있습니다. Q1. pushNamedAndRemoveUntil 의 작동순서? 원리가 제가 생각한게 맞는지 확신이 들지 않아서 여쭤봅니다. 명명된 라우트가 푸시된다. 라우트 스택 중 가장 최근부터 순차적으로 조건문에 따라 false가 반환되는 라우트는 스택에서 삭제된다. 따라서 push됐던 라우트에서 pop을 하게 되면 라우트 스택에 남아있던 라우트로 이동한다. 이게 맞나요? Q2. 라우트 스택의 가장 최근부터 순차적으로 삭제되는게 맞다면 RemoveUntil 이라는 이름을 보고 삭제되지 않는 페이지가 있다면 거기서 끝나는건가? 라는 생각에 HomeScreen이 아닌 route_one_screen이 삭제되지 않는 조건문을 작성했습니다. route.settings.name == '/'; 로 하셨던 것을 route.settings.name == '/one' 으로 바꿔봤는데 push됐던 route_three_screen이 pop되면 route_one_screen이 나올줄 알았는데 그냥 검은 화면만 나옵니다. 무엇이 문제였던 걸까요..? 그리고 home_screen도 삭제가 되었을까요? import 'package:flutter/material.dart'; import 'package:navigation/layout/default_layout.dart'; import 'package:navigation/screen/route_three_screen.dart'; class RouteTwoScreen extends StatelessWidget { const RouteTwoScreen({super.key}); @override Widget build(BuildContext context) { final arguments = ModalRoute.of(context)?.settings.arguments; return DefaultLayout( title: 'RouteTwoScreen', children: [ Text( arguments.toString(), textAlign: TextAlign.center, ), OutlinedButton( onPressed: () { Navigator.of(context).pop(); }, child: Text('Pop'), ), OutlinedButton( onPressed: () { Navigator.of(context).pushNamed( '/three', arguments: 111111, ); }, child: Text('Push Route Three'), ), OutlinedButton( onPressed: () { /// [HomeScreen, RouteOneScreen, RouteTwoScreen] /// push - [HomeScreen, RouteOneScreen, RouteTwoScreen, RouteThreeScreen] /// pushR - [HomeScreen, RouteOneScreen, RouteThreeScreen] Navigator.of(context).pushReplacement( MaterialPageRoute( builder: (BuildContext context) { return RouteThreeScreen(); }, settings: RouteSettings( arguments: 999, ), ), ); }, child: Text('Push Replacement'), ), OutlinedButton( onPressed: () { Navigator.of(context).pushReplacementNamed( '/three', arguments: 999, ); }, child: Text('Push Replacement Named'), ), OutlinedButton( onPressed: () { Navigator.of(context).pushNamedAndRemoveUntil( '/three', (route){ /// 만약에 삭제 할거면 (Route Stack) false 반환 /// 만약에 삭제를 안할거면 true 반환 return route.settings.name == '/one'; }, arguments: 999, ); }, child: Text('Push Named And Remove Until'), ), ], ); } }

  • flutter
  • 클론코딩
kut7728 댓글 1 좋아요 0 조회수 139

강의 내용 중복

해결됨

[플러터플로우] 실전! 앱 출시를 위한 끝장 노하우!

아래 두 강의 내용이 동일합니다. [인앱결제] 10. 플러터플로우-RevenueCat 연결 및 구현 [인앱결제] 11. iOS에서 인앱결제 테스트하기

  • flutter
  • no-code
  • supabase
  • flutterflow
SUNGSOON CHOI 댓글 1 좋아요 0 조회수 170

intellij JVM설정 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 인텔리제이의 설정화면 두곳이 있습니다. 하나는 settings > build, Execution, Deployment > build Tools > Gradle > 맨 하단 Gradle JVM 다른 하나는 project Structure > project settings > project > sdk 위 두 곳은 어떤 차이점이 있는 것인지 알고싶습니다. 둘다 JDK경로를 지정하는 것처럼 보이는데 Dependency requires at least JVM runtime version 17 에러를 마주했을 때 후자에서 해결을 해보려고 해도 해결이 안됐었습니다.

  • java
  • spring
  • mvc
  • spring-boot
창신동 장첸 댓글 1 좋아요 0 조회수 458

build.gradle에 queryDSL 설정이 잘되지 않습니다.

미해결

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

plugins { id 'java' id 'org.springframework.boot' version '3.3.1' id 'io.spring.dependency-management' version '1.1.5' } 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' implementation 'junit:junit:4.13.1' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.1' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5' implementation 'javax.persistence:javax.persistence-api:2.2' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' //test 롬복 testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() jvmArgs '-Xshare:off' // JVM 아규먼트 설정 } clean { delete file('src/main/generated') } 이렇게 설정해둔 상태인데 gradle을 다시로드했음에도 other에 compilequerydsl 설정이 생기지 않는 상황이고, 다른방식으로 설정도 했었는데, 그때는 또 우측 gradle의 other에 compileQeurydsl 설정이 보여서 설정을 진행했고 프로젝트 generated 디렉토리가 생성되긴 했지만, generated 디렉토리 하위 파일들이 보이지 않습니다. 어떻게 해결할 수 있을까요? 커뮤니티의 내용들을 다 참고했지만 되지 않네요..

  • java
  • spring
  • spring-boot
  • jpa
  • querydsl
lib32 댓글 2 좋아요 1 조회수 985

[기본형과 참조형 문제풀이] 코드에 관한 질문이 있습니다.

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요! 항상 선생님께서 진행하시는 문제 풀이를 수강한 이후에, 혼자 좀 더 나은 방식으로 만들 수는 없을까 고민을 하는데요, Method를 배우고 난 이후로, 코드를 대부분 Method로 넘겨서 작성하다 보니 '기능을 전부 Method로 넘겨서 작성하는 것이 진짜 잘 작성한 코드가 맞을까?' 하는 의문이 들었습니다. 아래는 마지막 문제를 제가 코딩한 내용인데요, 두 가지 질문이 있습니다. 실무적인 관점과 비교해서 아래의 코드처럼 작성하는 방식(모든 기능을 Method에 집약한 방식)이 괜찮은 방식인가요? 코드의 개선점이 있다면 어떤 점을 개선하면 좋을까요? 항상 좋은 강의 해주셔서 감사합니다! package ref.ex; import java.util.Scanner; public class ProductOrderMain2 { public static void main(String[] args) { int num = orderCount(); ProductOrder[] orders = new ProductOrder[num]; createOrder(orders); orderPrint(orders); } static int orderCount() { Scanner scan = new Scanner(System.in); System.out.println("-----------------------------------"); System.out.println(" 상품 등록 시스템 "); System.out.println("-----------------------------------"); System.out.print("입력할 주문의 개수를 입력하세요: "); int num = scan.nextInt(); System.out.println(); return num; } static void createOrder(ProductOrder[] orders) { Scanner scan = new Scanner(System.in); for(int i = 0; i < orders.length; i++) { orders[i] = new ProductOrder(); System.out.println((i+1) + "번째 주문 정보를 입력하세요"); System.out.print("상품명: "); orders[i].productName = scan.nextLine(); System.out.print("가격: "); orders[i].price = scan.nextInt(); System.out.print("수량: "); orders[i].quantity = scan.nextInt(); scan.nextLine(); System.out.println(); } } static void orderPrint(ProductOrder[] orders) { int total = 0; for(ProductOrder P : orders) { System.out.println("상품명: " + P.productName + ", 가격: " + P.price + ", 수량: " + P.quantity); total += (P.price * P.quantity); } System.out.println("총 결제금액: " + total); } }

  • java
  • 객체지향
jonghyeok097 댓글 1 좋아요 1 조회수 164

Section 10. 동전교환 반례

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

3 2 3 5 1 테스트케이스를 위와 같이 입력할 경우 정답 코드대로 하면 Intger.MAX_VALUE인 2147483647이 답으로 나올 것 같아서요. 이렇게 추가코드를 넣어야 하는것 아닌지 궁금합니다. import java.util.*; class Main{ static int n, m; static int[] dy; public int solution(int[] coin){ Arrays.fill(dy, Integer.MAX_VALUE); dy[0]=0; for(int i=0; i<n; i++){ for(int j=coin[i]; j<=m; j++){ dy[j]=Math.min(dy[j], dy[j-coin[i]]+1); } } /* 추가코드 for (int i = 0; i <= m; i++) { if (dy[i] == Integer.MAX_VALUE) { dy[i] = 0; } } */ return dy[m]; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); n=kb.nextInt(); int[] arr=new int[n]; for(int i=0; i<n; i++){ arr[i]=kb.nextInt(); } m=kb.nextInt(); dy=new int[m+1]; System.out.print(T.solution(arr)); } }

  • java
  • 코딩-테스트
donny9292 댓글 1 좋아요 0 조회수 119

강의에서의 회원가입 테스트를 JUnit5 방식으로 바꾸면 이게 맞을까요?

해결됨

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

@ExtendWith(SpringExtension.class) @SpringBootTest @Transactional class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test void 회원가입() throws Exception { //given Member member = new Member(); member.setName("kim"); //when Long savedId = memberService.join(member); Member joinedMember = memberRepository.findOne(savedId); //then assertThat(member).isEqualTo(joinedMember); } 이렇게 진행하면 될까요?

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

인기 태그

인프런 TOP Writers

주간 인기글