일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- filternotnull()
- composelifecycle
- 백준
- 프로그래머스
- list
- android
- 리스트
- 파이썬
- 자바리스트정렬
- jetpack
- Provider
- Dependency
- Java
- 배열
- 파이썬문법
- programmers
- Python
- Hilt
- compose
- 문자열
- 티스토리챌린지
- disposableeffect
- 자바set
- nullpointerexception방지
- 자료형
- Kotlin
- 백준파이썬
- 자바
- 오블완
- ContentProvider
- Today
- Total
목록전체 글 (111)
study gomi
문제 상황: 함수의 매개변수에 기본 값을 넣으려고 했는데 구문 오류(Syntax Error) 발생... ;;;;void ShowAddResult(int num = 30){ printf("덧셈결과 출력 : %d\n", num);} 알고보니 C에서는 매개변수의 기본값(default parameter)을 지정할 수 없다고 한다.kotlin이나 C++에서는 다 됐어서 몰랐다.암튼 C에서는 지원하지 않는 기능이라고 함.📌 기본값을 지정할 수 없는 이유C는 함수 호출 시 컴파일러가 전달되는 인자의 개수를 그대로 기대하기 때문.즉, 매개변수의 개수를 엄격하게 검사하기 때문에 기본값을 지정하는 기능이 없다.매개변수 전체가 다 값이 들어왔는지 확인하는 거 같음. ✅ 해결 방법 1: 오버로딩 대신 함수 내부에서 처..
📌 매개변수가 없는 함수 선언 방법void myFunction(void); // (1) 권장 방식void myFunction(); // (2) 동작하지만 C에서는 위험할 수 있음이 두 개가 같아 보이지만 c에서는 차이가 있다. 📍void를 명시하는 이유c언어에서 myFunction();과 myFunction(void)는 같은 의미가 아님.이 차이를 이해하려면 c와 c++의 차이를 알아야 한다. ✅ C에서 void myFunction(void);void myFunction(void);매개변수가 없다는 걸 명확하게 선언하는 것.따라서 myFunction(10); 같은 잘못된 호출을 하면 컴파일 에러가 발생즉, 매개변수를 받을 수 없다는 걸 명확히 함.#include void sayHello(v..

c공부 중...visual studio도 거의 처음 써 봤다.같은 프로젝트 내에서 한 소스 파일에서 다른 소스 파일에 정의된 함수를 호출해서 사용하려고 했는데 에러가 발생했다.android studio만 사용해왔던 나에겐 너무 생소...암튼 그래서 알아봤는데 헤더 파일이 필요하다구....문제 상황일단 내 프로젝트 내 소스 파일 두 개 ↑func_call.c에서 func_dummy.c의 함수 두 개(func1, func2)를 아래처럼 사용하려고 했는데 빌드 안 됨. 📌 C 파일 관리Kotlin과 달리 자동으로 같은 패키지에 있는 클래스나 함수를 import 시키는 기능이 없음.함수가 어디에 정의되어 있는지 명확하게 컴파일러에 알려줄 필요가 있다. 📌헤더 파일(.h)이 필요한 이유?1. 컴파일러가 함수의..

뭔가 잘못 merge했거나 commit 한 경우 근데 아직 push는 안 해서 local branch 상태와 origin branch 상태가 다를 때origin branch의 상태와 동일하게 만들기 (잘못한 거 되돌리기) 로컬 master 브랜치가 잘못 되어서 원격 master 브랜치(origin/master)와 동기화되지 않은 상태에서 Push를 하지 않았을 때 원격 master 브랜치 상태로 로컬 브랜치를 복원하는 방법이다. 1. 현재 상태 확인: 로컬 master 브랜치가 어떤 상태인지 확인git status 2. 로컬 브랜치 리셋원격 master 브랜치 상태로 로컬 master 브랜치를 강제로 리셋한다.--hard 플래그를 사용하면 로컬 브랜치와 워킹 디렉토리 모두 원격 브랜치 상태로 변경됨.gi..
filterNotNull() Kotlin의 컬렉션 확장 함수 중 하나로 간단하지만 아주 강력한 기능을 제공한다. 리스트 등 컬렉션에서 null 값을 제거해준다개인적으로 아주 유용하게 잘 쓰고 있다.1. 역할정의: 리스트나 시퀀스에서 모든 null 값을 필터링하고 null이 아닌 요소들만 포함된 새 리스트를 반환한다.사용 상황: 컬렉션에 null 값이 포함될 가능성이 있고 이 값을 제외하고 작업해야 할 때 사용된다.예시val listWithNulls: List = listOf("A", null, "B", null, "C")val filteredList = listWithNulls.filterNotNull()println(filteredList) // 출력: ["A", "B", "C"] 2. 작동 방식fu..
Content Provider란?Android에서 Content Provider는 앱 간 데이터 공유를 관리하는 구성요소이다.앱이 데이터(파일, db, 네트워크 등)에 접근하거나 다른 앱과 데이터를 공유할 때 사용됨.contentProvider를 구현하면 데이터를 CRUD(생성, 읽기, 수정, 삭제) 작업을 통해 제공할 수 있다.주요 역할데이터 공유: 여러 앱이 데이터를 효율적으로 공유하도록 중앙 집중식 접근을 제공보안 제공: 앱 간 데이터 접근 권한을 제어할 수 있는 권한 관리 기능을 제공URI를 통한 데이터 접근: content://로 시작하는 URI를 사용해 특정 데이터에 접근하도록 함.데이터의 캡슐화: 데이터베이스, 파일, 설정 등 다양한 데이터 소스를 일관된 방식으로 캡슐화하여 제공주요 메서드(..
Provider의 일반적인 의미무언가를 제공하는 역할을 하는 일반적인 개념프로그래밍에서 흔히 사용되는 용어특정 서비스를 제공하거나 리소스를 관리하는 클래스 또는 객체를 지칭예Dependency Injection Provider: 객체를 생성하거나 주입할 때 사용하는 도구 (예_Hilt, Dagger의 @Provides)Service Provider: 특정 API나 기능을 구현하고 이를 외부에서 호출 가능하게 만드는 클래스Content ProviderAndroid 프레임워크에서 데이터 공유를 위해 특별히 설계된 구성요소앱 간의 데이터 공유를 표준화된 방식으로 처리하기 위해 만들어짐android.content.ContentProvider를 상속받아 구현하며 content://URI를 통해 접근둘의 차이점구분..
1. 자동 생성 (@Inject)- @Inject를 통해 선언된 생성자는 별도의 모듈 없이도 Hilt가 자동으로 관리한다.class Repository @Inject constructor(private val service: Service)- 간단한 구조를 가진 클래스에 적합 2. 명시적 생성 (@Provides)- @Provides는 복잡한 생성 로직이나 외부 라이브러리의 의존성을 제공할 때 사용됨.@Module@InstallIn(SingletonComponent::class)object AppModule { @Provides fun provideService(): Service = ServiceImpl()}- 이 방식은 외부 클래스나 인터페이스에 주입이 필요할 때 유용