전체 글
카카오 2023 블라인드 공채 합격 수기
카카오 2023 블라인드 공채 합격 수기
2022.11.309월 초 서류 접수 후 약 3개월간의 길고 긴 채용 과정이 끝났다. 채용 과정을 회고해 보았다. 지원 블라인드 채용이므로, 지원은 간단한 인적사항(이름, 생년월일 등)과 지원분야를 입력하면 접수가 완료된다. 프로그래밍/인프라 크게 2분야로만 나눠서 지원하게 된다. 작년에는 카카오 공동체가 같이 공채를 진행했었는데, 올해는 본사만 별도로 진행했다. 1차 코딩테스트 이번에도 문제 수는 7개로 동일했으나, 채점방식에서 차이가 있었다. 각 문제에 배점이 공개되어 있었고, 기존에 있었던 정확성/효율성 테스트케이스가 분리된 문제들이 사라졌다. 각 문제의 배점은 난이도에 따라 최대 10배 이상까지 차이가 났던걸로 기억한다. 따라서 합격자는 맞춘 문제의 점수 총합으로 결정되었을거라 추측한다. 카카오 코딩테스트답게 기본..
[WWDC22] What's new in Swift (5.7)
[WWDC22] What's new in Swift (5.7)
2022.11.12What's new in Swift https://developer.apple.com/videos/play/wwdc2022/110354/ WWDC 2022의 What's new in Swift세션을 보고 정리한 글입니다. Community update 문서생성도구 doc swift.org 오픈소스화 Workgroup support 기존 swift on server / Diversity in Swift에 더해서 Swift Website / C++ Interoperability 워크그룹이 추가 됨 Cross-platform support 리눅스 지원 강화(Amazon Linux 2, CentOS7) Swift Package Swift의 지향점 높은 수준의 스크립트에서 저수준의 베어메탈영역까지 커버하는게 목표..
[Architecture] Clean Architecture with iOS
[Architecture] Clean Architecture with iOS
2022.11.11Clean Architecture 개요 클린아키텍쳐는 모바일 클라이언트 앱이나 웹 어플리케이션에 주로 사용되는 소프트웨어 아키텍쳐이다. View와 다른 객체간의 관계와 역할에 초점을 맞춘 MVC나 MVVM 패턴과는 달리 애플리케이션의 동작에 필요한 요소들을 더 큰 계층으로 나누어 설명한다. Clean Code의 저자로도 유명한, 클린아키텍쳐를 제창한 로버트 C 마틴은 2012년 처음 자신의 블로그에 이 아키텍쳐를 선보였다.(Clean Coder Blog) 서문에서 당대에 유명한 아키텍쳐들을 언급하며, 이 아키텍쳐들의 세부적인 요소들은 다를 수 있어도 주 목적은 관심사의 분리 라고 이야기 하고 있다. 아키텍쳐들은 이러한 분리를 소프트웨어를 계층으로 나눔으로써 달성하고, Business rules을 담당하는..
[Architecture] MVVM 패턴
[Architecture] MVVM 패턴
2022.10.30MVVM? MVVM 아키텍쳐/패턴은 MVC의 한계점을 극복하기 위해서 제시된 구조이다. iOS UIKit을 사용해 개발하는 관점에서 MVC는 View와 Controller가 깊게 연관되어 있어 코드를 분리하거나, 테스트 하는데에 용이하지 못하는 문제점과 Controller가 너무나 많은 역할을 담당하는 등의 문제가 있었다. MVVM은 ViewModel이라는 새로운 계층을 도입하여 이를 해결하는 방법을 제시한다. MVVM에 대해서 알아보기전에, MVP 패턴에 대해서 먼저 살펴보자. MVP 패턴 MVVM 전에 알아본 것과 같이, Apple MVC 패턴은 View와 Controller 계층이 너무나 밀접하게 연관되어 있어 사실상 같은 계층으로 취급(ViewController)되었던 것과 다르게 Prsenter..
[Network] 2. TCP/IP의 데이터를 전기 신호로 만들어 보낸다.(전송계층)
[Network] 2. TCP/IP의 데이터를 전기 신호로 만들어 보낸다.(전송계층)
2022.10.17개요 이 장에서는 OS에 내장된 네트워크 제어용 소프트웨어인 프로토콜 스택과 네트워크 하드웨어인 LAN 어댑터가 브라우저에서 받은 메시지를 서버에 송출하는 것을 알아본다. 소켓을 작성한다 서버에 접속한다 데이터를 송/수신한다 서버에서 연결을 끊어 소켓을 말소한다. IP와 이더넷의 패킷 송/수신 동작 UDP 프로토콜을 이용한 송/수신 동작 1. 소켓을 작성한다 1. 프로토콜 스택의 내부 구성 TCP/UDP TCP - 브라우저나 메일 등의 일반적인 애플리케이션이 데이터를 송수신 하는 경우 UDP - DNS 서버에 대한 조회 등에서 짧은 제어용 데이터를 송수신 하는 경우 IP 패킷의 송수신동작 제어 ICMP - 패킷을 운반할 때 발생하는 오류 통지, 제어용 메시지 통지 ARP - IP주소에 대응하는 이더넷의 ..
[Network] 1. 웹 브라우저가 메시지를 만든다.(응용 계층)
[Network] 1. 웹 브라우저가 메시지를 만든다.(응용 계층)
2022.10.14본 내용은 "성공과 실패를 결정하는 1%의 네트워크 원리" 책을 읽고 요약/정리 한 내용입니다. 웹 브라우저에서 URL을 입력해서 웹사이트의 정보가 브라우저에 출력될 때까지 일어나는 일을 계층을 따라가며 이해하기 쉽게 설명한 좋은 책이니 추천합니다. 개요 HTTP 리퀘스트 메시지를 작성한다 웹 서버의 IP 주소를 DNS 서버에 조회한다 전 세계의 DNS 서버가 연대한다 프로토콜 스택에 메시지 송신을 의뢰한다 1. HTTP 리퀘스트 메시지를 작성한다 1. URL 입력 https://naver.com URL의 앞부분은 액세스방법, 액세스할때의 프로토콜의 종류를 명시하기 위해 사용된다. 2. 브라우저는 URL을 해독한다 https://웹서버명/디렉토리명/파일명 3. 파일명을 생략한 경우 https://nave..
[운영체제](반효경) 11강. Disk Management And Scheduling
[운영체제](반효경) 11강. Disk Management And Scheduling
2022.10.14Disk의 구조 logical block 디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들 주소를 가진 1차원 배열처럼 취급 정보를 전송하는 최소 단위 Sector Logical block이 물리적인 디스크에 매핑된 위치 Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫번째 섹터이다 → 약속! Disk Scheduling Access time의 구성 Seek time (대부분의 시간을 차지함) 헤드를 해당 실린더로 움직이는데 걸리는 시간 Rotational latency 헤드가 원하는 섹터에 도달하기까지 걸리는 회전 지연시간 Transfer time (작은 시간) 실제 데이터 전송 시간 Disk bandwidth 단위 시간 당 전송 된 바이트 수 Disk Scheduling Seek time을 ..
[운영체제](반효경) 11강. File System
[운영체제](반효경) 11강. File System
2022.10.14File And File System File “A named Collection of related information” 일반적으로 비휘발성의 보조기억장치에 저장 운영체제는 다양한 저장장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해줌 Operation create, read, write, reposition(lseek) - 파일의 포인터를 이동, delete, open, close 등 File attribute(혹은 파일의 metadata라고도 일컬음) 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들 파일 이름, 유형, 저장된 위치, 파일 사이즈 접근 권한(읽기/쓰기/실행), 시간(생성/변경/사용), 소유자 등 File System 운영체제에서 파일을 관리하는 부분 파일 및 파..
[운영체제](반효경) 10강. Virtual Memory
[운영체제](반효경) 10강. Virtual Memory
2022.10.14이 챕터에서는 운영체제가 페이징 기법을 사용하는 것을 가정한다. (대부분의 시스템도 페이징 기법을 채택함) Demand Paging 실제로 필요할 때 page를 메모리에 올리는 것 I/O양의 감소(?) Memory사용량 감소 빠른 응답 시간 더 많은 사용자 수용 Valid / Invalid bit의 사용 Invalid의 의미 사용되지 않는 주소 영역인 경우(아래 그림의 6, 7번) 페이지가 물리적 메모리에 없는 경우(아래 그림의 1, 3, 4) 처음에는 모든 page entry가 invalid로 초기화 address translation 시에 invalid bit이 set되어 있으면 → “Page Fault” Page Falut Invalid page를 접근하면 MMU가 trap을 발생시킴(페이지 폴트 ..
[운영체제](반효경) 9강. Memory Management
[운영체제](반효경) 9강. Memory Management
2022.10.13Logical versus Physical Address Logical address( = virtual address) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address임 Physical address 메모리에 실제 올라가는 위치 💡 주소 바인딩: 주소를 결정하는것 Symbolic Address(변수이름, 함수이름) → Logical Address → Physical Address 그렇다면 논리 주소가 물리적인 주소로 결정되는 시점이 언제인가? 주소 바인딩(Address Binding) - 물리적인 메모리가 결정되는 시점 (* 현대의 OS는 논리주소가 담긴 실행파일이 통으로 메모리에 올라가지 않지만, 이 챕터에서는 그런 상황을 가..