728x90
반응형

개발 이야기 62

[linux] 반응형 shell script 자동입력

이번에는 jenkins를 활용하여 빌드 자동화를 위한 스크립트를 만들기 위해 작성하던 중 아래와 같이 스크립트 동작 중 yes or no를 선택해야 하는 부분이 있다면 스크립트는 중간에 선택할 때까지 다음 과정을 기다린다. 하지만 빌드 자동화를 위해서는 다음과 같은 단계가 자동적으로 이루어져야한다. 그럼 이렇게 선택하는 부분이 나올 때 반응형으로 자동적으로 y를 선택하게 할 수 있는가가 중요하다. --------------------------------------- Terms and Conditions This is the Android Software Development Kit License Agreement 1. Introduction 1.1 The Android Software Developme..

개발 이야기 2023.09.07

[linux] #/bin/bash^M: bad interpreter: No such file or directory

개발을 하다 보면 알지 못하던 다양한 문제를 마주하게 된다. 어찌 보면 그 다양한 원인을 해결해 가는 것을 좋아하는 사람들이 개발자가 되는 것이 일반적이다. 이과생들의 특징이 답이 정해져 있는 문제를 풀어가는 과정을 즐기는 것이 아니겠는가? 윈도우 환경에서 코드를 작성하고 그것을 리눅스 환경에서 실행하려고 할 때 "^M: bad interpreter: No such file or directory"와 같은 문제가 발생한다. 윈도우에서 사용한 개행 문자가 리눅스에서는 인식되지 못해 발생하는 것이 원인이다. 그럼 이 문제는 어떻게 해결할 수 있을까? 다양한 방법이 있고, 리눅스 역시 ubuntu / fedora / CentOS 등 다양하기 때문에 모두 같은 방법으로 해결되지 않는다. 그럼 다양한 해결 방법에..

개발 이야기 2023.09.07

[linux] 파일 이름 변경 명령어 rename

linux / android platform 환경에서 개발하다 보면 특정 파일들은 버전정보를 파일명에 포함하여 생성되는 경우들이 존재합니다. 그 이유는 해당 so 파일들의 버전 정보를 알기 위해 그와 같이 버전 정보를 파일명 뒤에 붙여줍니다. 그러나 linux / android platform에서 버전정보를 제외한 파일을 load해야하기 때문에 버전정보를 제거한 심볼을 생성하거나 파일명 변경이 필요합니다. 그래서 다음과 같이 여러 파일을 rename을 사용하여 변경이 필요하며 다음과 같이 여러 파일에 대한 rename이 필요한 경우가 존재합니다. 뒤에 1.0.5235라는 버전 정보가 포함된 상태로 라이브러리 파일들이 생성되었습니다. 내가 필요한 파일은 a.so인데 빌드 결과물에 버전 정보를 포함하여 생성..

개발 이야기 2023.09.04

[linux] 실시간 성능 모니터링을 위한 명령어 top

top 명령어는 리눅스 시스템의 실시간 성능 모니터링을 위한 명령어입니다. CPU 사용량, 메모리 사용량, 디스크 사용량, 네트워크 사용량, 프로세스 상태 등을 확인할 수 있습니다. top 명령어의 기본 형식은 다음과 같습니다. top top 명령어를 실행하면 다음과 같은 화면이 나타납니다. top - 14:31:37 up 12:32, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 25 total, 1 running, 24 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 99.9% id, 0.1% wa, 0.0% hi, 0.0% si Mem: 2746364k total, 239092k used, 395..

개발 이야기 2023.09.04

[linux] 프로세스 우선순위 지정 명령어 nice

오늘은 임베디드 환경에서 이슈를 검토하기 위해서 필요한 명령어 중 하나인 nice 명령어에 대해 알아보고자 합니다. 이슈를 검토하기 위해 간략하게 이슈 발생했을 경우 특정 내용을 grep으로 확인 후 확인된 내용을 바탕으로 log들을 생성하도록 하는 스크립트를 추가하여 실제로 이슈가 발생했을 때 로그를 덤프 할 수 있도록 추가되었습니다. 그러나 이러한 이슈 재현 단계에서 스크립트의 수행이 이슈 발생 프로세스보다 우선 순위가 낮다면 어떻게 될까요? 당연히 이슈 발생 후 시스템은 다운 혹은 경쟁 상태 (race condition)에 빠지면서 스크립트는 수행되지 않을 확률이 높습니다. 그래서 스크립트의 우선 순위를 높여 이슈가 발생되었을 때 수행될 수 있도록 하는 것이 중요합니다. nice 명령어는 프로세스의..

개발 이야기 2023.09.04

Using cmd, start/stop App in Android Platform

