Posts by Month

2023/12

NPM 터미널에서 설치 및 실행

December 23 2023

터미널에서 npm (Node Package Manager)을 실행하려면 먼저 Node.js가 설치되어 있어야 합니다. npm은 Node.js와 함께 제공되므로, Node.js를 설치하면 자동으로 npm도 설치됩니다. 다음 단계를 따라 npm을 실행할 수 있습니다.

맨 위로 이동 ↑

2023/11

맨 위로 이동 ↑

2023/04

재귀와 꼬리재귀(2) (Feat. ARC)

April 10 2023

Stack frame 어떤 함수든 호출되는 순간 스택에 그 함수를 위한 영역(스택 프레임 stack frame)이 할당된다. 함수가 호출될 때마다 스택에 값들이 쌓이고, 계산이 끝나면 다시 하나씩 빼면서 출력값이 가장 밑에 있던 리턴 공간으로 돌아오는 것이다.

[SDLC] 소프트웨어 생명주기

April 07 2023

소프트웨어 개발 생명주기(Software Development Life Cycle, SDLC)는 소프트웨어를 개발하기 위한 일련의 단계이며 개발 프로세스를 설명하는 개념이다.

[Swift] 베스트앨범

April 07 2023

문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다.

[Xcode Build Error] Cocoapods Error

April 04 2023

File not found: /Applications/Xcode.app/Contents/Developer/Toolchains /XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a

[Swift] Optimal Partition of String

April 03 2023

Given a string s, partition the string into one or more substrings such that the characters in each substring are unique. That is, no letter appears in a sin...

맨 위로 이동 ↑

2023/03

맨 위로 이동 ↑

2023/02

맨 위로 이동 ↑

2023/01

UICollectionViewDiffableDatasource 개발기

January 05 2023

후기 RxDataSource 나 기존 UICollectionViewLayout 으로 구현 불가능한 세로/가로 스크롤형 뷰를 생성 가능 이전 버전에 대한 대응 노하우가 쌓인다면 사용해볼만 함 지원하는 OS 버전이 낮을 수록 안정성이 떨어짐 최소버전을 ...

맨 위로 이동 ↑

2022/12

UITabBarController Height 변경하기

December 20 2022

UIStoryBoard를 사용한다면 UITabBarItem을 CustomClass로 적용하기 매우 쉽다. 코드 베이스라면 UITabBarItem이 UITabBarController에서 자체적으로 가지고 있기 때문에 CustomClass를 적용하기가 애매해진다.

맨 위로 이동 ↑

2022/11

Stack Memory vs Heap Memory Speed

November 26 2022

Stack Memory가 Heap Memory 보다 속도가 더 빠른 이유에 대해 생각해봤다. CPU에서 접근하는 메모리는 CPU 내의 메모리다. DRAM은 CPU에서 주소를 복사해 오고 그곳을 접근한다.

[iOS] ModuleMap

November 04 2022

.moduleMap은 Objective-C API 와 Swift API 의 중간 다리 역할을 한다. iOS 개발은 Objective-C, Swift 언어로 개발이 가능하다.

맨 위로 이동 ↑

2022/10

[Xcode Runtime Error] outlined copy of

October 04 2022

애플리케이션의 크래시는 운영에 매우 중요한 요소이다. 현재 운영 중인 프로젝트는 99.98% ~ 99.99% 의 크래시로부터 안전성을 유지하고 있다. 주로 Firebase Crashlytics와, Xcode Organizer의 Crashs로 report를 받고 있으며, 예상치 못한...

[AVPlayer] 백그라운드에서 제어

October 03 2022

AVPlayer는 Application의 Life Cycle에 영향을 받는다. UI는 Background에 진입하면 동작을 멈추고, UI가 아닌 기능은 Background에서 동작한다.

맨 위로 이동 ↑

2022/09

RIBs

September 23 2022

RIBs 아키텍처는 Composition을 활용하여 비지니스 로직을 트리구조를 사용하여 수직적인 계층으로 쪼개는 것에 초점이 맞추어저 있다. 작은 객체로 쪼갠 후 요소들이 일관성 있는 통신 방법을 통해 아키텍처에 익숙하지 않은 팀원에게도 프로젝트를 익숙하도록 개선할 수 있다.

[Swift] 윤년 계산

September 20 2022

윤년 규칙 윤년 4로 나누어 떨어지는 해 1992, 1996, 2004, 2008, 2012, 2016… 4, 100, 400으로 나누어 떨어지는 해 1600년, 2000, 2400…

[Swift] Valid Palindrome

September 18 2022

A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same fo...

[Swift] 4Sum

September 17 2022

Given an array nums of n integers, return an array of all the unique quadruplets [nums[a], nums[b], nums[c], nums[d]] such that:

[Swift] 3Sum Closest

September 16 2022

Given an integer array nums of length n and an integer target, find three integers in nums such that the sum is closest to target.

