2026/04/28

오늘의 이야기

<주변검색 주변찾기 앱, 동작감지기 앱 :  이하 사용자앱으로 표시 >:는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다.
○ 이 개인정보처리방침은 2022년 4월 1부터 적용됩니다.
 
제1조(개인정보의 처리 목적)

<사용자 앱>은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.

 
○ 제공되는 앱의 사용자 확인을 위해서 만 사용 됩니다.

제2조(개인정보의 처리 및 보유 기간)

① <사용자 앱>은(는) 법령에 따른 개인정보 보유·이용기간 또는 정보주체로부터 개인정보를 수집 시에 동의받은 개인정보 보유·이용기간 내에서 개인정보를 처리·보유합니다.

② 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다.



  • 1.<앱 사용자 회원가입 및 관리>

  • <앱 사용자 회원가입 및 관리>와 관련한 개인정보는 수집.이용에 관한 동의일로부터<이 앱의 사용기간 동안>까지 위 이용목적을 위하여 보유.이용됩니다.

  • 보유근거 : 이 앱의 사용자 확인을 위해서 사용 됩니다.

  • 2 <앱 사용자 위치정보 : 백그라운드 위치 포함>

  • 백그라운드 위치정보 : 이 앱의 기본 기능인 도착 알림 발송등을 위해서 백그라운드 에서 위치 정보를 활용 합니다.  사용자의 위치 정보는 앱의 기능 활용을 위해서만 사용 되며, 앱 외부로 전송 하지 않습니다.

  • 3 <Health Data 의 사용>

  • 이 앱은 사용자의 폰이나, 워치를 통해 사용자의 Health Data 가 측정 됩니다. 측정된 Health Data 는 이 앱에서 사용자의 신체상태을 표시 하는 데만 사용 됩니다. 

  • 측정된 Health Data 을 앱 이외의 공간(온라인전송 포함)으로 복사 되거나, 제공 되지 않습니다.


제3조(개인정보의 제3자 제공)

① <사용자 앱>은(는) 개인정보를 제1조(개인정보의 처리 목적)에서 명시한 범위 내에서만 처리하며, 정보주체의 동의, 법률의 특별한 규정 등 「개인정보 보호법」 제17조 및 제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.
② < billcorea >은(는) 다음과 같이 개인정보를 제3자에게 제공하지 않습니다.
 
제4조(개인정보처리 위탁)

① <사용자 앱>은(는) 원활한 개인정보 업무처리를 위하여 다음과 같이 개인정보 처리업무를 위탁하지 않습니다.
②  위탁업무의 내용이나 수탁자가 변경될 경우에는 지체없이 본 개인정보 처리방침을 통하여 공개하도록 하겠습니다.

제5조(정보주체와 법정대리인의 권리·의무 및 그 행사방법)
① 정보주체는 우리집에 대해 언제든지 개인정보 열람·정정·삭제·처리정지 요구 등의 권리를 행사할 수 있습니다.
② 제1항에 따른 권리 행사는우리집에 대해 「개인정보 보호법」 시행령 제41조제1항에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 우리집은(는) 이에 대해 지체 없이 조치하겠습니다.
③ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다.이 경우 “개인정보 처리 방법에 관한 고시(제2020-7호)” 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.
④ 개인정보 열람 및 처리정지 요구는 「개인정보 보호법」 제35조 제4항, 제37조 제2항에 의하여 정보주체의 권리가 제한 될 수 있습니다.
⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에서 그 개인정보가 수집 대상으로 명시되어 있는 경우에는 그 삭제를 요구할 수 없습니다.
⑥ billcorea 은(는) 정보주체 권리에 따른 열람의 요구, 정정·삭제의 요구, 처리정지의 요구 시 열람 등 요구를 한 자가 본인이거나 정당한 대리인인지를 확인합니다.


제6조(처리하는 개인정보의 항목 작성)
①<사용자 앱>은(는) 다음의 개인정보 항목을 처리하고 있습니다.



  • 1<앱 사용자 회원가입 및 관리 >

  • 필수항목 : 식별기호(uuid token), 이메일주소,  

  • 소셜 로그인 : 이메일주소, 별명(별칭), 프로필 이미지 링크

  • 2<앱 사용자 위치 정보>

  • 앱 사용중 위치 정보 및 백그라운드 위치 정보 포함.

  • 3<Health Data>

  • 앱 사용중 사용자의 심박수, 걸음수의 정보.


 


제7조(개인정보의 파기)

① <사용자 앱> 은(는) 개인정보 보유기간의 경과, 처리목적 달성 등 개인정보가 불필요하게 되었을 때에는 지체없이 해당 개인정보를 파기합니다.

② 정보주체로부터 동의받은 개인정보 보유기간이 경과하거나 처리목적이 달성되었음에도 불구하고 다른 법령에 따라 개인정보를 계속 보존하여야 하는 경우에는, 해당 개인정보를 별도의 데이터베이스(DB)로 옮기거나 보관장소를 달리하여 보존합니다.
1. 법령 근거 : 관련법규 적용 사항 없음
2. 보존하는 개인정보 항목 : 없음

③ 개인정보 파기의 절차 및 방법은 다음과 같습니다.
1. 파기절차
<사용자 앱> 은(는) 파기 사유가 발생한 개인정보를 선정하고, < billcorea > 의 개인정보 보호책임자의 승인을 받아 개인정보를 파기합니다.
2. 앱의 사용자 설정에서 로그인 관련 정보 삭제 버튼을 이용하여 삭제 할 수 있습니다.

제8조(개인정보의 안전성 확보 조치)

