안녕하세요 강의 잘 듣고 있습니다. 다름이아니라 @Configuration Class에서 Bean을 구성할 때는 @Bean public Interface interface(){ return new {구현체}; } 와 같은 방식으로 interface의 구현체를 선택하는 것으로 알고있습니다. 그래서 위의 코드에서 {구현체} 부분만 {바뀐구현체}로 바꾸면 어플리케이션 전반에서 바뀐 구현체를 사용하게 되는 것으로 이해했습니다. 다름이아니라 componentscan시에는구현체의 변경을 어떻게 해줘야하는지에 대해 제가 이해한게 맞나 궁금합니다. 인터페이스: DiscountPolicy >>>구현체1: RateDiscountPolicy >>>구현체2: FixDiscountPolicy 위와 같이 있다고 하면, @Component를 RateDiscountPolicy와 FixDiscountPolicy 둘 중 어느한쪽에만 달아주는 것으로 구현체를 지정한다고 생각하면 되나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의해서 말씀해주신대로 따라했는데 EB의 health status가 회색에서 초록색으로 바뀌질 않습니다. 로그 메세지를 보니까 에러도 떴구요... 이것저것 해결보려고 환경을 4개나 만들었습니다. 이 점 참고해주시고, 이후의 travis cli로 빌드하고 배포하는 과정에서 에러가 나더라구요. 환경이 준비가 안 되어 있다구요. VPC를 따로 설정을 해야할까요?
안녕하세요 영한님. 강의 너무 잘보고 있습니다. 다름이 아니라 실무에서 setProxyTargetClass(true)을 가끔 사용한다고 하셨는데. 아직 취업준비생의 입장인 저로써는 어떤 상황에서 사용하는지 가늠이 잘 안가더라고요 어느 특정 라이브러리가 JDK 동적 프록시말고, CGLIB만을 지원해서 그런건지 아니면 다른 어떠한 상황이 있는건지 궁금해서 질문을 남겼습니다 :) 오늘 크리스마스 이브인데, 메리크리스마스 보내세요!
안녕하세요 강의 정말 잘 듣고 있습니다! 강의를 듣다가 한가지 궁금한 점이 생겼는데요 동일한 일을 처리하는 프로그램에서 자식 프로세스를 만든다면 동일한 logical 주소를 가지게 되는건가요? 같은 메모리 물리(Physical) 주소를 사용한다고는 적혀 있는데,별도의 pcb를 만들기만하고 논리주소도 같은건지 아니면 다른건지 모르겠네요...
지금까지 공부하면서 같이 따라하면서 해봤는데 정말 이해가 잘되고 왜 이런 것을 하는지까지는 이해를 잘했습니다 근데 수업 도중마다 갑자기 다른 파일에서 무언가를 입력하고 갑자기 어떤 새로운 함수를 적는 등 이런 게 종종 등장하는데 이런 부분은 따로 공부해야하는 건가요? 아니면 몸에 체감될때까지 계속 해야하는건가요?
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
안녕하세요. 꼼꼼한 강의 감사드립니다. 개념이해와 기술 습득에 큰 도움이 되었습니다. aws 환경에서 실습한 내용을 바탕으로 보유중인 라즈베리파이에 우분투를 설치하고 개인적으로 도커기반 프로그램 구현을 하려고 합니다. 도커 설치를 위해 레파지토리 등록 중 아래와 같은 문제가 발생하여 해결 방향성을 여쭙고자 문의드립니다. (관련 자료 : MATERIALS.pdf / 6pg / 4. docker repository 등록) 1. 문제 : 레파지토리 등록 명령을 하면 '404 Not Found' 에러 메시지 발생 2. 개발환경 : 라즈베리파이 3, 우분투 20.04 https://download.docker.com/linux/ubuntu $ Release 에 Release file이 없다고 하는데, 실제 위 경로로 접속을 해보니 ~/ubuntu/dists 에 release 파일이 있는것 같습니다. 이 문제를 해결하기 위해서 1. 강의자료의 명령어에서 /dists 경로를 추가해서 명령 2. 기타 구글링 적용 시도 해보았지만 해결이 되지 않네요. 제가 놓치고 있는 부분이 있는지 강사님이 보시기에 제가 어떤 점을 살펴보아야 할지 문의드립니다. - 라즈베리파이 아키텍처 문제? - 네트워크 문제? 등 초보자라 감이 오지 않네요..
'usehistory' is not exported from 'react-router-dom'. 이러한 오류가 발생해서 , 검색을 해보니 useNavigate로 변경되었다고 합니다. import { useNavigate } from 'react-router-dom'; const navigate = useNavigate(); navigate('/home') 이렇게 사용해보니 제대로 작동하니 혹시나 안된다면 참고해보시는게 좋을 것 같습니다.
항상 친절한 답변 감사드립니다!! 또다른 질문이 있습니다. 1. 윈도우 사용할때 아나콘다 설치하면 아나콘다 prompt라는게 있던데 이거는 아나콘다 프로그램을 명령어로(UI가 아닌) 제어하는 터미널이라고 이해하면 되는 것일까요? 2. anaconda powershell prompt 와 anaconda prompt는 전자가 관리자 권한으로 하는 것이고 후자는 사용자 모드인 것인가요? 3. 다음강의 내용이긴한데 소프트 링크에서 link data가 원본 파일의 경로를 저장하고 있다고 했는데 c언어에서 포인터랑 비슷한 개념으로 이해하면 될까요?
안녕하세요 기선님, 좋은 강의를 해주셔서 감사합니다. 다름이 아니라, event 의 limit을 integer가 아닌 string으로 요청을 보냈을 때, @ModelAttribute 로 요청 파라미터로 보낼 때는 데이터바인딩 에러를 감지해서 BindingResult에 에러가 담겼는데, @RequestBody 로 요청 바디로 보낼때는 BindingResult에 에러가 담기지 않고, 400 에러를 발생시켰습니다. 제 예상으로는 HttpMessageConverter에서 데이터 변환을 할 때 발생하는 에러는 BindingResult에 담기지 않는 것 같은데, 이러한 바인딩 에러를 핸들러에서 받아서 처리할 수 있는 방법이 있을까요? 그리고 @RequestBody와 함께 사용하는 BindingResult는 Validation 체크에 대한 에러만 담기는 건지 궁금합니다. ==테스트 코드== @RestController public class TestController { @PostMapping("/events/ma") public Event maEvent(@ModelAttribute Event event, BindingResult bindingResult) { return event; } @PostMapping("/events/rb") public Event rbEvent(@RequestBody Event event, BindingResult bidningResult) { return event; } } ============== @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockMvc public class TestControllerTest { @Autowired MockMvc mockMvc; @Test public void createEvent() throws Exception { String json = "{\"name\":\"juni\",\"limit\":\"juni\"}"; mockMvc.perform(post("/events/rb") .contentType(MediaType.APPLICATION_JSON) .content(json)) .andDo(print()) .andExpect(status().isBadRequest()) ; System.out.println("==============================="); mockMvc.perform(post("/events/ma") .param("name", "juni") .param("limit", "juni")) .andDo(print()) .andExpect(status().isOk()) ; } } ===================== public class Event { private String name; private Integer limit; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getLimit() { return limit; } public void setLimit(Integer limit) { this.limit = limit; } }