기본 소양

개발 실력

  • 컴퓨터 과학의 기초와 알고리즘, 자료구조 등의 프로그래밍 기초 개념을 충분히 설명할 수 있나요?
  • 프로젝트에서 자신이 담당한 기능의 목적과 중요성을 충분히 설명할 수 있나요?
  • 프로젝트에서 사용한 기술의 작동 원리와 활용법에 대해 충분한 설명이 가능한가요?
  • 어려운 문제를 해결할 수 있는 사고력과 논리력을 충분히 갖추고 계신가요?
  • 어려운 문제를 해결한 과정을 다른 사람이 쉽게 이해할 수 있도록 설명할 수 있나요?

성장 가능성

  • 프로젝트에서 자신이 이룬 성과와 그 과정에 대해 충분히 설명할 수 있나요?
  • 협업 과정에서 자신이 가진 장단점을 충분히 설명할 수 있나요?
  • 프로젝트에서 발생한 문제 상황을 자기주도적으로 해결한 경험이 충분히 있으신가요?
  • 당신이 일하고 싶어하는 분야의 업무 내용과 성격을 충분히 이해하고 있나요?
  • 면접에 충분히 준비했나요? 자기소개와 예상 질문에 대한 답변 대비 등 면접 준비를 충분히 했나요?

업무 태도

  • 좋은 개발자가 되기 위한 계획과 방향성을 충분히 갖추고 있나요?
  • 개발자로서 성장하기 위한 습관을 충분히 갖추고 있나요? 공부 및 기록 습관 등을 체크하고 있나요?
  • 어려운 문제를 해결할 수 있는 충분한 끈기를 가지고 있나요?
  • 새로운 기술을 빠르게 학습할 수 있는 기본기와 습관을 충분히 갖추고 있나요?

기술 분야

Language

  • Stack, Queue 설명. 기타 자료구조 설명
  • 비밀번호 암호 알고리즘에 대해
  • 클래스와 인스턴스의 차이
  • TDD 란, Unit Test, Integration Test
  • OOP 란, 특징 및 주요개념 4가지
  • 함수형 프로그래밍
  • Abstract Class 란
  • Interface 란
  • Overloading, Overriding 차이 및 설명
  • Compile, Interpret 차이 및 설명
  • Buffer 란
  • 디자인 패턴 설명, 싱글톤 패턴

OS

  • Process, Thread 차이 및 설명
  • 32bit cpu에서 자료형 설명 및 int 는 몇 바이트인지, 왜 그런지
  • Process 및 Thread 간 통신 방법
  • 동기화 문제
  • Deadlock 이란, 해결법 또는 알고리즘
  • 경쟁상태(Race Condition)와 동기화(Synchronization)의 필요성, 임계 구역(Critical Section) 설명
  • 기아 상태(Starvation) 란
  • Stack overflow 란
  • Heap overflow 란

Network

  • HTTP 란
  • HTTP의 Verb 설명 및 용도, 멱등성 이란
  • PUT, PATCH 차이
  • 응답코드 설명, 용도, 차이
  • HTTP와 HTTPS의 차이
  • SSL/TLS의 Handshake 방법
  • HTTP 버전별 차이점
  • HTTP Header 설명
  • 웹 소켓(Web Socket) 이란
  • TCP와 UDP 설명 및 차이, 신뢰성을 보장하는 방법
  • 3-Way-Handshake와 4-Way-Handshake
  • Caching 이란
  • URL, URI 이란
  • 프록시(Proxy) 란

HTML, CSS

  • div, span 엘레먼트의 차이
  • flex 박스 레이아웃이란? table, position 등과의 차이
  • 100vh, 100% 차이
  • html에 script 포함할때 async, defer 차이
  • size유닛에서 px, em, rem 차이
  • vw, vh 차이
  • 브라우저의 기본 폰트사이즈 (16px)
  • rm, rem 단위, 8em으로 설정했을 때 크기 변화 설명
  • px의 의미? px을 사용하면 문제점, 사이즈 조절할 때 사용법
  • Semantic MarkUp(시멘틱 마크업) 이란
  • HTML 문서 구조 설명
  • DOM이란, 탐색 방법
  • CSS 선택자 우선순위
  • Flexbox 란