<사용자 앱>은(는) 개인정보의 안전성 확보를 위해 다음과 같은 조치를 취하고 있습니다.

1. 내부관리계획의 수립 및 시행
개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.

2. 개인정보에 대한 접근 제한
개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.

3. 비인가자에 대한 출입 통제
개인정보를 보관하고 있는 물리적 보관 장소를 별도로 두고 이에 대해 출입통제 절차를 수립, 운영하고 있습니다.

제9조(개인정보 자동 수집 장치의 설치•운영 및 거부에 관한 사항)
<사용자 앱> 은(는) 정보주체의 이용정보를 저장하고 수시로 불러오는 ‘쿠키(cookie)’를 사용하지 않습니다.
 
제10조 (개인정보 보호책임자)
① <사용자 앱> 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.



  • ▶ 개인정보 보호책임자

  • 성명 :강동엽

  • 직책 : manager

  • 직급 : manager

  • 연락처 : 0504-0662-8122, help@billcorea.com


※ 개인정보 보호 담당부서로 연결됩니다.



  • ▶ 개인정보 보호 담당부서

  • 부서명 : manager

  • 담당자 : 강동엽

  • 연락처 :  0504-0662-8122, help@billcorea.com


② 정보주체께서는 우리집 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. 우리집 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.
 
제11조(개인정보 열람청구)
정보주체는 「개인정보 보호법」 제35조에 따른 개인정보의 열람 청구를 아래의 부서에 할 수 있습니다.
<사용자 앱>은(는) 정보주체의 개인정보 열람청구가 신속하게 처리되도록 노력하겠습니다.



  • ▶ 개인정보 열람청구 접수·처리 부서

  • 부서명 : manager

  • 담당자 : 강동엽

  • 연락처 :  0504-0662-8122, help@billcorea.com



제12조(권익침해 구제방법)
정보주체는 개인정보침해로 인한 구제를 받기 위하여 개인정보분쟁조정위원회, 한국인터넷진흥원 개인정보침해신고센터 등에 분쟁해결이나 상담 등을 신청할 수 있습니다. 이 밖에 기타 개인정보침해의 신고, 상담에 대하여는 아래의 기관에 문의하시기 바랍니다.

1. 개인정보분쟁조정위원회 : (국번없이) 1833-6972 (www.kopico.go.kr)
2. 개인정보침해신고센터 : (국번없이) 118 (privacy.kisa.or.kr)
3. 대검찰청 : (국번없이) 1301 (www.spo.go.kr)
4. 경찰청 : (국번없이) 182 (ecrm.cyber.go.kr)

「개인정보보호법」제35조(개인정보의 열람), 제36조(개인정보의 정정·삭제), 제37조(개인정보의 처리정지 등)의 규정에 의한 요구에 대 하여 공공기관의 장이 행한 처분 또는 부작위로 인하여 권리 또는 이익의 침해를 받은 자는 행정심판법이 정하는 바에 따라 행정심판을 청구할 수 있습니다.

※ 행정심판에 대해 자세한 사항은 중앙행정심판위원회(www.simpan.go.kr) 홈페이지를 참고하시기 바랍니다.

제13조(개인정보 처리방침 변경)

① 이 개인정보처리방침은 2025년 7월 11부터 적용됩니다.


 


부칙 <개인정보 처리 지침의 개정>


* 이 지침은 필요에 따라 갱신 되며, 사용자에게 개별 통지는 되지 않습니다.


 





오늘의 이야기

이번 YouTube 영상 "AI Breakfast 개발자 특별편 | Episode 3 - Android 앱 개발의 미래"는 구글 I/O 2023에서 공개된 AI 기술이 안드로이드 앱 개발의 **기획, 개발, 배포, 운영 등 모든 단계를 어떻게 변화시키고 있는지**에 대해 심도 깊은 논의를 진행합니다 [1]. AI가 단순한 도구를 넘어 개발자들의 워크플로우 전반에 큰 변화를 가져오고 있으며, 개발자 역할의 재정의 가능성도 언급되었습니다 [2].

**AI 기술이 안드로이드 앱 개발 각 단계에 미치는 영향:**

*   **기획 및 UI/UX 디자인 단계**:
    *   **Stitch(스티치)**: 텍스트나 이미지 입력만으로 AI가 UI 디자인과 코드를 자동으로 생성해주는 도구로 소개되었습니다 [2]. 이 도구는 개발자가 디자인을 할 수 있게 돕고, 기획자나 디자이너의 반복적인 레이아웃 작업 부담을 줄여주며, 개발자와 디자이너/기획자 간의 **효율적인 협업을 가능하게 합니다** [3]. 데모 버전 제작 시에도 디자인 퀄리티를 크게 높여주는 장점이 있습니다 [3].

*   **코딩 단계**:
    *   **AI 코딩 어시스턴트**: 안드로이드 앱 개발은 웹 개발에 비해 AI 도구 적용이 다소 늦었지만, 이제 구글의 대표적인 안드로이드 개발 툴인 **안드로이드 스튜디오에 Gemini(제미나이)가 공식적으로 통합**되면서 개발자들이 AI의 도움을 적극적으로 받을 수 있게 되었습니다 [3].
    *   **높은 AI 코드 기여도**: 현재 현업에서는 코딩 시 AI의 기여도가 **벌써 50%에 달하는 사례**가 언급되었으며, 이는 거의 동료와 같은 협업 수준으로 평가됩니다 [4]. AI는 변수명 짓기 등 단순 반복 작업을 대신하여 개발자가 **더 큰 그림과 창의적인 부분에 집중**할 수 있도록 돕습니다 [4].
    *   **안드로이드 개발의 숙제 해결**: AI는 특히 안드로이드 개발자들이 어려움을 겪는 **다양한 화면 크기 및 OS 버전 대응, 구글 플레이 정책 준수**와 같은 '영원한 숙제'들을 해결하는 데 큰 도움을 줄 것으로 기대됩니다 [4, 5].

