NPM 터미널에서 설치 및 실행
터미널에서 npm (Node Package Manager)을 실행하려면 먼저 Node.js가 설치되어 있어야 합니다. npm은 Node.js와 함께 제공되므로, Node.js를 설치하면 자동으로 npm도 설치됩니다. 다음 단계를 따라 npm을 실행할 수 있습니다.
터미널에서 npm (Node Package Manager)을 실행하려면 먼저 Node.js가 설치되어 있어야 합니다. npm은 Node.js와 함께 제공되므로, Node.js를 설치하면 자동으로 npm도 설치됩니다. 다음 단계를 따라 npm을 실행할 수 있습니다.
오늘은 Swift로 작성된 GoogleServerTimeService 클래스를 작성했다. 이 코드는 Google 서버의 현재 시간을 가져오는 기능을 간단하게 구현했다.
피보나치 수열은 수학에서 매우 유명하고 중요한 수열 중 하나.
Stack frame 어떤 함수든 호출되는 순간 스택에 그 함수를 위한 영역(스택 프레임 stack frame)이 할당된다. 함수가 호출될 때마다 스택에 값들이 쌓이고, 계산이 끝나면 다시 하나씩 빼면서 출력값이 가장 밑에 있던 리턴 공간으로 돌아오는 것이다.
소프트웨어 개발 생명주기(Software Development Life Cycle, SDLC)는 소프트웨어를 개발하기 위한 일련의 단계이며 개발 프로세스를 설명하는 개념이다.
문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다.
기술자 선서 나는 내 능력과 판단력을 다하여 이 서약을 이행할 것을 맹세한다.
File not found: /Applications/Xcode.app/Contents/Developer/Toolchains /XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a
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...
iOS 16 버전부터 SwiftUI 전용 ImageRenderer 를 통해 뷰를 이미지로 캡쳐 할 수 있다. 일반적인 사용법은 아래와 같다.
video 를 연속으로 재생하는 플레이어를 간단하게 만들어 봤다.
후기 RxDataSource 나 기존 UICollectionViewLayout 으로 구현 불가능한 세로/가로 스크롤형 뷰를 생성 가능 이전 버전에 대한 대응 노하우가 쌓인다면 사용해볼만 함 지원하는 OS 버전이 낮을 수록 안정성이 떨어짐 최소버전을 ...
GitHub는 다양한 Custom Domain 설정 방법이 있다. A CNAME
보스 사운드바 900 무한 update error
Given the head of a singly linked list, reverse the list, and return the reversed list.
Given the root of a binary tree, return the preorder traversal of its nodes’ values.
UIStoryBoard를 사용한다면 UITabBarItem을 CustomClass로 적용하기 매우 쉽다. 코드 베이스라면 UITabBarItem이 UITabBarController에서 자체적으로 가지고 있기 때문에 CustomClass를 적용하기가 애매해진다.
Stack Memory가 Heap Memory 보다 속도가 더 빠른 이유에 대해 생각해봤다. CPU에서 접근하는 메모리는 CPU 내의 메모리다. DRAM은 CPU에서 주소를 복사해 오고 그곳을 접근한다.
Given the head of a linked list, remove the n$^t$$^h$ node from the end of the list and return its head.
.moduleMap은 Objective-C API 와 Swift API 의 중간 다리 역할을 한다. iOS 개발은 Objective-C, Swift 언어로 개발이 가능하다.
시간 복잡도 평균 : O(nlog(n)) 최악 : O(n^2)
StoryBoard 없는 UIKit UIKit 기반 code base 프로젝트를 생성하는 방법이다. 개발을 하다 보면 UIKit 기반 프로젝트가 필요할 때가 있다. 이 글은 Xcode 14.0.1을 기반으로 합니다.
애플리케이션의 크래시는 운영에 매우 중요한 요소이다. 현재 운영 중인 프로젝트는 99.98% ~ 99.99% 의 크래시로부터 안전성을 유지하고 있다. 주로 Firebase Crashlytics와, Xcode Organizer의 Crashs로 report를 받고 있으며, 예상치 못한...
AVPlayer는 Application의 Life Cycle에 영향을 받는다. UI는 Background에 진입하면 동작을 멈추고, UI가 아닌 기능은 Background에서 동작한다.
RIBs 아키텍처는 Composition을 활용하여 비지니스 로직을 트리구조를 사용하여 수직적인 계층으로 쪼개는 것에 초점이 맞추어저 있다. 작은 객체로 쪼갠 후 요소들이 일관성 있는 통신 방법을 통해 아키텍처에 익숙하지 않은 팀원에게도 프로젝트를 익숙하도록 개선할 수 있다.
윤년 규칙 윤년 4로 나누어 떨어지는 해 1992, 1996, 2004, 2008, 2012, 2016… 4, 100, 400으로 나누어 떨어지는 해 1600년, 2000, 2400…
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...
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:
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.
오늘날 Redux기반 MVI 디자인패턴은 매우 널리 쓰인다.
IT 소프트웨어 산업은 계속 성장하고 있다. 아마도 많은 서비스들은 점점 더 커질 것을 예상하고 기대할 것이다. Backend에서는 마이크로서비스 아키텍처로 대규모 애플리케이션을 작은 단위로 분리해 독립적인 구성요소로 구분해 개발하는 방법이 있다.
애자일로 가는 또 다른 길, 칸반
ssh 원격 컴퓨터에 접속하기 위한 protocol id, password 가 필요없으며 public key를 외부에 두어 통신
Community update, Swift on Server, Swift packages…
터미널에서 xcrun 명령으로 시뮬레이터에서 동적 링크를 열 수 있다.
28세 - 첫 면접 합격 대단한 경험이었다.
Thanks Toss!
UIActivityViewController는 OS 공유화면으로 매우 널리 쓰인다. String, Image 등 손쉽게 다른 앱에 컨텐츠를 공유할 수 있다.
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.
You are given an array prices where prices[i] is the price of a given stock on the i$^{th}$ day.
UITest에서 수행한 결과에 대한 Session 데이터를 resultBundle 에 저장 번들에는 build log, code coverage가 포함 reports, XML property list, test result, screenshots, attachments c...
2022년 6월 구매 / 개인 - 1년 129000원
TDD Test Driven Development 테스트코드를 먼저 짜고 구현을 나중에 하는 개발 방식 Extreme Programming의 실천법 중 하나 Extrame Programming 좋은것은 먼저 해보자라는 극단적인 프로그래밍 방식 ...
result bundle을 팀 구성원과 공유할 수 있으며, 팀 구성원은 관련 프로젝트 없이도 독립 실행형 Report navigator에서 결과를 열 수 있습니다.
tuist init
회사에서 신규 장비를 받았다. ‘역시나’ Xcode를 신규 세팅하면 예기치 못한 오류를 만나게 되는데, 바로 Codesign wants to access key "access" in your keychain
시니어 개발자는 어떤 역량과 역할을 해야 하는 것일까? 내가 일하고 있는 모습은 어떤가? 시니어 개발자의 역할은 무엇인가? 한번도 정리해보지 못한 바 “시니어란?”물음에 대답하기 어려웠다.
32Bit vs 64Bit Application의 차이점과 어느 쪽이 빠른지에 대한 고찰 Memory 주소와 Register 의 크기의 차이가 나타나게 된다.
오늘날 OSI Layer 7 Model 은 경쟁에 밀려 TCP/IP모델을 주로 사용하고 있으며 계층은 비슷하다.
서비스형(as-a-Service)이라는 용어는 제3사에서 클라우드 컴퓨팅 서비스를 제공한다는 의미
애플의 아이폰, 구글의 유튜브 등 많은 실리콘벨리 플랫폼 기업들은 이중 인증을 권고하고 있다. 플랫폼에서 지원한다면 필자도 이중 인증을 서서히 늘려가고 있다. 왜 이중 인증을 해야 할까? 다가올 양자 컴퓨터의 기술이 발전함에 따라, 기존의 ID/PW 방식 점점 안전에서 멀어지고 있...
어디서쓰나 거의 또는 전혀 변경도 없이 똑같이 쓰는데 여기저기서 필요로 하여 재사용되는 코드 섹션 작은 기능에도 많은 코드를 양산하는 문제점
Deployment Target RxSwift iOS 8.0+ Combine iOS 13.0+ Platforms supported RxSwift iOS, macOS, tvOS,...
magnitude, abs는 절대값으로 리턴하는 API
브랜치를 Push 했을 때 발생하는 에러이다. 해결 방법은 매우 간단하다. git pull
채널 4달 운영 회고
클라이언트 Browser App
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
필자의 블로그는 수익이 전혀 없다. 블로그에 광고를 추가했다. 이유는 간단하다. Google AdSense를 사용해보고 싶었고, jekyll 블로그를 통한 광고 개재 가능 여부 등을 알고 싶었다. 1개의 게시물에 광고를 시험적으로 추가했다. 역시 클릭수는 0이다.😁 무분별한 광...
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...
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.
Implement the myAtoi(string s) function, which converts a string to a 32-bit signed integer (similar to C/C++’s atoi function).
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...
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...
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 ...
Palindromes are strings that read the same from the left or right, for example madam or 0110.
코드 리뷰는 스타일 논의에 많은 시간을 할애하는 경우가 많다. 정말 중요한 코드의 기능, 프로젝트를 더 장기적으로 더 좋은 프로젝트를 위해 코드리뷰를 하고 있으며 코드리뷰를 어디에 더 집중해야 하는가?를 정리한 코드리뷰 피라미드를 보게 되어 이를 소개한다.
Swift 순열은 직접 구현해야 한다. 알고리즘을 풀다 보면 자주 접하게 되는데 구현하려고 하면 매번 기억이 안 나는 마법에 빠져있다.
Implement strStr.
채널 3달 운영 회고
Xcode빌드 시 디바이스로 연결해서 빌드 했을 때 간헐적으로 발생한다. 정말 1년에 1번 정도 발생하는거 같은데, 발생률이 드물다 보니 매번 까먹어 메모한다.
Apple Silicon 에서 MacOS App 빌드 시 간헐적으로 발생하는 오류다. 지금 실행 중인 앱과, 빌드한 앱에서 충돌이 발생하는 것이 원인이다.
추첨방식으로 변경된 PS5 정가 구매, 당첨 잘되는 방법에 대한 고찰
iOS 10 부터 지원하는 videoRect property 를 사용해서 play 중인 영상의 frame을 가져올 수 있다.
아이튠즈가 사라졌는데 어떻게 백업하지?
채널 2달 운영 회고
Fastlane 은 iOS개발을 도와주는 좋은 도구이다. 배포 자동화를 도와주는 툴이며, 많은 iOS개발자들이 사용할 수 있다. 대표적인 장점은 수동으로 배포를 하다 보면 실수를 할 수 있는데, 이를 방지할 수 있는 장점이 있다.
컴퓨터는 왜 0으로 나누기가 안될까? 0 ÷ 10 // NaN(Not a number) 5 ÷ 0 // NaN(Not a number)
.gitignore란? GitHub에 체크인하고 싶지 않은 파일을 무시하도록 Git을 구성
Version Control System; VCS 파일의 변화를 시간에 따라 기록하여 과거 특정 시점의 버전으로 불러올 수 있는 시스템 개별 파일 혹은 프로젝트 전체를 이전 상태로 되돌리기 시간에 따른 변경 사항을 검토 문제가 되는 부분을 누가 마지막으로 수정하였는...
역사 리눅스 커널은 패치 파일과 단순 압축 파일로 관리 2002년 BitKeeper라는 상용 DVCS를 사용 2005년에 BitKeeper의 무료 사용이 제고됨 리눅스 개발 커뮤니티가 자체 도구를 만드는 계기 목표 빠른 속도 단순한...
Fork프로그램은 Git GUI 프로그램이며, 평가판과 구매판과 기능의 차이는 없다.
3분만 참자. 치명적인 위험, 담배와 꽁초
Naming Conventions For iOS Development
오히려 불편해.. 빠른 메모 끄는 방법
구글 번역기로 돌린 번역입니다. 잘못된 오역이 있음을 주의하여 주세요.👀
채널 1달 운영 회고
계정을 잠갔다는 이상한 메일
WKWebView를 사용하다보면 종종 아래와 같은 크래시를 발견할 수 있다. Fatal Exception: NSInternalInconsistencyException Completion handler passed to -[UIViewController webView:runJa...
초보 유튜버의 기록
유연하고 시각적으로 항목을 결합하는 Layout이며 iOS 13+ 이상에서 사용할 수 있다. Group이라는 중간 계층이 추가되어 horizontal scroll, group items 등 다양한 화면을 만들 수 있다.
TableView(또는 CollectionView)를 그리기 위한 데이터를 관리하고 UI를 업데이트 하는 역할 Data Source와 달리 데이터가 달라진 부분을 추적하여 자연스럽게 UI를 업데이트 UI Data를 관리하고, 변경된 데이터만 UI를 자연스럽게 업데이트 ...
Device - 설정 - 날짜 및 시간에 설정에 따라 Date를 보여줘야하는 요구사항을 받았다. DateFormatter를 사용하면 이를 해결 가능하다.
자동결제 환불 가능할까?
요구사항 Facebook 로그인 Google 로그인 Apple 로그인 Kakao 로그인
스키마를 설계 후 기존 테이블을 다른 스키마로 옮기고 싶었다. 방법은 TABLE을 renamed 하는 형태로 ALTER TABLE 명령어를 사용하여 스키마를 변경하면 된다.
InnoDB에 대하여 (MyISAM과의 차이점)
TABLE 의 PK에 Auto Increment 속성을 명령어로 주는 방법을 공부했다.
Error Code: 1366. Incorrect string value: 오류
MySQL Workbench 사용 시 UPDATE, DELETE 등 구문을 사용할 때 아래와 같은 에러 메세지를 만나는 경우가 발생한다.
변경하고자 하는 스키마의 모든 테이블의 컬럼을 조회하고 String 을 조합하여 ALTER TABLE 명령어를 만들어 변경한다.
보호된 파일(키 체인, UserDefaults 등)을 엑세스 가능한지 확인하는 변수이다.
How we debug with Charle
How we debug with Charle
왜 GitHub Actions을 써야하는 이유는 워크플로우를 자동화해준다.
코비 브라이언트는 롤모델인 마이클조던을 엄청 따라했다. 끊임없는 노력 끝에 대단한 커리어와 엄청난 업적을 이루었다.
절차 지향적 프로그래밍은 디버깅, 데이터의 무결성에 단점을 가지고 있다. 또한 코드가 if else로 분기되며 많은 코드들이 조건문으로 쌓이게 됨으로 시간이 지날수록 수정하기 어렵게 되고 유지보수에 불리하게 된다. SwiftUI가 암시하는 것 SwiftUI가 제시하는 아키텍...
집 안에 찾아온 미래. 라는데 정말?!
객체 지향의 5가지 설계 원칙이 있다. 아주 오래전부터 내려오던 디자인 패턴이다. 설계는 ‘객체’의 기능의 관계이다.
백기선 님의 열린 결말 영상, 열린 결말이라 더 생각하게 만드는 좋은 영상이다. 이 영상은 좋은 의미로 ‘미쳤다!’
as의 종류를 간단히 정리해보자.
구글 번역기로 돌린 번역입니다. 잘못된 오역이 있음을 주의하여 주세요.👀
var 또는 function declaration 선언들이 제일 위로 올라가는 것 코드가 나타나는 순서대로 실행이 된다.
Key, Value 로 데이터를 저장하는 자료구조 중 하나 F(key)->hashCode->Index->Value
Swift의 장점은 선언적 구분과 데이터 주도 기반에서 비롯된다. SwiftUI 는 UIKit을 구현하는 방법과 완전히 다른 선언적 구문이 도입 되었다.
객체 지향 프로그래밍에서 상속에 대한 구성은 클래스가 기본 또는 부모 클래스에서 상속하는 것이 아니라 구성에 의해 다형성 동작 및 코드 재사용을 달성해야한다는 원칙이다. 이것은 영향력있는 책 디자인 패턴과 같이 OOP의 원칙에 따라 자주 언급된다.
객체 지향적 모델링은 개발자에게 있어서 매우 중요한 기본 지식이지만 실무에서 거의 배울 기회가 없다. 사소해 보일 수 있지만 이름을 짓는 관행의 일관성을 확보하는 것은 모델링에 있어서 매우 중요한 단계이다.
카카오스토리 팀의 코드 리뷰 도입 사례 – 코드 리뷰, 어디까지 해봤니?
Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰와 Gerrit
앞선 출력 결과를 이용해 동작하게 되므로, 데이터가 없는 시작 상태에서는 제대로 동작하지 않는 시스템
Design a data structure that follows the constraints of a Least Recently Used (LRU) cache.
mutable Collection 으로 key-value쌍을 임시로 저장하는데 사용된다.
어느덧 담배를 태운지 17년이 되었다. 중간 금연 시도가 있었었나 언제나 실패했다. 이번에는 어떨까? 성공하길 바라며 글을 써 본다.
“며칠 전 과거의 결정 중 후회하는 것이 있는가?”란 뜬금없는 질문이 훅 들어왔다. 순간 없다고 대답 했으나 돌이켜 생각해보니 가장 후회하는 것은 담배를 시작한 일이었다.
repo 설치 중 cancel 이 되거나 오류가 발생하면 이후 pod install 을 하게 되면 아래 와 같은 오류가 발생하게 된다.
CPU는 트랜지스터라는 반도체로 만들어져있다.
구글 번역기로 돌린 번역입니다. 잘못된 오역이 있음을 주의하여 주세요.👀
드디어!! 출시 4년 만에 펌웨어 업데이트를 통해 블루투스 오디오를 공식적으로 지원한다.
Mac에서 Apple TV 4K에 Xcode로 Kodi 설치하는 방법을 알아봅니다.
USB 포트가 없는 Apple TV 4K는 어떻게 빌드를 할까? Device를 USB로 연결하지 않고 빌드하는 방법을 공부했다.
현재 한국에 미 출시 상태, 그러나 구매 가치가 있는지 후기를 적어봅니다.
Xcode Extension 을 만드는 방법을 스크랩 해본다.
오픈소스 프로젝트의 Readme는 뱃지가 있는 경우가 대부분이다. 이러한 뱃지를 통해 이 Repo가 어떤 속성인지를 쉽게 알수 있도록 유저에게 제공 한다. 그럼 뱃지를 어떻게 만들고 게시 할 수 있는지 알아보자. 뱃지를 생성하고 링크하는 방법은 여러가지가 있다. 필자의 경우 s...
블라인드 알림 중 유용한 제목의 알림왔다. 내용을 보니 재미있고 좋은 글이라 포스팅 해본다. 프론트엔드에서 쓰는 용어는 대부분 들어봤으나 게임 업계는 아니라 처음 보는 단어도 있었다.
Apple / Swift Type name 변경
Samchon님 인터뷰 너무 감명 깊어 일단 스크랩!
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, …)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, ...
기본 readLine()의 속도가 느려 백준에서 시간초과시 해결 가능하다.
Xcode에서 새 파일을 생성하면 상단 헤더가 자동으로 생성되는데, 네이밍을 변경하는 방법을 알아보자. // Created by {my name here} on 8/4/11. // Copyright 2011 __{my company name here}__. All rights ...
최소화되고 모듈화된 소프트웨어 개발 방식을 위한 문화적 규범이자 철학적 접근 방식.
사용자 인터페이스 개발을 위해 페이스북에서 만들고 공개한 오픈소스 자바스크립트 라이브러리
프로그램을 작성할 때 각 모듈이 작동하는 논리를 표현하기 위한 언어이다. 특정 프로그래밍 언어의 문법이 아닌 알고리즘 그 자체이 집중할 수 있기 때문에 코딩 면접에서 많이 사용된다.
취미 활동으로 즐기는 아마추어 무선 통신
명령줄 또는 명령어 인터페이스는 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 말한다.
객체 지향 프로그래밍의 핵심인 클래스와 그 서브클래스 간의 계층 구조를 도식으로 나타낸 것.
텍스트와 특수문자를 조합해서 사진과 그림을 표현한 것.
Could not find module for target ‘x86_64-apple-ios-simulator’; found: arm64, armv7-apple-ios, arm64-apple-ios, arm, armv7
iOS 기기는 시간이 변함에 따라 다양한 Architecture가 있다. 현재까지 나온 armv64, armv7, armv6, i386, x86_64 를 기기별로 정리해본다.
2014년부터 같은 회사에서 일해오던 개발자들이 있다. 지금은 모두 이직하여 다른 회사에 근무 중이다. 카카오톡 단톡방으로 안부를 주고받고 있는데 부동산, 주식 이야기 등 다양하다.
블로그에 이미지를 업로드하는 방법은 여러가지가 있다. 나의 경우 추후 Github 용량을 고려하여 Google Drive 를 쓰기로 했다.
Not running, Inactive, Active, Background, Suspended
수학과 컴퓨터 과학에서 커링(currying)이란 다중 인수 (혹은 여러 인수의 튜플)을 갖는 함수를 단일 인수를 갖는 함수들의 함수열로 바꾸는 것을 말한다. 모지즈 쇤핑클에 의해 도입되었고, 이후 해스켈 커리에 의해 발전하였다.
@autoclosure속성을 사용하면 클로저에 자동으로 래핑되는 인수를 정의할 수 있다. 일반 구문을 인자값으로 넣어도 컴파일러가 알아서 클로저로 만들어서 사용한다.
loadView() 컨트롤러가 관리하는 뷰를 로드한다. 뷰컨트롤러가 생성되고 순차적으로 완성되었을때만 호출된다.
Write a function to find the longest common prefix string amongst an array of strings.
Javascript, kotlin, google-promises 등 그 동안 다른 언어에서 제공되던 기능이 Swift 5.5 에 강력하게 들어왔다. 비동기 프로그래밍은 그동안 delegate 패턴이나, closur 를 통해 해왔다면 앞으로는 async, await 를 통한 동기 프...
Reference type 이다. 스레드의 모델(MVVM 처럼 뷰-뷰모델을 만드는 것과 유사하다)
Swift 5.5 의 aync/await 에 맞춰 구글에선 어쩔수 없이(?) 네이밍을 변경, Style 적인 수정이다.
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.)
Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.
Color Asset <span style="color:#db7093">Sand Red</span> Sand Red <span style="color:#2deb9e">Sand Green</span> Sand Green <span ...
프로그래머스에서 풀었던 코드들을 블로그에 정리하고 싶었다. 그래서 코드를 올려도 되는지 검색을 해보았다. 결론은 개인 블로그나 유튜브에서 비상업적, 비영리적 용도 로 게시가 가능하다고 한다. 다만 기업 코딩 테스트에 나왔던 문제는 게시를 금한다고 되어있다. (연습문제에 있는 카카오...
6살이던 아이는 레고에 관심이 많았다. 처음엔 설명서대로 만드는 것으로 그쳤지만, 만족하지 않았다. 기존제품을 개조해보고, 합쳐보고, 창작해보는 것이 재미있었다.
30세 - 퇴사
우아한 현제들 김범준 대표님의 영상을 보고 좋은 개발자에 대해 생각해보았다. 좋은 글이 있어 요약해보았다.
코드를 만 줄 짰다고 좋은 프로그래머는 아니다. 천 줄이든 만 줄이든 중요한 것은 당신이 작성한 코드로 만들어낸 비즈니스 가치가 뭐야? 그 비즈니스 가치로 나의 가치가 증명되는 것이고 인정을 받는 것이지 코딩 자체로 인정을 받는 것은 아니거든요.
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
HTTP HTTP Live Streaming(HLS) protocol을 통해 스트리밍 미디어를 장치로 안전하게 전달합니다. 콘텐츠 제공업체, 인코딩 공급업체 및 전송 네트워크는 FairPlay 스트리밍(FPS) 기술을 사용하여 콘텐츠를 암호화하고 키를 안전하게 교환하며 iOS, ...
1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.
Apple / Swift 버전 업그레이드에 따른 CHANGELOG.md Doc 파일 내용 수정
길이가 n이고, “수박수박수박수….”와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 “수박수박”을 리턴하고 3이라면 “수박수”를 리턴하면 됩니다.
점점 머리가 나빠진다. 나의 경우 글을 작성하고 다시 보고 하면서 반복적으로 봐야 공부가 된다. 메모하는 습관을 다시 기르기 위해 2018년 ice bear 테마 Github 블로그를 구축했었으나 테마가 너무 좀.. 그래서.. 새로운 테마로 새롭게 시작하고 싶었다. 그래서 기존 R...
열심히 만든 블로그가 검색 되면 꾸준한 유지에 도움이 될 것이다. 시작 단계라 유입량이 적겠지만 그래도 검색되는 것은 몇 가지 설정만으로 가능하니 시도해보자.
소프트웨어에서 스택 포인터가 스택의 경계**를 넘어설 때 일어난다. 호출 스택은 제한된 양의 주소 공간을 이루며 대개 프로그램 시작 시 결정된다.
Valid Parentheses
shell 의 종류 중 하나. login 여부와 상관없이 항상 실행 됨
Jekyll은 개인, 프로젝트 또는 조직 사이트를위한 간단한 블로그 인식 정적 사이트 생성기다. GitHub의 공동 설립자 인 Tom Preston-Werner가 루비로 작성했으며 오픈 소스 MIT 라이센스에 따라 배포된다.
새로운 터미널을 열 때마다 정보를 받고 싶을 때 필요
Set은 정의된 순서 없이 collection에 동일한 Type의 고유한 값을 저장한다. 항목의 순서가 중요하지 않거나 항목이 한 번만 표시되도록 해야 하는 경우 array 대신 Set을 사용할 수 있다.
Collections 의 함수 사용 시 성능 고려하기
Value type 이다. @frozen public struct Dictionary<Key, Value> where Key : Hashable
Value type 이다. @frozen public struct Array<Element>
Swift Package Manager(SPM)는 프로젝트의 의존성 관리 및 패키지 빌드를 자동화하는 공식 Swift 패키지 매니저이다. SPM은 프로젝트에서 사용하는 모든 의존성을 정의하고, 패키지의 종속성 관리를 담당한다.
뷰의 크기가 변경될 때마다 이에 대응하여 하위 뷰들의 크기&위치 변경한다. 이 메소드는 setNeedsLayout과 같이 수동으로 layoutSubviews를 예약하는 행위이지만 해당 예약을 바로 실행시킨다.
업데이트 주기에 해당 View와 모든 하위 View를 레이아웃 및 draw 하도록 시스템에 알려주는 역할을 한다.
next drawing cycle 동안 View를 업데이트해야 함을 시스템에 알린다. setNeedsDisplay()메소드 또는 setNeedsDisplay (_ :)를 사용하여 View rendering 을 시스템에 요청한다.
뷰의 크기가 변경될 때마다 이에 대응하여 하위 뷰들의 크기, 위치 변경한다. auto layout을 사용하면 각 뷰의 autoresizingMask프로퍼티를 설정하여 상위 뷰의 크기가 변경되었을 때 어떻게 대응할 지 규칙을 정할 수 있다. 뷰의 크기에 변경이 발생하면 우선...
SuperView 기준
전달된 CGRect 의 영역에 대해 뷰를 다시 그릴때 호출된다.
자신 기준
UIView클래스는 컨텐츠를 표시할 때, on-demand 드로잉 모델을 사용한다. View를 업데이트하려면 다음 드로잉사이클 때까지 기다렸다가 한꺼번에 업데이트 된다. 비동기 요청을 기록하고 즉시 리턴합니다. 즉각적인 업데이트를 강제하지는 않지만, 다음 업데이트 주기를 기다...
Why? 다음으로 짚어볼 질문이 있는데요. 왜 우리는 소프트웨어 아키텍처에 관심을 기울여야 할까요? 왜 제가 여기서 10분 동안 여기서 아키텍처에 대해 이야기할 만큼 중요한 걸까요?
“아키텍트”라는 단어는 제가 늘 어색하고도 이상하게 느끼는 단어입니다.
2014~2020 개발 언어 순위
키워드로 태그를 지정하고 태그별로 그룹으로 요청할 수 있는 이미지 및 사운드와 같은 리소스입니다. App Store는 Apple 서버의 리소스를 호스팅하고 다운로드를 관리합니다. 또한 App Store는 on-demand resource를 분할하여 앱 변형을 더욱 최적화합니다.
Bitcode 는 컴파일된 프로그램의 중간 표현입니다. Bitcode가 포함된 App Store Connect에 업로드하는 앱은 App Store에서 컴파일 및 연결됩니다. - Bitcode를 포함하면 Apple이 앱의 새 버전을 App Store에 제출할 필요 없이...
슬라이싱 은 다양한 대상 장치 및 운영 체제 버전에 대한 앱 번들의 변형을 만들고 제공하는 프로세스입니다. 변형은 대상 장치 및 운영 체제 버전에 필요한 경우에만 실행 아키텍처와 리소스가 포함되어 있습니다. 앱의 전체 버전을 계속 개발하고 App Store Connect에 업로...
App Store 및 운영 체제는 최소한의 설치 공간으로 사용자의 특정 장치 및 운영 체제 버전의 기능에 맞게 앱 제공을 조정하여 iOS, tvOS 및 watchOS 앱 설치를 최적화합니다. thinning 이라고 하는 이 최적화를 통해 대부분의 기기 기능을 사용하고 최소 디스크 ...
리스트, 트리, 그래프 등등의 모든 데이터 구조는 리커시브 하게 정의되며, 그래프도 정의에 리스트가 사용된다. 이렇게 정의된 객체를 효율적으로 다루기 위해선 어떤 알고리즘이 효율적일까?
분할 정복 알고리즘(Divide and conquer algorithm)은 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법이나 알고리즘이다.
그래프를 탐색하는 방법
Git 은 기본적으로 파일/폴더 명에 대한 대소문자 인식을 구분하지 않는다. 이를 수정했을때 인식되지 않아 오류가 발생할 수 있는데 이것을 구분하기 위한 설정이 필요하다.
GitHub 의 커밋 잔디를 말한다. Heatmap js 용 오픈소스를 보다가 남긴다.
GitHub Korea 2019
변수나 리터럴, 표현식 등 조합으로 새로운 문자열을 구성하는 것을 String Interpolation 이라 한다. 문자열 형식 지정 방법 및 함수에서 지원하는 형식 지정자를 요약한다.
Perform string transliteration.
문자열 음역(Transliteration) 변환을 제공한다. ```swift public struct StringTransform : Hashable, Equatable, RawRepresentable { public init(_ rawValue: String) public...
문자열 처리에 여러가지 옵션을 지정하여 처리할 수 있다. ```swift extension NSString { public struct CompareOptions : OptionSet { public init(rawValue: UInt) public static ...
ComparisonResult 를 사용하여 문자열을 비교한다.
ascii 를 기준으로 정렬 되는 방식을 나타낸다.
Coupang Android Architecture — Part 1
문제해결의 한 방법 문제의 원인이라고 생각할 수 있는 가능성을 배제하는 방법 무엇이 달라졌는지에 주목
리스트의 다음 원소에 대한 연결고리(link, 포인터 또는 레퍼런스) 가 들어있다. 마지막 원소는 꼬리(tail) 라고 부르며, 연결고리는 비워두거나 nil 로 지정한다. 각각의 원소들은 자기 자신 다음에 어떤 원소인지만을 기억하고 있다. Tree 구조의 근간이 되는 자료구조이며,...
LIFO 특성을 가지는 자료구조(Data Structure)를 일컫는다. 스택은 일종의 바닥이 막힌 상자라고 보면 된다. 나중에 넣은 물건이 위에 있으므로 먼저 꺼낼 수밖에 없다.
value type 을 reference type 으로 변경하는 것을 Boxing, reference type 을 value type 으로 변경하는 것을 Unboxing 이라 한다.
Int, Float, Bool, String 과 같은 기본 자료형과 struct, enum 은 Value Type 분류 한다.
Class, Closer 는 Reference Type 으로 분류한다.
컴퓨터 아키텍처에서 레지스터는 프로그램과 작업을 효율적으로 실행하는데 사용되는 매우 빠른 컴퓨터 메모리다.
데이터를 변경할 수 있음을 나타낸다. var a = 0 let s = NSMutableString("")
@escaping 해당 함수의 인자로 클로저가 전달되지만, 함수가 종료되어도 실행 되는 것을 보장한다. 즉 함수의 scope 밖에서 실행이 가능하다.
0과 1을 저장할 수 있는 저장공간을 가진 반도체 전기가 들어오면 1, 전기가 들어오지 않으면 0이 처리 된다.
메모리의 저장 단위는 다양하게 세분화 되어 있다.
프로그램을 실행하면 OS는 실행에 필요한 메모리 공간을 할당한다. 할당되는 공간은 Stack, Heap, Data, Code 영역으로 구분된다.
컴퓨터 과학에서 메모리 주소(memory address)는 메모리 위치에 대한 식별자로, 컴퓨터 프로그램이나 하드웨어 장치가 데이터를 저장하고 나중에 이를 가져오는 장소이다.
엔디언(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 한다.
final 예약어 키워드로 재정의를 방지하여 컴파일 타임에 오류를 방지한다. 다른 클래스가 상속할 수 없는 클래스를 Final 클래스 라고 부른다.
Gitflow를 소프트웨어 개발에서 많이 사용한다. 각 브랜치 별 역할이 나눠지고, 개발자들의 협업에 매우 유연하게 개발이 가능하기 때문이다.
[동사] (지역·시설 등을) 재건하다[회생시키다]
[명사] 괄호
‘On my way’의 줄임말 ‘가는 중이야’
‘Never mind’의 줄임말 ‘신경 쓰지 마’
[형용사] (이미) 정해진
[명사] 알아내다, 밝히다
‘Be right back’의 줄임말 ‘기다려 곧 올게’
‘As soon as possible’의 줄임말 ‘가능한 한’, ‘급히’
‘Also Known As’의 줄임말 ‘~로도 알려져 있는’
commit한 이전 코드 취소하기 특정 시점으로 돌아가는 이력이 남게 됨 이미 push 했다면, revert 로 돌려야 함
commit한 이전 코드 취소하기, 특정 시점으로 돌아가는 이력자체도 남지 않고 이동
커밋들을 합쳐 새로운 커밋을 만든다.
보통 누군가가 작성한 소스코드에 예상치 못한 오류나 개선돼야 할 방향이 없는지 코드 작성에 참여하지 않는 개발자가 살펴봐준다. 하지만 코드 리뷰를 시작하는 것은 쉽지 않다.
App Identifier, Certificate, Device 정보로 애플 인증서(Certificate)를 연결 해주는 역할을 한다.
오픈 소스 미디어 플레이어 응용 프로그램으로, 처음에는 XBMC라는 이름을 사용하여 공개되었다. 2014 년에 Kodi로 새 브랜드로 되었고, Kodi의 오픈 소스 특성으로 인해 지속적인 향상을 위해 노력하는 활발한 커뮤니티 및 개발자들이 있다.
Today I Learned의 약자. 오늘 공부 내용을 정리하는 것이다. 미국은 흔하게 사용된다. 한국은 개발자 사이에서 사용되고 있다.
오늘하는 일이 재밌었는가? 어제보다 오늘 만든 것이 더 좋은가?
nil / NULL / Nil 은 Objective-C 에서 사용할 수 없는 번지를 가리키는 포인터의 부재 Swift에서는 모두 nil로 처리한다.
회사의 목표중에 손익 목표
MD 별 매출, 구매자수 통계 등의 룰
원격저장소 코드 로컬에 가져오기 코드 git fetch origin <branchname>
브랜치 삭제하기
브랜치 생성
Git의 기초 커밋 히스토리 조회하기
다른 브랜치의 일부 커밋만 반영하고 싶을 때
결론 : Temp 를 쓰자.
1 부터 n 까지의 합
정렬할때 알맞은 자리를 찾아 삽입을 하기 때문에 삽입 정렬이다. 선택 정렬 과 달리 삽입 정렬은 최선의 경우, 즉 리스트가 이미 정렬 돼 있을때, O(n) 입니다. 정렬된 리스트에 삽입할때에는 매우 효율적입니다. 그러나 평균의 및 최악의 경우에는 O(n^2) 이기 때문에 무작위로...
i 비교 횟수 1 n-1 2 n-2 3 n-3
정렬 알고리즘을 직접 구현할 일은 거의 없겠지만 각각의 차이와 장단점에 대해 알아둘 필요가 있습니다. 각 알고리즘 마다 장점과 단점이 있고, 모든 경우에 대해 최선의 결과를 내는 알고리즘은 없습니다.
반드시 복사되어야 하는 경우에만 새로운 복사본을 생성하도록 컴파일러가 최적화한다.