묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빈으로 등록하는 이유
controller, repository 이런걸 스프링 빈으로 등록하는 이유는 자주 사용하기 때문인가요 ?? 딱 1개만 생성이 되어서 메모리 낭비를 방지하기 위함인가요 ?그리고 해당 컨트롤러/레포지토리 객체를 만들어서 스프링 컨테이너가 들고있을 때 해당 객체의 내용을 다 포함하고 있는 형태로 들고있나요?? 아니면 인터페이스처럼 가볍게?? 들고있는건가요 ??질문이 너무 추상적이네요 죄송합니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
게시물의 신고 횟수를 추가한다면 post일까요 put일까요
게시물의 신고 횟수가 10이 되면 자동으로 삭제하는 로직을 만들고 싶은데요. 신고 사유와 확인 버튼을 누르면 게시물의 신고 횟수가 +1이 되는 로직입니다. 한 번 신고한 유저는 다시 신고를 할 수 없구요 이럴땐 postmapping 인가요 putmapping 인가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
순수 jdbc에서 동작시키면 갑자기 회원조회기능, 회원등록후 홈화면 가기가 안되ㅂ니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. https://drive.google.com/file/d/1i3bo7BW0D9boeFa4l3_EW4sBliS1sqDe/view?usp=sharing 코드는 위와 같습니다. 감사합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 readonly 거는 이유
@Slf4j static class BasicService { @Transactional public void tx1() { } @Transactional(readOnly = true) public void tx2() { } }만약에 이렇게 코드를 만드는데 tx2에서 트랜잭션을 readonly를 언제 보통 거는걸까요?tx2에 메소드에서 어차피 @Transactional(readOnly) 를 거나 안거나 성능은 별차이가 없는걸까요?두번째는 어차피 수정 삭제도아니고 조회인데 굳이 트랜잭션을@Transactional(readOnly = true) 거는 이유는 어떤경우가 있나요? 조회를 할때도 트랜잭션이 필요할때가 있어요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Mapping 할 URL을 만들 때 질문입니다.
예를 들어 게시글에 관련된 CRUD를 만들 때/board/{식별키}이런 식으로 만들고 method로 구분 하고 있는데요.이 게시글 식별키는 PK기 때문에 외부로 노출하고 싶지 않은데 따로 방법이 있을까요?겉으로 보기에는 /board 의 URL 이지만 내부적으로 이 게시글들을 구분하는 방법이 있을까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 프록시 컨테이너 호출 관계
이 그림에서요 basicService 프록시가 컨테이너에 빈으로 등록되어서 테스트 코드 클래스로 주입된다고하셨는데, 그러면 뒤에 실제 객체는 컨테이너에 빈으로 등록이 실제로 안되어있는건가요?아니면 되어있는건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@PathVariable 이 생략되도 문제가 없는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]안녕하세요. 스프링 기초부분 다잡으려고 다시 강의 보고 있습니다. @GetMapping("/{itemId}/edit")public String editForm(@PathVariable Long itemId, Model model) { Item byId = itemRepository.findById(itemId); model.addAttribute("item", byId); return "basic/editForm";}@PostMapping ("/{itemId}/edit")public String update(Item item) { itemRepository.update(item.getId(), item); return "redirect:/basic/items/{itemId}";} Post로 update를 진행할 때, 매개변수에 @PathVariable Long itemId를 선언하지 않아도 문제없이 잘 작동합니다.@PathVariable 의 이름과 파라미터의 이름이 같아서 그런가해서 {itemIdTest} 와 같이 매개변수를 변경하여도 동일하게 정상 작동합니다.궁금증이 생겨 문의드립니다. 감사합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러와 핸들러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이번 강의 예제에서SpringMemberListControllerV1SpringMemberFormControllerV1SpirngMemberSaveControllerV1위 세 가지 클래스가 Controller이고세 클래스 안에 @RequestMapping이 붙은 메서드가 handler로 이해했습니다. 이전 강의까지는 핸들러와 컨트롤러를 동일하게 생각하고 강의를 들었는데 이번 강의를 듣고 보니 차이가 있는 것 같아 컨트롤러와 핸들러의 차이점이 궁금해서 질문드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Service, Repository 사용시 MemberService-MemoryMemberRepository 관계 질
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. MemberService 클래스와 MemoryMemberRepository 클래스 간 관계가 궁금해 질문 드립니다.MemberService 클래스 내부에서 DB 접근을 위해 MemberRepository를 final로 선언하고 이를 생성자로 인스턴스를 할당 해주고 있는데, @Service, Repository로 스프링빈에 등록만 하고 따로 다른 코드를 쓰는것 같진 않은 것 같습니다.해당 클래스들은 @AutoWired를 사용하지 않아도 자동으로 매핑(?)이 되는걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
AOP 적용에 대한 이해
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. AOP를 학습하면서 특정 작업에 시간이 얼마나 걸리는지 측정하는 것은 학생입장에서 실무에서나 쓰이지 보통 학생들끼리 하는 프로젝트에서는 사용의미가 취약한 느낌이 드는데 혹시 실무가 아닌 상황에서도 유용하게 쓰일만한 다른 예시가 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
request와 response 방식의 차이..
지금까지 이해한 걸로 따지면클라이언트가 서버에 request(요청)하는데 그 요청값을 가져오기 위해 요청 파라미터, HTTP 메시지 바디를 통해 직접 조회하는걸로 이해했고이제 서버가 다시 클라이언트에게 response(응답)을 해주는 과정에 대해 알아가는 과정인거 같습니다. 불러오는 방식이라던지 조회같은 경우가 차이가 없어보여서 뭐가 다른건지 궁금해서 질문드립니다. 왜 응답도 저렇게 데이터를 가져와야하는거지.. 응답은 그냥 200 OK같은거 보내주는거 아닌가.. 하고 정리가 안되어 있는거 같습니다.제가 아직 http에 대해 지식이 부족한걸까요..?
-
미해결[React 1부] 만들고 비교하며 학습하는 React
Button에 Onclick사용
{this.state.searchKeyword.length > 0 && (<button type="reset" className="btn-reset" onClick={event => this.handleOnclick(event)}></button>)}button에다가 onClick이벤트를 줘서 리셋시켜도 상관없을까요 ?? form에다가 함수 사용하는거랑 button에서 onClick이랑 차이점이 있을까요??
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
수업 자료 오타
해당 강의 수업 자료 중 5. 스프링 MVC - 구조 이해.pdf 에서 service 오타가 있네용 😋
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MVC2 완강 후, JPA강의 듣기 전에 간단한 프로젝트를 해볼까합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]아직 실력이 부족해서 대단한 웹사이트를 만들어보려는건 아니지만,, 복습겸 JPA 강의를 듣기 전에 MVC1,2편에서 배웠던 기술들을 바탕으로 블로그같은 웹사이트를 한 번 혼자 개발 해보려고합니다. 저에겐 첫 프로젝트이기도 하고, 혼자 진행하려고 하다보니 사실 정말 막막한데요..ㅠㅠ 특히 아직 1회독이라 그런지 영한 강사님이 설명해주셨던 기능들이 기억이 안날 때도 있고 응용이 쉽지 않은 것 같습니다.첫 프로젝트는 최대한 배웠던 코드들과 수업 자료를 참고하고 읽어보면서 완성하는데에 의미를 두어야하는걸까요?아니면 오래 걸리더라도 수업 자료 참고하지 않고 혼자 개발하는데에 의미를 두어야하는걸까요?수업 자료를 참고하고, 기억 안나는 기능들을 한 번 더 정리하면서 프로젝트를 만들어야겠다고 생각했었는데, 생각해보니 저만 이렇게 기억을 못하고 응용을 못하고있는거 아닌가 싶고, 이미 그 전에 작성했던 코드를 아무리 바꿔서 작성한다고 해도 참고하여 코드를 작성하면 실력이 늘어날까? 그냥 보고치는게 되지않을까 싶어서요..ㅠㅠ 보고치는게 실력이 늘지도 잘 모르겠어서,, 그러면 프로젝트가 아닌 한 번 더 강의를 보고 2회독을 하는게 맞는건지..ㅠㅠ 어느 방향으로 가야할 지 모르겠습니다. 조언 부탁드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Model로 전달하는 것과, dto나 form을 만들어 전달하는 것
Dto로 전달하지 않고 model로 전달하는 경우는 어떤 상황에서 하는 건가요 ?? 프로젝트를 하다보면 무조건적으로 dto로 전달했어서 궁금합니다... 같은 맥락으로 form데이터도 차이가 있나요 ???
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
테스트케이스 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 강의 잘 듣고 있는 학생입니다.빌드 및 실행은 intellij 로는 안되고 gradle로 해야 실행이되고,테스트케이스실행은 gradle이 아닌 intellij로 적용해야 실행이 되는데 이유가 뭔지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JdbcTemplate강의 중복_회원_예외() 테스트 오류
DB교체 후 MemberServiceIntegrationTest 시 자꾸 아래와 같은 오류가 발생합니다.구글링을 해보니 async 들어가서 메세지 안뜨게 체크 해제하는 것과 여러 방법을 해봤는데 지속적으로 저 메세지가 뜹니다..ㅠㅠ도움주시면 감사하겠습니다.상세 오류 내용 . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.2)2024-03-06T13:03:25.170+09:00 INFO 29080 --- [ main] h.h.S.MemberServiceIntegrationTest : Starting MemberServiceIntegrationTest using Java 17.0.10 with PID 29080 (started by wlwlg in C:\개인공부\Back-End\Spring\hello-spring\hello-spring)2024-03-06T13:03:25.171+09:00 INFO 29080 --- [ main] h.h.S.MemberServiceIntegrationTest : No active profile set, falling back to 1 default profile: "default"2024-03-06T13:03:26.078+09:00 INFO 29080 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]2024-03-06T13:03:26.510+09:00 INFO 29080 --- [ main] h.h.S.MemberServiceIntegrationTest : Started MemberServiceIntegrationTest in 1.536 seconds (process running for 2.262)2024-03-06T13:03:26.549+09:00 INFO 29080 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2024-03-06T13:03:26.606+09:00 INFO 29080 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:tcp://localhost/~/test user=SA2024-03-06T13:03:26.607+09:00 INFO 29080 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appendedorg.opentest4j.AssertionFailedError: Expected java.lang.IllegalStateException to be thrown, but nothing was thrown. at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:152) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:73) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35) at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3115) at hello.hellospring.Service.MemberServiceIntegrationTest.중복_회원_예외(MemberServiceIntegrationTest.java:54) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)2024-03-06T13:03:27.222+09:00 INFO 29080 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...2024-03-06T13:03:27.227+09:00 INFO 29080 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.Process finished with exit code -1
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
applications.properties 파일이 작동하지않는거같습니다.
[질문 내용]안녕하세요 applications.proproperties에 있는 코드들이 그냥 회색 글자로 나오고 MemberServiceIntegrationTest을 실행하면 정상적으로 pass가 되긴하지만 다음과 같은 WARNING 문구가 나옵니다. 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 releaseJava HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been...이게 intellij 가 무료판이라 properties파일이 작동안하고 적런 문구가 뜨는건가요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 서비스 계층에서의 문제
트랜잭션을 리포지토리 말고 서비스 계층에 달면 문제가 생기네요ㅠㅠorg.springframework.dao.InvalidDataAccessApiUsageException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call 서비스 계층서 클래스레벨에 트랜잭션 달고 실행시 이렇게 ..나오는데 레포지토리에달면 잘 동작하는데.. 서비스 계층에 달면 왜그런걸까요..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
인텔리제이에서 실행이 안돼요
===============================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]인플리제이에서 실행이 안돼요