Programming Language

    JavaScript 데이터 타입에는 어떤 게 있을까

    자바스크립트 데이터 타입은 처음 자바스크립트를 공부를 시작할 때 간단히 보고 넘어간 게 다였다. 그래서 그런지 얼마 전 데이터타입이 뭐가 있냐는 질문을 받았을 때 가물가물하게 떠올리며 얘기했던 일이 있어 다시 한번 확실하게 정리해야겠다고 생각했다. 먼저 데이터 타입을 왜 알아야 하는 지에 대해 생각해보면, 우리가 개발자로서 코드를 짤 때 사용하는 데이터의 타입에 따라 메모리 크기가 달라지기 때문에 데이터를 저장하며 얼마나 메모리를 사용할지 정하는 기준이 된다. 또한 메모리에 저장했으면 주소를 참조하여 데이터를 사용하게 되는데 이때 데이터값 자체는 2진수로 저장되기 때문에 이를 어떻게 해석할 것인가에 대한 기준이 되는 것이 바로 데이터 타입이다. 예를 들어 0100 0001로 표현된 2진수는 Number ..

    Throttle와 Debounce

    최근 바닐자 자바스크립트로 웹페이지를 구현하는 연습을 하고 있는데, 검색기능과 자동완성 기능을 구현할 때 Throttle과 Debounce 개념을 알게 되었다. Throttle과 Debounce를 사용하면 이벤트나 함수 호출의 빈도를 줄여 성능을 최적화 하는데 도움이 된다. 검색 기능에선 키보드 키를 하나씩 입력할 때마다 api 호출을 통해 데이터를 불러오게 되면 지나치게 많은 api 호출이 발생하기 때문에 비효율성을 초래하게 된다. 따라서 사용자의 키 입력이 끝났다고 판단된 이후나 입력이 어느 정도 된 중간 중간 검색을 시도하도록 최적화할 필요가 있다. 두 가지의 차이점을 알아보도록 하겠다. Throttle 와 Debounce 의 차이점은 이벤트를 언제 발생 시킬지의 시점 차이이다. Throttle은 ..

    [JavaScript] 호이스팅(Hoisting)이란?

    주절주절 오랜만에 블로그 글을 씁니다. 작년 연말에 쓰디 쓴 패배를 맛보고....😇 잠시 휴식기를 가지고, 그 사이 또 새로운 도전을 했습니다. 이제부터는 다시 달릴 시기라고 생각합니다! 예전에는 블로그를 양치기 하려고 했었는데, 점점 블로그 운영을 하다보니 양 보다는 질이지 않나 하는 생각이 듭니다. 새해가 되었으니, 하나의 토픽에 대해 스스로도 더 깊게 공부하고 알게 된 내용을 잘 다듬어 글을 올리려고 마음 먹었습니다. 올해도 화이팅! 최근에는 자바스크립트 책을 읽으며 공부하고 있어 호이스팅에 대해 다시 한번 정리하는 시간을 가졌습니다. 그 전까진 중요한 개념으로 대략적으로만 알고 있었을 뿐 정확하게 알지 못했습니다. 호이스팅(Hoisting) ? 호이스팅은 자바스크립트 코드가 실행되기 전 변수 및 ..

    자바 접근제어자(Access Modifier) 개념과 사용

    제어자(modifier) 제어자는 클래스와 클래스 멤버의 선언 시 사용하여 부가적인 의미를 부여하는 키워드를 의미한다. 자바에서는 접근 제어자와 기타제어자로 구분한다. 접근 제어자는 두 개 이상 함께 사용하는 것이 불가하지만, 기타 제어자는 경우에 따라 여러개를 함께 사용 가능하다. 접근제어자 사용 이유 클래스 내부에 선언된 데이터를 보호하기 위함이다. 유효한 데이터 값을 유지하기 위해 외부에서 함부로 변경하지 못하도록 접근이 제어하는 것이다. 이를 정보 은닉(data hiding)이라고 하며 객체지향에선 캡슐화(encapsulation)라고 한다. 정보 은닉이란 사용자가 알 필요가 없는 정보는 숨겨야 한다는 개념으로, 정보 은식을 통해 사용자는 최소한의 정보로 손쉽게 프로그램을 사용할 수 있도록 하기 ..

    Commit convention 지키기 (feat. Angular.js)

    📌 커밋 메세지 구조 (Commit Message Structure) 바디와 풋터 부분은 생략 가능하다. 바디는 부연 설명이 필요한 경우, 풋터는 이슈 번호 등을 작성할 때 활용한다. : subject summary -> 커밋메세지 헤더 body -> 커밋메세지 바디 footer -> 커밋메세지 풋터 📄커밋 메세지 헤더(Commit Message Header) 에 들어갈 수 있는 항목 feat(feature) : 새로운 기능 추가 fix(bug fix) : 버그 수정 docs(documentation) : 문서 작업 style(formatting, missing semi colons) : 코드 포맷팅, 코드 변경이 없는 경우 refactor : 코드 리팩토링 test(when adding missing ..

    [Java] Enum 클래스의 개념과 사용

    최근 새롭게 자바 공부를 시작해서 프로그래밍을 하며 알게 된 지식들을 조금씩 블로그에 정리해보려 한다. 첫 번째는 Enum 클래스다. 📌 Enum의 의미와 개념 Enum이란 Enumeration의 앞글자로 '열거'라는 의미로 관련 있는 상수들의 집합을 나타내는 클래스이다. 대표적으로 요일이나, 계절 처럼 서로 의미있고 한정적인 데이터 집합들을 나타낼 때 사용한다. 클래스 내 선언하는 상수가 많아질수록 네이밍이 겹치는 것을 막고 상수값 관리를 용이하게 하기 위해 Class 대신 Enum을 사용한다. Enum은 단순히 데이터의 집합이 아니라 온전한 클래스 형태로 보며 상태와 행위를 한 곳에서 관리할 수 있다는 특징이 있다. enum 생성자는 private으로 선언 📄 Enum을 사용하는 이유 아래 두 가지 ..