[iOS] 앱 모듈화의 필요성

September 04 2022

IT 소프트웨어 산업은 계속 성장하고 있다. 아마도 많은 서비스들은 점점 더 커질 것을 예상하고 기대할 것이다. Backend에서는 마이크로서비스 아키텍처로 대규모 애플리케이션을 작은 단위로 분리해 독립적인 구성요소로 구분해 개발하는 방법이 있다.

맨 위로 이동 ↑

2022/08

GitHub ssh 접속 설정

August 18 2022

ssh 원격 컴퓨터에 접속하기 위한 protocol id, password 가 필요없으며 public key를 외부에 두어 통신

맨 위로 이동 ↑

2022/07

[Swift] Missing Number

July 13 2022

Given an array nums containing n distinct numbers in the range [0, n], return the only number in the range that is missing from the array.

[XCUITest] resultBundle

July 03 2022

UITest에서 수행한 결과에 대한 Session 데이터를 resultBundle 에 저장 번들에는 build log, code coverage가 포함 reports, XML property list, test result, screenshots, attachments c...

맨 위로 이동 ↑

2022/06

[TDD] iOS

June 23 2022

TDD Test Driven Development 테스트코드를 먼저 짜고 구현을 나중에 하는 개발 방식 Extreme Programming의 실천법 중 하나 Extrame Programming 좋은것은 먼저 해보자라는 극단적인 프로그래밍 방식 ...

[XCUITest] View and share test results

June 20 2022

result bundle을 팀 구성원과 공유할 수 있으며, 팀 구성원은 관련 프로젝트 없이도 독립 실행형 Report navigator에서 결과를 열 수 있습니다.

맨 위로 이동 ↑

2022/05

시니어 개발자의 역량과 역할에 대한 고민

May 24 2022

시니어 개발자는 어떤 역량과 역할을 해야 하는 것일까? 내가 일하고 있는 모습은 어떤가? 시니어 개발자의 역할은 무엇인가? 한번도 정리해보지 못한 바 “시니어란?”물음에 대답하기 어려웠다.

32Bit vs 64Bit 누가 더 빠를까?

May 21 2022

32Bit vs 64Bit Application의 차이점과 어느 쪽이 빠른지에 대한 고찰 Memory 주소와 Register 의 크기의 차이가 나타나게 된다.

OSI 7 계층

May 19 2022

오늘날 OSI Layer 7 Model 은 경쟁에 밀려 TCP/IP모델을 주로 사용하고 있으며 계층은 비슷하다.

IaaS, PaaS, SaaS

May 19 2022

서비스형(as-a-Service)이라는 용어는 제3사에서 클라우드 컴퓨팅 서비스를 제공한다는 의미

[양자 컴퓨터] 이중 인증이 중요해지는 이유

May 17 2022

애플의 아이폰, 구글의 유튜브 등 많은 실리콘벨리 플랫폼 기업들은 이중 인증을 권고하고 있다. 플랫폼에서 지원한다면 필자도 이중 인증을 서서히 늘려가고 있다. 왜 이중 인증을 해야 할까? 다가올 양자 컴퓨터의 기술이 발전함에 따라, 기존의 ID/PW 방식 점점 안전에서 멀어지고 있...

보일러 플레이트 코드(Boilerplate Code)

May 15 2022

어디서쓰나 거의 또는 전혀 변경도 없이 똑같이 쓰는데 여기저기서 필요로 하여 재사용되는 코드 섹션 작은 기능에도 많은 코드를 양산하는 문제점

[Swift] Maximum Subarray

May 06 2022

Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

맨 위로 이동 ↑

2022/04

Jekyll 블로그에 Google AdSence 광고 탑재하기

April 30 2022

필자의 블로그는 수익이 전혀 없다. 블로그에 광고를 추가했다. 이유는 간단하다. Google AdSense를 사용해보고 싶었고, jekyll 블로그를 통한 광고 개재 가능 여부 등을 알고 싶었다. 1개의 게시물에 광고를 시험적으로 추가했다. 역시 클릭수는 0이다.😁 무분별한 광...

[Swift] Add Two Numbers

April 27 2022

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a s...

[Swift] 3Sum

April 26 2022

Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0.

[Swift] String to Integer (atoi)

April 24 2022

Implement the myAtoi(string s) function, which converts a string to a 32-bit signed integer (similar to C/C++’s atoi function).

[Swift] (String)Super Reduced String

April 17 2022

Reduce a string of lowercase characters in range ascii[‘a’..’z’]by doing a series of operations. In each operation, select a pair of adjacent letters that ma...

[Swift] Zigzag Conversion

April 15 2022

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for bet...

[Swift] Merge Intervals

April 15 2022

Given an array of intervals where intervals[i] = [start$_i$, end$_i$], merge all overlapping intervals, and return an array of the non-overlapping intervals ...

코드 리뷰 피라미드

April 13 2022

