묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HandlerExceptionResolver 시작 8분 7초에서 질문입니다.
package com.example.exception.resolver; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import java.io.IOException; @Slf4j public class MyHandlerExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try { if (ex instanceof IllegalArgumentException) { log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST, ex.getMessage()); return new ModelAndView(); } } catch (IOException e){ e.printStackTrace(); } return null; } } package com.example.exception.api; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.server.ResponseStatusException; @Slf4j @RestController public class ApiExceptionController { @GetMapping("/api/members/{id}") public MemberDto getMember(@PathVariable("id") String id) { if (id.equals("ex")) { throw new RuntimeException("잘못된 사용자"); } if (id.equals("bad")) { throw new IllegalArgumentException("잘못된 입력 값"); } return new MemberDto(id, "hello " + id); } @Data @AllArgsConstructor static class MemberDto { private String memberId; private String name; } } if (ex instanceof IllegalArgumentException) {위에 코드가 "ex" 객체가 IllegalArgumentException 클래스의 인스턴스인지를 확인합니다.근데 ex객체가 어디 선언되어있나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
스프링DB 2 :: 테스트 - 데이터 베이스 연동 오류
추가 질문입니다. @Data 보다는 @Getter @Setter를 쓰는게 좋다고 하셔서@Getter @Setter를 쓰고 별도 생성자도 만들었는데.......@Getter @Setter를 @Data로 변경 햤을 때 오류가 발생하지 않는 이유를 알려주세요. https://www.inflearn.com/questions/1258907/%EC%8A%A4%ED%94%84%EB%A7%81db-2-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서블릿 필터 - 인증 체크 강의 질문있습니다.
18분 4초에서 6초 사이 로그인 하면 상품목록으로 바로 보여야 하는데 제코드는 홈 화면으로 갑니다.return "redirect:"+redirecURL;를 작성하면 로그인 전화면이 보여줘야 하는데 안보여집니다.
-
미해결스프링 배치
DB 스키마 없음
안녕하세요. 아직 학습을 많이 듣진 않았지만 당장 회사 업무에 들어간 신입이라 여쭤봅니다! 프로젝트 구조는 아래와 같습니다.스프링 부트 2.1MyBatis티베로스프링 배치 4.1XML로 빈 등록 및 Job & 스텝 등록 강의 초반에 DB를 사용하게 되면 DB 메타데이터를 저장하는 스키마가 꼭 있어야한다고 했는데, 테이블을 아무리 뒤져봐도 배치에 대한 스키마가 보이지 않습니다.또한 job key(job_name, job_parameters)가 정확한진 모르겠으나 xml 잡 정의에 <job id="jobid"> 이런식으로 정의되어 있는데(job paramaeters 는 JVM 아규먼트로 받음) 같은 파라미터와 job를 id로 돌려도 잘 돌아갑니다. 제가 초반부에 수업 내용을 듣기로는 job_key가 동일하면 중복으로 안 돌아간다고 들었습니다. 이런 경우 DB를 사용하지 않는 것이 맞나요? 그리고 또 DB를 사용하지 않게 된다면 job_key도 영향이 없는 것이 맞을까요? 코드로 예시를 보여드리고 싶지만 회사 코드라 공개하기는 어려울 것 같습니다 ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서블릿 필터 - 인증 체크 질문입니다.
public class LoginController { private final LoginService loginService; private final SessionManager sessionManager; @PostMapping("/login") public String loginV3(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletRequest request) { if (bindingResult.hasErrors()) { return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(), form.getPassword()); if (loginMember == null) { bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다."); return "login/loginForm"; } //로그인 성공 처리 //세션이 있으면 있는 세션 반환, 없으면 신규 생성 HttpSession session=request.getSession(); //세션에 로그인 회원 정보 보관 session.setAttribute(SessionConst.LOGIN_MEMBER,loginMember); return "redirect:/"; }@Slf4j public class LoginCheckFilter implements Filter { private static final String[] whitelist={"/","/members/add","/login","/logout","/css/*"} @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest=(HttpServletRequest) request; String requestURI = httpRequest.getRequestURI(); HttpServletResponse httpResponse=(HttpServletResponse) response; try{ log.info("인증체크 필터 시작{}",requestURI); if (isLoginCheckPath(requestURI)){//화이트 리스트가 아닐 때 true반환 로그인 상태가 필요한 사이트이라면 log.info("인증체크로직실행{}",requestURI); HttpSession session = httpRequest.getSession(false); if (session==null || session.getAttribute(SessionConst.LOGIN_MEMBER)==null){ log.info("미인증 사용자 요청{}",requestURI); //로그인으로 redirect httpResponse.sendRedirect("/login?redirectURL="+requestURI);//로그인 되면 다시 반환된 페이지로 로그인 return; } } //화이트 리스트일 때 chain.doFilter(request,response); }catch (Exception e){ throw e;//예외 로깅 가능하지만, 톰캣까지 에외를 보내주어야 한다. }finally { log.info("인증체크필터종료{}",requestURI); } { } }public String loginV3( 안에 HttpSession session=request.getSession(); 세션이 없으면 무조건 생성인데요.class LoginCheckFilter는 httpRequest.getSession(false);이거는 왜 false인가요? 로그인과 관련된 페이지 잖아요. 로그아웃의 경우 없애버릴꺼여서 세션을 만들지 않는것까지 이해했는데요.
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
5월 5일 수업은 진행이 안된건가요?
아직 업로드가 안되길래 여쭤봅니다
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
Skid buffer에서 Valid side, Data side에 F/F이 존재하는 이유
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 안녕하세요. 맛비님. 강의 잘 보고 있습니다. 궁금한 것이 있는데요.전 강의에서 다룬 Valid / Ready I/F에서 Ready signal이 Combinational logic이어서 여러 개를 cascade하였을 때 클럭 타이밍을 맞추기 어려울 수 있어 이를 방지하기 위해 Skid buffer를 사용한다...로 이해하고 있습니다. Q. 이번 강의에서 왜 5개의 F/F을 사용했는지 이해가 잘 되지 않습니다. Valid side와 Data side F/F없이 Ready side에서만 F/F을 사용하여 Ready 신호를 PIPE/SKID 처리하면 되지 않나요?
-
미해결
get 방식과 post 방식 질문드립니다.
public class OrderController { private OrderService orderService; private MemberService memberService; private ItemService itemService; @GetMapping(value = "/order") public String createForm(Model model) { List<Member> members = memberService.findMembers(); List<Item> items = itemService.findItems(); model.addAttribute("members", members); model.addAttribute("items", items); return "order/orderForm"; } @PostMapping("/order") public String order(@RequestParam("memberId") Long memberId, @RequestParam("itemId") Long itemId, @RequestParam("count") int count) { orderService.order(memberId, itemId, count); return "redirect:/orders"; } } 제가 http관련 수업을 들었지만, 코드로 적용할 때, 좀 헷갈리는 부분이 있어서 질문드립니다. @GetMapping은 기본적으로 "order" url에 이동했을 때, 실행되는 것이 맞나요?order 페이지로 이동했을 때, 자동으로 createForm 메소드가 실행돼서 모델에 members와 items를 담고 order/orderForm으로 전달하는 절차가 맞나요? 반대로 @PostMapping은 기본적으로 "order" url에서 값의 전달이나 변경이 있을 때, 실행되는 것이 맞나요?order url에서 값을 입력하고 버튼과 같은 동작을 누르면, 그 때 order 메소드가 실행돼서 매개변수로 넘어온 memberId, itemId, count로 주문해서 저장하는 것이 맞나요? 결론적으로 차이점을 말하자면, get방식은 해당 url로 접속했을 때 실행되는 것이고, post는 해당 url에서 값을 변경이나 전달할 때 실행되는 것이 맞나요?
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
리액트 네이티브 스타일 라이브러리 사용에 대한 궁금증입니다.
일반적인 웹 개발의 경우, module css, tailwind css, styled-components, emotion, style-x, module css 등 정말 다양한 대체안들이 많은것으로 알고 있습니다.리액트 네이티브도, tailwind css나, styled-components, emotion을 사용할 수 있는 것으로 알고 있는데, 현업이나 다양한 프로젝트에서도, react-native에서 제공해주는 style-sheet를 사용하는 편인가요? 보통 리액트에서, 스타일을 적용할 떄 일반적인 컴포넌트 코드와, 스타일 코드를 따로 분리해서 적용시켜주는 방식을 많이 쓰곤하는데, 리액트 네이티브는 이렇게 한 파일에 사용하는 방법밖에 없는지 이 부분도 궁금합니다!
-
해결됨개발자를 위한 쉬운 도커
컨테이너 커널 관련 질문
안녕하세요.컨테이너 커널 관련한 질문입니다.하이퍼바이져와 컨테이너를 비교하신 설명을 듣다가 문의드릴게 있어 이렇게 글 남깁니다.컨테이너는 호스트 os의 커널을 공유하기 때문에 vm에 이기종 os를 구성하는 것처럼 다른 os 이미지로 컨테이너를 만들 수 없다. --> 여기서 질문 드릴게 있습니다.컨테이너는 호스트 os의 커널과는 별개로 자체 커널을 보유하고 있지 않다가 맞는거죠 ?nginx 이미지를 도커 허브에서 다운 받아서 컨테이너를 실행한 다음 해당 컨테이너에 쉘 환경으로 접속해 확인해보면 호스트 os의 환경과는 구성이 다르던데, 그렇다면 이건 nginx 이미지를 다운 받을 때 nginx가 설치되고 구성된 리눅스 OS 환경도 같이 다운을 받는건가요 ?(nginx 프로그램만 다운을 받는다고 해서 동작이 안될꺼고, nginx 서버가 구성이 되어야 동작이 될텐데, nginx 이미지만 받았지 프로그램이 설치되고 구성되는 OS에 대한 설정은 해준게 없어서요. 물론 예를 들어 우분투 이미지를 다운 받고 여기서 nginx 구성을 자체적으로 해주어도 되고, 도커파일로 이미지를 빌드해줘도 되지만 nginx 이미지만 다운 받는데 어떻게 제 호스트 os가 뭔지 알고 그에 맞춘 이미지 파일을 다운받을 수 있을까요 ?)ec2를 활용한다고 가정할 떄 ec2의 AMI는 아마존 리눅스를 사용하고 도커 이미지는 우분투 이미지를 다운받아 컨테이너를 실행한다면, 이 떄에는 아마존 리눅스의 커널과 우분투 커널이 100% 일치하지 않을 텐데 이런 건 어떻게 동작이 되나요 ? 감사합니다.
-
해결됨개발자를 위한 쉬운 도커
Leafy 네트워크 질문이 있습니다.
수강 중에 개인적인 궁금증이 생겨 질문드립니다.Leafy 애플리케이션에서 네트워크를 새롭게 만든 주요 이유가 기본 네트워크에서는 DNS 기능을 제공하지 않기 때문에 즉, 컨테이너가 종료되고 다시 실행될 때 IP가 바뀌게 되어 DB로 연결이 안되는 상황이 발생할수 있다고 하셨습니다.그렇다면 백엔드 에서 DB 호스트 URL을 localhost로 연결을 하면 굳이 DNS 기능을 사용 하지 않아도 될꺼같다는 생각이 듭니다. 예를 들어 EC2 서버 하나에 실습 서버인 백/프론트/DB 컨테이너를 띄울 경우 입니다 !혹시 각각 다른 EC2 서버 3대에 각각의 컨테이너를 띄워 배포하는 경우에는 DNS 기능이 필요하니 이럴 때를 위해 네트워크를 생성해서 세팅을 해야 할까요 ?
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
Listen Server 실행 시 애니메이션 떨림 문제
안녕하세요, 교수님.교수님 강의를 듣고 포트폴리오를 한번 만들어보려고 하고 있습니다.구현 중 애니메이션 관련 문제에 도달했는데요,Listen Server 실행 시, Server 측에서 'Client가 조종하는 Character의 애니메이션'을 관찰하면 해당 캐릭터 애니메이션이 미약한 떨림? 렉? 프레임저하? 가 발생하는 문제였습니다.제 프로젝트의 문제인 줄 알았으나, 교수님의 part3 프로젝트에서도, Unreal 기본 템플릿(3인칭) 에서도 같은 문제가 발생하였고,구글링을 해보았더니 엔진 상으로 알려진 문제인 것 같습니다.https://forums.unrealengine.com/t/clients-jitter-on-listen-server/343826?page=2https://forums.unrealengine.com/t/listen-server-clients-animations-are-jittery-laggy/689493/15구글링을 하여 찾아본 해결 방법으로는 애니메이션이 2배로 빨라지는 문제가 새로 발생하는 등, 확실하고 깔끔한 해결 방법이 없는 것 같습니다.직접 해결해보려 엔진 코드를 열어보고 있지만 역시 너무나 어렵습니다..이런 경우에는 어떻게 해결해야 하나요 ... ?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
5-6 의 Join 문제 2 해설이 일부 이해가 되지 않습니다
안녕하세요. 5-6 JOIN 연습문제 2번 중, 18:30 쯤에서 group by type1 을 하셨는데 여기 group by pokemon_Cnt (= tp.id) 여야 하지 않는지요?
-
미해결Practical Testing: 실용적인 테스트 가이드
강의에서 나온 Service 레이어 테스트에 대해서 질문이 있습니당
강사님은 classicist를 지향한다고 했는데, classicist의 단위 테스트는 데이터베이스와 같은 공유 의존성을 테스트 대역(mock)으로 대체해야 한다는 것으로 알고 있는데 유연한 사고(?)로 classist를 지향하지만 통합 테스트로 단위를 확인하는 것을 좋아한다 정도로 정리하면 좋을까요? 아니면 H2를 사용했으니 테스트 대역을 운영환경보단 빠른 환경으로 교체했으니 여전히 단위 테스트라고 생각을 하시는 걸까요?service 레이어를 통합 테스트로 안 짜는 팀에서 classicist를 지향한다면 DB에 대한 의존성을 어떻게 대체하는지 간단한 예제라도 보여주실 수 있을까요? ㅠ
-
미해결홍정모의 따라하며 배우는 C++
디버깅 중 루프탈출
안녕하세요! 오랜만에 c++잡아보는데 갑자기 궁금한 게 생긴 것이아래에서 f10로 디버깅 진행한다면 for문을 만나 for문에 들어가게 되는데,이때 for반복문을 탈출하고 바로 밑 코드로 탈출하는 디버깅 단축키가 있을까요..?분명히 자주 썼었던 기억이.. 서칭해보면 shift+f11가 있긴 한데 이건 함수 같은 곳에서 탈출하게 되는 것이고밑의 for문에서 사용시 그냥 디버깅이 종료되는 것 같은데 이것 말곤 안 나오는 듯 합니다 :( 감사합니다.int main() { for (int i = 0; i < 1000; ++i) { 0; } std::cout << "ok" << std::endl; return 0; }
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
예외를 전환할떄 기존 예외 포함이 무슨 말인가요?
체크예외에서 런타임 예외로 변경할 때 cause 생성자를 포함 해야한다는 의미인건가요? 그리고 기존 예외가 포함된다는게 어떤 말인지 잘 모르겠습니다. 어떻게 기존 예외가 포함이 되는건가요? 또 예외출력 로그를 보고 어디가 문제인지 어떻게 판단하고 수정을 하는건가요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
데이터가 구조가 List<dynamic> 형식일때 질문 드려 봅니다.
[ { "no": 1, "write_date": "2015-03-25 13:28:15", "content": "쇼핑몰 공지사항\r\n 활용한 게시판입니다." }, { "no": 2, "write_date": "2015-03-25 13:28:40", "content": "쇼핑몰 오픈이벤트!\r\n쇼핑몰 오픈이벤트로 최대 30% 까지 할인된 가격으로 만나보세요." },]안녕하세요.데이터가 강의처럼 meta와 data로 나뉘고 그안에 List로 들어오는게 아니고 위에처럼 그냥 List로 들어온다면 1.Future<CursorPagination<RestaurantModel>> paginate();이렇게 사용 못하는건가요?된다면class CursorPagination<T> extends CursorPaginationBase { 여기를 어떻게 해야 할지 모르겠습니다.} 2.Future<List<RestaurantModel>> paginate(); 이렇게 사용해야 한다면abstract class CursorPaginationBase {} 이거는 어떻게 사용해야 할까요? 3.Error: type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>?' in type cast 이렇게 에러가 뜨는데CursorPagination<T> 이런 구조로 한다는거 자체가 말이 안되는건가요?Future<List<RestaurantModel>> 이런 형식으로 해야 한다면 RestaurantModel을 T로 받으면서 할 수 없는건가요?CursorPaginationBase 이거는 RestaurantModel을 class RestaurantModel extends CursorPaginationBase이런식으로 사용해야 할까요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ssh-copy-id 명령어 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. [root@87f924add16e /]# ssh-copy-id root@172.17.0.4/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: ERROR: ssh: connect to host 172.17.0.4 port 22: No route to host 명령어 입력시 위와같이나오고 진행이안됩니다.서버가 안열린건지 잘모르겟는데 확인부탁드립니다
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
34강 postman에서 send 하고 status=200 -> mysql에서 조회가 안되요
포스트맨에서 등록성공후 Mysql에서 person, address 테이블 확인하면 데이타가 없거든요.근데 Mysql 팝업메뉴에서 auto-commit 을 선택하면 갱신되서 데이타 보여요. Libraryapp 테스트할때도 UI화면에서 CUD하면 Mysql에서바로 안보이고 auto-commit을 해줘야 갱신이 되드라고요.@Transactional 에서 commit 하는건지요?맞다면 왜 mysql에서 commit을 따로 해줘야 할까요..제가 mysql 툴을 안써봐서 문의드려요^^
-
미해결스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException에러가 안잡힙니다.
[질문 내용]여기에 질문 내용을 남겨주세요.https://drive.google.com/file/d/1fuxg2PcUZOT1bxTbwcTS5ZLdbO-Iz_M5/view?usp=drive_link현재 제 프로젝트 압축파일을 구글 드라이브에 업로드했습니다. 현재 듣고 있는 강의는 섹션7. 조회한 빈이 모두 필요할 때, List,Map입니다.듣고 있는 부분은 8분34초 입니다. https://www.inflearn.com/questions/1089023/이 답변을 참고해서 해결방안 2, 해결방안 3을 모두 적용해봤지만 오류가 해결되지 않고있습니다.어떤작업을 해야할까요..?