본문 바로가기

분류 전체보기243

[TypeScript] 타입스크립트 스타일 가이드 요약 📋 (Ver. Google) / 1️⃣ - 식별자 (Identifiers) 스타일가이드란? 개발자라면 보통 본인들이 코딩을 할때 시스로 지키는 convention 들이 있을 것입니다. 변수 이름 짓는 방법이라던가, 들여쓰기의 정도, 줄바꿈 등등등 이런것들이 각각 다르겠죠? 헌데 협업, 혹은 대규모 개발을 할 때는, 코딩 스타일에 규칙을 정해놓고 통일할 필요가 있습니다. 구글에서는 이런 상황에서 서로 맞출 style 들을 지정해서 문서화 두었습니다. 워낙 체계적으로 잘 돼있어서 여러 기업, 프로젝트 들에서 사용됩니다. 구글 스타일 가이드 : google.github.io/styleguide/ Google Style Guides Style guides for Google-originated open-source projects google.github.io TypeScript 저는.. 2021. 3. 4.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 3️⃣ - JavaScript (2) Scope 란 무엇인가요? 변수가 값을 참조할 때 접근할 범위 이고, 흔히 그 접근할 수 있는 범위를 찾는 규칙을 말합니다. 자바스크립트는 함수 코드 블록 내에서 선언된 변수는 함수 내부에서만 유효한 함수 레벨 스코프를 따릅니다. 동적 스코프 VS 렉시컬 스코프 동적 스코프 : 함수가 호출 되는 순간에 상위 스코프를 결정 렉시컬 스코프 : 함수가 선언 되는 순간에 사위 스코프를 결정 this 는 무엇을 의미할까요? 자바스크립트에서 실행하는 환경의 context를 의미하는 객체입니다. 상황에 따라 다르지만 간단하게 예시를 들어보자면 특정 객체 안에서의 this 는 해당 객체를 의미하고, 글로벌한 환경에서의 this는 window 객체를 의미합니다. 함수에서 쓰였을 때 : 함수를 실행시킨 곳의 객체 메소드에.. 2021. 3. 3.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 4️⃣ - 데이터베이스 (1) 왜 데이터베이스인가요? (데이터베이스 VS 파일 시스템) 우선 가장 큰 이유는 Data를 관리하는 게 매우매우 중요하기 때문에 데이터베이스라는 시스템을 통해 관리하는게 좋습니다. 자세히 설명드리자면, 데이터베이스를 이용하게 되면 파일 시스템과 달리 응용프로그램과의 dependancy가 줄어들고, 데이터 무결성 구현도 쉬워집니다. 그리고 데이터베이스 자체적으로 보안이라던가, 일관성, 중복 문제들을 관리할 수 있게 됩니다. 독립성 무결성 일관성 보안성 중복 최소화 인덱스란 무엇인가요? 데이터베이스에서 데이터를 읽을 때 빠르게 탐색할 수 있기 위해 설정해두는 색인같은 것 입니다. 비트리 인덱스나 해쉬 인덱스 알고리즘등이 주로 사용됩니다. 인덱스를 사용해야 하는 경우 데이터 양이 많고 검색이 변경보다 빈번한 경.. 2021. 3. 2.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 3️⃣ - JavaScript (1) 블로킹과 논블로킹 언어가 무엇인가요? 예를들어보자면 파이썬은 블로킹 언어고 자바스크립트는 논블로킹 언어입니다. 즉 자바스크립트는 다음 코드가 연산이 끝나는 것을 기다리지 않아도 된다는 것을 의미합니다. 그렇기 때문에 자바스크립트는 비동기적으로 작업이 가능하게 됩니다. 그래서 어떠한 작업이 끝나고 이루어져야 하는 작업들은 async/await 나 콜백 함수를 이용해서 이루어지게 됩니다. 자바스크립트의 이벤트 루프에 대해 설명해주세요. 우선 자바스크립트는 기본적으로 싱글 스레드 이벤트 루프 형태를 가지고 있습니다. 자바스크립트에는 Stack 이 있고 Queue가 있는데, setTimeout 과 같은 함수들은 메세지 큐, 즉 콜백 큐로 들어가게 되고, 그 메시지가 실행되야되는 상황에 만약 Stack 이 비었있.. 2021. 3. 2.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 2️⃣ - 운영체제 (2) 가상 메모리란 무엇인가요? 메모리는 한정적인데 프로세스 용량이라던가, 프로세스의 수가 늘어나면 다중 프로그래밍이 힘들어질 수 있습니다. 그럴 때를 대비해서, 프로세스의 데이터 전체가 메모리에 올라가지 않더라도, 가상의 주소공간을 이용해서 프로세스를 유지할 수 있게끔 해주는 것을 의미합니다. 가상메모리와 스왑(swap) 과는 다르다. 더 많은 프로세스를 동시에 실행이 가능해진다. 자동적으로 CPU 이용률 또한 높아진다. 페이징이란 무엇인가요? 프로그램은 실제 물리적 메모리를 직접적으로 이용하지 않습니다. 가상 메모리를 이용하게 되고, 그 가상메모리가 결국에는 물리적 메모리에 접근해서 메모리를 이용하게 되는데, 이 때 가상메모리를 일정한 크기의 블록으로 나누어 관리하는 것이 Paging , 물리적 메모리를 .. 2021. 3. 2.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ - 2️⃣ 운영체제 (1) 프로세스와 쓰레드에 대해 설명해주세요. 프로세스는 프로그램이 실행되서 메모리에 적재되어있고, CPU 의 할당을 받을 수 있는 상태를 의미합니다. 운영체제로 부터 Code, Data, Stack, Heap 을 할당받은 상태입니다. 쓰레드는 이 프로세스의 실행 단위라고 할 수 있으며, 프로세스 내부 자원을 공유하면서, 하나의 프로세스를 좀 더 효율적이게 실행시키는 멀티쓰레딩이 가능하게 됩니다. 구체적으로 말씀드리자면, 각각의 쓰레드는 프로세스의 Code, Data, Heap 은 공유하지만 고유의 Thread ID, Stack, 레지스터, PC 를 가지게 되고 독립적인 작업을 수행하게 됩니다. - 당연히 잘 알고 있다고 생각했는데, 막상 면접에서 이 질문이 들어오니 체계적으로 설명을 못하더라구요... 방심했던.. 2021. 3. 1.