묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
변경감지 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]변경 감지 코드로 수정 메서드를 작성하던 중 setter를 없애고 ItemService의 updateItem() 안의 setter들을 대체하기 위해public void updateItem(String name, int price, int stockQuantity){ this.name = name; this.price = price; this.stockQuantity = stockQuantity; }이 코드로 Item클래스 안에 작성했습니다.@Transactional public void updateItem(Long id, String name, int price, int stockQuantity) { Item item = itemRepository.findOne(id); item.updateItem(name, price, stockQuantity); // item.setName(name); // item.setPrice(price); // item.setStockQuantity(stockQuantity); }이렇게 사용하기 위해서 입니다.하지만 이것도 결국은 setter인데 이렇게 작성하는 게 올바른 방법일까요? 더 좋은 코딩 방법이 있는 지 궁금합니다.
-
미해결스프링 부트 - 핵심 원리와 활용
스프링 적용부터 오류가 납니다.
스프링 부트 섹션2 수업 듣고 있었는데 스프링을 적용하면서 부터 이런 오류가 납니다. 21-Jan-2024 15:54:59.610 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다: [C:\Program Files\Java\jdk-17\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files (x86)\NAT Service;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk-17\bin;C:\Users\LNH\AppData\Local\Microsoft\WindowsApps;C:\Users\LNH\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\LNH\AppData\Roaming\npm;C:\Program Files\nodejs;C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.2\bin;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.2\bin;;C:\Users\LNH;C:\Program Files\Java\jdk-17\bin;;C:\Program Files (x86)\ESTsoft\ALSee\x64;.]21-Jan-2024 15:54:59.864 INFO [main] org.apache.coyote.AbstractProtocol.init 프로토콜 핸들러 ["http-nio-8080"]을(를) 초기화합니다.21-Jan-2024 15:54:59.883 INFO [main] org.apache.catalina.startup.Catalina.load [507] 밀리초 내에 서버가 초기화되었습니다.21-Jan-2024 15:54:59.925 INFO [main] org.apache.catalina.core.StandardService.startInternal 서비스 [Catalina]을(를) 시작합니다.21-Jan-2024 15:54:59.926 INFO [main] org.apache.catalina.core.StandardEngine.startInternal 서버 엔진을 시작합니다: [Apache Tomcat/10.1.18]21-Jan-2024 15:54:59.940 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor 배치 descriptor [C:\Users\LNH\.SmartTomcat\server\server\conf\Catalina\localhost\ROOT.xml]을(를) 배치합니다.21-Jan-2024 15:55:00.118 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDescriptor 배치 descriptor [C:\Users\LNH\.SmartTomcat\server\server\conf\Catalina\localhost\ROOT.xml]을(를) 배치하는 중 오류 발생java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:686)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:712)at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:643)at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1939)at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:536)at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1661)at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:917)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)at org.apache.catalina.startup.Catalina.start(Catalina.java:795)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)... 이런 오류가 나고 404에러가 뜹니다. 이것저것 시도해봤지만 혼자서는 해결이 안 돼서요 ㅠㅠㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
TransactionContext 관련 문의
[질문 내용]안녕하세요.@Rollback(false) 어노테이션을 달기 전에도 TransactionContext 로그가 뜨지 않는 것은 어떤 문제인가요?? 어노테이션 대신에 autowired한 엔티티매니저 flush를 해도 로그는 나타나지 않습니다.감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
name = "", mappedby ="" 등에서 자동완성
강의영상을 보다 보면 제목에 적어 놓은 name = "" 의 " " 영역에 ctrl+space로 자동완성을 띄우셔서 클래스 같은 걸 바로 작성하도록 하시는데 혹시 어떻게 세팅을 해야 가능할까요? 다른 건 자동완성이 뜨는데 해당 " " 부분들은 자동완성이 되지 않아서요. JPA FACET 설정도 해놨습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 통합 테스트 시 @Transactional로 DB를 롤백 시키는데 id는 여전히 건너뛰어지는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]섹션 6의 JPA 강의를 듣다가 생긴 궁금증입니다! spring1이라는 멤버를 가입시키고 h2 콘솔을 통해 확인해보니 멤버 spring1의 id는 10이었다고 가정해보겠습니다. 이 직후에 스프링 통합 테스트에서 회원가입() 테스트 메서드를 한 번 돌리고, 다시 spring2라는 멤버를 가입시켜보면 멤버 spring2의 id 값은 11이 아닌 12가 됩니다.JPA가 보내는 insert 쿼리에선 id가 null로 넘어가니까 id 값을 부여하는 건 결국 DB라고 생각했는데 왜 테스트 후 롤백을 해도 11번 id가 건너뛰어지는 것일까요? 이 부분의 매커니즘이 궁금합니다!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요 싱크 커넥터로 DB에 적용이 안되어 질문드리게 되었습니다.
좋은강의 잘듣고있습니다! 다름아니라 현재 싱크 커넥터등록후 DB에 데이터가 등록되지 않고 있습니다.먼저 아래사진처럼 post요청을 통해 커넥터 등록을 하였습니다.토픽은 예제를 똑같이 따라하였을 때도 안되었어서 my-topic-orders로 새로 바꿔서 등록하였습니다.이에 맞게 테이블도 아래 사진처럼 생성하였습니다. post요청을 한 후 주문이 해당 토픽으로 전달했음에도 아래 사진처럼 DB에 적용이 되지않아 어디가 문제일지 커뮤니티를 뒤져도 잘모르겠어서 질문드립니다 ㅠㅠ (토픽도 "my_topic_orders"로 지정하였습니다.)현재 커넥터 등록상태입니다.추가로 kafka confluent에서 발생한 로그입니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 빈 이라는게 뭔가요 이전강의를 다시봐도 모르겠어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링 빈 계속 말씀해주시는데 잘 모르겠어요 @autuwire라는것도 어떤 기능인건지 이해가 안가요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
섹션 1-5, 동작확인 실습시 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 섹션1-5강 JPA와 DB설정 동작확인 강의에서 MemberRepositoryTest.java를 실행하면 검증 실패가 떠서 문의드립니다. 제가 STS에서 실습중이라 왜 오류가 뜨는건지 모르겠는데... 오류라고 뜨긴 뜨는데 강의 내용처럼 DB에 memberA가 잘 insert 되서 들어가긴 합니다. 근데 빨간색 오류가 떠요. 왜그런건가요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
코틀린에서 ModelMapper는 어떤지 궁금합니다.
안녕하세요! 강의를 모두 수강하고,최근 신규 프로젝트로 코틀린을 사용할 예정이라 강의를 다시 한번 곱씹어 보고 있습니다 궁금한 내용은 다름 아니라 java 프로젝트를 했을 때Entity > DTO 변환 시 필드의 추가/변경/삭제 시 누락을 방지하려고 ModelMapper를 자주 사용했던 기억이 있는데, 강사님 강의에서는 이러한 작업을 할 때 'of' 나, 'fixture' 와 같은 같은 팩토리 메서드를 주로 사용하시는 것을 보고궁금해서 찾아보니 코틀린은 매핑 관련 라이브러리를 잘 사용하지 않는다는 글도 있더라고요.. 혹시 이러한 부분은 어떻게 생각하시는지 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
ServiceIntegration 에서 오류.
[질문 내용]https://drive.google.com/file/d/19E1IjljuGplTpw01uI490dE0XFw1su75/view?usp=drive_link MemberServiceIntegrationTest 파일을 다 작성 후 실행하니, Could not open JDBC Connection for transaction 오류가 뜹니다. 혹시 db가 끊긴건가 터미널을 닫고 다시 실행했으나.. 똑같아서 질문 남깁니다. 도와주세욧..ㅠ!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원등록과 회원목록 조회에 에러가 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 첫번째 회원 등록은 진행이 됩니다하지만 두번째 회원등록시 아래의 에러가 나옵니다.Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Sat Jan 20 16:38:38 KST 2024There was an unexpected error (type=Internal Server Error, status=500). 또한 첫번째 회원 등록 후 회원 목록에 들어가면1 은 나오지만 이름이 나오지 않습니다.구글 드라이브 첨부하오니 도움 부탁드립니다.https://drive.google.com/file/d/1itvcNmlya5m5Fr9h8-i0_5RjSUC9MCXX/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
(정보) mac homebrew h2 데이터베이스 설치하는 법
1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요../h2.sh: line 3: 6284 Trace/BPT trap: 5 java -cp "$dir/h2-2.2.224.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@"위와 같은 에러가 뜨시는 분,homebrew 삭제하거나 jdk 다시 설치하지 않고h2 데이터베이스를 설치하는 방법이 있습니다. Homebrew 가 설치되어 있다면 이 방법을 사용할 수 있습니다.> brew install h2 > h2 -web이 방법으로 h2 데이터베이스를 설치하고 web url을 얻을 수 있습니다.
-
해결됨쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
ReviewDto 객체 사용 이유
리뷰 목록 페이지를 조회할 때 마지막에 ReviewDto 객체로 변환해서 반환을 하는데 이렇게 하는 이유가 무엇인지 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원목록 들어갔을 때 콘솔창에서 에러가 뜹니다!
AOP까지 적용하여 HelloProjectApplication을 돌리고 회원목록으로 들어갔는데 오류가 뜹니다. 오류 내용은 MemberController와 TimeTraceAop에서 발생했는데 어디가 잘못되었는지 모르겠습니다..!아래는 MemberController.java와 TimeTraceAop.java 소스 코드 첨부드립니다..감사합니다!
-
해결됨장애 없는 서비스를 만들기 위한 Resilience4j - CircuitBreaker
n 대의 서버간 서킷 브레이커의 상태를 동기화 시키려면 어떻게 해야 될까요?
가상의 상황외부 연동의 책임을 가진 external-interface 서버기상청에서 제공하는 api 로부터 오늘의 날씨 를 가져올 수 있습니다.n 대로 스케일 아웃 될 수 있습니다.현재 구성은 각 서버별로 독립적으로 서킷 브레이커를 관리하고 있습니다.ex)기상청 api 장애 상황에서1번 서버로 요청이 집중되어 1번 서버는 open 되었지만2번 서버는 요청이 별로 들어오지 않아 아직 close 상태일 수 있습니다.이 때 n 대의 서버간 서킷 브레이커의 상황을 필수적으로 공유해야 된다면 어떻게 할 것 인가? 생각하는 안redis pub/sub 기능을 통해 구현한다.1번 서버는 외부 연동 실패로 서킷브레이커가 open 되었다.1번 서버는 onStateTransition 의 로직으로 open 상태를 redis 에 pub 한다.2번 서버는 sub 하여 자신의 상태를 open 으로 동기화 한다.하지만 우려되는 맹점이 있습니다.pub, sub 방식은 서버간 동기화의 간극이 있습니다.결과적 일관성은 보장될지 언정 이 간극은 또 다른 이슈를 유발할 수 있습니다.ex)1번 서버는 open 상태를 pub 했습니다.2번 서버는 open 상태를 pub 했습니다. (1번 서버의 open 을 sub 하기 전에)1번 서버는 close 상태가 되었지만 (외부 연동이 정상적으로 복구되었음에도 불구하고)2번 서버에서 pub 한 open 정보에 의해 자신을 open 상태로 변경하였습니다. 동기화의 간극으로 인해 서로의 open 상태를 공유하는 것이 무한히 반복 됩니다.물론 실제 실패로의 event 만 pub/sub 하고,redis 의 상태 공유는 pub/sub 하지 않으면 될 것 같기도 합니다.하지만 가능/불가능 여부를 떠나 여전히 위험할 것 같다는 직감이 듭니다.redisson 과 같은 공유락까지도 생각을 해보았는데, 배보다 배꼽이 큰 것 같다는 생각이 듭니다.그외만약 actuator api 호출을 통해 명시적인 변경을 하고 싶다면실무라면 대표 도메인에 elb 나 ingress 등을 설정할 것 입니다.그러면 n 대의 서버에 상태 변경 명령을 어떻게하면 api 로 보낼 수 있나요?혹시 이건 아예 불가능한 생각일까요?사실 실무라면 굳이 서버간 서킷 브레이커의 상태를 공유하지 않을 것 같습니다.장애 상황이 자주 발생하지도 않을 것이거니와서킷 브레이커 발동을 위한 window 크기를 충분히 작게 설정한다면회복을 방해할 정도의 트래픽이 더 들어가지는 않을 것이라고 생각하기 때문 입니다.오히려 이런 공유 로직으로 인해 복잡도만 높아질 것이라고 생각해서 입니다. 하지만 실무를 떠나 기술적인 방법은 무엇이 있을까 인사이트가 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 가 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 빌드하려는 과정에서 해당 폴더에 접근할 수 없다고 뜹니다.어떻게 하면 접근할 수 있는지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바 버전이 다르게 나옵니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 현재 윈도우를 사용하고 있습니다. jdk21 을 intellij 내에서 설치하고, 커뮤니티에 있는 질문을 살펴보며 환경변수를 설정하고, 빌드하려고 했습니다. 그런데 전 분명 환경 변수에 jdk21을 설정했는데 cmd 창에 java -version 을 입력하면 openjdk11u ~~ 가 나옵니다. 예전에 다운 받았던 것이 잘못 나왔나 싶어 모두 찾아 삭제해봤는데 여전히 있습니다. intellij 에서 확인해봤을 때도 build.gradle 은 자바 버전이 21이고, 그에 따라 jdk 버전 21을 설정해놨었습니다. 어떻게 해야 자바 버전이 21로 나올까요?환경변수로 지정해놓은 JAVA_HOME을 눌러 해봤는데도 자바 버전이 21로 나오지 않습니다.
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
dto 변환
회원가입과 비밀번호 암호화 - 1에 5분 10초 정도 쯤에 dto를 서비스 계층으로 바로 넘기는 것이 안 좋다고 호돌님께서 말씀하셨습니다. 그래서 궁금증을 해결해 보고자 검색을 해봤습니다. 근데 dto를 컨트롤러 계층에서 엔티티로 변환하고 서비스 계층으로 넘겨야한다는 의견도 있고 컨트롤러에서 변환하고 넘기는 것보다 서비스 계층에서 dto를 변환해야 한다는 의견이 있는데 호돌님께서 말씀하신 것이 제가 고민하고 있는 것이 맞는지 알고 싶고 호돌님께서는 왜 dto를 서비스 단에 바로 넘기는 것이 안 좋다고 했는지 궁금합니다.!! 의견이 너무 갈려서 뭐가 맞는 방법인지 헷갈리네요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Book 정적 생성 메서드 사용 시, 수정 X
Book 객체 인스턴스를 생성할 때, Setter로 값을 세팅하는 것이 아니라, 이전에 배운 '정적 생성 메서스' 방식을 활용해보았습니다. 그런데, 이 방식으로 진행할 경우에는 수정 시, item.getId() ==null 이 ture가 되어 em.persist를 해버립니다.(즉, 수정을 위한 merge가 동작하지 않습니다.)[Book.class] [ItemController.class] ※이후의 Repository 관련한 코드는 모두 강의 내용과 동일합니다!!그래서 ItemRepository의 if 구문에 break point를 찍고 디버깅을 해보았는데,상품 등록 시, Item의 Id값이 세팅이 안되었더라고요. DB 테이블을 확인해보니 Item_id 값은 잘 들어가 있는데, 왜 아래와 같이 수정 시에도 id = null 인지 짧은 지식으로 이해가 안갑니다..!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
save 메서드 리턴값
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 save메서드를여기서 repository.save(member); 로 사용할때save메서드 내에서 리턴되는 member는 사용되지 않고버려지는건가요? 아님 어떻게 되는건가요?