inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

DTO사용에 대한 질문

미해결

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

강의 23분18초 부분 updateItem을 DTO로 받는것에 대해 질문 2가지있습니다. 1. 아래와 같이 서비스계층의 DTO를 만들어서 파라미터로 사용하는부분은 이해했는데, 애초에 그냥 form을 넘겨주는것은 잘못된 설계인가요? @PostMapping("/items/{itemId}/edit") public String updateItem(@ModelAttribute("form") BookForm form) { UpdateItemDto updateItemDto = new UpdateItemDto(form); itemService.updateItem(updateItemDto); //itemService.updateItem(form); return "redirect:/items"; } 강의에선 생략하는 부분인것같은데 만약 엔티티에 change() 함수를 만든다했을때 Item을 상속받는 Book, Album,Movie 각각에 change함수를 만들어주어야하나요..? (Item이라는것을 상속받는 3개의 클래스에대해 어떻게 처리해줘야할지 모르겠어요.) Item (부모클래스)에 필드들을 private -> protected로 바꾸고, Book의 change함수를 아래와 같이 만들면되나요? (이경우 Album, Movie 사용한다고 가정하면 똑같이 만들어줘야하는지?) public void change(UpdateItemDto dto) { this.name = dto.getName(); this.price = dto.getPrice(); this.stockQuantity = dto.getStockQuantity(); this.author = dto.getAuthor(); this.isbn = dto.getAuthor(); }

  • JPA
  • java
  • spring
  • spring-boot
  • 웹앱
Ahrisan 댓글 1 좋아요 0 조회수 647

Postman 기술 질문입니다,(스프링 시큐리티)

해결됨

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

안녕하세요 강사님 강의 감사하게 잘 듣고 있습니다. 다름이 아니라 제가 연습 중인 프로젝트에 Spring-Security, Auditing, Envers를 적용해 보고 있습니다. 당연히 데이터를 등록, 수정, 삭제 시 DB에 현재 로그인 중인 사용자 정보가 담기게 되는데 postman에서 그냥 테스트를 하게 되면 오류가 나더라고요, 1) 이러한 부분을 해결하기 위해 postman에서 따로 설정을 해줄 수 있는 부분이 있는지도 궁금합니다. (이와 비슷한 관련 강의가 있는지도 궁금합니다!) 2) 강의 내용을 보면 DTO 클래스를 ApiController에 작성하셨는데 실무에서는 domain 패키지에 따로 따로 생성해주나요? (그렇게 되면 Create, Update, Delete 너무 많아지는 것 같아서요)

  • 스프링시큐리티
  • spring
  • JPA
  • spring-boot
  • java
gnstjrdlsla 댓글 1 좋아요 0 조회수 625

선생님 Restful API 제작 관련 커리큘럼이 궁금합니다.

미해결

스프링 핵심 원리 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 선생님 현재 스프링 입문강의, 기본강의를 완강한 상태이고 복습 중 입니다. 아직 학생이고, 프로젝트를 한개 해보려고 싶은 마음에 실력은 부족하지만 Restful API제작을 하고 싶습니다. 기술스택으로는 SpringBoot 와 JPA를 사용해보고 싶고, HTTP통신 기반으로 제작하려 합니다. 11월 말일부터 제작을 시작하고 싶은데, 다음 커리큘럼으로 선생님의 HTTP강의를 듣고, 이후에 어떤 강의를 들어야할지 고민되어서, 질문드립니다. 정말 어려운 프로젝트가 될거같지만, 1. HTTP강의 이후에 Spring MVC 1,2듣기 (Servlet과 자바 MVC패턴2에 대한 지식은 가지고있습니다.) HTTP강의 이후 Spring Boot JPA강의 야생형으로 듣기 이 두가지 방법을 고민하고 있습니다. 엄청난 서비스를 만들면 좋겠지만, 아직 서비스를 구동하기에 필요한 API에 대한 개념이 아에 없는 상태인데, 어떤 과정으로 넘어가면 좋을까요? 감사합니다.

  • 커리큘럼
  • springboot
  • oop
  • jpa
  • spring
bha4388 댓글 1 좋아요 0 조회수 358

Circuit breaker와 ErrorDecoder 동시 사용

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

