반응형

분류 전체보기 134

[엔테크서비스] 기술 면접 후기

20년도 하반기 엔테크서비스 기술 면접 예상했던 질문들도 나온 반면에, 예상 못한 기술 질문들이 나와 시간이 지날수록 자신감이 떨어졌다..ㅠㅠ 1분 자기소개없이 자리에 앉자마자 자기소개서 기반의 질문을 받았다. 기업에서 주로 쓰는 언어가 Java라는 점과 Spring boot 프로젝트 경험 + 코딩테스트를 Java로 봐서그런지 Java관련 질문들이 많이 들어왔다. 실제 면접 질문을 알려드릴 수는 없지만 구글에 검색하면 나올법한 면접 예상 질문 수준으로 보면 된다. (예를 들면 JVM이나 객체지향, Http 요청과정) 이후, 전에 봤던 코딩테스트의 코드를 보며 개선점, 왜 저 코드를 썼는지, 다른 방법으로 하고싶은데 어떻게 할건지 등을 대답했다. 마지막은 pretest, 라이브 코딩테스트라고 보면 된다. ..

후기 2020.10.28

컴파일러와 인터프리터의 차이?

대표적인 둘의 차이로 컴파일러는 전체 소스코드를 한 번에 번역하고 인터프리터는 소스코드의 각 행을 연속적으로 번역하여 실행한다. 이 정도는 쉽게 기억할 수 있는 둘의 차이지만 좀 더 깊게 살펴보고 이해하겠다. 컴파일러의 특성 작성된 소스코드를 한번에 번역 한 번 번역을 하면 실행 파일(목적 파일)을 생성해 메모리에 저장 다음 실행 시, 저장된 목적 파일을 실행하기 때문에 실행 시간 단축. 인터프리터의 특성 고레벨 언어를 중간 코드(Intermediate Code)로 변환해 이를 각 행마다 실행. 일반적으로 컴파일러에 비해 실행시간이 느림. 하지만, 각 행을 실행하는 도중 에러 발생 시, 이후 작성된 코드를 살펴보지 않음 보안적인 관점에서 도움이 됨. 자바를 통해 컴파일러와 인터프리터의 차이를 다시 알아보..

신입 개발자 직무면접 정리 - 알고리즘편

정렬 정렬이란 오름차순 또는 내림차순처럼 기준을 잡고 데이터를 재배열하는 것을 말합니다. 염두해야할 사항은 정렬할 데이터의 양, 메모리 상태, row data의 정렬된 정도. 선택 정렬 첫 번째 원소에서 시작해 배열 전체를 훑으면서 가장 작은 키를 가지는 원소를 찾아 첫 번째 원소와 맞바꾼다. 시간 복잡도: O(N^2) 삽입 정렬 한 번에 한 원소씩 이미 정렬된 다른 원소들과 비교하여 새 원소를 제 위치에 삽입하는 방식. 이미 정렬된 리스트의 경우 시간 복잡도는 O(N), 평균적으로 O(N^2) 안정적인 정렬방법으로 소량의 데이터의 경우 최적. 퀵 정렬 데이터 집합 내에서 pivot값을 고릅니다. 이를 기준으로 두 개의 집합으로 나눠서 한 쪽 집합에는 피벗 값보다 작은 것만, 다른 집합은 큰 것만 넣습니..

신입 개발자 직무면접 준비 - DB편

RDMBS란? 관계형 DB를 생성, 수정하고 관리하는 System, 여기서 관계형 DB란 모든 데이터를 2차원의 테이블 형태로 표현할 수 있는 DB를 의미합니다. DB 트랜잭션 DB의 상태를 변화시키는데 있어서 작업의 단위, 한꺼번에 모두 수행되어야하는 일련의 과정들을 의미. (ex. 결제시스템) 원자성, 일관성, 독립성, 지속성이라는 특징과 DB에 저장될 값들과 실제 존재하는 사물과의 정확도를 의미하는 무결성의 특징이 있다. 인덱스란? 데이터 레코드를 빠르게 접근하기 위해 로 구성되는 데이터 구조. 파일의 레코드에 빠르게 액세스할 수 있습니다. 기본키를 위한 인덱스를 기본 인덱스라 하며 이외에도 비트맵, 함수 기반, 트리기반 인덱스 등이 있습니다. SQL의 분류 DDL 스키마, 도메인, 테이블 등을 정..

신입 개발자 직무면접 준비 - 웹과 통신

HTTP란? Hyper Text Transfer Protocol의 약자로 서로 다른 시스템들 사이에서 통신을 주고받게 하는 프로토콜. HTTP 요청의 흐름(웹 브라우저) 브라우저 (Http 요청 메세지) OS (DNS서버를 조회해 IP주소로 변환) 프로토콜 스택 (메세지를 패킷에 저장) LAN어댑터 (메세지를 전기신호로 변환) 라우터 (이 패킷을 엑세스 회선에 전달) 엑세스 회선 (패킷이 통신사용 라우터에 전달) 방화벽 (패킷을 검사) 웹 서버 (요청에 대한 비즈니스 로직을 수행해서 응답 데이터를 회송) HTTP 통신 과정 (클라이언트 - 서버 프로토콜) Client가 HTTP 요청을 서버에 보내면, 서버는 요청을 처리하기위해 비즈니스 로직을 수행합니다. 수행한 결과에 따른 HTTP 응답을 다시 Clie..

