프론트엔드 개발자로 면접을 준비하면서 나올 수 있는 질문 리스트를 틈틈이 작성해 보고자 한다. 첫 번째로 웹 브라우저와 HTML 관련된 질문 리스트를 적어 본다. 참고로 이는 화상 면접이나 전화 면접에서 나올 만한 예상 질문들을 정리하는 내용으로, 경력 3년 이하 주니어 개발자 면접을 대비하기 위함이기에 너무 자세하고 깊은 내용보다는 간결하고 핵심적인 내용 위주로 적어보았다. Web Browser 브라우저의 동작 원리를 간단하게 설명해 주세요. 브라우저의 기본적인 역할은 HTML, CSS 명세에 따라 HTML 파일을 해석해서 표시하는 것이다. 브라우저를 구성하는 요소는 사용자 인터페이스, 브라우저 엔진(크롬, 사파리는 Webkit, 파이어폭스는 Gecko), 렌더링 엔진, 통신, UI 백엔드, 자바스크립..
프론트엔드
이번에는 타입스크립트의 클래스와 인터페이스에 대해 공부한 내용을 정리해 보고자 한다. 객체지향 프로그래밍과 클래스 기초 객체지향 프로그래밍(Object Oriented Programming, OOP)은 커다란 문제를 클래스 단위로 나누고 클래스 간의 관계를 추가하면서 코드 중복을 최소화 하는 개발방식이다. 클래스 간의 관계를 추가할 때는 상속이나 포함 관계를 고려하여 추가한다. OOP를 통해 어플리케이션을 개발하면 코드 중복을 상당히 줄일 수 있다. 타입스크립트는 자바스크립트(ES6)에 비해서 OOP를 지원하는 부분이 훨씬 더 많다. 타입스크립트에서는 클래스 선언을 다음과 같이 할 수 있다. 더불어 Rectangle 클래스 타입은 그 아래의 인터페이스 타입과 정확하게 일치한다. class Rectangl..
Vue.js란 무엇인가? Vue.js는 사용자 인터페이스를 만들기 위한 프로그레시브 프레임워크이다. Vue.js의 핵심 라이브러리는 뷰 레이어만 초점을 맞추어 다른 라이브러리나 기존 프로젝트와의 통합이 매우 쉽다. Vue.js는 현대적 도구 및 지원하는 라이브러리와 함께 사용한다면 정교한 단일 페이지 응용프로그램을 완벽하게 지원한다. Vue.js 의 주요 특징을 정리해 보면 다음과 같다. 1. 가상 DOM(Virtual DOM): Vue.js에서는 React.js, Ember.js 프레임워크와 유사하게 가상 DOM을 사용한다. 가상 DOM은 원본 HTML DOM을 표현하는 메모리 상의 가벼운 DOM 트리로, 원본 DOM에 영향을 미치지 않고 업데이트를 할 수 있다. 2. 컴포넌트(Components): ..
타입스크립트의 변수 선언 타입스크립트에서 변수 선언 방식은 var, const, let 이렇게 세 가지가 있다. 1. var 전역 공간이나 함수 내에서 변수를 선언할 때 var 선언자를 사용한다. var 로 선언된 변수는 다음과 같은 두 가지 특성이 있다. 첫 번째는 호이스팅(Hoisting)이다. 호이스팅은 선언한 변수가 스코프의 최상위로 끌어올림 되는 현상이다. 두 번째는 함수 레벨 스코프(function level scope)를 지원한다는 점이다. 이는 함수 내에서 선언한 변수는 함수 내에서만 유효하고 함수 외부에서는 참조할 수 없음을 의미한다. // var는 함수 레벨 스코프를 지원 var myName = "sad"; function functionLevel() { var myName = "hap..
오늘은 오랜만에 내 이야기를 좀 해보려 한다. 나는 올 한 해동안 두 군데의 스타트업(상반기에 한 번, 하반기에 한 번)에서 각각 두 세달 정도씩 인턴을 했었다. 분야는 웹 프론트엔드 였으며 둘 다 지인을 통해 알게 되었고 들어가서 일을 하게 되었다. 참고로 스타트업에서 개발자 인턴을 하는 건 생각보다 그렇게 어렵지 않을 수 있다. 왜냐하면 99%의 스타트업은 개발자가 항상 부족한 상황이기 때문이다. ㅎㅎ 작년 여름 영국에서 돌아와서 국비 지원 과정을 시작하면서 코딩을 배우기 시작했다. 2018년 말, 나의 실력은 딱 국비 지원 3~4개월 받은 사람의 수준 그 이상도 그 이하도 아니었다. 관련 글에도 자세하게 적었지만 나는 국비 지원 과정에 불만이 많았고 회의감도 느꼈다. 그래서 언제 나올 수 있을지 계..
지난 금요일 저는 IBM Developer Day를 다녀왔습니다. IBM Developer Day는 전 세계 각국 IBM 지사에서 주최하는 개발자 컨퍼런스 입니다. IBM Korea에서 여는 연중 행사 중 가장 규모가 큰 것으로 알고 있어요. 저는 이번에 이 행사를 비교적 일찍 알게 되어서 빠르게 신청했는데, 무료 행사라 그런지 마감도 빠르게 되는 것 같더라구요. 혹시 내년에 참가를 하고 싶으시다면, 일찍 서두르시는 편이 좋을 것 같습니다 ㅎㅎ 발표 분야는 정말 다양했던 것 같아요. 웹, 딥러닝, 머신러닝, 블록체인, 클라우드 등등 주제로 발표가 이루어 졌고 IBM이 아닌 외부에서 오신 연사님들도 정말 많았어요. 저는 처음부터 순서대로 Track A, C, C, D, C, D 이렇게 들었습니다. 추후에 ..
(본문에 앞서, 저의 솔직하고 주관적인 후기임을 먼저 밝혀드립니다.) 작년 여름, 나는 6개월짜리 웹 개발 국비지원 과정을 수강하였다. 당시 나의 상황을 간단하게 설명하자면... 영국에서 교환학생을 돌아온 직후였고, 거기에 있는동안 너무 잘 놀고 와서 ㅋㅋ 코딩을 좀 제대로 해야 할 필요성을 느끼고 있던 시기였다. 인터넷 강의는 이전에도 몇 번 들어보았는데 강제성이 없어서 그런가 끝까지 완강을 못한 적이 더 많았던 것 같다. 뭔가 항상 시작을 하고 흐지부지 되는게 싫었고, 그렇다고 혼자서 무언가를 하자니 할줄 아는 것이 거의 없던 상황이어서 여러가지 고민이 많았던 시절이었다. 제대로 코딩을 배워보고 싶었다. 가장 먼저 알아본 건 패스트캠퍼스나 코드스테이츠, 코드스쿼드 등의 부트캠프였다. 나는 가을학기 휴..