*   **AI 모델 및 온디바이스 AI**:
    *   **Gemini(제미나이) vs. Gemma(잼마)**:
        *   **Gemini**: 구글의 대표적인 거대 AI 모델이며, API를 통해 활용할 수 있는 PaaS(Platform as a Service) 형태로 제공됩니다 [6].
        *   **Gemma**: Gemini의 내용을 경량화한 작은 모델로, 사용자가 직접 가져다가 자신에게 맞게 변경하고 학습시킬 수 있습니다 [6]. 디바이스에서도 원활하게 동작하며, 특히 **온디바이스 AI에 최적화된 폼팩터**로 주목받고 있습니다 [6].
    *   **온디바이스 AI의 장점**:
        *   **개인 정보 보호**: 민감한 사용자 정보가 디바이스 내에서만 머물러 클라우드로 나가지 않아 보안에 강합니다 [7].
        *   **오프라인 사용 가능**: 인터넷 연결 없이도 기능 구현이 가능합니다 [7].
        *   **빠른 응답 속도**: 클라우드 통신 지연 없이 빠른 응답이 가능합니다 [7].
        *   **비용 절감**: 추가 비용 없이 디바이스 내에서 처리되어 전기 요금만으로 해결됩니다 [7].
    *   **활용 사례**: 카카오T 데모에서 Gemini Nano 모델을 활용하여 사용자의 자연어 주문을 분석하고 주소 등 정보를 추출하는 기능이 소개되었으며 [7], 개인 상담사처럼 **사용자의 민감한 정보를 보호하며 파인 튜닝이 가능한 온디바이스 모델**(Gemma 1B) 활용 사례도 제시되었습니다 [7].

*   **API 활용**:
    *   **Gen AI SDK**: Gemini API 사용 시 **Gen AI SDK를 반드시 사용할 것을 권장**합니다 [8]. 이는 개발자용/운영용 API 구분을 없애고 플래그 변경만으로 보안 강화를 할 수 있게 하여 코드 변경 없이 개발부터 운영까지 자연스럽게 보안을 적용할 수 있도록 합니다 [8].
    *   **Vertex AI**: API 키 방식의 한계(관리 어려움, 유출 위험)를 넘어, **강화된 보안과 특정 클라이언트/IP 제약 등 기업 환경에서의 요구사항을 충족시키기 위해 Vertex AI를 함께 활용**할 수 있습니다 [8].
    *   **데이터 보안**: API 호출 시 개인 데이터가 서버로 그대로 넘어가는 것이 아니라, 머신러닝의 첫 레이어를 거쳐 **웨이트 값만 전달되므로 개인 정보 유출에 대한 우려를 덜 수 있습니다** [9].

*   **배포 및 운영 단계**:
    *   AI는 앱 배포 시 **구글 플레이 정책 준수**에 대한 가이드를 제공하고 [10], 배포 후 발생하는 오류 보고서를 분석하여 **자동으로 코드를 수정해주는 가능성**을 제시합니다 [10]. 이는 개발자의 운영 부담을 크게 줄여줄 것으로 기대됩니다 [10].

**안드로이드 개발의 미래 및 개발자의 역할**:

*   **새로운 기회와 생산성 향상**: AI는 개발자에게 **새로운 장난감**과 같으며, 생산성 향상을 바탕으로 **더욱 높은 품질의, 더 멋진 사용자 경험을 제공하는 앱**을 만들 수 있게 합니다 [10]. XR(확장 현실)과 같은 새로운 분야에서도 개발자들이 할 일이 훨씬 늘어날 것으로 예상됩니다 [10].
*   **AI 에이전트 앱**: AI를 활용하여 앱 내에서 사용자에게 화면 설명, 쇼핑 추천 등 **다양한 기능을 제공하는 AI 에이전트 앱** 개발이 활성화될 것으로 보이며 [11], 구글에서는 에이전트 개발을 용이하게 하는 **Agent Development Kit(ADK)**를 제공합니다 [11]. 안드로이드는 다양한 앱 간 상호작용을 염두에 둔 플랫폼 설계(인텐트 개념 등)로 **에이전트 시대에 이미 준비된 플랫폼**으로 평가됩니다 [12].
*   **생성형 AI의 확장**: 동영상 생성, 이미지 생성 등 **생성형 AI API를 활용하여 기존에 상상하기 어려웠던 새로운 사용자 경험**을 제공하는 앱이 등장할 수 있습니다 [12]. 안드로이드 피규어에 옷을 입혀주는 '안드로이드파이'와 같은 쇼케이스 앱이 그 예시입니다 [12].
*   **개발자 역량 강화**:
    *   **주니어 개발자**: AI 시대에는 학생들이나 주니어 개발자들이 **최고 레벨 회사들의 기술을 바로 접하고 활용할 수 있는 기회**가 열렸습니다 [13]. 새로운 툴 학습에 민첩하고 호기심 많은 주니어들이 유리할 수 있습니다 [13].
    *   **시니어 개발자**: AI가 90%의 코드를 생성하더라도, **10%의 결함을 찾아내고 노하우를 발휘하는 것은 시니어의 역할**이므로, 주니어와 시니어의 협업이 가장 아름다운 결과를 만들 것이라 예상됩니다 [13].
    *   **무한한 가능성**: 안드로이드는 스마트폰, 태블릿, 시계뿐 아니라 키오스크 등 생활 속 곳곳에 숨어있는 **다양한 폼팩터에서 AI의 힘을 빌려 새로운 경험을 펼칠 수 있는 무한한 가능성**을 가지고 있습니다 [13]. AI는 개발자들의 '꿈을 꾸지 못하던 저 너머의 세계'를 현실로 만들 수 있게 합니다 [10, 13].


