묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
이미지 업로드와 db 트랜잭션 묶는법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]상품 리뷰 등록·수정·삭제 시 AWS S3 같은 외부 스토리지에 이미지 업로드/삭제가 함께 발생하는데,DB 트랜잭션(리뷰 저장/삭제)과 S3 작업(이미지 업로드/삭제)은 서로 다른 시스템이라 하나의 트랜잭션으로 묶기 어렵습니다. 실무에서는 리뷰 저장/수정/삭제와 이미지 업로드/삭제를 어떤 순서와 전략으로 설계하는지 궁금합니다.
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
수강연장부탁드려도될까요..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 안녕하세요 혹시 수강연장 부탁드려도될까요..제발요..
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]eclipse 환경에서 validation 예제를 따라가고 있었는데 Bean Validation 강의부터 라이브러리가 다운받아지지 않습니다.Could not resolve: org.springframework.boot:spring-boot-starter-validation:2.4.4위와 같은 메세지가 출력되면서 외부 의존성 라이브러리를 확인해봤을 때, jakarta.validation-apihibernate-validator 라이브러리가 추가되지 않는 것을 확인했습니다. 검색해도 해결방안을 찾지 못해 질문 남깁니다. 어떻게 해결할 수 있을까요? 추가로 Eclipse는 4.16.0 버전 사용중입니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]전체 롤백을 방지하기 위해 REQUIRES_NEW를 사용하면 된다고 하셨는데 그럼 Service의 트랜잭션과는 완전히 분리되는건가요??MemberRepository가 롤백이 발생해서전체 서비스가 롤백되야 하지만서비스가 호출한 LogRepository가 커밋을 하는 경우도 발생하지 않나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 지금 영상 따라 진행하던도중 막혔는데 최신 버전 설명도 읽어봤으나 무슨 말인지도 하나도 모르겠습니다.. 계속 오류만 뜨고 화면도 전혀 다르고...
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
강의노트는 제공 안해주시는 게 맞나요?
강의 자료 다운 받아봤는데, 코드만 있네요 ㅠㅠㅠ
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
update()에 사용하는 setter 질문드립니다.
엔티티 변경감지 기능을 사용하기 위해서setter를 사용하는데요. 제 기억으로는 setter는 잘 사용하지 않는게 좋다고 강의에서 들은 것 같은데이런 경우는 엔티티 업데이트를 위해서 용인되는건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MessageSourceTest 코드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.Expecting: <"??">to be equal to: <"안녕">but was not.필요:"안녕"실제 :"??"<클릭하여 차이점 확인> MessageSourceTest 테스트 코드에서 자꾸 오르뜨는데 이유를 모르겠어요. 강의랑 똑같이 해도 오류가 나네요.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉터 에러 설정
서블릿 필터에서는 에러 설정 기본 값이 아래와 같다고 강의에서 말씀하셨는데,filterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST); 그렇다면 인터셉터는 기본값 설정이 어떻게 되어있나요?.excludePathPatterns("/css/**", "/*.ico", "/error", "/error-page/**"); 에러 페이지에 접근 하는 것을 인터셉터에서 접근 안하게 하려면 인터셉터는 /error 로 제외 시켜줘야하나요?4xx.html ,500.html 등등 다 /error 디렉토리 밑에 있으니 인터셉터는 excludePathPatterns()에서무조건 제외를 직접 시켜줘야 하나요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
resolveArgument()메서드 질문
반환값이 Object로 Member 클래스 보다 상위 클래스인데 어떻게 @Login 어노테이션이 붙은 member 변수에 대입 될 수 있나요? public Object resolveArgument(MethodParameter methodParameter, @Nullable ModelAndViewContainer modelAndViewContainer, NativeWebRequest nativeWebRequest, @Nullable WebDataBinderFactory webDataBinderFactory) throws Exception { log.info("resolveArgument 실행"); HttpServletRequest request = (HttpServletRequest) nativeWebRequest.getNativeRequest(); HttpSession session = request.getSession(false); if (session == null) { return null; } return session.getAttribute(SessionConst.LOGIN_MEMBER); }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
api 매핑 메소드를 어느 기준으로 어떤 컨트롤러에 작성해야하는지 궁금하여 질문좀 드립니다.먼저 글을 작성할 수 있는 웹사이트(게시판)가 있고, 홈화면에서 글쓰기 버튼을 눌러 글쓰기 페이지)로 이동 후 글을 쓰고 등록하면 글 데이터가 DB에 저장할 수 있는 사이트가 있다고 가정하겠습니다.그리고 프론트는 리액트이고 글쓰기 페이지로 이동시 프론트에서 요청 없이 페이지 이동을 하고 글 등록 버튼을 눌렀을 때에 /write 경로로 서버에 요청이 간다고 가정하겠습니다. 질문입니다.등록 버튼을 눌러 /write라는 url이 서버로 오면 이 url은 다음 중 어느 컨트롤러에서 매핑되어야할까요?홈 컨트롤러 - 홈화면에서 글쓰기 페이지(/write)로 이동한 것이니 홈 컨트롤러에서 매핑한다.유저 컨트롤러 - 글은 유저가 쓴 것이고 유저와 관련있으므로 유저 컨트롤러에서 매핑한다.글 컨트롤러 - 글 또한 별도로 DB에 관리되어야하므로 글 컨트롤러에서 매핑한다.이러한 비슷한 상황이 온다면 url은 어느 기준으로 컨트롤러에 매핑 시켜야하나요?감사합니다.
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
FastAPI를 선택하는 이유
강의를 들으면서 코드를 따라 쳐보거나 개인적으로 간단한 기본 게시판을 만들어보면서 "보일러플레이트가 좀 많은데?"라는 생각이 들었습니다.물론 FastAPI의 비동기 처리나 ML 붙이기도 쉬우며 api 개발과 문서화가 빠르고 간편하다는 장점이 있지만 이것만으로 실제 서비스 상황에서 FastAPI를 선택하는 이유가 되는 지에 대해 의문이 들었습니다.실무에서는 어떤 기준으로 FastAPI를 고려하게 되는 지 질문드리고 싶습니다!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp 의존성 수정 요청
spring 부트 4버전으로 올라오면서 jsp 의존성이 적용 안되던데 문서 수정이 필요할 것 같습니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
43강 검증1 에서 실패 로직 관련 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]43강의 14분15초를 보면 기존 addForm에서 item의 빈 값을 넘긴 이유 중 하나가 검증에 실패했을 때 입력한 값을 재사용 할 수 있어서라고 말씀하셨는데 model.addAttribute("item", new Item());이 라인 주석하고 페이지에서 테스트 해봐도 검증에 실패했을 때 입력한 값이 그대로 남아있습니다.제가 강사님 말한 내용을 잘못 이해하고 테스트 한건지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Unused property.....
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요왜 자꾸 Unused property 가 뜰까요?.... Gradle 업로드 해도 계속이러네요ㅠㅠ 제미나이와 몇시간을 여러방법을 썼는데 실패해서 처음 질문드려요.....
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
Drawing Cycle 관련 질문
안녕하세요, 강의 늘 잘 듣고 있습니다.다름이 아니라, 뷰의 레이아웃을 잡아주는 과정에서 Drawing Cycle & 생성자 중 어디에 무엇을 작성해야 할지 헷갈려서 개인적으로 알아보던 중 궁금증이 생겨서 질문드립니다! Drawing Cycle에 맞추어 뷰 업데이트하는 몇가지 예시init(생성자)subview 추가 (addSubview, stackView.addArrangedSubview)제약 생성 + NSLayoutConstraint.activate (1회)정적인 스타일(폰트, 색, axis, spacing 등)즉, ‘한번 바뀌고 안 바뀔 것들’을 세팅해 준다.updateConstraints()상태에 따라 레이아웃이 바뀔 때 (expanded/collapsed, 이미지 크기 토글, padding 변경, 어떤 뷰 숨김에 따른 높이 변경)constraint를 프로퍼티로 보관해두고updateConstraints()에서 constant 바꾸거나 isActive 토글필요 시 setNeedsUpdateConstraints() 호출즉, ‘동적으로 바뀔 레이아웃’을 세팅해 준다.layoutSubviews()frame이 계산된 뒤의 후처리를 수행해줘야 할 때 (그림자 경로, cornerRadius 등 frame의 정보가 필요한 것들) 먼저 제가 정리한 바는 다음과 같습니다.그런데, constraint를 updateConstraint() Drawing Cycle 내에서 지정해주는 강의 내 파트와 살짝 충돌이 발생하더라구요.GPT 및 개인적인 공부를 통해 확인했을 때에는,'constraint가 여러번 중복 적용될 수도 있으므로, 동적으로 constraint를 변경할 상황이 아니라면 생성자에서 초기화해주는 것이 좋다'라고 이해했습니다.동적으로 변경되지 않는 기본 레이아웃 제약은 생성자에서 설정하는 것이 원칙적으로 더 적절한지, 아니면 updateConstraints()에서 설정하는 방식도 올바른 패턴인지 궁금합니다.어떤 방식이 더 권장되는지 명확히 알고 싶습니다..!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
project JDK is misconfigured
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.뭐가 문제일까요,,
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, 강사님! 강의를 듣다가 리포지토리 추상화와 관련하여 실무적인 고민이 생겨 질문드립니다. ( java 학습 전에 안드로이드 kotlin 개발 중에 겪었던 문제)현재 인터페이스를 통해 리포지토리를 추상화하고, 향후 데이터 저장소가 바뀌어도 MemberService 등 비즈니스 로직을 보호하는 설계를 공부하고 있습니다. 그런데 만약 외부 시스템이나 DB의 ID 규격이 바뀌어 데이터 타입 자체가 달라지는 경우에는 어떻게 대처하는 것이 정석인지 궁금합니다.1. 타입 불일치 및 형변환의 한계 예를 들어, 현재 우리 시스템의 도메인(Member) ID는 Long인데, 나중에 도입할 외부 API의 ID가 2131293e-r1232... 같은 UUID(String) 형태라면, 물리적으로 Long으로의 형변환 자체가 불가능합니다.2. 이 경우 어떤 방식이 가장 권장되는 '정석'인가요?방안 A: 도메인 모델은 우리 시스템의 기준(Long)을 유지하고, 리포지토리 구현체 내부에서 외부 ID(String)를 별도의 필드에 매핑(저장)하며 우리만의 PK를 새로 생성한다.방안 B: 인터페이스와 도메인의 ID 타입을 처음부터 가장 범용적인 String으로 변경하여 외부 규격에 맞춘다.방안 C: 기타 실무에서 주로 사용하는 별도의 전략이 있는지 궁금합니다.3. 고민의 요지 구현체 내부에서 '임의로 타입을 가공하거나 재조립'해서 서비스에 넘겨주는 것이 도메인의 순수성을 지키는 올바른 방향인지, 아니면 애초에 이런 타입 변경의 가능성까지 고려하여 인터페이스를 더 유연하게(예: Generic 사용 등) 설계해야 하는 것인지 강사님의 실무 노하우를 듣고 싶습니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
단위/통합 테스트 버전충돌 문제
취준생으로서 아주 유용하게 강의를 듣고있습니다. 그런데 테스트코드를 실행할 때 현재상황에서 기본설정된 junit6이 지원되지않는 상황이고 build.gradle 의존성에서 junit5로 지정변경하고 테스트 케이스를 작성하고 실행할때 junit5와 6이 버전충돌해서 테스트코드가 실행이 안됩니다. 어떻게 해결해야 할까요?
-
해결됨앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?
안녕하세요, 해당 강의 18:00분 경에 앨런님께서 말씀하신 '앱을 만들 때 주로 코드로 만든다'라는 말씀에 궁금증이 들어 질문 남깁니다.UIKit을 통해 앱을 제작하실 때, 스토리보드 대신 주로 이전 강의 섹션과 같이 주로 코드를 이용해 UI를 구성한다는 말씀이신가요?스토리보드와 코드 둘 다 짧게나마 겪어본 제 입장에서는, 세그웨이를 수행하는 것 제외 스토리보드가 더욱 많은 이점이 느껴져서요.대표적으로는 VC에 UI 관련한 코드가 없어 더욱 VC가 본인의 책임에 집중하게 된다는 생각도 들고, 코드로 UI를 짜다 보면 하나 둘 빼먹게 될 확률도 높아지는 것 같아서요(스토리보드에서는 이를 바로 에러로 잡아주지만, 코드는 잡아주지 않기도 하구요)어떤 부분에 의해, 주로 코드로 UI를 구성하는 것을 선호하는지가 궁금합니다!