전체 글

    [Java] 폴더 파일개수 체크 성능 이슈

    폴더에 파일개수를 확인하는 로직이 있었는데 오후만 되면 항상 느려지고 cpu 점유가 엄청 올라갔다. 폴더는 하루마다 새로 생성돼서 파일을 쌓는데 처음엔 괜찮다가 쌓이면 느려지는 문제 확인. 코드를 보니 for문 안에서 new File(path).list().length 를 계속 불러 오고 있었다 파일이 적을 때는 괜찮은데 많아질수록 File 객체를 계속 생성해서 불러오니 당연히 느려질 수 밖에 없는 코드... 저 부분에 cache를 적용했다. for문 마다 불러오는게 아니라 특정 작업이 생겼을 때 개수를 확인해서 cache 업데이트 for문에서는 cache값만 확인하니 cpu 점유가 반절로 줄었다. ** 리소스 많이 먹는 작업을 for문에 넣지 않도록 주의하자

    html에서 style, script 위치

    무조건 여기! 보다는 왜 여기여야 할까? 일반적으로 브라우저는 html을 위에서 부터 읽어 내려간다. 야호 2 가 있다고 생각해보자. 1번 위치 : style이 로딩되고 div가 로딩 되기 때문에 div에 바로 스타일 적용이 된다. 2번 위치 : div가 로딩되고나서 style이 로딩 되기 때문에 css양이 엄청 많다고 하면 글씨가 검은색에서 빨간색으로 바뀌는걸 실시간으로 보게된다(단점) 그래서 style은 head안에 선언하는게 좋다 script script도 sytle과 똑같다. 다만 용도에 따라 선언위치가 달라질 수 있다. 1번 위치 : dom접근이 필요없고 js 로딩이 먼저 필요할 때 2번 위치 : dom접근이 필요한 js 로딩 할 때 js용량이 매우 크다고 생각해보면 한곳에 두는것 보다 용도에 ..

    데이터 타입

    타입 구분 데이터 타입 원시 타입 숫자 타입 문자열 타입 불리언 타입 undefined 타입 null 타입 symbol 타입 객체 타입 숫자 타입 - 모든 수를 실수로 처리 - Infinity : 양의 무한대, -Infinity : 음의 무한대, NaN : Not a Number 문자열 타입 - UTF-16 사용 - '', "", ₩₩ 사용가능 (일반적으로 작은따옴표를 쓴다) 불리언 타입 - true(참), false(거짓) 표현 undefined 타입 - 개발자가 사용하는 것보다 초기값 할 때 사용하는 값 - 값이 undefined면 초기화 후 사용되지 않았음을 유추 가능 null 타입 - 변수에 값이 없다는 것을 명시 symbol 타입 - 변경 불가능한 원시 타입의 값 - 다른 값과 중복되지 않는 유..

    변수

    정의 - 변수는 메모리에 값을 식별하기 위한 이름 특징 - javascript는 C와 달리 메모리에 직접적인 접근이 막혀있다 (메모리에 직접 접근 시 시스템이 사용하는 메모리를 수정하면 치명적인 오류가 될 수 있고, 컴퓨터 마다 사용하는 메모리 주소가 다르기 때문에 직접접근을 허용하지 않는다) 그래서 메모리 주소에 식별값을 설정하는 것이 변수이다 - 변수는 값을 저장하는 것이 아닌 메모리 주소를 저장한다 불러올 때 변수가 가지고 있는 메모리 주소로 접근해서 값을 가져온다 - 변수에 의해 확보된 메모리는 javascript에서 관리하기 때문에 안전하게 사용 가능하다 - 변수 선언 시 처음에는 undefined로 할당된다 - 변수를 포함한 식별자는 실행 컨텍스트(execution context)에서 관리한다..

    컴파일러 언어 VS 인터프리터 언어

    컴퍼일러 언어 인터프리터 언어 컴파일 단계에서 소스코드 전체를 변환 후 실행 런타임 환경에서 한줄씩 바이트코드로 변환 후 실행 실행파일 생성 실행파일 없음 컴파일 단계 + 실행 단계로 분리 분리되어 있지 않음 컴파일 단계는 한번만 하고 실행 인터프리터 과정이 반복 단계가 분리되어 있기 때문에 실행 시 빠르다 인터프리터와 실행을 한줄씩 하기 때문에 비교적 느리다