기술면접 예상질문 주제에 관련된 내용을 정리해보자
🥊 Javascript vs Typescript
먼저 자바스크립트와 타입스크립트 이 두가지의 장단점와 차이점에 대해 알아보자
Javascript
장점
- 낮은 러닝커브 : 자바스크립트는 상대적으로 배우기 쉽고 진입 장벽이 낮다.
- 브라우저 호환성 : 모든 주요 웹 브라우저에서 지원되며, 클라이언트 측 웹 개발에 적합하다.
- 동적 타입 지원 : 변수 타입을 명시적으로 선언할 필요가 없어서 빠르게 프로토타입을 작성할 수 있다.
단점
- 타입 오류 발생 : 런타임 시 타입 오류가 발생할 수 있어서 버그를 찾고 수정하기 어렵다.
- 대규모 프로젝트 관리 어려움 : 복잡한 대규모 프로젝트의 경우 유지보수와 코드 관리가 어려울 수 있다.
- 타입 안정성 부족 : 동적 타입 언어로서 변수의 타입이 유연하기 때문에 예기치 않은 동작이 발생할 수 있다.
Typescript
장점
- 정적 타입 검사 : 컴파일 시 타입 검사를 수행하여 타입 관련 오류를 사전에 방지할 수 있다.
- 코드 가독성 향상 : 명시적인 타입 선언으로 코드의 가독성이 향상되며, 다른 개발자들과 협업하기 용이하다.
- 대규모 프로젝트 관리 용이 : 타입스크립트는 대규모 프로젝트에서 코드 유지보수와 확장이 용이하다.
단점
- 높은 러닝커브 : 자바스크립트보다 러닝커브가 높고, 타입 정의에 시간이 추가로 필요할 수 있다.
- 컴파일 오버헤드 : 타입 검사 및 변환을 위한 컴파일 단계가 추가되어 개발 시간이 늘어날 수 있다.
- 번거로움 : 타입을 명시적으로 선언해야 하므로 초보자에게는 조금 더 복잡하게 느껴질 수 있다.
주요 차이점
타입 지정 유무
- 자바스크립트 : 동적 타입 언어로, 변수의 타입을 명시적으로 선언할 필요가 없다.
- 타입스크립트 : 정적 타입 언어로, 변수의 타입을 명시적으로 선언해야 하며, 타입스크립트 컴파일러가 타입을 검사한다.
컴파일 과정
- 자바스크립트 : 코드를 브라우저나 런타임 환경에서 바로 실행한다.
- 타입스크립트 : 타입스크립트 코드는 타입 체크와 컴파일 과정을 거쳐 JavaScript 코드로 변환된다.
개발 생산성
- 자바스크립트 : 런타임 시 타입 오류를 발견하기 어려울 수 있으나, 빠른 프로토타이핑 및 개발이 가능하다.
- 타입스크립트 : 타입 체크로 인한 추가 작업이 필요하지만, 코드의 가독성이 향상되고 대규모 프로젝트에서 유지보수 및 협업이 용이하다.
적합한 프로젝트 유형
- 자바스크립트 : 작은 규모의 프로젝트나 프로토타입 개발에 적합하다.
- 타입스크립트 : 대규모 프로젝트이거나 협업이 필요한 경우에 적합하다.
생태계 및 지원
- 자바스크립트 : 매우 넓은 생태계와 다양한 라이브러리 및 프레임워크 지원이 가능하다.
- 타입스크립트 : 자바스크립트의 확장으로서, 자바스크립트의 모든 기능을 포함하며, 추가적인 타입 시스템을 제공한다.
정리해보면 자바스크립트는 빠르게 프로토타입을 작성하고 유연한 개발이 가능하며, 작은 규모의 프로젝트나 프로토타입 개발에 적합하다. 반면에 타입스크립트는 타입 안정성을 강화하여 대규모 프로젝트의 유지보수성을 높이고, 개발자간 협업을 용이하게 한다.
프로젝트의 규모와 요구사항에 맞춰 적절한 언어를 선택하는 것이 중요하다!
🔎 SEO란?
SEO는 검색 엔진 최적화(Search Engine Optimization)의 약자로, 웹사이트나 웹 페이지를 검색 엔진에서 노출되기 좋게 최적화 하는 작업을 말한다.
이것은 검색 엔진 경화 페이지에서 상위에 노출되어 더 많은 유저들이 해당 사이트를 방문하도록 유도하는 것을 목표로 한다!
SEO의 목적
- 검색 노출 증대 : 웹사이트가 검색 결과 페이지에서 상위에 노출되면 클릭률이 증가하고 유입 트래픽을 확보할 수 있다.
- 유저 경험 향상 : 검색 엔진은 사용자 경험을 중시하므로, SEO 작업은 사이트의 속도, 사용자 친화적인 디자인, 적절한 콘텐츠 등을 개선하여 유저 경험을 향상시킨다.
- 권위성과 신뢰성 강화 : 검색 엔진은 권위 있는 사이트를 선호하므로, SEO를 통해 권위성 있는 백링크를 확보하고 신뢰성을 높일 수 있다.
SEO의 주요 요소
- 키워드 최적화 : 관련성 높은 키워드를 적절히 사용하여 검색 쿼리에 대한 검색 결과에 노출될 수 있도록 한다.
- 콘텐츠 품질 : 고품질의 콘텐츠를 제공하여 유용한 정보를 제공하고 사용자의 관심을 끌어야 한다.
- 사이트 속도 및 성능 최적화 : 빠른 로딩 속도와 웹사이트의 안정성은 SEO에 중요한 요소이다.
- 모바일 호환성 : 모바일 퍼스트 인덱싱을 고려하여 모바일 친화적인 디자인과 사용성을 갖추어야 한다.
- 사이트 구조 및 메타데이터 최적화 : 사이트의 구조를 깔끔하게 유지하고 메타데이터(제목, 설명, 키워드 등)를 최적화하여 검색 엔진이 쉽게 이해할 수 있도록 해야 한다.
SEO를 진행하는 방법
키워드 연구 및 분석
- 관련성 높은 키워드를 찾고 해당 키워드의 검색량과 경쟁도를 분석한다.
- 다양한 키워드 도구(구글 키워드 플래너, SEMrush, Ahrefs 등)를 활용하여 키워드 연구를 진행한다.
콘텐츠 최적화
- 키워드를 적절히 활용하여 콘텐츠를 작성하고 최적화한다.
- 제목, 메타 설명, 헤딩 태그 등의 메타데이터를 최적화하여 검색 엔진이 콘텐츠를 이해하기 쉽도록 한다.
- 고품질의 콘텐츠를 제공하여 유저의 관심을 끌고 정보를 제공한다.
사이트 구조 최적화
- 사이트의 내부 링크 구조를 최적화하여 검색 엔진이 사이트를 크롤링하고 인덱싱하기 쉽도록 한다.
- XML 사이트맵을 제출하여 검색 엔진에 사이트 구조를 알려준다.
사이트 속도 및 성능 최적화
- 빠른 로딩 속도를 위해 이미지 최적화, 캐싱 설정, 서버 응답 시간 최적화 등을 진행한다.
- 모바일 퍼스트 디자인을 채택하여 모바일 사용자의 경험을 개선한다.
백링크 구축
- 고품질의 백링크를 확보하여 사이트의 권위성을 높인다.
- 관련성 높은 사이트에서 백링크를 얻는 것이 중요하며, 자연스러운 링크 프로필을 유지해야 한다.
사용자 경험 개선
- 사용자가 웹사이트에서 쉽게 정보를 찾고 목적을 달성할 수 있도록 사용자 경험을 개선한다.
- 사용자 행동 분석을 통해 문제점을 파악하고 개선한다.
정기적인 모니터링과 분석
- SEO 성과를 추적하기 위해 웹사이트 트래픽, 키워드 랭킹, 사용자 동작 등을 모니터링하고 분석한다.
- 데이터를 기반으로 시정점을 설정하고 전략을 수정하여 지속적인 개선을 이룬다.
콘텐츠 마케팅
- 블로그 글, 동영상, 인포그래픽 등 다양한 콘텐츠를 활용하여 타겟 사용자에게 가치 있는 정보를 제공하고 공유한다.
- 소셜 미디어 및 온라인 커뮤니티를 활용하여 콘텐츠를 홍보하고 백링크를 확보한다.