*** 영상링크
https://youtu.be/6WBgw764tNw?si=w35kyJscWMMCArsa

google io 2025





오늘의 이야기

 


Jetpack Compose + Firebase 기반 게시판 앱 개발기


게시글 만들기



 


이 글은 Jetpack Compose, Firebase Realtime Database, Hilt, Compose Destinations를 기반으로 한 게시판 앱 개발 과정을 정리한 것입니다. 게시글은 최근순으로 표시되며, 댓글 기능도 포함합니다.


1. 프로젝트 구성



  • Kotlin

  • Jetpack Compose

  • Firebase Realtime Database

  • Hilt (DI)

  • Compose Destinations (Navigation)


2. 게시글 리스트 화면


Firebase에서 게시글 데이터를 읽고, 최근 등록순으로 보여줍니다.



LazyColumn(
reverseLayout = true // 최신 글이 위로
) {
items(posts) { post ->
PostItem(post)
}
}

FloatingActionButton을 이용해 글쓰기 화면으로 이동합니다.



Scaffold(
floatingActionButton = {
FloatingActionButton(onClick = {
navigator.navigate(NewPostScreenDestination())
}) {
Icon(Icons.Default.Add, contentDescription = "새 글 작성")
}
}
) {
// Content here
}

3. 글쓰기 화면



@Destination
@Composable
fun NewPostScreen(navigator: DestinationsNavigator) {
var title by remember { mutableStateOf("") }
var content by remember { mutableStateOf("") }

Column(modifier = Modifier.padding(16.dp)) {
OutlinedTextField(
value = title,
onValueChange = { title = it },
label = { Text("제목") },
colors = TextFieldDefaults.outlinedTextFieldColors(
textColor = Color.Black
)
)
Spacer(Modifier.height(8.dp))
OutlinedTextField(
value = content,
onValueChange = { content = it },
label = { Text("내용") }
)
Spacer(Modifier.height(16.dp))
Button(onClick = {
// Firebase에 저장
navigator.popBackStack()
}) {
Text("등록")
}
}
}

4. 게시글 수정


수정 시, postId를 인자로 전달해 해당 글을 로딩하고 수정합니다.



@Destination
@Composable
fun EditPostScreen(postId: String, navigator: DestinationsNavigator) {
val viewModel: PostViewModel = hiltViewModel()
val post = viewModel.getPost(postId)

// 수정 UI 구성
}

5. Compose Destinations 구성



@Composable
fun MainNavHost() {
val navController = rememberNavController()
DestinationsNavHost(
navController = navController,
navGraph = NavGraphs.root
)
}

Destinations에서 ViewModel 외부 주입이 필요한 경우



DestinationsNavHost(navController = navController, navGraph = NavGraphs.root) {
composable(EditPostScreenDestination) {
EditPostScreen(
postId = it.navArgs.postId,
navigator = it.destinationsNavigator,
mainViewModel = customViewModel
)
}
}

6. UI 요소 조정



  • TopBar 여백 제거: Scaffold에서 topBar 생략

  • FloatingActionButton 아래 배치: Scaffold 내에서 기본 위치에 둬도 하단 고정

  • ModalBottomSheet 테두리 색상 조정: 직접 설정은 어려움 → 커스텀 구현 필요


7. 다국어 번역 예시























용어 번역
Posts 한국어: 게시글, 중국어: 帖子, 대만어: 貼文, 일본어: 投稿, 베트남어: Bài viết, 태국어: โพสต์, 필리핀어: Mga post
도로명주소 영어: Road name address, 중국어: 道路名地址, 대만어: 路名地址, 일본어: 道路名住所, 베트남어: Địa chỉ theo tên đường, 태국어: ที่อยู่ตามชื่อถนน, 필리핀어: Address ng kalsada
Distance 중국어: 距离, 대만어: 距離, 일본어: 距離, 베트남어: Khoảng cách, 태국어: ระยะทาง, 필리핀어: Distansya

마무리


이와 같은 구조로 Jetpack Compose와 Firebase를 이용한 게시판 앱을 확장할 수 있습니다. 다음 포스트에서는 이미지 업로드, 사용자 인증, 또는 푸시 알림 추가도 소개할 수 있습니다.





오늘의 이야기


#스하리1000명프로젝트,
Parfois, il est difficile de parler avec des travailleurs étrangers, n'est-ce pas ?
J'ai créé une application simple qui aide ! Vous écrivez dans votre langue et les autres le voient dans la leur.
Il se traduit automatiquement en fonction des paramètres.
Super pratique pour des discussions faciles. Jetez-y un oeil quand vous en aurez l'occasion !
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기

UI 초안



🏸 1 배드민턴 리그전





  • 오늘 참여 인원: 8명

  • 진행 현황: 총 4팀, 6경기 중 2경기 완료




📊 순위표










































순위 팀명 세트 득실
1 팀A 3 1 +4
2 팀B 2 2 +1
3 팀C 2 2 -2
4 팀D 1 3 -3



