분류 전체보기
타입스크립트 타입 종류 살펴보기
타입스크립트 타입 종류 살펴보기
2023.04.06The primitives string number boolean // 변수 타입 표기 - 변수의 타입을 지정한다. const num: number = 1; const str: string = '문자열'; const bool: boolean = true; // 타입 추론 : 'name' 변수는 'string' 타입으로 추론된다. const name = '최개발'; any TypeScript가 주는 장점을 모두 상쇄시켜 JavaScript를 사용하는 것과 같게 된다. any타입을 사용하는 곳에서는 TypeScript 컴파일러가 작동하지 않는다. 아래의 경우를 제외하고는 any타입을 사용하지 않는 것이 좋다. 특정 값으로 인하여 타입 검사 오류가 발생하는 것을 원하지 않는 경우 어떤 값 혹은 데이터가 저장될..
SPA 이해하기
SPA 이해하기
2023.01.25SPA SPA는 'Single Page Application'의 약자로 단일 페이지 애플리케이션을 말한다. 웹 사이트 전체 페이지를 하나의 페이지에 담아 동적으로 화면을 변경해 표시하는 기술이다. React를 예시로 최초 한 번 페이지를 전체 로딩한 이후에는 데이터만 변경할 수 있는데, 하나의 html 파일로만 동작함을 확인할 수 있다. 과거 웹 사이트는 지금과 달리 문서에 전달되는 정보의 양이 적었다. 그래서 페이지의 일부 영역만 변경되어도 서버에서 새로운 페이지를 재렌더링하여 전송하는 방식(ex. SSR)을 사용했다. 하지만 웹 시장이 발전됨에 따라 한 페이지의 정보량이 커졌고, 서버에서 매 번 새로운 페이지를 전송하는 것이 버거워졌다. 이를 해결하기 위해 등장한 기술이 바로 SPA이다. SPA의 경..
[JavaScript] 정렬 알고리즘 - 버블 정렬, 선택 정렬, 삽입 정렬
[JavaScript] 정렬 알고리즘 - 버블 정렬, 선택 정렬, 삽입 정렬
2022.11.30개요 JavaScript는 기본적으로 Array.prototype.sort() 메서드가 존재해서 정렬 알고리즘을 사용할 필요가 없지만, 메서드에 의존하기 보다는 컴퓨팅 사고를 통해서 정렬하는 방법을 알아보고자 한다. 해당 정렬을 프로그래머스 Lv0. 중앙값 구하기 문제에 적용하고자 한다. > 중앙값 구하기 문제 풀이 바로가기 GitHub - cham-min/Algorithm: 알고리즘 공부 저장소 알고리즘 공부 저장소. Contribute to cham-min/Algorithm development by creating an account on GitHub. github.com 1. 버블 정렬 (Bubble sort) 가장 큰 값이 거품처럼 위로 올라가는 모양을 띄는 알고리즘이다. const bubble..
우아한테크코스 5기 프리코스 회고
우아한테크코스 5기 프리코스 회고
2022.11.26우아한테크코스 프리코스 참가 계기 우아한테크코스 5기 이전에는 코딩 테스트를 진행하고 합격자에 한해서 프리코스를 진행했다. 그런데 지인에게서 5기부터 따로 코딩 테스트를 진행하지 않고 지원한 모든 참가자들에게 프리코스를 경험할 수 있는 기회를 제공한다는 말을 듣게 되었다. 개발자 취업 준비생이라면 누구나 아는 교육과정이기에 관심이 생겨 설명회에 참가했다. 특이한 점은 개발자 관련 직군으로 재직 경험이 하루라도 있다면 합격 대상자에서 제외되며, 교육을 받을 기회가 적은 인원에게 우선 기회를 제공하고자 하는 취지를 듣게 되었다. 또한 오랜 기간 프로그래밍을 경험한 인원보다는 독학으로 3 ~ 6개월 공부한 인원이 합격할 수 있는 과정으로 구성했다고 한다. 알고리즘에 대해서는 전혀 몰랐지만 프리코스 만으로도 굉..
Git 커밋 컨벤션
Git 커밋 컨벤션
2022.11.24Commit message 일관되고 직관적이지 않은 내용의 커밋 로그가 누적되면 가독성이 매우 떨어진다. 혼자가 아닌 여러 사람들과 개발을 한다면 상황은 더욱 악화된다. 여러 사람들과 협업할 때 커밋은 기능별로 커밋하면 특정 기능에 대해서만 코드 리뷰를 진행할 수 있어 협업이 수월해진다. 여기에 일관되고 직관적인 내용으로 커밋 메시지를 남긴다면 협업의 효율을 증진시킬 수 있다. 커밋 메시지로 효율을 증진시킬 수 있는 컨벤션에 대해서 정리해보자. AngularJS Commit Conventions 첫 번째로 AngularJS Commit Conventions를 참고하여 작성한 내용이다. 아래의 부분을 제외하면 Udacity Commit Convention과 동일하다. (): feat : 새로운 기능 추가 ..
Fork 저장소를 원본 저장소 최신 커밋으로 반영하기
Fork 저장소를 원본 저장소 최신 커밋으로 반영하기
2022.11.23코딩을 하다 보면 Fork를 통해서 본인 저장소에서 작업하다가, 원본 저장소 최신 커밋을 반영해야 하는 경우가 발생한다. 아래 과정을 통해서 해결해보자. Github Fork를 진행한 원본 저장소에 커밋이 추가되면 깃허브 상단에는 본인 저장소가 원본 저장소 main 브랜치 보다 한 개의 커밋이 뒤쳐져 있다는 사실을 알려준다. 원본 저장소 remote 등록하기 리모트 저장소에 원본 저장소를 설정해야 원본 저장소 작업을 본인 저장소에 반영할 수 있으며, 이를 통해서 협업이 가능하다. 아래 명령어를 통해서 리모트 저장소 확인이 가능하다. $ git remote -v git remote -v 명령어 입력 후, 아래 결과가 나온다면 원격 저장소 설정이 되지 않은 상태이다. origin https://github..
[모던자바스크립트 Deep Dive] 원시 값과 객체의 비교
[모던자바스크립트 Deep Dive] 원시 값과 객체의 비교
2022.10.06모던 자바스크립트 딥 다이브 11장 원시 값과 객체의 비교 정리 데이터 타입은 크게 원시 타입(primitive type)과 객체 타입(object/reference type)으로 구분할 수 있다. 원시 타입 객체 타입 원시 값은 변경 불가능한 값(immutable value)이다. 객체는 변경 가능한 값(mutable value)이다. 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다. 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장된다. 값에 의한 전달 : 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다. 참조에 의한 전달 : 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다. 원시 값 변경..
[모던자바스크립트 Deep Dive] 변수를 저장하는 과정(값의 할당)
[모던자바스크립트 Deep Dive] 변수를 저장하는 과정(값의 할당)
2022.10.04모던 자바스크립트 딥 다이브 04장 변수 정리 용어 변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 할당(assignment) : 대입, 저장이라고도 하며 변수에 값을 저장하는 것이다. 참조(reference) : 변수에 저장된 값을 읽어 들이는 것이다. 변수가 메모리에 담기는 과정 자바스크립트가 10 + 20연산을 수행하기 위해서는 좌변, 우변의 피연산자를 메모리를 사용해 데이터를 기억하고 CPU를 사용해 연산한다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체이며, 메모리 셀 하나의 크기는 1바이트(8비트)로 컴퓨터는 메모리 셀의 크기 즉 1바이트 단위로 데이터를 저장하거나 읽어 들인다. 각 셀은 고유의 메모리 주소를 갖으..
타입스크립트(TypeScript)란?
타입스크립트(TypeScript)란?
2022.08.18TypeScript JavaScript에 타입을 부여한 언어로 JavaScript의 확장된 언어이다. Microsoft에 의해서 개발 및 관리되고 있는 오픈소스 프로그래밍 언어로 대규모 애플리케이션을 개발하는데 JavaScript가 어렵고 불편하다는 불만에 대응하기 위해서 개발되었다. JavaScript는 C, Java와 같은 언어와 구별되는 특성이 있다. Prototype-based Object Oriented Language Scope & this 동적 타입(dynamic typed)언어 혹은 느슨한 타입(loosely typed)언어 이와 같은 특성은 클래스 기반 객체지향 언어에 익숙한 개발자를 혼란스럽게 하며 코드가 복잡해질 수 있고 디버그가 증가하는 문제를 일으킬 수 있어서 규모가 큰 프로젝트에..