강사님 안녕하세요? 강의 너무 잘 듣고 있습니다. Feign Client 강의에서 ErrorDecoder를 추가하여 try-catch문을 사용하지 않고, HTTP 에러 코드 별 처리 방법을 별도로 분리했었는데요. 이번 강의에서처럼 Circuit breaker를 사용하면 API 호출 시 발생하는 모든 오류 상황에 대해 fallback 값이 전달되기 때문에 ErrorDecoder는 별도로 필요하지 않을 것 같습니다. 외부 API 호출하는 모든 케이스에서 circuit breaker를 사용한다면 ErrorDecoder는 불필요한 것이 맞나요? circuit breaker와 error decoder가 둘 다 필요하다고 한다면, error decoder은 어떤 역할을 할 수 있나요? 항상 감사드립니다.

  • spring-boot
  • architecture
  • JPA
  • spring-cloud
  • Kafka
  • msa
박수현 댓글 1 좋아요 0 조회수 501

일대다 단방향은 무조건 피해야 하나요?

미해결

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

일대다 단방향 매핑에서 다음의 두가지 단점이 있다고 말씀해 주셨습니다. 추가적인 update 쿼리의 실행 엔티티가 관리하는 외래 키가 다른 테이블에 있음 그런데 일대다 단방향 매핑을 맺을 때 updatable=false 와 nullable=false 를 추가하면 update 쿼리 없이 한 번에 insert 쿼리만 나가는 것을 확인했습니다. @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REMOVE}) @JoinColumn(name = "parent_id", nullable = false, updatable = false) private List<Child> children = new ArrayList<>(); 물론 부모 자식간 관계가 변하지 않고 라이프사이클이 완전 동일한 경우에만 활용할 수 있을 듯 합니다. 그럼 update 쿼리가 추가적으로 나가는 것은 해결한 셈인데 이런 경우에도 엔티티가 관리하는 외래키가 다른 테이블에 있다는 단점에 의해 다대일 양방향을 맺어줘야 할까요? 복잡한 실무에서는 그 패러다임 불일치가 많은 영향을 주나요?

  • 연관관계
  • JPA
  • 일대다단방향
  • java
DOES 댓글 1 좋아요 0 조회수 1138

@LoadBalanced 관련 질문입니다.

해결됨

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

@LoadBalanced 를 사용할시에 apigateway를 거치지 않고 user -> order 로 가는것을 확인했는데 제가 궁금한것은 보통 client 단에서 첫 요청이 들어왔을 시에만 api gateway를 거치고 그 이후 비지니스 로직을 처리하기 위해서 ms간에 소통하는것은 api gateway를 거치지 않는것이 일반적인 건가요?

  • JPA
  • spring-boot
  • architecture
  • spring-cloud
  • Kafka
  • msa
임도현 댓글 1 좋아요 1 조회수 514

각 애플리케이션에 랜덤포트를 부여하는 이유

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요!!! 랜덤포트를 부여하는 이점에 대해서 아직도 이해가 잘 안갑니다.ㅜㅜ 마이크로서비스 애플리케이션의 확장성과 랜덤포트를 부여하는게 얼마나 깊은 관계가있나요?? 저는 정해두고 쓰는게 더 편하다고 생각했거든요. 그리고 실무에서도 정말 이렇게 랜덤포트로 사용하나요?

  • Kafka
  • msa
  • spring-cloud
  • JPA
  • architecture
  • spring-boot
goodlucky1215 댓글 1 좋아요 1 조회수 1052

cannot resolve property

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

