Developer/기술면접 (21) 썸네일형 리스트형 기술면접 질문 - Spring 1. 스프링 프레임워크란? : 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 : 동적인 웹 사이트 개발하기 위한 여러 가지 서비스를 제공함 : 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술. 2. 스프링프레임워크의 특징은? DI (Dependency Injection) 의존성 주입 : 설정 파일이나 어노테이션을 통해 객체간의 의존 관계를 설정하여 개발자가 직접 의존하는 객체를 생성할 필요없음 Spring AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 : 트랜잭션, 로깅, 보안 등 여러 모듈, 여러 계층에서 공통으로 필요로 하는 기능의 경우 해당 기능을 분리해 관리. POJO(Plain Old Java Object) .. 면접질문 정리 ( Java & Database ) 💡 Java의 특징을 설명해주세요. Java는 객체지향 프로그래밍 언어입니다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 (OOP)캡슐화, 상속, 다형성이 잘 적용된 언어입니다. 장점 JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이다. GabageCollector를 통한 자동적인 메모리 관리가 가능하다. 단점 JVM 위에서 동작하기 때문에 실행 속도가 상대적으로 느리다. 다중 상속이나 타입에 엄격하며, 제약이 많다 💡 Java의 컴파일 과정에 대해 설명해주세요. 개발자가 .java 파일을 생성한다. build를 한다. java compiler의 javac의 명령어를 통해 바이트코드(.class)를 생성한다. Class Loader를 통해 JVM 메모리 .. SSR과 CSR의 차이 CSR(Client Side Rendering)과 SSR(Server Side Rendering)은 대척 관계에 있는 방식인만큼 장단점이 서로 엇갈려 있다. 따라서 서로의 장단을 정확하게 알고, 적재적소에 필요한 방식으로 구현하는 것이 중요하다. 이 글의 순서는 다음과 같다. 순서 1. SSR의 정의와 설명 2. CSR의 정의와 설명 3. 각각의 차이 4. 사용 예시 1. SSR의 정의와 설명 Server Side Rendering의 약자. 말 그대로 서버쪽에서 렌더링 준비를 끝마친 상태로 클라이언트에 전달하는 방식이다. 위의 사진은 SSR의 단계를 설명한다. User가 Website 요청을 보냄. Server는 'Ready to Render'. 즉, 즉시 렌더링 가능한 html파일을 만든다. (리소스 .. Webpack이란? 프론트엔드 개발자라면 꼭 알아야 하는 기술 중 하나라고 생각한다. Webpack이란 ? Webpack = 모듈 번들링이라고 한다. html 파일에 들어가는 자바스크립트 파일들을 하나의 자바스크립트 파일로 만들어주는 방식을 모듈 번들링이라고 한다. 쉽게 말하면, 필요한 다수의 자바스크립트 파일을 하나의 자바 스크립트 파일로 만들어 주는 것을 Webpack 이라고 한다. 그럼 Webpack을 왜 사용해야 할까 ? 옛날에는 페이지마다 새로운 html을 요청해서뿌려 주는 방식이였다면, 요새는 SPA 하나의 html 페이지에 여러개의 자바스크립트 파일들이 포함한다. 연관 되어 있는 자바스크립트 종송석 있는 파일들을 하나의 파일로 묶어줘서 관리하기 편하다. 파일을 컴파일 할 때, 여러 모듈들의 파일을 읽어오는데 시.. Promise란? Promise가 뭔가요? “A promise is an object that may produce a single value some time in the future” 프로미스는 자바스크립트 비동기 처리에 사용되는 객체입니다. 여기서 자바스크립트의 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미합니다. 비동기 처리에 대한 이해가 없으시다면 이전 글 ‘자바스크립트 비동기 처리와 콜백 함수’를 읽어보시길 추천드립니다 :) Promise가 왜 필요한가요? 프로미스는 주로 서버에서 받아온 데이터를 화면에 표시할 때 사용합니다. 일반적으로 웹 애플리케이션을 구현할 때 서버에서 데이터를 요청하고 받아오기 위해 아래와 같은 API를 사용합니다... async , await란? async, await란? 기존의 콜백 함수와 프로미스의 단점을 보완한 비동기 처리 방식 async, await의 필요성 // fetchUser()함수의 데이터가 받아질 때까지 기다려야 한다고 가정함 // 기존 콜백 함수 이용한 비동기 방식 function logName(callback){ var user = fetchUser('domain.com/users/1'); callback(user); } logName(function (user){ if (user.id === 1) { console.log(user.name); } }); // 10줄 코드.. // async, await 이용한 비동기 방식 async function logName() { var user = await fetchUser('dom.. 동기(Sync), 비동기(Async)란? 동기(synchronous : 동시에 일어나는)란? 동기는 말 그대로 동시에 일어난다는 의미이며 요청과 결과가 동시에 일어납니다. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 합니다. -요청과 자리에 결과가 동시에 일어남 = A와 B 사이의 작업 처리를 동시에 맞추겠다. 비동기(Asynchronous : 동시에 일어나지 않는)란? 비동기는 동시에 일어나지 않는다를 의미이며 요청과 결과가 동시에 일어나지 않습니다. -요청한 자리에 결과가 주어지지 않음 = A와 B사이의 작업 처리를 동시에 맞추지 않겠다. [ 예시 ] 출처 : https://blog.hanumoka.net/2018/10/06/javascript-20181006-javascript-callback/ 이해 잘 되게 .. HTTP 상태 코드 아래는 HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드의 목록이다. IANA가 현재 공식 HTTP 상태 코드 레지스트리를 관리하고 있다. 모든 HTTP 응답 코드는 5개의 클래스(분류)로 구분된다. 상태 코드의 첫 번째 숫자는 응답의 클래스를 정의한다. 마지막 두 자리는 클래스나 분류 역할을 하지 않는다. 첫자리에 대한 5가지 값들은 다음과 같다: 1xx (정보): 요청을 받았으며 프로세스를 계속한다 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다 목차 11xx (조.. 이전 1 2 3 다음