inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

@ModelAttribute관련 질문입니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

강사님 아래 다른 분들이 올려주신 질문이랑 강사님의 답변을 봤는데도 이해가 가지 않아서 질문을 올립니다.. @ModelAttribute를 붙이면 model.addAttribute의 효과를 얻을 수 있는 것이라는 말씀은 이해가 가는데 보통 @PostMapping에서는 model 객체를 사용하지 않았던거 같은데 updateItem 함수에서는 왜 사용이 되는지랑 아래 캡쳐화면 보시면 @PostMapping ( "/items/new" ) public String create (BookForm form) { Book book = new Book() ; book.setName(form.getName()) ; book.setPrice(form.getPrice()) ; book.setStockQuantity(form.getStockQuantity()) ; book.setAuthor(form.getAuthor()) ; book.setIsbn(form.getIsbn()) ; itemService .saveItem(book) ; return "redirect:/items" ; } create 함수도 @PostMapping이면서 redirect:/items로 리턴이 되고 BookForm 객체변수명이 form 인데 왜 여기서는 @ModelAttribute가 안붙는지도 궁금합니다. 그리고 @ModelAttribute가 생략을 해도 되는건지도 궁금합니다. 요약해서 질문 드리면 1. @PostMapping에서는 보통 model 객체를 사용하지 않았던거 같은데 updateItem 함수에서는 왜 사용이 되나요? 2. create함수에서는 왜 @ModelAttribute가 안붙는건가요? 3. @ModelAttribute를 생략을 해도 되는건가요?

  • spring
  • JPA
  • 웹앱
  • spring-boot
  • java
박정훈 댓글 2 좋아요 0 조회수 423

오류 체크

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

다음과 같이 코드를 짜면 예시와 같이 정답이 나오는데 왜 오답으로 체크되는지 모르겠습니다.. import sys #sys.stdin = open('input.txt','rt') num_list=[i for i in range ( 1 , 21 )] for _ in range ( 10 ): rg_nums = input ().split() start_r = int (rg_nums[ 0 ]) - 1 end_r = int (rg_nums[ 1 ]) rg_list = num_list[start_r:end_r] end_r -= 1 for rg_idx in range ( len (rg_list)): num_list[end_r] = rg_list[rg_idx] end_r -= 1 for num in num_list: print (num , end = ' ' )

  • 카드역배치
  • python
  • 코테 준비 같이 해요!
김동규 댓글 1 좋아요 0 조회수 274

안녕하세요, 판서 프로그램 알고싶습니다.

미해결

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

안녕하세요, 강좌를 수강하고 있는 학생입니다. ^^ 제가 다른 기관에서 아이들을 가르치고 있는데, 사용하시는 판서 프로그램이 좋아보여서... (노션에서 설명하실 때 선 그으면 일정 시간 뒤 사라지는..) 혹시 프로그램을 알 수 있을까요? 감사합니다. ^^

  • react-native
  • tensorflow
  • nodejs
  • 머신러닝 배워볼래요?
  • javascript
  • HTML/CSS
  • react
  • express
Cho Jaewoo 댓글 1 좋아요 1 조회수 836