application.yml 파일에서 글로벌 필터의 속성 ( baseMessage, preLogger, postLogger) 는 인식하는데 로깅 필터의 속성은 인식하지 못해 cannot resolve property 에러가 납니다. 왜인지 이유를 알 수 없어 질문드립니다. LoggingFilter.java 파일입니다. package com.todaypills.apigatewayservice.Filter; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.OrderedGatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.core.Ordered; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; @Slf4j //for print log @Component /**커스텀 필터의 일종임, 단지 로그를 찍기 위한 필터이므로 이름을 Logging 이라고 지은 것*/ public class LoggingFilter extends AbstractGatewayFilterFactory<LoggingFilter.Config> { public LoggingFilter() { super(Config.class); } @Override public GatewayFilter apply(Config config) { /** * 위쪽 주석부분은 람다 표현식으로 바로 리턴한 것이고 이것은 람다를 사용하지 않고 리턴한 것임, * 따라서 인스턴스부터 만들어주어야 하고 GatewayFilter는 인터페이스이기 때문에 직접 인스턴스를 생성할 수는 없고, OrderedGatewayFilter() 를 이용하여 인스턴스를 만들어주어야함 * */ GatewayFilter filter = new OrderedGatewayFilter(((exchange, chain) -> { /** exchange: request와 response 객체를 얻기 위함 */ ServerHttpRequest request = exchange.getRequest(); ServerHttpResponse response = exchange.getResponse(); log.info("logging filter: request id -> {}", config.getBaseMessage()); if(config.isPreLogger()){ log.info("logging pre filter start: request id -> {}", request.getId()); } return chain.filter(exchange).then(Mono.fromRunnable(() -> { if(config.isPostLogger()){ //Mono 객체: 웹플럭스(스프링5)에서 지원하는 기능으로 비동기방식의 서버에서 단일값을 전달할 때 모노타입으로 전달 log.info("logging post filter end: response code -> {}", response.getStatusCode()); } })); }), Ordered.HIGHEST_PRECEDENCE); //HIGHEST_PRECEDENCE 는 적용할 필터가 여러개일 때 어느것이 먼저 실행될지 우선순위를 부여함 return filter; } @Data // setter getter 함수 생성 (isPreLogger(), isPostLogger() 등) public static class Config{ // 여기에 configuration 이 있다면 삽입 private String baseMessage; private boolean preLogger; private boolean postLogger; } } application.yml 파일입니다. server: port: 8000 eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service cloud: gateway: default-filters: - name: GlobalFilter args: # 우리가 정의한 변수 baseMessage: 게이트웨이 글로벌 필터입니다. preLogger: true #prefilter의 유무 postLogger: true routes: #FilterConfig의 라우팅 정보를 yml 파일로도 설정할 수 있음 - id: nutrients-service uri: http://localhost:8081/ predicates: - Path=/nutrients-service/** filters: # - AddRequestHeader=nutrients-request, nutrients-request-heaer-value # - AddResponseHeader=nutrients-response, nutrients-response-header-value - name: CustomFilter - name: LoggingFilter args: baseMessage: 커스텀 로깅 필터입니다. preLogger: true postLogger: true

  • architecture
  • spring-cloud
  • spring-boot
  • JPA
  • msa
  • Kafka
khss4008 댓글 3 좋아요 0 조회수 2758

'스프링에서 엔티티 매니저와 영속성 컨텍스트가 N:1'의 의미 질문 드립니다.

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 비슷한 질문 있지만 해결 되지 않음 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] '스프링에서 엔티티 매니저와 영속성 컨텍스트가 N:1' 의 의미 질문 드립니다. 강의 4분 1초쯤 스프링에서는 엔티티 매니저와 영속성 컨텍스트가 N:1 이라는 장표가 있는데 아래와 같이 이해했습니다. N개의 EntityManager 객체들은 동일한 PersistenceContext 객체를 참조하고 있음 (싱글톤) 위 내용을 확인 해보고자 본 강의의 소스파일(jpashop-v20210728)을 인텔리제이에서 디버그 실행한 상태에서 다수의 HTTP 요청을 보내서, HTTP 요청마다 생성된 다수의 EntityManager 객체가 하나의 PersistenceContext 객체를 참조하고 있는지 확인했습니다. 확인 결과 EntityManager 객체마다 각각 다른 PersistenceContext 객체를 참조하고 있었습니다. 5번의 HTTP 요청을 보내서 5개의 엔티티매니저 객체와 영속성 컨텍스트 객체가 생성됐습니다. 위 내용만 본다면, 스프링부트 프로젝트인데 J2SE 환경과 마찬가지로 엔티티 매니저와 영속성 컨텍스트가 1:1로 생성되는것으로 보여서, 제가 위 장표를 잘못 이해한것 같아 질문 드립니다. 감사합니다~

  • JPA
  • java
김진욱 댓글 2 좋아요 3 조회수 634

join fetch

미해결

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

