먼저 제 스펙은 입니다. 프로그래밍 직무에 합격했고, 세부 직무는 선택할 수 없었지만 자소서나 포트폴리오에 백엔드 위주로 작성했습니다. 면접까지 가게 된 건 처음이라 아쉬움이 많이 남지만 기록용으로, 그리고 더 부족한 점을 개선하기 위해 후기를 작성해봅니다! 1. 전형 절차 전형 절차는 서류 -> 코테 -> 직무면접 -> SKCT 였습니다. 서류만 내면 코테를 볼 수 있고, 서류 붙으면 면접결과에 상관없이 SKCT를 볼 수 있었기 때문에 사실상 서류/코테 -> 직무면접/SKCT 이렇게 두 차례로 채용이 되는 거네요. 대기업 계열사고 채용연계형인데도 생각보다 절차가 적더라구요. 오히려 좋아 ^^ 2..
- 안드로이드 리눅스 운영체제 안에서 리눅스와 상호작용하면서 동작 - 안드로이드 vs iOS 개발 안드로이드는 오픈소스를 기반으로 하기 때문에 개발에 대한 제약사항이 적고, ios는 아이폰에만 한정적으로 호환되기 때문에 제한적인 개발 환경을 가짐. - 코틀린 vs 자바 코틀린은 Nullable과 non-nullable이 존재해서 NPE 예외를 방지할 수 있고, 비교적 간결하다. 자바와 완전히 호환된다. 객체지향과 함수형 프로그래밍의 특성 모두 가지고 있음. - 프래그먼트 액티비티 안에 존재하고, 모듈화하거나 재사용할 수 있는 화면 구성요소 - 4대 컴포넌트 BroadcastReceiver 어떤 행위가 발생했을 때 수행되는 방송(브로드캐스트)을 수신하는 객체 (이때 인텐트 필터로 수신자가 구독할 브로드캐스..
- 데이터베이스 파일 시스템의 문제를 해결하기 위해 고안됨. 데이터의 독립성, 무결성, 보안성, 일관성, 중복 최소화 성능은 디스크의 I/O에 좌우. - 인덱스 테이블의 검색 속도를 향상시키기 위해 별도의 메모리 공간에 칼럼의 값과 주소를 키-값 형태로 정렬되어 저장. 탐색은 빠르지만 추가, 삭제, 수정은 느림 B Tree Index: 일반적으로 사용. 칼럼의 값을 변형하지 않고 인덱싱 B-Tree: 균형 트리. 각 노드마다 key와 data를 가짐. B+Tree: 리프 노드에만 key와 data를 가지고 리프 노드는 linkedlist로 연결 Hash Index: 칼럼의 값을 해시 함수로 계산해서 인덱싱. 동등 연산에만 적합 * 카디널리티와 선택도가 높을 수록 인덱스 설정에 적합. 카디널리티: 중복되지..
- 프레임워크 vs 라이브러리 프레임워크: 개발할 때 필수적인 코드나 알고리즘 등의 큰 틀을 제공하는 것. 프레임워크가 흐름을 제어함. 라이브러리: 특정 기능을 모아둔 코드들의 집합. 사용자가 흐름을 제어함. - call by value vs call by reference 값에 의한 호출: 인자로 받은 값을 복사하여 처리 참조에 의한 호출: 인자로 받은 값의 주소를 참조하여 값에 직접 저장. * 자바는 값에 의한 호출이다. 배열, 클래스와 같은 참조형 타입은 그 자체로 주소를 갖고 있기 때문에 값을 복사하여 인자로 전달해도, 값이 변경되는 것. - TDD 매우 짧은 개발 사이클의 반복에 의존하는 소프트웨어 개발 프로세스. 테스트가 코드 작성을 주도하는 개발방식. 새로운 기능에 대한 테스트케이스 작성 -..
- HTTP 데이터를 주고 받기 위한 웹 프로토콜으로, 서버/클라이언트 모델을 따른다. 무상태성 - 서버는 이전의 클라이언트 상태 정보를 저장하지 않음 비연결성 - 서버가 클라이언트의 요청에 대한 응답을 하면 연결을 끊는 것 --> 쿠키, 세션 필요 - 세션/쿠키 차이 쿠키: 클라이언트의 상태 정보를 키-값 형태로 클라이언트 로컬 브라우저에 저장 세션: 클라이언트에게 고유한 ID를 부여하여 서버에 저장 세션은 서버의 처리가 필요하기 때문에 보안측면에서 더 우수하지만, 요청 속도는 쿠기가 더 빠름 - 세션/쿠키 동작 방식 클라이언트가 서버에 접속시 서버에서 세션 ID를 발급 서버는 세션 ID를 기반으로 쿠키를 포함시켜 클라이언트에게 응답 클라이언트는 서버에 요청할 때 이 쿠키를 같이 전달 서버는 쿠키의 세..
- thread vs process 프로세스: 일반적으로 실행 중인 프로그램을 뜻하며 메모리에 적재되어 cpu의 할당을 받을 수 있는 것. 운영체제로부터 메모리 주소 공간, 메모리 등을 할당 받으며 프로세스는 독립적이기 때문에 이를 다른 프로세스와 공유하지 않음. 스레드: 프로세스 내의 실행 단위. 프로세스의 주소 공간이나 자원을 다른 스레드와 공유할 수 있다. - 멀티 스레드 하나의 프로세스에 여러개의 스레드가 존재하는 것. 각각의 스레드는 독립적인 작업 수행을 위해 각자의 스택과 PC 레지스터를 갖는다. - 멀티 프로세스 vs 멀티 스레드 멀티 프로세스: 하나의 프로세스가 죽더라도 다른 프로세스에 영향을 미치지 않는다. 메모리 공간, cpu 시간 차지. 멀티 스레드: 오류로 하나의 스레드가 종료되면 ..
- 자바 객체지향 프로그래밍 언어. JVM 위에서 동작하기 때문에 운영체제에 독립적이지만 실행 속도가 상대적으로 느리다. 가비지 콜렉션을 통해 메모리 관리가 간편하다. - 객체지향이란 (캡상추다) 현실세계의 사물들을 객체라고 보고, 객체를 중심으로 프로그래밍하는 것. 코드의 재사용성이 높고 유지보수 용이 캡슐화 정보은닉. 접근제어자에 따라 접근할수있는 대상을 결정 상속 상위 클래스의 변수와 메서드를 하위 클래스에서 재사용하고, 더 확장할 수 있는것. 추상화 클래스를 통해 객체의 공통적인 속성과 기능을 추출하여 정의하는 것. 다형성 오버라이딩과 오버로딩을 통해 하나의 객체가 여러 타입을 가지는 것. - 객체지향 설계 원칙 (SOLID) SRP(Single Responsibility Principle) : ..
배열 논리적 저장순서와 물리적 저장 순서가 같음. 인덱스로 원소에 접근할 수 있으므로 O(1)의 시간으로 접근가능. 삽입, 삭제의 경우 원소를 한칸씩 이동시켜야 하므로 O(n). linkedlist 자기 자신다음에 어떤 원소인지만 저장하기 때문에 삭제와 삽입을 O(1)에 해결. 탐색하기 위해 모든 원소를 다 돌아야 하기 때문에 O(n) 스택 vs 큐 스택은 LIFO의 특성을 갖는 선형 자료구조. 먼저 들어간 원소가 나중에 나온다. 큐는 FIFO의 특성을 갖는 선형 자료구조. 먼저 들어간 원소가 먼저 나온다. 트리 계층적 관계를 표현하는 비선형 자료구조. 노드와 간선으로 구성. 이진 트리 각 노드가 2개 이하의 자식노드만 가지는 트리. 이진탐색 트리 노드에 저장된 키가 유일한 값을 가짐. 왼쪽 자식노드의 ..