@Transacional의 범위에 대해서 궁금한 점이 하나 있습니다!

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요 강사님. 항상 훌륭한 강의 감사드립니다. 스프링 MVC 1, 2편에서 사용했던 프로젝트에 JPA를 적용시키는 도중 궁금한점이 하나 생겨서 질문드립니다. TestInitData 클래스에 @PostConstruct로 데이터베이스에 초기 데이터들을 넣어두려고 합니다. package com.myservice.web.test ; import com.myservice.domain.item.Item ; import com.myservice.domain.item.ItemRepository ; import com.myservice.domain.member.Grade ; import com.myservice.domain.member.Member ; import com.myservice.domain.member.MemberRepository ; import com.myservice.domain.member.MemberService ; import lombok. RequiredArgsConstructor ; import lombok.extern.slf4j. Slf4j ; import org.springframework.stereotype. Component ; import org.springframework.transaction.annotation. Transactional ; import javax.annotation. PostConstruct ; @Slf4j @Component @RequiredArgsConstructor @Transactional public class TestDataInit { private final ItemRepository itemRepository ; private final MemberService memberService ; private final MemberRepository memberRepository ; /** * 테스트용 데이터 추가 */ @PostConstruct public void init () { itemRepository .save( new Item( "itemA" , 10000 , 10 )) ; itemRepository .save( new Item( "itemB" , 20000 , 20 )) ; itemRepository .save( new Item( "itemC" , 15000 , 15 )) ; Member member1 = new Member() ; member1.setLoginId( "manager" ) ; member1.setPassword( "manager" ) ; member1.setUsername( " 최한슬 " ) ; member1.setGrade(Grade. MANAGER ) ; Member member2 = new Member() ; member2.setLoginId( "user" ) ; member2.setPassword( "user" ) ; member2.setUsername( "USER" ) ; // 바로 memberRepository.save 로 접근하면 현재 스레드에서 사용할 수 있는 EntityManager 가 없다고 오류 발생 memberRepository .save(member1) ; memberRepository .save(member2) ; //memberService.save -> memberRepository.save 로 접근하면 정상적으로 작동 memberService .save(member1) ; memberService .save(member2) ; } } 또한, memberRepository와 memberService는 다음과 같습니다. [memberRepository] package com.myservice.domain.member ; import org.springframework.stereotype. Repository ; import java.util.List ; import java.util.Optional ; @Repository public interface MemberRepository { Long save (Member member) ; Optional<Member> findById (Long id) ; Optional<Member> findByLoginId (String loginId) ; List<Member> findAll () ; } package com.myservice.domain.member ; import lombok. RequiredArgsConstructor ; import org.springframework.context.annotation. Primary ; import org.springframework.stereotype. Repository ; import javax.persistence.EntityManager ; import java.util.List ; import java.util.Optional ; @Repository @RequiredArgsConstructor @Primary public class JpaMemberRepository implements MemberRepository { private final EntityManager em ; @Override public Long save (Member member) { em .persist(member) ; return member.getId() ; } @Override public Optional<Member> findById (Long id) { Member member = em .find(Member. class, id) ; return Optional. ofNullable (member) ; } @Override public Optional<Member> findByLoginId (String loginId) { Member member = em .createQuery( "select m from Member m where m.loginId = :loginId" , Member. class ) .setParameter( "loginId" , loginId) .getResultStream() .findAny() .orElse( null ) ; return Optional. ofNullable (member) ; } @Override public List<Member> findAll () { return em .createQuery( "select m from Member m" , Member. class ) .getResultList() ; } } [memberService] package com.myservice.domain.member ; import lombok. RequiredArgsConstructor ; import org.springframework.stereotype. Service ; import org.springframework.transaction.annotation. Transactional ; @Service @Transactional @RequiredArgsConstructor public class MemberService { private final MemberRepository memberRepository ; public void save (Member member) { memberRepository .save(member) ; } } 현재 MemberService에는 @Transactional이 걸려있고, memberRepository에는 @Transactional 걸려있지 않습니다. 궁금한점은 TestDataInit 클래스의 init() 메서드에서 바로 memberRepository로 접근하게되면 사용할 수 있는 EntityManager가 없다고 나오며, memberService->memberRepository로 접근하게 되면 정상적으로 처리되는 것을 확인하였습니다. 두 방식 모두 결국 memberRepository를 통해 save를 수행하게 되는데 바로 memberRepository의 접근은 오류가 발생하고 memberService를 통한 접근은 정상적으로 처리되는 이유를 모르겠습니다.

  • JPA
  • java
  • spring
  • 웹앱
  • spring-boot
최한슬 댓글 4 좋아요 1 조회수 639

몽고 cluster 못찾으시는 분들

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

강의에는 안나오지만 일단 프로젝트를 하나 만들고 Build a Database 누르면 0:56과 같은화면 나옵니다!

  • react
  • nodejs
박하진 댓글 2 좋아요 8 조회수 476

RightRotate 코드 수정

해결됨

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘

영상 마지막 부분에서 코드를 수정해주셨지만 수정이 안 된 코드도 있어서 다른 수강생분들께서 참고하시라고 올립니다. Rookiss님이 올려놓으신 샘플 코드에는 수정본으로 올라와있습니다. void BinarySearchTree::RightRotate(Node* y) { Node* x = y->left; y->left = x->right; if (x->right != _nil) x->right->parent = y; x->parent = y->parent; if (x->parent == _nil) _root = x; else if (y == y->parent->left) y->parent->left = x; else y->parent->right = x; x->right = y; y->parent = x; }

  • 기술면접
eniak 댓글 2 좋아요 7 조회수 407

클래스 크기 질문드립니다

미해결

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

Class Temp { void asd() int a; char b; } 클래스의 크기를 결정할 경우 멤버 변수는 클래스의 메모리 크기에 취급이 되고 함수는 코드영역에 올라가서 클래스 메모리 취급되지 않는다고 알고 있습니다 그러면 Temp클래스의 경우 int형 4바이트 char형 1바이트 해서 총 5바이트 크기로 알고 있습니다 여기서 의문이 드는게 asd라는 함수는 코드영역에 있어도 접근할 수 있는 주소가 필요한데 함수의 크기를 전혀 잡지 않는 부분이 이해가 되지 않습니다 아니면 클래스에서 함수를 호출 할때 접근하는 다른방법이 있는지 궁금합니다

  • C++
댓글 1 좋아요 0 조회수 162

한번의 호출조차 아깝고 여러번의 호출이 두려운경우

해결됨

Slack 클론 코딩[실시간 채팅 with React]

안녕하세요. 항상 잘 듣고 있어요 감사합니다. 저는 강의중에 말씀하신 한번의 호출조차 아깝고 그 호출조차 제어하는게 좋다고 생각이 들어서 swr에 정의되어있는 mutate를 주로 사용할 거 같은데요. 이런경우 저는 shouldrevalidate는 true로서 하고 thenable 안에 mutate를 사용해서 쓸 생각입니다. 이렇게 사용한다고 가정할 때 1. swr을 잘못사용해 발생할 무분별한 호출도 걱정안해도 되고 2. deduping Interval의 간격을 고민할 필요도 없고 3. 필요할 때만 호출을 제어할수 있다는 생각이 드는데, 너무 장점만 생각이 들어서요. 물론 낙관적ui의 실패를 생각한다면 사용자를 속이는 행위가 될 수도 있지만 실패가 거의 발생하지 않는다고 가정한다면 특별히 다른 문제점이 생각이 들지 않는데, 혹시 주의할부분이 있을까요??

  • mutate
  • typescript
  • babel
  • react
  • Socket.io
  • 웹팩
  • 클론코딩
broccoliindb 댓글 2 좋아요 0 조회수 256

중복 저장

미해결

더 자바, 애플리케이션을 테스트하는 다양한 방법

mock 객체 만들어서 restful 호출했더니 왜 중복으로 저장이 될까요? postman으론 한번 저장되던데

  • JMeter
  • java
  • testcontainers
  • mockito
  • JUnit
  • ArchUnit
  • Chaos-Monkey
kim미소 파파 댓글 1 좋아요 0 조회수 312

큰 문제는 아니지만 board.cpp에 render함수 부분에서 간단한 이슈가 있어서 질문 드립니다.

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘

큰 문제는 아니지만 ConsoleColor color = GetTileColor(Pos{ y, x}); 이 함수에서 pos 유니폼 초기화를 쓰는데 오류가 발생했습니다. error C2440: '초기화 중': 'initializer list'에서 'Pos'(으)로 변환할 수 없습니다. 그래서 Pos 구조체에 생성자를 만들어서 해결했습니다. Pos(int32 _y, int32 _x) { y = _y; x = _x; } 이렇게 한번 초기화를 해주니깐 오류없이 실행이 되었습니다. 제가 현재 비주얼 스튜디오 2015를 쓰고 있습니다. 혹시 비주얼 스튜디오 문제일까요? 큰 문제는 아니지만 궁금해서 문의 드립니다;; 감사합니다.

  • 기술면접
이강동 댓글 1 좋아요 1 조회수 618

왜 입력버튼을 두 번 클릭해야 결과가 제출될까요?

미해결

웹 게임을 만들며 배우는 React

엔터키로 제출하면 바로 되는데 마우스로 입력 버튼을 누르면 꼭 두 번 눌러줘야 제출이 되더라구요. 이런 부분을 개선할 수 있는 방법도 있나요?

  • react
비가싫어요 댓글 1 좋아요 0 조회수 197

이런식으로 풀어보면 효율성이 많이 떨어질까요?

미해결

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

indexOf도 결국 계속 순회하면서 찾아야하니까 객체를 생성해서 해당 프로퍼티가 존재하면 아무것도 안하고 존재하지 않으면 let 으로 선언한 변수에 누산하면 어떨까요? 혹은 중복값 필터링을 위해 Set을 이용하고, 다시 스트링으로 조인해서 반환하는 방법은 비효율적일까요? for문이나 배열 순회보다 Set을 쓰는게 훨씬 빠르다고 알고있어서 여쭤봅니다. }

  • javascript
  • 코테 준비 같이 해요!
HYUNJUN KIM 댓글 1 좋아요 1 조회수 248

likeButton이 생기지 않습니다.

미해결

실전 리액트 프로그래밍

강의 잘 듣고 있습니다! 코드를 잘 따라친 것 같은데 버튼이 생성되지 않습니다. 무엇이 문제인지 잘 모르겠습니다..

  • react
  • redux
이소민 댓글 1 좋아요 0 조회수 209

주문 검색 관련

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요 선생님. 지난번 작성했던 내용 중 `orderRepository.findAll(OrderSearch orderSearch)` 소스 중 jpql += " m.name like concat('%', :name, '%')"; m.name like :name으로는 검색이 되지 않아서요. '%'을 앞 뒤로 넣어주도록 수정해주어야 할 것 같습니다.

  • spring-boot
  • 웹앱
  • JPA
  • java
  • spring
illhumored 댓글 1 좋아요 0 조회수 214

강의교재 신청합니다

미해결

기술적 분석 어디까지 알아보고 왔니?

강의 잘 보고 있습니다. 교재 부탁드립니다. stella9373@daum.net

  • 차트분석
  • 재테크
  • 투자
sy9373 댓글 1 좋아요 0 조회수 249

왜 index.js를 바로 볼 수 있나요?

미해결

트렐로 개발로 배우는 Vuejs, Vuex, Vue-Router 프론트엔드 실전 기술

- 어떤 이유로 index.js 파일을 라우터에서 바로 찾아낼 수 있는지 궁금합니다!

  • vuejs
  • javascript
달린다 댓글 2 좋아요 0 조회수 385

안녕하세요 강의 잘 보고 있습니다.

미해결

Kotlin으로 개발하는 Spring Boot Web MVC

안녕하세요 steve님 강의 잘 듣고 있습니다. UserRequest 에서 bean validation 을 쓸 때 @field 를 입력해야 하는 이유가 무엇인가요??

  • MVC
  • spring-boot
  • rest-api
  • JUnit
백엔드 댓글 1 좋아요 0 조회수 212

스크립트인지 클래스인지...

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

MonsterController.cs 에서 질문있습니다. Stat myStat = gameObject.GetComponent<Stat>(); 라는 식은 정확히 1. MonsterController.cs 스크립트 컴포넌트를 가진 gameObject가 Stat.cs 스크립트 컴포넌트를 추가 한 다음, 'PlayerStat.cs' 를 인스턴스화한 myStat변수에 저장. 2. MonsterController.cs 스크립트 컴포넌트를 가진 gameObject가 Stat.cs 스크립트 컴포넌트를 추가 한 다음, 'PlayerStat class' 를 인스턴스화한 myStat변수에 저장. 나름 해석을 해봤는데, 1번이랑 2번 중에 어떤게 정답인가요? 스크립트인가요 아니면 클래스인가요? 아니면 ... 사실 2개 다 정답이라고 봐도 될까요?

  • C#
  • unity
JMJ 댓글 1 좋아요 0 조회수 195

yolo 관련

미해결

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

안녕하세요 선생님, yolo관련하여 궁금한 점이 있는데 물어볼 곳이 없어서 질문드립니다. qqwweee의 yolov3모델에서 처음 50에포크는 Classification 부분만, 다음 50에포크는 전체 Layer을 Unfreeze하여서 학습을 하였는데요, yolo에 자신감을 가져서 요즘 AlexyAB의 Darknet을 도전하고 있습니다. Darknet은 Classification만 Unfreeze하는 것으로 알고 있습니다. 혹시나 선생님께서 Darknet을 사용해 보셨다면, Darknet도 qqwweee의 전이학습방법과 같이 custom하게 전이 학습을 할 수 있는 것인지 여부에 대해 여쭈어보고싶습니다. 현재 성능의 관점에서 qqwweee의 yolov3과 Darknet yolov4 둘 중에서 어떤 모델을 택할지 고심하고 있습니다. 수업 외의 질문이라서 양해부탁드립니다.

  • tensorflow
  • 딥러닝
  • keras
  • 머신러닝 배워볼래요?
  • python
  • 컴퓨터-비전
fish2631 댓글 1 좋아요 0 조회수 438

안드로이드 스튜디오 실행 관련 문의드립니다.

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

안녕하세요 강의를 수강하는도중 virtual device를 설정하고 실행시켰으나 화면이 나오지 않아 안드로이드 스튜디오 삭제 후 재 설치 하였습니다. 그 후로 프로젝트를 만들때마다 해당 오류가나와 정상적으로 실행할수 없습니다 어떻게 해결해야 하나요??

  • firebase
  • kotlin
  • android
손효선 댓글 1 좋아요 0 조회수 280

인기 태그

인프런 TOP Writers

주간 인기글