주요 기능



  • [🔄 리그 시작하기] : 오늘 리그전을 새로 시작합니다. (기존 진행 경기 결과는 저장 후 초기화됩니다.)

  • [👥 회원 관리] : 동호회 회원을 등록/수정/삭제할 수 있습니다.

  • [📅 이전 기록] : 지난 리그 결과 및 전체 누적 통계를 확인합니다.

  • [🗂 팀/대진표 보기] : 오늘의 팀 구성과 대진표를 확인할 수 있습니다.

  • [📝 경기 결과 입력] : 경기 점수 입력 및 경기 종료 판정을 할 수 있습니다.





오늘 리그전에 참여할 인원을 워치와 스마트폰 양쪽에서 모두 확인해 주세요.



2 팀 선택


참여할 팀을 하나 선택해 주세요.





  • [팀A] (남은 인원: 1명)

  • [팀B] (남은 인원: 2명)

  • [팀C] (남은 인원: 대기중)

  • [팀D] (남은 인원: 1명)





팀을 선택하면 선수 명단에 자동 등록됩니다.
이미 인원이 다 찬 팀은 선택 불가합니다.



[🔄 새로고침] [❌ 돌아가기]


3 경기 진행 중


[ 팀A vs 팀B ]



























세트 팀A 점수 팀B 점수
1 21 18
2 17 21
3 - -




  • [⏸ 일시정지] : 경기 일시정지 및 재개

  • [✔ 세트 승리 체크] : 각 세트가 끝날 때 승리한 팀을 체크합니다




⚠️ 심박수 주의


현재 심박수: 205bpm



🚨 심박수가 높게 감지되었습니다.
잠시 휴식을 취하세요.


계속 이상신호가 지속된다면 주최자에게 알리세요.



[알림 끄기] [의료 도움 요청]





워치 진동 및 팝업으로 즉시 안내됩니다.



4 경기 결과 입력


[ 팀A vs 팀B ]




세트별 점수를 입력해 주세요.



  • 세트 1 : 팀A [ 21 ] - 팀B [ 18 ]

  • 세트 2 : 팀A [ 17 ] - 팀B [ 21 ]

  • 세트 3 : 팀A [ ] - 팀B [ ] (승부가 나지 않으면 입력하지 않아도 됩니다.)

  • [➕ 세트 추가] [➖ 세트 삭제]





  • [✔️ 결과 저장] : 입력한 점수와 승패를 저장합니다.

  • [↩️ 이전 화면] : 결과 입력을 취소하고 돌아갑니다.





2세트를 먼저 이긴 팀이 최종 승리로 자동 처리됩니다.
입력을 마친 후 반드시 저장 버튼을 눌러 주십시오.
오류가 있는 경우 관리자에게 문의해 주세요.





기본 아이콘



 





오늘의 이야기

🌟 Welcome Korea – แอปไกด์อาหารท้องถิ่นของคุณ


앱 설명서



เวอร์ชันก่อนหน้านี้เป็นอย่างไร?
ก่อนหน้านี้ Welcome Jeju เป็นแอป Android ง่ายๆ ที่เน้นรวบรวมคำแนะนำเกี่ยวกับร้านอาหารและสถานที่ต่างๆ รอบเกาะเชจู โดยจะอัปเดตข้อมูล “สถานที่ยอดนิยม” รายวันจากการดึงข้อมูลบล็อกและโพสต์บนเว็บที่ติดแท็กว่า “맛집” (ร้านอาหารอร่อย)


ตอนนี้แอปได้พัฒนาให้มีจุดประสงค์ที่กว้างขึ้นแล้ว


ทำไมต้องปรับปรุงใหม่?
เมื่อไปเที่ยวเกาหลี แอปอย่าง Google Maps มักขาดข้อมูลท้องถิ่นที่ละเอียด โดยเฉพาะในย่านอย่างมยองดง แม้ว่าแอปอย่าง Naver Maps และ Kakao Maps จะเหมาะกับคนเกาหลี แต่กลับใช้งานไม่สะดวกสำหรับนักท่องเที่ยวต่างชาติ


ขณะทำงานในโครงการใกล้มยองดง ผมสังเกตเห็นนักท่องเที่ยวต่างชาติจำนวนมากยืนอยู่กับที่ ก้มมองมือถือ พยายามหาว่าตนเองอยู่ตรงไหนหรือจะไปที่ไหน ด้วยภาษาอังกฤษที่จำกัด ผมช่วยอะไรไม่ได้มาก จึงตัดสินใจปรับปรุงแอปให้ตอบโจทย์นักท่องเที่ยวต่างชาติมากขึ้น


ผมยังได้นำแนวคิดจากเครื่องมือ AI มาปรับปรุงประสบการณ์การใช้งานแอปด้วย


มีอะไรใหม่ในเวอร์ชันล่าสุด?
แอปเวอร์ชันใหม่เริ่มต้นด้วยหน้าต้อนรับ และรองรับหลายภาษา ได้แก่:



  • ภาษาเกาหลี

  • ภาษาอังกฤษ

  • ภาษาจีน (ตัวย่อ & ตัวเต็ม)

  • ภาษาฟิลิปปินส์

  • ภาษาเวียดนาม

  • ภาษาไทย


ผมเน้นภาษาที่นักท่องเที่ยวจากเอเชียตะวันออกเฉียงใต้มักใช้ เพราะนักท่องเที่ยวกลุ่มนี้เป็นส่วนใหญ่ของผู้มาเยือนเกาหลี