n + 1 문제를 해결하기 위해 join fetch를 써야 하는걸로 배웠는데 inner join으로 해석이 되는 join fetch를 혹시 한 쿼리 안에서 여러번 쓸때 어떨때는 inner join으로 해석하고 어떨때는 outer join으로 해석하게 설정을 할 수 있나요? (inner join과 outer join을 쓰고 싶은데 join fetch를 여러번 쓸경우 inner join으로만 해석이 됩니다.)

  • jpa
  • JPA
  • java
alrnr3521 댓글 1 좋아요 0 조회수 369

jpql의 객체지향 쿼리라는 말이 궁금합니다

해결됨

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

기본적으로 find를 통한 DB조회를 하여도 각 테이블의 컬럼에 있는 값을 가져오는것인데 jpql을 사용해도 똑같이 DB의 테이블내 컬럼값을 가져오는것이 아닌지 의문입니다. 또한 jpql이 객체지향 쿼리라고 불리는것은 테이블을 기반으로 DB조회를 하는게 아닌 객체를 기반으로 DB조회를 하기때문인가요? 만약 맞다면 모든 DB테이블이 객체로 이루어져 있어야하기때문에 JPQL 단독사용이 불가능한지도 궁금합니다 감사합니다

  • java
  • JPA
댓글 1 좋아요 0 조회수 420

merge

미해결

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

merge는 다음과 같이 동작해요 1. 1차 캐시에서 엔티티를 찾는다 2. 없으면 디비를 조회한다 3. 찾아온 것에 값을 채운다 없으면 새로운 객체를 생성하고 거기에 값을 채운다 4. 그리고 값을 반환한다 근데 merge는 준영속을 영속화시킬때 사용하잖아요 준영속인 개체가 1차캐시에 있을리 없지않나요? 1의 과정을 왜 거치는건가요?

  • JPA
  • java
김민지 댓글 2 좋아요 1 조회수 426

Kafka sink connector를 통해서 단일 데이터베이스 저장을 했을 때 장점?

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요. Kafka Connect 를 활용한 단일 데이터베이스를 사용 파트를 듣고 있는데요. Multiple Order Service가 같은 DB URL을 가지고, JPA를 통해서 데이터 저장을 하면 될 것 같은데, 굳이 Kafka Sink Connector를 통해서 데이터 저장을 하는 이유가 따로 있을까요? JPA를 쓰면 Persistence Manager가 제공하는 여러 장점을 이용할 수 있을 것 같은데, Kafka sink connector는 그런 장점을 이용할 수 없을 것 같아서요.. 실제 현업에서 많이 사용되는 테크닉인지 궁금하고, 만약 사용한다면 장점은 무엇인지 궁금합니다!

  • JPA
  • spring-boot
  • spring-cloud
  • architecture
  • Kafka
  • msa
채병훈 댓글 3 좋아요 4 조회수 664

M1 mac 에서 gradle로 빌드하시려는 분들께 공유 하고싶어 글을 남겨요!

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

