다른 모델 강의와 다르게 최종 Evaluation 과정이 나와있지 않아 질문드립니다. 테스트데이터도 TFRecord 형태로 변환한 뒤 tf2의 eval.py 혹은 efficientdet_keras_test.py 모듈을 사용하면 되는 것인지, AutoML EfficientDet 모델의 Evaluation 과정을 어떻게 진행하면 되는지 알고싶습니다.
안녕하세요. 회원 목록 Memory 에 저장하는거를 토대로 그냥 시간, 할 일 데이터를 받아와서 출력하는 예제를 해보고 있습니다. ( 수업 때 진행하셨던 부분을 토대로 한거라 구조는 같은데 Model에 date,work 가 저장되어 변수 하나 더 추가해서 해보는 중입니다. ) - 날짜, 할 일을 입력 받는 것까지 되는거는 확인 했습니다. - 1 을 보시면 아시다 싶이 id 값은 출력이 됩니다. 그런데 date 와 work 로 설정해놓은 데이터들이 출력이 안됩니다. 소스파일은 zip 파일로 묶어서 구글드라이브에 올려놨습니다. ( https://drive.google.com/file/d/1aTSxDKgxCr-do_l9oV0zNX3NTc7jDfRN/view?usp=sharing ) 한번 확인 가능하시면 어떤 부분을 놓치고 있는 것인지 조언 부탁드립니다.
안녕하세요. 컬렉션과 스토어 정리가 잘 되지 않아 질문드립니다. https://www.inflearn.com/questions/265095 를 읽고나서 조금 더 혼란스러워서요..ㅠㅠ 위 질문에서 DELETE /members/{memberid} 는 생성/관리의 역할을 서버가 맡고 있다고 보는것이 맞다라고 답변이 적혀있는데요. 강의에서는 PUT /files/{filename} 은 클라이언트가 리소스의 URI를 알고 관리하기 때문에 /files는 스토어라고 설명되고 있습니다. 형태만 봤을 땐 files나 members의 URI 형태나 처리하는 방식이 비슷해 보여서 정리가 되지 않습니다.ㅠ PUT /files/{filename} 은 파일 자체를 만들어주는것이(생성)이 아니라서 스토어이고, DELETE /members/{memberid}는 멤버정보를 DB에 저장해서 하나의 회원을 생성/관리(수정,삭제)하기 때문에 컬렉션이라고 이해하면 될지요? 그게 아니라면 파일도 결국 members처럼 파일정보를 넘겨서 파일은 서버에 저장하고, 파일정보는 DB에 저장하므로 서버에서 처리하는게 아닌가하는 의문이 듭니다. 매번 답변해주셔서 감사합니다 :)
클래스 변수를 이용한 코드를 혼자서 작성하다가, 조금 궁금한 부분이 있어 질문드립니다. 사람이 가방에 물건을 넣는 동작을 클래스로 구현해보고자 했는데요 class Person : bag = [] def put_bag ( self , stuff ): self . bag . append ( stuff ) james = Person () james . put_bag ( '책' ) maria = Person () maria . put_bag ( '열쇠' ) print ( james . bag ) print ( maria . bag ) 다음과 같이 bag 라는 클래스 변수를 선언하고, 코드를 실행해보니 james.bag와 maria.bag를 출력한 결과가 같게 나왔습니다. 각각 다른 인스턴스를 생성하여 bag에 물건을 넣었는데도 결과가 같게 나온 이유를 생각해 보았는데요... james . put_bag ( '책' ) 이 코드를 실행하면 def put_bag ( self , stuff ): self . bag . append ( stuff ) 이 메소드에서 self에는 james가 할당되므로 결과적으로 james.bag.append('책') 이 실행될 것입니다. 그런데 코드 상에서 james 인스턴스는 bag라는 변수가 네임스페이스에 존재하지 않으므로, 그 대신 Person 클래스의 네임스페이스에서 bag 변수를 찾아 여기에 '책'을 넣었다고 생각을 하였습니다. 혹시 잘못된 부분이 있으면 설명 부탁드립니다. 감사합니다
안녕하세요. safe와 멱등 개념을 확실히 이해하고 싶어서 질문드립니다. ---------------------------------------------------- - safe : 리소스를 변경하지 않는, 즉 읽기전용 메서드(GET, HEAD)를 말한다. - 멱등 : 특정 메서드를 여러번 호출하여도 결과가 같다. ---------------------------------------------------- - GET, HEAD : Safe하면서, 멱등하다. - POST : 리소스의 위치를 지정하지 않았을 때 리소스를 생성하는 등 데이터를 변경하고 새로 생성된 결과를 보내줄 수 있으므로 safe하지도 않고, 멱등하지도 않다. - PUT : 리소스의 위치를 클라이언트가 알고 있고, 같은 리소스를 생성하거나 수정하므로 동일한 데이터로 요청하면 결과가 같다. 그러므로 safe하지 않지만, 멱등하다. - DELETE : 클라이언트가 지정한 리소스를 삭제, 즉 수정이 일어나지만 삭제라는 동일한 결과를 제공하므로 safe하지 않지만, 멱등하다. 혹시 잘 못 이해한 부분이 있으면 답변 부탁드립니다. 감사합니다 :)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요!! 동영상 강의 잘 보고 있습니다. 강의 내용 대로 따라서 하고 있는데 MemberRepository 를 작성하고 나면 cannot find symbol 오류가 발생합니다. 자동으로 import 되는게 강의와 다르게 import java.lang.reflect.Member; 로 되고 있습니다. 동영상 강의에는 import hello.hellospring.domain.Memeber; 되어 있는데 여기에서 오류가 발생하고 있습니다. 어느 부분이 잘못 됐을까요.. package hello.hellospring.repository ; import java.lang.reflect.Member ; import java.util.List ; import java.util.Optional ; public interface MemberRepository { Member save (Member member) ; Optional<Member> findById (Long id) ; Optional<Member> findByName (String name) ; List<Member> findAll () ; }
큐에서 데이터를 꺼내는 작업 자체가 여러 스레드가 동시에 들어가도 의미가 없거나 wsasend가 스레드 안전하지 않아서 그런건가요? recv도 그렇고 send도 그렇도 하나의 세션에 대한 본질적인 작업은 사실상 하나의 스레드만 수행할 수 있다고 이해하면 되는걸까요?(사실상 여러 스레드가 접근해도 실질적인 세션의 공유자원(버퍼 등등)에 대해 순차적으로 접근할 수 있으므로 )
이전에는 그 어노테이션 없이 test를 진행했던것같은데 이번에는 저 어노테이션이 추가가되어있네요 어떤 차이인거죠? runwith 어노테이션은 junit에 내장된 러너를 사용하는 대신 어노테이션에 정의된 러너 클래스(springrunner.class)를 사용한다는데.. junit에 내장된 러너랑 어노테이션에 정의된 러너클래스랑은 무슨차이인건가요?
안녕하세요 영한님. 늘 강의 잘 듣고 있습니다. 강의에서는 Controller단에서 찾아서 넘기면 JPA와 관계가 없는 애가 넘어온다고 하셔서 아래 코드로 테스트 해보았는데, 값이 변경되길래 조금 찾아보았고, 제가 이해한 것이 맞는건가 확인차 질문 올립니다. 1. Spring에서 Controller단의 경우 트랜잭션 범위 밖이기 때문에 읽기만 가능하며, 읽을때에도 영속성 컨텍스트에 등록은 된다. (기본적으로 open-in-view : true이기 때문에) 2. 하지만 말 그대로 "읽기"이기 때문에 persist / merge / flush 등을 호출시 에러를 터트려 트랜잭션 범위 밖에서는 값을 변경할 수 없다. 3. 그럼에도 아래의 코드로 item의 price와 name이 변경되는 것은 1번에 의해 item은 영속성 컨텍스트로 관리되고 있었기 때문이고 orderService의 order()가 종료될 때 플러시 발생 -> 더티체킹 동작시 DB에서 불러왔을때와 다르니 정상적으로 update 발생 4. 만약 application.yml에서 open-in-view : false로 변경 시 컨트롤러단에서 find 한 엔티티들은 영컨에 등록되지 않아 더티체킹도 안될 뿐더러 넘겨받은 member / item을 service단에서 그대로 사용하려 할 경우 에러 발생 (org.hibernate.LazyInitializationException: could not initialize proxy ) ``` @PostMapping ( "/order" ) public String order ( @RequestParam ( "memberId" ) Long memberId , @RequestParam ( "itemId" ) Long itemId , @RequestParam ( "count" ) int count) { // orderService.order(memberId, itemId, count); // 테스트 Member member = memberRepository .findOne(memberId) ; Item item = itemRepository .findOne(itemId) ; item.setPrice( 88888 ) ; // 더티체킹이 일어나는 시점은 트랜잭션 종료 지점이라 해당 지점에서는 변경이랑 관련이 없다 . // 그래서 트랜잭션이 있는 서비스 메소드 부분을 주석쳐버리면 변경은 일어나지 않는다 . // 얘네는 다 에러 // entityManager.flush(); // memberRepository.save(member); // itemRepository.save(item); orderService .order(member , item , count) ; return "redirect:/orders" ; } @Transactional public Long order (Member member , Item item , int count) { item.setName( " 변경된 책 이름 " ) ; // 배송정보 생성 Delivery delivery = new Delivery() ; delivery.setAddress(member.getAddress()) ; delivery.setStatus(DeliveryStatus. READY ) ; // 주문상품 생성 OrderItem orderItem = OrderItem. createOrderItem (item , item.getPrice() , count) ; // 주문 생성 Order order = Order. createOrder (member , delivery , orderItem) ; // 주문 저장 orderRepository .save(order) ; return order.getId() ; } ``` 으로 이해했는데 맞는지 모르겠습니다...
강사님 께서는 회원목록 버튼을 클릭하면 이러한 창이 뜨지만 제가 누를때는 이렇게 오류 창이 뜹니다 딱히 오류로 잡히는것도 없어서 단순히 제 코드 실수인가 싶어서 강의를 여러번 돌려가며 최대한 강사님의 코드를 그대로 타이핑 했는데도 오류가 계속 납니다. 다른분들 보니 H2관련해서 오류가 뜨는데 저는 아직 H2파트를 들어가기도 전이고 강사님도 아직 강의내에서 H2를 건드리지 않고 초기 제가 올렸던 사진 처럼 창이 떴는데 도대체 왜 오류가 나는지 궁금합니다 https://drive.google.com/file/d/187dnQjeFv08hwhpoNglqi6TrnZpRXZYI/view?usp=sharing
안녕하세요! level 1을 마치고 level 2를 들을려고 합니다. level 2와 동시에 Django로 웹 개발공부를 해볼려고 합니다. 인프런에서 Django 로 코스를 선택했습니다. 그런데, 그 강좌에서 선수 파이썬 기본지식으로 `함수/클래스/상속/일급함수/장식자` 내용을 알아야 들을 수 있다고 하네요. 함수와 클래스는 Level 1에서 들었다고 하면 일급함수, 장식자는 TOC를 보면 Level2 에서 충분히 확인할 수 있는데, 상속은 어디서 들을 수 있는 건가요??? Level 3으로 가야 하나요????
안녕하세요! 이제 강의를 들을려고 합니다. 먼저 저의 상황은 이와 같습니다. Django를 통해 전체적인 웹개발에 대한 흐름을 공부해볼려고 시작합니다. 그 후, backend web 개발자나 Devops나 Data 분야로 가는 것을 결정해볼라고 합니다. Django에 대해 그냥 유튜브 검색을 해보니 [Django를 추천하지 않는 이유](https://www.youtube.com/watch?v=ObelJbEt8-Y) 를 보게 되었습니다. 이 영상에서 봤을 때, 웹 개발을 공부하고 싶으면 Django를 하지 말고 Spring을 해야 한다는 의견이었습니다. Django는 너무 dB에 집중되어 있다고 했습니다. 3년 전 영상이라 지금은 어떨지 모르겠습니다. java spring 시장이 한국에서 매우 거대하여 python Django가 상대적으로 적어도, 절대적으로는 적은 수는 아니라고 생각합니다. (그리고 python은 너무너무 가용성이 좋은 언어라 개인적으로 좋아하는 언어입니다 : ) ) 이에 대해 어떻게 생각하시는 지 궁금합니다.
프록시 객체가 초기화 할 때 영속성 컨텍스트를 통해서 실제 엔티티를 생성하고 생성된 실제 엔티티를 프록시 객체의 target 변수에 참조해준다고 하셨는데 이 때 만들어진 실제 엔티티는 영속성 컨텍스트에 존재하고 있는 건가요? 그렇기 때문에 getReference() -> 초기화 -> find()의 과정을 했 을 때 find() 시점에 select 쿼리문이 안나오는 게 맞나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 좋은 강의 감사합니다. url 설계시 post는 저장 수정하고 get은 조회를 한다는 기본 개념을 잘 알게되었습니다. 그런데 실제로 실무에서 비지니스 로직을 조회할 때, 단순한 조회, 저장이 일어나는 경우는 거의 없다고 생각됩니다. 예를 들면 로그인 하는 상황이라고 가정했을 때 입니다. 1. 로그인 시도를 위해 아이디 패스워드 여부를 조회한다. 2. 아이디 패스워드가 일치한다면 로그인 히스토리 등 각종 정보성 테이블에 update를 한 후 로그인 처리를 한다. 이런 경우에 클라이언트에서 get api 호출 후 리턴 값을 받아서 post api로 저장을 한 후 후속 처리를 한다면 api를 여러번 호출하는 상황이 발생하게 됩니다. 아래 두가지 시나리오 중 어떤 방식이 최적인지 궁금합니다. 1. 로그인 api 한번 호출 ( get or post로 한번 던진 후 모두 처리 ) - 아이디/패스워드 일치 여부 확인 ( 조회 ) - 타 서버에 흩어진 회원 정보 조회 및 병합 ( 조회 ) - 각종 정보 업데이트 ( 수정 ) - 토큰 처리 등등 2. 로그인 api 여러번 호출 - GET 아이디/패스워드 일치 여부 확인 - SOAP 타 서버에 흩어진 회원 정보 조회 및 병합 - POST 각종 정보 업데이트 - POST 토큰 처리 등등 설명이 부족할 경우 댓글 주시면 더 자세히 설명해 보도록 하겠습니다. 감사합니다.