코드 리뷰는 스타일 논의에 많은 시간을 할애하는 경우가 많다. 정말 중요한 코드의 기능, 프로젝트를 더 장기적으로 더 좋은 프로젝트를 위해 코드리뷰를 하고 있으며 코드리뷰를 어디에 더 집중해야 하는가?를 정리한 코드리뷰 피라미드를 보게 되어 이를 소개한다.

[Swift] 순열

April 12 2022

Swift 순열은 직접 구현해야 한다. 알고리즘을 풀다 보면 자주 접하게 되는데 구현하려고 하면 매번 기억이 안 나는 마법에 빠져있다.

맨 위로 이동 ↑

2022/03

Fastlane으로 프로젝트 관리하기

March 04 2022

Fastlane 은 iOS개발을 도와주는 좋은 도구이다. 배포 자동화를 도와주는 툴이며, 많은 iOS개발자들이 사용할 수 있다. 대표적인 장점은 수동으로 배포를 하다 보면 실수를 할 수 있는데, 이를 방지할 수 있는 장점이 있다.

맨 위로 이동 ↑

2022/02

[Git] 버전 관리 시스템

February 24 2022

Version Control System; VCS 파일의 변화를 시간에 따라 기록하여 과거 특정 시점의 버전으로 불러올 수 있는 시스템 개별 파일 혹은 프로젝트 전체를 이전 상태로 되돌리기 시간에 따른 변경 사항을 검토 문제가 되는 부분을 누가 마지막으로 수정하였는...

[Git] 기초

February 24 2022

역사 리눅스 커널은 패치 파일과 단순 압축 파일로 관리 2002년 BitKeeper라는 상용 DVCS를 사용 2005년에 BitKeeper의 무료 사용이 제고됨 리눅스 개발 커뮤니티가 자체 도구를 만드는 계기 목표 빠른 속도 단순한...

[Git] Fork

February 24 2022

Fork프로그램은 Git GUI 프로그램이며, 평가판과 구매판과 기능의 차이는 없다.

Xcode 13 Column Breakpoints

February 11 2022

구글 번역기로 돌린 번역입니다. 잘못된 오역이 있음을 주의하여 주세요.👀

맨 위로 이동 ↑

2022/01

WKWebView UIAlert Crash

January 28 2022

