분류 전체보기 117

[Git / iOS / Xcode] API Key 숨기기

오늘 포스팅할 내용은 API를 연동해서 데이터를 가져올 때 .gitignore 파일을 이용해서 API Key를 숨기는 방법에 대해서 알아보겠습니다. [Step 1] Storage.swift 안에 API Key 저장하기 [Step 2] API Key를 넣어야 하는 자리에 Storage().apiKey 넣기 [Step 3] terminal을 열고 프로젝트 가장 상위 폴더로 이동 후, 다음의 명령어 입력 // .gitignore 파일 생성 touch .gitignore // .gitignore 파일 열기 open .gitignore .gitignore 파일에 Storage.swift 추가 후 저장 [Step 3] 다음의 명령어 입력 git status를 입력해서 .gitignore이 생성되었는지 확인 git ..

Git 2021.11.05

[iOS / Error] Expected to decode Double but found a string/data instead 에러 해결

서버와의 통신을 통해서 데이터를 디코딩할 때 해당 에러가 발생했습니다. 찾아보니 Date 타입을 디코딩할 때 생기는 에러였습니다. 해당 에러를 해결해보겠습니다. 간단한 예시로 설명하겠습니다. struct MovieData: Codable { var movie: [Movie] } struct Movie: Codable { var typeNumber: Int var startTime: Date var type: String var name: String } var json = """ { "movie": [ { "typeNumber": 1, "startTime": "2021-11-01T14:00:00Z", "type": "해외", "name": "듄" }, { "typeNumber" : 2, "startTim..

Error 2021.11.01

[iOS / Error] Expected to decode Array<Any> but found a dictionary instead 에러 해결

API를 연동해서 데이터를 가져올 때, 데이터를 디코딩할 때 해당 에러가 발생했습니다. 찾아보니 데이터가 Dictionary 타입인데 Array 타입으로 디코딩할 때 생기는 문제였습니다. 해당 에러를 해결해보겠습니다. 간단한 예시로 설명하겠습니다. struct MovieData: Codable { var movie: [Movie] } struct Movie: Codable { var typeNumber: Int var type: String var name: String } var json = """ { "movie": [ { "typeNumber": 1, "type": "해외", "name": "듄" }, { "typeNumber" : 2, "type" : "국내", "name" : "보이스" } ] ..

Error 2021.11.01

[Git] There was a problem with the editor 'vi' 에러 해결

git commit을 진행하다가 다음과 같은 에러가 발생했습니다. 해당 문제가 종종 발생하곤 했었는데, 커밋 메시지를 모두 작성하고 메시지 작성 창을 나갈 때 보통 ':wq!'로 종료합니다. 하지만 이 이외에 허용되지 않는 키워드를 입력하고 종료하면 위와 같은 에러가 발생할 수 있습니다. ex) :q 찾아보니 vi editor 버그라고 합니다. 해당 에러를 해결해보겠습니다. [Step 1] commit 된 파일 확인하기 git commit --amend 이전에 커밋했던 내역을 확인할 수 있습니다. [Step 2] terminal에 해당 명령어 입력 git config --global core.editor /usr/bin/vim [Step 3] 커밋 메시지 수정 git commit --amend 수정 후,..

Git 2021.10.14

[백준 13335] 트럭 (Swift)

문제 : https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 1. 문제 이해하기 강을 가로지르는 하나의 차선으로 된 다리가 하나가 있고, 이 다리를 n 개의 트럭이 건너가려고 합니다. 트럭의 순서는 바꿀 수 없으며, 트럭의 무게는 서로 같지 않을 수 있습니다. 다리 칸은 w이며, 다리 1칸 당 차 1대가 올라갈 수 있고, 다리 칸까지만 차가 올라갈 수 있습니다. 다리 위에 있는 차는 1초당 1칸씩 이..

Algorithm/Swift 2021.10.03

[Git] 깃허브 Repository 이름 변경하기

