정말 초보적인 질문이라 죄송합니다만... var키워드를 사용하지 않고 변수를 선언할 수 있는 방법이 있나요? '함수에서 var키워드를 사용하지 않고 변수를 선언하면 전역 객체에 설정됨'이라고 설명해주셨는데, 변수를 선언하려면 var, const, let이 세 가지 키워드 중 하나는 반드시 써야 하지 않나요? const와 let이 ES6문법임을 제외하면 변수를 선언할 때는 반드시 var키워드를 쓸 수 밖에 없는 것 아닌가요?
다음과 같이 AccountRepository 인터페이스를 생성해 사용하는데, findByNickname 메소드에 대해 Unable to access lob stream 오류가 발생합니다. 검색해보니 맨 위 사진과 같이 Repository에 @Transactional을 추가하라는데, Clob이나 Blob이 포함된 엔티티는 해당 어노테이션을 반드시 사용해야 하는 것인가요? 혹시 맞다면 왜 그런건가요?
프런트에서 해쉬태그를 클릭하면 백엔드에서 해당하는 해쉬태그를 가져오는데 해쉬태그 페이지에서 아무 반응이 없습니다. 콘솔로그를 찍어보면 데이터는 있는데 화면에 아무 반응이 없는 이유를 모르겠습니다.. 깃 주소 남깁니다. 도와주세용 ㅠㅠ https://github.com/SeokSuMin/ch6
아직 몇 강 듣지 않았지만, 그냥 넘어가기는 찝찝해서 질문드립니다 ㅠ 제가 알기로는 ES5에서도 '스코프 체인'개념이 있는 것으로 알고 있는데요(아마 용어상의 혼선일 것이라 생각됩니다) 일단 제가 이해하고 있는 바(ES5기준)를 말씀드리겠습니다. 1.함수의 호출로 인해 해당 함수의 실행 컨텍스트가 활성화됩니다. (===콜 스택에 해당 함수의 실행 컨텍스트가 쌓입니다) 2.엔진이 해당 함수의 스코프를 훓으면서 '렉시컬 환경'의 '환경 레코드'에 '선언된' 함수와 변수를 담습니다. '선언된'함수와 변수를 담는 것이기에 할당 작업은 이 단계에서는 배제합니다. 때문에 함수 선언문은 함수 객체 자체가 전부 담기게 되고, 함수 표현식의 경우 변수명(식별자)만 담기게 됩니다. 3.'렉시컬 환경'의 '외부 환경 참조'에 '함수가 선언될 당시'의 렉시컬 환경을 참조시킵니다. '함수가 선언될 당시'라는 건, 즉 이 함수를 선언했던 함수의 컨텍스트(만약 전역 컨텍스트에서 선언했다면 전역 컨텍스트)의 렉시컬 환경을 의미하는 것이죠? 4.이 함수를 호출한 주체를 this바인딩시킵니다(일반적으로) 만약 위의 설명에 틀린 부분이 없다고 한다면, 해당 함수의 스코프 안에서 식별자가 발견되지 않으면, '렉시컬 환경'의 '외부 환경 참조'를 타고 올라가서 식별자를 찾는 것이죠? (제가 읽은 서적에서는 이를 '스코프 체인'으로 설명했습니다) 그렇다면 ES5에서의 스코프 체인도 결국 함수 호출로 인해 이루어지므로 '동적'으로 환경을 설정하는 것이 아닌가요? 또, 컨텍스트가 한 덩어리이기 때문에 한 메모리 안에서 찾아 검색이 빠르다고 말씀해주셨는데, 이렇게 '외부 환경 참조'를 타고 올라가는 것은 메모리의 다른 공간을 검색하는 일이 아닌지 궁금합니다 ㅠㅠ
안녕하세요 JPA 기초 강의부터 QueryDSL 강의까지 모든 과정을 완강하고, 현재 개인 프로젝트로 복습하고 있는 학생입니다! 주제와 조금 엇나갈 수 있는데, 다름이 아니라 Spring Security를 활용해 로그인된 사용자의 개인정보 변경 을 구현 중에 있는데, 다음과 같이 현재 로그인 중인 사용자의 정보를 @AuthenticationPrincipal를 통해 가져와 updateProfile 메소드로 정보를 수정하려 하고 있습니다. 그런데 Merge를 사용하지 않고 Dirty Checking을 사용해 Account 정보를 업데이트를 하자니 현재 Account가 영속 상태가 아니어서 상태를 업데이트해도 DB에 반영되지 않습니다. 그래서 일단 현재 Account도 update하고, AccountRepository를 통해 실제 Account도 불러와 다시 한번 update를 하는 방식으로 작성하긴 했는데 올바른 방법이 아닌 것 같습니다. 이런 상황에서 (1) 실제로 DB에서 가져온 Account를 업데이트 한 뒤, 현재 로그인한 상태의 Account에 대입하는 방법 은 없을까요? 아니면 (2) 현재 Account를 강제로 영속상태로 바꾼 뒤 업데이트하여 DB에 반영 하는 방법이 더 나은 방식인가요?
안녕하세요. 강의덕분에 실무에 잘 적용하여 쓰고 있습니다. QuerydslRepositorySupport를 이용해서 paging을 하고있는데 final List<ReviewList> bbsArticles = getQuerydsl().applyPagination(pageable, query).fetch(); Query문에 fetchJoin을 적용했더니, HHH000104: firstResult/maxResults specified with collection fetch; applying in memory! 오류가 발생하여 인터넷에 검색해보니 fetch Join을 사용하고 paging을 하게되면 나오는 Warning이라고 fetch join을 빼고 사용하라고 해서 일단 적용시켰는데, N + 1문제가 발생하네요.. 이런 경우에는 실무에서 어떻게 적용시키시나요?
1.새로 런칭하는 서비스의 이벤트 테이블과 기존에 상용서비스에 이용되고 있는 카테고리테이블을 조인해야 할경우 카테고리 entity를 카테고리 스키마와 동일하게 생성을 해야 하나요? 당연한거 같긴한데 확인차 여쭤봅니다. 2.그리고 1:1관계시 강의에서 설계하신대로 메인테이블에서 키를 가지고 있는형태로 설계를 했는데, 확장성이 떨어진다는 지적을 받았습니다. 1:1 관계 테이블이 늘어날수도 있고 기존테이블이 없어지거나 합쳐질수 있다고 하는데, 어떻게하는게 좋은 설계인가요? Jpa가 처음인데 jpa설계까지 생각하니 복잡해지네요 ㅜㅜ
안녕하세요 선배님 좀 어리석은 질문일수도 있습니다만, TDD 방법론으로 코드를 작성하는 경우 모든 코드에 대해 테스트 코드가 작성되는 것이 원칙인것 같습니다. 하지만 한국에서의 전통적인 SI 프로젝트는 기간과 범위가 매우 타이트하게 정해져 있기 때문에 TDD 방법론을 원칙에 따라 적용하기에는 한계가 있는 것도 사실입니다. 만일 모든 코드에 대한 테스트 작성이 어려운 상황이라면, 어떤 종류의 코드 또는 함수를 작성할 때는 테스트 코드를 작성하는게 좋다 라고 할만한 범위에 대한 가이드라인 같은게 있는지 궁금합니다.
label을 사용하지 않는 이유에 대해 궁금합니다. 찾아보니 중첩된 반복문을 빠져나갈때 유용하게 쓸 것 같은데 검색해 보아도 사용하지 않거나 사용하지 말라는 이야기는 찾기 어렵습니다. 그래서 잘 생각해보아서 내린 결론은 label을 사용하면 1. 디버그에 문제가 있거나 2. 내부적으로 성능상 문제가 있는게 아닐까 싶은데 잘 모르겠습니다 ㅠㅠㅠㅠ 사용하지 않는 이유에 대해 살짝 힌트라도 알려주실 수 있나요??
안녕하세요 강의 잘듣고있습니다. 제가 스프링개발을 하다가 vue js공부를 하게되었는데 자바의 기술? 하고 비교하면서 공부를 하고있습니다 그런의미에서 네비게이션 가드가 스프링의 인터셉터라고 볼수있는건가요?? 그리고 axios인터셉터의 경우 ajax의 setup과 비슷한 기능인지 조금 헷갈리는데 비슷한 기능이맞는건가요??