로그인 방식에서 2개는 차이가 있는데 Session이 더 안정적이라고 판단이 들었습니다.

왜냐하면 간단히 말하면 로컬 스토리지는 데이터가 계속 저장되어서 보안이 취약한 반면에 세션 스토리지는 계속 저장되지 않기 때문입니다. 

 

두 스토리지 객체는 동일한 메서드와 프로퍼티를 제공합니다.

  • setItem(key, value) – 키-값 쌍을 보관합니다.
  • getItem(key) – 키에 해당하는 값을 받아옵니다.
  • removeItem(key) – 키와 해당 값을 삭제합니다.
  • clear() – 모든 것을 삭제합니다.
  • key(index) – 인덱스(index)에 해당하는 키를 받아옵니다.
  • length – 저장된 항목의 개수를 얻습니다.

 

 

참고) https://ko.javascript.info/localstorage

 

localStorage와 sessionStorage

 

ko.javascript.info

 

https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-localStorage-sessionStorage

 

[JS] 📚 LocalStorage / SessionStorage (vs 쿠키와 비교)

LocalStorage / SessionStorage API 소개 html5에서는 좀 더 쉽고 간단한 저장소 제공을 위해 새로운 localStorage와 sessionStorage API를 제공한다. 둘 다 저장 공간으로 사용할 수 있는데 이 둘의 가장 큰 차이점이

inpa.tistory.com

 

function is not iterable 이라는 에러가 나왔는데 개발자 도구를 통해서 잘 살펴보니 

저기 밑줄친 부분이 오류가 나있었다. 

useState 부분을 잘못작성했다고 깨달아서 () 괄호를 넣어주니까 정상적으로 실행이 되었다!

 

 

그냥 가운데 정렬할려면 힘들고 잘 안되니까 

div로 감싸서 하는것이 좋은것같다

 

1. 버튼태그를 div로 감싸기

2. div에 text-align: center; 속성주기

3. 버튼에 display :inline-block; 속성주기

나의 풀이

 function solution(s) {
            let answer;
            let stack = [];
            for (let x of s) {
                stack.push(x);
                if (x === '(' || x === ')') {
                    stack.pop
                }
                //     else {
                //         if (stack.length === 0) return "NO";
                //         stack.pop()
                //     }
                // }
                // if (stack.length > 0) return "NO";
            }
            return stack;
        }

        let str = "(A(BC)D)EF(G(H)(IJ)K)LM(N)";
        console.log(solution(str));

모범 답안

 function solution(s){  
                let answer;
                let stack=[];
                for(let x of s){
                    if(x===')'){
                        while(stack.pop()!=='(');
                    }
                    else stack.push(x);
                }
                answer=stack.join('');
                return answer;
            }

            let str="(A(BC)D)EF(G(H)(IJ)K)LM(N)";
            console.log(solution(str));

나의 풀이

   function solution(s) {
            let answer = "YES";
            let a = [];
            let left = '('
            let right = ')'
            let sH = new Map();

            for (let x of a) {
                if (sH.has(x)) sH.set(x, sH.get(x) + 1);
                else sH.set(x, 1);
            }
            for (let x of str2) {
                if (!sH.has(x) || sH.get(x) == 0) return "NO";
                sH.set(x, sH.get(x) - 1);
            }
            for (let x of s) {
                a.push(x);
                if ()
            }
            return a;
        }

        let a = "(()(()))(()";
        console.log(solution(a));

 

 

모범 답안

 <script>
            function solution(s){
                let answer="YES";
                stack=[];
                for(let x of s){
                    if(x==='(') stack.push(x);
                    else{
                        if(stack.length===0) return "NO";
                        stack.pop();
                    }
                }
                if(stack.length>0) return "NO";  
                return answer;
            }
            
            let a="(()(()))(()";
            console.log(solution(a));
        </script>

 

나의 풀이

        function solution(s, t) {
            let answer = [];
            let sH = new Map();
            for (let x of s) {
                if (sH.has(x)) sH.set(x, sH.get(x) + 1);
                else sH.set(x, 1);

                for (let [key, val] of t) {

                    if (sH.has(key) && ) {
                        answer.push(key)
                    }
                    // sH.set(x, sH.get(x) - 1);    
                    else {

                    }


                }
            }
            return answer;
        }

        let a = "bacaAacbak";
        let b = "akk";
        console.log(solution(a, b));

모범 답안

 

cf) 파이썬과 다르게 js는 함수를 만들어줘야해서 불편하다

나의 풀이

        function solution(s, t) {
            let answer = [];
            let sH = new Map();
            for (let x of s) {
                if (sH.has(x)) sH.set(x, sH.get(x) + 1);
                else sH.set(x, 1);

                for (let [key, val] of t) {

                    if (sH.has(key) && ) {
                        answer.push(key)
                    }
                    // sH.set(x, sH.get(x) - 1);    
                    else {

                    }


                }
            }
            return answer;
        }

        let a = "bacaAacbak";
        let b = "akk";
        console.log(solution(a, b));

모범 답안

vscode 작업중 갑자기 화면이 다른색으로 바뀌어있어서 좀 당황했었다. 

(나도 모르게 변경되어 있을수있으니..)

처음보는 테마여서 혹시 색 테마에 있는것을 건드렸나해서 봤더니 역시나.. 색 테마가 변경되어서 다르게 보였던것이였다.

 

 

위 사진처럼 맨밑 바퀴표시 클릭후 테마창 - 색 테마나/ 파일 아이콘 테마 등에서 확인해보면 쉽게 해결가능하다!

+ Recent posts