Repository 이름을 변경하고 로컬 저장소에서 변경된 remote 저장소의 URL로 재설정하는 방법에 대해서 알아보겠습니다. [Step 1] 변경할 Repository에서 Setting 클릭 [Step 2] 이름을 변경하고 Rename 클릭 [Step 3] 새로운 리모트 저장소 주소로 재설정 git remote -v git remote set-url origin [URL] git remote -v ex) git remote -v git remote set-url origin https://github.com/Minny27/TodaysCafe git remote -v 이후에 로컬 저장소에서 프로젝트 이름을 변경하고 git add, commit, push하면 됩니다. ※ 참고 출처 bitcodic [G..

Git 2021.10.03

[백준 5582] 공통 부분 문자열 (Swift)

문제 : https://www.acmicpc.net/problem/5582 5582번: 공통 부분 문자열 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들 www.acmicpc.net 1. 문제 이해하기 두 문자열이 주어집니다. 문자열의 길이는 1 이상 4000 이하 2. 문제 풀이 생각하기 LCS(최장 공통 부분 수열)에 대한 문제를 풀어본 적이 있어서 문제 풀이에 대해서 어려움은 없었습니다. 만약 문자열에서 나올 수 있는 모든 substring을 만들고 비교하는 방식으로 문제를 접근한다면, 최악의 경우 길이 4000짜리 문자열 하나의 substring을 ..

Algorithm/Swift 2021.10.01

[백준 18428] 감시 피하기 (Swift)

문제 : https://www.acmicpc.net/problem/18428 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net 1. 문제 이해하기 NxN 크기의 그래프가 있습니다. 각 칸에는 선생님(T), 학생(S), 복도(X)가 존재하고 복도에 장애물을 세워서 선생님의 감시를 피하고자 합니다. 각 선생님은 자신의 위치에서 상, 하, 좌, 우 4가지 방향으로 감시를 진행하고 아무리 멀리 있더라도 장애물로 막히기 전까지 학생들을 모두 감시할 수 있습니다. 학생들은 복도의 빈칸 중에서 장애물을 설치할 위치를..

Algorithm/Swift 2021.10.01

[Git] Issue 생성 및 Pull Request 와 연동

오늘의 결과 화면입니다. 구현할 기능을 Issue로 생성하고 Pull Request를 만들어서 Issue를 참조하고 main branch에 sub branch를 merge 후, 병합된 Issue를 closed 하는 과정을 설명하겠습니다. [Step 1] 새로운 Issue 생성 Issue 버튼이 생성되지 않는다면 Settings -> Options -> Issues 체크 Issue를 구현하기 위한 Task 생성 [Step 2] Issue를 구현하기 위한 Task를 다시 Issue로 생성 각 Task를 클릭하고 Open convert to issue를 클릭 다음과 같이 Issue가 Task별로 생성됩니다. [Step 3] Swift 파일 생성 (리포지토리를 클론해서 수정했다고 가정하겠습니다.) [Step 4..

Git 2021.09.17

[iTerm2] 단축키 설정

오늘의 결과 영상입니다. iterm2에서 맥에서 사용하는 단축키의 형태로 단축키를 재설정하는 방법에 대해서 알아보겠습니다. 바꿀 단축키 줄 삭제: ⌘ + Backspace 단어 삭제: ⌥ + Backspace 커서 맨 앞 이동: ⌘ + ← 커서 맨 뒤 이동: ⌘ + → 커서 단어 왼쪽 이동: ⌥ + ← 커서 단어 오른쪽 이동: ⌥ + → [Step 1] iTerm2 -> Perference... -> Keys -> '+' 클릭 [Step 2] 단축키 추가 위의 영상과 동일한 방식으로 단축키 추가 ㅁ 줄 삭제: ⌘ + Backspace Action: Send Hex Code 0x15 ㅁ 단어 삭제: ⌥ + Backspace Action: Send Hex Code 0x17 ㅁ 커서 맨 앞 이동: ⌘ + ← ..

iTerm2 2021.09.16