빈 배열을 선언해서 빈 배열에 (axios 통신을 통해 전달받은) result.data를 대입해서 사용하는 것이 아니라 useState를 사용하는 이유는 무엇인가요? 제가 이해한 것은 서버에 새로운 데이터가 업로드되면 그때마다 바로바로 업로드 된 데이터를 화면에 보여주기 위함인 것 같은데(예를 들어 상품이 3개로 보이다가 관리자가 상품을 한 개 추가하면 새로고침을 안해도 4개로 보임), 올바르게 이해한 것이 맞을까요?
1. interface클래스내에 정의된 메써드는 public abstract이고, 변수는 public static final이 자동으로 앞에 정의가 된다고 하셨는데 이건 고정인건가요? 다른 형태로 봐꿀 수 있나요? 봐꿀 수 없다면 왜 그러한지가 궁금합니다. interface 클래스를 implements해주고 추상클래스를 extends 해주는 것은 둘 다 상속인건가요? 둘다 부모 클래스가 되는건가요?
with temp_01 as ( select d.category_name, to_char ( date_trunc ('month', a.order_date), 'yyyymm') as month_day, sum (amount) as sum_amount, count ( distinct a.order_id) as monthly_ord_cnt from orders a join order_items b on a.order_id = b.order_id join products c on b.product_id = c.product_id join categories d on c.category_id = d.category_id group by d.category_name, to_char ( date_trunc ('month', a.order_date), 'yyyymm') ) select *, sum (sum_amount) over ( partition by month_day order by month_day) as temp1, sum (sum_amount) over ( partition by month_day) as temp2, sum_amount / sum (sum_amount) over ( partition by month_day) as ratio from temp_01 집계 어날리틱 함수는 order by를 사용하면 파티션 내에서 누적합이 되는것으로 알고 있었는데 왜 이렇게 나올까요...? 제가 혹시 놓친게 있는 걸까요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. select, from, limit 다 완벽하게 작성한 것 같은데 오류가 나서 질문글 찾아보니 limit 뒤에 세미콜론을 안적어서 그렇다는데 저는 적어도 저렇게 나오는데 이유가 뭘까요?
안녕하세요. 코드캠프 프론트엔드 고농축 강의 내용 관련하여 질문 드립니다. 우선 제가 원하는 내용은 리액트 내용의 전반적인 복습 타입스크립트 학습 넥스트 js 학습 이렇게 세 가지를 핵심으로 뽑을 수 있는데요. 고농축 커리큘럼 소개에는 위의 내용이 다 적혀있긴 하지만 커리큘럼을 봤을 때 next js는 따로 탭이 분리 되어있지는 않더라구요. 어떤 부분이 next js 관련 부분인지 궁금하고, 또 커리큘럼의 전반적인 수준도 궁금합니다.
@RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() throws Exception { //given Member member = new Member(); member.setUsername("memberA"); //when Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); //then assertThat(findMember.getId()).isEqualTo(member.getId()); assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); assertThat(member).isEqualTo(findMember); System.out.println("findMember == member: " + (findMember == member)); } } 위 코드에서 디비에 넣은 멤버와 찾은 멤버가 같은지를 비교를 isEqualTo를 사용을 하셨는데 이것은 제가 알기론 value부분만 같다면 true라는것으로 알고 있습니다. 같은 영속성 컨텍스트 안에서의 객체가 같은지 확인하려면 isSameAs가 맞지 않은지 의문이 생겼습니다!
2가지의 풀이 방법을 알 수 있었습니다 -- 1번 풀이 : 서브쿼리 select salary * months as earnings , count(*) from employee where salary * months = (select max(salary*months) from employee) group by earnings -- 2번 풀이 : order by , limit select salary * months as earnings , count(*) from employee group by earnings order by earnings desc limit 1 궁금한 사항은 두가지 방법 중 어느 코드의 성능이 더 좋게 평가 되는지 궁금합니다.
해당 문제를 풀 때 다음과 같이 코드를 작성했는데요. SELECT City FROM Station WHERE City LIKE 'a%' or 'e%' or 'i%' or 'o%' or 'u%'; 결과물을 보니까 A로 시작하는 CITY만 출력되더라고요. OR로 연결되는 모든 조건에는 컬럼명과 LIKE를 써줘야 하닌데, 'a%' 뒤에 있는 것들은 그렇지 않아서 결과로 출력되지 않은 건가요? AND도 OR처럼 여러 번 쓰면 뒤에 컬럼명과 LIKE를 또 써줘야 하나요?
일단 새로운 프로젝트 만들고 premain 추가해주는 것 까진 강의를 그대로 따라하시면 됩니다. manifest plugin 부터 조금 차이가 있어서 거기부터 설명하면, build gradle 에 다음과 같이 추가한다. tasks.named('jar') { manifest { attributes( 'Implementation-Title': project.name, 'Implementation-Version': project.version, 'Premain-Class' : "com.java.magicianAgent.MagicianAgent", 'Can-Redefine-Classes' : true, 'Can-Retransform-Classes' : true) } } 터미널에서 다음 명령어를 통해 build 한다 ./gradlew clean build build.libs file 안에 있는 jar file 을 확인한다. (옵션) 강의에서와 마찬가지로 zip file 로 변경하면 확인가능합니다. 저같은 경우 SNAPSHOT.jar 과 SNAPSHOT -plain.jar 이렇게 2개가 생겼는데 SNAPSHOT.jar 은 제가 spring boot 로 실행서 그런지 관련 설정들이 보이고 SNAPSHOT -plain.jar 이 맞는거 같더라구요. jar file 의 절대 경로를 복사해 VM option 에 추가한다. 여기서부터는 다시 강의와 같습니다. VM option 이 안보이시면 오른쪽에 Modify options 클릭하면 add vm options 라고 보이실 겁니다. 이상한거나 궁금한거 있으시면 말씀해주세요. gradle 을 쓰시는 모든 분들도 마술을 성공시킵시다 하하