본문 바로가기

분류 전체보기21

Kindverb(카인드법) 프로젝트를 시작한 이유 마음을 잇는 대화의 기술, 그 출발점 1. 작은 불편함에서 시작된 생각내가 유독 힘들어 하는 한가지가 있는데, 바로 가족과의 말싸움이다. 친구와 다툴 때는 조금 시간이 지나면 장난 한마디로 풀리기도 하고, 회사 동료와 의견이 부딪혀도 회의끝에 '일'이라는 울타리 안에서 정리되곤 했다. 그런데 가족은 달랐다. 부모님, 형제, 배우자... 그들과의 다툼은 단순히 의견 충돌이 아니라, 삶의 깊숙한 곳까지 흔드는 감정의 지진이었다. 싸움이 끝나고 나면 말이 없어진다. 눈을 마주치는 것도 어색하다. 마음속에서는 "사과하고 싶은데...", "먼자 화해의 손길을 내밀고 싶은데..."라는 생각이 맴돌지만, 입은 쉽게 열리지 않았다. 괜히 말 꺼냈다가 더 큰 상처를 줄까 두려워서, 그냥 침묵으로 시간을 흘려보낸다. 그.. 2025. 8. 15.
아이폰 카메라 색감 비교 16프로 vs XS 아이폰을 사용할 때 가장 많이 쓰는 기능 중 하나가 바로 카메라이다. 특히 인스타그램, 블로그, SNS를 즐겨 하거나, 가족사진, 여행사진, 음식사진 등을 자주 남기는 분들이라면, 내 손에 쥔 아이폰 카메라가 어떤 색감을 보여주는지가 아주 중요하다. 얼마전 스냅사진 작가들이 아이폰XS를 들고 다닌다는 이야기를 들었다. 아직 까지 아이폰XS의 사진 감성을 따라올 수 있는 스마트폰이 없다나 뭐래나의 썰을 듣고 서랍장안에 잠들어 있던 아이폰XS를 꺼내들었다. 과연, 최신 디바이스인 아이폰16프로와 아이폰XS의 색감은 얼마나 다를까? 궁금증이 생겼다. 마침 밖으로 나가볼 일이 생겨 두 기기를 직접 챙겨 들고 사진을 촬영해보고, 색감과 디테일을 비교해 보았다. 아이폰16프로와 아이폰XS의 카메라 스펙구분아이폰1.. 2025. 7. 4.
기술적 탐닉 1인 개발자가 조심해야 할 것 - 기술적 탐닉시작하며 - 기술이 주는 달콤한 유혹2025년 여름, 나는 두 번째 앱 개발을 시작하고 있다. 인공지능의 발전으로 인해 상반기, 1인 개발을 하고 있던 사람들에게 가장 큰 화두는 '바이브코딩' 이었을 것이다. 바이브코딩은 자연어로 인공지능에게 질문을해 소스코드를 얻어 내는 신종 코딩 방식인데, 빅테크 기업의 사람들의 퇴사 소식이 들릴만큼 어려운 기능도 속속들이 개발해 준다. 여기에 질문을 할 때 "초보 개발자도 이해 할 수 있도록 쉽고 상세한 주석도 함께 작성해줘" 라는 프롬프트를 추가하면 코드라인 한줄 한줄 이해하기 쉽도록 이모지와 함께 자세한 설명이 작성되기도 한다. 나 역시 바이브코딩이 화두로 올랐던 이시기에, 처음 앱을 만들기 시작했던 설렘은 아직도 잊.. 2025. 7. 3.
README와 .gitignore파일 생성 및 설정 Git으로 버전 관리를 할 때 반드시 마주하게 되는 두 파일이 있다. 바로 README.md 와 .gitignore 파일이다. 이 두 파일은 나중에 프로젝트가 커지거나 협업을 하게 되었을 때 정말 중요한 역할을 하게 된다. 로컬의 Finder 에서 파일들을 생성해도 되지만, 이번 포스팅에서는 GitHub를 이용하여 이 두 파일을 생성하고 Pull 하는 방식으로 진행 한다. README는 프로젝트의 얼굴이다GitHub에 프로젝트를 올렸을 때 처음 보이는 것이 바로 이 README.md 파일이다. 말 그대로 "이 프로젝트를 읽어주세요(READ ME)"라는 의미를 가지고 있고, 프로젝트에 대한 소개, 사용법, 설치법, 기여방법 등을 담는다.GitHub 원격저장소에서 Add a README 버튼을 누름으로써 생.. 2025. 6. 29.
Git Branch 생성과 병합 등 관리방법 (Stash, Merge) Git 관련된 모든 포스팅을 하는 동안 main 브랜치만 다루어 왔다. Git은 결국 협업을 하거나 혼자 개발한다고 해도 기능별로 구분이 필요하기 때문에 브랜치 전략을 세우는 것은 중요 하다고 생각 한다. 운영/개발/기능용 코드 역할에 따라 브랜치를 나누기도 하고, 협업중 충돌이 예상되면 브랜치를 나누기도 하겠지만 나는 혼자 개발을 진행한다는 관점으로 '기능별'로 분리 하려고 한다.Xcode에서 현재 상태를 확인해 보면 'main' 브랜치만 존재 한다. main 브랜치의 우측 점3개 버튼을 눌러서 New Branch form "main"으로 새로운 브런치를 만들 수도 있고,Repositories 탭에서 main 브랜치를 우클릭 해서 새로운 브랜치를 만들 수도 있다.지금 부터는 로그인 및 로그아웃 등 사용.. 2025. 6. 28.
Xcode에서 Push와Pull Git에서 Push와 Pull은 로컬에서 원격저장소와 소통하는 방법이다. Push는 로컬에서 내가 만든 변경사항을 원격 저장소로 전송하는 개념이고, Pull은 원격 저장소에 있는 변경사항을 내 로콜로 가져오는 개념이다. 때문에 Xcode에서 원격저장소(ex:GitHub)를 설정하고 Git으로 버전 관리를 시작 했다면 커밋과 함께 가장 먼저 마추지는 기능들이다. 지난 포스팅(Xcode에서 소스코드 커밋하기)에서 원격저장소인 GitHub를 다루지 않고, 로컬 상태에서 2개의 커밋(변경사항)을 만들었었다. Xcode에서 소스코드 커밋하기커밋 이란?커밋(Commit) 이란, 내가 작성한 코드의 스냅샷을 저장하는 행위이다. Git은 내가 수정한 내용을 추적하고, 커밋이라는 단위를 기준으로 "어느 시점에, 누가, .. 2025. 6. 28.
Xcode에서 소스코드 커밋하기 커밋 이란?커밋(Commit) 이란, 내가 작성한 코드의 스냅샷을 저장하는 행위이다. Git은 내가 수정한 내용을 추적하고, 커밋이라는 단위를 기준으로 "어느 시점에, 누가, 무엇을 어떻게 바꿨는지"를 기록해준다. 그 기록은 과거로 되돌아가거나, 다른 사람과 협업할 때 무척 유용하다. 지난 포스팅에서 프로젝트 생성 직후 원격저장소를 생성하며 코드 수정은 없었다. Xcode에서 GitHub원격저장소 만들기Xcode를 실행해 보면, 아래 그림과 같이 로컬에서 새로운 프로젝트를 만들 것인지 (Create New Project) 원격 저장소에 있는 프로젝트를 복재해와서 진행 할 것인지 (Clone Git Repository) 의 갈림길이 처음johjo.tistory.com 이제 로컬PC에서 소스코드를 수정하고 .. 2025. 6. 28.
Xcode에서 GitHub원격저장소 만들기 Xcode를 실행해 보면, 아래 그림과 같이 로컬에서 새로운 프로젝트를 만들 것인지 (Create New Project) 원격 저장소에 있는 프로젝트를 복재해와서 진행 할 것인지 (Clone Git Repository) 의 갈림길이 처음 놓이게 된다.이번 포스팅에서는 Xcode로 새로운 프로젝트를 만들어, 이전 포스팅에서 설정한 GitHub 계정정보를 이용하여 origin을 설정 하고, 실제 GitHub에 원격저장소(Remote Repository)를 생성 한다. GitHub계정 Xcode설정 방법앞으로 프로젝트의 Git 및 버전 제어를 호스팅하기 위해 Github를 사용할 것이다. Github는 간단하게 말하면, 소스코드를 저장하고 버전을 관리하는 웹 기반 플랫폼이다. '코드의 타임머신'이라고 부joh.. 2025. 6. 27.
GitHub계정 Xcode설정 방법 앞으로 프로젝트의 Git 및 버전 제어를 호스팅하기 위해 Github를 사용할 것이다. Github는 간단하게 말하면, 소스코드를 저장하고 버전을 관리하는 웹 기반 플랫폼이다. '코드의 타임머신'이라고 부르기도 한다. 언제 어떤 코드가 어떻게 바뀌었는지, 누가 바꿨는지, 왜 바꿨는지를 기록하고, 필요할 땐 언제든 돌아갈 수 있다. 또한 혼자 쓰는 것에 그치지 않고, 협업할 때도 강력하다. PR(Pull Request), Issue, Review, Action 등 다양한 협업 도구들이 준비되어 있기 때문이다. 혹 Git과 Github를 같다고 생각 할 수 있는데 이 둘은 완전히 다르면서도 서로를 보완하는 관계다. 쉽게 정리하면 아래 표와 같다.구분GitGitHub정체로컬에서 사용하는 버전 관리 도구인터넷 .. 2025. 6. 27.
변수와 상수, 언제 무엇을 쓸까? Swift를 처음 배울 때 가장 먼저 만나는 문법 중 하나는 바로 변수(var) 와 상수(let) 이다. 스위프트의 공식 문서를 확인해 보아도 좌측 최상단 메뉴의 A Swift Tour 와 The Basics 메뉴에서는 이 변수(var)와 상수(let)로 시작 한다.✅ var 키워드의 의미와 어원var는 variable의 줄임말이다.영어로 variable은 "변할 수 있는 것, 변수" 라는 뜻이다. 프로그래밍 전통에서 var는 C계열 언어나 JavaScript 등에서도 변할 수 있는 값을 선언할 때 흔히 쓰는 키워드이다. Swift도 이 익숙한 전통을 이어받아, 값이 바뀔 수 있는 저장소를 var로 선언하도록 한 것이다.✅ let 키워드의 의미와 어원let은 "let x equal 5"처럼 수학적인 표현.. 2025. 6. 27.