Javascript

  • 동기, 비동기 차이, block, non-block의 차이
  • 자료형 설명
  • undefined, null 차이
  • promise란 then, catch, finally
  • 즉시실행함수(IIFE)란, Immediately, Invoked, Function Expression
  • 클로저 설명, 사용 용도
  • const를 이용해서 코딩하면 좋은점, Thread-Safety
  • var와 let, const의 차이, var hoisting
  • es5와 es6 차이
  • 체이닝의 개념
  • localstorage, sessionstorage
  • 이벤트 버블링, 캡처링 이란?
  • 단방향 바인딩, 양방향 바인딩
  • this 란
  • call, apply, bind 란
  • Callback Function (콜백 함수) 란, 사용 이유, 콜백 지옥을 해결 방법
  • Asynchronous 함수를 Synchronous로 변경 방법
  • AJAX 란
  • map과 forEach, reduce에 대해 설명해주세요.
  • Call Stack과 Heap 이란
  • JWT 란, Refresh token이란
  • 자바스트립트에서 스레드 설명
  • Event Loop, Task Queue 설명
  • Prototype 이란, 체인이란
  • ==, === 차이
  • Arrow Function 이란

Typescript

  • 타입스크립트 전반적인 설명, 차이
  • Generics 설명
  • 접근 제한자 (Public, Private, Protected) 설명과 사용
  • Static 이란

Java

  • Overloading, Overriding
  • interface, abstract 차이
  • static
  • 접근제한자, private, public
  • getter, setter
  • 의존성 역전 원칙
  • 자료구조 중 map, set 차이
  • hashtable, hashmap 차이
  • springboot, spring차이
  • java는 비동기, 동기? block, non-block인지? 비동기로 개발하기 위해서 future 사용법
  • Final 키워드
  • Equals hashcode 사용법
  • Reference type, primitive type
  • 의존관계 주입(Dependency Injection) 란
  • IoC(Inversion of Control) 란 인버전 오브 컨트롤

Database

  • index란? 인덱스를 사용하면 왜 빠르게 검색이 가능한지
  • Clustered index, non-clustered index
  • 바이너리서치?
  • 정렬하는 방식에 대해서 설명할 수 있는지?
  • Inner join, outer join 차이
  • primary key, foreign key, Compound key
  • 트랜젝션이란, 트랜젝션 처리는 왜 해야하는지
  • RDB, no-sql ?
  • 뷰와 테이블의 차이점, 사용 용도

Maintenance

  • 캐시서버 redis, 어떤용도?
  • redis 사용시 주의점? single thread
  • message queue (msmq)
  • 대용량 처리가 들어왔을 때 순차적으로 처리되게 하려면?
  • 로깅은 어떻게?
  • 트래픽이 많은 경우 여러대의 서버를 구성할 경우 어떤 소프트웨어나 장비를 이용하는게 좋을지

Version Control

  • git은 왜 사용할까
  • commit, push, merge, rebase 차이
  • conflict는 왜 나올까? 해결법
  • Git-flow를 사용하는지? 브랜치를 사용해봤던 경험을 알려주세요.

Knowhow, ETC

  • 마이크로서비스 아키텍처? 구현해본 적이 있는지
  • 기존 시스템을 마이크로로 바꾼다면 어떻게 하는게 좋을지
  • 브라우저에 estgames.com을 입력했을 때 어떤 구조로 페이지가 표시될지 설명
  • 부하가 많은 페이지가 있는경우 어떻게 해결할 수 있을지?

Algorithm

  • 1~10000 까지의 숫자가 있을때 빠르게 섞는 방법
  • 운영중인 수많은 서비스가 정상 동작인지 알고리즘
  • Call by valud, call by reference 의 차이점
  • BF, DFS 설명과 차이
  • Dynamic Programming (동적 계획법) 이란
  • Git merge 원리 또는 merge를 구현하는 방법 설명
  • Quick Sort 알고리즘의 시간복잡도 설명