🧭 ฟีเจอร์หลัก



  1. รองรับหลายภาษา
    สามารถเลือกภาษาของแอปได้ตั้งแต่หน้าแรก และเปลี่ยนได้ภายหลังผ่านเมนู

  2. หน้าหลัก – สำรวจใกล้ตัว
    คุณสามารถค้นหาร้านอาหารหรือสถานที่ต่างๆ ได้จาก:



  • คำค้น (ในรัศมี 5 กิโลเมตร)

  • หมวดหมู่

  • สถานที่ยอดนิยมที่คัดสรรจากบล็อกเกอร์เกาหลี อัปเดตรายวัน



  1. ค้นหาด้วยเสียง
    สามารถค้นหาด้วยเสียงในภาษาของคุณเอง แอปจะ:



  • แปลงเสียงเป็นข้อความภาษาเกาหลี

  • ค้นหาในภาษาเกาหลี

  • แปลผลลัพธ์กลับเป็นภาษาของคุณ


🔐 หมายเหตุ: ต้องขอสิทธิ์การใช้งานไมโครโฟนเพื่อใช้ฟีเจอร์นี้



  1. ไอคอนผลการค้นหา
    📍 หมุดสถานที่: จากคำค้นของคุณ
    🚩 ธงแนะนำ: สถานที่ยอดนิยมที่รวบรวมรายวัน


📱 ดาวน์โหลดเลยตอนนี้
แอปพร้อมให้ดาวน์โหลดแล้วบน Play Store:


👉 Welcome Korea (맛집 리스트 모아보기)
“เรารวบรวมเคล็ดลับร้านอาหารบนเกาะเชจูจากเว็บต่างๆ – ตอนนี้ฉลาดขึ้น ใช้ได้หลายภาษา และเป็นมิตรกับนักท่องเที่ยว”


🔗 https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127



 


옵디강 (Welcome) - Google Play 앱


인터넷에 널린(?) 전국 맛집 정보 제공


play.google.com




 





오늘의 이야기


#스하리1000명프로젝트,
कभी-कभी विदेशी कामगारों से बात करना कठिन होता है, है न?
मैंने एक सरल ऐप बनाया है जो मदद करता है! आप अपनी भाषा में लिखते हैं, और दूसरे इसे अपनी भाषा में देखते हैं।
यह सेटिंग्स के आधार पर स्वचालित अनुवाद करता है।
आसान चैट के लिए बहुत उपयोगी। जब मौका मिले तो देख लेना!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기


#스하리1000명프로젝트,
Bị lạc ở Hàn Quốc? Ngay cả khi bạn không nói được tiếng Hàn, ứng dụng này vẫn giúp bạn đi lại dễ dàng.
Chỉ cần nói ngôn ngữ của bạn—nó sẽ dịch, tìm kiếm và hiển thị kết quả bằng ngôn ngữ của bạn.
Tuyệt vời cho du khách! Hỗ trợ hơn 10 ngôn ngữ bao gồm tiếng Anh, tiếng Nhật, tiếng Trung, tiếng Việt, v.v.
Hãy thử nó ngay bây giờ!
https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127




오늘의 이야기

① AI 관련 기사 🧠



  1. 삼성, Galaxy Unpacked 2025 출시 – Z Fold7·Flip7·Watch8 공개
    – 삼성은 7월 9일 행사에서 Z Fold7(두께 8.9 mm/8″ 디스플레이), Z Flip7(두께 13.7 mm, 31시간 영상 재생), Galaxy Watch8(항산화·혈관 로드 측정 기능) 등을 선보임 Business Insider+1TechRadar+1.
    리스크: 고가 전략 (Z Fold7 $1,999~), 스마트폰 가격대 강세. 긍정: AI 기능 강화(작성/검색/건강코칭)로 생태계 확장 및 경쟁력 상승.

  2. 삼성전자, Q2 반도체 실적 39%↓…AI 메모리 공급 지연
    – 2분기 영업이익 6.3조원(약 $4.62 B), 전년 대비 39% 감소 Reuters.
    리스크: HBM3E 인증 지연, 미국 수출제재 여파. 긍정: AMD 공급 시작, 메모리 포트폴리오 다변화 기대.

  3. 한국, 세계 최대 AI 데이터센터 구축 추진
    – SK·AWS, 울산에 7조원(약 $5.11 B) 규모 AI 센터 투자. 2025년 9월 착공, 2029년 100 MW 운영 → 향후 1 GW 확대 계획 ReutersRCR Wireless News+2Reuters+2artificialintelligence-news.com+2.
    리스크: 대규모 인프라 투자 리스크 및 지역 편중 문제. 긍정: 글로벌 AI 허브 도약, 관련주(KOSPI) 상승 촉진.

  4. 정부, 273억 원 규모 지역 기반 AI 칩·엣지 센터 지원
    – 과기정통부 주도로 비수도권에 컨테이너형 엣지 데이터센터 구축, AI 칩 국산화 및 중소병원·중소기업 지원 DIGITIMES Asia+15Reuters+15Reuters+15정책브리핑.
    리스크: 초기 국산 칩 품질·시장성 불확실. 긍정: 지역 균형 발전, 자급력 확보, 중소기업 디지털 도약.

  5. 기업 AI 에이전트, 2025 디지털 전환 핵심으로 부상
    – ActuIA 조사 결과 96% 기업이 향후 12개월 내 AI 에이전트 사용 확대 계획 ActuIA.
    리스크: 개인정보·책임 소재 규제, 기술 의존 리스크. 긍정: 업무 효율성과 생산성 대폭 향상, 경쟁력 강화.




