본문 바로가기

All146

2020 하반기 네이버 개발자 면접 1차 후기 좋았다.......... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㅠㅠ 정말 하얗게 불태웠다 당연하게 보안 때문에 문제는 말할 수 없지만, 정말 좋았다. 그리고 뭔가 어려웠다. 분명 아는 건데, 사실 내가 몰랐었구나. 하고 깨닫는 부분이 꽤 많았다. (사실 모르는 것도 꽤 있었음ㅋㅋㅋㅋㅋ) 그래서 좋았다. ㅎㅎ 코로나로 인해 온라인으로 진행되다보니 색다른 점도 많았고 특히 면접 키트! 는 정말 좋았다. 온라인이라 그나마 정신줄 놓으려는 걸 잡았지, 오프라인이었으면 덜덜 떨다가 말 한 마디도 못했을 것 같다... 아무튼 쿠키 100개는 알차게 쓰겠습니다(?) 곧, 하반기 후기를 쓰게 되겠지만 언제쯤 확실히 작성하게 될지는? 모르겠다 ㅎㅎ 그냥 기술 면접이라는 것 자체가, 나보다 개발을 훨씬 오래하신 분들이 깊이 있는 질문을 .. 2020. 10. 30.
손코딩 면접 준비 재귀를 이용한 피보나치 메모이제이션을 이용한 피보나치 재귀를 이용한 팩토리얼 문제 10회 1~10까지 랜덤한 숫자를 출력하여 중복된 숫자가 있을 경우 true, false를 반환 1000보다 작은 숫자 중 3과 5의 배수의 총합을 구하는 프로그램 주어진 정수배열에서 0을 가장 왼쪽으로 배치하는 함수 (추가 메모리공간 X, in-place) 배열을 오름차순으로 정렬해서 리턴하는 함수 임의의 string이 주어질 때 reverse 큐로 스택 구현하기 스택으로 큐 구현하기 최대 공약수와 최소 공배수를 구하는 알고리즘 n개의 배열에서 k(k 2020. 10. 28.
20.10.20 면접 스터디 데이터베이스에서 인덱스란? 인덱스를 사용하는 이유? 그렇다면 인덱스를 무조건 사용하는 것이 좋은가요? 아니라면 왜 인가요? 인덱스로 지정하면 좋은 Column은 어떤 것인가요? 인덱스를 사용하는 알고리즘에는 무엇이 있나요? 데이터베이스의 칼럼을 색인화하는 것을 인덱스라고 한다. 인덱스를 사용하게 되면 테이블을 풀스캔하지 않고도 빠르게 조회할 수 있게되는 것이 장점이다. 그러나 DML (INSERT, DELETE, UPDATE)이 일어나게 되면 오히려 성능이 떨어질 수 있다. 그 예로, 10만 개 이상의 레코드가 존재할 때 10개의 레코드만 남기고 DELETE 연산을 하게 되면 실제 데이터는 10개인 반면에 인덱스는 여전히 남아있어서 실제 데이터보다 많은 용량을 차지하고 있을 수도 있게된다. 따라서 인덱스.. 2020. 10. 26.
싱글톤 패턴 (Singleton Pattern) 이전에 게임 개발을 하면서, 싱글톤 패턴을 사용하여 개발한 적이 있다. 기본 Base Class를 모든 객체들이 갖고있고, 그 객체로 전체 게임을 컨트롤 할 수 있게끔 만들었는데 (Game Controller로 사용함) 막연하게 하나의 객체를 모든 객체들이 갖고있다. 라는 점만 무의식 중에 알고있어서, 명확한 정의를 알지 못해서 면접 준비를 하면서 정리된 말로 답할 수 없던 개념중에 하나이다. 아무튼 그렇다보니 한 번쯤 짚고 넘어갈 필요가 있어보여서 정리해본다. 싱글톤 패턴! 싱글톤 패턴이란? 단 하나의 객체를 생성하고, 생성된 객체를 어디서든 참조할 수 있도록 하는 패턴. 여기서 주의할 점은 클래스를 static(전역 변수)으로 선언하는 것이 아닌, 동적으로 생성하고 heap 영역에서 GC로 관리하도록.. 2020. 10. 26.
얕은 복사와 깊은 복사 오늘은 얕은 복사와 깊은 복사에 대해 알아보려한다. C++과 Java를 사용해왔기 때문에, 즉 객체지향 언어들을 사용해왔기 때문에 항상 주의해야하던 부분이기도 하다. 각각의 언어의 얕은 복사와 깊은 복사, 그리고 그 의미에 대해 알아보자. 얕은 복사(Shallow Copy)란? 간단히 말해서 동일한 클래스의 객체를 만들어서, 기존 객체가 가리키고 있는 지점을 동시에 가르키도록 만드는 것이다. (얕은 복사된 객체와, 원본 객체는 동일한 메모리 공간을 참조하고 있는 것이다) 일반적으로 객체를 복사할 때, 동일한 클래스의 새 인스턴스를 만들고, 모든 필드(변수/함수)들을 새 인스턴스에 복사하고 반환하게 된다. 이것은 얕은 복사에 해당한다. 자바에서는 Clone 함수를 사용하게 되면 얕은 복사가 일어난다. 얕은.. 2020. 10. 19.
20.10.16 면접 스터디 정규화와 비정규화 정규화의 의미와 하는 이유에 대해 설명하시오. 정규화의 장점과 단점 비정규화의 의미와 하는 이유에 대해 설명하시오. 비정규화의 장점과 단점 정규화는 관계형 데이터베이스에서 중복을 최소화하기 위해 데이터를 구조화하는 작업이다. 제1정규형, 제2정규형, 제3정규형, BC정규형, 제4정규형, 제5정규형이 존재한다. 정규화는 데이터베이스를 사용하다보면 갱신 이상, 삽입 이상, 삭제 이상과 같은 것들이 발생할 수 있는데, 이를 방지하여 데이터 무결성을 보장하기 위해 정규화를 하게 된다. 제1정규형 : 도메인이 원자값 제2정규형 : 부분적 함수 종속 제거 제3정규형 : 이행적 함수 종속 제거 BC정규형 : 결정자이면서 후보키가 아닌 것 제거 제4정규형 : 다치 종속 제거 제5정규형 : 조인 종속성.. 2020. 10. 16.
20.10.12 면접 스터디 1. TCP & UDP TCP와 UDP의 차이점은 무엇인가요? TCP와 UDP 각각의 사용하는 서비스는 무엇인가요? TCP와 UDP는 실제 데이터 단위를 받기 위해 IP를 사용하는 프로토콜이다. TCP의 경우에는 연결형 서비스이고, 높은 신뢰성 갖고있다. UDP보다 속도가 느립니다. 그러다보니 연속성보다 신뢰성있는 전송이 중요할 때 사용한다. http, email 등에 사용된다. UDP는 여러 컴퓨터를 거치지 않고 데이터를 주고 받을 컴퓨터끼리 직접 연결할 때 사용한다. 따라서 UDP는 목적지에 도달하지 않을 수도 있는 특성이 있어서 비신뢰적이고 안정적이지 않다. 그러나 TCP보다 속도가 매우 빠르고 편해서 데이터 유실이 일어나도 상관이 없는 스트리밍이나 화면 전송에 사용된다. 2. 로드밸런싱 서버에 많.. 2020. 10. 12.
최단 경로 문제 최단 경로 문제란? 그래프에서 최단 경로 문제는 두 노드를 잇는 가장 짧은 경로를 찾는 문제이다. 일반적으로 가중치가 있는 그래프에서는 간선의 가중치 합이 최소가 되도록 하는 문제이다. 단일-출발(single-source) 최단 경로 단일 꼭짓점 v에서 출발하여 그래프 내의 다른 꼭짓점들에 도착하는 가장 짧은 경로를 찾는 문제 단일-도착(single-destination) 최단 경로 문제 모든 꼭짓점들로부터 출발하여 그래프 내의 단일 꼭짓점 v로 도착하는 가장 짧은 경로를 찾는 문제 단일 쌍(single-pair) 최단 경로 문제 주어진 꼭짓점 u와 v에 대해 u에서 v까지의 최단 경로를 찾는 문제 전체-쌍(all-pair) 최단 경로 문제 그래프 내의 모든 꼭짓점 쌍들 사이의 최단 경로를 찾는 문제이다.. 2020. 10. 12.
20.10.09 면접 스터디 1. 정렬 알고리즘 정렬 알고리즘의 종류에는 무엇이 있나요? 안정정렬과 불안정 정렬의 차이점은 무엇인가요? 퀵 정렬과 합병정렬의 차이점은 무엇인가요? 데이터가 아주 많이 존재할 때 어떤 정렬 알고리즘을 선택하는 것이 좋은가요? 데이터가 100개 이하일 때에는 어떤 정렬 알고리즘을 선택하는 것이 좋은가요? C++내의 STL의 sort함수는 어떤 방식으로 구현되어 있나요? 거품정렬 n개의 원소를 가진 배열을 정렬할 때, 인접한 두 개의 데이터를 비교해가면서 정렬을 진행하는 방식이다. 시간복잡도는 n^2, 공간복잡도는 O(1) 평균, 최선, 최악의 시간복잡도가 동일하다. 장점으로는 구현이 간단하고 소스코드가 직관적이다. 제자리 정렬이므로 다른 메모리 공간을 차지하지 않으며 안정 정렬이다. 단점으로는 속도가 느.. 2020. 10. 9.
20.10.06 면접 스터디 1. http와 https http는 무엇인가? http와 https의 차이는 무엇인가? 둘의 장점과 단점? SSL은 무엇인가? http는 hypertext transfer protocol로 www상에서 정보를 주고 받는 프로토콜이다. 웹 브라우저와 서버가 자원을 주고 받을 때 쓰는 통신 규악이라고 할 수 있다. http는 텍스트를 교환한다. html과 같은 코드도 결국 텍스트이기 때문에 누군가 네트워크에서 이를 가로챈다면 내용이 노출될 가능성이 있다. 이를 해결하기 위해 만들어진 것이 https이다. http에 secure socket을 붙여 만들어진 것이 https다. 따라서 둘의 가장 큰 차이는 보안 부분에 차이가 있다. http에 암호화와 인증, 완전성 보호를 더한 것이 https이다. http에.. 2020. 10. 9.