React

  • React 장단점, 왜 사용하는지
  • React 컴포넌트의 생명 주기
  • Flux 패턴, MVVM 패턴과 Flux 패턴의 차이점
  • UseEffect, useLayoutEffect 차이
  • Virtual DOM 이란
  • callback, promise
  • class 대신 className을 사용하는 이유
  • UseMemo, useCallback
  • Next.js 란
  • React Hooks
  • useMemo와 useCallback
  • 메모이제이션이란
  • React.memo와 useMemo의 차이
  • Key props를 사용하는 이유
  • Props Drilling과 해결 방법
  • React.FC 란
  • Pure Component 란
  • 클래스형 컴포넌트와 함수형 컴포넌트의 차이
  • setState의 동작원리
  • React Query란
  • useEffect와 useLayoutEffect의 차이
  • Redux 설명 장단점, useReducer 훅이란
  • Context API 설명 및 Redux와 비교
  • Recoil 이란
  • Next.js의 getStaticProps() 이란

HTML Markup

  • { box-sizing: border-box; }는 무엇인가, 장단점
  • inline 과 inline-block 의 차이
  • relative, fixed, absolute, static 요소의 차이
  • 로컬이나 프로덕션 환경에서 사용했던 CSS 프레임워크는 무엇인가, 개선점은 없는가
  • 새로운 CSS Flexbox나 Grid 스펙을 사용해본 적이 있는지, 설명
  • 반응형 디자인은 적응형 디자인과 어떻게 다른가
  • 레티나 그래픽으로 작업 해본 적이 있나요? 그렇다면, 언제, 어떤 기술을 사용하였나
  • Srcset 이란
  • SVG 란
  • absolute 포지셔닝 대신 translate()를 사용하는 이유, 그 반대 사용의 경우와 이유
  • IE11 대응에 대한 노하우

Back-end

  • HTTP 응답코드 200, 404 등 설명
  • Apache와 Tomcat의 차이?
  • cookie, session 차이
  • JWT, 인증방식에서 Cookie, session, jwt의 차이, refresh token
  • 인증, 인가 방식 설명
  • 인증, 비밀번호 관리, 어떻게 처리하는것이 좋은지
  • 동시에 실행되면 안되는 코드 관리 방법
  • preflight 요청이란
  • OAuth 란
  • 토큰 기반 인증의 방식 설명, Basic, Bearer

Font-end

  • 어떤 웹 사이트에 접근했을 때 일어나는 일을 네트워크적 관점에서 순서 설명
  • 브라우저의 렌더링 과정을 설명
  • 브라우저는 어떻게 동작하나요?
  • Webpack, Babel, Polyfill
  • CSR(Client-Side Rendering)과 SSR(Server-Side Rendering)의 차이
  • 검색 엔진 최적화(Search Engine Optimization, SEO)란
  • CORS(Cross-Origin Resource Sharing) 설명
  • 쿠키(Cookie)와 세션(Session)이란
  • XSS(Cross Site Scripting) 공격
  • 각 브라우저 저장소(Local Storage, Session Storage, Cookies)에 대해
  • 토큰 기반 인증 방식
  • 크로스 브라우징
  • 웹 소켓(Web Socket) 이란
  • 웹사이트 성능 최적화
  • 웹사이트의 성능 측정 방법
  • 번들의 사이즈를 줄이는 방법
  • 코드 스플릿팅(Code Splitting) 이란
  • HTTP (HyperText Transfer Protocol)
  • 웹 표준이란
  • Reflow, Repaint 이란
  • Storybook 이란
  • Buffrring 이란, 발생조건
  • V8 엔진 설명, Inline caching, Turbo Fan
  • MVC와 MVVM 패턴의 차이
  • 웹서버, WAS웹 서버와 웹 어플리케이션 서버(WAS)의 차이
  • NestJS 란, 특징
  • Promise, Callback 차이
  • GraphQL, REST API 차이
  • UUID 란