② 부동산 관련 기사 🏠



  1. 2025 상반기 수도권 집값 1.0% 상승 전망
    – 한국건설산업연구소: 수도권 매매가 1분기 이후 +1.0%, 전고점 돌파 예상 미주중앙일보 - The Korea Daily+2Goover+2kdi.re.kr+2.
    리스크: 자산 격차 심화, 실수요자 부담 증가. 긍정: 주택시장 안정, 건설 투자 활성화 기대.

  2. 2025년 4분기 집값 하락 전환…바이어에 우호적
    – 미국 LA 중계, 수요·공급 증가로 3분기 정체 후 4분기 하락 전환 전망 YouTube+15미주중앙일보 - The Korea Daily+15Nate 뉴스+15.
    리스크: 사업자·시행사 수익성 악화. 긍정: 실수요자 구매 기회 확대, 전체 시장 안정화.

  3. 전국 미분양 7만 호↑…지방 거래 침체
    – 한국경제 4월: 지방은 미분양 70,000호 돌파, 수도권 상승세와 양극화 확대 한국경제.
    리스크: 시행사 부담, 지방경제 침체 지속. 긍정: 공급 재조정 기회, 정책 개입 명분 확보.

  4. 2025 부동산 10대 이슈 – KDI 분석
    – 경제 둔화 우려, 금리 변화, 공급 과잉·전세 월세 전환 등 다양한 변수 제시 Nate 뉴스+3KDI 경제정보센터+3한국경제+3.
    리스크: 고금리 지속 시 자금조달 부담. 긍정: 정보투명성 강화, 정책 대응 기회 포착.

  5. 2025 부동산 트렌드: 금리 인하 기대와 시장 반등
    – 한경 매거진: 미국·한국 기준금리 인하 기대, 금융비용 하락으로 자금 순환 가능성 증가 한경 매거진조선일보.
    리스크: 금리 변동성이 부동산 시장 예측을 어렵게 함. 긍정: 구매자·사업자 심리 회복, 투자 유인 강화.




③ 기업 관련 기사 🏢



  1. LG전자, 스마트물류센터 사업 확장 MOU 체결
    – 로지스밸리와 협업해 스마트팩토리→스마트물류 진출. 로지스밸리는 글로벌 물류센터 50개 운영 중 IT동아+1Fuel Cells Works+1.
    리스크: 물류 디지털 도입 실패 시 투자 회수 지연. 긍정: 신사업 기반 확보 → 수익 구조 고도화 기대.

  2. 증권사, AI·ESG·해외투자 확대 대응 필요
    – KCMI: 증권업계, 해외투자 및 AI 도입 확대, ESG 대응 등이 주요 과제 KCMI.
    리스크: AI 규제 및 글로벌 정책 불확실성. 긍정: 디지털 자문 확대, 운영 효율화 기대.

  3. 수출기업 48.6% ‘경영환경 유사’, 37.3% ‘악화 우려’
    – 무역협회 발표: 기업 48.6%는 2024년과 유사, 37.3%는 악화 전망 KDI 경제정보센터+15kita.net+15KDI 경제정보센터+15.
    리스크: 수출 부진 지속, 대미 규제·관세 위험. 긍정: 방어적 전략 마련 기회, 다변화 추진 동력.

  4. 삼성SDS, 2025 IT 투자 전망: 48%·25% 확대, 27% 축소
    – 기업 조사: 48% 유지, 25% 확장, 27% 축소할 계획 Samsung SDS.
    리스크: 투자 감소 기업의 경쟁력 약화 우려. 긍정: 확장 기업 중심 혁신 가속화.

  5. KDI: 수출 둔화·소비심리 악화…금리 인하로 하반기 회복 전망
    – 상반기 수출·소비 둔화, 하반기부터 금리 인하 효과로 회복 가능성 kdi.re.kr+3KCMI+3한경 매거진+3.
    리스크: 미국 통상 불확실성 → 수출 타격. 긍정: 금리 인하로 기업·소비자 자금부담 완화.




④ 해외 경제 관련 기사 🌍



  1. OECD “2025년 세계 경제 더 어려워질 것”
    – 교역량 둔화, 미국 철강·알루미늄 관세 25→50%, 한국 수·출 감소: 수출 -1.3%→572.7 억 달러, 수입 -5.3% 꿈의 무역센터.
    리스크: 글로벌 무역 환경 악화, 공급망 불안 증가. 긍정: 협력 강화를 통한 구조조정 추진 기회.

  2. 딜로이트 “2025 미국 GDP 2.6%, 2026년 2.1% 성장” 전망
    – 실질수출 +0.7%, 수입 +1.8%, 기준금리 75bp 인하 전망 Deloitte.
    리스크: 관세·물가 불확실성 잔존. 긍정: 온건 성장 지속→수출·수입 확대·무역 안정 가능.

  3. 영국, 1분기 GDP +0.7%, 인플레 3~3.5%, 하반기 금리 인하 기대
    – 기업세 및 관세 불확실성 있지만, 물가 하락 기대 russellinvestments.com.
    리스크: 지정학 리스크, 기업 투자 위축. 긍정: 금리 인하→소비·투자 회복 동력.

  4. 미국 2025년 연간 성장률 2.1~2.7%, 실업률 연말 4.2% 예상
    – 고용 냉각, 물가 안정 속 성장 지속 전망 kcif.or.kr.
    리스크: 정책 불확실성 증가 위험. 긍정: 고용 안정성 유지 → 소비지지 기대.

  5. KOTRA: 주요국 수출·수입 감소, 미국은 투자 견조
    – 수출 -1.3%, 수입 -5.3%인데 반해 미국은 생산·소비 둔화 속 투자 견조 꿈의 무역센터.
    리스크: 무역 글로벌 수요 둔화. 긍정: 투자 중심 경제전환 기회.








