[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

💻 CS 193

[알고리즘 연습] 신규 아이디 추천 (프로그래머스 lv1, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/72410?language=swift 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 풀이 import Foundation func solution(_ new_id:String) -> String { var myID: String = new_id myID = myID.lowercased() var newID: String = "" for i in myID { if i.isLetter || i.isNumber..

[운영체제] IPC

IPC (Inter Process Communication) Inter Process Communication의 약자로 운영체제에서 실행중인 프로세스 간에 정보를 주고받는 통신방법을 총칭하는 단어이다. 프로세스는 독립적인 실행객체이기 때문에 자신에게 할당된 메모리 내의 정보에만 접근 권한을 가진다. 하지만 커널 공간은 서로 공유하며 사용하게 된다. 따라서 커널에서는 프로세스 간 통신을 위해 다양한 방법을 제공하게되고 프로세스들은 이를 통해 서로의 정보를 공유하게 된다. IPC에도 다양한 방법들이 존재하는데 상황에 맞는 적절한 IPC 방법을 선택해야 한다. 잘못된 IPC 방법의 선택은 코딩과정을 어렵게하거나 프로그램 작동에 비효율을 초래할 수 있기 때문이다. 다양한 IPC 방법과 그 특징을 살펴보자. pi..

[DB] 트랜잭션과 ACID

트랜잭션이란? 트랜잭션은 데이터베이스에서 쪼갤 수 없는 업무처리의 최소 단위를 말합니다. 하나의 트랜잭션은 데이터베이스에 읽거나 쓰는 여러 개의 쿼리를 요구하는데, 이때 하나의 쿼리가 실패하면 데이터베이스 시스템은 전체 트랜잭션 혹은 실패한 쿼리를 롤백합니다. 트랜잭션의 연산 Commit 하나의 트랜잭션 작업이 끝나고 데이터베이스가 일관성이 유지되었음이 확인될 때, 이를 트랜잭션 관리자에게 알리는 연산입니다. Rollback 하나의 트랜잭션 작업이 비정상적으로 종료되고 일관성이 깨졌을 때, 트랜잭션의 모든 연산을 취소하는 연산입니다. Rollback 연산이 수행되면 해당 트랜잭션은 아예 취소되거나 폐기됩니다. Savepoint Rollback 연산 수행 시 일반적으로는 전체 연산이 삭제되지만, 이 연산을..

[알고리즘 연습] 소수 만들기 (프로그래머스 lv1, 파이썬)

문제 https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 풀이 def solution(nums): from itertools import combinations as cb answer = 0 for a in cb(nums, 3): cand = sum(a) for j in range(2, int(cand**0.5)+1): if cand%j==0: break else: answer += 1 ret..

SOLID in Swift (5): DIP(Dependency Inversion Principle)

해당 게시글은 아래 Article을 참고하여 작성되었습니다. https://medium.com/movile-tech/dependency-inversion-principle-in-swift-18ef482284f5 Dependency Inversion Principle in Swift Last article of the series of five about SOLID and its use in Swift medium.com SOLID란? SOLID는 5개의 프로그래밍 디자인 원칙의 앞글자를 딴 합성어이다. 각 디자인 원칙들은 소프트웨어의 이해와 발전뿐 아니라 유연성과 유지보수성을 높여준다. 이러한 원칙들은 교수이자 소프트웨어 엔지니어인 Robert C. Martin(Uncle Bob으로 많이 알려진)으로부터..

SOLID in Swift (4): ISP(Interface Segregation Principle)

해당 게시글은 아래 Article을 참고하여 작성되었습니다. https://medium.com/movile-tech/interface-segregation-principle-in-swift-1778bab4452b Interface Segregation Principle in Swift Fourth article of the series of five about SOLID and its use in Swift medium.com SOLID란? SOLID는 5개의 프로그래밍 디자인 원칙의 앞글자를 딴 합성어이다. 각 디자인 원칙들은 소프트웨어의 이해와 발전뿐 아니라 유연성과 유지보수성을 높여준다. 이러한 원칙들은 교수이자 소프트웨어 엔지니어인 Robert C. Martin(Uncle Bob으로 많이 알려진)..

SOLID in Swift (3): LSP(Liskov Substitution Principle)

해당 게시글은 아래 Article을 참고하여 작성되었습니다. https://medium.com/movile-tech/liskov-substitution-principle-96f15559e363 Liskov Substitution Principle Third article of the series of five about SOLID and its use in Swift medium.com SOLID란? SOLID는 5개의 프로그래밍 디자인 원칙의 앞글자를 딴 합성어이다. 각 디자인 원칙들은 소프트웨어의 이해와 발전뿐 아니라 유연성과 유지보수성을 높여준다. 이러한 원칙들은 교수이자 소프트웨어 엔지니어인 Robert C. Martin(Uncle Bob으로 많이 알려진)으로부터 소개되었다. Single Resp..

SOLID in Swift (2): OCP(Open-Closed Principle)

해당 게시글은 아래 Article을 참고하여 작성되었습니다. https://medium.com/movile-tech/open-closed-principle-in-swift-6d666270953d Open-Closed Principle in Swift Second article of the series of five about SOLID and its use in Swift medium.com SOLID란? SOLID는 5개의 프로그래밍 디자인 원칙의 앞글자를 딴 합성어이다. 각 디자인 원칙들은 소프트웨어의 이해와 발전뿐 아니라 유연성과 유지보수성을 높여준다. 이러한 원칙들은 교수이자 소프트웨어 엔지니어인 Robert C. Martin(Uncle Bob으로 많이 알려진)으로부터 소개되었다. Single R..

SOLID in Swift (1): SRP(Single Responsibility Principle)

해당 게시글은 아래 Article을 참고하여 작성되었습니다. https://medium.com/movile-tech/single-responsibility-principle-in-swift-61ee11ee81b5 Single Responsibility Principle in Swift First article of the series of five articles about SOLID and its use with Swift medium.com SOLID란? SOLID는 5개의 프로그래밍 디자인 원칙의 앞글자를 딴 합성어이다. 각 디자인 원칙들은 소프트웨어에 대한 이해와 발전을 돕고 유연성과 유지보수성을 높여준다. 이러한 원칙들은 교수이자 소프트웨어 엔지니어인 Robert C. Martin(a.k.a U..

[알고리즘 연습] 길찾기 게임 (프로그래머스 lv3, 파이썬)

문제 https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 참고 https://inuplace.tistory.com/185?category=884573 [자료구조] 트리 트리란 상하 관계가 존재하는 자료구조이다. 링크드 리스트와 비슷하게 트리도 노드들을 가진다. 단, 각 노드는 데이터 정보뿐만 아니라, 자식에 대한 레퍼런스를 가진다. 이를 통해 계층적 구 inuplace.tistory.com 트리 구조 및 순회에 대..