신입 개발자 직무면접 정리 - 운영체제편

운영체제 운영체제는 시스템의 자원들을 효율적으로 관리하고, 사용자가 컴퓨터를 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다. 주요 자원으로 프로세스, 기억장치, 주변장치, 파일 관리를 수행합니다. 프로세스와 스레드 프로세스 실행 중인 프로그램. 디스크에서 메모리로 적재되어 CPU자원을 할당받을 수 있는 것을 말한다. 프로세스에 할당되는 메모리 안에는 스택, 힙, 데이터, 코드 영역을 포함한다. simple) 사용자가 어떤 프로그램을 실행시키면 메모리에 올라오게 되고 CPU가 이를 처리하게 된다. 이때 프로그램이 메모리에 올라와있는 상태를 프로세스라고 한다. PCB Process Control Block의 약자로 프로세스 제어 블록. 프로세스에 대한 중요한 정보를 저장하고 있다. 운영체제가 프..

Python을 활용한 KNN 알고리즘

이전 포스팅에서는 머신러닝의 비지도학습 중 대표적인 Clustering을 다뤄봤습니다. 이번에는 머신러닝의 지도학습에 해당하는 KNN 알고리즘에 대해 알아보겠습니다. KNN 알고리즘은 최근접 이웃 알고리즘이라고도 합니다. 새로운 데이터를 입력받았을 때, 이 데이터와 가장 근접한 데이터들의 종류가 무엇인지 확인하고 해당 그룹으로 분류하는 알고리즘입니다. KNN은 아래처럼 3단계에 걸쳐 진행됩니다. 1. 주변 데이터 간의 거리계산하기 2. 가장 근처에 있는 요소 뽑기 3. 분류되는 군집 예측하기 위 그림은 KNN알고리즘의 동작 과정으로 신규 데이터(흰색)가 K값에 따라 분류되는 군집을 Prediction으로 확인할 수 있습니다. 다만, K를 너무 작게 설정하면 과적합이 우려되며 너무 크게 설정하면 데이터 구..

Python을 활용한 K-means Clustering

클러스터링은 비지도 학습기법으로 유사한 유형의 데이터를 그룹화함으로써 숨겨진 구조를 파악합니다. 클러스터링을 활용하면 추천 엔진, 검색 엔진, 시장 세분화 등을 구현할 수 있습니다. K-means Clustering이란? "K"는 주어진 데이터를 그룹화할 수 즉, 클러스터 개수를 말합니다. "Means"는 각 클러스터의 중심과 데이터들의 평균 거리를 의미합니다. 이 때, 클러스터의 중심을 centroids라고 합니다. K-means 알고리즘은 다음과 같은 과정을 수행합니다. 1. 데이터셋에서 K개의 centroids를 임의로 지정. 2. 각 데이터들을 가장 가까운 centroids와 같은 그룹으로 할당. 3. 2번 과정에서 할당된 결과로 centroids를 다시 지정. 4. 2~3번 과정을 반복하면서 c..

신입 개발자 직무면접 정리 - Java편

1. 프레임워크란? SW개발의 뼈대, 기준이 되는 부분을 미리 구현한 것 하나의 프레임워크에는 여러 라이브러리와 여러 프레임워크가 포함되어 있다. 개발 플랫폼의 역할을 수행. 장점 개발 속도가 빠름, 생산성 증가. 품질 보장 단점 프레임워크에 대한 이해 필요 프레임워크 내부를 커스터마이징하기 힘들다. 느리고 무겁다. 비용이 많이 든다. 2. 라이브러리 독립성을 가진 최소단위의 기능이다. (함수 단위) 재사용가능한 최소 단위 기능 또는 기능들의 집함, 기능을 사용하기위해 다른 기능이 필요하지 않아야 한다. 표준 라이브러리(언어가 제공해주는 기본 함수), 사용자 라이브러리(직접 만든 라이브러리)가 있다. 3. 자바란 무엇인가? 객체지향 프로그래밍 언어로 가장 큰 특징은 운영체제없이 독립적이라는 점. 즉, O..

[Spring boot] Controller, Service, Dao, Dto 이해하기

1. Controller 사용자의 요청(request)을 어떻게 처리할지 결정하는 파트입니다. 즉, Controller에 정의 된 기준대로 요청을 처리합니다. @Controller Controller의 역할을 수행한다고 명시해주는 어노테이션, Controller의 내용을 기준 삼아 요청을 처리. @RequestMapping(vale=" ", method= ) Controller에 들어온 요청을 처리하는 기준점입니다. 서버의 URL + value로 매핑되며 method의 RequestMethod.GET or POST 주소창에 URL + value를 입력하면 method가 수행됩니다. 2. Service 사용자의 요청(request)에 대해 어떤 처리를 할지 결정하는 파트입니다. 즉, Controller가 ..

반응형