2025년 6월 17일 화요일(15일차)

Jeonghoon·2025년 6월 17일

jeonghoon's Study

목록 보기
16/128

🔁 [ for 반복문 복습 & 데이터 모델링 / 로직 구현 정리 ]


🔹 [ for 반복문 복습 ]

배열을 순회하면서 특정 값에서만 출력하고, 나머지 값에서는 특정 문구를 출력하고 싶을 때의 처리 방법.


⚠️ 잘못된 접근

for (let i = 0; i < list.length; i++) {
    if (list[i] === 'apple') {
        console.log('사과를 찾았습니다!');
    } else {
        console.log('사과가 아닙니다.');
    }
}

➡ 이렇게 작성하면 배열의 길이만큼 "사과가 아닙니다."가 반복 출력된다.


✅ 올바른 접근 방법

조건 판단은 for문 내부, 결과 출력은 for문 외부에서 수행한다.

let idCheck = false;

for (let i = 0; i < list.length; i++) {
    if (list[i] === 'apple') {
        idCheck = true;
        break; // 찾았으면 반복 중단
    }
}

if (idCheck) {
    console.log('🍎 사과를 찾았습니다!');
} else {
    console.log('⚠️ 사과를 찾지 못했습니다.');
}

🧠 핵심 포인트 요약

구분설명
if문에서 직접 반환 금지반복문으로 인해 문구가 여러 번 출력됨
플래그 변수(flag)조건 충족 여부를 저장 (let idCheck = false)
🧾 최종 출력 위치반복문 종료 후 if문으로 단 한 번만 출력

🧱 [ 데이터 모델링 및 로직 구현 ]

데이터베이스를 간결하게 설계하고, 자바스크립트 로직으로 구현하는 핵심 단계


🗃️ 1️⃣ 데이터 모델링 단계

단계설명예시
속성명 찾기저장할 데이터의 속성 정의회원명, 아이디, 주문번호 등
데이터 분리 (중복 배제)같은 데이터는 하나의 테이블에만 존재하도록 분리회원 테이블 / 주문 테이블
연관 관계 설정분리된 자료 간 관계 정의회원 ID ↔ 주문의 회원 ID
JS 데이터 구조 변환표를 JS 객체 및 배열로 표현{ id: 1, name: '홍길동' }

🔑 4️⃣-1. 식별 코드 (Primary Key)

각 테이블(배열)은 반드시 유일한 식별 코드를 가져야 한다.

구분설명예시
🧱 테이블회원 테이블
🆔 식별 코드userCode (회원 고유번호)
📦 데이터 예시{ userCode: 1, userName: '홍길동' }

📊 4️⃣-2. JS 표현식 구조

요소설명예시
📄 행(Row)데이터 1개 (객체 1개){ id: 1, name: '홍길동' }
📋 테이블(Table)여러 행이 모인 배열[ {id:1}, {id:2} ]

⚙️ 2️⃣ 로직 구현 단계

순서설명
이용자 테이블(userList)을 for문으로 순회
각 이용자의 식별 코드(userCode) 를 기준으로 이용로그(logList)에서 일치 여부 확인
if문으로 존재 여부 판단
존재 시“이용 이력 있음” 출력
⚠️ 존재하지 않을 시“이용 이력 없음” 출력

💻 예시 코드

for (let i = 0; i < userList.length; i++) {
    let user = userList[i];
    let found = false;

    for (let j = 0; j < logList.length; j++) {
        if (user.userCode === logList[j].userCode) {
            found = true;
            break;
        }
    }

    if (found) {
        console.log(`${user.userName}님은 이용 이력이 있습니다.`);
    } else {
        console.log(`${user.userName}님은 이용 이력이 없습니다.`);
    }
}

0개의 댓글