WKWebView를 사용하다보면 종종 아래와 같은 크래시를 발견할 수 있다. Fatal Exception: NSInternalInconsistencyException Completion handler passed to -[UIViewController webView:runJa...

UICollectionViewCompositionalLayout

January 20 2022

유연하고 시각적으로 항목을 결합하는 Layout이며 iOS 13+ 이상에서 사용할 수 있다. Group이라는 중간 계층이 추가되어 horizontal scroll, group items 등 다양한 화면을 만들 수 있다.

UICollectionViewDiffableDatasource

January 20 2022

TableView(또는 CollectionView)를 그리기 위한 데이터를 관리하고 UI를 업데이트 하는 역할 Data Source와 달리 데이터가 달라진 부분을 추적하여 자연스럽게 UI를 업데이트 UI Data를 관리하고, 변경된 데이터만 UI를 자연스럽게 업데이트 ...

[MariaDB] Table Schema 변경하기

January 04 2022

스키마를 설계 후 기존 테이블을 다른 스키마로 옮기고 싶었다. 방법은 TABLE을 renamed 하는 형태로 ALTER TABLE 명령어를 사용하여 스키마를 변경하면 된다.

맨 위로 이동 ↑

2021/12

[Database] Error Code 1175

December 19 2021

MySQL Workbench 사용 시 UPDATE, DELETE 등 구문을 사용할 때 아래와 같은 에러 메세지를 만나는 경우가 발생한다.

isProtectedDataAvailable

December 16 2021

보호된 파일(키 체인, UserDefaults 등)을 엑세스 가능한지 확인하는 변수이다.

맨 위로 이동 ↑

2021/11

GitHub Actions

November 10 2021

왜 GitHub Actions을 써야하는 이유는 워크플로우를 자동화해준다.

Mamba Mentality

November 09 2021

코비 브라이언트는 롤모델인 마이클조던을 엄청 따라했다. 끊임없는 노력 끝에 대단한 커리어와 엄청난 업적을 이루었다.

당장 적용하는 SwiftUI의 아이디어

November 07 2021

절차 지향적 프로그래밍은 디버깅, 데이터의 무결성에 단점을 가지고 있다. 또한 코드가 if else로 분기되며 많은 코드들이 조건문으로 쌓이게 됨으로 시간이 지날수록 수정하기 어렵게 되고 유지보수에 불리하게 된다. SwiftUI가 암시하는 것 SwiftUI가 제시하는 아키텍...

맨 위로 이동 ↑

2021/10

좋은 개발자(3)

October 31 2021

백기선 님의 열린 결말 영상, 열린 결말이라 더 생각하게 만드는 좋은 영상이다. 이 영상은 좋은 의미로 ‘미쳤다!’

Xcode 13.1 Release Notes

October 26 2021

구글 번역기로 돌린 번역입니다. 잘못된 오역이 있음을 주의하여 주세요.👀

hoisting

October 26 2021

var 또는 function declaration 선언들이 제일 위로 올라가는 것 코드가 나타나는 순서대로 실행이 된다.

Hash Table

October 25 2021

Key, Value 로 데이터를 저장하는 자료구조 중 하나 F(key)->hashCode->Index->Value

[SwiftUI] 선언적 구문과 데이터 주도

October 24 2021

Swift의 장점은 선언적 구분과 데이터 주도 기반에서 비롯된다. SwiftUI 는 UIKit을 구현하는 방법과 완전히 다른 선언적 구문이 도입 되었다.

Composition over inheritance

October 22 2021

객체 지향 프로그래밍에서 상속에 대한 구성은 클래스가 기본 또는 부모 클래스에서 상속하는 것이 아니라 구성에 의해 다형성 동작 및 코드 재사용을 달성해야한다는 원칙이다. 이것은 영향력있는 책 디자인 패턴과 같이 OOP의 원칙에 따라 자주 언급된다.

객체 지향적 모델링과 네이밍

October 22 2021

객체 지향적 모델링은 개발자에게 있어서 매우 중요한 기본 지식이지만 실무에서 거의 배울 기회가 없다. 사소해 보일 수 있지만 이름을 짓는 관행의 일관성을 확보하는 것은 모델링에 있어서 매우 중요한 단계이다.

콜드 스타트

October 21 2021

앞선 출력 결과를 이용해 동작하게 되므로, 데이터가 없는 시작 상태에서는 제대로 동작하지 않는 시스템

[Swift] LRU Cache

October 20 2021

Design a data structure that follows the constraints of a Least Recently Used (LRU) cache.

NSCache

October 17 2021

mutable Collection 으로 key-value쌍을 임시로 저장하는데 사용된다.

금연과 개발자

October 11 2021

어느덧 담배를 태운지 17년이 되었다. 중간 금연 시도가 있었었나 언제나 실패했다. 이번에는 어떨까? 성공하길 바라며 글을 써 본다.

담배와 개발자

October 10 2021

“며칠 전 과거의 결정 중 후회하는 것이 있는가?”란 뜬금없는 질문이 훅 들어왔다. 순간 없다고 대답 했으나 돌이켜 생각해보니 가장 후회하는 것은 담배를 시작한 일이었다.

Xcode 13

October 01 2021

구글 번역기로 돌린 번역입니다. 잘못된 오역이 있음을 주의하여 주세요.👀

맨 위로 이동 ↑

2021/09

GitHub Readme에 Badge 만들기

September 16 2021

오픈소스 프로젝트의 Readme는 뱃지가 있는 경우가 대부분이다. 이러한 뱃지를 통해 이 Repo가 어떤 속성인지를 쉽게 알수 있도록 유저에게 제공 한다. 그럼 뱃지를 어떻게 만들고 게시 할 수 있는지 알아보자. 뱃지를 생성하고 링크하는 방법은 여러가지가 있다. 필자의 경우 s...

개발자가 자주 틀리는 영어발음

September 13 2021

블라인드 알림 중 유용한 제목의 알림왔다. 내용을 보니 재미있고 좋은 글이라 포스팅 해본다. 프론트엔드에서 쓰는 용어는 대부분 들어봤으나 게임 업계는 아니라 처음 보는 단어도 있었다.

[Swift] 2447 별 찍기 - 10

September 09 2021

재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, …)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, ...

[Xcode] 파일 상단 Created by 변경하기

September 06 2021

Xcode에서 새 파일을 생성하면 상단 헤더가 자동으로 생성되는데, 네이밍을 변경하는 방법을 알아보자. // Created by {my name here} on 8/4/11. // Copyright 2011 __{my company name here}__. All rights ...

유닉스 철학

September 05 2021

최소화되고 모듈화된 소프트웨어 개발 방식을 위한 문화적 규범이자 철학적 접근 방식.

React

September 05 2021

사용자 인터페이스 개발을 위해 페이스북에서 만들고 공개한 오픈소스 자바스크립트 라이브러리

슈도코드

September 05 2021

프로그램을 작성할 때 각 모듈이 작동하는 논리를 표현하기 위한 언어이다. 특정 프로그래밍 언어의 문법이 아닌 알고리즘 그 자체이 집중할 수 있기 때문에 코딩 면접에서 많이 사용된다.

햄(HAM) 라디오

September 05 2021

취미 활동으로 즐기는 아마추어 무선 통신

Command-line

September 05 2021

명령줄 또는 명령어 인터페이스는 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 말한다.

클래스 계층도

September 05 2021

객체 지향 프로그래밍의 핵심인 클래스와 그 서브클래스 간의 계층 구조를 도식으로 나타낸 것.

