묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결관찰가능성 엔지니어링
카디널리티(Cardinality)와 디멘션(Demension
개념관찰가능성 측면에서 "카디널리티"와 "디멘션"은 데이터를 이해하고 분석하는 데 중요한 역할을 하는 두 가지 개념입니다. 이 두 개념은 주로 데이터셋의 구성을 설명하는 방법이지만 서로 다른 관점을 제공합니다. 1. 카디널리티(Cardinality):카디널리티는 데이터 내의 특정 열 또는 속성에서 서로 다른 값의 수를 나타냅니다. 높은 카디널리티는 해당 속성이 많은 고유한 값을 가지는 것을 의미하며, 예를 들어 유저 ID나 이메일 주소 같은 경우입니다.낮은 카디널리티는 유사한 값이 반복적으로 나타나는 경우로, 도시명이나 국가 코드 같은 속성일 수 있습니다.관찰가능성 측면에서 높은 카디널리티를 가진 데이터는 분석이나 시각화 시 복잡성을 증가시킬 수 있으며, 낮은 카디널리티는 경향이나 패턴을 식별하는 데 용이할 수 있습니다.2. 디멘션(Dimension):디멘션은 데이터세트의 다양한 특징을 설명하는 데 사용되는 변수 또는 속성을 의미합니다. 보통 데이터를 분석할 때 관찰의 맥락(예: 시간, 지역, 제품 등)을 설명하기 위한 축(axis)입니다.이러한 디멘션은 관찰의 범위와 깊이를 제공하며, 다차원 분석(Multidimensional analysis)에서 중요하게 사용됩니다.데이터의 디멘션 수가 증가하면 분석의 복잡성이 증가하지만, 동시에 더 깊이 있는 인사이트를 제공할 수 있습니다.이 두 가지 개념은 데이터 분석에서 종종 함께 고려됩니다. 예를 들어, 고차원 데이터(디멘션이 많음)의 경우 여러 디멘션에 걸쳐 높은 카디널리티를 포함할 수 있으며, 이는 데이터 분석 및 저장 관점에서 효율적인 접근 방식을 필요로 합니다. 데이터의 관찰 및 분석 시, 어떤 방식으로 데이터가 구조화되고 변형될 수 있는지를 이해하는 것이 중요합니다.예시카디널리티와 디멘션을 좀 더 명확히 이해할 수 있도록 다양한 예시를 제시하겠습니다.1. 온라인 쇼핑몰 데이터베이스:카디널리티: 제품 ID 컬럼은 높은 카디널리티를 가지고 있습니다. 이는 각 제품마다 고유한 ID를 가지고 있기 때문입니다.반면, 카테고리 컬럼은 낮은 카디널리티를 가질 수 있습니다. 예를 들어, "의류", "전자기기", "생활용품"과 같이 한정된 수의 카테고리만 존재할 수 있습니다.디멘션:고객 정보, 제품 정보, 주문 날짜 등의 다양한 디멘션이 존재합니다. 각각의 디멘션은 분석 시 고객 행동, 판매 패턴 등의 관점에서 데이터를 평가하는 데 사용됩니다.2. 인구 조사 데이터:카디널리티:개인 식별 번호(예: 주민등록번호)는 매우 높은 카디널리티를 가집니다. 모든 개인이 고유한 번호를 가지기 때문입니다.성별 컬럼은 매우 낮은 카디널리티를 가질 수 있으며, 대부분 "남자" 또는 "여자"로만 분류됩니다.디멘션:연령, 성별, 직업, 거주 지역 등의 디멘션이 있습니다. 각각의 디멘션은 인구의 특정 세그먼트에 대한 인사이트를 제공합니다.3. 스마트폰 센서 데이터:카디널리티:특정 시간 동안 수집된 온도 데이터는 각 순간마다 미세하게 값이 달라질 수 있어 높은 카디널리티를 나타낼 수 있습니다.반면, 위치 데이터가 "실내" 또는 "실외"로만 분류되어 저장되는 경우, 이는 낮은 카디널리티를 가질 것입니다.디멘션:가속도, 자이로스코프, 위치 데이터 등 다양한 센서 정보가 디멘션 역할을 하며, 이는 모션 분석이나 활동 인식 등에 활용될 수 있습니다.이러한 예시들은 카디널리티가 데이터 안의 고유한 값의 수 또는 다양성을 어떻게 나타내는지를 보여주며, 디멘션은 분석이나 평가하고자 하는 다양한 관점이나 특징을 정의하는 변수임을 설명합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
헥사고날 아키텍처 질문 있습니다.
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. jpa와 너무 강하게 결합되어 있어 repository 인터페이스를 만든다고 하셨는데그러면 1. repository 인터페이스2. 1의 repository 인터페이스를 구현한 repositoryimpl3. 2의 repositoryimpl에서 사용할 jparepository 이렇게 세 개나 만들어서 사용하는건가요?
-
해결됨쉬운 모바일 테스트 자동화 시작하기 : Appium Studio
로그인 버튼 클릭 안되는 이슈
안녕하세요 강사님현재 Appium studio 테스트 중 로그인 버튼이 클릭 안 되는 이슈가 있어 문의드립니다.하기의 캡처된 화면으로는 로그인 버튼이 초록을 테두리속에 있어야 정상적으로 버튼을 찾는거 같은데 현재 테두리와 버튼이 일치 하지 않습니다.이런 이슈는 모바일 해상도의 문제 인 건지 그리고 어떻게 이슈를 처리해야 하는지 문의드립니다.감사합니다.
-
해결됨2시간으로 끝내는 프론트엔드 테스트 기본기
'toBeInTheDocument'오류 문의
안녕하세요 강의 잘 듣고 있습니다수강하면서 실습을 위해 올려주신 깃헙을 클론해서 각종 라이브러리 설치 후 실행하는데 jest-dom라이브러리를 인식을 못하는 건지 계속 다음 부분에서 오류가 나서 테스트가 실패하네요 클론 후 코드 수정 등은 한 것이 없는데 무엇이 문제일까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
수업 외 질문입니다. test profile
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. JPA 가 아니더라도 Mybatis 환경이나 등...실무에서Junit Test를 할때 test profile 환경을 따로 구성해서 하나요?원본 데이터의 훼손을 방지하고자 하는건가요?
-
미해결실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
2부 할인쿠폰 관련
안녕하세요.제공해주신 인강으로 프론트엔드 테스트를 공부하고 있는 수강생입니다. 최근 일이 많아져 인강 듣는 시간을 할애하지 못하였지만 이번 설 연휴를 맞이하여 1편 다보고 2편까지 보려고 하는데 제가 실수로 할인 쿠폰을 발급 받았다가 사용하지 못하고 유효기간이 지나 버렸는데 재발급을 할수 있는 방법이 있는지 문의드립니다!
-
미해결테스트 with Jest: 제로초에게 제대로 배우기
제로초님 강의 교안을 볼 수 있는 곳이 있을까요?
강의 듣다 교안도 함께 보고싶어서 문의 드려요~
-
해결됨SW 역량테스트 합격하기 A형 with C++ (Advanced Algorithm)
BOJ 2234 성곽 문제 코드에서 질문 있습니다.
안녕하세요 선생님 강의 너무 잘보고 있습니다 !다름이 아니라 BOJ 2234번 성곽 60번째 줄에서 질문이 있습니다.open을 판단할때 양쪽 모두 확인하는 이유가 있을까요? 한쪽에서만 확인하면 오류가 생기는 경우가 있는지 궁금합니다.
-
해결됨쉬운 모바일 테스트 자동화 시작하기 : Appium Studio
가상 Device에서 App 설치시 생기는 에러 팝업 해결 문의
Android studio 에서 가상 device를 설정 한뒤 Appium과 연결 한 후 Experibank를 install 해보려고하는데 에러 팝업이 발생하여 Android studio의 SDK Manamger > API LEVEL 확인시 34, 24, 14 다 체크표시로 확인 되는데 제가 여기서 추가적으로 설치하거나 확인 해야 하는게 있을까요? 에러팝업 문구 내용: The application installation on the device sdk_gphone 16k_x86_64 has failedfailed to install application:INSTALL_FAILED_DEPRECATED_SDK_VERSION:App package must target at least SDK Version 24, but found 14
-
미해결Practical Testing: 실용적인 테스트 가이드
서비스계층에 @transactional을 붙이면 성능이 감소하지 않나요?
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 강의에서 OrderService에 @transactional처리를 하는데 이렇게 되면 성능이 감소하지 않나요? 현업에서는 이 성능 감소를 감수하고도 데이터정합성 및 롤백을 위해 트랜잭션을 하는건가요? 감사합니다
-
미해결테스트 with Jest: 제로초에게 제대로 배우기
jest.fn()으로 모킹 함수를 만들어 expect() 할 경우 undefined 출력됩니다
안녕하세요현재 vue3로 구현된 프로젝트 내로그인 성공 시 utils.js의 method3이 호출되는지 테스트를 하려고합니다method3을 모킹함수로 대체하였는데로그인 로직 내 method3을 콘솔로 찍어보면 undefined이 나와서 질문드립니다.왜 method3이 undefined 가 나오는지 알려주실 수 있으실까요? 아래는 테스트 하기 위한 과정입니다.1. 로그인 로직 중 utils.js의 method3을 호출하는 코드 존재util.jsexport const method1 = () => { ... } export const method2 = () => { ... } export const method3 = () => { ... }2. method3을 모킹 함수로 대체하려고 함3. utils.js 파일이 위치하는 곳에 mocks 폴더를 만들어 아래와 같이 코드 작성export default { ...jest.requireActual('../util'), method3: jest.fn() }4. 로그인 테스트 파일을 아래와 같이 작성login.spec.js(테스트할 파일)jest.mock('../common/util.js') import { setActivePinia, createPinia } from 'pinia' import * as fns from '../../common/util' import { login } from '../../api/loginApi' import { loginUser } from '../../store/authStore' describe('로그인', ()=>{ // userStore 내 loginUser 함수를 호출하기 위한 셋팅 let userStore beforeEach(()=>{ setActivePinia(createPinia()) userStore = useAuthStore() }) test('로그인 성공 시 성공 메시지 출력', async () => { // 로그인 성공 시 로그인한 사용자 정보 반환 const mockResponse = { status : 200, data: { data: { userName: 'test1' } } } // 로그인 요청 api를 모킹함수로 대체 await login.mockResovedValue(mockResponse) // loginUser는 로그인 성공 시 유저 정보를 상태관리 변수에 저장 await userStore.loginUser({userId : 'test1', password : 'test1pw'}) expect(fns.method3).toHaveBeenCalled() }) }) 5. expect 부분에서 아래와 같이 오류 메시지가 발생합니다expect(received).toHaveBeenCalledWith(...expected) Matcher error: received value must be a mock or spy function Received has value: undefined
-
미해결Practical Testing: 실용적인 테스트 가이드
Static한 Utill성 클래스는 어떻게 테스트 할 수 있나요?
개발을 하다보면 utill성 클래스도 테스트하고 싶은데 배운거는 spring을 띄워서 테스트 하는데 static도 비슷하게 작성하면 되는건지 아니면 이것도 private에서 이야기 하신거처럼 신경 안써도 되는 부분일까요? 좀 더 좋은 방법이 있을거 같아서 여쭤봅니다
-
미해결테스트 with Jest: 제로초에게 제대로 배우기
jest-extended 설정 중 TypeError
호출 순서 테스트, Mock 객체, jest-extended 강의 내용에서 나온 jest-extended를 사용해보고 있는데요. 테스트가 실패하진 않지만 IDE에서 타입 에러가 나면서 자동완성이 되고 있지 않은 상황입니다 ㅠㅠ 시도해본 IDE 환경은 VSCode, Webstorm 이고 둘다 에러가 나고 있습니다.해당 이슈 겪어보신 분 계실까요? // global.d.ts import "jest-extended"; // tsconfig.json { "files": ["global.d.ts"] }// testSetup.js const matchers = require("jest-extended"); expect.extend(matchers);// jest.config.js /** @type {import('ts-jest').JestConfigWithTsJest} **/ export default { testEnvironment: "node", transform: { "^.+.tsx?$": ["ts-jest", {}], }, setupFilesAfterEnv: ["./testSetup.js"], };에러나는 테스트코드 파일:test("first > second > third (jest extended)", () => { const spy1 = jest.fn(first); const spy2 = jest.fn(second); const spy3 = jest.fn(third); spy1(); spy2(); spy3(); expect(spy1.mock.invocationCallOrder[0]).toBeLessThan( spy2.mock.invocationCallOrder[0] ); // toHaveBeenCalledBefore 함수를 타입스크립트 컴파일러가 인식하지 못함 expect(spy1).toHaveBeenCalledBefore(spy2); expect(spy3).toHaveBeenCalledAfter(spy2); }); jest의 matchers 는 인식하지만, jest-extended 의 matchers 들은 인식하지 못하는 상태입니다.(+그런데 한 가지 특이한 건, vscode 기준으로 testSetup.js 파일을 같이 띄워놓으면 타입 에러가 사라집니다...)
-
해결됨2시간으로 끝내는 프론트엔드 테스트 기본기
nock에서 에러가 발생합니다
Test suite failed to run ReferenceError: TextEncoder is not defined 1 | 2 | import "@testing-library/jest-dom"; > 3 | import * as nock from "nock"; | ^ 4 | import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; 5 | import { 6 | fireEvent, at Object.<anonymous> (node_modules/@mswjs/interceptors/src/utils/bufferUtils.ts:1:17) at Object.<anonymous> (node_modules/@mswjs/interceptors/lib/browser/index.js:4:24) at Object.<anonymous> (node_modules/nock/lib/intercept.js:13:30) at Object.<anonymous> (node_modules/nock/lib/recorder.js:8:44) at Object.<anonymous> (node_modules/nock/lib/back.js:4:18) at Object.<anonymous> (node_modules/nock/index.js:3:14) at Object.<anonymous> (src/__test__/Login.spec.tsx:3:1) ReferenceError: TextEncoder is not defined에러가 발생합니다.node -v => v18.18.2노드 버전이랑, util 라이브러리를 사용해 문제를 해결하려 했지만, 잘 되지 않아 질문드립니다.
-
해결됨Practical Testing: 실용적인 테스트 가이드
동시청 처리 문의드립니다.
이전 강의 부터 동시성 문제에 대해서 논하셔서 문의 드립니다.보통 서비스 구현시 최종 병목지점은 DB로 귀결되기 마련인데과금테이블과 같이 비관적락을 이용해야 하는 경우, 캐시등을 이용이 불가하여 어쩔수 없느니 스케일업 하는 방법을 이용합니다. 마스터, 슬레이브 로 나눈다고 해도 동시성을 보장할수 없는 경우가 많은데요. 이런 경우 해결 방안으로 어떤것이 있는지 고견을 여쭙고자 합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
Entity에 @RequiredArgsConstructor(access = AccessLevel.PROTECTED)
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. Entity 객체에 @RequiredArgsConstructor(access = AccessLevel.PROTECTED)로 설정해주는 이유가 외부에서 객체의 생성을 제한하려는 의도인것 같은데요final 키워드를 가진 instance가 없는데도 RequiredArgsConstructor 를 사용한 의도가 있는지 궁금합니다.아직 강의 후반까지는 보지않은 상태이긴하지만final 키워드가 없으면 결국 NoArgsConstructor랑 같은 동작을 하는것이 아닌가해서요
-
미해결Practical Testing: 실용적인 테스트 가이드
BaseEntity 에서의 abstract 사용이유
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요.BaseEntity에 abstract를 사용하는 이유에 대해 궁금합니다.강의 중에 흐르듯이 듣기는 했지만, 조금 더 자세히 이유에 대해 파악하고자 질문드립니다. 아니면, 강의에서 내에 말씀해주신 인스턴스를 굳이 만들필요없기 때문이 전부인지 궁금합니다.감사합니다
-
미해결Practical Testing: 실용적인 테스트 가이드
Redis 테스트
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 강사님 안녕하세요! 강의를 수강하고 프로젝트에 테스트 코드를 작성하며 적용해보고 있습니다.프로젝트에서 Redis로 저장되는 객체가 있는데, 이를 테스트하기 위해 찾아보니 embedded Redis를 사용하거나 테스트 컨테이너를 사용한다고 합니다.'Redis에서 단순한 저장/조회/수정 로직만 존재하는데, 그냥 테스트하지말고 냅둘까?' 유혹이 생기더라구요.이처럼 만약 테스트를 위해 추가적으로 설정이 필요한 경우, 어느정도 선까지 테스트를 진행하는게 맞을지 고민이 됩니다.시간적으로 가능한 선 내에서는 무조건 다 하는게 맞는걸까요?
-
미해결소프트웨어 테스팅 입문 - C++
안녕하세요 선생님 섹션4. 첨부 파일 수정 요청드립니다.
안녕하세요 선생님 섹션4. 첨부 파일 수정 요청드립니다.현재 다운로드 하면 PDF가 아닌 mp4가 다운로드 됩니다.감사합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
TDD와 BDD
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요, 강의를 수강하다 궁금증이 생겨서 질문드립니다!기존에 TDD는 어렴풋이 알고 있었는데, BDD에 대해서는 자세히 몰랐어서 도움이 많이 되었습니다. 그런데 한가지 궁금증이 생겼습니다.BDD는 Behavior Driven Development로 '시나리오에 기반한 테스트케이스 자체에 집중하여 테스트한다.'라는 문장이 있습니다!이때 그렇다면 TDD와 BDD 방식에서 테스트하는 단위가 다른걸까 궁금합니다! 단순히 제가 이해하기에 'TDD에서는 메서드 단위로 테스트가 진행되고, BDD에서는 하나의 요구사항 시나리오 기반으로 테스트되는걸까?'라고 생각이 들었습니다.아니면 혹시 제가 TDD와 BDD에 대한 접근을 잘못 이해하고 있는걸까요?