코딩테스트 1차, 2차 모두 떨어졌다고 생각했는데 붙어버려서 급하게 면접 준비를 했다. 회사에 입사하는 것이 아니라 교육 프로그램 지원자를 뽑는 자리다 보니 전공지식이나 기술에 대해서는 거의 질문하지 않는다고 했다. 하지만 이왕 면접보는거 기술면접까지 준비하기로 마음먹었다. 처음보는 면접인만큼 엄청 떨렸다... 질문은 구글링해서 찾아봤던 것처럼 기술면접같은 질문들을 하지는 않았다. 협업을 한번도 경험하지 않고 강의같은것도 보지 않은 진짜 비전공자 출신이라서 답변을 하기 힘든 부분이 많았다. 어떻게든 내 생각과 가치관을 얘기하려고 했는데 면접관님들이 어떻게 평가했을지는 잘 모르겠다. 초반에는 질문에 대한 답변을 할 수 없는 경우가 많았는데 후반부에는 조금 답변할 수 있는 질문들이 나왔다. 기술관련해서도 몇..
지금까지 공부해온 것들을 말해주세요 군대에 있을때 진로를 생각하던 중에 개발자가 마음에 들었고 비전공자이면서 개발 공부를 하는 친구를 알게됩니다. 그렇게 군대 말차를 나와서 개발 공부를 시작하게 되었고 친구의 조언을 바탕으로 공부하기 시작했습니다. 처음에 자바를 공부하고 안드로이드로 헬스앱을 만들었습니다. 이때가 거의 공부를 해오면서 가장 힘들었던 시간이였습니다. 아무것도 모르는데 갑자기 앱을 만들어야한다니 정말 막막했지만 한가지 작업에 며칠식 매달려 가면서 완성을 했습니다. 실제로 오랜기간 사용했으며 지금 앱 분야를 공부하지는 않지만 값진 경험이였다고 생각합니다. 그리고 이제 웹을 공부하기 시작했는고 처음에는 생활코딩 이고잉님의 강의를 들었습니다. 그리고 바로 서버, db를 이용한 프로젝트를 하기는 무..
리액트란 리액트는 쉽게 말해서 사용자 인터페이스를 만들기 위한 Javascript 라이브러리다. 그런데 리액트는 사용자 인터페이스를 만드는 여러 라이브러리 중에 하나일 뿐인데 왜 모두 리액트에 열광하는 것일까? 먼저 리액트는 대표적인 SPA(SinglePageApplication)이다. SPA를 처음 접한다면 충격적일 것이다. SPA는 말 그대로 하나의 페이지로 된 어플리케이션이라는 말이다. 즉 HTML 파일이 하나인 어플리케이션이다. 그렇기 때문에 새로고침 현상 즉 깜빡거리는 현상이 없어진다. SPA라는 조건 한가지 때문에 리액트를 사용하지는 않는다. 바닐라자바스크립트로 간단한 프로젝트를 만들고 리액트로 프로젝트를 만들어본 사람은 리액트의 편리성과 이점들을 알게된다. 리액트의 특징 1. Virtual ..
에러 처리 에러는 언제나 발생할 수 있기 때문에 try, catch 문을 사용해 에러에 적절하게 대으으하면 프로그램이 강제 종료되지 않고 계속해서 코드를 실행시킬 수 있다. Error 객체 Error 생성자 함수는 여러 객체를 생성한다. Error 생성자 함수에는 에러를 상세히 설명하는 에러 메시지를 인수로 전달할 수 있다. Error 생성자 하뭇가 생성한 에러 객체는 message 프로퍼티와 stack 프로퍼티를 갖는다. 자바스크립트는 Error 생성자 함수를 포함해 7가지의 에러 객체를 생성할 수 있는 Error 생성자 함수를 제공한다. Error, SyntaxError, ReferenceError, TypeError, RangeError, URIError, EvalError throw 문 에러를 발..
프로미스 비동기 처리를 할때 콜백 패턴의 단점 1. 콜백 헬 비동기 함수는 비동기 처리 결과를 외부에 반환할 수 없고, 상위 스코프의 변수에 할당할 수도 없다. 따라서 비동기 함수의 처리 결과에 대한 후속 처리는 비동기 함수 내부에서 수행해야 한다. 이때 비동기 함수를 범용적으로 사용하기 위해 비동기 함수에 비동기 처리 결과에 대한 후속 처리를 수행하는 콜백 함수를 전달하는 것이 일반적이다. 필요에 따라 비동기 처리가 성공하면 호출된 콜백 함수와 비동기 처리가 실패하면 호출될 콜백 함수를 전달할 수 있다. 이렇게 또다시 비동기 함수를 호출해야 한다면 콜백 함수 호출이 중첩되어 복잡도가 높아지는데 이를 콜백 헬이라 한다. get('/step1', a => { get(`/step2/${a}`, b => { ..

비동기 프로그래밍 함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 실행된다. 이때 생성된 함수 실행 컨텍스트는 실행 컨텍스트 스택(콜 스택)에 푸시되고 함수 코드가 실행된다. 함수 코드의 실행이 종료하면 함수 실행 컨텍스트는 실행 컨텍스트 스택에서 팝되어 제거된다. 자바스크립트 엔진은 단 하나의 실행 컨텍스트 스택을 갖는 싱글 스레드 방식으로 동작하기 때문에 처리에 시간이 걸리는 테스크를 실행하는 경우 블로킹이 발생한다. 그런데 setTimeout은 블로킹이 발생하지 않는다. 이렇게 다음 태스크를 바로 실행하는 방식을 비동기 처리라고 한다. setTimeout, setInterval, HTTP 요청, 이벤트 핸들러는 비동기 처리 방식으로 동작한다. 콜 스택 : 소스코드 평가 과정에서 생성된 실..
이벤트 브라우저는 처리해야 할 특정 사건이 발생하면 이를 감지하여 이벤트를 발생시킨다. 이벤트 핸들러 : 이벤트가 발생했을 때 호출될 함수 이벤트 핸들러 등록 : 이벤트가 발생했을 때 브라우저에게 이벤트 핸들러의 호출을 위임하는 것 이벤트 드리븐 프로그래밍 : 프로그램의 흐름을 이벤트 중심으로 제어하는 프로그래밍 방식 이벤트 타입 : 이벤트의 종류를 나타내는 문자열 마우스 이벤트 click, dbclick, mousedown(눌렀을때), mouseup(땟을때), mousemove, mouseenter(마우스 커서를 HTML 요소 안으로 이동했을때(버블링 x)) mouseover(마우스 커서를 HTML 요소 안으로 이동했을때(버블링 o) mouseleave(마우스 커서를 HTML 요소 밖으로 이동했을 때(..