ASCII Art

September 05 2021

텍스트와 특수문자를 조합해서 사진과 그림을 표현한 것.

iOS 기기 별 Architecture

September 03 2021

iOS 기기는 시간이 변함에 따라 다양한 Architecture가 있다. 현재까지 나온 armv64, armv7, armv6, i386, x86_64 를 기기별로 정리해본다.

좋은 회사

September 01 2021

2014년부터 같은 회사에서 일해오던 개발자들이 있다. 지금은 모두 이직하여 다른 회사에 근무 중이다. 카카오톡 단톡방으로 안부를 주고받고 있는데 부동산, 주식 이야기 등 다양하다.

맨 위로 이동 ↑

2021/08

블로그에 이미지 올리기

August 26 2021

블로그에 이미지를 업로드하는 방법은 여러가지가 있다. 나의 경우 추후 Github 용량을 고려하여 Google Drive 를 쓰기로 했다.

[Swift] Currying

August 23 2021

수학과 컴퓨터 과학에서 커링(currying)이란 다중 인수 (혹은 여러 인수의 튜플)을 갖는 함수를 단일 인수를 갖는 함수들의 함수열로 바꾸는 것을 말한다. 모지즈 쇤핑클에 의해 도입되었고, 이후 해스켈 커리에 의해 발전하였다.

[Swift] @autoClosure

August 23 2021

@autoclosure속성을 사용하면 클로저에 자동으로 래핑되는 인수를 정의할 수 있다. 일반 구문을 인자값으로 넣어도 컴파일러가 알아서 클로저로 만들어서 사용한다.

[UIViewController] Life Cycle

August 23 2021

loadView() 컨트롤러가 관리하는 뷰를 로드한다. 뷰컨트롤러가 생성되고 순차적으로 완성되었을때만 호출된다.

[Swift 5.5] async await

August 22 2021

Javascript, kotlin, google-promises 등 그 동안 다른 언어에서 제공되던 기능이 Swift 5.5 에 강력하게 들어왔다. 비동기 프로그래밍은 그동안 delegate 패턴이나, closur 를 통해 해왔다면 앞으로는 async, await 를 통한 동기 프...

[Swift 5.5] Actor

August 22 2021

Reference type 이다. 스레드의 모델(MVVM 처럼 뷰-뷰모델을 만드는 것과 유사하다)

Rename await to awaitPromise

August 22 2021

Swift 5.5 의 aync/await 에 맞춰 구글에선 어쩔수 없이(?) 네이밍을 변경, Style 적인 수정이다.

[Swift] 소수 찾기

August 22 2021

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.)

마크 다운 문법

August 21 2021

Color Asset <span style="color:#db7093">Sand Red</span> Sand Red <span style="color:#2deb9e">Sand Green</span> Sand Green <span ...

블로그에 프로그래머스 코드 올리기

August 21 2021

