분류 전체보기 9

[Swift] ARC에 대해서 알아보자

안녕하세요. CalKim 입니다. 오늘은 ARC에 대해서 알아보겠습니다~~ 사실 어제도 ARC에 대해서 게시글을 쓰다가 말았는데... 다시 공부해서 간결한 내용으로 돌아왔습니다ㅋㅋㅋ 시작합니다. 메모리의 구조 먼저 ARC에 대해 살펴보기 전에 간단히 메모리의 구조에 대해서 살펴보겠습니다. 일반적으로 메모리는 위와 같은 구조로 생겼습니다. 각각의 영역에는 다음과 같은 정보가 저장됩니다. 코드 영역 - 실행할 프로그램의 코드, 제어문, 상수 데이터 영역 - 전역 변수, 정적 변수 힙 영역 - 동적 할당 (런타임에 크기 결정) 스택 영역 - 지역 변수, 매개 변수 (컴파일 타임에 크기 결정) 여기에서 이번에 우리가 살펴볼 ARC와 관련된 부분이 힙 영역입니다. 객체의 할당 var calKim = Human()..

Swift 2021.09.02

[Swift] Delegate 방식으로 데이터 전달하기 - 예제

안녕하세요 CalKim입니다. 오늘은 간단하게 delegate 방식으로 데이터를 전달하는 방법을 준비하였습니다. . . . Delegate 방식으로 데이터 전달하기 1. Reciever class 를 만든다. 2. Sender class 를 만든다. 3. SendDataProtocol 을 만든다. 4. SendDataProtocol에 Sender가 데이터를 내보낼 함수 sendData를 선언한다. 5. Sender는 SendDataProtocol을 갖는 변수 delegate를 갖는다. 6. Reciever는 Sender 객체인 sender를 변수로 갖는다. 7. Reciever는 sender의 delegate로 자기 자신을 준다. 8. -> Reciever는 SendDataProtocol을 채택한다. 9..

Swift 2021.09.02

[Swift][알고리즘] 스위프트로 DFS 구현하기

안녕하세요. CalKim 입니다. 어제 카카오 공채 공고가 떴더라구요. https://careers.kakao.com/2022-developer 2022 카카오 신입개발자 블라인드 채용 카카오에서 더나은 세상을 함께 만들어 봐요 careers.kakao.com 저는 코딩테스트 볼 때 DFS, BFS만 나오면 겁을 먹곤해서 언젠가 한 번 제대로 공부해야겠단 생각이 들었습니다. 그 언젠가가 바로 오늘인 것 같습니다. 캬컄캬캬컄 그런 의미에서 오늘은 스위프트를 이용하여 DFS 알고리즘을 구현해보도록 하겠습니다. DFS 알고리즘이란 우선 간단히 DFS가 무엇인지 살펴보겠습니다. DFS 는 Depth-First Search, 깊이 우선 탐색이라고 합니다. 이 방법은 그래프를 탐색할 때, 선택된 탐색방향으로 최대한..

알고리즘 2021.08.20

[Swift] Int형(정수형)의 종류와 캐스팅

스위프트에는 다양한 형태의 정수형이 있습니다. 마치 C언어에서 정수형의 크기에 따라 int, long 등으로 사용하는 것과 유사한 것 같네요. 어떤 형태의 정수형이 있는지, 각각이 서로 어떻게 호환 혹은 캐스팅 되는지 알아보겠습니다. 우선 어떤 형태의 정수형의 종류를 살펴보겠습니다. 정수형의 종류 스위프트에서는 사용하는 정수형 타입은 Int Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 가 있습니다. 다른 언어를 통해 정수형을 먼저 접하셨다면 바로 알겠지만 뒤의 숫자는 사용하는 비트 수, 'U'의 유무는 signed 인지, unsigned인지를 나타냅니다. 즉, Int8 은 부호가 있고 8비트를 이용하여 값을 나타내기 때문에, 표현하는 값의 범위는 -128 ~ ..

Swift 2021.08.18

2021 네이버웹툰 개발챌린지 1차 코딩테스트 합격

네이버웹툰 1차 코테 합격했다. 하루종일 기다리던 메일이 저녁이 다 되어서야 왔다 ㅠㅠ 이번에 직무 분야마다 문제가 다른 거 같다는 이야기를 들었는데, 나는 iOS 분야로 2솔했다. 1번이랑 2번. 시험 전날 부스트캠프 코테 보고 다음날 본 코테라 코테 자체에 긴장을 많이 하지는 않았지만, 마지막 문제를 다 풀지 못하고 내서 걱정했는데 일이 잘 풀려서 다행이다. 사실 이번 코테가 swift로 본 첫 시험이라 걱정도 했는데, 코테를 swift로 보는 것에도 자신감이 좀 생긴 것도 같다. 2차는 이번주 토요일 과제 테스트다.... 과제 테스트도 처음인데 이건 좀 긴장이 된다ㅠㅠ 게다가 화상 준비도 해야 하는 것 같아서 ㅠㅠㅠ 2차 시험 대비해서 이번엔 미리미리 환경 세팅도 좀 하고, 시험 준비도 열심히 하고..

CalKim 2021.07.07

부스트캠프(웹/모바일) 코테 후기

지난, 7월 3일 토요일 부스트캠프 2차 코딩테스트를 보았다. 코딩 테스트 1차를 합격한 것은 처음이라 2차 시험 연락을 받고 얼마나 기분이 좋았는지 모른다. 2차 테스트는 1차와는 달리 카메라를 켜고 보는 시험이라 시험 전에 준비할 게 많았는데, 내 핸드폰으로는 카메라가 잘 작동하지 않아 시험 전에 당황하기도 했다. 시험 문제에 대해서 생각을 해보면 문제 자체는 다른 취업 코테들과 비교했을 때, 내가 지금껏 본 코테 중에 가장 쉬운 편이었다. 160분에 세 문제였는데, 세 문제 다 풀기는 풀었다. 조건에는 조금 미흡한 부분도 있어 아쉬웠지만... 문제가 요구하는건 자신의 생각을 코드로 표현할 수 있는가? 였던 것 같다. 그래도 3솔이라 합격 기대하고 있는데, 오늘 다시 문제들을 풀었던 기억을 정리해보니..

CalKim 2021.07.05

코테 준비하다 정리하는 정렬 알고리즘 with python(선택)

코딩테스트를 준비하면서 알고리즘 문제를 풀다 정렬 문제를 접하게 되었다. 머릿 속에 몇 가지 정렬 방법들이 떠오르기도 했지만, 생각나는 알고리즘이 어떤 정렬인지 그 이름이 기억나지 않거나, 생각나는 이름의 정렬법이 어떻게 구현하는지 떠오르지 않는 게 많았다. 앞으로도 정렬을 다룰 일이 많을 것 같은데 이참에 정렬 기법들을 정리 해보려고 한다. 대표적인 정렬의 종류에는 선택/삽입/버블/쉘/합병/퀵/힙/기수 정렬 등 많은 정렬들이 있는데, 그 중에서도 오늘은 가장 대표적인 선택정렬, 삽입정렬, 버블정렬에 대해서 우선 알아볼 것이다. 려고 했는데 우선은 선택 정렬만 하도록 하겠다. # 선택정렬과 삽입정렬, 버블정렬은 n^2의 시간복잡도를 갖는다. 1. 선택정렬 선택정렬의 가장 큰 핵심은 바로 "선택"하는 것이..

알고리즘 2021.02.05