전체 글 173

[React-Native] 깃허브 레포지토리 첫 업로드하기

프로젝트 생성 아래 명령을 통해 로컬 프로젝트를 생성합니다. npx react-native init 프로젝트명 깃허브 레포지토리 생성 로컬 환경에서 react native 프로젝트를 생성하는 동안 깃허브에 접속하여 레포지토리를 생성해 주세요. react-native cli 로 프로젝트 생성 시 자동으로 .gitignore이 생성되므로 생성 옵션 중 .gitignore 파일 추가를 선택하지 마세요. README 파일 추가도 선택하지 마세요. 깃 초기화 로컬 프로젝트 생성이 완료되었으면 로컬 프로젝트 디렉토리에서 깃 초기화를 해주세요. git init 깃 리모트 설정 깃허브에서 생성한 레포지토리와 로컬 프로젝트를 연결합니다. git remote add origin https://github.com/그룹또는회..

[LeetCode] 2. Add Two Numbers

접근 두 노드를 순회하며 계산 친절하게도 이미 거꾸로 뒤업어 놓았음 carry 를 활용해서 모든 경우의 수에 부합하는 보편적인 문제 해결 방식을 찾아야 솔루션 class Solution: def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]: answer = ListNode(0, None) answer_cursor = answer carry = 0 while l1 != None or l2 != None or carry != 0: l1Value = 0 l2Value = 0 if l1: l1Value = l1.val if l2: l2Value = l2.val sumOfValue = l1Value..

[npm] 라이브러리 버전 semantic versioning 가이드라인 이해하기

라이브러리 버전 규칙에 대한 npm 가이드라인을 서술합니다. npm의 semantic versioning npm 공식 문서에서는 라이브러리 버전 설정 시 아래와 같이 버전을 설정하도록 권장하고 있습니다. 메이저.마이너.패치 형태로 버전을 명시 최초 배포 버전 : 1.0.0 호환되는 버그 패치 버전 : 1.0.1 호환되는 새 기능 추가 버전 : 1.1.0 호환되지 않는 새 기능 추가 버전 : 2.0.0 즉, 이전 버전과 호환 여부에 따라 메이저, 이전 버전과 호환되는 새로운 기능인 경우 마이너, 기타 버그 패치와 같은 자잘한 작업의 경우 패치 버전을 결정합니다. 틸드(~)와 캐롯(^) 위에서 라이브러리 버전이 어떻게 구성되는지 이해했습니다. 허나 package.json에는 버전뿐만 아니라 버전 옆 틸드(~..

[npm] package.json 과 package-lock.json 차이점 이해와 필요성

다양한 서드파티 라이브러리들을 사용하기 위해 npm이라는 패키지 매니저를 일반적으로 사용하는데요, npm을 사용함에 있어 필요한 파일 두 가지, package.json 및 package-lock.json을 이해하고 차이점을 알아보겠습니다. package.json과 package-lock.json 차이 이해를 돕기 위해 express 라이브러리를 설치하여 package.json과 package-lock.json을 비교해 보겠습니다. package.json ... "dependencies": { "express": "^4.18.2" } ... package-lock.json ... "node_modules/express": { "version": "4.18.2", "resolved": "https://reg..

[React-Native] Watchman std::__1::system_error: Operation not permitted 접근 권한 버그 해결하기

RN 앱을 개발할 때 필요한 도구인 watchman, 프로젝트 디렉토리 접근 권한이 부여된 상태임에도 실행 시 접근 권한이 없다고 에러를 출력하는 문제가 있습니다. 이 문제를 해결해보겠습니다. ... { watchmanResponse: { error: 'std::__1::system_error: open: /Users/taegyeonglee/Documents/GitHub/Checked: Operation not permitted', version: '2023.01.16.00' } } 이 글은 watchman설치를 완료한 상태을 전제로 합니다. 부여된 권한 삭제 설정 -> 개인정보 보호 및 보안 -> 파일 및 폴더 에서 watchman을 모두 삭제해 줍니다. Watchman shutdown 실행 중인 wa..

[android] 업로드 키, 인증서 재설정하기

기존 업로드 키를 분실하거나 더이상 사용할 수 없는 경우 새로운 업로드 키를 생성, 반영해야 합니다. 이 과정을 기록합니다. 새 업로드 키 생성 android studio에서 새 업로드 키를 생성합니다. 새 업로드 키를 생성하는 과정은 블로그 글을 참고해 주세요. 새 업로드 인증서 생성 생성한 업로드 키를 통해 새 업로드 인증서를 생성합니다. 아래 명령을 통해 새 업로드 인증서를 생성할 수 있습니다. 보다 자세한 설명은 공식 문서를 참고하세요. keytool -export -rfc -keystore 생성한업로드키파일이름 -alias 업로드키생성시지정한ALIAS명 -file 생성할업로드인증서이름.pem 업로드 키 재설정 요청 play console -> 설정 -> 앱 무결성 -> 앱 서명 항목에서 업로드 ..

[android] 배포용 안드로이드 앱 번들 빌드하기

안드로이드 스튜디오를 활용해서 배포용 안드로이드 앱 번들을 빌드해 보겠습니다. 버전 변경 versionCode가 같은 번들은 play console에 업로드할 수 없습니다. 처음으로 앱을 배포하는 상황이 아닌 경우 build.gradle 파일 내 versionCode 와 versionName 을 수정해주세요. 두 변수의 차이점과 기능에 대해선 공식 문서를 참고해주세요. 생성 옵션 선택 새로운 번들에 서명을 해야 합니다. Build -> Generate Singed Bundle / APK 를 선택합니다. 기본 설정(Android App Bundle)을 선택 후 다음 단계를 진행해 주세요. 업로드 키 생성 및 적용 업로드 키가 존재하는 경우 서명 키 비밀번호와 alias를 입력해주시고 서명키가 없는 경우 C..

[GeeksforGeeks] Special array reversal

Special array reversal | Practice | GeeksforGeeks Given a string S, containing special characters and all the alphabets, reverse the string without affecting the positions of the special characters. Example 1: Input: S = "A&B" Output: "B&A" Explanation: As we i practice.geeksforgeeks.org 접근 Two pointer 를 활용해 문자 비교 및 변경 isalphabet() 함수를 활용 Python 문자열 내 두 문자를 스왑하는 함수가 따로 제공되지 않는다는 점 참고 솔루션 class S..

[GitHub Desktop] 오픈소스 수정, Pull Request 하기

최근 React-Native의 버그를 찾아 코드를 수정하여 Pull Request하기로 하였습니다. Pull Request 하는 방법을 안내합니다. 클론 수정하고자 하는 오픈소스를 로컬에 클론 합니다. 본인의 레포지토리가 아닌 경우 자동으로 fork 됩니다. 이 글에서는 따로 브랜치를 생성하여 작업하지 않고 main 브랜치 소스코드를 수정하겠습니다. 클론이 완료되면 Continue 를 클릭합니다. Push 코드 수정이 완료되면 저장 후 Github Desktop 에 변경 사항을 확인합니다. 변경 사항을 확인하고 커밋 메시지를 작성한 후 Commit to main 을 클릭합니다. 그 후 Push origin 을 클릭해주세요. Pull Request 생성 포크한 자신의 오픈소스 레포지토리에 들어갑니다. Pu..

소프트웨어 2023.02.15