아이폰 실기기 연결하여 테스트 중인데, .env값 수정하였는데 계속 이전 값을 들고옵니다. (ex. API_URL에 설정해놓은 localhost값을 피씨 아이피로 변경 -> 재빌드해도 계속 이전 localhost를 들고옴) 재빌드, 메트로 서버 종료, 앱삭제 등 여러가지 시도 하였는데 계속 이전 값을 유지하는데 보통 환경변수 파일 바꾸면 어떻게 하시는지 궁금합니다. 이런 경우엔 빌드 폴더 클린 하는 방법말고 없을까여?
구글 앱 비밀번호 설정 떄문에 막힙니다 2단계 인증했고 앱 비밀번호 생성해서 그걸 구글 비밀번호로 바꾸고 선생님 코드를 잘 따라해서 적었는데 Error: Invalid login: 535-5.7.8 Username and Password not accepted. 라고 에러 납니다 혹시 방법 없을까요?
facade 패턴 적용에 대한 질문 강의를 듣고 facade 패턴에 대해서 조금 공부해봤습니다. 강의에서 facade 패턴을 적용한 이유가 락 흭득 관련한 반복 로직을 service 레이어에서 분리하기 위함이라고 이해했습니다. 현재 service 레이어에는 메서드가 하나라서 facade 에 메서드가 하나인 것인가? 라는 생각이 들었습니다. 1. 락 처리(동시성 문제 처리)를 하는 메서드만 facade 로 분리를 해주는 것인가요? 2. 아니면 service 레이어에 있는 모든 메서드에 대해서 facade 패턴으로 분리한 클래스에 메서드 호출을 넣어야하는 것인가요? 만약 1번이 맞다면 컨트롤러에서 일반 service layer 와 facade 둘다 컨트롤러에서 의존성을 갖고 있도록 해야할텐데 이는 컨트롤러에에서 락처리를 하는 facade.decrease 와 stockService.decrease 둘다 참조 가능한 것이 이상하다는 생각이 들었습니다. --- 이와 별개로 facade 를 적용하지않고 service 에서 decrease 에 대해 락 흭득 재흭득 처리를 하면 단순하게 아래 처럼 처리 할 수 있다고 생각했습니다.. 그랬더니 동시성 문제가 해결되지 않고 테스트를 돌려보니 51 만큼만 감소가 이루어 지더라구요... 이유가 뭔지 궁금합니다. @Service public class OptimisticLockStockService { private final StockRepository stockRepository; public OptimisticLockStockService(StockRepository stockRepository) { this.stockRepository = stockRepository; } @Transactional public void decrease(Long id, Long quantity) throws InterruptedException { while (true) { try { Stock stock = stockRepository.findByIdWithOptimisticLock(id); stock.decrease(quantity); stockRepository.saveAndFlush(stock); } catch (Exception e) { Thread.sleep(50); } } } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 스프링부트 버전 3.1.2 Querydsl 버전 5.0.0 테스트 코드에서 질문 드릴 것이 있사옵니다. @Test void contextLoads() { Hello hello = new Hello(); em.persist(hello); JPAQueryFactory query = new JPAQueryFactory(em); QHello qHello = new QHello("h"); System.out.println("========START"); Hello result = query .selectFrom(qHello) .fetchOne(); System.out.println("========END"); assertThat(result).isEqualTo(hello); } 같은 트랙잭션에서 영속성 컨텍스트의 데이터를 얻어올 테니 result와 hello가 같은 게 당연한데요. querydsl로 select하는 부분에서 insert와 select query가 나가더라고요. ========START 2023-08-02T13:14:13.697+09:00 DEBUG 2696 --- [ Test worker] org.hibernate.SQL : insert into hello (id) values (?) 2023-08-02T13:14:13.699+09:00 INFO 2696 --- [ Test worker] p6spy : #1690949653699 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/datajpa insert into hello (id) values (?) insert into hello (id) values (1); 2023-08-02T13:14:13.717+09:00 DEBUG 2696 --- [ Test worker] org.hibernate.SQL : select h1_0.id from hello h1_0 2023-08-02T13:14:13.718+09:00 INFO 2696 --- [ Test worker] p6spy : #1690949653718 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/datajpa select h1_0.id from hello h1_0 select h1_0.id from hello h1_0; ========END 1차 캐시에서 데이터를 가져올텐데 굳이 query가 왜 나가는지 궁금합니다. 1차 캐시가 새로 갱신되었을리도 없고 갱신되어서도 안 된다고 생각했습니다.
안녕하세요, 강의 잘 듣고 있습니다. 스칼라 서브쿼리를 성능문제로 지양해서 써야한다고 말씀하셨는데 혹시 더 구체적으로 알 수 있을지요? 스칼라 서브쿼리나 다른 서브쿼리나 어차피 메인 테이블을 하나씩 읽으면서 조건으로 달리 테이블을 처리하는건 같지 않나요? DB입장에서 혹시 실행계획을 세울 때 어떻게 차이가 날까요? 제대로 질문을 하였는지 잘 모르겠는데 답변 주시면 감사하겠습니다.
안녕하세요! 강사님 강의를 끝까지 다 수강하였습니다. 너무 도움이 많이 되었습니다. 감사합니다. 부동산 매물 강의에 대한 공지를 보고 메일로 문의 드렸는데 아직 피드백이 오지 않아 이렇게 질문글로 문의를 드리게 되었습니다! 메일 문의 한 번만 확인 부탁드립니다. 감사합니다!
안녕하세요. 그리드 개념에 대해 배우다 궁금한 점 이 있어 여쭈어 봅니다. 각 제품마다 화면 크기가 다르니까, 그에 맞는 픽셀의 프레임으로 디자인을 해야 한다고 이해를 했습니다. 그렇다면 한 회사의 앱 또는 웹을 출시한다고 했을 때 실무에서 디자이너는 현재 존재하는 모든 제품들의 화면의 픽셀에 맞는 프레임들을 따로 전부 각각 디자인을 해야하는건가요? 아니면 그리드 상에 디자인을 하면 자동으로 맞추어 주는건가요? 그리고 핀터레스트 웹사이트 예시 보여주시면서 웹사이트의 크기를 줄여나가면 컨텐츠들이 알아서 맞게 변하는것을 보고 이게 반응형 디자인이고 이를 하려면 그리드로 디자인을해야한다고 이해를 했습니다. 이또한 그 화면마다 디자이너가 그화면 프레임에 맞게 각각 디자인을 한건가요? 아니면 그리드상에 디자인을 하면 자동으로 맞추어 주는건가요? 그리드상에 디자인을 하면 자동으로 맞추어 주는것이 정답이라 한다면, 모바일 디자인이라 가정했을때 아이폰8 프레임 / 아이폰 11 프레임 등등 어떤 프레임으로 디자인하는 모든제품에 대응이 되는것인지 궁금하며 또 이것이 대응이된다면 각 제품마다 프레임이 나누어놓는 이유가 무엇인가요? 아이폰8 사용자를 대상으로 아이폰11 프레임으로 디자인 했을때 대응이 되는지 / 또 대응이 된다면 차이는 없으며 왜 프레임을 제품마다 나누는지 궁금합니다.
안녕하세요 강사님. 인가 프로세스 DB 연동 웹 계층 구현 섹션에서 "2) 관리자 시스템 - 권한 도메인, 서비스, 리포지토리 구성" 강의 수강 중 궁금한 점이 있어 질문 드립니다. Resources 테이블과 연관된 메뉴인 "리소스 관리"에서 순서 필드는 어떤 용도로 사용될까요? 단순히 리소스 데이터를 조회할 때 order by 를 통한 정렬을 위한 필드인지, 다른 용도로도 사용되는지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의에서 "생성자는 필수 정보(파라미터)를 받고, 메모리를 할당해서 객체를 생성하는 책임을 가진다."라는 내용이 있는데 여기서 필수 정보에 예제의 url은 들어가지 않는 것으로 알고 있습니다. 그럼 필수 정보의 예로는 뭐가 있을까요?? final이 붙은 필드들도 필수정보로 봐도 괜찮을까요??
Java 에서 Final 만 사용할 수 있는게 외부 변수가 메모리에서 해제 되었을 경우, 가비지를 참조할 수 있는 것을 방지하기 위해서로 알고 있는데 코틀린은 이게 가능한게 아예 메모리를 통째로 떠와서 그런걸까요? ㅎㅎ 강의 영상에서 포획한다 라고 표현하신게 그런 의미 같아요!
제가 목마하임님 강의를 회사에서 알려줘서 회사계정으로 강의를 잘 들었습니다. 퇴사하고 나니 계정이 없어서 제 개인계정으로 하임님의 강좌를 구매했는데요, 초급자과정에서는 단축키 정리했던 문서 ? 영상중에 나와서 보고 적어놨다가 따로정리한 문서가 있어서 아잇 ㅋㅋㅋ 헛짓했네 했던 기억이있는데 전문가 모드에서는 따로 보이지 않는것 같아서요.. !