728x90
반응형

CS 55

git merge rebase squash

merge, rebase, squash는 모두 branch를 통합하는 방법이다.세 가지 방법의 차이가 뭔지 궁금해 조사하게 되었다. 1. git merge두 개의 브랜치를 하나로 합치는 방법.기존 브랜치의 변경 내역을 유지하면서 새로운 merge commit을 만든다.원래 커밋 히스토리를 유지할 수 있어 협업 시 브랜치 변경 이력을 보기 좋다.병합할 목표(main)로 이동해 병합할 대상(feature-branch)를 merge하면 된다.git checkout maingit merge feature-branch  2. git rebase한 브랜치의 변경 내역을 다른 브랜치 위로 다시 적용하는 방법merge commit 없이 히스토리를 깔끔하게 유지할 수 있다.원래의 브랜치 기반을 변경하는 것이기 때문에, ..

CS/형상관리 2025.03.10

PostgreSQL

프로젝트를 진행하던 중, 어떤 DB를 사용할 것인지 논의하다가 PostgreSQL을 찾게 되었다.서버를 Django를 사용하기로 했는데 찾아보니 Django와는 PostgreSQL을 함께 사용하는 경우가 많은 것 같았다.내가 알던 DBMS는 mySQL, Oracle, mongoDB, Altibase 정도였기에, PostgreSQL에 대해 간략하게 조사하였다. PostgreSQL?오픈소스 관계형 데이터베이스(RDBMS)로, 확장성과 안정성이 뛰어나다는 특징이 있다.Oracle이나 MySQL과 유사하지만, JSON, XML, 배열, **GIS 데이터도 저장할 수 있어 NoSQL 기능도 일부 제공한다. ** GIS 데이터란?Geographic Information System 지리정보시스템.GPS와 원격 감지..

CS/DB 2025.03.06

Compose의 표준 레이아웃 요소 - Column, Row, Box

Compose의 세 가지 표준 레이아웃 요소는 Column, Row, Box composable이 존재한다.이 셋은 상위 UI 요소 역할을 할 수 있다. 즉, 이 안에 다양한 ui 요소를 담을 수 있다는 것이다. 예를 들어, 단순히 composable function 안에 다음과 같이 text를 나열할 수 있는데,@Composablefun GreetingText(message: String, from: String, modifier: Modifier = Modifier) { Text( text = message, fontSize = 100.sp, lineHeight = 116.sp ) Text( text = from, font..

CS/Android 2025.03.05

[Kotlin 문법] 12. 후행 람다 문법

후행 람다 문법이란?일반적으로 kotlin에서 함수를 정의하고 사용하는 방식은 다음과 같다.fun exampleFunc(param1: String, param2: String){ println("Param1: $param1")} 여기서 함수의 매개변수로 함수를 넣을 수 있는데, 이때 사용하는 함수는 람다 표현식으로 넣어주게 된다. 예시는 다음과 같다.fun exampleFunction(param1: String, action: () -> Unit) { println("Param1: $param1") action()} 이와 같이 함수의 마지막 매개변수가 람다 표현식일 때, kotlin에서는 람다를 소괄호 밖으로 뺄 수 있는 문법을 제공한다.이 문법을 후행 람다 문법이라 하며, 이를 통해 코드의 ..

CS/Kotlin 2025.03.05

Intent

앱개발을 하던 중, 인터페이스/인텐트에 대해 알려달라는 요청을 받아 이게 무슨 말인지 찾아보게 되었다.인터페이스는 알겠는데, 인텐트는 처음 들어봤다.두 개를 함께 말씀하신거 보면, 비슷한 용도라는 건데, 궁금해서 조사하였다! ㅇ Intent란?Android component(Activity, Service, Broadcast 등)를 실행하거나 데이터를 전달하는 데 사용되는 객체.내외부 application과 통신할 때도 사용.- 로그인 화면에서 메인 화면으로 전환하는 등 Activity 간 전환에 사용- 백그라운드 음악을 재생하는 등 Service 실행에 사용- 배터리 부족 경고 등 Broadcast 메시지 전달에 사용- 카메라 앱을 실행하거나 웹 브라우저를 여는 등 외부 앱 기능 호출에 사용 ㅇ Int..

CS/Android 2025.03.04

Service (with. WorkManager, AlarmManager)

Service란?백그라운드에서 실행되는 UI 없이 실행되는 Android 컴포넌트이 Service를 상속받아 새로운 서비스를 만듦ex) customercenter - 공지사항 앱 Service의 특징Activity와 달리 UI 제공x사용자가 앱을 종료해도 특정 작업을 유지할 수 있도록 백그라운드 실행 가능기본적으로 main thread에서 실행(ANR 발생 가능) → 장시간 실행되는 작업은 Thread나 Coroutine을 사용하는 것이 좋음Foreground Service로 실행하면 앱이 종료돼도 계속 실행 가능배터리 소모를 줄이기 위해 서비스를 사용한 후에는 stopSelf()나 stopService()를 호출해 반드시 정리 필요 Service의 생명주기onCreate() : 서비스가 처음 생성될 때..

CS/Android 2025.03.04

[Git] submodule, subtree

프로젝트 개발을 진행하다보면, 간단한 소규모 프로젝트라면 문제 없겠지만개발 범위가 커질수록 레포지토리 하나로 관리하기 힘들어진다.특히, 앱1/앱2/서버1/ ... 이런식으로 하나의 역할에 대해서도 여러개로 쪼개진다면, 레포를 여러개 만들게 되는데 통합적인 부분을 관리하는 것이 몹시 힘들다. 코드가 중복될 가능성도 높아진다.이런 부분을 보완하기 위해 존재하는 것이 submodule이다. ㅇ submodule이란?submodule은 Git 저장소 안에 또다른 Git 저장소를 포함할 수 있는 기능이다.즉, 하나의 프로젝트 안에 다른 프로젝트를 넣어 독립적으로 관리할 수 있도록 만들어준다.- 여러 프로젝트가 같은 코드(공유 라이브러리)를 사용할 때- 별도로 관리되는 외부 프로젝트를 포함하여 사용할 때- 메인 프..

CS/형상관리 2025.03.04

Component

component란?앱을 구성하는 핵심적인 요소.component 각각의 역할이 정해져 있으며, 독립적으로 동작하면서도 서로 연결되어 앱이 작동하도록 함.component들은 AndroidManifest.xml에 등록되어야 하며, 시스템에 의해 관리됨. android의 4대 componentActivity화면을 담당하는 컴포넌트ex) 로그인 화면, 메인 화면 등onCreate(), onResume(), onDestroy() 등 라이프사이클을 가짐사용자의 입력을 받고 화면을 렌더링하며 상호작용 함Activity들은 하나의 Task(작업 단위, ex. 앱의 화면 흐름) 내에서 계층적으로 쌓임(Back Stack)ServiceUI 없이 백그라운드에서 실행되는 작업ex) 음악 재생, 데이터 동기화, 위치 추적A..