안드로이드 플랫폼 (OS) 안드로이드 플랫폼은 구글에서 개발한 모바일 운영 체제(OS)입니다. 안드로이드는 리눅스 커널을 기반으로 하며, 앱 개발자들에게 다양한 API를 제공합니다. 안드로이드는 스마트폰, 태블릿, 스마트워치, TV, 자동차 등 다양한 기기에 사용되고 있습니다. 안드로이드 플랫폼은 전 세계적으로 가장 인기 있는 모바일 운영 체제 중 하나입니다. 2022년 12월 기준으로, 안드로이드를 사용하는 기기의 수는 25억 대를 넘어섰습니다. 안드로이드는 앞으로도 더욱 인기를 얻을 것으로 예상됩니다. 안드로이드 14는 2023년 7월 19일에 출시되었습니다. 안드로이드 14는 안드로이드 13의 후속 버전이며, 새로운 기능과 개선 사항이 포함되어 있습니다. 새로운 기능 중에는 다음과 같은 것들이 있습..

개발 이야기 2023.08.22

[개발자편] 아시나요? 코딩테스트

코딩 테스트는 컴퓨터 프로그래밍 능력을 평가하는 시험입니다. 주로 기업에서 신입 개발자를 채용하기 위해 시행합니다. 코딩 테스트는 크게 3가지 유형으로 나뉩니다. 온라인 코딩 테스트는 가장 일반적인 형태의 코딩 테스트 기업의 홈페이지나 온라인 채용 사이트를 통해 응시할 수 있습니다. 온라인 코딩 테스트는 보통 1시간 동안 5~10개의 문제를 풀게 됩니다. 필기 코딩 테스트는 온라인 코딩테스트보다 난이도가 높습니다 보통 기업의 사무실에서 응시합니다. 필기 코딩 테스트는 보통 2시간 동안 10~15개의 문제를 풀게 됩니다. 면접 코딩 테스트는 가장 어려운 형태의 코딩테스트입니다. 보통 기업의 면접관 앞에서 코딩을 직접 보여줍니다. 면접 코딩 테스트는 보통 30분 동안 1~2개의 문제를 풀게 됩니다. 그럼 코..

개발 이야기 2023.08.10

[개발자편] 아시나요? 개발자 되기 위한 협업도구

https://youtube.com/shorts/r05Xj8Krqrk?feature=share 소프트웨어 개발자가 되기 위해서는 코딩을 위한 언어 공부와 함께 협업을 위한 준비를 해야합니다 소프트웨어 협업에는 커뮤니케이션, 코드 공유, 버전 제어, 프로젝트 관리 등을 용이하게 하는 도구가 필요합니다 효과적인 소프트웨어 협업을 위한 필수 도구 목록은 다음과 같습니다 첫 번째, 버전 제어 시스템 (VCS) : git 여러 개발자가 코드베이스에서 공동 작업하고, 변경 사항을 추적하고, 서로 다른 버전의 코드를 관리할 수 있는 분산 버전 제어 시스템(Remote VCS) 입니다 두 번째, 커뮤니케이션 및 협업 : Microsoft Teams, Slack 과거에는 Slack이라는 무료 커뮤니케이션 소프트웨어를 사..

개발 이야기 2023.08.08

patch git branch 자동화 스크립트 만들기

대규모 프로젝트에서 개발업무를 진행하다 보면 버그나 휴먼 에러 등 다양한 이슈 발생으로 패치를 생성한다. 그리고 프로젝트를 위한 패치리스트를 모아두어 관리하는 git이 존재하게 된다. 만약 내가 개발한 내용을 모든 프로젝트에 반영해야 하는데 각 프로젝트의 패치 git을 remote에서 다운로드한다고 생각해 보자. 모든 git 주소를 다 알지도 못할 뿐더러 git주소를 확인하기 위해 또 문서를 뒤져야 한다. 시간 낭비를 줄이고 귀차니즘을 없애기 위해 앞으로는 다운로드 후 프로젝트에 바로 적용할 수 있도록 스크립트를 만들기로 결심하고 5분 만에 test script파일을 만들었다. 테스트 결과 성공적이었다. 앞으로 브랜치명과 패치 git을 다운받을 위치만 지정해주면 알아서 해당 프로젝트에 패치git 다운로드..

개발 이야기 2023.07.28

[wsl/Ubuntu] Unable to locate package aapt

우분투를 설치하고 android-cts를 진행하기 위해 aapt 패키지를 설치하려고 시도하였지만 다음과 같은 메세지를 출력하며 설치가 진행되지 않는다. E: Unable to locate package aapt 이러한 경우 apt update를 진행해주거나 패키지를 가져와서 설치할 서버를 변경해주면 해결된다. 1. run an apt update # update sources.list sudo apt update # install aapt sudo apt-get install aapt 2. edit /etc/apt/sources.list 패키지 install시에 sources.list라는 패키지 리소스를 참고하는데 문제가 생긴 오류로 sources.list를 수정해주면 된다. # vi /etc/apt/s..

개발 이야기 2023.07.19
728x90
반응형
SMALL