프로그래머스에서 풀었던 코드들을 블로그에 정리하고 싶었다. 그래서 코드를 올려도 되는지 검색을 해보았다. 결론은 개인 블로그나 유튜브에서 비상업적, 비영리적 용도 로 게시가 가능하다고 한다. 다만 기업 코딩 테스트에 나왔던 문제는 게시를 금한다고 되어있다. (연습문제에 있는 카카오...

개발을 시작하게 된 계기

August 21 2021

6살이던 아이는 레고에 관심이 많았다. 처음엔 설명서대로 만드는 것으로 그쳤지만, 만족하지 않았다. 기존제품을 개조해보고, 합쳐보고, 창작해보는 것이 재미있었다.

좋은 개발자(2)

August 21 2021

우아한 현제들 김범준 대표님의 영상을 보고 좋은 개발자에 대해 생각해보았다. 좋은 글이 있어 요약해보았다.

좋은 개발자(1)

August 21 2021

코드를 만 줄 짰다고 좋은 프로그래머는 아니다. 천 줄이든 만 줄이든 중요한 것은 당신이 작성한 코드로 만들어낸 비즈니스 가치가 뭐야? 그 비즈니스 가치로 나의 가치가 증명되는 것이고 인정을 받는 것이지 코딩 자체로 인정을 받는 것은 아니거든요.

[Swift] 두 정수 사이의 합

August 21 2021

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

[스크랩] FairPlay Streaming

August 20 2021

HTTP HTTP Live Streaming(HLS) protocol을 통해 스트리밍 미디어를 장치로 안전하게 전달합니다. 콘텐츠 제공업체, 인코딩 공급업체 및 전송 네트워크는 FairPlay 스트리밍(FPS) 기술을 사용하여 콘텐츠를 암호화하고 키를 안전하게 교환하며 iOS, ...

[Swift] 영어 끝말잇기

August 20 2021

1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.

[Swift] Next Permutation

August 20 2021

Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.

[Swift] 수박수박수박수박수박수?

August 19 2021

길이가 n이고, “수박수박수박수….”와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 “수박수박”을 리턴하고 3이라면 “수박수”를 리턴하면 됩니다.

Github 블로그 시작하기

August 18 2021

점점 머리가 나빠진다. 나의 경우 글을 작성하고 다시 보고 하면서 반복적으로 봐야 공부가 된다. 메모하는 습관을 다시 기르기 위해 2018년 ice bear 테마 Github 블로그를 구축했었으나 테마가 너무 좀.. 그래서.. 새로운 테마로 새롭게 시작하고 싶었다. 그래서 기존 R...

[GitHub Pages] 포털사이트에 검색 등록 하기

August 18 2021

열심히 만든 블로그가 검색 되면 꾸준한 유지에 도움이 될 것이다. 시작 단계라 유입량이 적겠지만 그래도 검색되는 것은 몇 가지 설정만으로 가능하니 시도해보자.

Stack overflow

August 18 2021

소프트웨어에서 스택 포인터가 스택의 경계**를 넘어설 때 일어난다. 호출 스택은 제한된 양의 주소 공간을 이루며 대개 프로그램 시작 시 결정된다.

zshrc

August 17 2021

shell 의 종류 중 하나. login 여부와 상관없이 항상 실행 됨

Jekyll

August 17 2021

Jekyll은 개인, 프로젝트 또는 조직 사이트를위한 간단한 블로그 인식 정적 사이트 생성기다. GitHub의 공동 설립자 인 Tom Preston-Werner가 루비로 작성했으며 오픈 소스 MIT 라이센스에 따라 배포된다.

bashrc

August 17 2021

새로운 터미널을 열 때마다 정보를 받고 싶을 때 필요

맨 위로 이동 ↑

2021/07

Set

July 23 2021

Set은 정의된 순서 없이 collection에 동일한 Type의 고유한 값을 저장한다. 항목의 순서가 중요하지 않거나 항목이 한 번만 표시되도록 해야 하는 경우 array 대신 Set을 사용할 수 있다.

Dictionary

July 23 2021

Value type 이다. @frozen public struct Dictionary<Key, Value> where Key : Hashable

Array

July 23 2021

Value type 이다. @frozen public struct Array<Element>

맨 위로 이동 ↑

2021/06

Swift Package Manager 생성해보기

June 29 2021

Swift Package Manager(SPM)는 프로젝트의 의존성 관리 및 패키지 빌드를 자동화하는 공식 Swift 패키지 매니저이다. SPM은 프로젝트에서 사용하는 모든 의존성을 정의하고, 패키지의 종속성 관리를 담당한다.

맨 위로 이동 ↑

2021/05

layoutIfNeeded()

May 23 2021

뷰의 크기가 변경될 때마다 이에 대응하여 하위 뷰들의 크기&위치 변경한다. 이 메소드는 setNeedsLayout과 같이 수동으로 layoutSubviews를 예약하는 행위이지만 해당 예약을 바로 실행시킨다.

setNeedsLayout()

May 23 2021

업데이트 주기에 해당 View와 모든 하위 View를 레이아웃 및 draw 하도록 시스템에 알려주는 역할을 한다.

setNeedsDisplay()

May 23 2021

next drawing cycle 동안 View를 업데이트해야 함을 시스템에 알린다. setNeedsDisplay()메소드 또는 setNeedsDisplay (_ :)를 사용하여 View rendering 을 시스템에 요청한다.

layoutSubviews()

May 23 2021

뷰의 크기가 변경될 때마다 이에 대응하여 하위 뷰들의 크기, 위치 변경한다. auto layout을 사용하면 각 뷰의 autoresizingMask프로퍼티를 설정하여 상위 뷰의 크기가 변경되었을 때 어떻게 대응할 지 규칙을 정할 수 있다. 뷰의 크기에 변경이 발생하면 우선...

맨 위로 이동 ↑

2021/04

[UIView] Drawing Cycle

April 23 2021

UIView클래스는 컨텐츠를 표시할 때, on-demand 드로잉 모델을 사용한다. View를 업데이트하려면 다음 드로잉사이클 때까지 기다렸다가 한꺼번에 업데이트 된다. 비동기 요청을 기록하고 즉시 리턴합니다. 즉각적인 업데이트를 강제하지는 않지만, 다음 업데이트 주기를 기다...

맨 위로 이동 ↑

2021/03

소프트웨어 아키텍처의 중요성

March 29 2021

Why? 다음으로 짚어볼 질문이 있는데요. 왜 우리는 소프트웨어 아키텍처에 관심을 기울여야 할까요? 왜 제가 여기서 10분 동안 여기서 아키텍처에 대해 이야기할 만큼 중요한 걸까요?

맨 위로 이동 ↑

2021/01

On-demand Resource

January 23 2021

키워드로 태그를 지정하고 태그별로 그룹으로 요청할 수 있는 이미지 및 사운드와 같은 리소스입니다. App Store는 Apple 서버의 리소스를 호스팅하고 다운로드를 관리합니다. 또한 App Store는 on-demand resource를 분할하여 앱 변형을 더욱 최적화합니다.

Bitcode

January 23 2021

Bitcode 는 컴파일된 프로그램의 중간 표현입니다. Bitcode가 포함된 App Store Connect에 업로드하는 앱은 App Store에서 컴파일 및 연결됩니다. - Bitcode를 포함하면 Apple이 앱의 새 버전을 App Store에 제출할 필요 없이...

App Slicing

January 23 2021

슬라이싱 은 다양한 대상 장치 및 운영 체제 버전에 대한 앱 번들의 변형을 만들고 제공하는 프로세스입니다. 변형은 대상 장치 및 운영 체제 버전에 필요한 경우에만 실행 아키텍처와 리소스가 포함되어 있습니다. 앱의 전체 버전을 계속 개발하고 App Store Connect에 업로...

App Thinning

January 23 2021

App Store 및 운영 체제는 최소한의 설치 공간으로 사용자의 특정 장치 및 운영 체제 버전의 기능에 맞게 앱 제공을 조정하여 iOS, tvOS 및 watchOS 앱 설치를 최적화합니다. thinning 이라고 하는 이 최적화를 통해 대부분의 기기 기능을 사용하고 최소 디스크 ...

맨 위로 이동 ↑

2020/05

재귀와 꼬리재귀(1)

May 24 2020

리스트, 트리, 그래프 등등의 모든 데이터 구조는 리커시브 하게 정의되며, 그래프도 정의에 리스트가 사용된다. 이렇게 정의된 객체를 효율적으로 다루기 위해선 어떤 알고리즘이 효율적일까?

Divide and conquer

May 24 2020

분할 정복 알고리즘(Divide and conquer algorithm)은 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법이나 알고리즘이다.

DFS, BFS

May 24 2020

그래프를 탐색하는 방법

맨 위로 이동 ↑

2020/03

[Git] commit 파일명 대소문자 인식

March 06 2020

Git 은 기본적으로 파일/폴더 명에 대한 대소문자 인식을 구분하지 않는다. 이를 수정했을때 인식되지 않아 오류가 발생할 수 있는데 이것을 구분하기 위한 설정이 필요하다.

맨 위로 이동 ↑

2020/02

Calendar Heatmap

February 25 2020

GitHub 의 커밋 잔디를 말한다. Heatmap js 용 오픈소스를 보다가 남긴다.

맨 위로 이동 ↑

2019/10

맨 위로 이동 ↑

2019/09

[Swift] String.init(format:_:)

September 10 2019

변수나 리터럴, 표현식 등 조합으로 새로운 문자열을 구성하는 것을 String Interpolation 이라 한다. 문자열 형식 지정 방법 및 함수에서 지원하는 형식 지정자를 요약한다.

StringTransform

September 08 2019

문자열 음역(Transliteration) 변환을 제공한다. ```swift public struct StringTransform : Hashable, Equatable, RawRepresentable { public init(_ rawValue: String) public...

CompareOptions

September 06 2019

문자열 처리에 여러가지 옵션을 지정하여 처리할 수 있다. ```swift extension NSString { public struct CompareOptions : OptionSet { public init(rawValue: UInt) public static ...

ComparisonResult

September 04 2019

ascii 를 기준으로 정렬 되는 방식을 나타낸다.

맨 위로 이동 ↑

2019/05

트러블 슈팅

May 05 2019

문제해결의 한 방법 문제의 원인이라고 생각할 수 있는 가능성을 배제하는 방법 무엇이 달라졌는지에 주목

맨 위로 이동 ↑

2019/03

[Swift] LinkedList

March 24 2019

리스트의 다음 원소에 대한 연결고리(link, 포인터 또는 레퍼런스) 가 들어있다. 마지막 원소는 꼬리(tail) 라고 부르며, 연결고리는 비워두거나 nil 로 지정한다. 각각의 원소들은 자기 자신 다음에 어떤 원소인지만을 기억하고 있다. Tree 구조의 근간이 되는 자료구조이며,...

맨 위로 이동 ↑

2019/02

[Swift] Stack

February 17 2019

LIFO 특성을 가지는 자료구조(Data Structure)를 일컫는다. 스택은 일종의 바닥이 막힌 상자라고 보면 된다. 나중에 넣은 물건이 위에 있으므로 먼저 꺼낼 수밖에 없다.

[Swift] Boxing

February 02 2019

value type 을 reference type 으로 변경하는 것을 Boxing, reference type 을 value type 으로 변경하는 것을 Unboxing 이라 한다.

[Swift] Value Type

February 01 2019

Int, Float, Bool, String 과 같은 기본 자료형과 struct, enum 은 Value Type 분류 한다.

맨 위로 이동 ↑

2019/01

CPU Register

January 31 2019

컴퓨터 아키텍처에서 레지스터는 프로그램과 작업을 효율적으로 실행하는데 사용되는 매우 빠른 컴퓨터 메모리다.

Mutability

January 15 2019

데이터를 변경할 수 있음을 나타낸다. var a = 0 let s = NSMutableString("")

[Swift] @escaping

January 03 2019

@escaping 해당 함수의 인자로 클로저가 전달되지만, 함수가 종료되어도 실행 되는 것을 보장한다. 즉 함수의 scope 밖에서 실행이 가능하다.

맨 위로 이동 ↑

2018/12

메모리란?

December 31 2018

0과 1을 저장할 수 있는 저장공간을 가진 반도체 전기가 들어오면 1, 전기가 들어오지 않으면 0이 처리 된다.

메모리 주소

December 31 2018

컴퓨터 과학에서 메모리 주소(memory address)는 메모리 위치에 대한 식별자로, 컴퓨터 프로그램이나 하드웨어 장치가 데이터를 저장하고 나중에 이를 가져오는 장소이다.

Endianness Or Byte order

December 31 2018

엔디언(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 한다.

final

December 07 2018

final 예약어 키워드로 재정의를 방지하여 컴파일 타임에 오류를 방지한다. 다른 클래스가 상속할 수 없는 클래스를 Final 클래스 라고 부른다.

맨 위로 이동 ↑

2018/11

[Git] iOS 앱 개발/배포 브랜치 관리

November 28 2018

Gitflow를 소프트웨어 개발에서 많이 사용한다. 각 브랜치 별 역할이 나눠지고, 개발자들의 협업에 매우 유연하게 개발이 가능하기 때문이다.

regenerate

November 19 2018

[동사] (지역·시설 등을) 재건하다[회생시키다]

OMW

November 19 2018

‘On my way’의 줄임말 ‘가는 중이야’

Nvm

November 19 2018

‘Never mind’의 줄임말 ‘신경 쓰지 마’

Given

November 19 2018

[형용사] (이미) 정해진

datemine

November 19 2018

[명사] 알아내다, 밝히다

BRB

November 19 2018

‘Be right back’의 줄임말 ‘기다려 곧 올게’

ASAP

November 19 2018

‘As soon as possible’의 줄임말 ‘가능한 한’, ‘급히’

A.K.A

November 19 2018

‘Also Known As’의 줄임말 ‘~로도 알려져 있는’

맨 위로 이동 ↑

2018/10

맨 위로 이동 ↑

2018/09

Provisioning Profile

September 26 2018

App Identifier, Certificate, Device 정보로 애플 인증서(Certificate)를 연결 해주는 역할을 한다.

Kodi

September 26 2018

오픈 소스 미디어 플레이어 응용 프로그램으로, 처음에는 XBMC라는 이름을 사용하여 공개되었다. 2014 년에 Kodi로 새 브랜드로 되었고, Kodi의 오픈 소스 특성으로 인해 지속적인 향상을 위해 노력하는 활발한 커뮤니티 및 개발자들이 있다.

TIL

September 24 2018

Today I Learned의 약자. 오늘 공부 내용을 정리하는 것이다. 미국은 흔하게 사용된다. 한국은 개발자 사이에서 사용되고 있다.

오늘

September 05 2018

오늘하는 일이 재밌었는가? 어제보다 오늘 만든 것이 더 좋은가?

맨 위로 이동 ↑

2018/08

nil, Nil, NULL, NSNull 대한 차이

August 23 2018

nil / NULL / Nil 은 Objective-C 에서 사용할 수 없는 번지를 가리키는 포인터의 부재 Swift에서는 모두 nil로 처리한다.

Ebitbat

August 10 2018

회사의 목표중에 손익 목표

BI

August 10 2018

MD 별 매출, 구매자수 통계 등의 룰

맨 위로 이동 ↑

2018/07

맨 위로 이동 ↑

2018/06

맨 위로 이동 ↑

2018/05

삽입 정렬

May 09 2018

정렬할때 알맞은 자리를 찾아 삽입을 하기 때문에 삽입 정렬이다. 선택 정렬 과 달리 삽입 정렬은 최선의 경우, 즉 리스트가 이미 정렬 돼 있을때, O(n) 입니다. 정렬된 리스트에 삽입할때에는 매우 효율적입니다. 그러나 평균의 및 최악의 경우에는 O(n^2) 이기 때문에 무작위로...

버블 정렬

May 07 2018

정렬 알고리즘을 직접 구현할 일은 거의 없겠지만 각각의 차이와 장단점에 대해 알아둘 필요가 있습니다. 각 알고리즘 마다 장점과 단점이 있고, 모든 경우에 대해 최선의 결과를 내는 알고리즘은 없습니다.

[Swift] copy-on-write

May 03 2018

반드시 복사되어야 하는 경우에만 새로운 복사본을 생성하도록 컴파일러가 최적화한다.

맨 위로 이동 ↑