CS/Android 2025.02.28

[SQLite] sqlite란?

SQLite는 경량화된 DBMS로, 일반적인 RDBMS와는 달리 서버 없이 응용 프로그램에 넣어 사용하는 내장형(Embedded) DB이다.API는 단순히 라이브러리를 호출하는 것만 있으며, 데이터를 저장하는 데 하나의 파일만을 사용한다.또한, 구글 안드로이드 운영 체제에 기본 탑재된 DB이기도 하다.   안드로이드 앱 개발을 공부하면서, 시스템 내에 탑재된 DB를 사용하는 경우를 처음 접하게 되었다.sqlite은 ADB를 사용해 기기에 접속해 내부 DB로 접근할 수 있다. "adb root > adb shell" 로 들어가서 db 폴더에 접근하면 된다.원하는 db 폴더로 들어가서,"sqlite3 [이름].db" 이렇게 입력하면 해당 db에 들어가게 된다. 특정 기기에 접속하려는 것이 아니라면명령 프롬프..

CS/DB 2025.02.25

Android Studio build 방법 - Make Project (Ctrl+F9)와 Build APK(s)

android studio에서 build하는 방법에는 여러가지가 있고,그 중에서 Make Project (Ctrl + F9)를 사용해 빌드하는 방법과 Build APK(s)를 이용해 빌드하는 방법을 많이 사용한다.두 빌드 방법에는 큰 차이가 있는데,간단하게 말하면 Make Project는 전체 컴파일만 하고 APK를 생성하지 않는다. 따라서 개발 시 많이 이용한다.Build APK(s)는 전체를 빌드해서 APK를 생성해 배포 및 테스트 시 이용한다. 기능Make Project (Ctrl + F9)Build APK(s)컴파일 수행 여부OOAPK 생성 여부XOGradle 빌드 사용 여부변경된 부분만 사용전체 Gradle 빌드용도코드 변경 후 빠른 확인실행 가능한 APK 생성실행 속도더 빠름더 느림

CS/Android 2025.02.25
728x90
반응형