Requirements static/node_module로 package.json에 선언된 의존성을 다운로드 받아야한다 gradle build 시 package.json에 선언된 의존성을 확인하고 다시 다운로드 받아야 한다. 뭔가 간단하게 끝내고 싶다 !!! Action https://github.com/node-gradle/gradle-node-plugin/blob/master/docs/usage.md 다양한 관련 플러그인 들이 있지만, 위의 플러그인을 설치 했습니다. 2번의 요구사항은 gradle의 증분 컴파일(?)이 해주는 것 같습니다. (정확하지 않음 추측이에요) 3번은 관련 자료를 찾던 도중 processResources 를 발견했고, Copies production resources into the production resources directory. 라고 설명 되어 있습니다.(공식 홈페이지) 따라서, npm install 시 node_module 파일을 static 이하로 떨어 뜨리면 되겠구나! 그리고 processResources를 "npm install 동작을하는 " Task를 의존하게 하면 되겠구나! -- 주석이 많아 가독성이 떨어지지만, 한번 읽어보시면 더 도움이 될거라 생각해서 위의 깃헙에 있는 주석 그대로 복사 붙여넣기 합니다. 수정한 부분은 nodeProjectDir 부분과processResources.dependsOn 부분 입니다. 추가로 package.json 도 아래분이 잘 정리 해주셔서 함께 복사 붙여넣기 합니다.(고맙습니다!!) -인텔리제이 빌드시(gradle로 설정안했을 경우 동작안해요!) -gradle 탭 누르셔서 npm Task 들어오는지 확인해주세요! { "name": "static", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "@yaireo/tagify": "^3.5.1", "bootstrap": "^4.4.1", "cropper": "^4.1.0", "font-awesome": "^4.7.0", "jdenticon": "^2.2.0", "jquery": "^3.4.1", "jquery-cropper": "^1.0.1", "mark.js": "^8.11.1", "moment": "^2.24.0", "summernote": "^0.8.16" } } plugins { id "com.github.node-gradle.node" version "3.5.0" id 'org.springframework.boot' version '2.7.5' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'java' } group = 'me.studyOlle' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } node { // Whether to download and install a specific Node.js version or not // If false, it will use the globally installed Node.js // If true, it will download node using above parameters // Note that npm is bundled with Node.js download = true // Version of node to download and install (only used if download is true) // It will be unpacked in the workDir version = "16.14.0" // Version of npm to use // If specified, installs it in the npmWorkDir // If empty, the plugin will use the npm command bundled with Node.js npmVersion = "" // Version of Yarn to use // Any Yarn task first installs Yarn in the yarnWorkDir // It uses the specified version if defined and the latest version otherwise (by default) yarnVersion = "" // Base URL for fetching node distributions // Only used if download is true // Change it if you want to use a mirror // Or set to null if you want to add the repository on your own. distBaseUrl = "https://nodejs.org/dist" // Specifies whether it is acceptable to communicate with the Node.js repository over an insecure HTTP connection. // Only used if download is true // Change it to true if you use a mirror that uses HTTP rather than HTTPS // Or set to null if you want to use Gradle's default behaviour. allowInsecureProtocol = null // The npm command executed by the npmInstall task // By default it is install but it can be changed to ci npmInstallCommand = "install" // The directory where Node.js is unpacked (when download is true) workDir = file("${project.projectDir}/.gradle/nodejs") // The directory where npm is installed (when a specific version is defined) npmWorkDir = file("${project.projectDir}/.gradle/npm") // The directory where yarn is installed (when a Yarn task is used) yarnWorkDir = file("${project.projectDir}/.gradle/yarn") // The Node.js project directory location // This is where the package.json file and node_modules directory are located // By default it is at the root of the current project nodeProjectDir = file("${project.projectDir}/src/main/resources/static") // Whether the plugin automatically should add the proxy configuration to npm and yarn commands // according the proxy configuration defined for Gradle // Disable this option if you want to configure the proxy for npm or yarn on your own // (in the .npmrc file for instance) nodeProxySettings = ProxySettings.SMART } dependencies { // View Template Engine implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' // Security implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' //Web implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-web' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.7.5' //Persistence implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' runtimeOnly 'com.mysql:mysql-connector-j' // LomBok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' // Dev developmentOnly 'org.springframework.boot:spring-boot-devtools' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' //Test Implementation testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' } tasks.named('test') { useJUnitPlatform() } processResources.dependsOn('npmInstall')

  • gradle
  • node
  • JPA
  • spring
  • npm
  • spring-boot
  • thymeleaf
  • java
asdf 댓글 1 좋아요 1 조회수 1656

다이나믹 프록시에서 리플렉션이 어떻게 사용되는거죠?

미해결

더 자바, 코드를 조작하는 다양한 방법