2026/04/27

오늘의 이야기

 



🎾 Kotlin으로 복식 경기 Round-Robin 매칭 구성하기


라운드 로빈 구현해 보기



 


이 글은 Kotlin과 Jetpack Compose를 사용하는 Android 앱에서 복식 경기 매칭을 어떻게 구성할 수 있는지 기록한 개발자 경험 공유입니다. 예제 코드는 초보자도 이해할 수 있도록 주석과 함께 설명합니다.


🧩 사용 시나리오


앱 사용자는 4명 이상의 참여자를 등록한 후, 복식 경기 방식으로 매칭을 자동 생성합니다.



  • 경기 방식은 Round-Robin 방식 (모든 가능한 조합을 구성)

  • 같은 팀 또는 상대가 중복되지 않도록 구성

  • 선수 수가 홀수인 경우 마지막 한 명을 제외

  • 참가자 수가 4명일 경우에도 다양한 팀 구성을 고려


🧠 핵심 데이터 구조



// 경기 참가자
data class Contestant(
val pk: String, // 고유 ID
val tokenId: String,
val enterTime: Long,
val exitTime: Long
)

// 경기 매칭
data class Match(
val pk: String, // "Round_0", "Round_1" 등
val startTime: Long,
val endTime: Long,
val teamA: List, // 2인 1조
val teamB: List,
val isDoubles: Boolean = true
)

⚙️ 매칭 로직 구현


복식 경기를 위한 모든 가능한 조합을 만들고, 이전 경기에 바로 참여한 선수는 다음 경기에서 쉬도록 구성합니다.



// 복식 팀 조합을 생성하는 함수
fun generateDoublesTeamPairs(players: List): List<List<Contestant>> {
val validPlayers = if (players.size % 2 != 0) players.dropLast(1) else players
val teamPairs = mutableListOf<List<Contestant>>()

// 모든 2명 조합 생성
for (i in validPlayers.indices) {
for (j in i + 1 until validPlayers.size) {
teamPairs.add(listOf(validPlayers[i], validPlayers[j]))
}
}

return teamPairs
}

이후 이 조합으로 가능한 모든 2팀 매칭을 구성합니다.



// 복식 경기를 위한 가능한 Match 조합 생성
fun generateDoublesMatches(players: List<Contestant>): List<Match> {
val validPlayers = if (players.size % 2 != 0) players.dropLast(1) else players
val teamPairs = generateDoublesTeamPairs(validPlayers)
val matchList = mutableListOf<Match>()
var idx = 0

val usedMatches = mutableSetOf<Set<String>>()

for (i in teamPairs.indices) {
for (j in i + 1 until teamPairs.size) {
val teamA = teamPairs[i]
val teamB = teamPairs[j]

// 팀원이 겹치지 않는지 확인
if (teamA.intersect(teamB.toSet()).isEmpty()) {
val allPlayers = (teamA + teamB).map { it.pk }.toSet()

// 동일한 구성의 경기인지 중복 확인
if (allPlayers !in usedMatches) {
usedMatches.add(allPlayers)

// 실제 Match 객체 생성
val match = Match(
pk = "Round_${idx++}",
startTime = System.currentTimeMillis(),
endTime = System.currentTimeMillis() + 10 * 60 * 1000,
teamA = teamA,
teamB = teamB,
isDoubles = true
)

matchList.add(match)
}
}
}
}

return matchList
}

✨ 위 함수는 4명이 참여했을 때도 3가지 가능한 조합 중 1경기로 끝나는 일이 없도록 팀 구성 중복 여부를 고려해 최소 2경기 이상이 생성될 수 있도록 보완하였습니다.

🔍 로그 출력 예시 (디버깅용)



Log.e("MatchGen", "Valid players (${validPlayers.size}): ${validPlayers.map { it.pk }}")
Log.e("MatchGen", "Generated ${teamPairs.size} teams")

for (match in matchList) {
Log.e("MatchGen", "Match: ${match.teamA.map { it.pk }} vs ${match.teamB.map { it.pk }}")
}

✅ 결과 예시 (4명일 때)



Match: A, B vs C, D
Match: A, C vs B, D

📌 마무리


이 방식은 경기 운영 자동화라운드로빈 방식의 배치 자동화에 유용하며, 참여자 수의 변화에 따라 유연하게 대응할 수 있는 점이 큰 장점입니다.


필요에 따라 매칭 조건(예: 직전 경기 제외, 최소 휴식 시간 보장 등)을 더 정교하게 설계해 나갈 수 있습니다.




문의나 개선 아이디어가 있다면 댓글로 남겨주세요! 😊


 


어디까지나... chatGPT 의 의견은 아직 100% 신뢰도를 보장 하지 않습니다. 





오늘의 이야기


#스하리1000명프로젝트

오늘 내가 만든앱 하나 알려주고 싶어, 이 앱은 알림수집기 라고 이름을 붙였는 데,
내 폰에 표시 되는 알림을 읽어서 내가 지정한 단어가 들어 있고, 지출기록을 남겨야 하는 알림이
있으면 수집하고, 카카오톡으로 친구에게 전달해 주는 기능을 구현해 줄꺼야. 📲

이번 패치에서는 하루 한번 지정한 시간에 나에게 알림(노티) 하도록 기능을 추가 했어. 🙏
한번 써보고 불편한 거 있으면 말해줘.

앱 바로가기
👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기

< 주변검색 주변찾기 앱 , 동작감지기 앱 :  이하 사용자앱으로 표시 >:는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보...