IT78 최단 경로 문제 최단 경로 문제란? 그래프에서 최단 경로 문제는 두 노드를 잇는 가장 짧은 경로를 찾는 문제이다. 일반적으로 가중치가 있는 그래프에서는 간선의 가중치 합이 최소가 되도록 하는 문제이다. 단일-출발(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. 객체지향 프로그래밍이란? 이미지에서 알 수 있듯이, 절차지향 언어는 출금, 입금, 송금이라는 '기능(function)'에 중점을 둔다면 객체지향 언어는 손님, 돈, 계좌라는 '객체(Object)'에 중점을 두고 있다. 객체지향 프로그래밍(Object-Oriented Programming) 객체지향 프로그래밍이란 컴퓨터 프로그래밍 패러다임 중 하나로 프로그래밍 로직을 객체로 만들어 나가는 것을 의미한다. 여기에서 객체란 하나의 역할을 수행하는 메소드와 변수의 묶음을 의미한다. 대표적 언어로는 C++, C#, Java 등이 있다. 절차지향 프로그래밍 (Procedural-Oriented Programming) 절차지향 프로그래밍이란 컴퓨터 프로그래밍 패러다임 중 하나로 순차적 처리를 중요시 여기는 프로그래밍 기법이다. 일반적으로 컴.. 2020. 10. 5. 20.10.02 면접 스터디 1. REST API란? RESTful 하다는 것의 의미 REST의 구성요소 REST API의 장점 기존 방식과 REST 방식의 차이점 SOAP와 REST 방식의 차이 REST는 웹에 존재하는 모든 자원에 고유한 주소 URI를 정의하고 자원에 Create Read Update Delete를 실행하는 방식을 정해놓은 아키텍처 스타일이다. 이러한 방식로 API를 만든 것을 REST API라고 한다. REST 아키텍처의 6가지 제한 조건 클라이언트/서버 구조, 무상태(클라이언트의 내용이 서버에 저장되면 안 된다), 캐시 처리 가능, 계층화, 인터페이스 일관성, Code on demand이 있다. 또한 REST의 원리를 따르는 시스템은 RESTful 하다고 한다. REST의 구성 요소는 자원, 행위, 표현이다... 2020. 10. 4. 20.09.28 면접 스터디 1. 프로세스와 스레드 프로세스와 스레드의 정의 및 차이점 멀티프로세스의 장점과 단점 멀티스레드의 장점과 단점 프로세스는 실행중인 프로그램을 의미한다. 프로세스는 코드, 데이터, 힙, 스택 별로 각각의 주소공간에 독립적으로 할당받는다. 반면 스레드는 스택만 따로 할당 받고 나머지는 서로 공유한다. 프로세스는 자신만의 고유 공간과 자원을 할당받아 사용하는 데에 비해 스레드는 다른 스레드와 공간, 자원을 공유하면서 사용한다. 스레드는 프로세스의 실행단위를 의미한다. 프로세스마다 메인 스레드를 포함하여 최소 1개의 스레드를 소유한다. 멀티프로세스의 장점은 안전성이지만, 각각의 메모리 공간을 갖고 있어 작업량이 많을 수록 오버헤드가 발생한다. 반면 멀티 스레드는 독립적인 프로세스에 비해 공유 메모리를 사용하여 .. 2020. 9. 28. 안드로이드 액티비티 생명주기 안드로이드와 멀어진 지 너무 오래된 것 같아 오랜만에 정리해보는 시간을 가지려 이 주제를 선택하게 되었다.. 먼저 안드로이드가 무엇인지, 그 구성요소인 컴포넌트들과 그 중 액티비티 생명 주기에 대해 다뤄보려 한다. 안드로이드란? 안드로이드란 간단히 말해 구글에서 만든 스마트폰용 운영체제이다. 운영체제와 미들웨어, 사용자 인터페이스, 어플리케이션, MMS 등을 포함하고 있는 소프트웨어 스택이자, 모바일 운영체제라고 할 수 있다. 안드로이드는 리눅스(Linux)를 기반으로 제작되었고 Java와 Kotlin으로 응용 프로그램을 작성할 수 있다. 안드로이드 4대 컴포넌트 액티비티, 서비스, 콘텐츠 제공자, 방송 수신자를 의미한다. 이것은 어플리케이션을 만들 때 주요 구성요소이며, 보통 개발 시 이들을 상속받아 .. 2020. 9. 21. 암호화 기법 이전에 면접 질문리스트에 올렸던 질문들 중, 암호화에 대한 개인적 답변 정리를 간략히 가져왔다. 암호화는 어떤 식으로? 단방향 암호화로 bcrypt(비크립트)를 사용했습니다. 이때 hash와 salt 방식을 동시에 사용했습니다. 왜 두 가지를 사용했는지? 해시만 사용했을 때는 인식가능성과 속도면에서 문제가 발생합니다. 해시의 다이제스트를 해킹당하게 되면 모든 비밀번호가 노출될 가능성이 있기 때문에 인식가능성에 문제가 있고, 해시의 빠른 속도 때문에 공격자들은 매우 빠른 속도로 임의의 다이제스트와 해킹할 다이제스트를 비교할 수 있기 때문입니다. 일단 실제 면접에서는 암호화 관련 질문은 받지 못했으나, 개인적으로 정리해보면서 유익했었기 때문에 이번 주제는 암호화에 대해 간단히 말해보고자 한다. 단방향 암호화.. 2020. 9. 15. 정렬 알고리즘 거품정렬 (Bubble Sort) 서로 인접한 두 원소의 대소를 비교하고 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘 시간복잡도 평균 최선 최악 O(n²) O(n²) O(n²) 공간복잡도 swap을 통해 정렬이 수행되므로 O(n) 장점 : 구현이 간단하고 소스코드가 직관적이다. 다른 메모리 공간을 필요로 하지 않는다. (제자리 정렬) 안정 정렬이다. 단점 : 시간복잡도가 O(n²)으로 비효율적이다. 선택정렬 (Selection Sort) 현재 순서에 해당하는 위치에 넣을 원소를 선택하는 알고리즘 배열에서 해당 자리를 선택하고 그 자리에 오는 값을 찾는다고 생각하면 된다. 최악의 경우는 오름차순 정렬 시, 내림차순으로 정렬되어있는 경우이다. 시간복잡도 평균 최선 최악 O(n²) O(n²) O(n².. 2020. 8. 31. 개발 직군 기술 면접 질문 리스트 자기소개 자기가 했던 프로젝트 위주로 자기소개해주세요. 지원동기는 무엇인가요? 자신의 장점과 단점 좋아하는 과목 / 싫어하는 과목 이유? 팔로우형 vs 리더형? [회사 이름]에 대해 아는 것? 인프라가 무엇이라 생각하나요? 안정적인 인프라를 만들기 위해서는 어떻게 해야할까요? 내가 [회사 이름]에 도움이 될 수 있는 이유? 내가 훌륭한 프로그래머인 이유 내가 했던 팀플레이 나의 스킬 역량 당신의 꿈은 무엇인가요? 정말 솔직한 자신의 꿈을 말해주세요. 이전 프로젝트에서 어떤 갈등이 있었고, 그 문제를 어떻게 해결했나요? 구체적인 사례를 들어 설명해 주세요. 기획으로 내려온 내용이 마음에 들지 않는다면, 개발자 입장에서 당신은 이를 어떻게 처리할 것인가요? 지금까지 당신은 성공적인 사례만을 들어 본인을 소개.. 2020. 8. 22. 이전 1 ··· 4 5 6 7 8 다음