[CS] 네트워크의 기초
·
CS
네트워크네트워크는 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어임.네트워크란 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미함.여기서 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미함. 처리량과 지연 시간처리량처리량(throughput)은 링크 내에서 성공적으로 전다로딘 데이터의 양을 말하며 보통 얼만큼의 트래픽을 처리했는지를 나타냄.'많은 트래픽을 처리한다' = '많은 처리량을 가진다'단위로는 bps(bits per second)를 사용함. 초당 전송 또는 수신되는 비트 수.처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의..
[CS] 프로그래밍 패러다임
·
CS
프로그래밍 패러다임프로그래밍 패러다임(programming paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론.선언형 프로그래밍선언형 프로그래밍(declarative programming)이란 '무엇을' 풀어내는가에 집중하는 패러다임이며, "프로그램은 함수로 이루어진 것이다." 라는 명제가 담겨 있는 패러다임 함수형 프로그래밍함수형 프로그래밍(functional programming)이란 선언현 패러다임의 일종. 순수 함수출력이 입력에만 의존하는 것을 의미함. 고차 함수함수가 함수를 값처럼 매개변수로 받아 로직을 생성할 수 있는 것. 일급 객체변수나 메서드에 함수들 할당할 수 있음함수 안에 함수를 매개변수로 담을 수 있음함수가 함수를 반환할 수 있음객체지향 프로그래..
[잡담] 2024년 카카오 모빌리티 iOS 주니어 개발자 지원&코딩테스트
·
잡담
서류 지원서류 지원은 무난하게 통과되었다. 자소서는 따로 쓰지 않았고, 이력서만 제출하였다. 아마 서류는 정말 이상한 것 아니면 다 붙여주는게 아닐까 싶다. 1차 코딩테스트1차 코딩테스트는 10월 5일에 진행했다. ChatGPT의 발전 때문일까? 1차 코딩테스트임에도 불구하고 검색 불가, 외부 IDE 사용 불가 조건이 붙었다. 뭐 나와는 상관없는 항목이라 무시했다. 코딩테스트는 codility에서 진행이 되었다. 코딜리티는 한번도 쓰지 않던 플랫폼이라 생소하여 테스트를 하기 전에 몇문제를 간단하게 풀어보았다. 샘플 데이터는 예제와 똑같이 구성되어 쉽게 푸는 듯 싶었지만 제출을 하니 여러가지 반례들이 튀어나와 점수를 깎아먹었다. 진짜 존재하는 반례들을 전부 모아놓은 듯한 채점이었다. 그래서 단순 구현도 반..
[잡담] 생각정리
·
잡담
2023년 4분기에 ICT인턴십을 진행하면서 진로를 결정한 뒤, 인턴십을 했던 회사를 그만두고 막연하게 취업준비를 했다. 이전부터 모바일 애플리케이션에 관심이 많았던 터라 접근이 쉬운 안드로이드만 깔짝대다가 iOS개발을 시작했고, swift 언어에 매력을 느껴 난생 처음으로 맥북도 사고 공부를 시작했다. 주변에선 다들 iOS 취업 시장이 그리 좋은 편은 아니라고 말했다. 실제로도 그렇기도 하고. 하지만 어쩌겠어. 내 주관적인 생각으론 개발이란 자고로 본인 스스로가 재미를 느끼고 시간과 열정을 쏟아부을 수 있어야한다고 생각한다. 그래서 막연히 Swift와 iOS, UIKit, SwiftUI, RxSwift, Combine 등등 iOS 개발에 필요한 지식들을 공부했다. 지금와서야 드는 생각이지만 나도 참 멍..
[CS] 디자인 패턴
·
CS
싱글톤 패턴하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 장점하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어듦단점의존성이 높아짐. TDD(Test Dirven Development)를 할 때 걸림돌이 됨. 의존성 주입 - DI(Dependency Injection)모듈 간의 결합을 조금 더 느슨하게 만들 수 있음.이를 통해 메인모듈(상위모듈)은 하위모듈에 대한 의존성이 떨어지게 됨. -> 디커플링 된다 DI의 장점모듈들을 쉽게 교체할 수 있는 구조가 되어, 테스팅하기 쉽고 마이그레이션하기 수월함.구현할 때 추상화 레이어를 넣고 이를 기반으로 구현체를 넣어 주기 때문에 애플리케이션 의존성 방향이 일관되고, 애플리케이션을 쉽게..