묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Java 마이크로서비스(MSA) 프로젝트 실습
ci/cd 항목이 없습니다.
강의 따라 하고있습니다만.. ci/cd 지식이 없는경우??기존에는 깃만 사용하다가 강의들으면서 처음 사용하게되었습니다.강의내용 처럼 ci/cd메뉴를 설정하는것을따라하는 방법이 있을까요?아래는 제가 깃러너?랑 깃랩 설치한 부분입니다.따로 추가 설정해야 하는 부분이 있을까요?동영상의 내용과 비슷하게 진행할수가 없습니다.깃 런너 설치도 여러번 해야지 설치가 생각보다 잘 안됩니다..깃랩을 처음 사용하는 사람이다보니까런너 부터 연결해서.gitlab-ci.yml? 그것을 한다음에..깃랩에 msa 프로젝트 올려야하는것같은데..처음부터 설명이 없으시니까 우왕자왕하게되네요..파이프라인 어떻게해야할지 모르겠습니다.진행이 어렵습니다.깃랩을 하는데 있어서 CI/CD메뉴가 처음부터 없으면 어떻게해야하면 좋을까요?
-
미해결스프링 핵심 원리 - 기본편
ApplicationContext @Autowired관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.providerTest()를 할때 new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class) 를 하면서 스프링 컨테이너를 생성한다는것 까지는 이해가 됐습니다. 저는 여기서 스프링컨테이너에 ClientBean, PrototypeBean 모두가 등록이 되어야 스프링컨테이너가 완성되는거라고 생각했습니다. 하지만 ClientBean을 빈으로 등록하려면 @Autowired로 ApplicationContext를 주입받아야 빈으로 등록이 되는건가요? 만약 그렇다면 ClientBean을 빈으로 등록할당시에는 AnnotationConfigApplicationContext가 아직 완성되지않아서 @Autowired에 주입할 수 없을것같아서 이부분이 이해가 가지않아 질문드립니다. 아니면 빈등록을 할때는 의존관계 주입까지 끝내는게 아니라 빈으로 등록할 class정보만을 받고 그 이후에 의존관계를 주입하는걸까요? 정확한 작동원리가 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 연결 후 localhost 거부
h2 연결 후 localhost:8080연결 시 계속 서버 거부가 다음과 같이 뜹니다. 그래서 h2 재연결 후 상태를 확인해봤는데 다음과 같이 떴습니다. h2 설치 과정은 다음과 같습니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ExceptionHandler을 사용할 경우, 트랜잭션 롤백 질문
@Slf4j @Controller public class ExampleExceptionControllerAdvice { //사용자가 Argument를 잘못 보낸 경우 @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(IllegalArgumentException.class) public ErrorResult illegalExHandle(IllegalArgumentException e){ log.error("[exceptionHandle] ex",e); if(1==1) { //throw new RuntimeException("예외 발생"); } return new ErrorResult("BAD", e.getMessage()); } @ResponseBody @GetMapping("/api/members") public String members(){ if(1==1){ throw new IllegalArgumentException("예외"); } return "Hello"; } } members 메서드에서 오류를 강제로 발생시킨 후,illegalExHandle 메서드에서 오류를 catch한 뒤 응답을 하는 것으로 강의 내용을 이해하였습니다. 이럴 경우, 트랜잭션 롤백이 발생하기 위해서는 어떻게 해야 하는 지 알고 싶습니다. [첨부 - 챗 GPT 답변]예시 코드@Service public class MyService { @Transactional public void doSomething() { // Some business logic throw new RuntimeException("Something went wrong"); } } @Controller public class MyController { @Autowired private MyService myService; @PostMapping("/example") public String handleRequest() { myService.doSomething(); return "success"; } @ExceptionHandler(RuntimeException.class) public String handleRuntimeException(RuntimeException ex) { // Exception handling logic // If we return without re-throwing the exception return "error"; } }위의 예제에서 doSomething() 메서드에서 발생한 RuntimeException이 handleRuntimeException 메서드에서 처리되면, 예외가 다시 던져지지 않으므로 트랜잭션은 롤백되지 않습니다.결론@Transactional이 서비스 계층에 있고, @ExceptionHandler가 컨트롤러 계층에 있을 때, 예외를 @ExceptionHandler에서 잡아 처리한 후 다시 던지지 않으면 트랜잭션은 롤백되지 않습니다. 만약 트랜잭션이 롤백되길 원한다면, @ExceptionHandler에서 예외를 다시 던져야 합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
/add에 dto사용 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]새로고침 시 상품이 중복 등록되는 문제는 POST가 멱등하기 때문인 것이 맞나요?/add에서 @ModelAttribute로 Item 객체를 바로 만들어서 save했는데, 이 경우 Dto를 거쳐서 저장하는 것이 올바른 방법인가요? @Data public class ItemDto { private String itemName; private Integer price; private Integer quantity; }@PostMapping("/add") public String addItemTest(@ModelAttribute ItemDto itemDto) { Item item = new Item(itemDto.getItemName(), itemDto.getPrice(), itemDto.getQuantity()); itemRepository.save(item); return "basic/item"; }dto를 사용하는 방식으로 변경해봤는데, id가 null이라는 예외가 발생했습니다.org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'id' cannot be found on null에러페이지가 나오지만 목록 페이지로 갔을 때 상품은 정상적으로 저장이 되고 있습니다.controller의 save부분에서 item의 id가 자동으로 생성되고 있는데, 왜 이런 문제가 발생하는지 궁금합니다. -- 수정 --@PostMapping("/add") public String addItemTest(@ModelAttribute ItemDto itemDto) { Item item = new Item(itemDto.getItemName(), itemDto.getPrice(), itemDto.getQuantity()); itemRepository.save(item); return "redirect:/basic/items/" + item.getId(); }redirect로 수정하니 3번 문제는 해결되었습니다. 하지만 이전 코드에서 왜 저런 예외가 떴는지는 아직 모르겠습니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
@Autowired를 쓰면 밑줄이 떠서 찾아보니 PrototypeBean과 ClientBean에 @Component를 붙여야 하는데 질문있습니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Slf4j @SpringBootTest class MemberServiceV3_3Test { @Autowired private MemberRepositoryV3 memberRepository; @Autowired private MemberServiceV3_3 memberService; @BeforeEach void before() { DriverManagerDataSource dataSource = new DriverManagerDataSource(URL, USERNAME, PASSWORD); memberRepository = new MemberRepositoryV3(dataSource); PlatformTransactionManager transactionManager = new DataSourceTransactionManager(dataSource); memberService = new MemberServiceV3_3(memberRepository); } @AfterEach void after() throws SQLException { memberRepository.delete("memberA"); memberRepository.delete("memberB"); memberRepository.delete("ex"); } @Test @DisplayName("정상 이체") void accountTransfer() throws SQLException { //given Member memberA = new Member("memberA", 10000); Member memberB = new Member("memberB", 10000); memberRepository.save(memberA); memberRepository.save(memberB); //when memberService.accountTransfer(memberA.getMemberId(), memberB.getMemberId(), 2000); //then Member findMemberA = memberRepository.findById(memberA.getMemberId()); Member findMemberB = memberRepository.findById(memberB.getMemberId()); assertThat(findMemberA.getMoney()).isEqualTo(8000); assertThat(findMemberB.getMoney()).isEqualTo(12000); } @Test @DisplayName("이체중 예외 발생") void accountTransferEx() throws SQLException { //given Member memberA = new Member("memberA", 10000); Member memberEx = new Member("ex", 10000); memberRepository.save(memberA); memberRepository.save(memberEx); //when assertThatThrownBy(() -> memberService.accountTransfer(memberA.getMemberId(), memberEx.getMemberId(), 2000)) .isInstanceOf(IllegalStateException.class); //then Member findMemberA = memberRepository.findById(memberA.getMemberId()); Member findMemberEx = memberRepository.findById(memberEx.getMemberId()); //memberA의 돈이 롤백 되어야함 assertThat(findMemberA.getMoney()).isEqualTo(10000); assertThat(findMemberEx.getMoney()).isEqualTo(10000); } }다음과 같이 @Autowired를 쓰면 밑줄이 떠서 찾아보니 PrototypeBean과 ClientBean에 @Component를 붙이면 해결된다고 합니다. PrototypeBean과 ClientBean에 대해서는 아는게 없어서 GPT에 물어봤는데 PrototypeBean과 ClientBean을 정의하고 @Component와 @Scope를 붙히면되고, Spring 컨테이너 설정은 @ SpringbootAplication 이 붙은 클래스가 있는 경우를 전제하에 설명해줬습니다.마지막에 프로토타입빈을 주입받아서쓰면된다고 합니다. 막혔던 부분은 일반적으로 애플리케이션의 PrototypeBean과 ClientBean을 정의하는 코드는@SpringBootApplication 클래스가 위치한 패키지와 그 하위 패키지 내에 배치해야만 한다는데 따로 @ SpringbootAplication이 있는 클래스가 없는데 새로 만들어야되는지 모르겠어요ㅠ마찬가지로 spring컨테이너 설정도 @ SpringbootAplication을 전제하에 설명하는데 지금 코드에 관련 애노테이션은 @SpringBootTest만 있는데 전혀 감이 잡히질 않습니다ㅠ
-
미해결스프링 핵심 원리 - 기본편
@Test @DisplayName 안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]위 두개를 임포트해도 오류가 뜹니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 데이터베이스 member 테이블 생성이 안 돼요
테스트 코드는 오류 없이 초록불이 뜨는데 DB 내 테이블 생성이 안 됩니다. 강사님의 다른 강의와, 응용 프로젝트를 만들어 볼 땐 잘 됐어서 자주 묻는 질문들을 참고해도 어느 곳이 문제인지 잘 모르겠네요ㅠㅠ.. 일단 올려두고 계속 방법을 찾아보겠습니다! package jpabook.jpashop; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import static org.junit.Assert.*; @RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() throws Exception{ //given Member member = new Member(); member.setUsername("memberA"); //when //ctrl+alt+v 변수 뽑기 Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); //then Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); //JPA 엔티티 동일성 보장 } }spring: application: name: jpashop #port번호 설정 server: port: 8050 #DB datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver #JPA jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true logging: level: org.hibernate.SQL: debug org.hibernate.orm.jdbc.bind: trace
-
미해결토비의 스프링 부트 - 이해와 원리
강의 자료 레퍼지토리에 업로드
안녕하세요, 강사님.저는 강사님의 스프링 부트 강의를 수강하며 학습하고 있는 학생입니다. 학습한 내용을 정리하고 코드와 함께 깃허브에 업로드하여 관리하고 있습니다.제가 학습의 편의를 위해, 강의에서 제공해주신 자료도 함께 깃허브 레포지토리에 올려서 관리하고자 하는데, 이를 public으로 설정해도 괜찮을지 여쭤보고 싶습니다. 만약 문제가 된다면, 레포지토리를 private으로 설정하고 학습 자료를 개인적으로만 참고하겠습니다.답변 주시면 감사하겠습니다!감사합니다.
-
해결됨Practical Testing: 실용적인 테스트 가이드
데이터 일관성유지를 어떻게 하면서 테스트하는지 궁금합니다.
안녕하세요. 인강 너무 잘 들었습니다. 궁금한 게 몇 가지 있어 질문드리게 되었습니다.현재 H2 데이터로 테스트 코드를 작성해 주셨는데요. 개발 환경의 DB 서버를 My-sql DB로 생성하고 테스트 코드를 구현하게 되면, 다른 개발자로 인해 DB의 데이터가 인입되면서 테스트 코드의 일관성이 깨지는 경우가 많이 발생되었습니다. 그렇다고 H2 데이터로 로컬환경을 붙이려고 하니 Mysql과 H2의 엔티티의 컬럼 선언이 다른경우가 존재해서 JPA의 자체 auto-ddl: create가 안먹히는 경우가 발생이되었습니다. [요약]개발 환경을 MY-SQL DB로 구현하면 같이 개발하면서 데이터가 인입되면서 테스트 코드의 일관성이 깨짐그렇다고 H2 DB로 진행하려고 하니, 엔티티의 칼럼 설정하는 것이 달라서 스프링 부트가 실행되지 않음Service Layer에서 일관성 있게 테스트 환경을 설정하려면 H2와 Mysql을 같이 돌릴 수 있게 프로젝트를 변경해 줘야 되는지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 빌드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.gradlew build를 하면 계속 오류가 떠서 게시판 글들을 살펴보았는데요. V3 실시간 검사를 해제하면 된다는 이야기가 있길래 해보려고 했는데, 비밀번호가 걸려있어서 실시간 검사 해제가 안 됩니다..인터넷 검색을 해도 비밀번호를 찾는 방법은 안 나오네요. 이거 때문에 지금 이틀 동안 진도가 안 나가는데 어떻게 해야 할까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러를 사용하지 않고 단순 html 버튼으로 상품 수정 취소 후 화면 랜더링
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]상품 수정 화면에서 수정 취소를 할 때, 컨트롤러를 사용하지 않고 단순 html 에서 버튼으로 경로를 지정해 주어서 상품 화면으로 이동합니다.이 때 상품 화면을 랜더링할 때 model에 담거나 할 필요가 없는 이유가이미 이전에 아래의 컨트롤러@GetMapping("/{itemId}") public String item(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/item"; }를 통해서 해당 경로에 값이 다 담긴 상태가 저장되기 때문 이라고 생각하면 될까요?저장된다면 어디에 저장되는 걸까요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
CSR 에 대한 질문입니다.
강의 9:34 쯤의 CSR 설명 부분에서 자바스크립트 링크가 어떤 정보를 내포하고 있는지 궁금합니다!2번 과정에서는 그 자바스크립트 링크를 바탕으로 요청을 해서 자바스크립트 및 클라이언트 로직, HTML 렌더링 코드를 서버로부터 받는 건가요..?
-
미해결스프링 핵심 원리 - 기본편
애노테이션 기반 빈 자동 등록 / OCP 위반에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]학습을 통해애노테이션 기반 빈 등록에서1. @Configuration 을 통한 수동 등록@Conponent 와 @ComponentScan 을 통한 등록 방법이 있다는 것은 알았습니다.자동 등록의 경우, 결국 클라이언트 코드를 수정할 일이 발생하니 OCP 위반이고, 편의성을 위한 트레이드 오프라는 것도 표면적으론 알겠는데요..실무에서는 두개 섞어서 쓰게 되나요?아님 불편해도 객체지향 원칙에 부합하는 수동 등록하게 되나요? 특정 버전 이후부턴 자동 vs 수동 = 수동 win 에서자동 vs 수동 = 오류! 라니까 뭐가 더 적합한지 헷갈립니다.
-
미해결스프링 핵심 원리 - 고급편
로그구분을 위한 traceId에 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제가 생각한 로그는 사용자 별로 어떤 행위를 하였는지 추적하기위해서 로그를 사용하는걸로 알고 있었습니다.현재 강의에서 설명해주신 로그는 사용자를 특정하지 않고 요청에대한 로그만 uuid로 구분하여서 어떤 행위를 하였고 어떤 예외가 발생하였는지 파악하기 위한 로그인거 같습니다. 만약 사용자의 행위를 추적하기 위한 로그를 남기려면 traceId를 uuid가 아닌 사용자의 ip나 pk를 id로 사용하여 로그를 남기게 하면 되는건가요? 그리고 로그는 따로 보관하여 관리해야 할거 같은데 그럴때는 데이터베이스를 사용하나요 아니면 파일입력을 통해 디렉터리에 보관하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 7:16 그림 나오는 부분에서 질문입니다!
WAS에서 request, response 객체를 만들어서 서블릿의 파라미터로 넘기는건 이해했는데 여기서 request 객체엔 요청 정보가 담겨있고 response 객체는 빈 객체인 상태인가요? 한 마디로 응답 메세지는 서블릿 컨테이너나 혹은 종료 후 다시 WAS 서버에 response 객체가 도달했을 때 정보가 들어간다고 보면 될까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MessageSourceTest 실행시 오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MessageSourceTest 파일을 실행했을 때 오류가 발생합니다.Expecting: <"??">to be equal to: <"안녕">but was not.Expected :"안녕"Actual :"??"<Click to see difference>org.opentest4j.AssertionFailedError: Expecting: <"??">to be equal to: <"안녕">but was not.at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)at hello.itemservice.message.MessageSourceTest.helloMessage(MessageSourceTest.java:20)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)2024-08-16 16:42:56.803 INFO 7205 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'MessageSourceTest > helloMessage() FAILED org.opentest4j.AssertionFailedError at MessageSourceTest.java:202 tests completed, 1 failed> Task :test FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':test'.> There were failing tests. See the report at: file:///Users/yujihun/Desktop/message-start/build/reports/tests/test/index.html* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 3s4 actionable tasks: 2 executed, 2 up-to-date도저히 원인을 모르겠어요
-
해결됨스프링 시큐리티 완전 정복 [6.x 개정판]
강사님 15분 17초 쯤 질문있습니다
인증된 사용자는 세션에 저장했다면 세션으로 부터 가져와서 시큐리티 컨텍스트에 저장한다라고 말씀해주셨는데요제가 이해한게 맞는건가싶어서요=> 인증된 사용자는 세션에 (시큐리티 컨텍스트를) 저장했다면 세션으로 부터 (시큐리티 컨테스트를) 가져와서 시큐리티 컨텍스트(홀더에) 저장한다이렇게 이해했는데 맞는건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서블릿,서블릿 객체
@WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet {} HelloServlet 가 서블릿이고, 스프링부트 실행시 서블릿의 객체가 생성되는것 같은데name = "helloServlet" 가 의미하는것은 무엇인가요?? 서블릿 객체 이름을 의미하는건가요?아니면 그냥 서블릿 식별자 정도 인가요??
-
미해결스프링 핵심 원리 - 기본편
프로젝트 생성 오류
강의 내용 그대로 따라했는데 강사님은 다운로드 하고 build.gradle 을 누르면 바로 인텔리제이로 이동되는것같은데 저는 인텔리제이로 열어지지가 않고 자꾸 비주얼스튜디오코드로 열립니다. 제가 인텔리제이에서 따로 들어가서 설치를 하거나 설정을 해야할것이 있는걸까요? 강의 처음부터 놓치지 않고 따라하고 있는데 안되니까 몇시간째 너무 스트레스를 받고있는 상황입니다.