묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
[프로젝트 실행하는 법] for 스프링 부트 3.2 이상 자바 버전 17 이상
start.spring.io 가서 새로 만드시는 게 더 편합니다. Group : helloartifact item-servicepackage name : hello.itemservicepackaging : JarDependencies- Spring Web- Thymeleaf- Lombok그리고 form-start에서 main하고 test 폴더 그대로 복붙하시면 유일하게 한곳에서 에러 뜹니다. 아마 TestDataInit 에서 에러뜨는데 import javax.annotation.PostConstruct;-> import jakarta.annotation.PostConstruct;이렇게 변경하세요 그럼 끝
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@ManyToOne 매핑 질문입니다.
게시글과 댓글을 매핑 하려고 하는데 게시글에 어떤 댓글이 달렸는지 조회 하기 위해 게시글 -> 댓글 OneToMany 단방향 매핑을 하려고 했더니, @OneToMany는 지양하라고 해서 댓글에 @ManyToOne 매핑을 하려고 했는데요. 이러면 댓글->게시글 단방향이 되는 것 아닌가요? 게시글에 어떤 댓글이 있는지 확인을 하고 싶을 뿐인데 ManyToOne을 지양하는 이럴 땐 어떻게 해야하는지 궁금합니다 .. 매핑이 아니라 차라리 int communitySeq 를 멤버 변수로 갖도록 하고 jpql에서 join문을 통해 데이터를 가져오는 것이 맞을까요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OpenJDK 64-bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended경고가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)A. 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)A. 아니요3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)A. 네[질문 내용]테스트 코드 실행을 하면OpenJDK 64-bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended이 경고가 계속 뜹니다.https://www.inflearn.com/questions/917150/openjdk-64-bit-server-vm-warning찾아보면서 이 답변을 따라해도 로그가 뜨지 않고 경고가 뜨는데 어떻게 해야하나요?
-
미해결
인텔리제이 단축키
문장 중간에서 문장 끝으로 옮기는 단축키를 강의에서 알려주셨는데, 기억이 안 나 다시 아무리 찾아봐도 어디 있는지 찾을 수가 없네요 ㅜㅜ문장 끝으로 옮겨서 엔터 바로 치고 다음 문장으로 넘어갈 수 있게 하는 경우가 많았습니다.exApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class);여기서 ApplicationContext 자동완성하고 나서 현재 위치가 ac에 있다고 한다면이 단축키를 누르면 ;뒤로 이동하고그 다음 엔터 쳐서 다음 문장 바로 칠 수 있게 했었습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
paramMap과 model
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 둘 다 request 파라미터에 관한 변수들 아닌가요??근데 왜 두 변수로 나눠서 사용하는 건가요??
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
어떻게 MemberForm 클래스가 선택이 되는지 과정이 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의 잘 듣고 있습니다. 재밌게 강의를 듣던 중 궁금증이 생겨 이렇게 질문 드리게 되었습니다. 7분40초~7분50초 쯤 설명에 의하면 "우리가 웹에서 입력한 name값이 MemberForm의 name 필드로 전달이 된다"라는 식으로 말씀을 하셨는데, 어떻게 Member 클래스가 아닌 MemberForm 클래스의 name을 찾아가게 되는 건가요?? 제가 워낙에 초보라서 그런지, 코드 상에서 "Member의 name이 아닌 MemberForm의 name을 찾아가도록 하는" 코드도 발견을 못하겠습니다.. 또한 다른 분들의 말씀에 의해서 질문을 드리고 싶은데, MemberForm 클래스에서 setName() 메서드가 사용이 안되는 것 같은데, 7분55초~ 8분 쯤의 설명으로는 setName() 메서드를 사용하시는 것처럼 말씀하시더라구요. 이 역시도 제가 잘 몰라서 그러는데 실제로 setName() 메서드가 사용되는 건가요?? 자세한 설명 부탁드리겠습니다.감사합니다:-)
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
이 메서드를 호출하려면 URL 주소를 어떻게 써야 하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@GetMapping(value = "/mapping-param", params = {"mode=debug","mode=good"}) public String mappingParam() { log.info("mappingParam"); return "ok"; } http://localhost:8080/mapping-param?mode=debug http://localhost:8080/mapping-param?mode=good http://localhost:8080/mapping-param?mode=debug&mode=good 이 URL들로는 Whitelabel Error Page가 뜨는데 어떻게 호출할 수 있나요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
BasicErrorController 가 정확히 어디까지 자동으로 해주는 건가요?
pdf19쪽에 Spring에서 자동으로 제공하는 기능이ErrorPage 추가하고 해당 컨트롤러를 만들어준다는 것이라고 적혀있는데요 그럼 내부호출로 에러에 대한 페이지를 요청하는 내부request일때(dispatcherType=ERROR)필터와 인터셉터 재호출을 방지하기 위한 것들은 남겨둬야되는 것인가요? 즉 LogInterceptor와 LogFilter 클래스는 남겨두어야 되는건가요? ps. 그리고 /error 쪽을 찾게 되는 것은 request URL에 대한 controller가 없으면무조건 /error 쪽으로 가서 찾는거 맞나요?즉 존재하지 않는 url에 대한 요청이면 자동으로 /error로 바꿔서 처리하는거 맞나요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
제가 이해한 것이 맞느지 확인 부탁드립니당
이번에 만든 조회하는 api는 리스트로 반환해야 하기 때문ㅇ JSON이어야 하고그렇기에 함수 반환 값이 List<UserResponse>인건가요?그리고 등록 api에서 만든 users리스트 수만큼 for문 돌려서 진정한 결과 리스트(id도 포함되어있는) reponses를 만들어낸건가요..?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
data jpa로 form 객체 사용 시 정리가 안된 부분 질문드려요..
실전 data jpa를 완강하고 다시와서 듣는 중인데요머리속에 정리가 안되는 부분이 있습니다.. 예를들어Member라는 엔터티가 있고MemberForm이라는 객체를 만들었습니다(뷰템플릿에서 사용자에게 받은 파라미터를 Member로 전환하기 위해) 여기서 제가 정리가 안되는 것은 MemberForm이 Dto의 역활까지 해서 MemberForm 객체를 생성해서 사용 한다면 굳이 MemberDto를 생성, 사용을 안해도 되는 건가요? 즉 서비스계층에서 memberForm을 member로 전환 시켜주는 작업을 한번만 수행하면 되는걸까요? 추가로 서비스계층에서 그 전환과정이 있다면 서비스 계층에서는 Member 엔터티를 노출해도 되는지(Member member= new Member():와 같이) 궁금합니다. 그게 안된다면 Member 엔터티 객체 안에 MemberForm을 매개변수로 받는 생성자를 만들거나 변환메서드를 작성해야하는지 궁금합니다. 감사합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:field를 할 경우에 네추럴 템플릿 기능 소실
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 섹션2 입력 폼 처리 강의를 듣고 질문드립니다 ! th:object로 객체를 지정하고 th:field로 해당 객체의 필드를 지정해서 name , id , value속성의 값을 할당할 수 있다는 사실을 알게 되었습니다 ! 그런데 name , id , value값을 지정 안 하고 th:field 하나로 해당 값들을 대체를 했으면랜더링 안 하고 절대경로로 정적인 html 파일을 웹 브라우저에서 그대로 열었을때 th:field 기능이 사용되지 않고 name , id , value 값 또한 없으니 정적인 html을 유지하면서 그 위에 랜더링 시에 th로 지정된 속성의 동적인 html을 출력하는 네추럴 템플릿 기능을 상실하게 되는 것 아닌가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
@Transactional 내부에서 트랜젝션 템플릿이 사용되나요
@Transactional 내부에서도 결국 트랜젝션 템플릿을 사용해서 트랜젝션 처리를 하는지 궁금합니다!
-
해결됨실전! 스프링 데이터 JPA
파라미터로 받은 form을 어떻게 엔터티로 반환하는지 모르겠어요...
현재 실전 데이터 JPA수강 중인데요.. 독학 중이라 토이프로젝트로 연습하는데 오늘까지 배운 JpaRepository 상속과 관련하여 회원가입 기능 구현하려 하려는데 어디 물어볼곳이 없고 뒤죽박죽이라 정리가 필요해서 장문의 질문을 남깁니다.. 일단 제가 머릿속에 정리가 안되는 것은 영한선생님께서 최대한 컨트롤러에 엔터티를 노출하지 말고 비지니스 로직을 서비스에서 최대한 구현하라고 해서 따라하는 중인데 Member를 기준으로 파라미터를 받을 MemberForm을 생성했습니다. 여기서 질문이.. MemberForm을 생성했으면 MemberDto는 따로 생성 안해도 될까요?컨트롤러를 그림과 같이 작성하였고서비스는 아래와같이 하였는데... 뭔가 서비스에서 엔터티를 직접 만지니까 찝찝한데 실무에서도 이렇게 하는지 궁금합니다..
-
미해결
ec2 스프링 https 적용 (feat. 도메인 적용)
안녕하세요 웹 프로젝트 진행 중 궁금한 점이 생겨 질문드립니다.react와 spring으로 개발을 진행하였고 둘다 ci/cd 적용을 해서 배포를 해둔 상태입니다! 문제상황프론트는 도메인을 구입하여 https가 적용된 상태벡엔드는 Ec2에서 돌아가고 있어 탄력적 ip만 사용하여 http만 적용해결방법프론트 도메인이 xxx.com이고 도메인을 하나 더 구입하여(xxx.net) 서버가 돌고 있는 ec2와 연결해 aws acm을 사용해 https가 적용되도록 하였습니다.궁금한 점프로젝트가 끝난 후 찾아보니 xxx.com(프론트 도메인)에 서브 도메인을 등록하여서 백엔드 로드벨런서를 적용하면 api.xxx.com을 백엔드 도메인으로 사용이 가능한 것으로 이해했는데 맞을까요?서브 도메인 말고 하나의 도메인으로 프론트와 백엔드를 처리하는 방법이 있을까요?실제로 많이 사용하는 서버가 올라가져 있는 ec2에 https를 적용하는 방법은 무엇인지 궁금합니다
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터를 여기저기 옮기기 좋게 만들어보고 싶어서 고민한 방향을 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]등록 방법에는 FilterRegistrationBean 을 @Bean 으로 등록하는 방법@WebFilter 대상을 @ServletComponentScan 으로 스캔하는 방법2방법의 단점으로는 공홈에 확인 결과 내장 톰켓에서 사용된다 영상강의에 나오는 내용에 정렬순서를 지정할 수 없다고 하셨는데정렬은 @Order를 사용하면 되지 않을까요?또한 내장 톰켓을 위한 방법이기 때문에 해당 필터를 @Component로 Bean 으로 등록하면 되지 않을까요? 해당 생각대로 일단 내장 톰켓과 외장 톰켓으로 테스트 해보았습니다.우선순위의 테스트는 FilterRegistrationBean 으로 등록한 A필터 정렬순서 2로 @Order(1)와 @Component를 이용한 B필터를 확인결과@Slf4j @Component @WebFilter(urlPatterns = "/*") @Order(2)이렇게 작성하여 내장 외장 모두 잘 동작하였고 순서를 위해 @Order 기능을 확인 결과 잘 되는 것을 확인했습니다.필터를 이 프로젝트 저 프로젝트 옮기며 꽂아서 쓸수있게 만들고 싶어서 이렇게 고민했는데이 방법이 혹시 문제점이 있을 까요?또는 제가 잘못 생각한 부분이 있을까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
consumes="*\/*" 오타일까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]6. 스프링 MVC - 기본 기능.pdf 13페이지에 이 두 사진에 해당하는 내용이 있습니다.그런데consumes="*\/*"produces = "*\/*" 이건 오타인가요?인텔리제이에서 consumes="*\/*" 이렇게 해 보면 빨간 줄이 표시됩니다.
-
해결됨Practical Testing: 실용적인 테스트 가이드
안녕하세요 재고 테이블에 대해서 질문 있습니다.!
안녕하세요 멘토님 강의 잘듣고 있습니다!제가 테이블을 언제 만들어야 하고 합쳐야 되는지에 대해서 잘 모르겠습니다. 혹시 검색 키워드와 상품테이블에서 재고를 관리하지 않고 따로 테이블을 만든 이유가 있을까요 ?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
PK를 외부로 노출하지 않고 게시물 수정/삭제?
는 어떻게 하는 것이 좋은 건가요? PK이자 글 번호인 boardSeq를 가지고 와서 수정과 삭제를 진행하고 있었는데, PK는 최대한 외부로 노출하지 않는 것이 좋다고 하여서 문득 생각이 들었습니다. PK Seq를 따로 두고 UniqueKey로 똑같이 AutoIncrement해서 생성하게 된다면 결국 무슨 차이인가 싶어서 아닌 거 같기도 하고... 어떤 식으로 처리 해야 되는지 궁금하여 질문 남기게 되었습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
DB PK 를 화면에 직접 노출 시켰을 때 문제점
강의 내용을 보면 상품 목록 화면에서 item.id 값을 뿌려주고 있습니다.이건 DB 에 저장된 item 테이블의 PK 값 일텐데, 문득 이런 생각이 들었습니다.DB 데이터 관리를 위한 PK 를 클라이언트 단에 노출시켜도 되나요? (가급적 엔티티 객체를 클라이언트 단에 직접 노출시키지 말라고 하셔서, 이것도 비슷한 맥락으로 숨겨야되지 않을까 해서요)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트 코드 오류 - java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null)
plugins { id 'java' id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' // implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }자바 17 로 잘되어있고 한데 자꾸 무슨 21이 보이고웹에서는 정상 작동 하는데 테스트에서만 문제가 발생합니다.해결 부탁드립니다. ㅠㅠWARNING: A Java agent has been loaded dynamically (C:\Users\ㅋㅋ\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.11\f9cb566608fbac6bc7bf54901a7aa11543a989ee\byte-buddy-agent-1.14.11.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future release2024-01-31T22:27:28.360+09:00 WARN 3716 --- [ main] o.s.test.context.TestContextManager : Caught exception while invoking 'beforeTestMethod' callback on TestExecutionListener [org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener] for test method [public void hello.hellospring.sevice.MemberServiceIntegrationTest.회원가입() throws java.lang.Exception] and test instance [hello.hellospring.sevice.MemberServiceIntegrationTest@7901a5ab]java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84) ~[mockito-core-5.7.0.jar:na] at jdk.proxy2/jdk.proxy2.$Proxy112.getHandler(Unknown Source) ~[na:na] at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) ~[mockito-core-5.7.0.jar:na] at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) ~[mockito-core-5.7.0.jar:na] at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) ~[mockito-core-5.7.0.jar:na] at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) ~[spring-boot-test-3.2.2.jar:3.2.2] at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) ~[spring-boot-test-3.2.2.jar:3.2.2] at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) ~[spring-boot-test-3.2.2.jar:3.2.2] at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.before:na] at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:103) ~[mockito-core-5.7.0.jar:na] ... 67 common frames omittedCaused by: org.mockito.exceptions.base.MockitoInitializationException: Could not initialize inline Byte Buddy mock maker.It appears as if your JDK does not supply a working agent attachment mechanism.Java : 21JVM vendor name : Oracle CorporationJVM vendor version : 21.0.1+12-29JVM name : OpenJDK 64-Bit Server VMJVM version : 21.0.1+12-29JVM info : mixed mode, sharingOS name : Windows 10OS version : 10.0 at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260) ~[mockito-core-5.7.0.jar:na] at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23) ~[mockito-core-5.7.0.jar:na] at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[na:na] ... 70 common frames omittedCaused by: java.lang.IllegalArgumentException: null at java.instrument/sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method) ~[na:na] at java.instrument/sun.instrument.InstrumentationImpl.appendToBootstrapClassLoaderSearch(InstrumentationImpl.java:280) ~[na:na] at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:177) ~[mockito-core-5.7.0.jar:na] ... 72 common frames omitted2024-01-31T22:27:28.368+09:00 WARN 3716 --- [ main] o.s.test.context.TestContextManager : Caught exception while invoking 'afterTestMethod' callback on TestExecutionListen