ParentInterface parentInterface = (ParentInterface)Proxy.newProxyInstance(HelloApplication.class.getClassLoader(), new Class[]{ParentInterface.class}, (proxy, method, args) -> { System.out.println("메소드 수행전에 할일"); Object methodResult = method.invoke(new ChildClass(), args);//child라는 class에 args를 모두 넘긴다 if(method.getName() == "sayHello"){//메서드 이름에 따라.. 처리를 분류할 수 있으니 다 정의하지 않아도됨 모든 메서드에 대해 기본적으로 정의되는거니까 중복도 피할 수 있음 System.out.println("sayHello!"); return methodResult; } System.out.println("sayOne!"); return methodResult; }); parentInterface.sayHello(); //클라이언트는 인터페이스타입에 대해 그 메서드를 호출한다 이 인터페이스에 대한 메서드를 호출하면 위에서 정의한대로 프록스 객체를 런타임에 하나 만들어줘서 //위에서 정의한 대로의 로직을 타고 클라이언트에게 결과를 전송해준다 parentInterface.sayOne(); 지금 인터페이스에 대한 .class정보를 넘겨주고 있어요 그리고 Proxy.newProxyInstance메서드로 들어가보면 넘겨준 class정보를 가지고 생성자를 만든다거나 하는것같거든요 그런거 자체가 리플렉션을 활용하는 행위인가요? (class이름).class <- 이표현자체는 리플렉션을 활용하는 문장인가요? cglib, 바이트 버디는 리플렉션을 사용하지 않나요?

  • java
  • JPA
  • spring
jjc5524 댓글 1 좋아요 0 조회수 518

persistence.xml 클래스 관련 문의

미해결

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

안녕하세요. 이클립스에 객체를 추가할때마다 persistence.xml에 클래스를 매핑시켜줘야 하는데 하나씩 추가 매핑이 아닌 자동으로 매핑이 가능한지 여쭤보고 싶습니다!

  • jpa
  • java
  • persistence
  • persistence.xml
  • JPA
hmchoi 댓글 1 좋아요 0 조회수 414

Filter 람다식 관련 질문드립니다.

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요! Custim Filter 강의 중 아래 코드 부분에서 GatewayFilter의 생성자가 exchange와 chain이기 때문에 return (exchange, chain) -> { .. 이 되는 것 까지는 이해를 하였습니다. 그런데 이 때 exchange와 chain 변수가 어디에서 정의되어서 여기서 사용되는 건지 잘 모르겠습니다 ㅠㅠ return (exchange, chain) -> { // GatewayFilter의 생성자 Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain);

  • spring-cloud
  • spring-boot
  • architecture
  • JPA
  • msa
  • Kafka
퉁튱 댓글 2 좋아요 0 조회수 742

JPA createQuery

미해결

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

JPA 강의를 들으면서 문제 없이 잘 진행됩니다. 문제가 되는건 아니지만 Member 에서 error messages 처럼 붉은줄이 나타납니다. 그리고 where 다음 m 에서 m. 을 확인해보면 id, name 나타나지 않습니다. 어떠한 현상으로 안 나타나는지 잘 모르겠습니다. 하지만 이대로 실행해보면 잘 실행되고 Test 도 error 없이 잘 진행됩니다. 계속 원인을 찾아보겠습니다. 혹시라도 알고 계시다면 댓글 부탁드립니다. 감사합니다.

  • jpa
  • createquery
  • spring
  • MVC
  • java
  • spring-boot
kangbj1026 댓글 2 좋아요 0 조회수 575

repository 작성 시 , spring-data-jpa 의 jpaRepository 와 persistence manager 객체 주입의 선택 기준

해결됨

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

질문 : 실제 작업을 할때, 어떤 경우에 spring-data-jpa의 jpa repository 를 쓰고, 어떤 경우에 EntityManager 를 써야 할까요 ? 안녕하세요. 선생님 이번 강의에 spring-data-jpa 의 jpa repository 를 사용하지 않고 EntityManager 를 주입받아 repository 를 사용 하는 이유는 학습의 목표가 jpa 의 동작을 더 잘 이해하기 위함이라고 들엇습니다.( 출처 : https://www.inflearn.com/questions/549972 ) 그러면 실제 작업을 할때, 어떤 경우에 spring-data-jpa의 jpa repository 를 쓰고, 어떤 경우에 EntityManager 를 써야 할까요 ? 하나의 트랜잭션의 명령을 길게 여러개 쓰고 싶으면 jpa repository 의 함수를 직접 작성한다라고 이해해도 될까요 ?

  • jpa
  • java
  • spring-data-jpa
  • java
  • 웹앱
  • spring-boot
  • spring
  • spring
  • JPA
dankim 댓글 1 좋아요 5 조회수 1832

JPA 테스트하는 과정에서 질문드립니다!

해결됨

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

JPA 강의 17:36에서 콘솔 창에 values 값으로 null 이 들어가게 되는데, 제 출력 화면에는 default 값이 나옵니다. 문제 없는 결과일까요??

  • jpa
  • java
  • spring-boot
  • MVC
  • spring
재영 댓글 2 좋아요 3 조회수 439

인기 태그

인프런 TOP Writers

주간 인기글