분류 전체보기

· Linux
대학교 재학 시절 윈도우 환경에서 opencv 라이브러리를 사용하기 위해 환경 설정을 하는 과정에서 처음 "환경 변수"라는 단어를 처음 접하게 되었습니다. 또한 bitbake를 학습 과정에서 bitbake의 실행 파일을 현재 위치한 주소와 관계없이 실행하기 위해 환경 변수 설정을 해주었습니다. 환경 변수에 대한 확실한 개념을 다지기 위해 글을 작성해보겠습니다. 환경 변수 환경 변수는 컴퓨터 시스템에서 프로세스나 프로그램이 실행될 때 참조할 수 있는 동적인 값들을 말합니다. 환경 변수가 사용되는 구체적인 예 저희는 별다른 설정을 하지 않더라도 리눅스의 기본 명령어를 사용할 수 있고 CLI 환경에서 git을 사용할 수도 있습니다. 그것을 가능하게 했던 것은 기본 명령어의 실행 파일들이 위치한 상대경로를 환경..
코딩 배경 callout안에 들어가는 UI 컴포넌트를 설정하는 과정이였이였습니다. 화면 모드 전환을 자동으로 설정하였고 다크모드 활성화 시간은 일몰부터 명일 일출까지 설정하였습니다. trouble 정의 작업을 진행을 하고 테스트를 진행하는 와중 갑자기 callout 안에 폰트들이 사라지는 현상이 발생했습니다. 테스트를 진행하기 전 테스트에서는 정상적으로 동작하였고 callout 뷰 안에 컴포넌트의 코드를 수정하지 않았습니다. trouble shooting 우선 해당 글자 보여주는 레이블이 존재하는지 확인하기 위해 Debug View Hierarchy를 통해 컴포넌트를 확인하였습니다. 확인 결과 해당 레이블이 존재한다는 것을 확인하였고, 해당 레이블 안 텍스트의 색상이 변경 되었다는 것을 발견하였습니다. ..
· Swift🐤
처음 해당 키워드를 배웠을때 왜 사용하는지 몰랐지만 코드를 작성하면서 "오! 깔끔해지잖아" 했던 키워드 typealias에 대해서 공부 해보록 하겠습니다. typealias typealias는 쉽게 특정 타입에 이해하기 쉽게 별칭을 붙여준다라고 생각하면 쉽습니다. 기존 타입의 이름 변경 제가 이전에 진행했던 프로젝트에서 지도에 핀을 찍는 기능을 추가를 해야했습니다. 그 과정에서 CoreLocation이라는 애플에서 제공하는 기본 프레임워크를 사용했습니다. CoreLocation의 주요 기능은 위치 정보를 제공입니다. 그 과정에서 위도 경도를 CLLocationDegrees라는 타입으로 저장하게 됩니다. 공식 문서에서 해당 타입을 찾아보니 Double타입을 type alias를 했다는 것을 알 수 있습니다..
· Git 🐈
branch를 왜 사용하는거야? 코드의 복사본을 만들어 본사본(commit 기준) 상에서 원본 코드의 손상없이 코드를 작성을 위함입니다. git branch git branch [branch의 이름] git branch는 branch를 생성하는 명령어입니다. gti branch 이후에 문자열로 branch의 이름을 설정할 수 있습니다. 또한 git branch [브랜치의 이름] 명령어는 현재 check-out된 commit을 기준으로 새로운 branch를 생성하는것을 의미합니다. 그렇다면! 특정 commit에서부터 branch를 생성하고 싶으면 어떻게 해야할까요? 특정 commit에서 branch 생성 1. commit hash를 이용해 branch 생성 commit hash는 commit마다 고유하게 ..
코딩 배경 fireStore로부터 주소 데이터를 패치하여 CoreLocation 프래임워크의 메소드를 사용해 좌표 데이터로 변환하는 코드를 작성하였습니다. trouble 정의 주소 데이터를 좌표 데이터를 변환하기 전 주소 데이터를 사전에 받아 놓고 있어야한다. 하지만 네트워크 문제로 인해 데이터를 패치하기 이전 UI를 변경하기 때문에 값이 없는 nil값으로 UI를 처리하게 되고 문제가 발생하게 됩니다. trouble shooting 위의 문제를 해결하기 위해서 정상적으로 주소 데이터를 받은 후에 좌표 데이터로 변경하는 작업을 비동기적으로 처리해야합니다. 다시 말해, UI를 업데이트하는 시점 이전 정상적으로 주소 데이터를 패치 후에 진행합니다. 주소(String) 데이터를 좌표(CLLocationCoord..
프로젝트 시작을 하기 전 클라우드 서버의 데이터에이스가 필요하였고, firebase에서 제공하는 데이터베이스 realtime database와 firestore 둘 중에서 어떤 데이터베이스를 사용해야할지 고민하였고 둘의 차이점을 궁금해하기 시작하였습니다. 오늘은 이 둘의 차이점을 알아보는 시간을 가져보도록하겠습니다. Realtime Databse 데이터 모델 realtime database는 데이터를 하나의 큰 "JSON" 트리로 저장합니다. 데이터의 구조가 복잡하지 않아 데이터의 저장이 쉽고 처리가 빠르다는 장점이 있습니다. 쿼리 realtime database 같은 경우 쿼리의 기능이 제한적입니다. 기본적으로 정렬과 필터링 기능을 제공하지만 이 두 기능을 동시에 사용할 수는 없습니다. 그리고 데이터 ..
· Git 🐈
오늘은 git을 사용하고 있지만 "git add", "git commit", "git push"는 구체적으로 무엇을 위한 명령어인지 생각해보고 사용하지 않아서 이번 기회에 확실하게 개념을 정리하고자 합니다! git 구조 git add git add [기록을 남기고 싶은 파일명] git add는 add 뒤에 오는 수정된 파일들을 staging area(index area라고도 불림)로 옴기기 위한 명령어입니다. staging area는 commit 이전에 기록을 남기고 싶은 관련된 파일들을 저장하는 공간입니다. 수정된 파일을 staging area로 옴기는 행위 == staging git commit git commit -m "commit 메시지" commit은 repository(저장소)에 staging..
· Swift🐤
코딩테스트를 준비하기 위해 문제를 푸는 과정이었습니다. 이때 당시에만 해도 저는 python에서의 tuple은 리스트와 같이 연속되는 값의 묶음이고 리스트와 다르게 한번 생성된 후 값의 변경이 불가능하다고 생각하였고 swift 역시 같은 속성을 가진다고 생각하였습니다. 문제를 푸는 과정에서 좌표를 나타내는 정보를 (x: Int, y, Int)와 같이 tuple 형식으로 나타내려고 하였지만 코드가 진행되는 과정에서 좌표의 값이 변경해야한다는 점을 고려해서 tuple을 사용하지 않았습니다. 어 뭐야?? tuple에 저장되었던 값이 변경이 되잖아?!?! python에서 tuple 타입의 변수값 변경 코드 # 튜플 선언과 초기화 my_tuple = (1, 2, 3, 4, 5) print(my_tuple[0]) ..
성실농장주
'분류 전체보기' 카테고리의 글 목록