ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 개발자 준비 일기 5차
    기타/개발 공부 일지 2024. 1. 30. 01:09
    728x90
    반응형

    14람다와 스트림.txt
    0.05MB
    15-1 입출력-스트림.txt
    0.04MB
    15-2 입출력-표준입출력,파일.txt
    0.03MB
    16 네트워킹.txt
    0.02MB

     

     

    dialog.css
    0.00MB
    dialog.html
    0.00MB
    dialog.js
    0.01MB

     

    저번 주 공부한 것들이다.

     

    13강 쓰레드까지는 이해는 되도 내가 직접 사용하려는 생각을 할 수 있을까 걱정했었는데,

    14강 부터는 당장 사용할 수 있는 내용들이고 많이 유용한 정보들이었어서 좋았던 것 같다.

     

    아래 파일은 자바스크립트까지 학원수업이 끝나서 공부하기 지루한 날 대충 만들어봤다.

    적당히 기능구현만 하고 최적화라고는 1도 안해서 좀 형편없어보이긴 하지만

    뭐라도 만들어낸게 있으니까 배우는 보람?이 느껴지긴 하는 것 같다.

     

    만들면서 스스로 의문인 점들을 적어가며 해결해나갔고,

    마지막까지 해결 못한 점들은 수업하는 날 강사님께 찾아가서 여쭤보려고 했는데,

     

    자바스크립트에 sleep() 메서드가 없다는 걸 알게 되었고  적당히 직접 만들어서 쓰려고 했더니,

    사용은 되는데 내가 원하는 순서로 사용이 안되어서 강사님께 여쭈어봤다.

     

     

     

    // 자바스크립트에 sleep()이 없대서 적당히 만듦
    function sleep(sec) {                           // 지연시킬 시간 입력
        let past = Date.now();
        let now = past;
        while (now - past < sec * 1000) {          // 아까전과 지금의 차이가 `sec`초가 될 때까지 이 작업을 수행한다.
            now = Date.now();
        }
    }

     

    if (count === MAX_COUNT){                                               // 오픈된 게 2장이면
                        // sleep(2);                                                               // 2초동안 보여주고, 이거 왜 class 속성값 추가되기 전에 먼저 발동되는거지
                                                                                                // 저기 위에 add()가 비동기 메서드라 그런 거 같은데 동기 메서드가 따로 있는 건가??
                        // 오픈한 2장의 값이 같으면
                        if (main.querySelectorAll(':scope .dialog > .content.visible')[0].innerText === main.querySelectorAll(':scope .dialog > .content.visible')[1].innerText){
                            count -= 2;                                                         // 냅둘 거여도 개수는 낮춰야 뒤의 진행에 문제가 없음
                            main.querySelectorAll(':scope .dialog > .content.visible')[0].classList.add('visi');        // 이제 더이상 안보이게하지 않음
                            main.querySelectorAll(':scope .dialog > .content.visible')[1].classList.add('visi');        // 이제 더이상 안보이게하지 않음

                            main.querySelectorAll(':scope .dialog > .content.visible')[0].classList.remove('visible');  // 원래 속성은 지우기
                            main.querySelectorAll(':scope .dialog > .content.visible')[0].classList.remove('visible'); // 원래 속성은 지우기, 0번을 삭제하면 1번이 앞으로 당겨져서 0번을 또 지워야함
                            // 배열이면 안 이런데 어레이리스트 구현한 배열이라 이렇게 되는듯??
                        }else {                                             // 2장의 값이 다르면
                            for (let i = 0; i < MAX_COUNT; i++){
                                main.querySelectorAll(':scope .dialog > .content.visible')[0].classList.remove('visible');    // 둘 다 다시 덮어
                                count --;       // 시행이 2번 되니까 한번에 1씩만 빼면 됨
                            }
                        }
                    }

     

    위에 올린 자바스크립트 파일 중에 주석 쳐진 // sleep(2) 부분이다.

    이 부분을 동기 메서드인 setTimeout(f, t) 메서드를 이용해서 구현하라고 말씀해주셨다.

     

    이 생각을 스스로 못한 게 좀 아쉽긴 하지만 뭐 일단 스스로 여기까지라도 만들어봤으니 그나마 좀 나은 것 같다.

     

    블로그 간단하게 요약들만 해서 적을려고 했는데,

    오늘은 좀 많이 적은 거 같아서 자바스크립트 공부 내용들은 다음 주에 적어야겠다.

     

    자바 책을 필기하면서 공부했더니 한 강마다 많으면 2000줄씩 메모했더니  시간이 좀 오래 걸린 것 같아서,

    스프링 공부하기 전에 마지막으로 자바 필기 없이 정독만 한번 끝낸 후,

    스프링 공부를 시작해야겠다.

    728x90
    반응형

    '기타 > 개발 공부 일지' 카테고리의 다른 글

    개발자 준비 일기 7차  (0) 2024.02.19
    개발자 준비 일기 6차  (0) 2024.02.06
    개발자 준비 일기 4차  (0) 2024.01.22
    개발자 준비 일기 3차  (0) 2024.01.15
    개발자 준비 일기 2차  (0) 2024.01.10
Designed by Tistory.