inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

mappingMap과 inithandler 외부 주입에 대한 질문 드립니다.

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 강의 후반부에 외부에서 mappingMap과 adapters를 외부에서 주입 하는 방식으로 하는 이야기를 해주셔서 만들어봤는데 말씀하신 외부에서 주입한다는 방식이 맞는지 궁금해서 질문드립니다. public class HandlerMapping implements initMyHandler{ @Override public Map<String, Object> initHandlerMappingMap() { Map<String,Object> handlerMappingMap=new HashMap<>(); handlerMappingMap.put("/front-controller/v5/v3/members/new-form", new MemberFormControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members/save", new MemberSaveControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members", new MemberListControllerV3()); //V4 추가 handlerMappingMap.put("/front-controller/v5/v4/members/new-form", new MemberFormControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members/save", new MemberSaveControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members", new MemberListControllerV4()); return handlerMappingMap; } @Override public List<MyHandlerAdapter> initHandlerAdapters() { List<MyHandlerAdapter> handlerAdapters = new ArrayList<>(); handlerAdapters.add(new ControllerV3HandlerAdapter()); handlerAdapters.add(new ControllerV4HandlerAdapter()); return handlerAdapters; } } 이렇게 인터페이스를 구현하였고 frontControllerServlert 에는 private HandlerMapping handlerMapping=new HandlerMapping(); private Object getHandler(HttpServletRequest request) { String requestURI = request.getRequestURI(); Map<String, Object> handlerMappingMap = handlerMapping.initHandlerMappingMap(); return handlerMappingMap.get(requestURI); } private MyHandlerAdapter getHandlerAdapter(Object handler) { List<MyHandlerAdapter> myHandlerAdapters = handlerMapping.initHandlerAdapters(); for (MyHandlerAdapter adapter : myHandlerAdapters) { //MemberFormControllerV3 (부모가 ControllerV3),MemberFormControllerV4 (부모가 ControllerV4) if (adapter.supports(handler)) { return adapter; } } throw new IllegalArgumentException("handler adapter를 찾을수 없습니다."+handler); } 이렇게 동작하도록 하였는데 이것도 외부주입하는 방식으로 작성 했다고 볼수 있는지 궁금합니다.

  • spring
  • mvc
maurizio 댓글 1 좋아요 0 조회수 419

[ 6 - J ] 질문입니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님, 답지에서 이해가지 않는 부분이 있어 질문을 드립니다. https://www.acmicpc.net/source/share/c2fb354cd24049edb34fbd09a91a38d3 check 함수 및 마지막에 직접 태우는 부분에서 temp = 0으로 초기화해야 올바른 답이 나온다고 생각했는데 temp = m으로 초기화 해야 하는 이유를 확실히 모르겠습니다. 예제 2를 예시로 들어봤을 때 (학생 수 : 7, 놀이기구 수 : 2, 각각 운행시간 : 3 2) temp = 0으로 초기화하고 시작하면 6분이 되었을 때 놀이기구 1은 2명, 놀이기구 2는 3명을 막 완료한 상태이므로 남은 아이들은 2명, 2명을 각각 놀이기구 1, 2에 태워 운행이 끝날 때 까지 기다리면 + 3분으로 9분이 올바른 종료 시간 같은데 아닌 이유가 무엇인가요?

  • c++
  • 코딩-테스트
dlsvmfjsrkddml 댓글 2 좋아요 0 조회수 387

실습 파일 링크

미해결

Do it! HTML+CSS+자바스크립트 웹 표준의 정석

예제 파일 링크를 못찾아서 출판사 사이트에서 직접 찾았네요. 깃헙 링크: https://github.com/Eun-Sook-Kim/doit_html_css_javascript

  • HTML/CSS
  • javascript
  • dom
Hanna Go 댓글 1 좋아요 6 조회수 945

강의 내용 중 연산자의 우선순위

미해결

홍정모의 따라하며 배우는 C언어

강의 17:00부분을 보면 어떠한 expression이 있을 때 괄호의 경우 어느것 먼저 계산될지는 c언어 표준에 정해져있지않으므로 컴파일에 따라 결정된다고 설명해주셨습니다. 그런데 구글에 c언어 연산자 우선순위를 검색하면 associativity라고 있는데 연산자 우선순위가 같은 경우 이 방향에 따라서 결정되는거 아닌가요? 괄호 같은 경우 연산자 우선순위가 1순위지만 associativity가 왼쪽에서 오른쪽이므로 여러개 있을경우 왼쪽부터 계산되는거 아닌가요? 제가 잘못이해한걸까요? 감사합니다.

  • c
CJS 댓글 1 좋아요 1 조회수 482

낙관적 락 엔티티 관련

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요.낙관적 락을 공부하며 생긴 질문을 드립니다.. @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Stock { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Long productId; private Long quantity; @Version private Long version; @Builder public Stock(Long productId, Long quantity) { this.id = null; this.productId = productId; this.quantity = quantity; this.version = 0L; } public void decrease(Long quantity) { if(this.quantity - quantity < 0) throw new IllegalArgumentException("재고가 부족합니다."); this.quantity -= quantity; } } 위와 같이 Entity 를 작성하였습니다. 실행환경은 MySQL 입니다. 동작 과정은 다음과 같습니다. 엔티티를 생성하고.. JpaRepository 인터페이스를 상속받은 Repository 의 save 메서드의 파라미터로 엔티티를 전달하였습니다.. 저는 여기서 파라미터로 전달한 엔티티 인스턴스가 영속 상태로 관리될 것이라 생각했습니다. (일반적으론 그렇더라구요..) 그런데 version 프로퍼티 때문인지.. 영속성 컨텍스트에 관리되는 엔티티는 파라미터로 전달한 엔티티 인스턴스가 아니라.. JPA 가 만들어낸 새로운 인스턴스였습니다.. (파라미터로 전달한 엔티티 인스턴스에는 id 가 채워지지 않았습니다.) 해당 상황에 대해.. 원리와 이유가 궁금합니다.. 늘 감사합니다.

  • java
  • jpa
starryeye 댓글 1 좋아요 1 조회수 377

코드 작성 관련 질문

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하세요 강의를 잘 듣고 있는 수강생입니다! 다름이 아니라 맛비님께서는 강의에 사용하시는 코드를 모두 제공 해 주셔서 해당 코드를 기반으로 강의를 진행하다 보니 제가 직접 RTL 코드를 작성할만한 타이밍이 많이 없더라구요ㅠㅠ (제가 그냥 무지성으로 강의만 듣고 따라하는 것도 있는 것 같습니다...^^;;) 강의를 들으며 강의에서 사용하시는 RTL 을 직접 코딩하며 진행 해 보고 싶은데 어떤식으로 하면 될까요...? 제공 해 주시는 타이밍 다이어그램과 블록 다이어그램을 기반으로 혼자 작성 해 보는 방식으로 진행 해 보면 될까요?

  • fpga
  • 임베디드
김재민 댓글 1 좋아요 1 조회수 346

context 관련 질문입니다!

해결됨

Flutter 앱 개발 실전

섹션3 / AssetIcon / 04:41~04:51 / Line24 color ?? context.color.text, 04:47에서 context.co까지만 입력해도 자동완성이 뜨는데요. Q1. context가 어떤걸(어떤 파일의 어떤 클래스?) 지칭하는지 궁금합니다 Q2. 어떤 매커니즘으로 theme_service import가 자동완성으로 뜨는지 궁금합니다(어떻게 인식했는지..?) 질문이 난해할 수도 있는데, context에 관한 질문입니다!

  • flutter
  • dart
  • context
안일호 댓글 1 좋아요 1 조회수 509

JPA 트랜잭션과 batch_fetch_size 질문이 있습니다.

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

@Transactional public List<Order> findAllWithMemberDelivery(int offset,int limit) { List<Order> resultList = em.createQuery( "select o from Order o" + " join fetch o.member m" + " join fetch o.delivery d", Order.class) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); return resultList; } 1. @Transaction이 있을 때 조회쿼리 select o1_0.order_id, d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status, m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id offset ? rows fetch first ? rows only 2023-07-15T01:15:30.105+09:00 TRACE 20476 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [1] as [INTEGER] - [0] 2023-07-15T01:15:30.105+09:00 TRACE 20476 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [2] as [INTEGER] - [100] select o1_0.order_id, o1_0.oder_item_id, o1_0.count, o1_0.item_id, o1_0.order_price from order_item o1_0 where array_contains(?,o1_0.order_id) 2023-07-15T01:15:30.122+09:00 TRACE 20476 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [1] as [ARRAY] - [[1, null, null, null,...] select i1_0.item_id, i1_0.dtype, i1_0.name, i1_0.price, i1_0.stock_quantity, i1_0.artist, i1_0.etc, i1_0.author, i1_0.isbn, i1_0.actor, i1_0.director from item i1_0 where array_contains(?,i1_0.item_id) 2023-07-15T01:15:30.139+09:00 TRACE 20476 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [1] as [ARRAY] - [[2, 1, null, null, null,...] select o1_0.order_id, o1_0.oder_item_id, o1_0.count, o1_0.item_id, o1_0.order_price from order_item o1_0 where array_contains(?,o1_0.order_id) 2023-07-15T01:15:30.142+09:00 TRACE 20476 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [1] as [ARRAY] - [[2, null, ...] select i1_0.item_id, i1_0.dtype, i1_0.name, i1_0.price, i1_0.stock_quantity, i1_0.artist, i1_0.etc, i1_0.author, i1_0.isbn, i1_0.actor, i1_0.director from item i1_0 where array_contains(?,i1_0.item_id) 2023-07-15T01:15:30.144+09:00 TRACE 20476 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [1] as [ARRAY] - [[4, 3, null, null, null,...] public List<Order> findAllWithMemberDelivery(int offset,int limit) { List<Order> resultList = em.createQuery( "select o from Order o" + " join fetch o.member m" + " join fetch o.delivery d", Order.class) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); return resultList; } 트랜잭션 없이 실행된 쿼리 select o1_0.order_id, d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status, m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id offset ? rows fetch first ? rows only 2023-07-15T01:19:19.943+09:00 TRACE 14616 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [1] as [INTEGER] - [0] 2023-07-15T01:19:19.943+09:00 TRACE 14616 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [2] as [INTEGER] - [100] select o1_0.order_id, o1_0.oder_item_id, o1_0.count, o1_0.item_id, o1_0.order_price from order_item o1_0 where array_contains(?,o1_0.order_id) 2023-07-15T01:19:19.957+09:00 TRACE 14616 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [1] as [ARRAY] - [[1, 2, null, null,...] select i1_0.item_id, i1_0.dtype, i1_0.name, i1_0.price, i1_0.stock_quantity, i1_0.artist, i1_0.etc, i1_0.author, i1_0.isbn, i1_0.actor, i1_0.director from item i1_0 where array_contains(?,i1_0.item_id) 2023-07-15T01:19:19.977+09:00 TRACE 14616 --- [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter [1] as [ARRAY] - [[2, 1, 4, 3, null, null, null, null, null, null]] @트랜잭션이 있을 때에는 쿼리가 5번 실행이 되고 @트랜잭션이 없을 때에는 쿼리가 3번이 실행이 됩니다. 왜 이렇게 동작하는지 생각을 해도 이해가 잘 안되네요

  • java
  • spring
  • spring-boot
  • jpa
티벳로보 댓글 1 좋아요 0 조회수 709

도메인 객체를 불변으로 만들어야 하는가가 궁금합니다.

미해결

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

Post를 수정한다면 새로 만들어지는 것이 아닌 존재하는 객체를 변경하는게 조금 더 잘 읽힐것 같은데 불변객체로 만드신 이유가 궁금합니다. 혹시 실무에서도 도메인 엔티티에 대해 불변으로 사용하나요?

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
정성훈 댓글 2 좋아요 2 조회수 1691

chmod 0755 vs 755

해결됨

리눅스 입문 - 개념으로 탄탄히!!

둘의 차이가 무엇인지 궁금합니다. 아래의 답변 내용을 읽다가 지난 강의에서도 chmod를 0755로 설정하시는 것 같아 그 정확한 차이가 궁금해졌습니다... 구글링해보긴 했는데 0755(=755)와 1755/2755/4755에는 차이가 있다고 해서 그 설명이 듣고 싶습니다...

  • linux
뭉뭉치 댓글 2 좋아요 0 조회수 1040

섹션5 인벤토리 강좌에서 Weapon 구현부 작성 질문

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

Weapon::Weapon() : Item(IT_Weapon) { switch (_rarity) { case IR_Normal: _damage = 1 + rand() % 5; break; case IR_Rare: _damage = 10 + rand() % 5; break; case IR_Unique: _damage = 50 + rand() % 5; break; } } 이 부분에서 맨 위, Item(IT_Weapon) 가 어떻게 나온건지 궁금합니다. : 뒷 부분은 초기화하는 것을 간략하게 나타낸 것이 아닌가요? 그렇다면 Item = IT_Weapon; 이라는 코드 대신에 사용했다는 말인데, Item 자체는 class 명인데 코드가 말이 안되는 것 같습니다..

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
재민 댓글 2 좋아요 0 조회수 399

네이버 상품정보 수집하기에서 상품정보에 광고 정보는 htm

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 기본편

안녕하세요, 스타트코딩 선생님! CSS 선택자 부분 중 광고 상품정보 : adProduct_info_area__dTSZf 일반 상품정보 : product_info_area__xxCTi 이렇게 name 으로 지정할 CSS 선택자가 다르지만, price 로 지정할 CSS 선택자는 price_num__S2p_v 로 두개 모두 동일 합니다. 따라서 코드를 작성할 때 상품정보의 수가 일치하지 않는 오류 가 생기는 이럴땐 어떻게 해결해야 하는지 알려주세요. 상품정보의 수가 일치하지 않는 부분 광고 상품정보 : adProduct_info_area__dTSZf (모두 8개) 일반 상품정보 : product_info_area__xxCTi (모두 40개) 가격정보 : price_num__S2p_v (모두 48개) 답변 부탁드립니다. 감사합니다.

  • python
  • 웹-크롤링
logan1i 댓글 2 좋아요 0 조회수 329

type선언보단 interface를 쓰는 것이 낫지 않나요?

미해결

한 입 크기로 잘라먹는 타입스크립트(TypeScript)

interface는 호환성도 좋고 선언 합침도 쉽고 함수의 오버로딩도 가능한데 type대신 interface를 사용하는 것이 더 좋은 것 아닌가요? 왜 이 둘을 나눈 것인가요?

  • typescript
김강연 댓글 2 좋아요 0 조회수 763

연결요소의 개수 구하기(백준11724) 질문

미해결

Do it! 알고리즘 코딩테스트 with JAVA

DFS 함수 구현 부분에서 if(visited[v]){ return; } 처럼 탈출 조건을 사용하는 이유가 무엇인가요? 재귀를 시작하기전에 조건문으로 visited가 false일때만 시작하도록 설정했으니 필요없는 부분이 아닌가요?

  • java
  • 코딩-테스트
  • 알고리즘
이정빈 댓글 1 좋아요 1 조회수 596

객체 생성

해결됨

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

문득 임시 객체를 연습하다가 궁금한 점이 있어 질문드립니다. Q. 객체 생성을 위해서는 반드시 어떤 방법으로든 생성자가 호출되어야하나요?

  • c++
잇택잇 댓글 1 좋아요 0 조회수 294

분산형 차트 질문입니다.(수업내용)

미해결

쉽고 빠르게 익히는 Power BI (기본편)

안녕하세요, 시각화 수업내용 중 분산형 차트에서 재생축에 연도를 입력했는데, 오류가 발생하여 문의드립니다ㅜㅜ 확인 부탁드리겠습니다.

  • ms-office
  • Power-BI
Dash Choi 댓글 1 좋아요 0 조회수 465

뭔가 강의를 건너뛴건가.. 잘못작성한건가..

미해결

3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]

15강#0 답변쓰기페이지 -- 4:21 초 BoardServiceImpl.java - 60행 - showBoard가 아니고 showUser로 되어있는데.. service.java 도 void checkUser(HttpServletRequest request)throws Exception; void saveBoard(HttpServletRequest request)throws Exception; HashMap<String, Object> showUser(HttpServletRequest request)throws Exception; ArrayList<HashMap<String, Object>> showUserList(HttpServletRequest request)throws Exception; 제가 건너 뛴 건가요 ㅠㅠ 이력서내고 입사준비하고 여러가지 난리가 나서 드문드문봤는데.. 강의자료 15강 zip파일 import 시켜서 해야겠네요 ㅠ 주석많이달아놨는데

  • spring
  • 전자정부프레임워크
Lannister 댓글 1 좋아요 0 조회수 375

프로젝트 중인데 강사님 질문입니다 ㅜㅜ

미해결

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

현재 프로젝트 진행중입니다. 전 백앤드담당이긴한데, 여튼 프론트분들의 프로젝트를 로컬에서 실행해보려고하는데요. 자꾸 이렇게 오류가 납니다.. 왜이런건가요? 다음은 Dockerfile.dev파일입니다. 강의대로 Dockerfile.dev를 작성하였습니다.

  • aws
  • docker
  • github
  • ci/cd
  • travis-ci
  • 데이터-엔지니어링
댓글 1 좋아요 0 조회수 526

강의 후기 작성하는 곳

미해결

피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z

강의 후기 작성은 어디에 하면 될까요??

  • 웹-디자인
  • 모바일-디자인
  • figma
yeawon7 댓글 1 좋아요 0 조회수 532

트랜스파일링

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

2강 14분쯤 const add = (x=10, y=20) => x + y + 10 console.log(add(1)) 이 코드는 x = 1, y = 20 해서 31이 출력되야 하는거 아닌가요?

  • react
  • python
  • django
  • docker
gomteng03 댓글 1 좋아요 0 조회수 167

인기 태그

인프런 TOP Writers

주간 인기글