본문 바로가기

전체 글34

[git] branch conflict 해결하기 여러 사람과 작업하는 도중, 다른 사람이 내용을 바꾼 코드를 로컬에서 새로 업데이트하지 않고 pull request를 하면 conflict가 발생합니다. 위 사진의 경우 원격 저장소의 README.md 파일이 이미 내용이 바뀐 상태에서 pull request를 할 때 conflict가 발생한 상황입니다. 해결 방안은 다음과 같습니다. cd 파일이 있는 폴더 먼저 README.md 파일이 있는 폴더로 이동합니다. git checkout main 현재 develop 브랜치에 있기 때문에 main으로 이동합니다. git pull origin main 원격 저장소에 있는 바뀐 파일들을 다시 로컬에서도 업데이트를 해줘야 합니다. git checkout develop 다시 develop 브랜치로 이동합니다. vim.. 2022. 1. 11.
[iOS] 카카오 로그인 에러 해결 (KOE009 - invalid android_key_hash or iOS_bundle_id or web_site_url) 카카오 로그인을 구현하고, 시뮬레이터에서 로그인을 하면 다음과 같은 에러가 나타납니다. 에러 내용을 확인해보면 KOE009 코드와 함께, "invalid android_key_hash or iOS_bundle_id or web_site_url" 라는 내용을 확인할 수 있습니다. https://developers.kakao.com/docs/latest/ko/kakaologin/trouble-shooting 에서 해당 코드를 확인해보면 액세스 토큰 관련 에러로, 해결 방법을 찾을 수 있습니다. 에러의 이유는 플랫폼이 등록되지 않았기 때문입니다. 따라서 Kakao Developers의 앱 설정에 들어가 '플랫폼'에서 iOS 플랫폼을 등록합니다. 번들 ID는 Xcode 프로젝트의 General에서 확인할 수 있.. 2022. 1. 10.
[git] 새로운 branch에 새로운 Xcode 프로젝트 push 하기 (feat. mac, 깃허브, iTerm, pull request) 깃허브에 Xcode 프로젝트를 main이 아닌, 새로 딴 브랜치에 바로 push 하는 방법에 대해 알아봅니다. 맥의 iTerm을 사용하였습니다. 먼저 깃허브에 들어가 새 레파지토리를 만듭니다. 여기서 README 파일을 생성함으로서 기본 브랜치를 main으로 만듭니다. 우측의 Code에서 레파지토리 주소를 복사합니다. 터미널 혹은 iTerm을 키고 cd desktop/newfolder 레파지토리를 받아올 폴더의 위치로 이동합니다. 저는 desktop에 newfolder라는 새로운 폴더를 하나 미리 생성했습니다. git clone 레파지토리 주소 폴더에 레파지토리를 clone 합니다. NewFolder 안에 아까 만든 레파지토리인 test가 잘 들어간 것을 확인할 수 있습니다. 이제 Xcode 프로젝트를 .. 2022. 1. 7.
[git] Git Convention 알아보기 Git을 사용할 때 규칙(Convention)을 사용하면 여러 사람들과 협업할 때, 보다 효율적으로 일할 수 있다. 본 글에서는 commit message convention, branch naming convention, repository naming convention에 대해 알아본다. 1. Commit Message Convention 먼저 commit message의 구조는 위 사진과 같다. 맨 위부터 제목, 본문, 꼬리말로 구성되어있다. 1.1. type 내가 작성한 commit message의 의도를 다른 사람들에게 전달하기 위해선 위 구조에서 부분에 다음과 같은 요소들을 포함한다. fix 버그를 수정한 경우 feat 새로운 기능을 추가한 경우 BREAKING CHANGE 큰 API 변경이 .. 2022. 1. 3.
앱스토어에 iOS 앱 업데이트 버전 올리기 개발이 완료된 앱을 처음 앱스토어에 올린 이후, 앱을 사용하다 보면 생각지 못했던 버그가 발견되거나 새로운 기능을 추가해야 할 때가 있습니다. 그럴 땐 새로운 버전으로 승인을 받고 다시 앱스토어에 올려야 사용자들이 업데이트된 앱을 사용할 수 있습니다. 저는 개인 프로젝트로 만든 앱에 있던 자잘한 문제를 해결하고 새로운 버전인 1.01 버전으로 앱스토어에 올리고자 했습니다. 이는 굉장히 방법이 간단한데, 저는 처음 해 본 과정이기에 헤맸던 기억이 있습니다. 따라서 새 버전으로 앱을 App Store Connect에 올리는 과정을 본 글에서 간단히 설명합니다. 1) 우선 가장 먼저 해야할 일인데, Xcode에서 Project->General의 Identity란에 들어가 본인 앱의 Version을 바꿔줘야 합.. 2021. 12. 29.
[OS] 프로세스 관리 (2) 1. fork() 시스템콜 fork()는 새로운 프로세스를 만들어달라는 요청이다. fork를 하게 되면 fork가 이루어진 그다음 시점부터 자식 프로세스가 실행을 하게 된다. 그 이유는, 자식 프로세스가 부모 프로세스의 context(정확히는 Program Counter)를 복제해서 main함수의 시작 부분이 아닌, pid = fork(); 부분부터 실행해야 하기 때문이다. 2. exec() 시스템콜 exec()는 어떤 프로그램을 완전히 새로운 프로세스로 태어나게 하는 역할을 한다. exec를 실행하면 main 함수 처음부터 돌아가 실행하게 된다. 그러나 반드시 자식 프로세스를 만들어서 exec를 해야 하는 것은 아니다. 즉, 위 코드에서 pid = fork(); 부분이 없어도 된다. 3. wait() .. 2021. 12. 16.