묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
order의 orderItem
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이게 주문아이템이 한번에 여러 개 일 수 있으니까,public Long order(Long memberId, List<OrderItemDto> orderItemsDto){ List<OrderItem> orderItems = new ArrayList<>(); for( OrderItemDto orderItemDto : orderItemsDto){ Item item = itemRepository.findOne(orderItemDto.itemId); int orderPrice = orderItemDto.price; int count = orderItemDto.count; OrderItem orderItem = OrderItem.createOrderItem(item, orderPrice, count); orderItems.push(orderItem); } }이런 식으로 하는 것도 괜찮죠?제가 아직 Dto를 잘 몰라서Data to Object 인 거 같은데 그러면OrderItem을 만들어서 Dto에 넣어야 하나 생각했더니 그건 왠지 아닌 것 같고.. 컨트롤러 단계에서 엔티티를 꺼내서 써야 하게 될테니..그냥 Dto를 데이터를 모아 사용하기 편한 오브젝트로 만들어주는 그런 느낌으로.. 여튼 저런 식으로 하면 잘한건가요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
createOrderItem의 setter 사용
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]그 지금은 예제라 그런거고,실무에서는 저렇게 많은 setter들이 밖으로 표출되지는 않죠?보통 저런 건setter를 private 등으로 한 다음에OrderItem에 비즈니스 메소드를 추가하는 게 맞는거죠?예를들어orderItem.initOrderItem(item, orderPrice, count)해서요.메소드 명은 적절한게 생각이 안나서.. 저는 setter는 가급적 쓰지 말고,연관관계 메소드 구현할 때 처럼 부득이 하게 필요할 경우만 public으로 하게끔 하는 걸로 이해하고 있어요.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
분산락에 대해서 질문이 있습니다.
해당 질문에 대한 답변을 보고 혼동이 되어서 질문드립니다.분산 락의 완전한 정의를 찾을 수가 없어서 다음 두 상황이 혼동되는 것 같습니다. 1. 웹 애플리케이션 서버가 여러대인 경우, 이들간의 동시성 문제를 해결하기 위해 사용되는 Lock2. 스케일 아웃된 DB 환경에서 동시성 문제를 해결하기 위해 사용되는 Lock jeoningu님의 질문과 이에 대한 답변에 따르면, 1번 상황은 분산락이 아니며(낙관적 락, 비관적 락은 분산락이 아닌 것처럼 설명해 주셨으므로), 2번 상황이 분산락인 것 처럼 되는 것 같습니다. 그런데 이런저런 자료를 찾아보다보니, 1번 상황 역시도 분산 락의 개념에 포함되는 것 같습니다.(즉 낙관적 락과 비관적 락도 분산 락에 포함됨) 그래서 제 스스로 다음과 같은 결론을 내렸는데, 이게 올바른 것인지를 확인할 방법이 없어서 선생님께 조언을 구하고 싶어 질문 드립니다."1번과 2번 모두 분산락의 개념이다.낙관적 락과 비관적 락은 다중 애플리케이션의 동시성을 제어할 수 있는 분산 락을 구현할 수 있는 방법 중 하나이다.그러나 여러대의 DB를 사용하는 경우 이들로는 분산락을 구현할 수 없게 된다.이러한 경우 레디스와 같은 Lock 을 위한 DB를 하나 두어 이를 통해 분산락을 구현하여 사용해야 한다."잘못 이해한 부분이 있다면 지적해주시면 감사하겠습니다..!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Page<dto>를 반환하는 api swagger
강의를 듣고 api를 만들고 있습니다. Page<dto>를 반환하는 api를 swagger를 통해 문서화하려고 하니 Page.class만 반환값의 파라미터로 전달되어 Page의 content 내에 무엇이 들어가는지 문서에는 보이지 않더군요. 혹시 swagger를 사용해 페이징 api를 문서화할 때 Page.class의 제네릭타입을 명시할 수 있는 방법이 있을까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
springframework 라이브러리 인식 오류
인텔리제이 종료 후 재실행하여 프로젝트를 열었을 때 아래 화면과 같이 오류가 발생합니다.org.springframework.boot 라이브러리 자체를 인식하지 못하는 것으로 확인되는데,어떻게 고칠 수 있을지 알 수 있을까요?(인텔리제이 종료 전까지만 해도 정상 동작하였습니다.) 제 개발 환경은 MacOS, IntelliJ, JDK 11, Spring 2.x 버전 입니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
따라하고 싶은데 지금 환경이랑 너무 다른 것 같습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]메이븐 설정또한 지금의 인텔리제이랑 다르고 h2 데이터베이스를 설정하는데도 어려움이 있습니다 .
-
미해결스프링 시큐리티
Spring Security 6.0 이상 (Spring boot 3.0 이상)에서 다중 config 설정 방법
안녕하세요 이렇게 좋은 Spring Security에 애를 많이 먹던 도중 늦게나마 열심히 듣고 있는 사람입니다. 강의를 들으면서 Spring Security 6.0 이상 버전으로 혼자 마이그레이션 해보며 공부를 진행하는데요..다른 분들은 모르겠지만 저는 6.0 이상 버전에서의 다중 보안 설정에서 애를 좀 먹어서.. 혹시나 저 같으신 분들이 있으실까봐 글을 남깁니다..! 다름이 아니라 Spring Security 6.0 이상 버전에서는 먼저오버라이드해서 함수를 구현하는 것이 아니라 컴포넌트화 시켜서 진행합니다. 또한 HttpSecurity 안의 내용을 구현하는데 변경점이 있다는 것이 가장 큰 차이점인 것 같습니다. 예를 들어 UserSecurityConfig, AdminSecurityConfig를 만들어서 각 경우에 따라 다른 설정을 적용하고 싶은 경우에 두 가지의 config 파일을 만들 수 있다고 가정하면.. 저의 경우에는 AdminSecurityConfig에서 지정한 부분이 권한 정보에 따라 접근이 막히지 않고 다 접근이 가능한 ("/admin/pay"를 user가 접근 가능) 상황이었습니다. 뭐가 문제인지 한참을 찾던 도중https://docs.spring.io/spring-security/reference/servlet/configuration/java.html공식 문서를 통해 답을 찾았습니다.간략하게 해결법부터 말씀드리자면 path로 접근 제한을 하는 경우에 http.securityMatcher()를 사용해야 한다는 점 입니다. 이렇게 하면 아주 잘 구분이 되더군요..! 혹시나 저처럼 하시는 분이 계실까봐 남깁니다..!@Bean @Order(0) public SecurityFilterChain adminFilterChain(HttpSecurity http) throws Exception{ http .securityMatcher("/admin/pay") .authorizeHttpRequests(request -> request.anyRequest().hasRole("ADMIN")); return http.build(); } @Bean @Order(1) public SecurityFilterChain systemFilterChain(HttpSecurity http) throws Exception{ http .securityMatcher("/admin/**") .authorizeHttpRequests(request -> request .anyRequest().hasAnyRole("SYS", "ADMIN")); return http.build(); } @Bean @Order(2) public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ http .authorizeHttpRequests(request -> request .requestMatchers(antMatcher("/user/**")).hasRole("USER") .anyRequest().authenticated());
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
11:04 초에 pk 값이 항상 들어간다고 하셨는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이전 강의에서 strategy = IDENTITY 일때만 persist 시점에 insert 쿼리가 나가서 pk 값을 얻을 수 있다고 하셨는데 지금 상태는 @GeneratedValue 디폴트값(auto) 인데 어떻게 pk 값을 얻을 수 있는건가요??
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
인텔리제이 설치
맥에서 인텔리제이 설치한게 커뮤니티 버전인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MEMBER테이블 생성안됨
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요, 다른 MEMBER테이블이 생성되지 않는다는 게시글을 읽고, H2경로 설정에 대한 글 전체 다 읽었지만 여전히 testMember()메서드는 통과하지만 MEMBER테이블이 생성되지 않습니다.... 참고로 로그에 CREATE TABLE( ... )은 정상적으로 나오네요. application.yaml은 다른 강의듣는 분 자료 검색해 참고해서 그대로 복붙했습니다(띄어쓰기 문제ㄴㄴ) jpashop의 경로는 C:에 있습니다..... 추가) 내pc>다운로드 의 경로에 있는 jpashop.trace, jpashop.mv파일을 삭제 후 이렇게 연결했더니 성공했지만 testMember()메서드가 통과하지 못하네요..... 오류메세지는 이렇게 납니다.org.h2.jdbc.JdbcSQLNonTransientConnectionException: Unsupported database file version or invalid file header in file "C:/Users/User/jpashop.mv.db" [90048-214] 제가 궁금한 점은왜 h2.bat실행시 바로 꺼지는가application.yaml과 h2 console의 경로만 맞춰주면 강의를 따라하지 않아도 된다고 하는데 맞는가jpashop의 경로와 h2의 경로를 맞춰야하는가...??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
파티셔닝 복합키 관련해서 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요.저도 강의를 듣고 실무에 적용하다가 궁금한점이 있어서 문의드립니다.현재 MySql을 DB로 사용하고있습니다. 데이터가 많아 파티셔닝을 적용한다고 가정을 했을때 GenerationType.Identity가 사용이 불가능할까요?MySql에서 파티셔닝을 위해서는 PK로 지정해야하는것으로 알고있습니다. 그래서 대체키(Table AutoIncrement Key Id), CreatedAt을 PK로 지정한 상황입니다.그리고 이것을 Entity(자바 코드)레벨에서 Entity 매핑을 위해 복합키를 쓴다면 GenerationType.Identity가 불가능한것으로 알고있습니다.하지만 지금 상황을 놓고보면 DB에 파티셔닝을 위해서 복합키를 걸었지만, 연관관계 매핑시 PK의 일부인 createdAt은 실질적으로 의미가 없는 상황이구요.따라서 시퀀스 제네레이터방식을 적용해야할까요? 아니면 아래와 같은 방법이 통상적으로 사용하는 방법일까요? 파티셔닝을 위해서 DB에는 대체키(자동증가값) + CreatedAt(생성일자를 파티션키로 사용한다는 가정)JPA에서는 자동증가 대체키는 키 생성전략으로 Identity(MySql)로 지정하고 createdAt 필드는 ID지정을 안하고 @PrePersist로 영속상태 만들기전에 주입하는 방식 엔티티에는 EmbeddedId나 IdClass어노테이션으로 복합키 지정 x 혹시 위 방법이 단점이 있거나 불가능할까요?시퀀스 제네레이터로 테이블을 관리하는것이 리소스 낭비라고 생각이 들어 AutoIncrement를 사용하고 싶어 질문드립니다. 한줄 요약하자면 파티셔닝을 위해서 createdAt을 DB단에서 PK로 지정했지만, 이것을 꼭 Entity레벨에서 복합키로써 @IdClass나 @EmbeddedKey로 지정을 해야만 하는가? 입니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
p6spy 사용시 log 두번 출력
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]p6Spy를 사용하는 중 로그가 두번 찍히는 경우가 생겼습니다.현재 mariaDB를 사용중이며,jpa: properties: hibernate: show-sql: 'false' format_sql: 'true'설정은 이렇게 해줬습니다. 혹시 왜 두번찍히는 건지 알 수 있을까?gradle에 p6spy 추가해주었습니다.implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원가입 테스트 select 문이 나가는 이유.
@Test public void 회원가입(){ Member member = new Member(); member.setName("memberA"); Long savedMemberId = memberService.join(member); Member findMember = memberService.findOne(savedMemberId); assertThat(member).isEqualTo(findMember); }근데제가 em.find() 동작이 먼저 영속성 컨텍스트에서 찾아보고 있으면 그걸 return.없으면 DB에 쿼리 날려서 가져온 다음에 return.(쓰기지연은 잠깐 생각 안하고)로 알고 있는데, 그렇다면 코드상멤버 생성하고,join해서 쿼리가 쌓이고,그 다음 findOne해서 가져오는데, 저게 결국은 em.find() 잖아요. 그러면 이미 영속성 컨텍스트에 id가 같은 게 있기 때문에 그걸 반환하잖아요. 그래야 할 것 같은데 select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.name=?이렇게 로그로 나가요.그래서 아, isEqualTo니까 혹시 막 이름같은 거 참조해서 가져오는 건가? 했는데isSameAs 해봐도 똑같아요.왜 하필 name으로 조회하는지도 모르겠어요.em.find()쪽이 실행된 것은 분명해요.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
named lock vs 비관적 락
좋은 강의 너무 감사합니다.강의를 보며 궁금한 점이 생겨서 질문 드립니다. named lock을 통해 동시성 문제를 해결하는 예시를 보았을 때, 비관적 락과 무엇이 다른 것인지 큰 차이를 느끼지 못했습니다.named lock이 비관적 락에 비해 가지는 장단점에 비해 찾아보니, timeout 설정이 좀 더 간편하다는 내용 말고는 유의미한 차이를 찾지 못했습니다.(그러나 비관적 락 + queryhint 를 사용하면 비관적 락 사용 시에도 딱히 어려움 없이 timeout을 설정할 수 있었습니다.) 혹시 named lock이 비관적 락에 비해 지니는 장단점과, 어떤 경우에 비관적 락 대신 Named lock을 통해 분산락을 구현하시는지 궁금하여 질문드립니다.
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
querydsl을 사용할 때 java의 Q클래스와 kotlin의 Q클래스 함께사용 가능한가요??
기존에 진행 중이던 프로젝트에서 신규로 개발할 기능들은 kotlin으로 개발하려합니다. 강사님 강의에서 나온 프로젝트의 build.gradle 파일을 참고해서 설정을 하니 java의 Q클래스와 kotlin의 Q클래스가 둘다 생겨버려서 중복이라는 에러가 발생하더군요.... 혹시 java,kotlin 2개를 동시에 Q클래스를 사용할 수 있는 방법은 없을까요??아니면 java의 Q클래스만 생성해서 kotlin에서 java에서 생성한 Q클래스를 사용하면 될까요??그런데 이 방법으로 시도해보려니 설정이 꼬여서 그런지 자꾸 Q클래스는 생성읻되었는데 경로를 못찾는다고 에러가 발생하더라고요ㅠㅠ 좋은 방법있으면 알려주시면 감사하겠습니다. plugins { id 'org.springframework.boot' version '2.2.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' id 'org.jetbrains.kotlin.jvm' version '1.6.21' id 'org.jetbrains.kotlin.plugin.jpa' version '1.6.21' id 'org.jetbrains.kotlin.plugin.spring' version '1.6.21' id 'org.jetbrains.kotlin.kapt' version '1.6.21' } group = 'com.maturi' version = '0.0.1-SNAPSHOT' sourceCompatibility = '8' configurations { compileOnly { extendsFrom annotationProcessor } developmentOnly runtimeClasspath { extendsFrom developmentOnly } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' developmentOnly("org.springframework.boot:spring-boot-devtools") compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' runtimeOnly 'org.mariadb.jdbc:mariadb-java-client:2.7.0' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.modelmapper:modelmapper:2.4.2' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'com.querydsl:querydsl-jpa' 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' } implementation group: 'org.javassist', name: 'javassist', version: '3.15.0-GA' implementation group: 'com.google.firebase', name: 'firebase-admin', version: '8.1.0' implementation 'org.springframework.social:spring-social-facebook:2.0.3.RELEASE' implementation 'org.apache.httpcomponents:httpclient:4.5.2' implementation 'com.googlecode.json-simple:json-simple:1.1.1' kapt("com.querydsl:querydsl-apt:5.0.0:jpa") kapt("org.springframework.boot:spring-boot-configuration-processor") } test { exclude { '/**/*' } useJUnitPlatform() } compileKotlin { kotlinOptions { jvmTarget = "8" } } compileTestKotlin { kotlinOptions { jvmTarget = "8" } } def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl } clean { delete file('src/main/generated') }
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
Custom Getter 에 대해 질문이 있습니다.
안녕하세요 태현님! 이 강의 덕분에 코틀린을 재미있게 학습하고 있습니다. Custom Getter 에 대해 질문이 있어서 질문드립니다. name 을 대문자로 만드는 것을 예시로 Custom Getter 를 사용하는 것과, 프로퍼티로써 사용하는 것에 대해 설명해주셨는데요, 제가 잘 이해하지 못했는지.. 두 방법에 대해 차이가 있는것 같습니다. Custom Getter 를 사용할 경우fun main() { val personTest = PersonTest("abc", 10) println(personTest.name) } class PersonTest ( name: String, var age: Int ) { init { if (age <= 0) { throw IllegalArgumentException("나이는 ${age}일 수 없습니다." ) } println("초기화 블록") } val name = name get() = field.uppercase() }위의 경우 ABC가 출력이 됩니다.생성자를 통해 name 값이 "abc"로 객체가 생성되었으나, custom getter 를 통해 uppercase 되어서 ABC 로 출력되는 것을 볼 수 있습니다. 프로퍼티를 사용하는 경우fun main() { val personTest = PersonTest("abc", 10) println(personTest.name) println(personTest.uppercaseName) } class PersonTest ( val name: String, var age: Int ) { init { if (age <= 0) { throw IllegalArgumentException("나이는 ${age}일 수 없습니다." ) } println("초기화 블록") } val uppercaseName: String get() = this.name.uppercase() }위의 경우는 그대로 "abc" 가 출력이 됩니다.당연히 personTest 객체를 통해 프로퍼티인 upppercaseName을 출력하면 ABC가 출력이 되지만요.. 강의에서 태현님께서 backing field 를 사용하지 않고, 프로퍼티를 통해 사용한다고 하셨는데.. 둘의 작동이 다른 것 같아서요! 제가 짐작컨데, 말씀하신 내용이backing field 처럼 사용되는 경우가 많지 않다.주로 getter 로 값을 가져오는 경우에는 값 자체를 가져오는 경우가 많으므로 프로퍼티를 통해 값을 가져오도록 한다.라고 이해해도 되는 것일까요?
-
미해결실전! Querydsl
on()구문 질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]아래의 두 코드는 방식의 차이일뿐 같다라고 봐도 무방할까요?- 연관관계가 있는 경우from(member).join(member.team, team)- 연관관계가 없는 경우from(member).join(team).on(member.team.id.eq(team.id))
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
양방관계 편의 메소드 이름
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]set~~~ 말고 다른 이름이 좋지 않나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
SpringPhysicalNamingStrategy 바뀐건가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]찾아도 안나오는데 CamelCaseToUnderscoresNamingStrategy 이걸로 바뀐 것 같네요.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간복잡도 질문
3중 for문으로 카드를 뽑으면 간단하다는 건 알고있었지만, 이러면 시간복잡도가 O(n^3) 이 되면서 시간초과가 나면서 안될 것 같다고 생각했습니다... 보통 n이 몇까지 가면 시간초과가 발생하나요? 이걸 제대로 몰라서 이중for문도 조심스럽습니다.