JavaScript 메모리 구조 자바스크립트는 스택과 힙 두 가지 영역을 사용하여 객체가 생성될 때 자동으로 메모리를 할당하고, 더 이상 사용하지 않을 때 가비지 컬렉터를 통해 메모리를 해제합니다. (전역변수, Window 객체도 힙 영역에 저장됩니다.) JavaScript 엔진 (인터프리터 VS 컴파일) 자바스크립트는 최초 인터프리터 방식으로 만들어졌으며, 실행되는 플랫폼(브라우저 등)에 따라 인터프리터와 컴파일 방식이 혼합되어 사용되고 있습니다. 자바스크립트 엔진은 자바스크립트를 실행해 주는 프로그램으로 대부분 웹브라우저 (크롬 - V8, Safari - Webkit 등)으로 인터프리터 방식과 컴파일 방식 등 엔진 별로 목적에 맞게 사용됩니다. 컴파일 방식과 인터프리터 방식의 차이는 컴파일 유무입니다..
CR, LF 소개 CR (Carriage Return)은 타자기 시절 페이퍼 롤을 우측으로 이동시키기 위한 명령어로, 현재 위치를 좌측 맨 끝으로 옮기는 것을 의미합니다. LF (Line Feed)는 페이퍼 롤을 한 줄씩 아래로 이동시키는 명령어로, 현재 위치에서 한 줄 아래로 이동하는 것을 의미합니다. 즉, 과거에 타자기로 문서 작성을 위해선 CRLF 작업이 반드시 필요했습니다. CR(Carriage Return) : 현재 커서에서 맨 앞으로 이동하는 동작 LF(Line Feed) : 커서는 그대로 있고, 줄만 바꾸는 동작 CRLF : 두 가지 개행문자를 모두 수행 운영체제 별 CR, LF Windows 운영체제는 CR+LF(\r\n), Unix 계열은 LF(\n), Mac은 Mac OS X 버전 CR..
직렬화 - 역직렬화? 직렬화(Serialization)는 자바 객체를 파일, 디비, 메모리 등 외부 시스템과 통신할 수 있도록 바이트 상태인 데이터로 변환하는 것을 의미하며, 반대로 바이트 상태인 데이터를 객체로 변환하는 것을 역직렬화(De-Serialization)라고 합니다. 외부 시스템과 통신하기 위해 바이트로 변환하는 이유는 뭘까? 자체 메모리 위에서만 통신한다면 JVM 힙 영역에 있는 주솟값으로 객체를 주고받을 수 있다. 하지만 외부 시스템과 통신하기 위해선 주솟값은 의미 없기 때문에 실제 값을 전송하기 위한 스트림 통로와 바이트 변환이 필요하게 된다. Primitive 타입은 실제 값을 가지고 있기 때문에 직렬화하지 않아도 된다. Serializable public interface Seria..
gitignore 이란? gitignore이란 git에서 사용하는 파일명으로, 프로젝트에서 형상 관리에 이용하지 않을 특정 파일을 커밋 대상에서 제외시켜주는 것을 의미합니다. Mac을 사용하다보면 디렉터리 접근할 때. DS_Store가 생겨서 불필요한 파일이 추가되는데요. 이럴 때 관리 대상에서 제거하기 위해 gitignore를 사용합니다. Git은 모든 파일을 다음 세 가지 중 하나로 인식합니다. 1. tracked : 스테이징 되었거나 커밋된 파일 2. untracked : 스테이징 되지 않았거나, 커밋되지 않은 파일 3. ignored : 무시하도록 명시된 파일 gitignore 컨벤션 패턴 설명 예시 **/api **을 사용하면 모든 디렉토리로 제외 v1/api, test/v1/api, v2/ap..
인코딩이란? 인코딩이란 어떠한 정보를 특수한 목적을 가지고, 다른 형태로 변환하는 행위를 의미합니다. 컴퓨터에서 문자를 저장, 전송, 연산하기 위해서는 모든 데이터를 0과 1로 바꿔야 합니다. 이때 사용하는 방식도 인코딩에 속합니다. 즉, 문자 인코딩은 문자를 컴퓨터에서 사용할 수 있는 2진수(0,1)로 변환하는 것입니다. 반대로 숫자로 변환한 데이터를 다시 원래 정보인 문자로 되돌리는 것을 디코딩이라고 합니다. 컴퓨터가 0과 1로 연산하기 위해 데이터를 인코딩한다면, 값에 맞게 매핑하는 기준이 있어야 할 텐데 기준이 뭘까? ASCII 문자 집합 등장 ASCII (American Standard Code for Information Interchange) 테이블은 컴퓨터에 사용할 문자를 2진수로 인코딩하..
JAXB 란? JAXB(Java Architecture for XML Binding)는 자바 객체와 XML 문서 간의 매핑을 쉽게 처리하기 위한 자바 API입니다. JAXB는 XML 스키마를 기반으로 자동으로 자바 클래스를 생성하고, 자바 클래스와 XML 문서 간의 양방향 매핑을 지원합니다. JAXB에서 제공하는 Marshaller와 UnMarshaller를 사용해서 HTTP POST 요청에 대한 XML 데이터를 자바 객체로 변환하고, 응답하는 예제를 만들어볼게요. Marshaller과 UnMarshaller Marshaller는 자바 객체를 XML 문서로 변환, Unmarshaller는 XML 문서를 자바 객체로 변환해 줍니다. 먼저 XML 예제는 다음과 같습니다. Noida Sector-88 2013..
정보처리기사 ? 정보처리기사 자격증은 소프트웨어 개발 자격증으로 프로젝트 기획 및 설계, 구현, 운영 등의 다양한 업무를 수행할 수 있는 능력을 검증하는 자격증이에요. 보통 전공자 대학 졸업 요건 또는 회사에서 자격증 취득 시 주는 혜택이 있어 비전공자 분들도 많이 준비하시더라고요. 저는 졸업 요건에 포함되어 있어서 취득하게 되었습니다. 정보처리기사 자격증은 2020년부터 NCS 표준에 맞춰 개편되면서 전자계산기 구조, 운영체제, 데이터 통신 과목이 폐지되고 프로그래밍 언어 활용, 정보시스템 구축 관리 과목이 신설 되었어요. 저는 필기와 실기 모두 수제비 책을 이용했어요. 정보처리기사 준비할 때 책이 너무 맘에 들어서 이후 빅데이터분석기사 준비할 때도 믿고 수제비책을 구매했고 결국 두 기사 모두 취득을 ..
빅데이터분석기사? 빅데이터분석기사는 한국데이터산업진흥원에서 시행하는 기사 자격증으로 2021년부터 연간 2회 실시로 올해는 6 ~ 7회 시험 일정이 잡혀있네요. (코로나로 인해 2021년에 2회부터 시작) 올해는 6 ~ 7회 시험일정이 있으며, 필기 실기 모두 접수 후 한 달 정도의 시간이 주어지네요. 빅데이터분석기사는 빅데이터 관련 자격증인 ADSP, ADP 사이에 난이도로 ADSP < 빅데이터분석기사 < ADP 순으로 통상 불리고 있어요. 빅데이터분석기사 취득 이유 빅데이터분석기사는 IT 분야에서도 유망한 자격증이라고 하는데요. 아무래도 인공지능, 빅데이터의 지속적인 성장세로 인해 빅데이터에 대한 이해를 기반으로 분석 및 시각화하는 직종이 유망하다고 평가받고 있기 때문이에요. 저는 빅데이터분석기사 두..